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 ADDED
@@ -0,0 +1,6 @@
1
+ module.exports = {
2
+ testEnvironment: 'node',
3
+ transform: {
4
+ '^.+\\.(t|j)s?$': '@swc/jest',
5
+ },
6
+ }
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
@@ -0,0 +1,2 @@
1
+ export * from './result';
2
+ export * from './option';