pollination-react-io 0.0.34 → 0.0.35

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/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2020 Harvey Delaney
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2020 Harvey Delaney
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,111 +1,111 @@
1
- # Pollination React IO
2
-
3
- Plan is to create a set of hooks and higher order components (HOCs) that abstract logic originally implemented in pollination-streamlit-io to facilitate using react as a native client for the CAD plugins.
4
-
5
- ### Testing
6
-
7
- ```
8
- npm run test
9
- ```
10
-
11
- ### Building
12
-
13
- ```
14
- npm run build
15
- ```
16
-
17
- ### Storybook
18
-
19
- To run a live-reload Storybook server on your local machine:
20
-
21
- ```
22
- npm run storybook
23
- ```
24
-
25
- To export your Storybook as static files:
26
-
27
- ```
28
- npm run storybook:export
29
- ```
30
-
31
- You can then serve the files under `storybook-static` using S3, GitHub pages, Express etc. I've hosted this library at: https://www.harveydelaney.com/react-component-library
32
-
33
- ### Generating New Components
34
-
35
- I've included a handy NodeJS util file under `util` called `create-component.js`. Instead of copy pasting components to create a new component, you can instead run this command to generate all the files you need to start building out a new component. To use it:
36
-
37
- ```
38
- npm run generate YourComponentName
39
- ```
40
-
41
- This will generate:
42
-
43
- ```
44
- /src
45
- /YourComponentName
46
- YourComponentName.tsx
47
- YourComponentName.stories.tsx
48
- YourComponentName.test.tsx
49
- YourComponentName.types.ts
50
- YourComponentName.scss
51
- ```
52
-
53
- The default templates for each file can be modified under `util/templates`.
54
-
55
- Don't forget to add the component to your `index.ts` exports if you want the library to export the component!
56
-
57
- ### Installing Component Library Locally
58
-
59
- Let's say you have another project (`test-app`) on your machine that you want to try installing the component library into without having to first publish the component library. In the `test-app` directory, you can run:
60
-
61
- ```
62
- npm i --save ../react-component-library
63
- ```
64
-
65
- which will install the local component library as a dependency in `test-app`. It'll then appear as a dependency in `package.json` like:
66
-
67
- ```
68
- ...
69
- "dependencies": {
70
- ...
71
- "react-component-library": "file:../react-component-library",
72
- ...
73
- },
74
- ...
75
- ```
76
-
77
- Your components can then be imported and used in that project.
78
- ### Using Component Library SASS Variables
79
-
80
- I've found that it's helpful to export SASS variables to projects consuming the library. As such, I've added the `rollup-plugin-copy` NPM package and used it to copy the [`src/typography.scss`](src/typography.scss) and [`variables.scss`](src/variables.scss) into the `build` directory as part of the Rollup bundle process. This allows you to use these variables in your projects consuming the component library.
81
-
82
- For example, let's say you installed `harvey-component-library` into your project. To use the exported variables/mixins, in a SASS file you would do the following:
83
-
84
- ```Sass
85
- @import '~harvey-component-library/build/typography';
86
-
87
- .example-container {
88
- @include heading;
89
-
90
- color: $harvey-white;
91
- }
92
- ```
93
-
94
- ## Additional Help
95
-
96
- ### Dark Mode
97
-
98
- The example component `TestComponent` respects the user's dark mode operating system preferences and renders the component in the appropriate theme.
99
-
100
- This is achieved by using the media query: `@media (prefers-color-scheme: dark)` in combination with CSS variables. The colours that change depending on dark mode preference can be found in [`src/variables.scss`](src/variables.scss). Example usage of these variables can be found within [`src/TestComponent/TestComponent.scss`](src/TestComponent/TestComponent.scss).
101
-
102
- Read https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme for more details.
103
-
104
-
105
- [Built with react-component-library](https://blog.harveydelaney.com/creating-your-own-react-component-library/)
106
-
107
- - [Rollup](https://github.com/rollup/rollup)
108
- - [Sass](https://sass-lang.com/)
109
- - [TypeScript](https://www.typescriptlang.org/)
110
- - [Storybook](https://storybook.js.org/)
111
- - [Jest](https://jestjs.io/) and [React Testing Library](https://github.com/testing-library/react-testing-library)
1
+ # Pollination React IO
2
+
3
+ Plan is to create a set of hooks and higher order components (HOCs) that abstract logic originally implemented in pollination-streamlit-io to facilitate using react as a native client for the CAD plugins.
4
+
5
+ ### Testing
6
+
7
+ ```
8
+ npm run test
9
+ ```
10
+
11
+ ### Building
12
+
13
+ ```
14
+ npm run build
15
+ ```
16
+
17
+ ### Storybook
18
+
19
+ To run a live-reload Storybook server on your local machine:
20
+
21
+ ```
22
+ npm run storybook
23
+ ```
24
+
25
+ To export your Storybook as static files:
26
+
27
+ ```
28
+ npm run storybook:export
29
+ ```
30
+
31
+ You can then serve the files under `storybook-static` using S3, GitHub pages, Express etc. I've hosted this library at: https://www.harveydelaney.com/react-component-library
32
+
33
+ ### Generating New Components
34
+
35
+ I've included a handy NodeJS util file under `util` called `create-component.js`. Instead of copy pasting components to create a new component, you can instead run this command to generate all the files you need to start building out a new component. To use it:
36
+
37
+ ```
38
+ npm run generate YourComponentName
39
+ ```
40
+
41
+ This will generate:
42
+
43
+ ```
44
+ /src
45
+ /YourComponentName
46
+ YourComponentName.tsx
47
+ YourComponentName.stories.tsx
48
+ YourComponentName.test.tsx
49
+ YourComponentName.types.ts
50
+ YourComponentName.scss
51
+ ```
52
+
53
+ The default templates for each file can be modified under `util/templates`.
54
+
55
+ Don't forget to add the component to your `index.ts` exports if you want the library to export the component!
56
+
57
+ ### Installing Component Library Locally
58
+
59
+ Let's say you have another project (`test-app`) on your machine that you want to try installing the component library into without having to first publish the component library. In the `test-app` directory, you can run:
60
+
61
+ ```
62
+ npm i --save ../react-component-library
63
+ ```
64
+
65
+ which will install the local component library as a dependency in `test-app`. It'll then appear as a dependency in `package.json` like:
66
+
67
+ ```
68
+ ...
69
+ "dependencies": {
70
+ ...
71
+ "react-component-library": "file:../react-component-library",
72
+ ...
73
+ },
74
+ ...
75
+ ```
76
+
77
+ Your components can then be imported and used in that project.
78
+ ### Using Component Library SASS Variables
79
+
80
+ I've found that it's helpful to export SASS variables to projects consuming the library. As such, I've added the `rollup-plugin-copy` NPM package and used it to copy the [`src/typography.scss`](src/typography.scss) and [`variables.scss`](src/variables.scss) into the `build` directory as part of the Rollup bundle process. This allows you to use these variables in your projects consuming the component library.
81
+
82
+ For example, let's say you installed `harvey-component-library` into your project. To use the exported variables/mixins, in a SASS file you would do the following:
83
+
84
+ ```Sass
85
+ @import '~harvey-component-library/build/typography';
86
+
87
+ .example-container {
88
+ @include heading;
89
+
90
+ color: $harvey-white;
91
+ }
92
+ ```
93
+
94
+ ## Additional Help
95
+
96
+ ### Dark Mode
97
+
98
+ The example component `TestComponent` respects the user's dark mode operating system preferences and renders the component in the appropriate theme.
99
+
100
+ This is achieved by using the media query: `@media (prefers-color-scheme: dark)` in combination with CSS variables. The colours that change depending on dark mode preference can be found in [`src/variables.scss`](src/variables.scss). Example usage of these variables can be found within [`src/TestComponent/TestComponent.scss`](src/TestComponent/TestComponent.scss).
101
+
102
+ Read https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme for more details.
103
+
104
+
105
+ [Built with react-component-library](https://blog.harveydelaney.com/creating-your-own-react-component-library/)
106
+
107
+ - [Rollup](https://github.com/rollup/rollup)
108
+ - [Sass](https://sass-lang.com/)
109
+ - [TypeScript](https://www.typescriptlang.org/)
110
+ - [Storybook](https://storybook.js.org/)
111
+ - [Jest](https://jestjs.io/) and [React Testing Library](https://github.com/testing-library/react-testing-library)
@@ -0,0 +1,9 @@
1
+ export declare const geometry: {
2
+ type: string;
3
+ vertices: number[][];
4
+ face_indices: number[][][];
5
+ edge_information: {
6
+ edge_indices: number[][];
7
+ edge_types: number[];
8
+ };
9
+ };
@@ -1,87 +1,87 @@
1
- @import "./variables.scss";
2
- @import "./typography.scss";
3
-
4
- .btn-group {
5
- @include font-defaults;
6
-
7
- width: fit-content;
8
- display: flex;
9
- border-radius: 4px;
10
- }
11
-
12
- .btn-group:hover {
13
- box-shadow: 0 1px 2px 0 rgba(26, 115, 232, 0.45), 0 1px 3px 1px rgba(26, 115, 232, 0.30);
14
- }
15
-
16
- .btn-group-disabled:hover {
17
- box-shadow: none;
18
- }
19
-
20
- .btn-group button {
21
- max-width: 260px;
22
- display: flex;
23
- background-color: var(--primary);
24
- border: 1px solid var(--primary);
25
- color: white;
26
- padding: 6px 10px;
27
- cursor: pointer;
28
- float: left;
29
- transition: background-color 0.125s ease-in-out;
30
- z-index: 10;
31
- align-items: center;
32
- gap: 8px;
33
- }
34
-
35
- .btn-group-disabled button {
36
- background-color: var(--grey3);
37
- color: var(--grey5);
38
- cursor: default;
39
- border-color: var(--grey5);
40
- }
41
-
42
- .btn-group button:first-child {
43
- border-top-left-radius: 4px;
44
- border-bottom-left-radius: 4px;
45
- }
46
-
47
- .btn-group button:last-child {
48
- border-top-right-radius: 4px;
49
- border-bottom-right-radius: 4px;
50
- border-left-color: #096dd9;
51
- }
52
-
53
- .btn-group button:last-child:disabled {
54
- border-left-color: var(--grey5);
55
- }
56
-
57
- .btn-group button:not(:last-child) {
58
- border-right: none;
59
- }
60
-
61
- .btn-group button:focus-visible {
62
- outline: none;
63
- }
64
-
65
- .btn-group button:focus {
66
- outline: none;
67
- }
68
-
69
- /* Clear floats (clearfix hack) */
70
- .btn-group:after {
71
- content: "";
72
- clear: both;
73
- display: table;
74
- }
75
-
76
- .btn-group button:hover {
77
- background-color: var(--primary2);
78
- z-index: 11;
79
- }
80
-
81
- .btn-group-disabled:hover button:hover {
82
- background-color: var(--grey3);
83
- }
84
-
85
- .options-content {
86
- font-size: calc(clamp(0.65rem, 8vw - 0.75rem, 0.85rem));
1
+ @import "./variables.scss";
2
+ @import "./typography.scss";
3
+
4
+ .btn-group {
5
+ @include font-defaults;
6
+
7
+ width: fit-content;
8
+ display: flex;
9
+ border-radius: 4px;
10
+ }
11
+
12
+ .btn-group:hover {
13
+ box-shadow: 0 1px 2px 0 rgba(26, 115, 232, 0.45), 0 1px 3px 1px rgba(26, 115, 232, 0.30);
14
+ }
15
+
16
+ .btn-group-disabled:hover {
17
+ box-shadow: none;
18
+ }
19
+
20
+ .btn-group button {
21
+ max-width: 260px;
22
+ display: flex;
23
+ background-color: var(--primary);
24
+ border: 1px solid var(--primary);
25
+ color: white;
26
+ padding: 6px 10px;
27
+ cursor: pointer;
28
+ float: left;
29
+ transition: background-color 0.125s ease-in-out;
30
+ z-index: 10;
31
+ align-items: center;
32
+ gap: 8px;
33
+ }
34
+
35
+ .btn-group-disabled button {
36
+ background-color: var(--grey3);
37
+ color: var(--grey5);
38
+ cursor: default;
39
+ border-color: var(--grey5);
40
+ }
41
+
42
+ .btn-group button:first-child {
43
+ border-top-left-radius: 4px;
44
+ border-bottom-left-radius: 4px;
45
+ }
46
+
47
+ .btn-group button:last-child {
48
+ border-top-right-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-left-color: #096dd9;
51
+ }
52
+
53
+ .btn-group button:last-child:disabled {
54
+ border-left-color: var(--grey5);
55
+ }
56
+
57
+ .btn-group button:not(:last-child) {
58
+ border-right: none;
59
+ }
60
+
61
+ .btn-group button:focus-visible {
62
+ outline: none;
63
+ }
64
+
65
+ .btn-group button:focus {
66
+ outline: none;
67
+ }
68
+
69
+ /* Clear floats (clearfix hack) */
70
+ .btn-group:after {
71
+ content: "";
72
+ clear: both;
73
+ display: table;
74
+ }
75
+
76
+ .btn-group button:hover {
77
+ background-color: var(--primary2);
78
+ z-index: 11;
79
+ }
80
+
81
+ .btn-group-disabled:hover button:hover {
82
+ background-color: var(--grey3);
83
+ }
84
+
85
+ .options-content {
86
+ font-size: calc(clamp(0.65rem, 8vw - 0.75rem, 0.85rem));
87
87
  }
@@ -4789,7 +4789,7 @@ var Dropdown = function (_a) {
4789
4789
  var css_248z$4 = ":root {\n --background: #FFFAEE;\n --primary: #1890ff;\n --primary2: #40a9ff;\n --primary0: #e6f7ff;\n --grey5: #8c8c8c;\n --grey3: #d0d7de;\n --secondary: #fff566;\n --font-color: #494949;\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --background: #3c3c3c;\n --font-color: #fafafa;\n }\n}\n@keyframes spin {\n from {\n transform: rotate(0);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.spin {\n animation: spin 1s linear 0s infinite;\n}\n\nspan.label {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n font-size: clamp(0.75rem, 8vw - 0.85rem, 0.95rem);\n color: #11181C;\n}\n\nspan.label-secondary {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n font-size: clamp(0.65rem, 8vw - 0.75rem, 0.85rem);\n color: #687075;\n}\n\n.btn-group {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n width: fit-content;\n display: flex;\n border-radius: 4px;\n}\n\n.btn-group:hover {\n box-shadow: 0 1px 2px 0 rgba(26, 115, 232, 0.45), 0 1px 3px 1px rgba(26, 115, 232, 0.3);\n}\n\n.btn-group-disabled:hover {\n box-shadow: none;\n}\n\n.btn-group button {\n max-width: 260px;\n display: flex;\n background-color: var(--primary);\n border: 1px solid var(--primary);\n color: white;\n padding: 6px 10px;\n cursor: pointer;\n float: left;\n transition: background-color 0.125s ease-in-out;\n z-index: 10;\n align-items: center;\n gap: 8px;\n}\n\n.btn-group-disabled button {\n background-color: var(--grey3);\n color: var(--grey5);\n cursor: default;\n border-color: var(--grey5);\n}\n\n.btn-group button:first-child {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n\n.btn-group button:last-child {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n border-left-color: #096dd9;\n}\n\n.btn-group button:last-child:disabled {\n border-left-color: var(--grey5);\n}\n\n.btn-group button:not(:last-child) {\n border-right: none;\n}\n\n.btn-group button:focus-visible {\n outline: none;\n}\n\n.btn-group button:focus {\n outline: none;\n}\n\n/* Clear floats (clearfix hack) */\n.btn-group:after {\n content: \"\";\n clear: both;\n display: table;\n}\n\n.btn-group button:hover {\n background-color: var(--primary2);\n z-index: 11;\n}\n\n.btn-group-disabled:hover button:hover {\n background-color: var(--grey3);\n}\n\n.options-content {\n font-size: clamp(0.65rem, 8vw - 0.75rem, 0.85rem);\n}";
4790
4790
  styleInject(css_248z$4);
4791
4791
 
4792
- var logo = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMSIgdmlld0JveD0iMCAwIDEyMCAxMjEiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xOTY6Mjg3OSkiPgo8cGF0aCBkPSJNNzQuMTMyOSAxOS45MzVDNzEuMjU0NiAxOC4xNjQ0IDY3Ljc1OCAxNy4xNTg2IDY0LjIxMzggMTYuNjM3OUM2MC44ODM5IDE2LjI1MjcgNTkuMDY5NyAxNi4yNiA1NS44ODQyIDE2LjU2NTNDNTIuMjg2IDE3LjAyOTUgNDguODg2NiAxOC4xMjY5IDQ1LjgwMTIgMTkuNzQyMkwzOC45NzQ2IDI0LjYzMzRDMzUuMDMzNSAyOC4zODQ0IDMyLjEwNDcgMzMuMTg5OCAzMC42Mzk3IDM4LjU5NzdDMzAuNTQ0MyAzOC45NTAxIDMwLjI3MDMgMzkuMjI3MSAyOS45MTkxIDM5LjMyNjlDMTguMjE2NiA0Mi42NTM3IDkuMDk3NjYgNTMuMDE3MyA4LjE0ODg1IDY1LjI1MTdDNy45NTgxIDY3LjcxMTUgOC4wNDI1MiA2OS4wNzc5IDguMTQ4ODYgNzEuNDk4OUM4LjYxNTcxIDgyLjEyNzggMTguMjAxOSA5NC4wNDY1IDI5LjkyIDk3LjQyMjlDMzAuMjcwOCA5Ny41MjM5IDMwLjU0NDQgOTcuODAxMSAzMC42Mzk4IDk4LjE1MzVDMzMuOTA2MyAxMTAuMjIxIDQ0LjQzMjYgMTE5LjU1MyA1Ny4yNzI3IDEyMC4zMzJDNTkuNzYzMiAxMjAuNDgzIDYxLjEyMTMgMTIwLjQ2NiA2My41MTk5IDEyMC4yMDdDNzQuNTAyNyAxMTkuMDE3IDg1LjY0MzMgMTA5LjkxNCA4OC44OSA5OC4zMDM2Qzg4Ljk4OTcgOTcuOTQ3IDg5LjI3MTUgOTcuNjY4NyA4OS42Mjk1IDk3LjU3NDJDMTAxLjYgOTQuNDE0MSAxMTAuODA5IDgzLjkyMjYgMTExLjc3OCA3MS4zMjc2TDExMS43OSA3MS4xNjMyQzExMS45NyA2OC44MzQ5IDExMi4wNzYgNjcuNDYxMiAxMTEuNzc4IDY1LjA4MDRDMTEwLjE3MiA1Mi4yNDEzIDEwMS41OCA0Mi4zMTg1IDg5LjYzMDEgMzkuMTc2M0M4OS4yNzIgMzkuMDgyMiA4OC45OTA0IDM4LjgwNDMgODguODg3NiAzOC40NDg2Qzg3LjM0NTQgMzMuMTEyMSA4My4xNTY3IDI2LjkxMDggODAuODY2OSAyNC44OTMyQzc4LjQ5MzYgMjIuODAyIDc3LjAxMTIgMjEuNzA1NSA3NC4xMzI5IDE5LjkzNVoiIGZpbGw9IiNGQUZBRkEiLz4KPHBhdGggZD0iTTU1LjM1NjUgODEuNTQ2M0M1Mi4yMTA2IDg1LjczMjQgNDcuNTk4OCA4OC43NTM5IDQyLjI4MzMgODkuODQ4N0M0Mi4yNzk2IDg5Ljk5ODMgNDIuMjc3NyA5MC4xNDg0IDQyLjI3NzcgOTAuMjk5QzQyLjI3NzcgMTAwLjA4NyA1MC4yMTIzIDEwOC4wMjEgNjAgMTA4LjAyMUM2OS43ODc4IDEwOC4wMjEgNzcuNzIyMyAxMDAuMDg3IDc3LjcyMjMgOTAuMjk5Qzc3LjcyMjMgODAuNTExMiA2OS43ODc4IDcyLjU3NjcgNjAgNzIuNTc2N0M1OS43NzgyIDcyLjU3NjcgNTkuNTU3NCA3Mi41ODA3IDU5LjMzNzUgNzIuNTg4OEM1OC44NzI3IDc0Ljk5MTkgNTguMDE0OCA3Ny4yNTQ4IDU2LjgzMzYgNzkuMzA4QzU3LjY4NDUgNzguNTc3OCA1OC43OTA4IDc4LjEzNjYgNjAgNzguMTM2NkM2Mi42ODY5IDc4LjEzNjYgNjQuODY1IDgwLjMxNDcgNjQuODY1IDgzLjAwMTZDNjQuODY1IDg1LjY4ODQgNjIuNjg2OSA4Ny44NjY1IDYwIDg3Ljg2NjVDNTcuMzEzMiA4Ny44NjY1IDU1LjEzNTEgODUuNjg4NCA1NS4xMzUxIDgzLjAwMTZDNTUuMTM1MSA4Mi40OTQ2IDU1LjIxMjYgODIuMDA1OCA1NS4zNTY1IDgxLjU0NjNaIiBmaWxsPSIjRjJCMjREIi8+CjxwYXRoIGQ9Ik03My4zNTUgMjAuODc1NEM3My43MTk5IDIwLjM1OTEgNzMuNTgxNyAxOS42MjM5IDczLjAxMzggMTkuMzQ1OUM3MC42MDg3IDE4LjE2ODMgNjguMDI0IDE3LjMwMDcgNjUuMzExOSAxNi43OTUyQzY0LjcxMiAxNi42ODM0IDY0LjE2OTkgMTcuMTUyNCA2NC4xNjk5IDE3Ljc2MjZWMjQuMjU2M0M2NC4xNjk5IDI0LjczMDkgNjQuNTA0MiAyNS4xMzc3IDY0Ljk2NTIgMjUuMjUwN0M2Ni41MzY0IDI1LjYzNTggNjguMDQxIDI2LjE5MDUgNjkuNDU4NyAyNi44OTQyQzcwLjA4ODggMjcuMjA3MSA3MC44NjQ0IDI2LjgzNzYgNzEuMDI0OCAyNi4xNTI3QzcxLjQ2NTMgMjQuMjcxOCA3Mi4xOTA2IDIyLjUyMyA3My4zNTUgMjAuODc1NFoiIGZpbGw9IiMyNDI5MkUiLz4KPHBhdGggZD0iTTc4Ljg3MjcgMzUuODcwMkM3OC43ODc2IDM1LjcxNzggNzguNzQxNSAzNS41NDY1IDc4Ljc0MTUgMzUuMzcxOVYzMi44ODkxQzc4Ljc0MTUgMzIuODg4NyA3OC43NDEyIDMyLjg4ODQgNzguNzQwOCAzMi44ODg0VjMyLjg4ODRDNzguNzQwNCAzMi44ODg0IDc4Ljc0MDEgMzIuODg4MSA3OC43NDAxIDMyLjg4NzdDNzguNzQwMiAyOC45NTEgNzkuMTczNCAyNy4wNzAzIDgwLjE5NiAyNS42NDQ4QzgwLjUyMDIgMjUuMTkyNyA4MS4xNzAxIDI1LjE4NjQgODEuNTU1MiAyNS41ODc5Qzg0Ljk3MTYgMjkuMTQ5NyA4Ny41MjQ1IDMzLjU0NjUgODguODc4IDM4LjQ0MkM4OC45NzY3IDM4Ljc5ODggODkuMjU4NyAzOS4wNzcgODkuNjE2NyAzOS4xNzEzQzEwMS4yNDggNDIuMjM3MSAxMTAuMTM1IDUyLjA1MzYgMTExLjgzMSA2NC4xNzlDMTExLjkxMyA2NC43NjYgMTExLjQ0OSA2NS4yNzkzIDExMC44NTcgNjUuMjc5M0gxMDQuNDNDMTAzLjkzMiA2NS4yNzkzIDEwMy41MTMgNjQuOTEyOCAxMDMuNDIzIDY0LjQyMzRDMTAxLjczIDU1LjIxNDYgOTQuMjcyOSA0OC4wMTg5IDg0LjkzMjkgNDYuNzIzNEw4Mi41ODczIDQ2LjM5ODFDODIuMTQ4NCA0Ni4zMzcyIDgxLjgwMiA0NS45OTQ4IDgxLjczNTggNDUuNTU2OEw4MS4zODI1IDQzLjIxNTJDODAuOTg1NSA0MC41ODQyIDgwLjExOTUgMzguMTA2NiA3OC44NzI3IDM1Ljg3MDJaIiBmaWxsPSIjMjQyOTJFIi8+CjxwYXRoIGQ9Ik0zOS4wMDYxIDI0LjcxNzFDMzguOTQ2NyAyNC42NTc4IDM4Ljg1MDggMjQuNjU2NSAzOC43OTAzIDI0LjcxNDdDMzQuODk5MSAyOC40NTUyIDMyLjAwNzIgMzMuMjI3OSAzMC41NTM5IDM4LjU5MjhDMzAuNDU4NSAzOC45NDUxIDMwLjE4NDIgMzkuMjIyMyAyOS44MzMxIDM5LjMyMkMxOC40NzMyIDQyLjU0ODUgOS44MzgxNyA1Mi4yNDUzIDguMTY4NyA2NC4xNzkxQzguMDg2NTggNjQuNzY2MSA4LjU1MDU4IDY1LjI3OTMgOS4xNDMyOSA2NS4yNzkzSDE1LjU3MDFDMTYuMDY3NyA2NS4yNzkzIDE2LjQ4NzEgNjQuOTEyOCAxNi41NzcxIDY0LjQyMzRDMTguMjQyOSA1NS4zNjQxIDI1LjQ4NjYgNDguMjUyNCAzNC42MTQ3IDQ2Ljc5MUwzNi45MDk4IDQ2LjQyMzVDMzcuMzQwOCA0Ni4zNTQ1IDM3LjY3NzIgNDYuMDE0IDM3Ljc0MSA0NS41ODIyTDM4LjA4MDYgNDMuMjgyOEMzOC41MjMyIDQwLjI4NjYgMzkuNTczNiAzNy40ODgxIDQxLjEwMjQgMzUuMDE2M0M0MS4yMDIyIDM0Ljg1NDkgNDEuMjU3IDM0LjY2OTQgNDEuMjU3MyAzNC40Nzk2TDQxLjI1OTkgMzIuODgxN0M0MS4yNTkzIDI4LjA0NzIgNDAuNjA0NiAyNi4zMTU2IDM5LjAwNjEgMjQuNzE3MVYyNC43MTcxWiIgZmlsbD0iIzI0MjkyRSIvPgo8cGF0aCBkPSJNNTAuNDYwOSAyNi42Nzg5QzQ5LjgzODUgMjYuOTcwNSA0OS4wODg5IDI2LjYwNzggNDguOTI0MSAyNS45NDA2QzQ4LjQ2MjkgMjQuMDczNiA0Ny43MTI0IDIyLjMzNzIgNDYuNTE5MiAyMC43MDAzQzQ2LjEzOTYgMjAuMTc5NiA0Ni4yODA4IDE5LjQyNjQgNDYuODYzNyAxOS4xNTE3QzQ5LjMxNDkgMTcuOTk2NSA1MS45NDY2IDE3LjE2MSA1NC43MDUgMTYuNjk5QzU1LjI5OTggMTYuNTk5NCA1NS44MyAxNy4wNjY1IDU1LjgzIDE3LjY2OTZWMjQuMTMzOUM1NS44MyAyNC42MTc4IDU1LjQ4MjkgMjUuMDI5OCA1NS4wMTA0IDI1LjEzMzhDNTMuNDIyNCAyNS40ODMzIDUxLjg5OSAyNi4wMDUzIDUwLjQ2MDkgMjYuNjc4OVoiIGZpbGw9IiMyNDI5MkUiLz4KPHBhdGggZD0iTTgxLjM4MjUgOTMuNTk4M0M4MC4wMjEgMTAyLjYyIDczLjE0NjYgMTA5LjgzNyA2NC4zMDI4IDExMS43MTRDNjMuODI2NSAxMTEuODE1IDYzLjQ3NTIgMTEyLjIyOSA2My40NzUyIDExMi43MTZWMTE5LjE3MkM2My40NzUyIDExOS43NzIgNjQuMDAxOCAxMjAuMjM5IDY0LjU5NDkgMTIwLjE0M0M3Ni4zMDg2IDExOC4yNTEgODUuNzY1IDEwOS42MyA4OC44Nzc4IDk4LjM3MjJDODguOTc2NSA5OC4wMTUzIDg5LjI1ODcgOTcuNzM2NSA4OS42MTY3IDk3LjY0MjJDMTAxLjI0NyA5NC41NzY0IDExMC4xMzUgODQuNzU5OCAxMTEuODMxIDcyLjYzNDVDMTExLjkxMyA3Mi4wNDc1IDExMS40NDkgNzEuNTM0MiAxMTAuODU3IDcxLjUzNDJIMTA0LjQzQzEwMy45MzIgNzEuNTM0MiAxMDMuNTEzIDcxLjkwMDcgMTAzLjQyMyA3Mi4zOTAxQzEwMS43MyA4MS41OTg5IDk0LjI3MjkgODguNzk0NiA4NC45MzI5IDkwLjA5MDFMODIuNTg3MyA5MC40MTU0QzgyLjE0ODQgOTAuNDc2MyA4MS44MDIgOTAuODE4NiA4MS43MzU4IDkxLjI1NjdMODEuMzgyNSA5My41OTgzWiIgZmlsbD0iIzI0MjkyRSIvPgo8cGF0aCBkPSJNMzQuNjE0NyA5MC4wMjI1QzI1LjQ4NjYgODguNTYxMSAxOC4yNDI5IDgxLjQ0OTQgMTYuNTc3MSA3Mi4zOUMxNi40ODcxIDcxLjkwMDcgMTYuMDY3NyA3MS41MzQyIDE1LjU3MDEgNzEuNTM0Mkg5LjE0MzI5QzguNTUwNTggNzEuNTM0MiA4LjA4NjU4IDcyLjA0NzQgOC4xNjg3IDcyLjYzNDRDOS44MzgxOCA4NC41NjgyIDE4LjQ3MzIgOTQuMjY1IDI5LjgzMzEgOTcuNDkxNUMzMC4xODQyIDk3LjU5MTIgMzAuNDU4NiA5Ny44NjkgMzAuNTU0MSA5OC4yMjE0QzMzLjczMjkgMTA5Ljk1NSA0My43OTQgMTE4Ljg1NiA1Ni4xMzk1IDEyMC4zMTlDNTYuNzIwMSAxMjAuMzg4IDU3LjIyMDMgMTE5LjkyNyA1Ny4yMjAzIDExOS4zNDJWMTEyLjk0QzU3LjIyMDMgMTEyLjQzMiA1Ni44MzgzIDExMi4wMDcgNTYuMzM2MSAxMTEuOTI5QzQ2LjkxMjkgMTEwLjQ1OSAzOS40NzU5IDEwMi45NzcgMzguMDgwNiA5My41MzA3TDM3Ljc0MSA5MS4yMzEzQzM3LjY3NzIgOTAuNzk5NSAzNy4zNDA4IDkwLjQ1ODkgMzYuOTA5OCA5MC4zODk5TDM0LjYxNDcgOTAuMDIyNVoiIGZpbGw9IiMyNDI5MkUiLz4KPHBhdGggZD0iTTgxLjYyODggODYuMTI5QzkxLjQxNjYgODYuMTI5IDk5LjM1MTEgNzguMTk0NSA5OS4zNTExIDY4LjQwNjdDOTkuMzUxMSA1OC42MTg5IDkxLjQxNjYgNTAuNjg0NCA4MS42Mjg4IDUwLjY4NDRDNzEuODQxIDUwLjY4NDQgNjMuOTA2NSA1OC42MTg5IDYzLjkwNjUgNjguNDA2N0M2My45MDY1IDY4LjUzOTYgNjMuOTA4IDY4LjY3MjEgNjMuOTEwOSA2OC44MDQyQzY2LjMzNyA2OS4yNzI2IDY4LjYyMDQgNzAuMTQxNSA3MC42ODk2IDcxLjMzOTVDNzAuMDcyNSA3MC41MjQxIDY5LjcwNjUgNjkuNTA4MSA2OS43MDY1IDY4LjQwNjdDNjkuNzA2NSA2NS43MTk5IDcxLjg4NDYgNjMuNTQxOCA3NC41NzE1IDYzLjU0MThDNzcuMjU4MyA2My41NDE4IDc5LjQzNjQgNjUuNzE5OSA3OS40MzY0IDY4LjQwNjdDNzkuNDM2NCA3MS4wOTM1IDc3LjI1ODMgNzMuMjcxNyA3NC41NzE1IDczLjI3MTdDNzQuMTI0OSA3My4yNzE3IDczLjY5MjMgNzMuMjExNSA3My4yODE0IDczLjA5ODhDNzcuMzI1MSA3Ni4yODc1IDgwLjIxNzEgODAuODcxNSA4MS4yMzEzIDg2LjEyNDdDODEuMzYzNSA4Ni4xMjc2IDgxLjQ5NiA4Ni4xMjkgODEuNjI4OCA4Ni4xMjlaIiBmaWxsPSIjRUIyMjI3Ii8+CjxwYXRoIGQ9Ik03Ny43MTc5IDQ2LjkxMTlDNzcuNzIwOCA0Ni43Nzk4IDc3LjcyMjIgNDYuNjQ3MyA3Ny43MjIyIDQ2LjUxNDRDNzcuNzIyMiAzNi43MjY3IDY5Ljc4NzcgMjguNzkyMSA1OS45OTk5IDI4Ljc5MjFDNTAuMjEyMSAyOC43OTIxIDQyLjI3NzYgMzYuNzI2NyA0Mi4yNzc2IDQ2LjUxNDRDNDIuMjc3NiA1Ni4zMDIyIDUwLjIxMjEgNjQuMjM2NyA1OS45OTk5IDY0LjIzNjdDNjAuMTMyOCA2NC4yMzY3IDYwLjI2NTMgNjQuMjM1MyA2MC4zOTc0IDY0LjIzMjRDNjAuODM1NyA2MS45NjIzIDYxLjYyNDYgNTkuODE3MiA2Mi43MDU2IDU3Ljg1NTZDNjEuOTMyIDU4LjM3NDMgNjEuMDAxMyA1OC42NzY4IDU5Ljk5OTkgNTguNjc2OEM1Ny4zMTMxIDU4LjY3NjggNTUuMTM1IDU2LjQ5ODcgNTUuMTM1IDUzLjgxMTlDNTUuMTM1IDUxLjEyNSA1Ny4zMTMxIDQ4Ljk0NjkgNTkuOTk5OSA0OC45NDY5QzYyLjY4NjcgNDguOTQ2OSA2NC44NjQ5IDUxLjEyNSA2NC44NjQ5IDUzLjgxMTlDNjQuODY0OSA1NC4xMzY0IDY0LjgzMzEgNTQuNDUzNiA2NC43NzI0IDU0Ljc2MDRDNjcuOTU3NSA1MC43Njk4IDcyLjUwODcgNDcuOTE3NiA3Ny43MTc5IDQ2LjkxMTlaIiBmaWxsPSIjMDRBNTRGIi8+CjxwYXRoIGQ9Ik01NS41NjEgNjcuOTU2NEM1NS41NjQ3IDY4LjEwNjEgNTUuNTY2NiA2OC4yNTYyIDU1LjU2NjYgNjguNDA2N0M1NS41NjY2IDc4LjE5NDUgNDcuNjMyIDg2LjEyOSAzNy44NDQzIDg2LjEyOUMyOC4wNTY1IDg2LjEyOSAyMC4xMjE5IDc4LjE5NDUgMjAuMTIxOSA2OC40MDY3QzIwLjEyMTkgNTguNjE4OSAyOC4wNTY1IDUwLjY4NDQgMzcuODQ0MyA1MC42ODQ0QzM4LjA2NiA1MC42ODQ0IDM4LjI4NjggNTAuNjg4NSAzOC41MDY2IDUwLjY5NjVDMzkuNTE0MyA1NS45MDYgNDIuMzY4OSA2MC40NTcgNDYuMzYxOSA2My42NDA4QzQ2LjA0NDggNjMuNTc1OSA0NS43MTY2IDYzLjU0MTggNDUuMzgwNCA2My41NDE4QzQyLjY5MzUgNjMuNTQxOCA0MC41MTU0IDY1LjcxOTkgNDAuNTE1NCA2OC40MDY3QzQwLjUxNTQgNzEuMDkzNSA0Mi42OTM1IDczLjI3MTcgNDUuMzgwNCA3My4yNzE3QzQ4LjA2NzIgNzMuMjcxNyA1MC4yNDUzIDcxLjA5MzUgNTAuMjQ1MyA2OC40MDY3QzUwLjI0NTMgNjcuMzk1OSA0OS45MzcxIDY2LjQ1NzIgNDkuNDA5NSA2NS42NzkzQzUxLjMwNTQgNjYuNzI5MiA1My4zNzM2IDY3LjUwNiA1NS41NjEgNjcuOTU2NFoiIGZpbGw9IiMyREE5RTEiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMC4xMDg4IDE2LjA2ODZDMzAuMTA4OCAxMi4yMzAyIDMzLjIyMDQgOS4xMTg2NSAzNy4wNTg3IDkuMTE4NjVDNDAuODk3IDkuMTE4NjUgNDQuMDA4NiAxMi4yMzAyIDQ0LjAwODYgMTYuMDY4NkM0NC4wMDg2IDE3LjM0ODMgNDMuNjYyOCAxOC41NDcyIDQzLjA1OTQgMTkuNTc3TDQzLjQyOTEgMTkuOTQ2N0w0MC40ODA1IDIyLjg5NTNMMzkuOTY3NSAyMi4zODIzQzM5LjA4MjYgMjIuNzkwNyAzOC4wOTczIDIzLjAxODUgMzcuMDU4NyAyMy4wMTg1QzMzLjIyMDQgMjMuMDE4NSAzMC4xMDg4IDE5LjkwNjkgMzAuMTA4OCAxNi4wNjg2Wk0zNy4wNTg3IDEzLjI4ODZDMzUuNTIzNCAxMy4yODg2IDM0LjI3ODcgMTQuNTMzMiAzNC4yNzg3IDE2LjA2ODZDMzQuMjc4NyAxNy42MDM5IDM1LjUyMzQgMTguODQ4NiAzNy4wNTg3IDE4Ljg0ODZDMzguNTk0IDE4Ljg0ODYgMzkuODM4NyAxNy42MDM5IDM5LjgzODcgMTYuMDY4NkMzOS44Mzg3IDE0LjUzMzIgMzguNTk0IDEzLjI4ODYgMzcuMDU4NyAxMy4yODg2WiIgZmlsbD0iIzI0MjkyRSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQzLjI3MyA2MS43ODk3TDQzLjMyMDIgMzIuNTM3NUw0My4zNDUgMzIuNTM3NUM0My4zNDQ3IDI3LjUxMzggNDIuNjY5NiAyNS4wODQ0IDQwLjQ4MDUgMjIuODk1M0w0My40MjkxIDE5Ljk0NjdDNDYuNzk5NSAyMy4zMTcxIDQ3LjUxNSAyNy4xNDIgNDcuNTE1IDMyLjU0MDlINDUuNDExOEw0Ny40OTAyIDMyLjU0NDJMNDcuNDQzIDYxLjc2MDZDNTAuMjg2NiA2Mi42MzE3IDUyLjM1NDMgNjUuMjc3NyA1Mi4zNTQzIDY4LjQwNjdDNTIuMzU0MyA3Mi4yNDUgNDkuMjQyNyA3NS4zNTY2IDQ1LjQwNDQgNzUuMzU2NkM0MS41NjYgNzUuMzU2NiAzOC40NTQ0IDcyLjI0NSAzOC40NTQ0IDY4LjQwNjdDMzguNDU0NCA2NS4zMTE5IDQwLjQ3NzMgNjIuNjg5NSA0My4yNzMgNjEuNzg5N1pNNDUuNDA0NCA2NS42MjY3QzQzLjg2OSA2NS42MjY3IDQyLjYyNDQgNjYuODcxMyA0Mi42MjQ0IDY4LjQwNjdDNDIuNjI0NCA2OS45NDIgNDMuODY5IDcxLjE4NjcgNDUuNDA0NCA3MS4xODY3QzQ2LjkzOTcgNzEuMTg2NyA0OC4xODQzIDY5Ljk0MiA0OC4xODQzIDY4LjQwNjdDNDguMTg0MyA2Ni44NzE0IDQ2LjkzOTcgNjUuNjI2NyA0NS40MDQ0IDY1LjYyNjdaIiBmaWxsPSIjMjQyOTJFIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNzYuNDQ4MyAxNi4wNjg2Qzc2LjQ0ODMgMTIuMjMwMiA3OS41NTk5IDkuMTE4NjUgODMuMzk4MiA5LjExODY1Qzg3LjIzNjYgOS4xMTg2NSA5MC4zNDgxIDEyLjIzMDIgOTAuMzQ4MSAxNi4wNjg2QzkwLjM0ODEgMTkuOTA2OSA4Ny4yMzY2IDIzLjAxODUgODMuMzk4MiAyMy4wMTg1QzgyLjIzODIgMjMuMDE4NSA4MS4xNDQ2IDIyLjczNDMgODAuMTgzMiAyMi4yMzE4TDc5LjUxOTYgMjIuODk1M0M3OS41MTk2IDIyLjg5NTMgNzkuNTE5NiAyMi44OTUzIDc5LjUxOTYgMjIuODk1M0M3Ny4zMzAxIDI1LjA4NDkgNzYuNjU1MyAyNy41MTQ5IDc2LjY1NTMgMzIuNTQwOUw3Ni42NTY3IDMyLjU0MDlWNjEuNzY3NEM3OS40ODg4IDYyLjY0NTUgODEuNTQ1NyA2NS4yODU5IDgxLjU0NTcgNjguNDA2N0M4MS41NDU3IDcyLjI0NSA3OC40MzQxIDc1LjM1NjYgNzQuNTk1OCA3NS4zNTY2QzcwLjc1NzUgNzUuMzU2NiA2Ny42NDU5IDcyLjI0NSA2Ny42NDU5IDY4LjQwNjdDNjcuNjQ1OSA2NS4zMDM2IDY5LjY3OTUgNjIuNjc1NiA3Mi40ODY3IDYxLjc4MjVWMzIuNTQwOUw3Mi40ODU0IDMyLjU0MDlDNzIuNDg1NCAyNy4xNDIgNzMuMjAwNyAyMy4zMTcgNzYuNTcxIDE5Ljk0NjdMNzcuMjM0NyAxOS4yODNDNzYuNzMyNCAxOC4zMjE4IDc2LjQ0ODMgMTcuMjI4MyA3Ni40NDgzIDE2LjA2ODZaTTgzLjM5ODIgMTMuMjg4NkM4MS44NjI5IDEzLjI4ODYgODAuNjE4MiAxNC41MzMyIDgwLjYxODIgMTYuMDY4NkM4MC42MTgyIDE3LjYwMzkgODEuODYyOSAxOC44NDg2IDgzLjM5ODIgMTguODQ4NkM4NC45MzM2IDE4Ljg0ODYgODYuMTc4MiAxNy42MDM5IDg2LjE3ODIgMTYuMDY4NkM4Ni4xNzgyIDE0LjUzMzIgODQuOTMzNiAxMy4yODg2IDgzLjM5ODIgMTMuMjg4NlpNNzQuNTk1OCA2NS42MjY3QzczLjA2MDUgNjUuNjI2NyA3MS44MTU4IDY2Ljg3MTQgNzEuODE1OCA2OC40MDY3QzcxLjgxNTggNjkuOTQyIDczLjA2MDUgNzEuMTg2NyA3NC41OTU4IDcxLjE4NjdDNzYuMTMxMSA3MS4xODY3IDc3LjM3NTggNjkuOTQyIDc3LjM3NTggNjguNDA2N0M3Ny4zNzU4IDY2Ljg3MTQgNzYuMTMxMSA2NS42MjY3IDc0LjU5NTggNjUuNjI2N1oiIGZpbGw9IiMyNDI5MkUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02MC4wMDAxIDAuNDI3OTc5QzU2LjE2MTggMC40Mjc5NzkgNTMuMDUwMiAzLjUzOTU3IDUzLjA1MDIgNy4zNzc5MUM1My4wNTAyIDEwLjQ4OTggNTUuMDk1NCAxMy4xMjQgNTcuOTE1IDE0LjAwOTZMNTcuOTE1IDQ3LjE4NzdDNTUuMTA3OCA0OC4wODA3IDUzLjA3NDEgNTAuNzA4OCA1My4wNzQxIDUzLjgxMTlDNTMuMDc0MSA1Ni45MTYxIDU1LjEwOTMgNTkuNTQ1IDU3LjkxODEgNjAuNDM3TDU3LjkxOTggNjEuNzczNUM1NS4wOTc4IDYyLjY1NzcgNTMuMDUwMyA2NS4yOTMxIDUzLjA1MDMgNjguNDA2N0M1My4wNTAzIDcxLjUyNjQgNTUuMTA1OSA3NC4xNjYxIDU3LjkzNjUgNzUuMDQ1MUw1Ny45MzgyIDc2LjM3MDFDNTUuMTE5IDc3LjI1NiA1My4wNzQxIDc5Ljg5IDUzLjA3NDEgODMuMDAxNkM1My4wNzQxIDg2LjgzOTkgNTYuMTg1NyA4OS45NTE1IDYwLjAyNCA4OS45NTE1QzYzLjg2MjQgODkuOTUxNSA2Ni45NzQgODYuODM5OSA2Ni45NzQgODMuMDAxNkM2Ni45NzQgNzkuODg5MyA2NC45MjgyIDc3LjI1NDkgNjIuMTA4MSA3Ni4zNjk1TDYyLjEwNjQgNzUuMDMxOEM2NC45MTUxIDc0LjEzOTcgNjYuOTUwMiA3MS41MTA4IDY2Ljk1MDIgNjguNDA2N0M2Ni45NTAyIDY1LjI5NjUgNjQuOTA3MSA2Mi42NjM0IDYyLjA4OTggNjEuNzc2NEw2Mi4wODgxIDYwLjQ1MDJDNjQuOTE4NiA1OS41NzEgNjYuOTc0IDU2LjkzMTUgNjYuOTc0IDUzLjgxMTlDNjYuOTc0IDUwLjY5MTEgNjQuOTE3IDQ4LjA1MDggNjIuMDg1IDQ3LjE3MjZMNjIuMDg1IDE0LjAwOTdDNjQuOTA0NyAxMy4xMjQxIDY2Ljk1IDEwLjQ4OTkgNjYuOTUgNy4zNzc5MUM2Ni45NSAzLjUzOTU3IDYzLjgzODQgMC40Mjc5NzkgNjAuMDAwMSAwLjQyNzk3OVpNNTcuMjIwMSA3LjM3NzkxQzU3LjIyMDEgNS44NDI1NyA1OC40NjQ4IDQuNTk3OTQgNjAuMDAwMSA0LjU5Nzk0QzYxLjUzNTQgNC41OTc5NCA2Mi43ODAxIDUuODQyNTcgNjIuNzgwMSA3LjM3NzkxQzYyLjc4MDEgOC45MTMyNCA2MS41MzU0IDEwLjE1NzkgNjAuMDAwMSAxMC4xNTc5QzU4LjQ2NDggMTAuMTU3OSA1Ny4yMjAxIDguOTEzMjQgNTcuMjIwMSA3LjM3NzkxWk01Ny4yNDQxIDgzLjAwMTZDNTcuMjQ0MSA4MS40NjYyIDU4LjQ4ODcgODAuMjIxNiA2MC4wMjQgODAuMjIxNkM2MS41NTk0IDgwLjIyMTYgNjIuODA0IDgxLjQ2NjIgNjIuODA0IDgzLjAwMTZDNjIuODA0IDg0LjUzNjkgNjEuNTU5NCA4NS43ODE1IDYwLjAyNCA4NS43ODE1QzU4LjQ4ODcgODUuNzgxNSA1Ny4yNDQxIDg0LjUzNjkgNTcuMjQ0MSA4My4wMDE2Wk01Ny4yMjAzIDY4LjQwNjdDNTcuMjIwMyA2Ni44NzE0IDU4LjQ2NDkgNjUuNjI2OCA2MC4wMDAzIDY1LjYyNjhDNjEuNTM1NiA2NS42MjY4IDYyLjc4MDIgNjYuODcxNCA2Mi43ODAyIDY4LjQwNjdDNjIuNzgwMiA2OS45NDIxIDYxLjUzNTYgNzEuMTg2NyA2MC4wMDAzIDcxLjE4NjdDNTguNDY0OSA3MS4xODY3IDU3LjIyMDMgNjkuOTQyMSA1Ny4yMjAzIDY4LjQwNjdaTTYwLjAyNCA1MS4wMzE5QzU4LjQ4ODcgNTEuMDMxOSA1Ny4yNDQxIDUyLjI3NjUgNTcuMjQ0MSA1My44MTE5QzU3LjI0NDEgNTUuMzQ3MiA1OC40ODg3IDU2LjU5MTggNjAuMDI0IDU2LjU5MThDNjEuNTU5NCA1Ni41OTE4IDYyLjgwNCA1NS4zNDcyIDYyLjgwNCA1My44MTE5QzYyLjgwNCA1Mi4yNzY1IDYxLjU1OTQgNTEuMDMxOSA2MC4wMjQgNTEuMDMxOVoiIGZpbGw9IiMyNDI5MkUiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xOTY6Mjg3OSI+CjxyZWN0IHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjQyNzk3OSkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4=';
4792
+ var logo = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMSIgdmlld0JveD0iMCAwIDEyMCAxMjEiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTk2OjI4NzkpIj4NCjxwYXRoIGQ9Ik03NC4xMzI5IDE5LjkzNUM3MS4yNTQ2IDE4LjE2NDQgNjcuNzU4IDE3LjE1ODYgNjQuMjEzOCAxNi42Mzc5QzYwLjg4MzkgMTYuMjUyNyA1OS4wNjk3IDE2LjI2IDU1Ljg4NDIgMTYuNTY1M0M1Mi4yODYgMTcuMDI5NSA0OC44ODY2IDE4LjEyNjkgNDUuODAxMiAxOS43NDIyTDM4Ljk3NDYgMjQuNjMzNEMzNS4wMzM1IDI4LjM4NDQgMzIuMTA0NyAzMy4xODk4IDMwLjYzOTcgMzguNTk3N0MzMC41NDQzIDM4Ljk1MDEgMzAuMjcwMyAzOS4yMjcxIDI5LjkxOTEgMzkuMzI2OUMxOC4yMTY2IDQyLjY1MzcgOS4wOTc2NiA1My4wMTczIDguMTQ4ODUgNjUuMjUxN0M3Ljk1ODEgNjcuNzExNSA4LjA0MjUyIDY5LjA3NzkgOC4xNDg4NiA3MS40OTg5QzguNjE1NzEgODIuMTI3OCAxOC4yMDE5IDk0LjA0NjUgMjkuOTIgOTcuNDIyOUMzMC4yNzA4IDk3LjUyMzkgMzAuNTQ0NCA5Ny44MDExIDMwLjYzOTggOTguMTUzNUMzMy45MDYzIDExMC4yMjEgNDQuNDMyNiAxMTkuNTUzIDU3LjI3MjcgMTIwLjMzMkM1OS43NjMyIDEyMC40ODMgNjEuMTIxMyAxMjAuNDY2IDYzLjUxOTkgMTIwLjIwN0M3NC41MDI3IDExOS4wMTcgODUuNjQzMyAxMDkuOTE0IDg4Ljg5IDk4LjMwMzZDODguOTg5NyA5Ny45NDcgODkuMjcxNSA5Ny42Njg3IDg5LjYyOTUgOTcuNTc0MkMxMDEuNiA5NC40MTQxIDExMC44MDkgODMuOTIyNiAxMTEuNzc4IDcxLjMyNzZMMTExLjc5IDcxLjE2MzJDMTExLjk3IDY4LjgzNDkgMTEyLjA3NiA2Ny40NjEyIDExMS43NzggNjUuMDgwNEMxMTAuMTcyIDUyLjI0MTMgMTAxLjU4IDQyLjMxODUgODkuNjMwMSAzOS4xNzYzQzg5LjI3MiAzOS4wODIyIDg4Ljk5MDQgMzguODA0MyA4OC44ODc2IDM4LjQ0ODZDODcuMzQ1NCAzMy4xMTIxIDgzLjE1NjcgMjYuOTEwOCA4MC44NjY5IDI0Ljg5MzJDNzguNDkzNiAyMi44MDIgNzcuMDExMiAyMS43MDU1IDc0LjEzMjkgMTkuOTM1WiIgZmlsbD0iI0ZBRkFGQSIvPg0KPHBhdGggZD0iTTU1LjM1NjUgODEuNTQ2M0M1Mi4yMTA2IDg1LjczMjQgNDcuNTk4OCA4OC43NTM5IDQyLjI4MzMgODkuODQ4N0M0Mi4yNzk2IDg5Ljk5ODMgNDIuMjc3NyA5MC4xNDg0IDQyLjI3NzcgOTAuMjk5QzQyLjI3NzcgMTAwLjA4NyA1MC4yMTIzIDEwOC4wMjEgNjAgMTA4LjAyMUM2OS43ODc4IDEwOC4wMjEgNzcuNzIyMyAxMDAuMDg3IDc3LjcyMjMgOTAuMjk5Qzc3LjcyMjMgODAuNTExMiA2OS43ODc4IDcyLjU3NjcgNjAgNzIuNTc2N0M1OS43NzgyIDcyLjU3NjcgNTkuNTU3NCA3Mi41ODA3IDU5LjMzNzUgNzIuNTg4OEM1OC44NzI3IDc0Ljk5MTkgNTguMDE0OCA3Ny4yNTQ4IDU2LjgzMzYgNzkuMzA4QzU3LjY4NDUgNzguNTc3OCA1OC43OTA4IDc4LjEzNjYgNjAgNzguMTM2NkM2Mi42ODY5IDc4LjEzNjYgNjQuODY1IDgwLjMxNDcgNjQuODY1IDgzLjAwMTZDNjQuODY1IDg1LjY4ODQgNjIuNjg2OSA4Ny44NjY1IDYwIDg3Ljg2NjVDNTcuMzEzMiA4Ny44NjY1IDU1LjEzNTEgODUuNjg4NCA1NS4xMzUxIDgzLjAwMTZDNTUuMTM1MSA4Mi40OTQ2IDU1LjIxMjYgODIuMDA1OCA1NS4zNTY1IDgxLjU0NjNaIiBmaWxsPSIjRjJCMjREIi8+DQo8cGF0aCBkPSJNNzMuMzU1IDIwLjg3NTRDNzMuNzE5OSAyMC4zNTkxIDczLjU4MTcgMTkuNjIzOSA3My4wMTM4IDE5LjM0NTlDNzAuNjA4NyAxOC4xNjgzIDY4LjAyNCAxNy4zMDA3IDY1LjMxMTkgMTYuNzk1MkM2NC43MTIgMTYuNjgzNCA2NC4xNjk5IDE3LjE1MjQgNjQuMTY5OSAxNy43NjI2VjI0LjI1NjNDNjQuMTY5OSAyNC43MzA5IDY0LjUwNDIgMjUuMTM3NyA2NC45NjUyIDI1LjI1MDdDNjYuNTM2NCAyNS42MzU4IDY4LjA0MSAyNi4xOTA1IDY5LjQ1ODcgMjYuODk0MkM3MC4wODg4IDI3LjIwNzEgNzAuODY0NCAyNi44Mzc2IDcxLjAyNDggMjYuMTUyN0M3MS40NjUzIDI0LjI3MTggNzIuMTkwNiAyMi41MjMgNzMuMzU1IDIwLjg3NTRaIiBmaWxsPSIjMjQyOTJFIi8+DQo8cGF0aCBkPSJNNzguODcyNyAzNS44NzAyQzc4Ljc4NzYgMzUuNzE3OCA3OC43NDE1IDM1LjU0NjUgNzguNzQxNSAzNS4zNzE5VjMyLjg4OTFDNzguNzQxNSAzMi44ODg3IDc4Ljc0MTIgMzIuODg4NCA3OC43NDA4IDMyLjg4ODRWMzIuODg4NEM3OC43NDA0IDMyLjg4ODQgNzguNzQwMSAzMi44ODgxIDc4Ljc0MDEgMzIuODg3N0M3OC43NDAyIDI4Ljk1MSA3OS4xNzM0IDI3LjA3MDMgODAuMTk2IDI1LjY0NDhDODAuNTIwMiAyNS4xOTI3IDgxLjE3MDEgMjUuMTg2NCA4MS41NTUyIDI1LjU4NzlDODQuOTcxNiAyOS4xNDk3IDg3LjUyNDUgMzMuNTQ2NSA4OC44NzggMzguNDQyQzg4Ljk3NjcgMzguNzk4OCA4OS4yNTg3IDM5LjA3NyA4OS42MTY3IDM5LjE3MTNDMTAxLjI0OCA0Mi4yMzcxIDExMC4xMzUgNTIuMDUzNiAxMTEuODMxIDY0LjE3OUMxMTEuOTEzIDY0Ljc2NiAxMTEuNDQ5IDY1LjI3OTMgMTEwLjg1NyA2NS4yNzkzSDEwNC40M0MxMDMuOTMyIDY1LjI3OTMgMTAzLjUxMyA2NC45MTI4IDEwMy40MjMgNjQuNDIzNEMxMDEuNzMgNTUuMjE0NiA5NC4yNzI5IDQ4LjAxODkgODQuOTMyOSA0Ni43MjM0TDgyLjU4NzMgNDYuMzk4MUM4Mi4xNDg0IDQ2LjMzNzIgODEuODAyIDQ1Ljk5NDggODEuNzM1OCA0NS41NTY4TDgxLjM4MjUgNDMuMjE1MkM4MC45ODU1IDQwLjU4NDIgODAuMTE5NSAzOC4xMDY2IDc4Ljg3MjcgMzUuODcwMloiIGZpbGw9IiMyNDI5MkUiLz4NCjxwYXRoIGQ9Ik0zOS4wMDYxIDI0LjcxNzFDMzguOTQ2NyAyNC42NTc4IDM4Ljg1MDggMjQuNjU2NSAzOC43OTAzIDI0LjcxNDdDMzQuODk5MSAyOC40NTUyIDMyLjAwNzIgMzMuMjI3OSAzMC41NTM5IDM4LjU5MjhDMzAuNDU4NSAzOC45NDUxIDMwLjE4NDIgMzkuMjIyMyAyOS44MzMxIDM5LjMyMkMxOC40NzMyIDQyLjU0ODUgOS44MzgxNyA1Mi4yNDUzIDguMTY4NyA2NC4xNzkxQzguMDg2NTggNjQuNzY2MSA4LjU1MDU4IDY1LjI3OTMgOS4xNDMyOSA2NS4yNzkzSDE1LjU3MDFDMTYuMDY3NyA2NS4yNzkzIDE2LjQ4NzEgNjQuOTEyOCAxNi41NzcxIDY0LjQyMzRDMTguMjQyOSA1NS4zNjQxIDI1LjQ4NjYgNDguMjUyNCAzNC42MTQ3IDQ2Ljc5MUwzNi45MDk4IDQ2LjQyMzVDMzcuMzQwOCA0Ni4zNTQ1IDM3LjY3NzIgNDYuMDE0IDM3Ljc0MSA0NS41ODIyTDM4LjA4MDYgNDMuMjgyOEMzOC41MjMyIDQwLjI4NjYgMzkuNTczNiAzNy40ODgxIDQxLjEwMjQgMzUuMDE2M0M0MS4yMDIyIDM0Ljg1NDkgNDEuMjU3IDM0LjY2OTQgNDEuMjU3MyAzNC40Nzk2TDQxLjI1OTkgMzIuODgxN0M0MS4yNTkzIDI4LjA0NzIgNDAuNjA0NiAyNi4zMTU2IDM5LjAwNjEgMjQuNzE3MVYyNC43MTcxWiIgZmlsbD0iIzI0MjkyRSIvPg0KPHBhdGggZD0iTTUwLjQ2MDkgMjYuNjc4OUM0OS44Mzg1IDI2Ljk3MDUgNDkuMDg4OSAyNi42MDc4IDQ4LjkyNDEgMjUuOTQwNkM0OC40NjI5IDI0LjA3MzYgNDcuNzEyNCAyMi4zMzcyIDQ2LjUxOTIgMjAuNzAwM0M0Ni4xMzk2IDIwLjE3OTYgNDYuMjgwOCAxOS40MjY0IDQ2Ljg2MzcgMTkuMTUxN0M0OS4zMTQ5IDE3Ljk5NjUgNTEuOTQ2NiAxNy4xNjEgNTQuNzA1IDE2LjY5OUM1NS4yOTk4IDE2LjU5OTQgNTUuODMgMTcuMDY2NSA1NS44MyAxNy42Njk2VjI0LjEzMzlDNTUuODMgMjQuNjE3OCA1NS40ODI5IDI1LjAyOTggNTUuMDEwNCAyNS4xMzM4QzUzLjQyMjQgMjUuNDgzMyA1MS44OTkgMjYuMDA1MyA1MC40NjA5IDI2LjY3ODlaIiBmaWxsPSIjMjQyOTJFIi8+DQo8cGF0aCBkPSJNODEuMzgyNSA5My41OTgzQzgwLjAyMSAxMDIuNjIgNzMuMTQ2NiAxMDkuODM3IDY0LjMwMjggMTExLjcxNEM2My44MjY1IDExMS44MTUgNjMuNDc1MiAxMTIuMjI5IDYzLjQ3NTIgMTEyLjcxNlYxMTkuMTcyQzYzLjQ3NTIgMTE5Ljc3MiA2NC4wMDE4IDEyMC4yMzkgNjQuNTk0OSAxMjAuMTQzQzc2LjMwODYgMTE4LjI1MSA4NS43NjUgMTA5LjYzIDg4Ljg3NzggOTguMzcyMkM4OC45NzY1IDk4LjAxNTMgODkuMjU4NyA5Ny43MzY1IDg5LjYxNjcgOTcuNjQyMkMxMDEuMjQ3IDk0LjU3NjQgMTEwLjEzNSA4NC43NTk4IDExMS44MzEgNzIuNjM0NUMxMTEuOTEzIDcyLjA0NzUgMTExLjQ0OSA3MS41MzQyIDExMC44NTcgNzEuNTM0MkgxMDQuNDNDMTAzLjkzMiA3MS41MzQyIDEwMy41MTMgNzEuOTAwNyAxMDMuNDIzIDcyLjM5MDFDMTAxLjczIDgxLjU5ODkgOTQuMjcyOSA4OC43OTQ2IDg0LjkzMjkgOTAuMDkwMUw4Mi41ODczIDkwLjQxNTRDODIuMTQ4NCA5MC40NzYzIDgxLjgwMiA5MC44MTg2IDgxLjczNTggOTEuMjU2N0w4MS4zODI1IDkzLjU5ODNaIiBmaWxsPSIjMjQyOTJFIi8+DQo8cGF0aCBkPSJNMzQuNjE0NyA5MC4wMjI1QzI1LjQ4NjYgODguNTYxMSAxOC4yNDI5IDgxLjQ0OTQgMTYuNTc3MSA3Mi4zOUMxNi40ODcxIDcxLjkwMDcgMTYuMDY3NyA3MS41MzQyIDE1LjU3MDEgNzEuNTM0Mkg5LjE0MzI5QzguNTUwNTggNzEuNTM0MiA4LjA4NjU4IDcyLjA0NzQgOC4xNjg3IDcyLjYzNDRDOS44MzgxOCA4NC41NjgyIDE4LjQ3MzIgOTQuMjY1IDI5LjgzMzEgOTcuNDkxNUMzMC4xODQyIDk3LjU5MTIgMzAuNDU4NiA5Ny44NjkgMzAuNTU0MSA5OC4yMjE0QzMzLjczMjkgMTA5Ljk1NSA0My43OTQgMTE4Ljg1NiA1Ni4xMzk1IDEyMC4zMTlDNTYuNzIwMSAxMjAuMzg4IDU3LjIyMDMgMTE5LjkyNyA1Ny4yMjAzIDExOS4zNDJWMTEyLjk0QzU3LjIyMDMgMTEyLjQzMiA1Ni44MzgzIDExMi4wMDcgNTYuMzM2MSAxMTEuOTI5QzQ2LjkxMjkgMTEwLjQ1OSAzOS40NzU5IDEwMi45NzcgMzguMDgwNiA5My41MzA3TDM3Ljc0MSA5MS4yMzEzQzM3LjY3NzIgOTAuNzk5NSAzNy4zNDA4IDkwLjQ1ODkgMzYuOTA5OCA5MC4zODk5TDM0LjYxNDcgOTAuMDIyNVoiIGZpbGw9IiMyNDI5MkUiLz4NCjxwYXRoIGQ9Ik04MS42Mjg4IDg2LjEyOUM5MS40MTY2IDg2LjEyOSA5OS4zNTExIDc4LjE5NDUgOTkuMzUxMSA2OC40MDY3Qzk5LjM1MTEgNTguNjE4OSA5MS40MTY2IDUwLjY4NDQgODEuNjI4OCA1MC42ODQ0QzcxLjg0MSA1MC42ODQ0IDYzLjkwNjUgNTguNjE4OSA2My45MDY1IDY4LjQwNjdDNjMuOTA2NSA2OC41Mzk2IDYzLjkwOCA2OC42NzIxIDYzLjkxMDkgNjguODA0MkM2Ni4zMzcgNjkuMjcyNiA2OC42MjA0IDcwLjE0MTUgNzAuNjg5NiA3MS4zMzk1QzcwLjA3MjUgNzAuNTI0MSA2OS43MDY1IDY5LjUwODEgNjkuNzA2NSA2OC40MDY3QzY5LjcwNjUgNjUuNzE5OSA3MS44ODQ2IDYzLjU0MTggNzQuNTcxNSA2My41NDE4Qzc3LjI1ODMgNjMuNTQxOCA3OS40MzY0IDY1LjcxOTkgNzkuNDM2NCA2OC40MDY3Qzc5LjQzNjQgNzEuMDkzNSA3Ny4yNTgzIDczLjI3MTcgNzQuNTcxNSA3My4yNzE3Qzc0LjEyNDkgNzMuMjcxNyA3My42OTIzIDczLjIxMTUgNzMuMjgxNCA3My4wOTg4Qzc3LjMyNTEgNzYuMjg3NSA4MC4yMTcxIDgwLjg3MTUgODEuMjMxMyA4Ni4xMjQ3QzgxLjM2MzUgODYuMTI3NiA4MS40OTYgODYuMTI5IDgxLjYyODggODYuMTI5WiIgZmlsbD0iI0VCMjIyNyIvPg0KPHBhdGggZD0iTTc3LjcxNzkgNDYuOTExOUM3Ny43MjA4IDQ2Ljc3OTggNzcuNzIyMiA0Ni42NDczIDc3LjcyMjIgNDYuNTE0NEM3Ny43MjIyIDM2LjcyNjcgNjkuNzg3NyAyOC43OTIxIDU5Ljk5OTkgMjguNzkyMUM1MC4yMTIxIDI4Ljc5MjEgNDIuMjc3NiAzNi43MjY3IDQyLjI3NzYgNDYuNTE0NEM0Mi4yNzc2IDU2LjMwMjIgNTAuMjEyMSA2NC4yMzY3IDU5Ljk5OTkgNjQuMjM2N0M2MC4xMzI4IDY0LjIzNjcgNjAuMjY1MyA2NC4yMzUzIDYwLjM5NzQgNjQuMjMyNEM2MC44MzU3IDYxLjk2MjMgNjEuNjI0NiA1OS44MTcyIDYyLjcwNTYgNTcuODU1NkM2MS45MzIgNTguMzc0MyA2MS4wMDEzIDU4LjY3NjggNTkuOTk5OSA1OC42NzY4QzU3LjMxMzEgNTguNjc2OCA1NS4xMzUgNTYuNDk4NyA1NS4xMzUgNTMuODExOUM1NS4xMzUgNTEuMTI1IDU3LjMxMzEgNDguOTQ2OSA1OS45OTk5IDQ4Ljk0NjlDNjIuNjg2NyA0OC45NDY5IDY0Ljg2NDkgNTEuMTI1IDY0Ljg2NDkgNTMuODExOUM2NC44NjQ5IDU0LjEzNjQgNjQuODMzMSA1NC40NTM2IDY0Ljc3MjQgNTQuNzYwNEM2Ny45NTc1IDUwLjc2OTggNzIuNTA4NyA0Ny45MTc2IDc3LjcxNzkgNDYuOTExOVoiIGZpbGw9IiMwNEE1NEYiLz4NCjxwYXRoIGQ9Ik01NS41NjEgNjcuOTU2NEM1NS41NjQ3IDY4LjEwNjEgNTUuNTY2NiA2OC4yNTYyIDU1LjU2NjYgNjguNDA2N0M1NS41NjY2IDc4LjE5NDUgNDcuNjMyIDg2LjEyOSAzNy44NDQzIDg2LjEyOUMyOC4wNTY1IDg2LjEyOSAyMC4xMjE5IDc4LjE5NDUgMjAuMTIxOSA2OC40MDY3QzIwLjEyMTkgNTguNjE4OSAyOC4wNTY1IDUwLjY4NDQgMzcuODQ0MyA1MC42ODQ0QzM4LjA2NiA1MC42ODQ0IDM4LjI4NjggNTAuNjg4NSAzOC41MDY2IDUwLjY5NjVDMzkuNTE0MyA1NS45MDYgNDIuMzY4OSA2MC40NTcgNDYuMzYxOSA2My42NDA4QzQ2LjA0NDggNjMuNTc1OSA0NS43MTY2IDYzLjU0MTggNDUuMzgwNCA2My41NDE4QzQyLjY5MzUgNjMuNTQxOCA0MC41MTU0IDY1LjcxOTkgNDAuNTE1NCA2OC40MDY3QzQwLjUxNTQgNzEuMDkzNSA0Mi42OTM1IDczLjI3MTcgNDUuMzgwNCA3My4yNzE3QzQ4LjA2NzIgNzMuMjcxNyA1MC4yNDUzIDcxLjA5MzUgNTAuMjQ1MyA2OC40MDY3QzUwLjI0NTMgNjcuMzk1OSA0OS45MzcxIDY2LjQ1NzIgNDkuNDA5NSA2NS42NzkzQzUxLjMwNTQgNjYuNzI5MiA1My4zNzM2IDY3LjUwNiA1NS41NjEgNjcuOTU2NFoiIGZpbGw9IiMyREE5RTEiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMTA4OCAxNi4wNjg2QzMwLjEwODggMTIuMjMwMiAzMy4yMjA0IDkuMTE4NjUgMzcuMDU4NyA5LjExODY1QzQwLjg5NyA5LjExODY1IDQ0LjAwODYgMTIuMjMwMiA0NC4wMDg2IDE2LjA2ODZDNDQuMDA4NiAxNy4zNDgzIDQzLjY2MjggMTguNTQ3MiA0My4wNTk0IDE5LjU3N0w0My40MjkxIDE5Ljk0NjdMNDAuNDgwNSAyMi44OTUzTDM5Ljk2NzUgMjIuMzgyM0MzOS4wODI2IDIyLjc5MDcgMzguMDk3MyAyMy4wMTg1IDM3LjA1ODcgMjMuMDE4NUMzMy4yMjA0IDIzLjAxODUgMzAuMTA4OCAxOS45MDY5IDMwLjEwODggMTYuMDY4NlpNMzcuMDU4NyAxMy4yODg2QzM1LjUyMzQgMTMuMjg4NiAzNC4yNzg3IDE0LjUzMzIgMzQuMjc4NyAxNi4wNjg2QzM0LjI3ODcgMTcuNjAzOSAzNS41MjM0IDE4Ljg0ODYgMzcuMDU4NyAxOC44NDg2QzM4LjU5NCAxOC44NDg2IDM5LjgzODcgMTcuNjAzOSAzOS44Mzg3IDE2LjA2ODZDMzkuODM4NyAxNC41MzMyIDM4LjU5NCAxMy4yODg2IDM3LjA1ODcgMTMuMjg4NloiIGZpbGw9IiMyNDI5MkUiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDMuMjczIDYxLjc4OTdMNDMuMzIwMiAzMi41Mzc1TDQzLjM0NSAzMi41Mzc1QzQzLjM0NDcgMjcuNTEzOCA0Mi42Njk2IDI1LjA4NDQgNDAuNDgwNSAyMi44OTUzTDQzLjQyOTEgMTkuOTQ2N0M0Ni43OTk1IDIzLjMxNzEgNDcuNTE1IDI3LjE0MiA0Ny41MTUgMzIuNTQwOUg0NS40MTE4TDQ3LjQ5MDIgMzIuNTQ0Mkw0Ny40NDMgNjEuNzYwNkM1MC4yODY2IDYyLjYzMTcgNTIuMzU0MyA2NS4yNzc3IDUyLjM1NDMgNjguNDA2N0M1Mi4zNTQzIDcyLjI0NSA0OS4yNDI3IDc1LjM1NjYgNDUuNDA0NCA3NS4zNTY2QzQxLjU2NiA3NS4zNTY2IDM4LjQ1NDQgNzIuMjQ1IDM4LjQ1NDQgNjguNDA2N0MzOC40NTQ0IDY1LjMxMTkgNDAuNDc3MyA2Mi42ODk1IDQzLjI3MyA2MS43ODk3Wk00NS40MDQ0IDY1LjYyNjdDNDMuODY5IDY1LjYyNjcgNDIuNjI0NCA2Ni44NzEzIDQyLjYyNDQgNjguNDA2N0M0Mi42MjQ0IDY5Ljk0MiA0My44NjkgNzEuMTg2NyA0NS40MDQ0IDcxLjE4NjdDNDYuOTM5NyA3MS4xODY3IDQ4LjE4NDMgNjkuOTQyIDQ4LjE4NDMgNjguNDA2N0M0OC4xODQzIDY2Ljg3MTQgNDYuOTM5NyA2NS42MjY3IDQ1LjQwNDQgNjUuNjI2N1oiIGZpbGw9IiMyNDI5MkUiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNzYuNDQ4MyAxNi4wNjg2Qzc2LjQ0ODMgMTIuMjMwMiA3OS41NTk5IDkuMTE4NjUgODMuMzk4MiA5LjExODY1Qzg3LjIzNjYgOS4xMTg2NSA5MC4zNDgxIDEyLjIzMDIgOTAuMzQ4MSAxNi4wNjg2QzkwLjM0ODEgMTkuOTA2OSA4Ny4yMzY2IDIzLjAxODUgODMuMzk4MiAyMy4wMTg1QzgyLjIzODIgMjMuMDE4NSA4MS4xNDQ2IDIyLjczNDMgODAuMTgzMiAyMi4yMzE4TDc5LjUxOTYgMjIuODk1M0M3OS41MTk2IDIyLjg5NTMgNzkuNTE5NiAyMi44OTUzIDc5LjUxOTYgMjIuODk1M0M3Ny4zMzAxIDI1LjA4NDkgNzYuNjU1MyAyNy41MTQ5IDc2LjY1NTMgMzIuNTQwOUw3Ni42NTY3IDMyLjU0MDlWNjEuNzY3NEM3OS40ODg4IDYyLjY0NTUgODEuNTQ1NyA2NS4yODU5IDgxLjU0NTcgNjguNDA2N0M4MS41NDU3IDcyLjI0NSA3OC40MzQxIDc1LjM1NjYgNzQuNTk1OCA3NS4zNTY2QzcwLjc1NzUgNzUuMzU2NiA2Ny42NDU5IDcyLjI0NSA2Ny42NDU5IDY4LjQwNjdDNjcuNjQ1OSA2NS4zMDM2IDY5LjY3OTUgNjIuNjc1NiA3Mi40ODY3IDYxLjc4MjVWMzIuNTQwOUw3Mi40ODU0IDMyLjU0MDlDNzIuNDg1NCAyNy4xNDIgNzMuMjAwNyAyMy4zMTcgNzYuNTcxIDE5Ljk0NjdMNzcuMjM0NyAxOS4yODNDNzYuNzMyNCAxOC4zMjE4IDc2LjQ0ODMgMTcuMjI4MyA3Ni40NDgzIDE2LjA2ODZaTTgzLjM5ODIgMTMuMjg4NkM4MS44NjI5IDEzLjI4ODYgODAuNjE4MiAxNC41MzMyIDgwLjYxODIgMTYuMDY4NkM4MC42MTgyIDE3LjYwMzkgODEuODYyOSAxOC44NDg2IDgzLjM5ODIgMTguODQ4NkM4NC45MzM2IDE4Ljg0ODYgODYuMTc4MiAxNy42MDM5IDg2LjE3ODIgMTYuMDY4NkM4Ni4xNzgyIDE0LjUzMzIgODQuOTMzNiAxMy4yODg2IDgzLjM5ODIgMTMuMjg4NlpNNzQuNTk1OCA2NS42MjY3QzczLjA2MDUgNjUuNjI2NyA3MS44MTU4IDY2Ljg3MTQgNzEuODE1OCA2OC40MDY3QzcxLjgxNTggNjkuOTQyIDczLjA2MDUgNzEuMTg2NyA3NC41OTU4IDcxLjE4NjdDNzYuMTMxMSA3MS4xODY3IDc3LjM3NTggNjkuOTQyIDc3LjM3NTggNjguNDA2N0M3Ny4zNzU4IDY2Ljg3MTQgNzYuMTMxMSA2NS42MjY3IDc0LjU5NTggNjUuNjI2N1oiIGZpbGw9IiMyNDI5MkUiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNjAuMDAwMSAwLjQyNzk3OUM1Ni4xNjE4IDAuNDI3OTc5IDUzLjA1MDIgMy41Mzk1NyA1My4wNTAyIDcuMzc3OTFDNTMuMDUwMiAxMC40ODk4IDU1LjA5NTQgMTMuMTI0IDU3LjkxNSAxNC4wMDk2TDU3LjkxNSA0Ny4xODc3QzU1LjEwNzggNDguMDgwNyA1My4wNzQxIDUwLjcwODggNTMuMDc0MSA1My44MTE5QzUzLjA3NDEgNTYuOTE2MSA1NS4xMDkzIDU5LjU0NSA1Ny45MTgxIDYwLjQzN0w1Ny45MTk4IDYxLjc3MzVDNTUuMDk3OCA2Mi42NTc3IDUzLjA1MDMgNjUuMjkzMSA1My4wNTAzIDY4LjQwNjdDNTMuMDUwMyA3MS41MjY0IDU1LjEwNTkgNzQuMTY2MSA1Ny45MzY1IDc1LjA0NTFMNTcuOTM4MiA3Ni4zNzAxQzU1LjExOSA3Ny4yNTYgNTMuMDc0MSA3OS44OSA1My4wNzQxIDgzLjAwMTZDNTMuMDc0MSA4Ni44Mzk5IDU2LjE4NTcgODkuOTUxNSA2MC4wMjQgODkuOTUxNUM2My44NjI0IDg5Ljk1MTUgNjYuOTc0IDg2LjgzOTkgNjYuOTc0IDgzLjAwMTZDNjYuOTc0IDc5Ljg4OTMgNjQuOTI4MiA3Ny4yNTQ5IDYyLjEwODEgNzYuMzY5NUw2Mi4xMDY0IDc1LjAzMThDNjQuOTE1MSA3NC4xMzk3IDY2Ljk1MDIgNzEuNTEwOCA2Ni45NTAyIDY4LjQwNjdDNjYuOTUwMiA2NS4yOTY1IDY0LjkwNzEgNjIuNjYzNCA2Mi4wODk4IDYxLjc3NjRMNjIuMDg4MSA2MC40NTAyQzY0LjkxODYgNTkuNTcxIDY2Ljk3NCA1Ni45MzE1IDY2Ljk3NCA1My44MTE5QzY2Ljk3NCA1MC42OTExIDY0LjkxNyA0OC4wNTA4IDYyLjA4NSA0Ny4xNzI2TDYyLjA4NSAxNC4wMDk3QzY0LjkwNDcgMTMuMTI0MSA2Ni45NSAxMC40ODk5IDY2Ljk1IDcuMzc3OTFDNjYuOTUgMy41Mzk1NyA2My44Mzg0IDAuNDI3OTc5IDYwLjAwMDEgMC40Mjc5NzlaTTU3LjIyMDEgNy4zNzc5MUM1Ny4yMjAxIDUuODQyNTcgNTguNDY0OCA0LjU5Nzk0IDYwLjAwMDEgNC41OTc5NEM2MS41MzU0IDQuNTk3OTQgNjIuNzgwMSA1Ljg0MjU3IDYyLjc4MDEgNy4zNzc5MUM2Mi43ODAxIDguOTEzMjQgNjEuNTM1NCAxMC4xNTc5IDYwLjAwMDEgMTAuMTU3OUM1OC40NjQ4IDEwLjE1NzkgNTcuMjIwMSA4LjkxMzI0IDU3LjIyMDEgNy4zNzc5MVpNNTcuMjQ0MSA4My4wMDE2QzU3LjI0NDEgODEuNDY2MiA1OC40ODg3IDgwLjIyMTYgNjAuMDI0IDgwLjIyMTZDNjEuNTU5NCA4MC4yMjE2IDYyLjgwNCA4MS40NjYyIDYyLjgwNCA4My4wMDE2QzYyLjgwNCA4NC41MzY5IDYxLjU1OTQgODUuNzgxNSA2MC4wMjQgODUuNzgxNUM1OC40ODg3IDg1Ljc4MTUgNTcuMjQ0MSA4NC41MzY5IDU3LjI0NDEgODMuMDAxNlpNNTcuMjIwMyA2OC40MDY3QzU3LjIyMDMgNjYuODcxNCA1OC40NjQ5IDY1LjYyNjggNjAuMDAwMyA2NS42MjY4QzYxLjUzNTYgNjUuNjI2OCA2Mi43ODAyIDY2Ljg3MTQgNjIuNzgwMiA2OC40MDY3QzYyLjc4MDIgNjkuOTQyMSA2MS41MzU2IDcxLjE4NjcgNjAuMDAwMyA3MS4xODY3QzU4LjQ2NDkgNzEuMTg2NyA1Ny4yMjAzIDY5Ljk0MjEgNTcuMjIwMyA2OC40MDY3Wk02MC4wMjQgNTEuMDMxOUM1OC40ODg3IDUxLjAzMTkgNTcuMjQ0MSA1Mi4yNzY1IDU3LjI0NDEgNTMuODExOUM1Ny4yNDQxIDU1LjM0NzIgNTguNDg4NyA1Ni41OTE4IDYwLjAyNCA1Ni41OTE4QzYxLjU1OTQgNTYuNTkxOCA2Mi44MDQgNTUuMzQ3MiA2Mi44MDQgNTMuODExOUM2Mi44MDQgNTIuMjc2NSA2MS41NTk0IDUxLjAzMTkgNjAuMDI0IDUxLjAzMTlaIiBmaWxsPSIjMjQyOTJFIi8+DQo8L2c+DQo8ZGVmcz4NCjxjbGlwUGF0aCBpZD0iY2xpcDBfMTk2OjI4NzkiPg0KPHJlY3Qgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxMjAiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuNDI3OTc5KSIvPg0KPC9jbGlwUGF0aD4NCjwvZGVmcz4NCjwvc3ZnPg==';
4793
4793
 
4794
4794
  function Logo() {
4795
4795
  return (React__default.createElement("div", { style: {
@@ -4832,7 +4832,11 @@ var Tooltip = function (_a) {
4832
4832
  };
4833
4833
 
4834
4834
  var SettingsButton = function (_a) {
4835
- var onClick = _a.onClick, label = _a.label, options = _a.options, _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.triggerIcon, triggerIcon = _c === void 0 ? React__default.createElement(CaretDownFill$1, null) : _c;
4835
+ var onClick = _a.onClick, label = _a.label, options = _a.options, _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.triggerIcon
4836
+ // prefix
4837
+ , triggerIcon = _c === void 0 ? React__default.createElement(CaretDownFill$1, null) : _c
4838
+ // prefix
4839
+ ;
4836
4840
  return (React__default.createElement(ConditionalWrapper, { condition: disabled, wrapper: function (children) { return React__default.createElement(Tooltip, { content: 'Available in Pollination CAD Plugins' }, children); } },
4837
4841
  React__default.createElement("div", { className: "btn-group ".concat(disabled && 'btn-group-disabled') },
4838
4842
  React__default.createElement("button", { onClick: onClick, disabled: disabled, style: {
@@ -6694,7 +6698,9 @@ var GetModel = function (_a) {
6694
6698
  fr.onabort = function () { return console.log('file reading was aborted'); };
6695
6699
  fr.onerror = function () { return console.log('file reading has failed'); };
6696
6700
  fr.onload = function (e) {
6697
- setParentState({ hbjson: this.result });
6701
+ if (typeof this.result !== 'string')
6702
+ return;
6703
+ setParentState({ hbjson: JSON.parse(this.result) });
6698
6704
  };
6699
6705
  fr.readAsText(file);
6700
6706
  } })
@@ -6708,7 +6714,7 @@ var GetModel = function (_a) {
6708
6714
  {
6709
6715
  type: 'checkbox',
6710
6716
  id: 'subscribe',
6711
- label: 'Subscribe',
6717
+ label: 'Auto Reload',
6712
6718
  disabled: !getHbjson,
6713
6719
  checked: subscribe,
6714
6720
  onSelect: function () {