weaver 0.8.10 → 0.8.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/weaver +7 -6
- data/lib/weaver/element_types/code.rb +2 -2
- data/lib/weaver/element_types/dynamic_table.rb +1 -1
- data/lib/weaver/element_types/form_elements.rb +6 -2
- data/lib/weaver/element_types/panel.rb +1 -1
- data/lib/weaver/elements.rb +8 -5
- data/lib/weaver/page_types/page.rb +3 -1
- data/lib/weaver/version.rb +1 -1
- data/weaver.gemspec +2 -2
- metadata +16 -82
- data/data/weaver/js/plugins/skeuocard/Gruntfile.coffee +0 -74
- data/data/weaver/js/plugins/skeuocard/LICENSE +0 -21
- data/data/weaver/js/plugins/skeuocard/README.md +0 -393
- data/data/weaver/js/plugins/skeuocard/bower.json +0 -40
- data/data/weaver/js/plugins/skeuocard/fonts/ocra-webfont.eot +0 -0
- data/data/weaver/js/plugins/skeuocard/fonts/ocra-webfont.svg +0 -138
- data/data/weaver/js/plugins/skeuocard/fonts/ocra-webfont.ttf +0 -0
- data/data/weaver/js/plugins/skeuocard/fonts/ocra-webfont.woff +0 -0
- data/data/weaver/js/plugins/skeuocard/images/card-flip-arrow.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/card-front-background.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/card-invalid-indicator.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/card-valid-anim.gif +0 -0
- data/data/weaver/js/plugins/skeuocard/images/card-valid-indicator.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/error-pointer.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/issuers/visa-chase-sapphire.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/issuers/visa-simple-front.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/products/amex-front.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/products/dinersclubintl-front.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/products/discover-front.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/products/generic-back.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/products/generic-front.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/products/jcb-front.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/products/maestro-front.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/products/mastercard-front.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/products/unionpay-front.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/products/visa-back.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/products/visa-front.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/src/card-front-background.fw.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/src/error-pointer.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/src/product-amex-front.fw.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/src/product-dinersclub-front.fw.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/src/product-discover-front.fw.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/src/product-generic-front.fw.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/src/product-jcb-front.fw.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/src/product-maestro-front.fw.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/src/product-mastercard-front.fw.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/src/product-unionpay-front.fw.png +0 -0
- data/data/weaver/js/plugins/skeuocard/images/src/product-visa-front.fw.png +0 -0
- data/data/weaver/js/plugins/skeuocard/index.html +0 -124
- data/data/weaver/js/plugins/skeuocard/javascripts/skeuocard.js +0 -1748
- data/data/weaver/js/plugins/skeuocard/javascripts/skeuocard.min.js +0 -2
- data/data/weaver/js/plugins/skeuocard/javascripts/src/CardProduct.coffee +0 -284
- data/data/weaver/js/plugins/skeuocard/javascripts/src/ExpirationInputView.coffee +0 -206
- data/data/weaver/js/plugins/skeuocard/javascripts/src/FlipTabView.coffee +0 -67
- data/data/weaver/js/plugins/skeuocard/javascripts/src/SegmentedCardNumberInputView.coffee +0 -284
- data/data/weaver/js/plugins/skeuocard/javascripts/src/Skeuocard.coffee +0 -439
- data/data/weaver/js/plugins/skeuocard/javascripts/src/TextInputView.coffee +0 -42
- data/data/weaver/js/plugins/skeuocard/javascripts/vendor/cssua.min.js +0 -7
- data/data/weaver/js/plugins/skeuocard/javascripts/vendor/demo.fix.js +0 -17
- data/data/weaver/js/plugins/skeuocard/javascripts/vendor/jquery-2.0.3.min.js +0 -5
- data/data/weaver/js/plugins/skeuocard/package-lock.json +0 -760
- data/data/weaver/js/plugins/skeuocard/package.json +0 -19
- data/data/weaver/js/plugins/skeuocard/screenshot.png +0 -0
- data/data/weaver/js/plugins/skeuocard/styles/demo.css +0 -2
- data/data/weaver/js/plugins/skeuocard/styles/demo.css.map +0 -7
- data/data/weaver/js/plugins/skeuocard/styles/skeuocard.css +0 -2
- data/data/weaver/js/plugins/skeuocard/styles/skeuocard.css.map +0 -7
- data/data/weaver/js/plugins/skeuocard/styles/skeuocard.reset.css +0 -2
- data/data/weaver/js/plugins/skeuocard/styles/skeuocard.reset.css.map +0 -7
- data/data/weaver/js/plugins/skeuocard/styles/src/_browser_hacks.scss +0 -52
- data/data/weaver/js/plugins/skeuocard/styles/src/_cards.scss +0 -516
- data/data/weaver/js/plugins/skeuocard/styles/src/_util.scss +0 -15
- data/data/weaver/js/plugins/skeuocard/styles/src/demo.scss +0 -265
- data/data/weaver/js/plugins/skeuocard/styles/src/skeuocard.reset.scss +0 -60
- data/data/weaver/js/plugins/skeuocard/styles/src/skeuocard.scss +0 -190
@@ -1,393 +0,0 @@
|
|
1
|
-
## This is a fork of Skeuocard
|
2
|
-
|
3
|
-
I am not the original maintainer, but this piece of software has sat in rot for a while so I made a lot of trivial fixes to make it work for [my website generator DSL](https://davidsiaw.github.io/weaver-docs/dynamic/).
|
4
|
-
|
5
|
-
No guarantees are made whatsoever that it will work or be compatible with your website's framework cocktail.
|
6
|
-
|
7
|
-
No effort has been made whatsoever to make it responsive.
|
8
|
-
|
9
|
-
### Differences from the original Skeuocard
|
10
|
-
|
11
|
-
- MasterCard numbers are shown so they don't overlap the massive logo
|
12
|
-
- Supports MasterCard 2-series BINs
|
13
|
-
- Flip tab does not appear unless it needs to
|
14
|
-
- Variety of fixes for validations, and unneccessary errors
|
15
|
-
|
16
|
-
# Skeuocard (v1.2)
|
17
|
-
|
18
|
-
![image](https://user-images.githubusercontent.com/874280/62412533-da683200-b63e-11e9-86a8-d0fd8b19928a.png)
|
19
|
-
|
20
|
-
_Skeuocard_ is a re-think of the way we handle credit card input on the web. It progressively enhances credit card input forms so that the card inputs become skeuomorphic, facilitating accurate and fast card entry, and removing barriers to purchase.
|
21
|
-
|
22
|
-
You can try it out at [http://kenkeiter.com/skeuocard](http://kenkeiter.com/skeuocard).
|
23
|
-
|
24
|
-
## Usage
|
25
|
-
|
26
|
-
Skeuocard takes a standard credit card input form and partially transforms its DOM, removing non-essential elements, while leaving the underlying inputs alone. In order to use Skeuocard in your checkout page, you'll need to do one of two things.
|
27
|
-
|
28
|
-
### Bower
|
29
|
-
|
30
|
-
If you have [Bower](http://bower.io) then you can simply:
|
31
|
-
|
32
|
-
```bash
|
33
|
-
$ bower install skeuocard
|
34
|
-
```
|
35
|
-
|
36
|
-
### Manually
|
37
|
-
|
38
|
-
Or you can link the necessary style sheets and scripts, and make sure any asset dependencies are at the right paths.
|
39
|
-
|
40
|
-
```html
|
41
|
-
<head>
|
42
|
-
<!-- ... your CSS includes ... -->
|
43
|
-
<link rel="stylesheet" href="styles/skeuocard.reset.css" />
|
44
|
-
<link rel="stylesheet" href="styles/skeuocard.css" />
|
45
|
-
<link rel="stylesheet" href="styles/demo.css">
|
46
|
-
<script src="javascripts/vendor/cssua.min.js"></script>
|
47
|
-
<!-- ... -->
|
48
|
-
</head>
|
49
|
-
```
|
50
|
-
|
51
|
-
Make sure your credit card inputs are within their own containing element (most likely a `<div>`). In the example below, the `name` attribute of the inputs is significant because Skeuocard needs to determine which inputs should remain intact and be used to store the underlying card values.
|
52
|
-
|
53
|
-
Side note: If you'd like to use different input `name`s or selectors, you can specify those at instantiation. See the "Changing Underlying Value Selectors" section, below.
|
54
|
-
|
55
|
-
```html
|
56
|
-
<div class="credit-card-input no-js" id="skeuocard">
|
57
|
-
<p class="no-support-warning">
|
58
|
-
Either you have Javascript disabled, or you're using an unsupported browser, amigo! That's why you're seeing this old-school credit card input form instead of a fancy new Skeuocard. On the other hand, at least you know it gracefully degrades...
|
59
|
-
</p>
|
60
|
-
<label for="cc_type">Card Type</label>
|
61
|
-
<select name="cc_type">
|
62
|
-
<option value="">...</option>
|
63
|
-
<option value="visa">Visa</option>
|
64
|
-
<option value="discover">Discover</option>
|
65
|
-
<option value="mastercard">MasterCard</option>
|
66
|
-
<option value="maestro">Maestro</option>
|
67
|
-
<option value="jcb">JCB</option>
|
68
|
-
<option value="unionpay">China UnionPay</option>
|
69
|
-
<option value="amex">American Express</option>
|
70
|
-
<option value="dinersclubintl">Diners Club</option>
|
71
|
-
</select>
|
72
|
-
<label for="cc_number">Card Number</label>
|
73
|
-
<input type="text" name="cc_number" id="cc_number" placeholder="XXXX XXXX XXXX XXXX" maxlength="19" size="19">
|
74
|
-
<label for="cc_exp_month">Expiration Month</label>
|
75
|
-
<input type="text" name="cc_exp_month" id="cc_exp_month" placeholder="00">
|
76
|
-
<label for="cc_exp_year">Expiration Year</label>
|
77
|
-
<input type="text" name="cc_exp_year" id="cc_exp_year" placeholder="00">
|
78
|
-
<label for="cc_name">Cardholder's Name</label>
|
79
|
-
<input type="text" name="cc_name" id="cc_name" placeholder="John Doe">
|
80
|
-
<label for="cc_cvc">Card Validation Code</label>
|
81
|
-
<input type="text" name="cc_cvc" id="cc_cvc" placeholder="123" maxlength="3" size="3">
|
82
|
-
</div>
|
83
|
-
```
|
84
|
-
|
85
|
-
When the Skeuocard is instantiated for the containing element above, all children of the containing element will be removed except for the underlying form fields.
|
86
|
-
|
87
|
-
Causing a Skeuocard to appear instead is as simple as:
|
88
|
-
|
89
|
-
```javascript
|
90
|
-
$(document).ready(function(){
|
91
|
-
card = new Skeuocard($("#skeuocard"));
|
92
|
-
});
|
93
|
-
```
|
94
|
-
|
95
|
-
That's it! You've got a skeuomorphic credit card input, instead of your normal, confusing form.
|
96
|
-
|
97
|
-
### Beyond the Basics
|
98
|
-
|
99
|
-
#### Enabling Debugging Output
|
100
|
-
|
101
|
-
Skeuocard occasionally provides useful debugging output. By instantiating Skeuocard with the `debug` option set to true, those messages will be sent to `console.log` and prefixed with `[skeuocard]`.
|
102
|
-
|
103
|
-
```javascript
|
104
|
-
new Skeuocard($("#skeuocard"), {
|
105
|
-
debug: true
|
106
|
-
});
|
107
|
-
```
|
108
|
-
|
109
|
-
#### Turn off Focusing the Input by Default
|
110
|
-
|
111
|
-
By default, when Skeuocard is initialized, the input field will be focused. If you don't want this to happen (for example, if the skeuocard element is positioned below the fold and you want to prevent the browser from scrolling there), then pass `dontFocus: true` as an initialization option.
|
112
|
-
|
113
|
-
```javascript
|
114
|
-
new Skeuocard($("#skeuocard"), {
|
115
|
-
dontFocus: true
|
116
|
-
});
|
117
|
-
|
118
|
-
```
|
119
|
-
|
120
|
-
#### Providing Initial Values
|
121
|
-
|
122
|
-
Sometimes you'll need to pre-fill credit card information when you load the page. To do so, you can simply provide a `value` attribute for your form fields (or `<option selected ...>`, in the case of a `<select>`), and Skeuocard will pick up your initial values when instantiated.
|
123
|
-
|
124
|
-
Alternately, you can instantiate your Skeuocard instance with an `initialValues` object, which will override any existing values provided in the form, like so:
|
125
|
-
|
126
|
-
```javascript
|
127
|
-
new Skeuocard($("#skeuocard"), {
|
128
|
-
initialValues: {
|
129
|
-
number: "4111111111111111",
|
130
|
-
expMonth: "1",
|
131
|
-
expYear: "2016",
|
132
|
-
name: "James Doe",
|
133
|
-
cvc: "123"
|
134
|
-
}
|
135
|
-
});
|
136
|
-
```
|
137
|
-
|
138
|
-
#### Changing Values on the Fly
|
139
|
-
|
140
|
-
You can also change Skeuocard values manually by changing the underlying form element's value, and triggering a `change` event.
|
141
|
-
|
142
|
-
```javascript
|
143
|
-
$('[name="cc_number"]').val('4111111111111111').trigger('change')
|
144
|
-
```
|
145
|
-
|
146
|
-
#### Changing Placeholder Strings
|
147
|
-
|
148
|
-
You can change the character which Skeuocard uses as a placeholder for segmented card inputs, as well as the placeholder on the generic card view (visible when a card type has not been determined) by providing either of the following options at instantiation: `cardNumberPlaceholderChar` and `genericPlaceholder`.
|
149
|
-
|
150
|
-
`cardNumberPlaceholderChar` is used for filling only segmented inputs (i.e. "[XXXX] [XXXX] [XXXX] [XXXX]") and is by default set to `X`. The `genericPlaceholder` value is used when the card type has not yet been determined, and is by default set to `XXXX XXXX XXXX XXXX`.
|
151
|
-
|
152
|
-
```javascript
|
153
|
-
new Skeuocard($("#skeuocard"), {
|
154
|
-
cardNumberPlaceholderChar: '*',
|
155
|
-
genericPlaceholder: '**** **** **** ****'
|
156
|
-
});
|
157
|
-
```
|
158
|
-
|
159
|
-
#### Changing Underlying Value Selectors
|
160
|
-
|
161
|
-
When a Skeuocard is instantiated, it attaches itself to a container element and removes any unneeded children, before adding its own; *however,* Skeuocard stores its values in pre-existing input fields, which aren't selected for removal.
|
162
|
-
|
163
|
-
By default, Skeuocard sets the following default selectors to match the underlying form fields within the container element, and use them to store values:
|
164
|
-
|
165
|
-
* `typeInputSelector: [name="cc_type"]`
|
166
|
-
* `numberInputSelector: [name="cc_number"]`
|
167
|
-
* `expMonthInputSelector: [name="cc_exp_month"]`
|
168
|
-
* `expYearInputSelector: [name="cc_exp_year"]`
|
169
|
-
* `nameInputSelector: [name="cc_name"]`
|
170
|
-
* `cvcInputSelector: [name="cc_cvc"]`
|
171
|
-
|
172
|
-
Providing any of those options with different values at instantiation will cause Skeuocard to use your supplied selector, instead! For example, if our credit card number field had a `name` of `credit_card_number` (instead of the default `cc_number`), we could change it at instantiation like so:
|
173
|
-
|
174
|
-
```javascript
|
175
|
-
new Skeuocard($("#skeuocard"), {
|
176
|
-
numberInputSelector: '[name="credit_card_number"]'
|
177
|
-
});
|
178
|
-
```
|
179
|
-
|
180
|
-
#### Using the Server's Current Date
|
181
|
-
|
182
|
-
If you're smart, you probably won't want to use the client's local `Date` to validate against when checking expiration. You can specify a `Date` to check against at instantiation by setting `currentDate` on the Skeuocard class like so:
|
183
|
-
|
184
|
-
```javascript
|
185
|
-
Skeuocard.currentDate = new Date(year, month, day);
|
186
|
-
```
|
187
|
-
|
188
|
-
Note that month is an integer from 0 - 11.
|
189
|
-
|
190
|
-
By default, Skeuocard will automatically use the client's local Date.
|
191
|
-
|
192
|
-
#### Specifying Accepted Card Products
|
193
|
-
|
194
|
-
Only accept Visa and AmEx? No worries. Skeuocard has you covered. You can specify accepted card types with an options argument, or in the underlying form itself.
|
195
|
-
|
196
|
-
To limit your accepted card products, simply add or remove `<option>`s from your type `<select>` where either the `value` attribute matches the shortname of the product (see the example below), or the `data-sc-type` attribute is set to the shortname of the product (if your `value` needs to be different for legacy purposes).
|
197
|
-
|
198
|
-
```html
|
199
|
-
<select name="cc_type">
|
200
|
-
<option value="">...</option>
|
201
|
-
<option value="visa">Visa</option>
|
202
|
-
<option value="mastercard">MasterCard</option>
|
203
|
-
<option value="maestro">Maestro</option>
|
204
|
-
<option value="amex">American Express</option>
|
205
|
-
<option value="diners" data-sc-type="dinersclubintl">Diners Club</option>
|
206
|
-
</select>
|
207
|
-
```
|
208
|
-
|
209
|
-
You can also optionally override this list by providing an array of accepted card product shortnames at instantiation, like so:
|
210
|
-
|
211
|
-
```javascript
|
212
|
-
new Skeuocard($("#skeuocard"), {
|
213
|
-
acceptedCardProducts: ['visa', 'amex']
|
214
|
-
});
|
215
|
-
```
|
216
|
-
|
217
|
-
#### jQuery's noConflict Mode
|
218
|
-
|
219
|
-
If you are using jQuery's `noConflict` mode, you'll need to instantiate your Skeuocard instance slightly differently than above:
|
220
|
-
|
221
|
-
```javascript
|
222
|
-
jQuery(document).ready(function(){
|
223
|
-
card = new Skeuocard(jQuery("#skeuocard"));
|
224
|
-
});
|
225
|
-
```
|
226
|
-
|
227
|
-
#### Progressive Enhancement
|
228
|
-
|
229
|
-
Progressive enhancement was really important to me when creating this plugin. I wanted to make sure that a potential purchase opportunity would never be denied by a failure in Skeuocard, so I chose to take an approach which would leave the users with a functional, styled form in the event that Skeuocard fails.
|
230
|
-
|
231
|
-
You can style your un-enhanced form elements in whichever way you wish. When Skeuocard is instantiated, it will automatically add both the `skeuocard` and `js` classes to the container, which will match the selectors necessary to style the card input properly.
|
232
|
-
|
233
|
-
#### Checking Validity
|
234
|
-
|
235
|
-
At some point or another, you're going to want your user to submit your purchase form -- so how do you determine if the credit card input they provided is valid? While there are several ways of doing this, there's one recommended way:
|
236
|
-
|
237
|
-
```javascript
|
238
|
-
card.isValid() // => Boolean
|
239
|
-
```
|
240
|
-
|
241
|
-
#### Showing Errors at Instantiation
|
242
|
-
|
243
|
-
Sometimes you'll want to indicate a problem with the card to the user at instantiation -- for example, if the card number (after having been submitted to your payment processor) is determined to be incorrect. You can do this one of two ways: by adding the `invalid` class to your underlying `number` form field at instantiation, or by passing an initial `validationState` argument with your options.
|
244
|
-
|
245
|
-
Applying the `invalid` class to the invalid field:
|
246
|
-
|
247
|
-
```html
|
248
|
-
...
|
249
|
-
<input type="text" name="cc_number" id="cc_number" placeholder="XXXX XXXX XXXX XXXX" maxlength="19" size="19" class="invalid">
|
250
|
-
...
|
251
|
-
```
|
252
|
-
|
253
|
-
Providing a list of invalid fields at instantiation:
|
254
|
-
|
255
|
-
```javascript
|
256
|
-
new Skeuocard($("#skeuocard"), {
|
257
|
-
validationState: {
|
258
|
-
number: false,
|
259
|
-
exp: true,
|
260
|
-
name: true,
|
261
|
-
cvc: true
|
262
|
-
}
|
263
|
-
});
|
264
|
-
```
|
265
|
-
|
266
|
-
Note that, if the CVC is on the back of the card for the matching card product, the card will automatically flip to show the invalid field.
|
267
|
-
|
268
|
-
#### Registering Custom Card Layouts
|
269
|
-
|
270
|
-
You may wish to add a custom layout to support a card (BIN) specific to your locale, or for promotional reasons. You can do so easily.
|
271
|
-
|
272
|
-
You'll need to create a set of transparent PNG file containing any elements you wish to appear on the card faces. For an example, see any of the images in the `images/products/` folder. If you have Adobe Fireworks installed, the editable images are also included in `images/src/`.
|
273
|
-
|
274
|
-
For an example of how to style a card, see `styles/_cards.scss`.
|
275
|
-
|
276
|
-
Once you have created your images and the appropriate CSS styling, you will need to create a new CardProduct or variation of an existing card product. Lets say that we're matching a new type of gift card with a BIN (9123) that doesn't match any of the pre-defined credit card providers:
|
277
|
-
|
278
|
-
```javascript
|
279
|
-
// Create a new CardProduct instance, and register it with Skeuocard.
|
280
|
-
Skeuocard.CardProduct.create({
|
281
|
-
pattern: /^9123/, // match all cards starting with 9123
|
282
|
-
companyName: "Fancy Gift Card Inc.",
|
283
|
-
companyShortname: "fancycard", // this will be the card type
|
284
|
-
cardNumberGrouping: [4,4,4,4], // how the number input should group
|
285
|
-
cardNumberLength: [14], // array of valid card number lengths
|
286
|
-
expirationFormat: "MM/YY", // format of the date field
|
287
|
-
cvcLength: 3, // the length of the CVC
|
288
|
-
validateLuhn: true, // validate using the Luhn algorithm?
|
289
|
-
layout: {
|
290
|
-
number: 'front',
|
291
|
-
exp: 'front',
|
292
|
-
name: 'front',
|
293
|
-
cvc: 'back'
|
294
|
-
}
|
295
|
-
});
|
296
|
-
```
|
297
|
-
|
298
|
-
Now, lets say that we'd like to recognize and apply a layout for a Visa card with a specific BIN. First, we'd select the matching card product, and then add a variant, which will extend it:
|
299
|
-
|
300
|
-
```javascript
|
301
|
-
// find the existing Visa product
|
302
|
-
var visaProduct = Skeuocard.CardProduct.firstMatchingShortname('visa');
|
303
|
-
// register a new variation of the Visa product
|
304
|
-
visaProduct.createVariation({
|
305
|
-
pattern: /^414720/,
|
306
|
-
issuingAuthority: "Chase",
|
307
|
-
issuerName: "Chase Sapphire Card",
|
308
|
-
issuerShortname: "chase-sapphire",
|
309
|
-
layout:
|
310
|
-
number: 'front',
|
311
|
-
exp: 'front',
|
312
|
-
name: 'front',
|
313
|
-
cvc: 'front'
|
314
|
-
});
|
315
|
-
```
|
316
|
-
|
317
|
-
#### Design Customization
|
318
|
-
|
319
|
-
You might not like the way Skeuocard looks. That's easy to fix; CSS is used to style and position most elements in Skeuocard, with the exception of the card faces.
|
320
|
-
|
321
|
-
## Browser Compatibility
|
322
|
-
|
323
|
-
Skeuocard aims to gain better compatibility with older browsers, but for the time being, it looks good and works well in the following browsers:
|
324
|
-
|
325
|
-
* Chrome (Mac, Win)
|
326
|
-
* Safari (Mac)
|
327
|
-
* Firefox > 18 (Mac, Win)
|
328
|
-
* Mobile Safari (iOS)
|
329
|
-
* Mobile Chrome (iOS/Android)
|
330
|
-
* IE 10+ (Win)
|
331
|
-
|
332
|
-
It's recommended that you selectively disable Skeuocard based upon browser version, to retain maximum compatibility. If you have an odd or obscure browser, and wish to submit a patch, that's always appreciated!
|
333
|
-
|
334
|
-
## Integration
|
335
|
-
|
336
|
-
* The [skeuocard-rails](https://github.com/rougecardinal/skeuocard-rails) gem provides integration with the Rails asset pipeline.
|
337
|
-
|
338
|
-
## Development
|
339
|
-
|
340
|
-
Contributing to Skeuocard is pretty simple. Simply fork the project, make your changes in a branch, and submit a pull request.
|
341
|
-
|
342
|
-
I'll do my best to keep an eye out for pull requests and triage any submitted issues. Please note that you MUST make changes on the src (.coffee, .scss) files, compile the changes with Grunt, and include any compiled changes in any pull requests you submit.
|
343
|
-
|
344
|
-
#### Getting Up and Running
|
345
|
-
|
346
|
-
Ensure that you have the following tools installed before continuing:
|
347
|
-
|
348
|
-
* [NodeJS/NPM](http://nodejs.org/download/)
|
349
|
-
* [SASS](http://sass-lang.com/)
|
350
|
-
* [CoffeeScript](http://coffeescript.org/)
|
351
|
-
|
352
|
-
To begin working on Skeuocard, fork the repository to your Github account, and clone it to your machine.
|
353
|
-
|
354
|
-
Once you have `cd`ed to your cloned `skeuocard` repository, you'll need to install the required Node packages:
|
355
|
-
|
356
|
-
$ npm install
|
357
|
-
|
358
|
-
Once that's completed, simply run:
|
359
|
-
|
360
|
-
$ grunt
|
361
|
-
|
362
|
-
Upon starting `grunt`, the following things will happen:
|
363
|
-
|
364
|
-
* a development server will be started on `0.0.0.0:8000`;
|
365
|
-
* `index.html` will be opened automatically in your browser;
|
366
|
-
* grunt will begin watching for changes to source files, and setup live-reload
|
367
|
-
* source files will be recompiled automatically when changes are made.
|
368
|
-
|
369
|
-
Simply make your changes to the necessary source files (typically under the `src` directory of each directory in the project), commit the changes (including the compiled changes), and submit a pull request!
|
370
|
-
|
371
|
-
#### New Card Layouts & Graphics
|
372
|
-
|
373
|
-
I've done my best to include layouts for all major card products (Visa, MasterCard, Amex, etc.) in the project. It is entirely possible that I've missed some products, and that the addition of a product is justified; however, I'm not accepting issuer-specific layouts (for things like Visa-branded products) at this time. There are literally thousands of them, and doing so could be seen as discriminatory.
|
374
|
-
|
375
|
-
For the time being, the only reason I'll make an exception is for cards like the Chase Sapphire, which is a Visa product, but has been granted an allowance by Visa to drastically alter the appearance and field layout of the card.
|
376
|
-
|
377
|
-
All of that said, I'm working on a standardized method of distributing issuer-specific layouts for users who wish to cater to popular cards in their locale, etc.
|
378
|
-
|
379
|
-
## Licensing
|
380
|
-
|
381
|
-
Skeuocard is licensed under the [MIT license](http://opensource.org/licenses/MIT). Share and enjoy :)
|
382
|
-
|
383
|
-
* The [*OCR-A font*](http://ansuz.sooke.bc.ca/page/fonts#ocra) included with this project was converted and released for free commercial and non-commercial use by [Matthew Skala](http://ansuz.sooke.bc.ca/page/about).
|
384
|
-
* [*CSS User Agent*](http://cssuseragent.org/) by [Stephen M. McKamey](http://stephen.mckamey.com/) is included under its [MIT license](https://bitbucket.org/mckamey/cssuseragent/raw/tip/LICENSE.txt).
|
385
|
-
* [*jQuery*](http://jquery.com/) 2.0.3 is included under its [MIT license](https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt).
|
386
|
-
|
387
|
-
The trademarks and branding assets of the credit card products used in this project have not been used with express consent of their owners; this project is intended for use only by those whom have the proper authorization to do so. The trademarks and branding included in this project are property of their respective owners.
|
388
|
-
|
389
|
-
Any complaints should be sent to me at: ken+skeuocard-complaints@kenkeiter.com and I will address them promptly.
|
390
|
-
|
391
|
-
### Special Thanks
|
392
|
-
|
393
|
-
I owe a special thanks to my guinea-pig users, and to the designers I met in coffee shops who took the time to critique this work.
|
@@ -1,40 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name": "skeuocard",
|
3
|
-
"keywords": [
|
4
|
-
"credit",
|
5
|
-
"card",
|
6
|
-
"skeuomorphism"
|
7
|
-
],
|
8
|
-
"description": "Skeuocard progressively enhances credit card inputs to provide a skeuomorphic interface.",
|
9
|
-
"version": "1.1.0",
|
10
|
-
"license": "The MIT License (MIT)",
|
11
|
-
"readmeFilename": "README.md",
|
12
|
-
"repository": {
|
13
|
-
"type": "git",
|
14
|
-
"url": "git://github.com:kenkeiter/skeuocard.git"
|
15
|
-
},
|
16
|
-
"main": [
|
17
|
-
"styles/skeuocard.reset.css",
|
18
|
-
"styles/skeuocard.css",
|
19
|
-
"javascripts/vendor/cssua.min.js",
|
20
|
-
"javascripts/vendor/demo.fix.js",
|
21
|
-
"javascripts/vendor/jquery-2.0.3.min.js",
|
22
|
-
"javascripts/skeuocard.js",
|
23
|
-
"javascripts/skeuocard.min.js"
|
24
|
-
],
|
25
|
-
"ignore": [
|
26
|
-
"Gruntfile.coffee",
|
27
|
-
"package.json",
|
28
|
-
"index.html",
|
29
|
-
"screenshot.png",
|
30
|
-
"**/.*",
|
31
|
-
"node_modules",
|
32
|
-
"bower_components",
|
33
|
-
"test",
|
34
|
-
"tests"
|
35
|
-
],
|
36
|
-
"homepage": "https://github.com/kenkeiter/skeuocard",
|
37
|
-
"authors": [
|
38
|
-
"Kenneth Keiter <ken@kenkeiter.com>"
|
39
|
-
]
|
40
|
-
}
|
Binary file
|
@@ -1,138 +0,0 @@
|
|
1
|
-
<?xml version="1.0" standalone="no"?>
|
2
|
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3
|
-
<svg xmlns="http://www.w3.org/2000/svg">
|
4
|
-
<metadata></metadata>
|
5
|
-
<defs>
|
6
|
-
<font id="ocraregular" horiz-adv-x="1480" >
|
7
|
-
<font-face units-per-em="2048" ascent="1638" descent="-410" />
|
8
|
-
<missing-glyph horiz-adv-x="500" />
|
9
|
-
<glyph />
|
10
|
-
<glyph />
|
11
|
-
<glyph unicode="
" />
|
12
|
-
<glyph unicode=" " />
|
13
|
-
<glyph unicode="!" d="M586 104v86q0 43 30.5 73t73.5 30h101q43 0 73.5 -30t30.5 -73v-86q0 -43 -30.5 -73.5t-73.5 -30.5h-101q-43 0 -73.5 30.5t-30.5 73.5zM586 1495q0 41 30.5 71.5t73.5 30.5h101q41 0 72.5 -28.5t31.5 -67.5v-6l-51 -784q0 -43 -31 -73t-72 -30q-43 0 -71.5 30t-32.5 73z " />
|
14
|
-
<glyph unicode=""" d="M227 1495q0 6 4 27v75h1020v-65q4 -16 4 -25q0 -12 -4 -32v-29q-41 -152 -100 -475q-20 -102 -107 -103q-41 0 -73.5 27t-32.5 63q0 2 1 6.5t1 6.5l-84 420h-233l-86 -439q-6 -35 -35 -59.5t-66 -24.5t-65.5 23.5t-36.5 60.5z" />
|
15
|
-
<glyph unicode="#" d="M231 713q0 41 30 71.5t73 30.5h100v227h-100q-43 0 -73 31t-30 74t30 72.5t73 29.5h100v246q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-246h199v246q0 41 30.5 71.5t73.5 30.5t73 -30.5t30 -71.5v-246h100q43 0 73.5 -29.5t30.5 -72.5t-30.5 -74t-73.5 -31h-100v-227 h100q43 0 73.5 -30.5t30.5 -71.5q0 -43 -30.5 -74t-73.5 -31h-100v-243q0 -43 -30 -74t-73 -31t-73.5 31t-30.5 74v243h-199v-243q0 -43 -30.5 -74t-73.5 -31t-73 31t-30 74v243h-100q-43 0 -73 31t-30 74zM641 815h199v227h-199v-227z" />
|
16
|
-
<glyph unicode="$" d="M231 451q0 43 30 73.5t73 30.5h710v139h-710q-43 0 -73 31t-30 74v348q0 43 30 72.5t73 29.5h303v246q0 41 30.5 71.5t73.5 30.5q41 0 72 -30.5t31 -71.5v-246h303q43 0 73.5 -29.5t30.5 -72.5t-30.5 -74t-73.5 -31h-711v-139h711q43 0 73.5 -30.5t30.5 -73.5v-348 q0 -43 -30.5 -73t-73.5 -30h-303v-244q0 -43 -31 -73.5t-72 -30.5q-43 0 -73.5 30.5t-30.5 73.5v244h-303q-43 0 -73 30t-30 73z" />
|
17
|
-
<glyph unicode="%" d="M231 276q0 41 21 64l813 1044q29 39 82 39q43 0 73.5 -29.5t30.5 -72.5q0 -37 -22 -64l-813 -1044q-29 -39 -82 -39q-43 0 -73 29.5t-30 72.5zM231 1321v174q0 41 30 71.5t73 30.5h203q43 0 73.5 -30.5t30.5 -71.5v-174q0 -43 -30.5 -73.5t-73.5 -30.5h-203 q-43 0 -73 30.5t-30 73.5zM840 104v172q0 43 30.5 74t73.5 31h203q43 0 73.5 -31t30.5 -74v-172q0 -43 -30.5 -73.5t-73.5 -30.5h-203q-43 0 -73.5 30.5t-30.5 73.5z" />
|
18
|
-
<glyph unicode="&" d="M231 309v142q0 49 35 79l189 162l-197 209q-27 31 -27 72v141q0 127 91.5 218t218.5 91h196q127 0 218.5 -91t91.5 -218v-141q0 -51 -35 -80l-256 -219l219 -234l104 90q31 25 68 25q43 0 73.5 -30.5t30.5 -73.5q0 -27 -16 -53.5t-31.5 -41t-49.5 -39t-38 -28.5l107 -115 q29 -33 28 -70q0 -43 -30.5 -73.5t-73.5 -30.5q-47 0 -76 33l-113 121l-151 -129q-31 -25 -66 -25h-200q-127 0 -218.5 91t-91.5 218zM438 309q0 -43 31 -72.5t72 -29.5h161l115 98l-219 234l-160 -136v-94zM438 1014l174 -187l228 193v94q0 41 -31 72t-72 31h-196 q-41 0 -72 -30t-31 -73v-100z" />
|
19
|
-
<glyph unicode="'" d="M535 799v696q0 41 30.5 71.5t73.5 30.5h203q43 0 73.5 -30.5t30.5 -71.5q0 -10 -4 -31l-203 -690q-10 -35 -36.5 -56.5t-63.5 -21.5q-43 0 -73.5 30t-30.5 73z" />
|
20
|
-
<glyph unicode="(" d="M535 602v393q0 141 88 256l239 308q33 39 82 38q43 0 73 -30.5t30 -71.5q0 -35 -21 -65l-240 -306q-45 -59 -45 -129v-393q0 -70 45 -129l240 -305q20 -31 21 -64q0 -43 -30 -73.5t-73 -30.5q-49 0 -82 39l-239 307q-88 115 -88 256z" />
|
21
|
-
<glyph unicode=")" d="M434 104q0 33 21 64l239 305q45 59 45 129v393q0 70 -45 129l-239 306q-20 31 -21 65q0 41 30 71.5t73 30.5q49 0 81 -38l240 -308q88 -115 88 -256v-393q0 -141 -88 -256l-240 -307q-33 -39 -81 -39q-43 0 -73 30.5t-30 73.5z" />
|
22
|
-
<glyph unicode="*" d="M231 451q0 49 35 79l314 269l-314 268q-35 31 -35 80q0 43 30 72.5t73 29.5q39 0 67 -24l236 -201v297q0 43 30.5 72.5t73.5 29.5q41 0 72 -29.5t31 -72.5v-297l235 201q27 25 68 24q43 0 73.5 -29.5t30.5 -72.5q0 -47 -37 -80l-313 -268l313 -269q37 -33 37 -79 q0 -43 -30.5 -73t-73.5 -30q-41 0 -68 25l-235 200v-297q0 -43 -31 -72.5t-72 -29.5q-43 0 -73.5 29.5t-30.5 72.5v297l-236 -200q-29 -25 -67 -25q-43 0 -73 30t-30 73z" />
|
23
|
-
<glyph unicode="+" d="M231 799q0 43 30 73.5t73 30.5h303v303q0 41 30.5 72t73.5 31q41 0 72 -31t31 -72v-303h303q43 0 73.5 -30.5t30.5 -73.5t-30.5 -73t-73.5 -30h-303v-303q0 -43 -31 -73.5t-72 -30.5q-43 0 -73.5 30.5t-30.5 73.5v303h-303q-43 0 -73 30t-30 73z" />
|
24
|
-
<glyph unicode="," d="M434 625q0 43 30 73.5t73 30.5h407q43 0 73 -30.5t30 -73.5v-521q0 -43 -30 -73.5t-73 -30.5t-73.5 30.5t-30.5 73.5v418h-303q-43 0 -73 30t-30 73z" />
|
25
|
-
<glyph unicode="-" d="M231 713v86q0 43 30 73.5t73 30.5h813q43 0 73.5 -30.5t30.5 -73.5v-86q0 -43 -30.5 -74t-73.5 -31h-813q-43 0 -73 31t-30 74z" />
|
26
|
-
<glyph unicode="." d="M535 365v174q0 43 30.5 72.5t73.5 29.5h203q43 0 73.5 -29.5t30.5 -72.5v-174q0 -43 -30.5 -74t-73.5 -31h-203q-43 0 -73.5 31t-30.5 74z" />
|
27
|
-
<glyph unicode="/" d="M231 104q0 27 13 52l813 1390q31 51 90 51q43 0 73.5 -30.5t30.5 -71.5q0 -25 -14 -53l-813 -1391q-31 -51 -90 -51q-43 0 -73 30.5t-30 73.5z" />
|
28
|
-
<glyph unicode="0" d="M231 207v1184q0 84 61.5 145t145.5 61h606q82 0 144.5 -61t62.5 -145v-1184q0 -84 -62.5 -145.5t-144.5 -61.5h-606q-84 0 -145.5 61.5t-61.5 145.5zM438 207h606v1184h-606v-1184z" />
|
29
|
-
<glyph unicode="1" d="M231 104q0 41 30 72t73 31h303v1184h-303q-43 0 -73 30.5t-30 73.5q0 41 30 71.5t73 30.5h510v-1390h200v418q0 43 30 73.5t73 30.5t73.5 -30.5t30.5 -73.5v-521q0 -43 -30.5 -73.5t-73.5 -30.5h-813q-43 0 -73 30.5t-30 73.5z" />
|
30
|
-
<glyph unicode="2" d="M231 0v696q0 84 61.5 144.5t145.5 60.5h606v490h-710q-43 0 -73 30.5t-30 73.5q0 41 30 71.5t73 30.5h710q82 0 144.5 -61t62.5 -145v-490q0 -82 -61.5 -143.5t-145.5 -61.5h-606v-489h709q43 0 73.5 -31t30.5 -72q0 -43 -30.5 -73.5t-73.5 -30.5h-916z" />
|
31
|
-
<glyph unicode="3" d="M231 104q0 41 30 72t73 31h710v385q0 41 -31.5 72.5t-72.5 31.5h-403q-43 0 -73 30t-30 73t30 73.5t73 30.5h403q43 0 73.5 31t30.5 72v385h-710q-43 0 -73 30.5t-30 73.5q0 41 30 71.5t73 30.5h710q82 0 144.5 -61t62.5 -145v-385q0 -119 -82 -207q82 -88 82 -207v-385 q0 -84 -62.5 -145.5t-144.5 -61.5h-710q-43 0 -73 30.5t-30 73.5z" />
|
32
|
-
<glyph unicode="4" d="M281 522v973q0 41 30.5 71.5t73.5 30.5t72.5 -30.5t29.5 -71.5v-766h404v592q0 43 30.5 72.5t73.5 29.5q41 0 72 -29.5t31 -72.5v-592q43 0 72.5 -30.5t29.5 -73.5t-29.5 -73t-72.5 -30v-418q0 -43 -31 -73.5t-72 -30.5q-43 0 -73.5 30.5t-30.5 73.5v418h-610z" />
|
33
|
-
<glyph unicode="5" d="M231 190q0 43 30 73t73 30q25 0 41 -8l184 -78h485v489h-610v901h713q43 0 73.5 -30.5t30.5 -71.5q0 -43 -30.5 -73.5t-73.5 -30.5h-506v-488h403q82 0 144.5 -62.5t62.5 -144.5v-489q0 -84 -62.5 -145.5t-144.5 -61.5h-464q-41 0 -83 10t-69 21.5t-72 33t-63 29.5 q-62 26 -62 96z" />
|
34
|
-
<glyph unicode="6" d="M231 104v1391q0 41 30 71.5t73 30.5h102q43 0 73 -30.5t30 -71.5q0 -43 -30 -73.5t-73 -30.5v-662h711q43 0 73.5 -30.5t30.5 -73.5v-521q0 -43 -30.5 -73.5t-73.5 -30.5h-813q-43 0 -73 30.5t-30 73.5zM436 207h608v315h-608v-315z" />
|
35
|
-
<glyph unicode="7" d="M231 1407v88q0 41 30 71.5t73 30.5h917v-624q0 -47 -37 -80l-370 -315v-474q0 -43 -31 -73.5t-72 -30.5q-43 0 -73.5 30.5t-30.5 73.5v521q0 47 37 80l370 315v371h-608q-6 -37 -34.5 -61.5t-67.5 -24.5q-43 0 -73 29.5t-30 72.5z" />
|
36
|
-
<glyph unicode="8" d="M231 207v489q0 84 60.5 145.5t144.5 61.5v592q0 43 29 72.5t72 29.5h407q43 0 71.5 -29.5t28.5 -72.5v-592q82 0 144.5 -62.5t62.5 -144.5v-489q0 -84 -62.5 -145.5t-144.5 -61.5h-608q-84 0 -144.5 61.5t-60.5 145.5zM436 207h608v489h-608v-489zM641 903h199v488h-199 v-488z" />
|
37
|
-
<glyph unicode="9" d="M231 973v522q0 41 30 71.5t73 30.5h813q43 0 73.5 -30.5t30.5 -71.5v-1391q0 -43 -30.5 -73.5t-73.5 -30.5h-103q-43 0 -72.5 30.5t-29.5 73.5q0 41 29.5 72t72.5 31v661h-710q-43 0 -73 31t-30 74zM436 1075h608v316h-608v-316z" />
|
38
|
-
<glyph unicode=":" d="M535 365v174q0 43 30.5 72.5t73.5 29.5h203q43 0 73.5 -29.5t30.5 -72.5v-174q0 -43 -30.5 -74t-73.5 -31h-203q-43 0 -73.5 31t-30.5 74zM535 1059v174q0 43 30.5 73.5t73.5 30.5h203q43 0 73.5 -30.5t30.5 -73.5v-174q0 -43 -30.5 -73t-73.5 -30h-203q-43 0 -73.5 30 t-30.5 73z" />
|
39
|
-
<glyph unicode=";" d="M434 625q0 43 30 73.5t73 30.5h407q43 0 73 -30.5t30 -73.5v-521q0 -43 -30 -73.5t-73 -30.5t-73.5 30.5t-30.5 73.5v418h-303q-43 0 -73 30t-30 73zM434 1147v174q0 43 30 72.5t73 29.5h204q41 0 72 -29.5t31 -72.5v-174q0 -43 -31 -74t-72 -31h-204q-43 0 -73 31 t-30 74z" />
|
40
|
-
<glyph unicode="<" d="M231 754v88q0 59 50 90l813 477q23 14 53 14q43 0 73.5 -29.5t30.5 -72.5q0 -57 -51 -90l-735 -432l735 -432q51 -33 51 -91q0 -43 -30.5 -72.5t-73.5 -29.5q-31 0 -53 14l-813 478q-50 31 -50 88z" />
|
41
|
-
<glyph unicode="=" d="M231 625q0 43 30 73.5t73 30.5h813q43 0 73.5 -30.5t30.5 -73.5t-30.5 -73t-73.5 -30h-813q-43 0 -73 30t-30 73zM231 1059q0 43 30 73.5t73 30.5h813q43 0 73.5 -30.5t30.5 -73.5t-30.5 -73t-73.5 -30h-813q-43 0 -73 30t-30 73z" />
|
42
|
-
<glyph unicode=">" d="M231 276q0 59 50 91l737 432l-737 432q-49 31 -50 90q0 43 30 72.5t73 29.5q31 0 53 -14l813 -477q51 -33 51 -90v-86q0 -59 -41 -84l-823 -484q-23 -14 -53 -14q-43 0 -73 29.5t-30 72.5z" />
|
43
|
-
<glyph unicode="?" d="M231 973q0 49 35 78l611 522q31 25 67.5 24.5t67.5 -24.5l202 -174q37 -31 37 -78v-174q0 -47 -37 -80l-573 -489v-127q0 -43 -30.5 -73t-73.5 -30t-73 30t-30 73v174q0 51 35 80l575 489v78l-100 86l-543 -465q-31 -25 -67 -25q-43 0 -73 31t-30 74zM434 104q0 41 30 72 t73 31t73.5 -31t30.5 -72q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5z" />
|
44
|
-
<glyph unicode="@" d="M231 307v375q0 127 90.5 217t215.5 90h204q41 0 72 -30.5t31 -73.5v-578q0 -41 29.5 -70.5t70.5 -29.5t70.5 29.5t29.5 70.5v926q0 66 -47 112t-110 46h-293q-51 0 -97 -36t-71 -83q-29 -55 -92 -55q-43 0 -73 30.5t-30 73.5q0 74 111 174q113 102 252 102h293 q150 0 257 -108.5t107 -255.5v-926q0 -125 -91 -216t-216 -91q-117 0 -203 80q-90 -80 -204 -80q-125 0 -215.5 90t-90.5 217zM438 307q0 -41 29 -70.5t70 -29.5t70.5 29.5t29.5 70.5v475h-100q-41 0 -70 -29.5t-29 -70.5v-375z" />
|
45
|
-
<glyph unicode="A" d="M225 104l416 1420q10 33 37 53t61.5 20t63 -20.5t37.5 -52.5l413 -1420q0 -43 -31.5 -73.5t-74.5 -30.5q-35 0 -61.5 20.5t-36.5 53.5l-80 274h-457l-80 -274q-10 -33 -37.5 -53.5t-62.5 -20.5q-43 0 -75 30.5t-32 73.5zM573 555h334l-168 569z" />
|
46
|
-
<glyph unicode="B" d="M231 0v1597h607q168 0 290.5 -122.5t122.5 -290.5v-76q0 -182 -143 -309q143 -127 143 -310v-75q0 -168 -122.5 -291t-290.5 -123h-607zM438 207h400q84 0 145 62.5t61 144.5v75q0 84 -61 145.5t-145 61.5h-400v-489zM438 903h400q84 0 145 61.5t61 143.5v76 q0 82 -61 144.5t-145 62.5h-400v-488z" />
|
47
|
-
<glyph unicode="C" d="M231 799q0 109 50 211l206 417q33 74 110 122t169 48h381q43 0 73.5 -30.5t30.5 -71.5q0 -43 -30.5 -73.5t-73.5 -30.5h-381q-63 0 -90 -58l-211 -415q-27 -57 -27 -119t27 -119l211 -416q27 -57 90 -57h381q43 0 73.5 -31t30.5 -72q0 -43 -30.5 -73.5t-73.5 -30.5h-381 q-90 0 -165 49t-112 123q-152 289 -208 416q-50 105 -50 211z" />
|
48
|
-
<glyph unicode="D" d="M231 104q0 41 30 72t73 31h100v1184h-100q-43 0 -73 30.5t-30 73.5q0 41 30 71.5t73 30.5h381q90 0 164.5 -49t111.5 -123l209 -415q51 -106 51 -211t-51 -211l-207 -418q-33 -74 -109.5 -122t-168.5 -48h-381q-43 0 -73 30.5t-30 73.5zM641 207h74q63 0 90 57l211 416 q29 70 28 119q0 61 -28 119l-211 415q-27 57 -90 58h-74v-1184z" />
|
49
|
-
<glyph unicode="E" d="M231 0v1597h916q43 0 73.5 -30.5t30.5 -71.5q0 -43 -30.5 -73.5t-73.5 -30.5h-709v-488h303q41 0 72 -30.5t31 -73.5t-31 -73t-72 -30h-303v-489h709q43 0 73.5 -31t30.5 -72q0 -43 -30.5 -73.5t-73.5 -30.5h-916z" />
|
50
|
-
<glyph unicode="F" d="M231 104v1493h916q43 0 73.5 -30.5t30.5 -71.5q0 -43 -30.5 -73.5t-73.5 -30.5h-709v-316h506q43 0 73 -29.5t30 -72.5t-30 -74t-73 -31h-506v-764q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5z" />
|
51
|
-
<glyph unicode="G" d="M231 311v555q0 141 86 252l279 361q91 118 243 118h3h305q43 0 73.5 -30.5t30.5 -71.5q0 -43 -30.5 -73.5t-73.5 -30.5h-305q-51 0 -82 -41l-279 -357q-43 -57 -43 -127v-555q0 -43 31 -73.5t72 -30.5h399q41 0 72.5 30.5t31.5 73.5v211h-202q-43 0 -73 30t-30 73 t30 73.5t73 30.5h409v-418q0 -127 -92 -219t-219 -92h-399q-129 0 -219.5 91t-90.5 220z" />
|
52
|
-
<glyph unicode="H" d="M231 104v1391q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-592h606v592q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-1391q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5v592h-606v-592q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5z" />
|
53
|
-
<glyph unicode="I" d="M231 104q0 41 30 72t73 31h303v1184h-303q-43 0 -73 30.5t-30 73.5q0 41 30 71.5t73 30.5h813q43 0 73.5 -30.5t30.5 -71.5q0 -43 -30.5 -73.5t-73.5 -30.5h-303v-1184h303q43 0 73.5 -31t30.5 -72q0 -43 -30.5 -73.5t-73.5 -30.5h-813q-43 0 -73 30.5t-30 73.5z" />
|
54
|
-
<glyph unicode="J" d="M332 309v316q0 43 30.5 73.5t73.5 30.5t73 -30.5t30 -73.5v-316q0 -43 30.5 -72.5t73.5 -29.5h195q43 0 73.5 30.5t30.5 71.5v1186q0 41 29.5 71.5t72.5 30.5t74 -30.5t31 -71.5v-1186q0 -127 -92 -218t-219 -91h-195q-127 0 -219 91t-92 218z" />
|
55
|
-
<glyph unicode="K" d="M231 104v1391q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-471l641 549q30 24 65 24h3q43 0 73.5 -30.5t30.5 -71.5q0 -49 -37 -80l-720 -616l720 -617q37 -31 37 -78q0 -43 -30.5 -73.5t-73.5 -30.5q-37 0 -68 25l-641 548v-469q0 -43 -30.5 -73.5t-73.5 -30.5 t-73 30.5t-30 73.5z" />
|
56
|
-
<glyph unicode="L" d="M231 0v1495q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-1288h709q43 0 73.5 -31t30.5 -72q0 -43 -30.5 -73.5t-73.5 -30.5h-916z" />
|
57
|
-
<glyph unicode="M" d="M231 104v1493h258l252 -358l250 358h260v-1493q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5v1209l-200 -287v-53q0 -43 -31 -74t-72 -31q-43 0 -73.5 31t-30.5 74v53l-199 283v-1205q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5z" />
|
58
|
-
<glyph unicode="N" d="M231 104v1493h273l540 -1232v1130q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-1495h-274l-539 1229v-1125q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5z" />
|
59
|
-
<glyph unicode="O" d="M231 799q0 109 50 211l219 440q33 63 97.5 105t141.5 42q80 0 144.5 -42t97.5 -105l219 -440q51 -106 51 -211t-51 -211l-219 -441q-33 -63 -97.5 -105t-144.5 -42q-78 0 -142.5 42t-96.5 105l-219 441q-50 94 -50 211zM438 798.5q0 -61.5 27 -118.5l221 -438 q16 -35 53 -35q41 0 58 33l219 440q29 70 28 119q0 61 -28 119l-221 436q-16 37 -56 37q-35 0 -53 -37l-221 -436q-27 -58 -27 -119.5z" />
|
60
|
-
<glyph unicode="P" d="M231 104v1493h709q127 0 219 -91t92 -218v-368q0 -127 -92 -219.5t-219 -92.5h-502v-504q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5zM438 815h502q41 0 72.5 31t31.5 74v368q0 41 -31.5 72t-72.5 31h-502v-576z" />
|
61
|
-
<glyph unicode="Q" d="M231 252v577q0 193 144 318l461 389q66 61 161 61q102 0 178 -74.5t76 -176.5v-578q0 -47 -8 -89t-28.5 -80t-35 -63.5t-50 -60.5t-50 -48t-59.5 -50t-55 -45l49 -125h133q43 0 73.5 -31t30.5 -72q0 -43 -30.5 -73.5t-73.5 -30.5h-275l-75 193l-154 -132 q-70 -61 -162 -61q-102 0 -176 75t-74 177zM438 252q0 -45 43 -45h17l221 188l-76 193q-6 14 -6 37q0 43 30.5 73.5t73.5 30.5q27 0 47.5 -11t36 -38t23.5 -44.5t20.5 -54t16.5 -44.5q8 8 39.5 33.5t46 39t35 40t29.5 55t9 63.5v578q0 18 -13 30.5t-34 12.5h-14l-475 -400 q-70 -61 -70 -160v-577z" />
|
62
|
-
<glyph unicode="R" d="M231 104v1493h709q127 0 219 -92t92 -219v-106q0 -127 -93 -219.5t-218 -92.5h-119l416 -712q14 -29 14 -52q0 -43 -30.5 -73.5t-73.5 -30.5q-59 0 -90 51l-477 817h-142v-764q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5zM438 1075h502q41 0 72.5 32t31.5 73v106 q0 43 -31.5 74t-72.5 31h-502v-316z" />
|
63
|
-
<glyph unicode="S" d="M231 276q0 43 30 74t73 31t73.5 -31t30.5 -74q0 -29 20.5 -49t49.5 -20h510q27 0 26 26l-765 988q-47 66 -48 143v6q0 92 69 159.5t163 67.5h510q113 0 195.5 -81.5t82.5 -194.5q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5q0 27 -21.5 48.5t-49.5 21.5h-510 q-25 0 -25 -21v-6v-8l762 -979q51 -61 51 -144q-4 -96 -70.5 -164.5t-162.5 -68.5h-510q-113 0 -195 81.5t-82 194.5z" />
|
64
|
-
<glyph unicode="T" d="M231 1321v276h1020v-276q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5v70h-200v-1287q0 -43 -31 -73.5t-72 -30.5q-43 0 -73.5 30.5t-30.5 73.5v1287h-199v-70q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5z" />
|
65
|
-
<glyph unicode="U" d="M231 309v1186q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-1186q0 -43 31 -72.5t72 -29.5h399q41 0 72.5 30.5t31.5 71.5v1186q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-1186q0 -127 -92 -218t-219 -91h-399q-127 0 -218.5 91t-91.5 218z" />
|
66
|
-
<glyph unicode="V" d="M231 1124v371q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-330l303 -774l303 774v330q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-369l-413 -1060q-27 -66 -97 -66q-72 0 -98 66z" />
|
67
|
-
<glyph unicode="W" d="M231 250v1245q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-1190l58 -98h84q4 6 24.5 45t32.5 59v662q0 43 30.5 72.5t73.5 29.5q41 0 72 -29.5t31 -72.5v-662q12 -20 32.5 -59t24.5 -45h84l59 98v1190q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-1245l-116 -199 q-31 -51 -91 -51h-200q-66 0 -103 72q-43 -72 -104 -72h-199q-61 0 -92 51z" />
|
68
|
-
<glyph unicode="X" d="M231 104q0 27 13 52l377 643l-377 643q-12 25 -13 53q0 41 30 71.5t73 30.5q59 0 90 -51l317 -540l316 540q31 51 90 51q43 0 73.5 -30.5t30.5 -71.5q0 -25 -14 -53l-377 -643l377 -643q14 -29 14 -52q0 -43 -30.5 -73.5t-73.5 -30.5q-59 0 -90 51l-316 541l-317 -541 q-31 -51 -90 -51q-43 0 -73 30.5t-30 73.5z" />
|
69
|
-
<glyph unicode="Y" d="M231 1284v211q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-139l303 -389l301 389v139q0 41 31 71.5t74 30.5t73.5 -30.5t30.5 -71.5v-211l-407 -520v-660q0 -43 -31 -73.5t-72 -30.5q-43 0 -73.5 30.5t-30.5 73.5v660z" />
|
70
|
-
<glyph unicode="Z" d="M229 131l738 1260h-633q-43 0 -73 30.5t-30 73.5q0 41 30 71.5t73 30.5h917v-131l-737 -1259h633q43 0 73.5 -31t30.5 -72q0 -43 -30.5 -73.5t-73.5 -30.5h-916z" />
|
71
|
-
<glyph unicode="[" d="M231 104v1391q0 41 30 71.5t73 30.5h813q43 0 73.5 -30.5t30.5 -71.5q0 -43 -30.5 -73.5t-73.5 -30.5h-406v-1184h406q43 0 73.5 -31t30.5 -72q0 -43 -30.5 -73.5t-73.5 -30.5h-813q-43 0 -73 30.5t-30 73.5zM436 207h99v1184h-99v-1184z" />
|
72
|
-
<glyph unicode="\" d="M231 1495q0 41 30 71.5t73 30.5q59 0 90 -51l813 -1390q14 -29 14 -52q0 -43 -30.5 -73.5t-73.5 -30.5q-59 0 -90 51l-813 1391q-13 24 -13 53z" />
|
73
|
-
<glyph unicode="]" d="M231 104q0 41 30 72t73 31h405v1184h-405q-43 0 -73 30.5t-30 73.5q0 41 30 71.5t73 30.5h813q43 0 73.5 -30.5t30.5 -71.5v-1391q0 -43 -30.5 -73.5t-73.5 -30.5h-813q-43 0 -73 30.5t-30 73.5zM946 207h98v1184h-98v-1184z" />
|
74
|
-
<glyph unicode="_" d="M231 -102q0 41 30 71.5t73 30.5h813q43 0 73.5 -30.5t30.5 -71.5q0 -43 -30.5 -74t-73.5 -31h-813q-43 0 -73 31t-30 74z" />
|
75
|
-
<glyph unicode="`" d="M332 1495q0 41 30.5 71.5t73.5 30.5h203q53 0 82 -38l416 -537q12 -23 12 -49q0 -43 -31 -74t-74 -31q-33 0 -65 25l-610 522q-37 31 -37 80z" />
|
76
|
-
<glyph unicode="a" d="M231 307v115q0 127 90.5 217t215.5 90h395q49 0 90 -14q0 14 -1 48t-2 49t-4 44t-9.5 42t-17.5 29.5t-28.5 22.5t-41.5 6h-381q-43 0 -73 30t-30 73t30 73.5t73 30.5h381q125 0 214 -87t93 -210l26 -764q0 -43 -31.5 -72.5t-74.5 -29.5q-41 0 -71 30.5t-30 71.5l-151 -88 q-20 -14 -51 -14h-305q-125 0 -215.5 90t-90.5 217zM438 307q0 -41 29 -70.5t70 -29.5h276l219 129v90q0 37 -31.5 66.5t-68.5 29.5h-395q-39 0 -69 -29.5t-30 -70.5v-115z" />
|
77
|
-
<glyph unicode="b" d="M231 104v1391q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-463q139 131 277 131h153q27 0 51.5 -3t49 -14t39 -16.5t39 -25t31.5 -24.5t35 -28.5t30 -25.5q109 -94 108 -233v-422q0 -33 -4 -60.5t-18.5 -54.5t-21.5 -42t-33.5 -42t-31.5 -33t-40 -37l-35 -28 q-84 -74 -199 -74h-153q-59 0 -114.5 22.5t-85.5 46t-77 66.5v-31q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5zM438 459q0 -47 35 -76l176 -152q24 -24 63 -24h3h153q29 0 51.5 12t53.5 43t35 33q37 29 36 76v422q0 29 -13 49t-45 46.5t-34 29.5q-42 38 -82 38h-2 h-153q-41 0 -66 -24l-176 -152q-35 -23 -35 -75v-246z" />
|
78
|
-
<glyph unicode="c" d="M231 459v246q0 141 107 233q23 18 75 68.5t85.5 78t93 53t123.5 25.5h432q43 0 73.5 -30.5t30.5 -73.5t-30.5 -73t-73.5 -30h-432q-41 0 -66 -24l-176 -152q-35 -23 -35 -75v-246q0 -47 35 -78l176 -150q24 -24 63 -24h3h432q43 0 73.5 -31t30.5 -72q0 -43 -30.5 -73.5 t-73.5 -30.5h-432q-117 0 -201 74l-176 151q-107 93 -107 234z" />
|
79
|
-
<glyph unicode="d" d="M231 371v422q0 98 43 158.5t123 125.5q10 8 17 13q83 73 195 73h3h154q33 0 63.5 -7t50 -14t50.5 -27.5t39 -27t39.5 -35t35.5 -30.5v473q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-1391q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5v33q-47 -45 -76.5 -68.5 t-85 -46t-116.5 -22.5h-154q-23 0 -42 2t-38.5 8t-34 11.5t-31.5 15.5t-27.5 16t-28 20.5t-23.5 19.5t-25.5 22.5t-23.5 21.5q-107 89 -107 234zM438 371q0 -25 12.5 -47.5t25.5 -35t38 -31.5t33 -26q30 -24 62 -24h3h154q37 0 65 24l177 152q37 27 36 76v246q0 43 -36 75 l-177 152q-24 24 -62 24h-3h-154q-29 0 -52 -13t-50 -39.5t-35 -33.5q-37 -33 -37 -77v-422z" />
|
80
|
-
<glyph unicode="e" d="M231 371v422q0 72 33 133t59.5 85.5t90.5 78.5q83 73 195 73h3h256q20 0 40 -2t40.5 -8t32.5 -10t32.5 -16.5t28 -16.5t28 -21.5t24.5 -19.5t26 -22l23 -21q109 -94 108 -233v-254q0 -43 -30.5 -74t-73.5 -31h-709v-63q0 -25 12.5 -47.5t25.5 -35t38 -31.5t33 -26 q30 -24 62 -24h3h535q43 0 73.5 -31t30.5 -72q0 -43 -30.5 -73.5t-73.5 -30.5h-535q-23 0 -42 2t-38.5 8t-34 11.5t-31.5 15.5t-27.5 16t-28 20.5t-23.5 19.5t-25.5 22.5t-23.5 21.5q-107 89 -107 234zM438 641h606v152q0 53 -61 108t-115 55h-256q-29 0 -51 -12t-53 -43 t-35 -33q-35 -29 -35 -75v-152z" />
|
81
|
-
<glyph unicode="f" d="M281 1059q0 43 29.5 73.5t72.5 30.5h100v70q0 152 106.5 258t258.5 106h248q43 0 72.5 -30.5t29.5 -71.5q0 -43 -29.5 -73.5t-72.5 -30.5h-248q-66 0 -112 -46.5t-46 -111.5v-70h203q41 0 71.5 -30.5t30.5 -73.5t-30.5 -73t-71.5 -30h-203v-852q0 -43 -29.5 -73.5 t-72.5 -30.5t-74 30.5t-31 73.5v852h-100q-43 0 -72.5 30t-29.5 73z" />
|
82
|
-
<glyph unicode="g" d="M231 459v334q0 23 3.5 45t6.5 38.5t14 37t15 30.5t20.5 29.5t20.5 26t25.5 24.5t25 21.5t27 22.5t25.5 22q83 73 195 73h3h154q33 0 63.5 -7t50 -14t50.5 -27.5t39 -27t39.5 -35t35.5 -30.5v37q0 43 30 73.5t73 30.5t73.5 -30.5t30.5 -73.5v-1122q0 -33 -4 -61 t-18.5 -54.5t-21.5 -42t-33.5 -42t-31.5 -32.5t-40 -37l-35 -28q-84 -74 -199 -74h-432q-43 0 -73.5 29.5t-30.5 72.5t30.5 74t73.5 31h432q29 0 52.5 14t52 41t35.5 33q37 29 36 76v288q-47 -43 -77.5 -67.5t-86 -48t-114.5 -23.5h-154q-31 0 -62.5 7t-50 13.5t-49 28 t-37.5 26.5t-40 36l-35 28q-107 93 -107 234zM436 459q0 -55 60.5 -110.5t115.5 -55.5h154q41 0 65 24l177 152q37 29 36 76v160q0 43 -36 75l-177 152q-24 24 -62 24h-3h-154q-31 0 -54 -14t-48 -38.5t-37 -33.5q-37 -37 -37 -77v-334z" />
|
83
|
-
<glyph unicode="h" d="M231 104v1391q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-506l197 125q78 49 166 49h117q125 0 214 -87t93 -210l24 -762q0 -43 -29.5 -73.5t-72.5 -30.5q-41 0 -72 29.5t-31 70.5l-26 760q-4 39 -32 67.5t-68 28.5h-146l-334 -215v-637q0 -43 -30.5 -73.5 t-73.5 -30.5t-73 30.5t-30 73.5z" />
|
84
|
-
<glyph unicode="i" d="M332 104q0 41 30.5 72t73.5 31h203v749h-203q-43 0 -73.5 30t-30.5 73t30.5 73.5t73.5 30.5h305q41 0 72 -30.5t31 -73.5v-852h200q43 0 74 -31t31 -72q0 -43 -31 -73.5t-74 -30.5h-608q-43 0 -73.5 30.5t-30.5 73.5zM535 1495v86q0 43 30.5 72.5t73.5 29.5h102 q41 0 72 -29.5t31 -72.5v-86q0 -43 -31 -73.5t-72 -30.5h-102q-43 0 -73.5 30.5t-30.5 73.5z" />
|
85
|
-
<glyph unicode="j" d="M332 -158q0 43 30.5 74t73.5 31q41 0 65.5 -28t34 -59.5t35 -59t68.5 -27.5h201q41 0 72.5 29.5t31.5 70.5v1083h-305q-43 0 -73.5 30t-30.5 73t30.5 73.5t73.5 30.5h405q43 0 74 -30.5t31 -73.5v-1186q0 -127 -91 -217t-218 -90h-201q-115 0 -203 75.5t-104 184.5v16z M840 1495v86q0 43 30.5 72.5t73.5 29.5h100q43 0 74 -29.5t31 -72.5v-86q0 -43 -31 -73.5t-74 -30.5h-100q-43 0 -73.5 30.5t-30.5 73.5z" />
|
86
|
-
<glyph unicode="k" d="M231 104v1391q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-817l541 461q28 24 62 24h3q43 0 74 -30.5t31 -73.5q0 -47 -37 -78l-416 -356l518 -443q37 -31 37 -78q0 -43 -29.5 -73.5t-72.5 -30.5q-39 0 -70 25l-542 464l-99 -86v-299q0 -43 -30.5 -73.5t-73.5 -30.5 t-73 30.5t-30 73.5z" />
|
87
|
-
<glyph unicode="l" d="M332 104q0 41 30.5 72t73.5 31h201v1184h-201q-43 0 -73.5 30.5t-30.5 73.5q0 41 30.5 71.5t73.5 30.5h305q41 0 72 -30.5t31 -71.5v-1288h200q43 0 74 -31t31 -72q0 -43 -31 -73.5t-74 -30.5h-608q-43 0 -73.5 30.5t-30.5 73.5z" />
|
88
|
-
<glyph unicode="m" d="M215 104v955q0 43 29.5 73.5t72.5 30.5q33 0 61 -20.5t38 -50.5q83 71 173 71h3q125 0 199 -98l45 37q68 55 153 55q96 0 170 -67.5t76 -163.5l31 -822q0 -43 -30 -73.5t-73 -30.5q-41 0 -71.5 29.5t-32.5 70.5l-29 818q-4 39 -35 38h-12l-139 -118v-734q0 -43 -31 -73.5 t-72 -30.5q-43 0 -73.5 30.5t-30.5 73.5v807q0 45 -45 45h-17l-153 -133v-719q0 -43 -31 -73.5t-74 -30.5t-72.5 30.5t-29.5 73.5z" />
|
89
|
-
<glyph unicode="n" d="M231 104v955q0 43 30 73.5t73 30.5t73.5 -30.5t30.5 -73.5v-70l197 125q78 49 166 49h117q125 0 214 -87t93 -210l24 -762q0 -43 -29.5 -73.5t-72.5 -30.5q-41 0 -72 29.5t-31 70.5l-26 760q-4 39 -32 67.5t-68 28.5h-146l-334 -215v-637q0 -43 -30.5 -73.5t-73.5 -30.5 t-73 30.5t-30 73.5z" />
|
90
|
-
<glyph unicode="o" d="M231 371v422q0 72 33 133t59.5 85.5t90.5 78.5q83 73 195 73h3h256q27 0 51.5 -3t49 -14t39 -16.5t39 -25t31.5 -24.5t35 -28.5t30 -25.5q109 -94 108 -233v-422q0 -33 -4 -60.5t-18.5 -54.5t-21.5 -42t-33.5 -42t-31.5 -33t-40 -37l-35 -28q-84 -74 -199 -74h-256 q-33 0 -62.5 7t-50 14.5t-48 26t-39 26.5t-39 32.5t-35.5 30.5q-107 89 -107 234zM438 371q0 -25 12.5 -47.5t25.5 -35t38 -31.5t33 -26q30 -24 62 -24h3h256q29 0 51.5 12t53.5 43t35 33q37 29 36 76v422q0 53 -61 108t-115 55h-256q-29 0 -51 -12t-53 -43t-35 -33 q-35 -29 -35 -75v-422z" />
|
91
|
-
<glyph unicode="p" d="M231 -332v1436q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-55q4 4 23.5 24.5t26 25.5t24.5 22.5t28.5 23.5t29 19.5t33.5 18.5t34.5 12t41 9t44.5 2h43q59 0 115.5 -24.5t84 -46t78.5 -68.5q4 -4 53.5 -46t61.5 -57.5t42 -54.5t40 -77.5t10 -86.5v-329 q0 -139 -108 -234l-176 -151q-84 -74 -201 -74h-43q-63 0 -119.5 24.5t-89.5 53t-76 76.5v-443q0 -43 -30.5 -72.5t-73.5 -29.5t-73 29.5t-30 72.5zM438 449q0 -25 10.5 -46.5t20.5 -33t31.5 -29.5t27.5 -25q14 -14 39 -39.5t45.5 -46t38.5 -36.5q29 -29 72 -29h43 q41 0 65 24l179 152q35 27 34 76v329q0 49 -34 76l-179 154q-24 24 -62 24h-3h-43q-43 0 -72 -28l-184 -187q-29 -23 -29 -69v-266z" />
|
92
|
-
<glyph unicode="q" d="M231 371v422q0 98 43 158.5t123 125.5q10 8 17 13q83 73 195 73h3h154q33 0 63.5 -7t50 -14t50.5 -27.5t39 -27t39.5 -35t35.5 -30.5v37q0 43 30 73.5t73 30.5t73.5 -30.5t30.5 -73.5v-1391q0 -43 -30.5 -72.5t-73.5 -29.5t-73 29.5t-30 72.5v469q-47 -45 -76.5 -68.5 t-85 -46t-116.5 -22.5h-154q-23 0 -42 2t-38.5 8t-34 11.5t-31.5 15.5t-27.5 16t-28 20.5t-23.5 19.5t-25.5 22.5t-23.5 21.5q-107 89 -107 234zM438 371q0 -25 12.5 -47.5t25.5 -35t38 -31.5t33 -26q30 -24 62 -24h3h154q37 0 65 24l177 152q37 27 36 76v246q0 43 -36 75 l-177 152q-24 24 -62 24h-3h-154q-29 0 -52 -13t-50 -39.5t-35 -33.5q-37 -33 -37 -77v-422z" />
|
93
|
-
<glyph unicode="r" d="M231 104v955q0 43 30 73.5t73 30.5t73.5 -30.5t30.5 -73.5v-121l244 209q23 16 59 16h203q125 0 216 -91t91 -216v-57q0 -43 -30.5 -73t-73.5 -30t-73 30t-30 73v57q0 41 -29.5 70.5t-70.5 29.5h-166l-340 -292v-560q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5z " />
|
94
|
-
<glyph unicode="s" d="M231 190q0 43 29 73t72 30q37 0 75.5 -30t57.5 -36q4 -2 24.5 -11t28.5 -9h416q49 0 76.5 32.5t27.5 77.5q0 70 -59 97l-567 245q-70 31 -113 99.5t-43 148.5q0 104 76 178q78 78 186 78h438q154 0 252 -129q20 -27 21 -61q0 -43 -31 -74t-74 -31q-37 0 -83 44t-85 44 h-438q-27 0 -42 -18t-15 -41q0 -37 33 -49l569 -246q78 -35 132 -113.5t54 -173.5v-4q-2 -129 -94 -220t-221 -91h-387q-150 0 -277 109q-39 32 -39 81z" />
|
95
|
-
<glyph unicode="t" d="M231 1059q0 43 30 73.5t73 30.5h100v244q0 43 30 73.5t73 30.5t73.5 -30.5t30.5 -73.5v-244h403q43 0 73 -30.5t30 -73.5t-30 -73t-73 -30h-403v-649q0 -41 28.5 -70.5t69.5 -29.5h205q41 0 66.5 27.5t35 59.5t35 59.5t66.5 27.5q43 0 73.5 -31t31.5 -74v-16 q-20 -106 -107.5 -183t-200.5 -77h-205q-125 0 -215 91t-90 216v649h-100q-43 0 -73 30t-30 73z" />
|
96
|
-
<glyph unicode="u" d="M231 1059q0 43 30 73.5t73 30.5q41 0 71.5 -29.5t30.5 -70.5l27 -760q4 -41 31.5 -68.5t68.5 -27.5h146l335 213v639q0 43 30 73.5t73 30.5t73.5 -30.5t30.5 -73.5v-955q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5v72l-198 -127q-78 -49 -166 -49h-117 q-123 0 -213 87t-94 208z" />
|
97
|
-
<glyph unicode="v" d="M231 885v174q0 43 30 73.5t73 30.5t73.5 -30.5t30.5 -73.5v-152l301 -694l305 694v152q0 43 30 73.5t73 30.5t73.5 -30.5t30.5 -73.5v-174q0 -20 -10 -41l-342 -783q-27 -61 -94 -61h-129q-68 0 -94 61l-342 783q-9 16 -9 41z" />
|
98
|
-
<glyph unicode="w" d="M209 1057q0 43 30.5 74.5t73.5 31.5q41 0 71 -29.5t32 -70.5l20 -596l66 -221l135 233v234q0 41 30.5 71.5t73.5 30.5q41 0 72 -30.5t31 -71.5v-234l135 -233l65 221l21 596q2 41 31.5 70.5t70.5 29.5t73 -30.5t32 -71.5v-4l-23 -635l-104 -348q-10 -33 -38 -53.5 t-63 -20.5h-100q-59 0 -90 51l-113 195l-114 -195q-31 -51 -90 -51h-101q-35 0 -62.5 20.5t-37.5 53.5l-107 372z" />
|
99
|
-
<glyph unicode="x" d="M231 104q0 39 21 66l354 426l-330 397q-25 31 -24 66q0 43 30.5 73.5t73.5 30.5q47 0 80 -39l305 -366l303 366q33 39 80 39q43 0 74 -30.5t31 -73.5q0 -35 -25 -66l-330 -397l355 -426q23 -29 22 -66q0 -43 -30.5 -73.5t-73.5 -30.5q-49 0 -80 37l-326 395l-327 -395 q-31 -37 -80 -37q-43 0 -73 30.5t-30 73.5z" />
|
100
|
-
<glyph unicode="y" d="M231 -332q0 43 30 74t73 31h211l137 313h-43q-70 0 -94 64l-305 694q-8 16 -9 41v174q0 43 30 73.5t73 30.5t73.5 -30.5t30.5 -73.5v-152l269 -614h65l270 614v152q0 43 31 73.5t74 30.5t73.5 -30.5t30.5 -73.5v-174q0 -20 -10 -41l-532 -1217q-27 -61 -97 -61h-278 q-43 0 -73 29.5t-30 72.5z" />
|
101
|
-
<glyph unicode="z" d="M231 104v86q0 47 31 74l721 692h-600q-43 0 -72.5 30t-29.5 73t29.5 73.5t72.5 30.5h764q43 0 73.5 -30.5t30.5 -73.5v-86q0 -43 -32 -76l-719 -690h647q43 0 73.5 -31t30.5 -72q0 -43 -30.5 -73.5t-73.5 -30.5h-813q-43 0 -73 30.5t-30 73.5z" />
|
102
|
-
<glyph unicode="{" d="M231 799q0 43 30 73.5t73 30.5h198q45 0 75 30t30 73v385q0 84 62.5 145t144.5 61h303q43 0 73.5 -30.5t30.5 -71.5q0 -43 -30.5 -73.5t-73.5 -30.5h-303v-385q0 -117 -80 -207q80 -90 80 -207v-385h303q43 0 73.5 -31t30.5 -72q0 -43 -30.5 -73.5t-73.5 -30.5h-303 q-82 0 -144.5 61.5t-62.5 145.5v385q0 41 -31 72.5t-74 31.5h-198q-43 0 -73 30t-30 73z" />
|
103
|
-
<glyph unicode="|" d="M637 104v592h207v-592q0 -43 -31 -73.5t-72 -30.5q-43 0 -73.5 30.5t-30.5 73.5zM637 903v592q0 41 30.5 71.5t73.5 30.5q41 0 72 -30.5t31 -71.5v-592h-207z" />
|
104
|
-
<glyph unicode="}" d="M231 104q0 41 30 72t73 31h303v385q0 117 80 207q-80 90 -80 207v385h-303q-43 0 -73 30.5t-30 73.5q0 41 30 71.5t73 30.5h303q84 0 145.5 -61t61.5 -145v-385q0 -41 29.5 -72t72.5 -31h201q43 0 73.5 -30.5t30.5 -73.5t-30.5 -73t-73.5 -30h-201q-43 0 -72.5 -31.5 t-29.5 -72.5v-385q0 -84 -61.5 -145.5t-145.5 -61.5h-303q-43 0 -73 30.5t-30 73.5z" />
|
105
|
-
<glyph unicode=" " />
|
106
|
-
<glyph unicode="£" d="M231 104q0 41 30 72t73 31h127l141 489h-268q-43 0 -73 30t-30 73t30 73.5t73 30.5h330l137 471q27 92 108.5 157.5t188.5 65.5h49q43 0 73.5 -30.5t30.5 -71.5q0 -43 -30.5 -73.5t-73.5 -30.5h-49q-35 0 -61.5 -21.5t-37.5 -52.5l-120 -414h268q43 0 73.5 -30.5 t30.5 -73.5t-30.5 -73t-73.5 -30h-328l-143 -489h471q43 0 73.5 -31t30.5 -72q0 -43 -30.5 -73.5t-73.5 -30.5h-813q-43 0 -73 30.5t-30 73.5z" />
|
107
|
-
<glyph unicode="¥" d="M231 625q0 43 30 73.5t73 30.5h303v43l-393 670q-12 25 -13 53q0 41 30 71.5t73 30.5q59 0 90 -51l317 -542l316 542q31 51 90 51q43 0 73.5 -30.5t30.5 -71.5q0 -25 -14 -53l-393 -670v-43h303q43 0 73.5 -30.5t30.5 -73.5t-30.5 -73t-73.5 -30h-303v-418 q0 -43 -31 -73.5t-72 -30.5q-43 0 -73.5 30.5t-30.5 73.5v418h-303q-43 0 -73 30t-30 73z" />
|
108
|
-
<glyph unicode="­" d="M231 713v86q0 43 30 73.5t73 30.5h813q43 0 73.5 -30.5t30.5 -73.5v-86q0 -43 -30.5 -74t-73.5 -31h-813q-43 0 -73 31t-30 74z" />
|
109
|
-
<glyph unicode="Ä" d="M231 104q0 18 7 37l405 1043q27 66 96 65q72 0 99 -65l405 -1043q8 -25 8 -37q0 -43 -30.5 -73.5t-73.5 -30.5q-72 0 -96 66l-76 194h-469l-76 -194q-25 -66 -96 -66q-43 0 -73 30.5t-30 73.5zM231 1321v174q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-174 q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5zM586 467h307l-154 395zM1044 1321v174q0 41 30 71.5t73 30.5t73.5 -30.5t30.5 -71.5v-174q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5z" />
|
110
|
-
<glyph unicode="Å" d="M223 106l279 941q-72 14 -121 71.5t-49 130.5v142q0 84 61.5 145t145.5 61h403q82 0 144.5 -61t62.5 -145v-142q0 -74 -49 -131t-121 -71l276 -943q0 -43 -31.5 -73.5t-74.5 -30.5q-35 0 -62.5 20.5t-37.5 53.5l-80 274h-455l-82 -274q-10 -33 -37.5 -53.5t-62.5 -20.5 q-43 0 -76 31.5t-33 74.5zM539 1249h403v142h-403v-142zM575 555h332l-143 487h-45z" />
|
111
|
-
<glyph unicode="Æ" d="M231 104q0 16 7 35l514 1409q31 49 90 49h305q43 0 73.5 -30.5t30.5 -71.5q0 -43 -30.5 -73.5t-73.5 -30.5h-201v-488h201q43 0 73.5 -30.5t30.5 -73.5t-30.5 -73t-73.5 -30h-201v-489h201q43 0 73.5 -31t30.5 -72q0 -43 -30.5 -73.5t-73.5 -30.5h-305q-43 0 -73 30.5 t-30 73.5v244h-207l-102 -280q-25 -68 -96 -68q-43 0 -73 30.5t-30 73.5zM608 555h131v358z" />
|
112
|
-
<glyph unicode="Ñ" d="M231 104v869q0 43 30 72.5t73 29.5q47 0 76 -33l634 -677v608q0 43 30 72.5t73 29.5t73.5 -29.5t30.5 -72.5v-869q0 -43 -30.5 -73.5t-73.5 -30.5q-47 0 -76 33l-633 678v-607q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5zM231 1407v88q0 41 28 71.5t67 30.5h8 l715 -75q8 33 35.5 54t62.5 21q43 0 73.5 -30.5t30.5 -71.5v-88q0 -43 -28.5 -73.5t-69.5 -30.5h-6l-713 75q-10 -33 -37.5 -54t-62.5 -21q-43 0 -73 30.5t-30 73.5z" />
|
113
|
-
<glyph unicode="Ö" d="M231 573v103q0 66 39 125q182 258 238 340q72 109 211 108h43q45 0 82 -11t67.5 -40t47 -47t45 -61t38.5 -58l168 -231q41 -59 41 -125v-103q0 -66 -41 -124l-108 -156q-10 -14 -46 -72.5t-56.5 -84t-58.5 -64.5t-82 -55.5t-97 -16.5h-43q-37 0 -71 10t-55.5 21.5t-49 39 t-37.5 41t-37 50.5t-33 45v10l-166 232q-39 56 -39 124zM231 1321v174q0 41 30 71.5t73 30.5t72.5 -30.5t29.5 -71.5v-174q0 -43 -29.5 -73.5t-72.5 -30.5t-73 30.5t-30 73.5zM436 567l242 -338q10 -23 41 -22h43q27 0 41 22l241 342v105l-241 346q-16 20 -41 20h-43 q-25 0 -41 -20l-242 -346v-109zM1042 1321v174q0 41 31 71.5t74 30.5t73.5 -30.5t30.5 -71.5v-174q0 -43 -30.5 -73.5t-73.5 -30.5t-74 30.5t-31 73.5z" />
|
114
|
-
<glyph unicode="Ø" d="M231 104q0 27 13 52l135 231q-12 25 -46 89.5t-51.5 100t-34 98t-16.5 124.5q0 109 50 211l219 440q33 63 97.5 105t141.5 42q86 0 152.5 -47t97.5 -118q6 8 26.5 48t34 59.5t40 38.5t57.5 19q43 0 73.5 -30.5t30.5 -71.5q0 -25 -14 -53l-135 -232q10 -23 46 -88 t53.5 -102t33.5 -99.5t16 -121.5q0 -104 -51 -211l-219 -441q-33 -63 -97.5 -105t-144.5 -42q-84 0 -150.5 47t-96.5 119q-6 -8 -27 -48t-34 -59.5t-39.5 -39t-57.5 -19.5q-43 0 -73 30.5t-30 73.5zM438 799q0 -25 3 -46.5t12.5 -45t14.5 -34.5t19.5 -38t16.5 -33l360 615 l-69 137q-16 37 -56 37q-35 0 -53 -37l-221 -436q-27 -58 -27 -119zM616 381l70 -139q16 -35 53 -35q39 0 56 35l221 438q29 70 28 119q0 18 -3 38.5t-7 35t-13 35t-13 29.5t-16.5 31.5t-14.5 26.5z" />
|
115
|
-
<glyph unicode="Ü" d="M231 311v836q0 43 30 72.5t73 29.5t73.5 -29.5t30.5 -72.5v-836q0 -43 31 -73.5t72 -30.5h399q41 0 72.5 30.5t31.5 73.5v836q0 43 30 72.5t73 29.5t73.5 -29.5t30.5 -72.5v-836q0 -127 -92 -219t-219 -92h-399q-129 0 -219.5 91t-90.5 220zM434 1321v174q0 41 30 71.5 t73 30.5t73.5 -30.5t30.5 -71.5v-174q0 -43 -30.5 -73.5t-73.5 -30.5t-73 30.5t-30 73.5zM840 1321v174q0 41 30.5 71.5t73.5 30.5t71.5 -29.5t28.5 -72.5v-174q0 -43 -28.5 -73.5t-71.5 -30.5t-73.5 30.5t-30.5 73.5z" />
|
116
|
-
<glyph unicode="ˆ" d="M229 389l420 805q27 55 92 55q61 0 90 -55l410 -786q10 -25 10 -43q0 -43 -30.5 -74t-73.5 -31q-55 0 -84 43l-322 483l-323 -483q-29 -43 -84 -43q-43 0 -73 31t-30 74z" />
|
117
|
-
<glyph unicode="˜" d="M231 1059v227q0 133 95.5 221t218.5 88q119 0 209 -90t90 -219v-106q0 -41 29.5 -73t70.5 -32t70.5 32t29.5 73v227q0 43 30 73.5t73 30.5t73.5 -30.5t30.5 -73.5v-227q0 -133 -94 -220.5t-219 -87.5q-123 0 -211 89q-90 94 -90 219v106q0 41 -29.5 72t-70.5 31t-70 -31 t-29 -72v-227q0 -43 -30.5 -73t-73.5 -30t-73 30t-30 73z" />
|
118
|
-
<glyph unicode=" " horiz-adv-x="841" />
|
119
|
-
<glyph unicode=" " horiz-adv-x="1683" />
|
120
|
-
<glyph unicode=" " horiz-adv-x="841" />
|
121
|
-
<glyph unicode=" " horiz-adv-x="1683" />
|
122
|
-
<glyph unicode=" " horiz-adv-x="561" />
|
123
|
-
<glyph unicode=" " horiz-adv-x="420" />
|
124
|
-
<glyph unicode=" " horiz-adv-x="280" />
|
125
|
-
<glyph unicode=" " horiz-adv-x="280" />
|
126
|
-
<glyph unicode=" " horiz-adv-x="210" />
|
127
|
-
<glyph unicode=" " horiz-adv-x="336" />
|
128
|
-
<glyph unicode=" " horiz-adv-x="93" />
|
129
|
-
<glyph unicode="‐" d="M231 713v86q0 43 30 73.5t73 30.5h813q43 0 73.5 -30.5t30.5 -73.5v-86q0 -43 -30.5 -74t-73.5 -31h-813q-43 0 -73 31t-30 74z" />
|
130
|
-
<glyph unicode="‑" d="M231 713v86q0 43 30 73.5t73 30.5h813q43 0 73.5 -30.5t30.5 -73.5v-86q0 -43 -30.5 -74t-73.5 -31h-813q-43 0 -73 31t-30 74z" />
|
131
|
-
<glyph unicode="‒" d="M231 713v86q0 43 30 73.5t73 30.5h813q43 0 73.5 -30.5t30.5 -73.5v-86q0 -43 -30.5 -74t-73.5 -31h-813q-43 0 -73 31t-30 74z" />
|
132
|
-
<glyph unicode="–" horiz-adv-x="1484" d="M231 713v86q0 43 30 73.5t73 30.5h817q43 0 73.5 -30.5t30.5 -73.5v-86q0 -43 -30.5 -74t-73.5 -31h-817q-43 0 -73 31t-30 74z" />
|
133
|
-
<glyph unicode="—" horiz-adv-x="2508" d="M231 713v86q0 43 60 73.5t147 30.5h1632q87 0 148 -30.5t61 -73.5v-86q0 -43 -61 -74t-148 -31h-1632q-87 0 -147 31t-60 74z" />
|
134
|
-
<glyph unicode=" " horiz-adv-x="336" />
|
135
|
-
<glyph unicode=" " horiz-adv-x="420" />
|
136
|
-
<glyph unicode="" horiz-adv-x="1167" d="M0 0v1167h1167v-1167h-1167z" />
|
137
|
-
</font>
|
138
|
-
</defs></svg>
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|