rsult 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/jest.config.js +6 -0
- package/package.json +18 -0
- package/readme.md +313 -0
- package/rsult-test.svg +1 -0
- package/rsult.svg +1 -0
- package/src/lib.ts +2 -0
- package/src/option.test.ts +432 -0
- package/src/option.ts +521 -0
- package/src/result.test.ts +459 -0
- package/src/result.ts +646 -0
- package/tsconfig.json +34 -0
package/jest.config.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "rsult",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "src/lib.ts",
|
|
6
|
+
"keywords": [],
|
|
7
|
+
"author": "",
|
|
8
|
+
"license": "ISC",
|
|
9
|
+
"devDependencies": {
|
|
10
|
+
"@swc/core": "^1.4.12",
|
|
11
|
+
"@swc/jest": "^0.2.36",
|
|
12
|
+
"@types/jest": "^29.5.12",
|
|
13
|
+
"jest": "^29.7.0"
|
|
14
|
+
},
|
|
15
|
+
"scripts": {
|
|
16
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
17
|
+
}
|
|
18
|
+
}
|
package/readme.md
ADDED
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="rsult.svg" width="300px"/><br/>
|
|
3
|
+
<img src="rsult-test.svg" width="450px"/>
|
|
4
|
+
</p>
|
|
5
|
+
|
|
6
|
+
<hr/>
|
|
7
|
+
|
|
8
|
+
<h5 align="center">
|
|
9
|
+
Bring the benefits of Rust's error handling and optional types to your TypeScript projects.
|
|
10
|
+
<br/>
|
|
11
|
+
Reduce the need for null checks and write safer, more expressive code.
|
|
12
|
+
<br/>
|
|
13
|
+
<br/>
|
|
14
|
+
rsult offers a collection of practical utilities for handling `Option` and `Result` types,
|
|
15
|
+
<br/>
|
|
16
|
+
helping you create more robust and maintainable codebases.
|
|
17
|
+
</h5>
|
|
18
|
+
|
|
19
|
+
<hr/>
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
$ pnpm add rsult
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
import { Option, Result, Some, None, Ok, Err } from 'rsult';
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### tl;dr
|
|
30
|
+
|
|
31
|
+
- rsult is inspired by Rust's `Option` and `Result` types.
|
|
32
|
+
- It helps you handle optional values and results, eliminating `null` and `undefined` checks.
|
|
33
|
+
- You can wrap values in `Some`, `None`, `Ok`, or `Err`, and use handy functions to transform, combine, and handle errors expressively.
|
|
34
|
+
- It's a friendly sidekick that makes your code safer and more predictable. ✨
|
|
35
|
+
|
|
36
|
+
### tl;dr
|
|
37
|
+
|
|
38
|
+
rsult makes your code safer and more predictable.
|
|
39
|
+
|
|
40
|
+
## Usage
|
|
41
|
+
|
|
42
|
+
### Option
|
|
43
|
+
|
|
44
|
+
The `Option` type is used for values that may or may not be present. It can be either `Some` or `None`.
|
|
45
|
+
|
|
46
|
+
#### Creating an Option
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
const someValue: Option<number> = Some(5);
|
|
50
|
+
const noneValue: Option<number> = None();
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
#### Checking if an Option is Some or None
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
if (someValue.is_some()) {
|
|
57
|
+
console.log("It's Some!");
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (noneValue.is_none()) {
|
|
61
|
+
console.log("It's None!");
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
#### Transforming the Value Inside an Option
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
const transformedValue = someValue.map(x => x * 2); // Some(10)
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
#### Handling Options with Default Values
|
|
72
|
+
|
|
73
|
+
```typescript
|
|
74
|
+
const valueWithDefault = noneValue.unwrap_or(0); // 0
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Result
|
|
78
|
+
|
|
79
|
+
The `Result` type is used for operations that can succeed or fail. It can be either `Ok` or `Err`.
|
|
80
|
+
|
|
81
|
+
#### Creating a Result
|
|
82
|
+
|
|
83
|
+
```typescript
|
|
84
|
+
const okResult: Result<number, string> = Ok(5);
|
|
85
|
+
const errResult: Result<number, string> = Err("An error occurred");
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
#### Checking if a Result is Ok or Err
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
if (okResult.is_ok()) {
|
|
92
|
+
console.log("It's Ok!");
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (errResult.is_err()) {
|
|
96
|
+
console.log("It's Err!");
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
#### Transforming the Value Inside a Result
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
const transformedResult = okResult.map(x => x * 2); // Ok(10)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
#### Handling Results with Default Values
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
const valueWithDefault = errResult.unwrap_or(0); // 0
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Advanced Usage
|
|
113
|
+
|
|
114
|
+
### Advanced Usage: Option
|
|
115
|
+
|
|
116
|
+
#### Advanced Option Transformations
|
|
117
|
+
|
|
118
|
+
Applying multiple transformations consecutively demonstrates the power of composable operations.
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
const option = Some(10);
|
|
122
|
+
const transform = option
|
|
123
|
+
.map(x => x * 2)
|
|
124
|
+
.and_then(x => x > 15 ? Some(x) : None())
|
|
125
|
+
.unwrap_or(0);
|
|
126
|
+
|
|
127
|
+
console.log(transform); // 20
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
This example showcases converting a numeric option to a string if it meets a condition, providing a default otherwise.
|
|
131
|
+
|
|
132
|
+
#### Combining Multiple Options
|
|
133
|
+
|
|
134
|
+
When dealing with multiple optional values, `Option` can elegantly handle combinations, making sure all values are present.
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
const option1: Option<number> = Some(10);
|
|
138
|
+
const option2: Option<string> = Some("twenty");
|
|
139
|
+
|
|
140
|
+
const combinedOption = option1.and_then(num =>
|
|
141
|
+
option2.map(str => `${num} and ${str}`)
|
|
142
|
+
);
|
|
143
|
+
|
|
144
|
+
console.log(combinedOption.unwrap_or("Missing value")); // "10 and twenty"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
This demonstrates combining numerical and string options into a single descriptive string if both are present.
|
|
148
|
+
|
|
149
|
+
#### Filtering and Conditional Access
|
|
150
|
+
|
|
151
|
+
Filter out options that don't satisfy a certain condition, effectively allowing conditional access to `Some` values.
|
|
152
|
+
|
|
153
|
+
```typescript
|
|
154
|
+
const numberOption: Option<number> = Some(42);
|
|
155
|
+
const filteredOption = numberOption.filter(x => x > 100);
|
|
156
|
+
|
|
157
|
+
console.log(filteredOption.is_none()); // true
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Only values satisfying the condition remain, others turn into `None`.
|
|
161
|
+
|
|
162
|
+
### Advanced Usage: Result
|
|
163
|
+
|
|
164
|
+
#### Chaining Result Operations
|
|
165
|
+
|
|
166
|
+
By chaining operations, you can handle complex data manipulation and error handling with ease.
|
|
167
|
+
|
|
168
|
+
```typescript
|
|
169
|
+
const processResult: Result<number, string> = Ok(5);
|
|
170
|
+
|
|
171
|
+
const chainedResult = processResult.map(x => x * 2)
|
|
172
|
+
.and_then(x => x > 5 ? Ok(x.toString()) : Err("Value too small"))
|
|
173
|
+
.map_err(err => `Error encountered: ${err}`);
|
|
174
|
+
|
|
175
|
+
console.log(chainedResult.unwrap_or("Default value")); // "10"
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
This transformation sequence demonstrates error handling and conditional mapping in a powerful, readable manner.
|
|
179
|
+
|
|
180
|
+
#### Error Recovery
|
|
181
|
+
|
|
182
|
+
Perform error recovery by providing alternative workflows in case of errors.
|
|
183
|
+
|
|
184
|
+
```typescript
|
|
185
|
+
enum ErrorType {
|
|
186
|
+
NotFound,
|
|
187
|
+
Invalid,
|
|
188
|
+
Unrecoverable,
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
const riskyOperation: Result<number, ErrorType> = Err(ErrorType.NotFound);
|
|
192
|
+
|
|
193
|
+
const recoveryAttempt = riskyOperation.or_else(err =>
|
|
194
|
+
err !== ErrorType.Unrecoverable ? Ok(0) : Err("Unrecoverable error")
|
|
195
|
+
);
|
|
196
|
+
|
|
197
|
+
console.log(recoveryAttempt.unwrap()); // 0
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
This example shows a simple mechanism for recovering from specific errors, providing a fallback result.
|
|
201
|
+
|
|
202
|
+
#### Combining Results with Different Types
|
|
203
|
+
|
|
204
|
+
Use case-driven transformations to work with results of varying types, demonstrating flexibility in handling operations that might fail.
|
|
205
|
+
|
|
206
|
+
```typescript
|
|
207
|
+
const fetchResource: () => Result<string, Error> = () => Ok("Resource content");
|
|
208
|
+
|
|
209
|
+
const parseResource: (content: string) => Result<object, string> = content =>
|
|
210
|
+
content.length > 0 ? Ok({ parsed: content }) : Err("Empty content");
|
|
211
|
+
|
|
212
|
+
const result = fetchResource()
|
|
213
|
+
.and_then(parseResource)
|
|
214
|
+
.map(parsed => `Parsed content: ${JSON.stringify(parsed)}`)
|
|
215
|
+
.unwrap_or("Default content");
|
|
216
|
+
|
|
217
|
+
console.log(result); // "Parsed content: {"parsed":"Resource content"}"
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## API Reference
|
|
221
|
+
|
|
222
|
+
### Option
|
|
223
|
+
|
|
224
|
+
#### Check Methods
|
|
225
|
+
- `is_some()`: Checks if the Option is Some.
|
|
226
|
+
- `is_none()`: Checks if the Option is None.
|
|
227
|
+
- `is_some_and(f: (arg: T) => boolean)`: Determines if the Option is Some and the contained value meets a condition.
|
|
228
|
+
|
|
229
|
+
#### Transform Methods
|
|
230
|
+
- `map(fn: (arg: T) => U)`: Transforms the contained value of a Some with a provided function. Returns None if this Option is None.
|
|
231
|
+
- `map_or<U>(defaultVal: U, fn: (arg: T) => U)`: Applies a function to the contained value if Some, otherwise returns a provided default.
|
|
232
|
+
|
|
233
|
+
#### Expect and Unwrap Methods
|
|
234
|
+
- `expect(msg: string)`: Extracts the value from a Some, throwing an error if it is None.
|
|
235
|
+
- `unwrap()`: Unwraps the Option, returning the contained value, or throws an error if the Option is None.
|
|
236
|
+
- `unwrap_or(defaultVal: T)`: Returns the contained value if Some, else returns a provided alternative.
|
|
237
|
+
- `unwrap_or_else(fn: () => T)`: Returns the contained value if Some, else computes a value from a provided function.
|
|
238
|
+
- `unwrap_or_default()`: Returns the contained value if Some, otherwise the default value for the type.
|
|
239
|
+
|
|
240
|
+
#### Combine Methods
|
|
241
|
+
- `and<U>(opt: Option<U>)`: Returns the passed Option if this Option is Some, else returns None.
|
|
242
|
+
- `and_then<U>(fn: (arg: T) => Option<U>)`: Returns the result of applying a function to the contained value if Some, otherwise returns None.
|
|
243
|
+
- `or<U>(opt: Option<U>)`: Returns the passed Option if this Option is None, else returns this Option.
|
|
244
|
+
- `or_else<U>(fn: () => Option<U>)`: Returns the result of applying a function if this Option is None, else returns this Option.
|
|
245
|
+
- `xor(optb: Option<T>)`: Returns None if both this and the passed Option are Some. Otherwise returns the Option that is Some.
|
|
246
|
+
|
|
247
|
+
#### Mutate Methods
|
|
248
|
+
- `take()`: Takes the contained value out of the Option, leaving a None in its place.
|
|
249
|
+
- `take_if(predicate: (arg: T) => boolean)`: Takes the contained value out of the Option if it satisfies a predicate, leaving a None in its place.
|
|
250
|
+
- `replace(value: T)`: Replaces the contained value with another, returning the old value wrapped in an Option.
|
|
251
|
+
|
|
252
|
+
#### Zip Methods
|
|
253
|
+
- `zip<U>(other: Option<U>)`: Combines two Option values into a single Option containing a tuple of their values if both are Some, otherwise returns None.
|
|
254
|
+
- `zip_with<U, R>(other: Option<U>, f: (val: T, other: U) => R)`: Combines two Option values by applying a function if both are Some, otherwise returns None.
|
|
255
|
+
|
|
256
|
+
#### Filter Method
|
|
257
|
+
- `filter(predicate: (arg: T) => boolean)`: Applies a predicate to the contained value if Some, returns None if the predicate does not hold or if this Option is None.
|
|
258
|
+
|
|
259
|
+
#### Flatten Method
|
|
260
|
+
- `flatten()`: Flattens a nested Option, if the Option contains another Option, returning the inner Option if it's Some.
|
|
261
|
+
|
|
262
|
+
### Result
|
|
263
|
+
|
|
264
|
+
#### Basic Methods
|
|
265
|
+
- `is_ok()`: Checks if the Result is Ok.
|
|
266
|
+
- `is_err()`: Checks if the Result is Err.
|
|
267
|
+
- `ok()`: Retrieves the value from `ResultOk`, wrapped in an `Option`.
|
|
268
|
+
- `err()`: Retrieves the error from `ResultErr`, wrapped in an `Option`.
|
|
269
|
+
|
|
270
|
+
#### Retrieval Methods
|
|
271
|
+
- `expect(msg: string)`: Returns the contained `ResultOk` value, but throws an error with a provided message if the result is a `ResultErr`.
|
|
272
|
+
- `unwrap()`: Unwraps a `ResultOk`, yielding the contained value.
|
|
273
|
+
- `expect_err(msg: string)`: Returns the contained `ResultErr` error, but throws an error with a provided message if the result is a `ResultOk`.
|
|
274
|
+
- `unwrap_err()`: Unwraps a `ResultErr`, yielding the contained error.
|
|
275
|
+
|
|
276
|
+
#### Conversion Methods
|
|
277
|
+
- `into_ok()`: Converts from `IResultCore<T, E>` to `T`.
|
|
278
|
+
- `into_err()`: Converts from `IResultCore<T, E>` to `E`.
|
|
279
|
+
|
|
280
|
+
#### Checking and Transforming Methods
|
|
281
|
+
- `is_ok_and(f: (value: T) => boolean)`: Checks if the result is Ok and the contained value passes a specified condition.
|
|
282
|
+
- `is_err_and(f: (value: E) => boolean)`: Checks if the result is Err and the contained error passes a specified condition.
|
|
283
|
+
- `map<U>(fn: (arg: T) => U)`: Transforms the result via a mapping function if it is Ok.
|
|
284
|
+
- `map_or<U>(defaultVal: U, f: (arg: T) => U)`: Transforms the result via a mapping function if it is Ok, otherwise returns a default value.
|
|
285
|
+
- `map_or_else<U>(defaultFunc: (err: E) => U, f: (arg: T) => U)`: Transforms the result via a mapping function if it is Ok, otherwise computes a default value using a function.
|
|
286
|
+
- `map_err<U>(fn: (arg: E) => U)`: Maps a `Result<T, E>` to `Result<T, U>` by applying a function to a contained `Err` value, leaving an `Ok` value untouched.
|
|
287
|
+
|
|
288
|
+
#### Inspection Methods
|
|
289
|
+
- `inspect(f: (val: T) => void)`: Applies a function to the contained value (if Ok), then returns the unmodified Result.
|
|
290
|
+
- `inspect_err(f: (val: E) => void)`: Applies a function to the contained error (if Err), then returns the unmodified Result.
|
|
291
|
+
|
|
292
|
+
#### Combination Methods
|
|
293
|
+
- `and<U>(res: Result<U, E>)`: Returns `res` if the result is Ok, otherwise returns the Err value of `self`.
|
|
294
|
+
- `and_then<U>(fn: (arg: T) => Result<U, E>)`: Calls `fn` if the result is Ok, otherwise returns the Err value of `self`.
|
|
295
|
+
- `or<U>(res: Result<U, E>)`: Returns `res` if the result is Err, otherwise returns the Ok value of `self`.
|
|
296
|
+
- `or_else<U>(fn: (arg: E) => Result<T, U>)`: Calls `fn` if the result is Err, otherwise returns the Ok value of `self`.
|
|
297
|
+
|
|
298
|
+
#### Unwrap Methods with Defaults
|
|
299
|
+
- `unwrap_or(defaultVal: T)`: Returns the contained Ok value or a provided default.
|
|
300
|
+
- `unwrap_or_else(fn: (arg: E) => T)`: Returns the contained Ok value or computes it from a function.
|
|
301
|
+
|
|
302
|
+
#### Iteration and Flattening Methods
|
|
303
|
+
- `iter()`: Returns an iterator over the potentially contained value.
|
|
304
|
+
- `transpose()`: Attempts to transpose a `Result` of a `Promise` into a `Promise` of a `Result`.
|
|
305
|
+
- `flatten()`: Flattens a nested `Result` if the contained value is itself a `Result`.
|
|
306
|
+
|
|
307
|
+
## Contributing
|
|
308
|
+
|
|
309
|
+
Contributions are welcome! Please open an issue or submit a pull request.
|
|
310
|
+
|
|
311
|
+
## License
|
|
312
|
+
|
|
313
|
+
rsult is licensed under the MIT License.
|
package/rsult-test.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 236.01 42.64" style="enable-background:new 0 0 236.01 42.64" xml:space="preserve"><style>.st0{fill:#404041}</style><path class="st0" d="M17.53 9.57c-.3-.14-.54-.33-.7-.58-.16-.25-.25-.54-.25-.88h1.19c0 .2.08.35.23.46.15.11.36.17.61.17s.44-.05.58-.17c.14-.11.21-.26.21-.46 0-.17-.05-.31-.16-.44a.867.867 0 0 0-.44-.25l-.58-.12c-.49-.12-.87-.33-1.15-.65-.27-.31-.41-.7-.41-1.15 0-.34.08-.63.23-.88.16-.25.38-.44.67-.58.29-.14.62-.21 1.01-.21.59 0 1.06.15 1.41.44.35.29.52.69.52 1.18h-1.19c0-.18-.07-.33-.2-.44-.13-.11-.32-.16-.55-.16-.23 0-.4.05-.52.15-.12.1-.18.25-.18.44 0 .17.05.31.15.44.1.12.24.2.42.24l.62.14c.51.12.9.33 1.17.64.26.3.4.69.4 1.15 0 .34-.08.64-.25.9-.17.26-.4.46-.7.6-.3.14-.65.21-1.05.21-.43.01-.79-.06-1.09-.19zM22.34 9.55c-.29-.15-.51-.35-.66-.61-.16-.26-.23-.57-.23-.91V7c0-.35.08-.65.23-.91.16-.26.38-.47.66-.61s.62-.22 1.01-.22.72.07 1.01.22c.29.15.51.35.66.61.15.26.23.57.23.91v1.03c0 .35-.08.65-.23.91-.16.26-.38.47-.66.61s-.62.22-1.01.22-.73-.07-1.01-.22zm1.53-.99c.12-.12.18-.3.18-.53V7c0-.23-.06-.41-.18-.53-.12-.12-.3-.18-.53-.18-.23 0-.4.06-.53.18-.12.12-.19.3-.19.53v1.03c0 .23.06.4.19.53.12.12.3.19.53.19.23-.01.41-.07.53-.19zM29.9 5.56c.16.2.25.47.25.81V9.7h-1.02V6.5c0-.29-.11-.44-.32-.44-.2 0-.3.15-.3.44v3.19h-.82V6.5c0-.14-.03-.25-.09-.33a.31.31 0 0 0-.25-.11c-.1 0-.17.04-.22.11-.04.07-.07.18-.07.33v3.19h-1.02V5.33h.93v.63h.05c.02-.22.1-.39.23-.52s.3-.19.5-.19c.18 0 .33.06.45.19s.2.3.24.52h.05c.02-.22.1-.4.23-.52.13-.13.31-.19.52-.19.29.01.5.1.66.31zM34.75 7.79h-2.67v.24c0 .55.26.83.79.83.19 0 .33-.03.45-.1.11-.06.19-.15.23-.26h1.16c-.09.38-.31.69-.65.92-.34.23-.74.35-1.21.35-.39 0-.72-.07-1.01-.22-.29-.15-.51-.35-.67-.61-.15-.26-.23-.57-.23-.91V7c0-.35.08-.65.23-.91.16-.26.38-.47.67-.61.29-.14.63-.22 1.01-.22s.71.07 1 .22c.29.15.51.35.66.61.15.26.23.57.23.91v.79zm-2.67-.67 1.54-.02v-.12c0-.55-.25-.83-.76-.83-.26 0-.45.07-.58.22-.13.15-.2.36-.2.63v.12zM39.07 10.68c-.84-.23-1.49-.61-1.94-1.14-.45-.53-.68-1.18-.68-1.95v-1.5c0-.75.23-1.4.69-1.94.46-.54 1.1-.93 1.93-1.15v1.19c-.45.11-.8.33-1.05.67s-.38.75-.38 1.23V7.6c0 .48.13.88.38 1.22.25.34.6.56 1.05.66v1.2zM44.42 9.69h-3.8V8.66h1.46V4.99l-1.48 1.1V4.86l1.36-.95h1.31v4.75h1.16v1.03zM46.11 9.55c-.29-.15-.51-.35-.66-.61-.15-.26-.23-.57-.23-.91V5.57c0-.35.08-.65.23-.92.16-.26.38-.46.66-.61.28-.15.62-.22 1.01-.22s.72.07 1.01.22c.29.15.51.35.66.61.15.26.23.57.23.92v2.46c0 .35-.08.65-.23.91-.16.26-.38.47-.66.61s-.62.22-1.01.22-.73-.07-1.01-.22zm1.59-1c.14-.13.21-.3.21-.52V5.57c0-.22-.07-.4-.21-.52-.14-.13-.33-.19-.58-.19s-.44.06-.58.19a.67.67 0 0 0-.21.52v2.46c0 .22.07.4.21.52.14.13.33.19.58.19s.44-.06.58-.19zm-.87-1.39a.46.46 0 0 1-.11-.32v-.12c0-.13.04-.24.11-.32.07-.08.17-.11.28-.11.12 0 .22.04.29.12.07.08.11.18.11.32v.12c0 .13-.04.24-.11.32a.37.37 0 0 1-.29.12.41.41 0 0 1-.28-.13zM50.4 9.48c.44-.11.79-.33 1.05-.66.25-.34.38-.74.38-1.22V6.09c0-.49-.13-.9-.38-1.23-.25-.34-.6-.56-1.05-.67V3c.82.22 1.47.61 1.93 1.15s.69 1.19.69 1.94V7.6c0 .77-.23 1.41-.68 1.95-.45.53-1.1.91-1.94 1.14V9.48zM27.98 19.28c-.22 0-.4-.07-.54-.21s-.21-.32-.21-.54c0-.22.07-.4.21-.54.14-.14.32-.21.54-.21h.24c.22 0 .4.07.54.21.14.14.21.32.21.54 0 .22-.07.4-.21.54s-.32.21-.54.21h-.24zM34.66 15.07c.16.2.25.47.25.81v3.33h-1.02v-3.19c0-.29-.11-.44-.32-.44-.2 0-.3.15-.3.44v3.19h-.82v-3.19c0-.14-.03-.25-.09-.33a.31.31 0 0 0-.25-.11c-.1 0-.17.04-.22.11-.04.07-.07.18-.07.33v3.19H30.8v-4.36h.93v.63h.05c.02-.22.1-.39.23-.52s.3-.19.5-.19c.18 0 .33.06.45.19s.2.3.24.52h.05c.02-.22.1-.4.23-.52.13-.13.31-.19.52-.19.28-.01.5.09.66.3zM39.01 15.16c.31.26.47.63.47 1.11v2.93h-1.15v-.71h-.03c-.06.25-.21.44-.43.58-.23.14-.5.21-.83.21-.44 0-.78-.12-1.04-.36s-.38-.56-.38-.97c0-.44.15-.77.46-1.01.3-.24.74-.35 1.31-.35h.9v-.33c0-.37-.22-.55-.65-.55-.2 0-.35.04-.47.12s-.19.2-.22.35H35.8c.05-.44.24-.79.57-1.04.34-.26.77-.38 1.3-.38.58 0 1.03.13 1.34.4zm-.94 3.07c.14-.12.22-.28.22-.49v-.47h-.88c-.19 0-.33.05-.44.15-.11.1-.16.24-.16.41 0 .18.06.32.18.42.12.1.29.15.5.15.24.01.43-.05.58-.17zM43.87 15.23c.26.31.4.72.4 1.24v1.11c0 .52-.13.93-.4 1.24-.26.31-.62.46-1.05.46-.31 0-.57-.08-.76-.24s-.32-.38-.37-.67h-.02l.04 1.07v1.19h-1.19v-5.78h1.15v.83h.02c.05-.29.17-.51.37-.67.2-.16.45-.24.76-.24.43-.01.78.15 1.05.46zm-.8 1.28c0-.23-.06-.4-.18-.53a.694.694 0 0 0-.51-.19c-.22 0-.39.06-.51.19-.12.12-.18.3-.18.53v1.03c0 .23.06.4.18.53.12.12.29.19.51.19.22 0 .39-.06.51-.19.12-.12.18-.3.18-.53v-1.03zM48.58 20.19c-.84-.23-1.49-.61-1.94-1.14-.45-.53-.68-1.18-.68-1.95v-1.5c0-.75.23-1.4.69-1.94s1.1-.93 1.93-1.15v1.19c-.45.11-.8.33-1.05.67s-.38.75-.38 1.23v1.51c0 .48.13.88.38 1.22.25.34.6.56 1.05.66v1.2zM49.7 19.2l1.51-2.26-1.4-2.1h1.32l.54.87c.07.12.14.27.21.44.07-.17.14-.31.21-.44l.54-.87h1.32l-1.39 2.1 1.5 2.26h-1.32l-.63-1.03c-.07-.12-.15-.27-.21-.44-.06.17-.13.31-.21.44l-.64 1.03H49.7zM66.21 14.25l1.74 2.34-1.75 2.34h-1.39l.59-.79h-5.77v-1.11h6.6c.18-.24.3-.38.36-.42-.06-.05-.19-.2-.37-.45h-6.58v-1.11h5.76l-.59-.79h1.4zM73.47 19.2l1.51-2.26-1.4-2.1h1.32l.54.87c.07.12.14.27.21.44.07-.17.14-.31.21-.44l.54-.87h1.32l-1.39 2.1 1.5 2.26h-1.32l-.63-1.03c-.07-.12-.15-.27-.21-.44-.06.17-.13.31-.21.44l-.64 1.03h-1.35zM84.33 18.55l-.84-.59.25-.36c.19-.27.55-.59 1.08-.96l-.02-.03c-.62 0-1.09-.06-1.41-.17l-.4-.15.35-.97.41.15c.31.12.71.38 1.19.78l.04-.03c-.23-.62-.34-1.1-.34-1.43v-.44h1.03v.44c0 .33-.11.8-.34 1.43l.03.02c.47-.4.87-.66 1.19-.78l.41-.15.36.97-.41.15c-.32.12-.78.17-1.4.17l-.02.03c.52.36.88.68 1.08.95l.25.36-.84.59-.25-.36c-.2-.27-.38-.73-.54-1.36h-.05c-.16.63-.34 1.09-.54 1.36l-.27.38zM92.84 19.2v-1.12l1.84-1.78c.23-.22.39-.42.5-.6.1-.18.15-.37.15-.57 0-.23-.06-.41-.19-.53-.12-.13-.3-.19-.51-.19-.24 0-.42.07-.56.21-.13.14-.2.33-.2.58h-1.19c0-.38.08-.7.24-.98.16-.28.39-.5.69-.65.3-.15.65-.23 1.04-.23.37 0 .69.07.98.21.28.14.5.33.65.59.16.25.23.55.23.88 0 .38-.09.73-.28 1.08-.19.34-.48.7-.89 1.08l-1.04.97h2.27v1.07h-3.73zM97.95 18.99c.44-.11.79-.33 1.05-.66.25-.34.38-.74.38-1.22V15.6c0-.49-.13-.9-.38-1.23-.25-.34-.6-.56-1.05-.67v-1.19c.82.22 1.47.61 1.93 1.15s.69 1.19.69 1.94v1.51c0 .77-.23 1.41-.68 1.95-.45.53-1.1.91-1.94 1.14v-1.21zM27.98 28.79c-.22 0-.4-.07-.54-.21s-.21-.32-.21-.54.07-.4.21-.54c.14-.14.32-.21.54-.21h.24c.22 0 .4.07.54.21.14.14.21.32.21.54s-.07.4-.21.54-.32.21-.54.21h-.24zM34.25 24.66c.31.26.47.63.47 1.11v2.93h-1.15V28h-.02c-.06.25-.21.44-.43.58-.23.14-.5.21-.83.21-.44 0-.78-.12-1.04-.36s-.38-.56-.38-.97c0-.44.15-.77.46-1.01.3-.24.74-.35 1.31-.35h.9v-.33c0-.37-.22-.55-.65-.55-.2 0-.35.04-.47.12s-.19.2-.22.35h-1.15c.05-.44.24-.79.57-1.04.34-.26.77-.38 1.3-.38.58 0 1.02.13 1.33.39zm-.93 3.08c.14-.12.22-.28.22-.49v-.47h-.88c-.19 0-.33.05-.44.15-.11.1-.16.24-.16.41 0 .18.06.32.18.42.12.1.29.15.5.15.24.01.43-.05.58-.17zM39.09 24.72c.26.3.38.69.38 1.18v2.81h-1.19v-2.69c0-.23-.06-.4-.18-.53a.687.687 0 0 0-.5-.19c-.21 0-.37.06-.49.19-.12.12-.17.3-.17.53v2.69h-1.19v-4.36h1.15v.83h.02c.05-.28.18-.51.38-.67.2-.16.46-.24.77-.24.43 0 .76.15 1.02.45zM43.03 22.93h1.19v5.78h-1.15v-.83h-.02c-.05.29-.17.51-.37.67s-.45.24-.76.24c-.44 0-.79-.15-1.05-.46-.26-.31-.4-.72-.4-1.24v-1.11c0-.52.13-.93.4-1.24.26-.31.62-.46 1.05-.46.31 0 .57.08.76.24s.32.38.37.67h.02l-.04-1.07v-1.19zm-.19 4.64c.12-.12.18-.3.18-.53v-1.03c0-.23-.06-.4-.18-.53a.694.694 0 0 0-.51-.19c-.22 0-.39.06-.51.19-.12.12-.18.3-.18.53v1.03c0 .23.06.4.18.53.12.12.29.19.51.19.22 0 .39-.06.51-.19zM49.02 30.02h-3.8v-1.11h3.8v1.11zM52.34 28.71c-.44 0-.79-.13-1.05-.38-.25-.25-.38-.6-.38-1.05v-1.86h-1.15v-1.07h1.15v-1.19h1.19v1.19h1.62v1.07H52.1v1.86c0 .12.03.2.09.27.06.06.15.09.27.09h1.19v1.07h-1.31zM58.11 24.72c.26.3.38.69.38 1.18v2.81H57.3v-2.69c0-.23-.06-.4-.18-.53a.687.687 0 0 0-.5-.19c-.21 0-.37.06-.49.19-.12.12-.17.3-.17.53v2.69h-1.19v-5.78h1.19v1.43l-.04.83h.02c.05-.28.18-.51.38-.67.2-.16.46-.24.77-.24.42-.01.76.14 1.02.44zM63.28 26.81h-2.67v.24c0 .55.26.83.79.83.19 0 .33-.03.45-.1.11-.06.19-.15.23-.26h1.16c-.09.38-.31.69-.65.92-.34.23-.74.35-1.21.35-.39 0-.72-.07-1.01-.22-.29-.15-.51-.35-.67-.61-.15-.26-.23-.57-.23-.91v-1.03c0-.35.08-.65.23-.91.16-.26.38-.47.67-.61.29-.14.63-.22 1.01-.22s.71.07 1 .22c.29.15.51.35.66.61.15.26.23.57.23.91v.79zm-2.67-.68 1.54-.02V26c0-.55-.25-.83-.76-.83-.26 0-.45.07-.58.22-.13.15-.2.36-.2.63v.11zM67.62 24.72c.26.3.38.69.38 1.18v2.81h-1.19v-2.69c0-.23-.06-.4-.18-.53a.687.687 0 0 0-.5-.19c-.21 0-.37.06-.49.19-.12.12-.17.3-.17.53v2.69h-1.19v-4.36h1.15v.83h.02c.05-.28.18-.51.38-.67.2-.16.46-.24.77-.24.42 0 .76.15 1.02.45zM72.35 29.7c-.84-.23-1.49-.61-1.94-1.14-.45-.53-.68-1.18-.68-1.95V25.1c0-.75.23-1.4.69-1.94.46-.54 1.1-.93 1.93-1.15v1.19c-.45.11-.8.33-1.05.67s-.38.75-.38 1.23v1.51c0 .48.13.88.38 1.22.25.34.6.56 1.05.66v1.21zM73.47 28.71l1.51-2.26-1.4-2.1h1.32l.54.87c.07.12.14.27.21.44.07-.17.14-.31.21-.44l.54-.87h1.32l-1.39 2.1 1.5 2.26h-1.32l-.63-1.03c-.07-.12-.15-.27-.21-.44-.06.17-.13.31-.21.44l-.64 1.03h-1.35zM89.98 23.76l1.74 2.34-1.75 2.34h-1.39l.59-.79H83.4v-1.11H90c.18-.24.3-.38.36-.42-.06-.05-.19-.2-.37-.45h-6.58v-1.11h5.76l-.59-.79h1.4zM97.24 28.71l1.51-2.26-1.4-2.1h1.32l.54.87c.07.12.14.27.21.44.07-.17.14-.31.21-.44l.54-.87h1.32l-1.39 2.1 1.5 2.26h-1.32l-.63-1.03c-.07-.12-.15-.27-.21-.44-.06.17-.13.31-.21.44l-.64 1.03h-1.35zM107.1 28.32v-1.08l2.19-.96c.18-.08.39-.14.61-.18-.22-.04-.43-.1-.61-.17l-2.19-.96v-1.09l3.65 1.65v1.13l-3.65 1.66zM120.49 28.71h-3.8v-1.03h1.46v-3.67l-1.47 1.09v-1.23l1.36-.95h1.31v4.75h1.16v1.04zM124.69 25.34c.26.28.39.68.39 1.18v.56c0 .53-.17.95-.51 1.25-.34.3-.8.45-1.4.45-.58 0-1.03-.14-1.37-.43-.34-.28-.51-.67-.52-1.16h1.19c.01.17.08.31.2.41.12.1.29.15.51.15.23 0 .41-.06.53-.17.13-.12.19-.28.19-.5v-.56c0-.22-.06-.38-.18-.5s-.3-.17-.54-.17c-.28 0-.49.08-.61.24h-1.15l.04-3.17h3.42V24h-2.3l-.02 1.51h.02c.05-.18.16-.33.34-.43.18-.1.41-.15.68-.15.47-.02.83.13 1.09.41zM131.75 26.93l-.04-1.7h.79c.21 0 .38-.05.51-.16s.2-.25.2-.43-.07-.32-.2-.43c-.13-.11-.3-.16-.52-.16h-1.31v-1.11h1.23c.4 0 .75.07 1.05.21s.53.34.69.59c.16.26.24.56.24.9 0 .33-.07.62-.21.87-.14.25-.33.45-.58.59-.25.14-.54.21-.87.21v.63h-.98zm.38 1.82c-.18 0-.32-.05-.43-.15a.52.52 0 0 1-.16-.4c0-.17.05-.3.16-.4.11-.1.25-.15.43-.15h.24c.18 0 .32.05.43.15.11.1.16.24.16.4 0 .17-.05.3-.16.4-.11.1-.26.15-.44.15h-.23zM141.14 28.58c-.3-.14-.54-.33-.7-.58-.16-.25-.24-.54-.24-.88h1.19c0 .2.07.35.23.46.15.11.35.17.61.17.25 0 .44-.05.58-.17.14-.11.21-.26.21-.46 0-.17-.05-.31-.16-.44a.867.867 0 0 0-.44-.25l-.59-.13c-.49-.12-.87-.33-1.14-.65-.27-.31-.41-.7-.41-1.15 0-.34.08-.63.23-.88.16-.25.38-.44.67-.58.29-.14.63-.21 1.01-.21.59 0 1.06.15 1.41.44.35.29.52.69.52 1.18h-1.19c0-.18-.07-.33-.2-.44-.13-.11-.32-.16-.55-.16-.23 0-.4.05-.52.15-.12.1-.18.25-.18.44 0 .17.05.31.15.44.1.12.24.2.41.24l.62.14c.51.12.9.33 1.16.64.26.3.4.69.4 1.15 0 .34-.08.64-.25.9-.17.26-.4.46-.7.6s-.65.21-1.05.21c-.42.03-.77-.04-1.08-.18zM145.95 28.57c-.29-.15-.51-.35-.66-.61-.15-.26-.23-.57-.23-.91v-1.03c0-.35.08-.65.23-.91.16-.26.38-.47.66-.61s.62-.22 1.01-.22.72.07 1.01.22c.29.15.51.35.66.61.15.26.23.57.23.91v1.03c0 .35-.08.65-.23.91-.16.26-.38.47-.66.61s-.62.22-1.01.22-.72-.07-1.01-.22zm1.54-1c.12-.12.18-.3.18-.53v-1.03c0-.23-.06-.41-.18-.53-.12-.12-.3-.18-.53-.18-.23 0-.4.06-.53.18s-.19.3-.19.53v1.03c0 .23.06.4.19.53.12.12.3.19.53.19.23 0 .41-.06.53-.19zM153.52 24.57c.16.2.25.47.25.81v3.33h-1.02v-3.19c0-.29-.11-.44-.32-.44-.2 0-.3.15-.3.44v3.19h-.82v-3.19c0-.14-.03-.25-.09-.33a.31.31 0 0 0-.25-.11c-.1 0-.17.04-.22.11-.04.07-.07.18-.07.33v3.19h-1.02v-4.36h.93v.63h.05c.02-.22.1-.39.23-.52s.3-.19.5-.19c.18 0 .33.06.45.19s.2.3.24.52h.05c.02-.22.1-.4.23-.52.13-.13.31-.19.52-.19.28 0 .5.1.66.3zM158.37 26.81h-2.67v.24c0 .55.26.83.79.83.19 0 .33-.03.45-.1.11-.06.19-.15.23-.26h1.16c-.09.38-.31.69-.65.92-.34.23-.74.35-1.21.35-.39 0-.72-.07-1.01-.22-.29-.15-.51-.35-.67-.61-.15-.26-.23-.57-.23-.91v-1.03c0-.35.08-.65.23-.91.16-.26.38-.47.67-.61.29-.14.63-.22 1.01-.22s.71.07 1 .22c.29.15.51.35.66.61.15.26.23.57.23.91v.79zm-2.67-.68 1.54-.02V26c0-.55-.25-.83-.76-.83-.26 0-.45.07-.58.22-.13.15-.2.36-.2.63v.11zM162.69 29.7c-.84-.23-1.49-.61-1.94-1.14-.45-.53-.68-1.18-.68-1.95V25.1c0-.75.23-1.4.69-1.94.46-.54 1.1-.93 1.93-1.15v1.19c-.45.11-.8.33-1.05.67s-.38.75-.38 1.23v1.51c0 .48.13.88.38 1.22.25.34.6.56 1.05.66v1.21zM163.8 28.71l1.51-2.26-1.4-2.1h1.32l.54.87c.07.12.14.27.21.44.07-.17.14-.31.21-.44l.54-.87h1.32l-1.39 2.1 1.5 2.26h-1.32l-.63-1.03c-.07-.12-.15-.27-.21-.44-.06.17-.13.31-.21.44l-.64 1.03h-1.35zM169.26 28.5c.44-.11.79-.33 1.05-.66.25-.34.38-.74.38-1.22V25.1c0-.49-.13-.9-.38-1.23-.25-.34-.6-.56-1.05-.67v-1.19c.82.22 1.47.61 1.93 1.15.46.54.69 1.19.69 1.94v1.51c0 .77-.23 1.41-.68 1.95-.45.53-1.1.91-1.94 1.14v-1.2zM180.16 25.7c-.21 0-.38-.07-.51-.2a.71.71 0 0 1-.2-.51c0-.21.07-.38.2-.51s.3-.2.51-.2h.16c.21 0 .38.07.51.2s.2.3.2.51c0 .21-.07.38-.2.51s-.3.2-.51.2h-.16zm0 3.09c-.21 0-.38-.07-.51-.2s-.2-.3-.2-.51.07-.38.2-.51.3-.2.51-.2h.16c.21 0 .38.07.51.2s.2.31.2.51-.07.38-.2.51-.3.2-.51.2h-.16zM187.84 28.71v-5.78h1.39l1.5 4.48c-.09-.92-.13-1.62-.13-2.1v-2.38h1.05v5.78h-1.39l-1.48-4.48c.07.82.11 1.47.11 1.94v2.54h-1.05zM193.5 28.57c-.29-.15-.51-.35-.66-.61-.15-.26-.23-.57-.23-.91v-1.03c0-.35.08-.65.23-.91.16-.26.38-.47.66-.61s.62-.22 1.01-.22.72.07 1.01.22c.29.15.51.35.66.61.15.26.23.57.23.91v1.03c0 .35-.08.65-.23.91-.16.26-.38.47-.66.61s-.62.22-1.01.22-.73-.07-1.01-.22zm1.53-1c.12-.12.18-.3.18-.53v-1.03c0-.23-.06-.41-.18-.53-.12-.12-.3-.18-.53-.18-.23 0-.4.06-.53.18s-.19.3-.19.53v1.03c0 .23.06.4.19.53.12.12.3.19.53.19.23 0 .41-.06.53-.19zM200.74 24.72c.26.3.38.69.38 1.18v2.81h-1.19v-2.69c0-.23-.06-.4-.18-.53a.687.687 0 0 0-.5-.19c-.21 0-.37.06-.49.19-.12.12-.17.3-.17.53v2.69h-1.19v-4.36h1.15v.83h.02c.05-.28.18-.51.38-.67.2-.16.46-.24.77-.24.43 0 .76.15 1.02.45zM205.91 26.81h-2.67v.24c0 .55.26.83.79.83.19 0 .33-.03.45-.1.11-.06.19-.15.23-.26h1.16c-.09.38-.31.69-.65.92-.34.23-.74.35-1.21.35-.39 0-.72-.07-1.01-.22-.29-.15-.51-.35-.67-.61-.15-.26-.23-.57-.23-.91v-1.03c0-.35.08-.65.23-.91.16-.26.38-.47.67-.61.29-.14.63-.22 1.01-.22s.71.07 1 .22c.29.15.51.35.66.61.15.26.23.57.23.91v.79zm-2.67-.68 1.54-.02V26c0-.55-.25-.83-.76-.83-.26 0-.45.07-.58.22-.13.15-.2.36-.2.63v.11zM210.23 29.7c-.84-.23-1.49-.61-1.94-1.14-.45-.53-.68-1.18-.68-1.95V25.1c0-.75.23-1.4.69-1.94.46-.54 1.1-.93 1.93-1.15v1.19c-.45.11-.8.33-1.05.67s-.38.75-.38 1.23v1.51c0 .48.13.88.38 1.22.25.34.6.56 1.05.66v1.21zM212.05 28.5c.44-.11.79-.33 1.05-.66.25-.34.38-.74.38-1.22V25.1c0-.49-.13-.9-.38-1.23-.25-.34-.6-.56-1.05-.67v-1.19c.82.22 1.47.61 1.93 1.15.46.54.69 1.19.69 1.94v1.51c0 .77-.23 1.41-.68 1.95-.45.53-1.1.91-1.94 1.14v-1.2zM216.81 28.5c.44-.11.79-.33 1.05-.66.25-.34.38-.74.38-1.22V25.1c0-.49-.13-.9-.38-1.23-.25-.34-.6-.56-1.05-.67v-1.19c.82.22 1.47.61 1.93 1.15.46.54.69 1.19.69 1.94v1.51c0 .77-.23 1.41-.68 1.95-.45.53-1.1.91-1.94 1.14v-1.2zM27.98 38.3c-.22 0-.4-.07-.54-.21s-.21-.32-.21-.54.07-.4.21-.54c.14-.14.32-.21.54-.21h.24c.22 0 .4.07.54.21.14.14.21.32.21.54s-.07.4-.21.54-.32.21-.54.21h-.24zM31.48 37.83c-.33-.31-.5-.75-.5-1.3v-2.66h1.19v2.65c0 .24.06.43.17.56.12.13.29.19.51.19.22 0 .38-.06.5-.19s.18-.32.18-.56v-2.65h1.19v2.66c0 .55-.17.99-.5 1.3-.33.31-.79.47-1.37.47-.59 0-1.04-.16-1.37-.47zM39.09 34.23c.26.3.38.69.38 1.18v2.81h-1.19v-2.69c0-.23-.06-.4-.18-.53a.687.687 0 0 0-.5-.19c-.21 0-.37.06-.49.19-.12.12-.17.3-.17.53v2.69h-1.19v-4.36h1.15v.83h.02c.05-.28.18-.51.38-.67.2-.16.46-.24.77-.24.43 0 .76.15 1.02.45zM40.7 38.22l-.63-4.36h.95l.32 2.38c.04.3.08.68.11 1.14.05-.45.1-.83.15-1.14l.37-2.38h.82l.35 2.38c.05.31.1.69.15 1.15.04-.47.08-.85.12-1.15l.33-2.38h.93l-.64 4.36h-1.19l-.33-2.46-.13-1.05-.14 1.05-.33 2.46H40.7zM48.85 34.22c.27.29.4.7.4 1.23v.36h-1.27v-.28c0-.24-.06-.42-.19-.55a.7.7 0 0 0-.52-.2c-.22 0-.39.07-.51.2s-.18.32-.18.55v2.69h-1.19v-4.36h1.11v.83h.02c.07-.3.21-.53.41-.68s.48-.23.81-.23c.47 0 .85.15 1.11.44zM53.27 34.17c.31.26.47.63.47 1.11v2.93h-1.15v-.71h-.02c-.06.25-.21.44-.43.58-.23.14-.5.21-.83.21-.44 0-.78-.12-1.04-.36s-.38-.56-.38-.97c0-.44.15-.77.46-1.01.3-.24.74-.35 1.31-.35h.9v-.33c0-.37-.22-.55-.65-.55-.2 0-.35.04-.47.12s-.19.2-.22.35h-1.15c.05-.44.24-.79.57-1.04.34-.26.77-.38 1.3-.38.57.01 1.02.14 1.33.4zm-.94 3.07c.14-.12.22-.28.22-.49v-.47h-.88c-.19 0-.33.05-.44.15s-.16.24-.16.41c0 .18.06.32.18.42.12.1.29.15.5.15.24.02.44-.04.58-.17zM58.13 34.25c.26.31.4.72.4 1.24v1.11c0 .52-.13.93-.4 1.24-.26.31-.62.46-1.05.46-.31 0-.57-.08-.76-.24s-.32-.38-.37-.67h-.02l.04 1.07v1.19h-1.19v-5.78h1.15v.83h.02c.05-.29.17-.51.37-.67s.45-.24.76-.24c.43-.01.79.15 1.05.46zm-.79 1.27c0-.23-.06-.4-.18-.53a.694.694 0 0 0-.51-.19c-.22 0-.39.06-.51.19-.12.12-.18.3-.18.53v1.03c0 .23.06.4.18.53.12.12.29.19.51.19.22 0 .39-.06.51-.19.12-.12.18-.3.18-.53v-1.03zM63.28 39.53h-3.8v-1.11h3.8v1.11zM65.13 38.08c-.29-.15-.51-.35-.66-.61-.15-.26-.23-.57-.23-.91v-1.03c0-.35.08-.65.23-.91.16-.26.38-.47.66-.61s.62-.22 1.01-.22.72.07 1.01.22c.29.15.51.35.66.61.15.26.23.57.23.91v1.03c0 .35-.08.65-.23.91-.16.26-.38.47-.66.61s-.62.22-1.01.22-.73-.07-1.01-.22zm1.53-1c.12-.12.18-.3.18-.53v-1.03c0-.23-.06-.41-.18-.53s-.3-.18-.53-.18c-.23 0-.4.06-.53.18s-.19.3-.19.53v1.03c0 .23.06.4.19.53.12.12.3.19.53.19.24 0 .41-.06.53-.19zM72.63 34.22c.27.29.4.7.4 1.23v.36h-1.27v-.28c0-.24-.06-.42-.19-.55a.7.7 0 0 0-.52-.2c-.22 0-.39.07-.51.2s-.18.32-.18.55v2.69h-1.19v-4.36h1.11v.83h.02c.07-.3.21-.53.41-.68.21-.15.48-.23.81-.23.46 0 .84.15 1.11.44zM77.11 39.21c-.84-.23-1.49-.61-1.94-1.14-.45-.53-.68-1.18-.68-1.95v-1.51c0-.75.23-1.4.69-1.94.46-.54 1.1-.93 1.93-1.15v1.19c-.45.11-.8.33-1.05.67s-.38.75-.38 1.23v1.51c0 .48.13.88.38 1.22.25.34.6.56 1.05.66v1.21zM79.39 38.08c-.29-.15-.51-.35-.66-.61-.15-.26-.23-.57-.23-.91V34.1c0-.35.08-.65.23-.92.16-.26.38-.46.66-.61.28-.15.62-.22 1.01-.22s.72.07 1.01.22c.29.15.51.35.66.61.15.26.23.57.23.92v2.46c0 .35-.08.65-.23.91-.16.26-.38.47-.66.61s-.62.22-1.01.22-.73-.07-1.01-.22zm1.59-1c.14-.13.21-.3.21-.52V34.1c0-.22-.07-.4-.21-.52-.14-.13-.33-.19-.58-.19-.25 0-.44.06-.58.19a.67.67 0 0 0-.21.52v2.46c0 .22.07.4.21.52.14.13.33.19.58.19.24 0 .44-.07.58-.19zm-.87-1.4a.45.45 0 0 1-.11-.31v-.12c0-.13.04-.24.11-.32.07-.08.17-.12.28-.12.12 0 .22.04.29.12.07.08.11.18.11.32v.12c0 .13-.04.24-.11.32a.37.37 0 0 1-.29.12.41.41 0 0 1-.28-.13zM83.68 38.01c.44-.11.79-.33 1.05-.66.25-.34.38-.74.38-1.22v-1.51c0-.49-.13-.9-.38-1.23-.25-.34-.6-.56-1.05-.67v-1.19c.82.22 1.47.61 1.93 1.15.46.54.69 1.19.69 1.94v1.51c0 .77-.23 1.41-.68 1.95-.45.53-1.1.91-1.94 1.14v-1.21zM89.71 39.49h-1.03l.63-2.46h1.43l-1.03 2.46zm.11-4.28c-.21 0-.38-.07-.51-.2a.71.71 0 0 1-.2-.51c0-.21.07-.38.2-.51s.3-.2.51-.2h.16c.21 0 .38.07.51.2s.2.3.2.51c0 .21-.07.38-.2.51s-.3.2-.51.2h-.16z"/></svg>
|
package/rsult.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 201.6 115.56" style="enable-background:new 0 0 201.6 115.56" xml:space="preserve"><style>.st0{fill:#8986c1}.st1{fill:#bd8648}.st2{fill:#fed700}.st3{fill:#bd8647}</style><path class="st0" d="M87.77 18.97H82.8v-1.45h4.96v1.45zM91.34 17.37c-.28 0-.52-.09-.7-.28a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7 0 .28-.09.52-.28.7-.19.19-.42.28-.7.28h-.31zM99.97 14.58h-4.55v-1.45h4.55v1.45zM103.75 17.37c-.28 0-.52-.09-.7-.28a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7 0 .28-.09.52-.28.7-.19.19-.42.28-.7.28h-.31z"/><path class="st1" d="M124.78 12.05c.35.38.52.91.52 1.6v.47h-1.65v-.36c0-.31-.08-.55-.25-.72-.16-.17-.39-.26-.68-.26s-.51.09-.67.26c-.16.17-.24.41-.24.72v3.52h-1.55v-5.69h1.45v1.09h.02c.09-.39.27-.69.54-.89.27-.2.62-.3 1.06-.3.62-.01 1.11.18 1.45.56zM128.48 17.37c-.46 0-.87-.07-1.23-.22-.36-.14-.63-.35-.83-.62-.2-.27-.3-.58-.3-.92h1.55c0 .17.07.3.22.4.14.1.34.15.58.15h.45c.28 0 .5-.05.65-.15.15-.1.22-.25.22-.43 0-.17-.07-.31-.2-.4-.13-.09-.33-.16-.61-.19l-.66-.08c-.72-.09-1.24-.26-1.56-.52-.32-.26-.48-.65-.48-1.16 0-.56.19-.99.57-1.29.38-.3.94-.45 1.66-.45h.39c.69 0 1.24.15 1.66.46.42.3.63.71.63 1.22h-1.55c0-.14-.07-.25-.2-.34-.13-.09-.31-.13-.53-.13h-.39c-.25 0-.44.04-.56.13-.12.09-.18.22-.18.39 0 .16.05.28.15.36.1.08.28.14.52.18l.71.09c.73.1 1.27.28 1.61.55.34.27.51.67.51 1.19 0 .58-.2 1.02-.6 1.33-.4.31-.99.47-1.76.47h-.44zM133.13 16.76c-.43-.41-.65-.98-.65-1.7v-3.47h1.55v3.46c0 .32.08.56.23.73.15.17.37.25.66.25.28 0 .5-.08.66-.25.15-.17.23-.41.23-.73v-3.46h1.55v3.47c0 .72-.22 1.29-.65 1.7-.43.41-1.03.62-1.79.62-.76-.01-1.36-.21-1.79-.62zM142.06 17.27c-.61 0-1.09-.18-1.46-.55-.37-.37-.55-.86-.55-1.46v-4.14h-1.76v-1.4h3.31v5.53c0 .19.06.34.17.45.11.11.26.17.45.17h1.65v1.4h-1.81zM147.95 17.27c-.58 0-1.03-.17-1.37-.5-.33-.33-.5-.79-.5-1.37v-2.43h-1.5v-1.4h1.5v-1.55h1.55v1.55h2.12v1.4h-2.12v2.43c0 .15.04.27.12.35.08.08.2.12.35.12h1.55v1.4h-1.7z"/><path class="st2" d="M60.31 29.78c-.28 0-.52-.09-.7-.28-.19-.19-.28-.42-.28-.7s.09-.52.28-.7c.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7s-.09.52-.28.7c-.19.19-.42.28-.7.28h-.31zM68.95 26.99H64.4v-1.45h4.55v1.45zM72.72 29.78c-.28 0-.52-.09-.7-.28-.19-.19-.28-.42-.28-.7s.09-.52.28-.7c.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7s-.09.52-.28.7c-.19.19-.42.28-.7.28h-.31z"/><path class="st0" d="M92.73 23.01h-1.45l-1.34-1.45h1.55l1.24 1.45zM95.78 29.4c.58-.14 1.03-.43 1.37-.86s.5-.97.5-1.59v-1.98c0-.63-.16-1.17-.49-1.61-.33-.44-.78-.73-1.37-.87v-1.55c1.08.29 1.91.79 2.51 1.5.6.71.9 1.56.9 2.53v1.98c0 1-.29 1.85-.88 2.54-.59.69-1.43 1.19-2.53 1.48V29.4zM110.88 30.82h-1.55V21.1h1.55v9.72z"/><path class="st2" d="M128.56 29.78c-.28 0-.52-.09-.7-.28-.19-.19-.28-.42-.28-.7s.09-.52.28-.7c.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7s-.09.52-.28.7c-.19.19-.42.28-.7.28h-.31zM137.2 26.99h-4.55v-1.45h4.55v1.45zM140.97 29.78c-.28 0-.52-.09-.7-.28-.19-.19-.28-.42-.28-.7s.09-.52.28-.7c.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7s-.09.52-.28.7c-.19.19-.42.28-.7.28h-.31zM38.13 43.79h-4.96v-1.45h4.96v1.45zM41.7 42.19c-.28 0-.52-.09-.7-.28a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28s.28.42.28.7c0 .28-.09.52-.28.7s-.42.28-.7.28h-.31zM48.69 37.64h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM55.5 35.42h-1.45l-1.34-1.45h1.55l1.24 1.45zM60.31 42.19c-.28 0-.52-.09-.7-.28a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7 0 .28-.09.52-.28.7-.19.19-.42.28-.7.28h-.31zM72.72 42.19c-.28 0-.52-.09-.7-.28a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7 0 .28-.09.52-.28.7-.19.19-.42.28-.7.28h-.31zM76.39 38.57c0-.44.14-.79.43-1.05s.68-.39 1.17-.39c.28 0 .51.04.7.13.19.09.35.2.47.32s.24.28.37.47c.13.19.24.32.33.4.09.08.2.12.33.12.11 0 .19-.03.25-.09s.08-.15.08-.27v-.78h1.24v.88c0 .44-.14.79-.43 1.05s-.68.39-1.17.39c-.28 0-.51-.04-.7-.13-.19-.09-.35-.2-.47-.32s-.24-.28-.37-.47a2.24 2.24 0 0 0-.33-.4.479.479 0 0 0-.33-.12c-.11 0-.19.03-.25.09-.05.06-.08.15-.08.27v.78h-1.24v-.88zM85.13 42.19c-.28 0-.52-.09-.7-.28a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7 0 .28-.09.52-.28.7-.19.19-.42.28-.7.28h-.31z"/><path class="st0" d="M90.51 43.23h-1.6l3.57-9.72h1.6l-3.57 9.72zM112.68 43.23h-1.6l-3.57-9.72h1.6l3.57 9.72z"/><path class="st2" d="M116.15 42.19c-.28 0-.52-.09-.7-.28a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7 0 .28-.09.52-.28.7-.19.19-.42.28-.7.28h-.31zM119.83 38.57c0-.44.14-.79.43-1.05s.68-.39 1.17-.39c.28 0 .51.04.7.13.19.09.35.2.47.32s.24.28.37.47c.13.19.24.32.33.4.09.08.2.12.33.12.11 0 .19-.03.25-.09s.08-.15.08-.27v-.78h1.24v.88c0 .44-.14.79-.43 1.05s-.68.39-1.17.39c-.28 0-.51-.04-.7-.13-.19-.09-.35-.2-.47-.32s-.24-.28-.37-.47a2.24 2.24 0 0 0-.33-.4.479.479 0 0 0-.33-.12c-.11 0-.19.03-.25.09-.05.06-.08.15-.08.27v.78h-1.24v-.88zM128.56 42.19c-.28 0-.52-.09-.7-.28a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7 0 .28-.09.52-.28.7-.19.19-.42.28-.7.28h-.31zM140.97 42.19c-.28 0-.52-.09-.7-.28a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7 0 .28-.09.52-.28.7-.19.19-.42.28-.7.28h-.31zM148.57 35.42h-1.45l-1.34-1.45h1.55l1.24 1.45zM154.17 37.64h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM159.59 42.19c-.28 0-.52-.09-.7-.28a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7 0 .28-.09.52-.28.7-.19.19-.42.28-.7.28h-.31zM168.43 43.79h-4.96v-1.45h4.96v1.45zM16.88 54.6c-.28 0-.52-.09-.7-.28-.19-.19-.28-.42-.28-.7s.09-.52.28-.7c.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7s-.09.52-.28.7c-.19.19-.42.28-.7.28h-.31zM25.52 51.81h-4.55v-1.45h4.55v1.45zM30.08 50.05h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM41.7 54.6c-.28 0-.52-.09-.7-.28-.19-.19-.28-.42-.28-.7s.09-.52.28-.7c.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7s-.09.52-.28.7c-.19.19-.42.28-.7.28h-.31zM48.69 50.05h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM54.11 54.6c-.28 0-.52-.09-.7-.28-.19-.19-.28-.42-.28-.7s.09-.52.28-.7c.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7s-.09.52-.28.7c-.19.19-.42.28-.7.28h-.31zM61.1 50.05h-1.25l-.15-1.45v-1.65h1.53v1.65l-.13 1.45zM66.52 54.6c-.28 0-.52-.09-.7-.28-.19-.19-.28-.42-.28-.7s.09-.52.28-.7c.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7s-.09.52-.28.7c-.19.19-.42.28-.7.28h-.31zM73.51 50.05h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM78.93 54.6c-.28 0-.52-.09-.7-.28-.19-.19-.28-.42-.28-.7s.09-.52.28-.7c.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7s-.09.52-.28.7c-.19.19-.42.28-.7.28h-.31zM87.56 51.81h-4.55v-1.45h4.55v1.45z"/><path class="st0" d="M92.27 55.63h-1.55v-9.72h1.55v9.72zM110.88 55.63h-1.55v-9.72h1.55v9.72z"/><path class="st2" d="M118.58 51.81h-4.55v-1.45h4.55v1.45zM122.36 54.6c-.28 0-.52-.09-.7-.28-.19-.19-.28-.42-.28-.7s.09-.52.28-.7c.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7s-.09.52-.28.7c-.19.19-.42.28-.7.28h-.31zM129.35 50.05h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM134.77 54.6c-.28 0-.52-.09-.7-.28-.19-.19-.28-.42-.28-.7s.09-.52.28-.7c.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7s-.09.52-.28.7c-.19.19-.42.28-.7.28h-.31zM141.76 50.05h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM147.18 54.6c-.28 0-.52-.09-.7-.28-.19-.19-.28-.42-.28-.7s.09-.52.28-.7c.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7s-.09.52-.28.7c-.19.19-.42.28-.7.28h-.31zM154.17 50.05h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM159.59 54.6c-.28 0-.52-.09-.7-.28-.19-.19-.28-.42-.28-.7s.09-.52.28-.7c.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7s-.09.52-.28.7c-.19.19-.42.28-.7.28h-.31zM172.78 50.05h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM180.63 51.81h-4.55v-1.45h4.55v1.45zM184.4 54.6c-.28 0-.52-.09-.7-.28-.19-.19-.28-.42-.28-.7s.09-.52.28-.7c.19-.19.42-.28.7-.28h.31c.28 0 .52.09.7.28.19.19.28.42.28.7s-.09.52-.28.7c-.19.19-.42.28-.7.28h-.31zM24.48 60.24h-1.45l-1.34-1.45h1.55l1.24 1.45zM30.08 62.46h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM36.89 60.24h-1.45l-1.34-1.45h1.55l1.24 1.45zM42.49 62.46h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM49.3 60.24h-1.45l-1.34-1.45h1.55l1.24 1.45zM54.89 62.46h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM61.71 60.24h-1.45l-1.34-1.45h1.55l1.24 1.45zM67.3 62.46h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM74.12 60.24h-1.45l-1.34-1.45h1.55l1.24 1.45z"/><path class="st0" d="M102.92 68.04h-1.6l3.57-9.72h1.6l-3.57 9.72z"/><path class="st2" d="M123.76 60.24h-1.45l-1.34-1.45h1.55l1.24 1.45zM129.35 62.46h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM136.16 60.24h-1.45l-1.34-1.45h1.55l1.24 1.45zM141.76 62.46h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM148.57 60.24h-1.45l-1.34-1.45h1.55l1.24 1.45zM154.17 62.46h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM160.98 60.24h-1.45l-1.34-1.45h1.55l1.24 1.45zM166.58 62.46h-1.25l-.14-1.45v-1.65h1.53v1.65l-.14 1.45zM173.39 60.24h-1.45l-1.34-1.45h1.55l1.24 1.45z"/><path class="st0" d="M90.51 80.45h-1.6l3.57-9.72h1.6l-3.57 9.72zM98.47 80.45h-1.55v-9.72h1.55v9.72zM104.68 80.45h-1.55v-9.72h1.55v9.72zM112.68 80.45h-1.6l-3.57-9.72h1.6l3.57 9.72zM84.3 92.86h-1.6l3.57-9.72h1.6l-3.57 9.72zM90.51 92.86h-1.6l3.57-9.72h1.6l-3.57 9.72zM98.47 92.86h-1.55v-9.72h1.55v9.72zM104.68 92.86h-1.55v-9.72h1.55v9.72zM118.88 92.86h-1.6l-3.57-9.72h1.6l3.57 9.72z"/><path class="st3" d="M81.56 93.43H76.6v-1.45h4.96v1.45zM112.59 93.43h-4.96v-1.45h4.96v1.45zM125 93.43h-4.96v-1.45H125v1.45zM131.2 93.43h-4.96v-1.45h4.96v1.45zM71.89 105.27h-1.6l3.57-9.72h1.6l-3.57 9.72zM81.56 105.84H76.6v-1.45h4.96v1.45zM87.77 105.84H82.8v-1.45h4.96v1.45zM93.97 105.84h-4.96v-1.45h4.96v1.45zM100.18 105.84h-4.96v-1.45h4.96v1.45zM106.38 105.84h-4.96v-1.45h4.96v1.45zM112.59 105.84h-4.96v-1.45h4.96v1.45zM118.79 105.84h-4.96v-1.45h4.96v1.45zM125 105.84h-4.96v-1.45H125v1.45zM131.2 105.84h-4.96v-1.45h4.96v1.45zM137.5 105.27h-1.6l-3.57-9.72h1.6l3.57 9.72z"/></svg>
|
package/src/lib.ts
ADDED