pollination-react-io 0.0.20 → 0.0.23
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 +21 -21
- package/README.md +111 -111
- package/build/SendResults/SendResults.d.ts +5 -0
- package/build/SendResults/SendResults.types.d.ts +5 -0
- package/build/buttons.scss +86 -86
- package/build/hooks/types.d.ts +2 -1
- package/build/hooks/useSendGeometry.d.ts +2 -2
- package/build/index.d.ts +1 -0
- package/build/index.esm.js +24 -17
- package/build/index.esm.js.map +1 -1
- package/build/index.js +23 -16
- package/build/index.js.map +1 -1
- package/build/typography.scss +11 -11
- package/build/variables.scss +32 -32
- package/package.json +97 -97
- package/build/SendGeometry/geometry.d.ts +0 -9
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)
|
package/build/buttons.scss
CHANGED
|
@@ -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
|
}
|
package/build/hooks/types.d.ts
CHANGED
|
@@ -4,7 +4,8 @@ export interface Options {
|
|
|
4
4
|
}
|
|
5
5
|
export declare type GeometryAction = 'BakeGeometry' | 'ClearGeometry' | 'DrawGeometry' | 'DisableDraw' | 'CombinedRendering';
|
|
6
6
|
export declare type ModelAction = 'BakePollinationModel' | 'DisableDrawPollinationModel' | 'DrawPollinationModel' | 'CombinedRenderingPollinationModel';
|
|
7
|
-
export declare type
|
|
7
|
+
export declare type ResultsAction = 'AddResults' | 'ClearResults';
|
|
8
|
+
export declare type Action = GeometryAction | ModelAction | ResultsAction | 'RunCommand' | 'SetModelSettings';
|
|
8
9
|
export interface Message {
|
|
9
10
|
action?: Action;
|
|
10
11
|
data?: any;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GeometryAction, Message } from './types';
|
|
1
|
+
import { GeometryAction, Message, ResultsAction } from './types';
|
|
2
2
|
interface SendGeometryOptions {
|
|
3
3
|
layer: string;
|
|
4
4
|
units: string;
|
|
@@ -11,6 +11,6 @@ declare type SendGeometryMessage = Message & SendGeometry;
|
|
|
11
11
|
export declare const useSendGeometry: () => {
|
|
12
12
|
host: any;
|
|
13
13
|
state: {};
|
|
14
|
-
sendGeometry: (action: GeometryAction, message: SendGeometryMessage) => Message;
|
|
14
|
+
sendGeometry: (action: GeometryAction | ResultsAction, message: SendGeometryMessage) => Message;
|
|
15
15
|
};
|
|
16
16
|
export {};
|
package/build/index.d.ts
CHANGED
package/build/index.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import React__default, { useState, useRef, useCallback, useMemo, forwardRef
|
|
2
|
+
import React__default, { useState, useRef, useCallback, useEffect, useMemo, forwardRef } from 'react';
|
|
3
3
|
import e$4 from 'react-dom';
|
|
4
4
|
|
|
5
5
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
@@ -1938,7 +1938,7 @@ function getHost(key, defaultValue) {
|
|
|
1938
1938
|
var retrieved = localStorage.getItem(key);
|
|
1939
1939
|
if (!retrieved)
|
|
1940
1940
|
return defaultValue;
|
|
1941
|
-
return typeof retrieved === 'string' ? retrieved.
|
|
1941
|
+
return typeof retrieved === 'string' ? retrieved.toLowerCase() : JSON.parse(retrieved).toLowerCase();
|
|
1942
1942
|
}
|
|
1943
1943
|
|
|
1944
1944
|
var useGetHbjson = function () {
|
|
@@ -1961,6 +1961,20 @@ var useGetHbjson = function () {
|
|
|
1961
1961
|
}
|
|
1962
1962
|
hbjsonRef.current = bytes;
|
|
1963
1963
|
}, []);
|
|
1964
|
+
useEffect(function () {
|
|
1965
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1966
|
+
// @ts-ignore
|
|
1967
|
+
window.parent.readHBJSON = function (hbjson) {
|
|
1968
|
+
var model = JSON.parse(hbjson);
|
|
1969
|
+
if (typeof model !== 'object')
|
|
1970
|
+
throw new Error('Not getting a valid json object from Revit.');
|
|
1971
|
+
var res = {
|
|
1972
|
+
Geometry: model,
|
|
1973
|
+
Identifier: null,
|
|
1974
|
+
};
|
|
1975
|
+
setReturnValue(res, false);
|
|
1976
|
+
};
|
|
1977
|
+
}, [host, setReturnValue]);
|
|
1964
1978
|
var rubyGetHbjson = useCallback(function (key, selection, force) {
|
|
1965
1979
|
if (selection === void 0) { selection = false; }
|
|
1966
1980
|
if (force === void 0) { force = false; }
|
|
@@ -1988,18 +2002,23 @@ var useGetHbjson = function () {
|
|
|
1988
2002
|
.hostObjects.sync.hbjson.PassPollinationModel(key, selection);
|
|
1989
2003
|
setReturnValue(res, force);
|
|
1990
2004
|
}, [setReturnValue]);
|
|
2005
|
+
var revitGetHbjson = useCallback(function () {
|
|
2006
|
+
if (!checkDotNet())
|
|
2007
|
+
return;
|
|
2008
|
+
window.parent.chrome.webview.hostObjects.sync.hbjson.PassHBJSON();
|
|
2009
|
+
}, []);
|
|
1991
2010
|
var getHbjson = useMemo(function () {
|
|
1992
2011
|
switch (host) {
|
|
1993
2012
|
case 'rhino':
|
|
1994
2013
|
return dotNetGetHbjson;
|
|
1995
2014
|
case 'revit':
|
|
1996
|
-
return
|
|
2015
|
+
return revitGetHbjson;
|
|
1997
2016
|
case 'sketchup':
|
|
1998
2017
|
return rubyGetHbjson;
|
|
1999
2018
|
default:
|
|
2000
2019
|
return undefined;
|
|
2001
2020
|
}
|
|
2002
|
-
}, [dotNetGetHbjson, host, rubyGetHbjson]);
|
|
2021
|
+
}, [dotNetGetHbjson, host, revitGetHbjson, rubyGetHbjson]);
|
|
2003
2022
|
return {
|
|
2004
2023
|
host: host,
|
|
2005
2024
|
hbjson: hbjson,
|
|
@@ -4691,7 +4710,7 @@ var Dropdown = function (_a) {
|
|
|
4691
4710
|
var css_248z$3 = ":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\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}";
|
|
4692
4711
|
styleInject(css_248z$3);
|
|
4693
4712
|
|
|
4694
|
-
var logo = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMSIgdmlld0JveD0iMCAwIDEyMCAxMjEiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTk2OjI4NzkpIj4NCjxwYXRoIGQ9Ik03NC4xMzI5IDE5LjkzNUM3MS4yNTQ2IDE4LjE2NDQgNjcuNzU4IDE3LjE1ODYgNjQuMjEzOCAxNi42Mzc5QzYwLjg4MzkgMTYuMjUyNyA1OS4wNjk3IDE2LjI2IDU1Ljg4NDIgMTYuNTY1M0M1Mi4yODYgMTcuMDI5NSA0OC44ODY2IDE4LjEyNjkgNDUuODAxMiAxOS43NDIyTDM4Ljk3NDYgMjQuNjMzNEMzNS4wMzM1IDI4LjM4NDQgMzIuMTA0NyAzMy4xODk4IDMwLjYzOTcgMzguNTk3N0MzMC41NDQzIDM4Ljk1MDEgMzAuMjcwMyAzOS4yMjcxIDI5LjkxOTEgMzkuMzI2OUMxOC4yMTY2IDQyLjY1MzcgOS4wOTc2NiA1My4wMTczIDguMTQ4ODUgNjUuMjUxN0M3Ljk1ODEgNjcuNzExNSA4LjA0MjUyIDY5LjA3NzkgOC4xNDg4NiA3MS40OTg5QzguNjE1NzEgODIuMTI3OCAxOC4yMDE5IDk0LjA0NjUgMjkuOTIgOTcuNDIyOUMzMC4yNzA4IDk3LjUyMzkgMzAuNTQ0NCA5Ny44MDExIDMwLjYzOTggOTguMTUzNUMzMy45MDYzIDExMC4yMjEgNDQuNDMyNiAxMTkuNTUzIDU3LjI3MjcgMTIwLjMzMkM1OS43NjMyIDEyMC40ODMgNjEuMTIxMyAxMjAuNDY2IDYzLjUxOTkgMTIwLjIwN0M3NC41MDI3IDExOS4wMTcgODUuNjQzMyAxMDkuOTE0IDg4Ljg5IDk4LjMwMzZDODguOTg5NyA5Ny45NDcgODkuMjcxNSA5Ny42Njg3IDg5LjYyOTUgOTcuNTc0MkMxMDEuNiA5NC40MTQxIDExMC44MDkgODMuOTIyNiAxMTEuNzc4IDcxLjMyNzZMMTExLjc5IDcxLjE2MzJDMTExLjk3IDY4LjgzNDkgMTEyLjA3NiA2Ny40NjEyIDExMS43NzggNjUuMDgwNEMxMTAuMTcyIDUyLjI0MTMgMTAxLjU4IDQyLjMxODUgODkuNjMwMSAzOS4xNzYzQzg5LjI3MiAzOS4wODIyIDg4Ljk5MDQgMzguODA0MyA4OC44ODc2IDM4LjQ0ODZDODcuMzQ1NCAzMy4xMTIxIDgzLjE1NjcgMjYuOTEwOCA4MC44NjY5IDI0Ljg5MzJDNzguNDkzNiAyMi44MDIgNzcuMDExMiAyMS43MDU1IDc0LjEzMjkgMTkuOTM1WiIgZmlsbD0iI0ZBRkFGQSIvPg0KPHBhdGggZD0iTTU1LjM1NjUgODEuNTQ2M0M1Mi4yMTA2IDg1LjczMjQgNDcuNTk4OCA4OC43NTM5IDQyLjI4MzMgODkuODQ4N0M0Mi4yNzk2IDg5Ljk5ODMgNDIuMjc3NyA5MC4xNDg0IDQyLjI3NzcgOTAuMjk5QzQyLjI3NzcgMTAwLjA4NyA1MC4yMTIzIDEwOC4wMjEgNjAgMTA4LjAyMUM2OS43ODc4IDEwOC4wMjEgNzcuNzIyMyAxMDAuMDg3IDc3LjcyMjMgOTAuMjk5Qzc3LjcyMjMgODAuNTExMiA2OS43ODc4IDcyLjU3NjcgNjAgNzIuNTc2N0M1OS43NzgyIDcyLjU3NjcgNTkuNTU3NCA3Mi41ODA3IDU5LjMzNzUgNzIuNTg4OEM1OC44NzI3IDc0Ljk5MTkgNTguMDE0OCA3Ny4yNTQ4IDU2LjgzMzYgNzkuMzA4QzU3LjY4NDUgNzguNTc3OCA1OC43OTA4IDc4LjEzNjYgNjAgNzguMTM2NkM2Mi42ODY5IDc4LjEzNjYgNjQuODY1IDgwLjMxNDcgNjQuODY1IDgzLjAwMTZDNjQuODY1IDg1LjY4ODQgNjIuNjg2OSA4Ny44NjY1IDYwIDg3Ljg2NjVDNTcuMzEzMiA4Ny44NjY1IDU1LjEzNTEgODUuNjg4NCA1NS4xMzUxIDgzLjAwMTZDNTUuMTM1MSA4Mi40OTQ2IDU1LjIxMjYgODIuMDA1OCA1NS4zNTY1IDgxLjU0NjNaIiBmaWxsPSIjRjJCMjREIi8+DQo8cGF0aCBkPSJNNzMuMzU1IDIwLjg3NTRDNzMuNzE5OSAyMC4zNTkxIDczLjU4MTcgMTkuNjIzOSA3My4wMTM4IDE5LjM0NTlDNzAuNjA4NyAxOC4xNjgzIDY4LjAyNCAxNy4zMDA3IDY1LjMxMTkgMTYuNzk1MkM2NC43MTIgMTYuNjgzNCA2NC4xNjk5IDE3LjE1MjQgNjQuMTY5OSAxNy43NjI2VjI0LjI1NjNDNjQuMTY5OSAyNC43MzA5IDY0LjUwNDIgMjUuMTM3NyA2NC45NjUyIDI1LjI1MDdDNjYuNTM2NCAyNS42MzU4IDY4LjA0MSAyNi4xOTA1IDY5LjQ1ODcgMjYuODk0MkM3MC4wODg4IDI3LjIwNzEgNzAuODY0NCAyNi44Mzc2IDcxLjAyNDggMjYuMTUyN0M3MS40NjUzIDI0LjI3MTggNzIuMTkwNiAyMi41MjMgNzMuMzU1IDIwLjg3NTRaIiBmaWxsPSIjMjQyOTJFIi8+DQo8cGF0aCBkPSJNNzguODcyNyAzNS44NzAyQzc4Ljc4NzYgMzUuNzE3OCA3OC43NDE1IDM1LjU0NjUgNzguNzQxNSAzNS4zNzE5VjMyLjg4OTFDNzguNzQxNSAzMi44ODg3IDc4Ljc0MTIgMzIuODg4NCA3OC43NDA4IDMyLjg4ODRWMzIuODg4NEM3OC43NDA0IDMyLjg4ODQgNzguNzQwMSAzMi44ODgxIDc4Ljc0MDEgMzIuODg3N0M3OC43NDAyIDI4Ljk1MSA3OS4xNzM0IDI3LjA3MDMgODAuMTk2IDI1LjY0NDhDODAuNTIwMiAyNS4xOTI3IDgxLjE3MDEgMjUuMTg2NCA4MS41NTUyIDI1LjU4NzlDODQuOTcxNiAyOS4xNDk3IDg3LjUyNDUgMzMuNTQ2NSA4OC44NzggMzguNDQyQzg4Ljk3NjcgMzguNzk4OCA4OS4yNTg3IDM5LjA3NyA4OS42MTY3IDM5LjE3MTNDMTAxLjI0OCA0Mi4yMzcxIDExMC4xMzUgNTIuMDUzNiAxMTEuODMxIDY0LjE3OUMxMTEuOTEzIDY0Ljc2NiAxMTEuNDQ5IDY1LjI3OTMgMTEwLjg1NyA2NS4yNzkzSDEwNC40M0MxMDMuOTMyIDY1LjI3OTMgMTAzLjUxMyA2NC45MTI4IDEwMy40MjMgNjQuNDIzNEMxMDEuNzMgNTUuMjE0NiA5NC4yNzI5IDQ4LjAxODkgODQuOTMyOSA0Ni43MjM0TDgyLjU4NzMgNDYuMzk4MUM4Mi4xNDg0IDQ2LjMzNzIgODEuODAyIDQ1Ljk5NDggODEuNzM1OCA0NS41NTY4TDgxLjM4MjUgNDMuMjE1MkM4MC45ODU1IDQwLjU4NDIgODAuMTE5NSAzOC4xMDY2IDc4Ljg3MjcgMzUuODcwMloiIGZpbGw9IiMyNDI5MkUiLz4NCjxwYXRoIGQ9Ik0zOS4wMDYxIDI0LjcxNzFDMzguOTQ2NyAyNC42NTc4IDM4Ljg1MDggMjQuNjU2NSAzOC43OTAzIDI0LjcxNDdDMzQuODk5MSAyOC40NTUyIDMyLjAwNzIgMzMuMjI3OSAzMC41NTM5IDM4LjU5MjhDMzAuNDU4NSAzOC45NDUxIDMwLjE4NDIgMzkuMjIyMyAyOS44MzMxIDM5LjMyMkMxOC40NzMyIDQyLjU0ODUgOS44MzgxNyA1Mi4yNDUzIDguMTY4NyA2NC4xNzkxQzguMDg2NTggNjQuNzY2MSA4LjU1MDU4IDY1LjI3OTMgOS4xNDMyOSA2NS4yNzkzSDE1LjU3MDFDMTYuMDY3NyA2NS4yNzkzIDE2LjQ4NzEgNjQuOTEyOCAxNi41NzcxIDY0LjQyMzRDMTguMjQyOSA1NS4zNjQxIDI1LjQ4NjYgNDguMjUyNCAzNC42MTQ3IDQ2Ljc5MUwzNi45MDk4IDQ2LjQyMzVDMzcuMzQwOCA0Ni4zNTQ1IDM3LjY3NzIgNDYuMDE0IDM3Ljc0MSA0NS41ODIyTDM4LjA4MDYgNDMuMjgyOEMzOC41MjMyIDQwLjI4NjYgMzkuNTczNiAzNy40ODgxIDQxLjEwMjQgMzUuMDE2M0M0MS4yMDIyIDM0Ljg1NDkgNDEuMjU3IDM0LjY2OTQgNDEuMjU3MyAzNC40Nzk2TDQxLjI1OTkgMzIuODgxN0M0MS4yNTkzIDI4LjA0NzIgNDAuNjA0NiAyNi4zMTU2IDM5LjAwNjEgMjQuNzE3MVYyNC43MTcxWiIgZmlsbD0iIzI0MjkyRSIvPg0KPHBhdGggZD0iTTUwLjQ2MDkgMjYuNjc4OUM0OS44Mzg1IDI2Ljk3MDUgNDkuMDg4OSAyNi42MDc4IDQ4LjkyNDEgMjUuOTQwNkM0OC40NjI5IDI0LjA3MzYgNDcuNzEyNCAyMi4zMzcyIDQ2LjUxOTIgMjAuNzAwM0M0Ni4xMzk2IDIwLjE3OTYgNDYuMjgwOCAxOS40MjY0IDQ2Ljg2MzcgMTkuMTUxN0M0OS4zMTQ5IDE3Ljk5NjUgNTEuOTQ2NiAxNy4xNjEgNTQuNzA1IDE2LjY5OUM1NS4yOTk4IDE2LjU5OTQgNTUuODMgMTcuMDY2NSA1NS44MyAxNy42Njk2VjI0LjEzMzlDNTUuODMgMjQuNjE3OCA1NS40ODI5IDI1LjAyOTggNTUuMDEwNCAyNS4xMzM4QzUzLjQyMjQgMjUuNDgzMyA1MS44OTkgMjYuMDA1MyA1MC40NjA5IDI2LjY3ODlaIiBmaWxsPSIjMjQyOTJFIi8+DQo8cGF0aCBkPSJNODEuMzgyNSA5My41OTgzQzgwLjAyMSAxMDIuNjIgNzMuMTQ2NiAxMDkuODM3IDY0LjMwMjggMTExLjcxNEM2My44MjY1IDExMS44MTUgNjMuNDc1MiAxMTIuMjI5IDYzLjQ3NTIgMTEyLjcxNlYxMTkuMTcyQzYzLjQ3NTIgMTE5Ljc3MiA2NC4wMDE4IDEyMC4yMzkgNjQuNTk0OSAxMjAuMTQzQzc2LjMwODYgMTE4LjI1MSA4NS43NjUgMTA5LjYzIDg4Ljg3NzggOTguMzcyMkM4OC45NzY1IDk4LjAxNTMgODkuMjU4NyA5Ny43MzY1IDg5LjYxNjcgOTcuNjQyMkMxMDEuMjQ3IDk0LjU3NjQgMTEwLjEzNSA4NC43NTk4IDExMS44MzEgNzIuNjM0NUMxMTEuOTEzIDcyLjA0NzUgMTExLjQ0OSA3MS41MzQyIDExMC44NTcgNzEuNTM0MkgxMDQuNDNDMTAzLjkzMiA3MS41MzQyIDEwMy41MTMgNzEuOTAwNyAxMDMuNDIzIDcyLjM5MDFDMTAxLjczIDgxLjU5ODkgOTQuMjcyOSA4OC43OTQ2IDg0LjkzMjkgOTAuMDkwMUw4Mi41ODczIDkwLjQxNTRDODIuMTQ4NCA5MC40NzYzIDgxLjgwMiA5MC44MTg2IDgxLjczNTggOTEuMjU2N0w4MS4zODI1IDkzLjU5ODNaIiBmaWxsPSIjMjQyOTJFIi8+DQo8cGF0aCBkPSJNMzQuNjE0NyA5MC4wMjI1QzI1LjQ4NjYgODguNTYxMSAxOC4yNDI5IDgxLjQ0OTQgMTYuNTc3MSA3Mi4zOUMxNi40ODcxIDcxLjkwMDcgMTYuMDY3NyA3MS41MzQyIDE1LjU3MDEgNzEuNTM0Mkg5LjE0MzI5QzguNTUwNTggNzEuNTM0MiA4LjA4NjU4IDcyLjA0NzQgOC4xNjg3IDcyLjYzNDRDOS44MzgxOCA4NC41NjgyIDE4LjQ3MzIgOTQuMjY1IDI5LjgzMzEgOTcuNDkxNUMzMC4xODQyIDk3LjU5MTIgMzAuNDU4NiA5Ny44NjkgMzAuNTU0MSA5OC4yMjE0QzMzLjczMjkgMTA5Ljk1NSA0My43OTQgMTE4Ljg1NiA1Ni4xMzk1IDEyMC4zMTlDNTYuNzIwMSAxMjAuMzg4IDU3LjIyMDMgMTE5LjkyNyA1Ny4yMjAzIDExOS4zNDJWMTEyLjk0QzU3LjIyMDMgMTEyLjQzMiA1Ni44MzgzIDExMi4wMDcgNTYuMzM2MSAxMTEuOTI5QzQ2LjkxMjkgMTEwLjQ1OSAzOS40NzU5IDEwMi45NzcgMzguMDgwNiA5My41MzA3TDM3Ljc0MSA5MS4yMzEzQzM3LjY3NzIgOTAuNzk5NSAzNy4zNDA4IDkwLjQ1ODkgMzYuOTA5OCA5MC4zODk5TDM0LjYxNDcgOTAuMDIyNVoiIGZpbGw9IiMyNDI5MkUiLz4NCjxwYXRoIGQ9Ik04MS42Mjg4IDg2LjEyOUM5MS40MTY2IDg2LjEyOSA5OS4zNTExIDc4LjE5NDUgOTkuMzUxMSA2OC40MDY3Qzk5LjM1MTEgNTguNjE4OSA5MS40MTY2IDUwLjY4NDQgODEuNjI4OCA1MC42ODQ0QzcxLjg0MSA1MC42ODQ0IDYzLjkwNjUgNTguNjE4OSA2My45MDY1IDY4LjQwNjdDNjMuOTA2NSA2OC41Mzk2IDYzLjkwOCA2OC42NzIxIDYzLjkxMDkgNjguODA0MkM2Ni4zMzcgNjkuMjcyNiA2OC42MjA0IDcwLjE0MTUgNzAuNjg5NiA3MS4zMzk1QzcwLjA3MjUgNzAuNTI0MSA2OS43MDY1IDY5LjUwODEgNjkuNzA2NSA2OC40MDY3QzY5LjcwNjUgNjUuNzE5OSA3MS44ODQ2IDYzLjU0MTggNzQuNTcxNSA2My41NDE4Qzc3LjI1ODMgNjMuNTQxOCA3OS40MzY0IDY1LjcxOTkgNzkuNDM2NCA2OC40MDY3Qzc5LjQzNjQgNzEuMDkzNSA3Ny4yNTgzIDczLjI3MTcgNzQuNTcxNSA3My4yNzE3Qzc0LjEyNDkgNzMuMjcxNyA3My42OTIzIDczLjIxMTUgNzMuMjgxNCA3My4wOTg4Qzc3LjMyNTEgNzYuMjg3NSA4MC4yMTcxIDgwLjg3MTUgODEuMjMxMyA4Ni4xMjQ3QzgxLjM2MzUgODYuMTI3NiA4MS40OTYgODYuMTI5IDgxLjYyODggODYuMTI5WiIgZmlsbD0iI0VCMjIyNyIvPg0KPHBhdGggZD0iTTc3LjcxNzkgNDYuOTExOUM3Ny43MjA4IDQ2Ljc3OTggNzcuNzIyMiA0Ni42NDczIDc3LjcyMjIgNDYuNTE0NEM3Ny43MjIyIDM2LjcyNjcgNjkuNzg3NyAyOC43OTIxIDU5Ljk5OTkgMjguNzkyMUM1MC4yMTIxIDI4Ljc5MjEgNDIuMjc3NiAzNi43MjY3IDQyLjI3NzYgNDYuNTE0NEM0Mi4yNzc2IDU2LjMwMjIgNTAuMjEyMSA2NC4yMzY3IDU5Ljk5OTkgNjQuMjM2N0M2MC4xMzI4IDY0LjIzNjcgNjAuMjY1MyA2NC4yMzUzIDYwLjM5NzQgNjQuMjMyNEM2MC44MzU3IDYxLjk2MjMgNjEuNjI0NiA1OS44MTcyIDYyLjcwNTYgNTcuODU1NkM2MS45MzIgNTguMzc0MyA2MS4wMDEzIDU4LjY3NjggNTkuOTk5OSA1OC42NzY4QzU3LjMxMzEgNTguNjc2OCA1NS4xMzUgNTYuNDk4NyA1NS4xMzUgNTMuODExOUM1NS4xMzUgNTEuMTI1IDU3LjMxMzEgNDguOTQ2OSA1OS45OTk5IDQ4Ljk0NjlDNjIuNjg2NyA0OC45NDY5IDY0Ljg2NDkgNTEuMTI1IDY0Ljg2NDkgNTMuODExOUM2NC44NjQ5IDU0LjEzNjQgNjQuODMzMSA1NC40NTM2IDY0Ljc3MjQgNTQuNzYwNEM2Ny45NTc1IDUwLjc2OTggNzIuNTA4NyA0Ny45MTc2IDc3LjcxNzkgNDYuOTExOVoiIGZpbGw9IiMwNEE1NEYiLz4NCjxwYXRoIGQ9Ik01NS41NjEgNjcuOTU2NEM1NS41NjQ3IDY4LjEwNjEgNTUuNTY2NiA2OC4yNTYyIDU1LjU2NjYgNjguNDA2N0M1NS41NjY2IDc4LjE5NDUgNDcuNjMyIDg2LjEyOSAzNy44NDQzIDg2LjEyOUMyOC4wNTY1IDg2LjEyOSAyMC4xMjE5IDc4LjE5NDUgMjAuMTIxOSA2OC40MDY3QzIwLjEyMTkgNTguNjE4OSAyOC4wNTY1IDUwLjY4NDQgMzcuODQ0MyA1MC42ODQ0QzM4LjA2NiA1MC42ODQ0IDM4LjI4NjggNTAuNjg4NSAzOC41MDY2IDUwLjY5NjVDMzkuNTE0MyA1NS45MDYgNDIuMzY4OSA2MC40NTcgNDYuMzYxOSA2My42NDA4QzQ2LjA0NDggNjMuNTc1OSA0NS43MTY2IDYzLjU0MTggNDUuMzgwNCA2My41NDE4QzQyLjY5MzUgNjMuNTQxOCA0MC41MTU0IDY1LjcxOTkgNDAuNTE1NCA2OC40MDY3QzQwLjUxNTQgNzEuMDkzNSA0Mi42OTM1IDczLjI3MTcgNDUuMzgwNCA3My4yNzE3QzQ4LjA2NzIgNzMuMjcxNyA1MC4yNDUzIDcxLjA5MzUgNTAuMjQ1MyA2OC40MDY3QzUwLjI0NTMgNjcuMzk1OSA0OS45MzcxIDY2LjQ1NzIgNDkuNDA5NSA2NS42NzkzQzUxLjMwNTQgNjYuNzI5MiA1My4zNzM2IDY3LjUwNiA1NS41NjEgNjcuOTU2NFoiIGZpbGw9IiMyREE5RTEiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMTA4OCAxNi4wNjg2QzMwLjEwODggMTIuMjMwMiAzMy4yMjA0IDkuMTE4NjUgMzcuMDU4NyA5LjExODY1QzQwLjg5NyA5LjExODY1IDQ0LjAwODYgMTIuMjMwMiA0NC4wMDg2IDE2LjA2ODZDNDQuMDA4NiAxNy4zNDgzIDQzLjY2MjggMTguNTQ3MiA0My4wNTk0IDE5LjU3N0w0My40MjkxIDE5Ljk0NjdMNDAuNDgwNSAyMi44OTUzTDM5Ljk2NzUgMjIuMzgyM0MzOS4wODI2IDIyLjc5MDcgMzguMDk3MyAyMy4wMTg1IDM3LjA1ODcgMjMuMDE4NUMzMy4yMjA0IDIzLjAxODUgMzAuMTA4OCAxOS45MDY5IDMwLjEwODggMTYuMDY4NlpNMzcuMDU4NyAxMy4yODg2QzM1LjUyMzQgMTMuMjg4NiAzNC4yNzg3IDE0LjUzMzIgMzQuMjc4NyAxNi4wNjg2QzM0LjI3ODcgMTcuNjAzOSAzNS41MjM0IDE4Ljg0ODYgMzcuMDU4NyAxOC44NDg2QzM4LjU5NCAxOC44NDg2IDM5LjgzODcgMTcuNjAzOSAzOS44Mzg3IDE2LjA2ODZDMzkuODM4NyAxNC41MzMyIDM4LjU5NCAxMy4yODg2IDM3LjA1ODcgMTMuMjg4NloiIGZpbGw9IiMyNDI5MkUiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDMuMjczIDYxLjc4OTdMNDMuMzIwMiAzMi41Mzc1TDQzLjM0NSAzMi41Mzc1QzQzLjM0NDcgMjcuNTEzOCA0Mi42Njk2IDI1LjA4NDQgNDAuNDgwNSAyMi44OTUzTDQzLjQyOTEgMTkuOTQ2N0M0Ni43OTk1IDIzLjMxNzEgNDcuNTE1IDI3LjE0MiA0Ny41MTUgMzIuNTQwOUg0NS40MTE4TDQ3LjQ5MDIgMzIuNTQ0Mkw0Ny40NDMgNjEuNzYwNkM1MC4yODY2IDYyLjYzMTcgNTIuMzU0MyA2NS4yNzc3IDUyLjM1NDMgNjguNDA2N0M1Mi4zNTQzIDcyLjI0NSA0OS4yNDI3IDc1LjM1NjYgNDUuNDA0NCA3NS4zNTY2QzQxLjU2NiA3NS4zNTY2IDM4LjQ1NDQgNzIuMjQ1IDM4LjQ1NDQgNjguNDA2N0MzOC40NTQ0IDY1LjMxMTkgNDAuNDc3MyA2Mi42ODk1IDQzLjI3MyA2MS43ODk3Wk00NS40MDQ0IDY1LjYyNjdDNDMuODY5IDY1LjYyNjcgNDIuNjI0NCA2Ni44NzEzIDQyLjYyNDQgNjguNDA2N0M0Mi42MjQ0IDY5Ljk0MiA0My44NjkgNzEuMTg2NyA0NS40MDQ0IDcxLjE4NjdDNDYuOTM5NyA3MS4xODY3IDQ4LjE4NDMgNjkuOTQyIDQ4LjE4NDMgNjguNDA2N0M0OC4xODQzIDY2Ljg3MTQgNDYuOTM5NyA2NS42MjY3IDQ1LjQwNDQgNjUuNjI2N1oiIGZpbGw9IiMyNDI5MkUiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNzYuNDQ4MyAxNi4wNjg2Qzc2LjQ0ODMgMTIuMjMwMiA3OS41NTk5IDkuMTE4NjUgODMuMzk4MiA5LjExODY1Qzg3LjIzNjYgOS4xMTg2NSA5MC4zNDgxIDEyLjIzMDIgOTAuMzQ4MSAxNi4wNjg2QzkwLjM0ODEgMTkuOTA2OSA4Ny4yMzY2IDIzLjAxODUgODMuMzk4MiAyMy4wMTg1QzgyLjIzODIgMjMuMDE4NSA4MS4xNDQ2IDIyLjczNDMgODAuMTgzMiAyMi4yMzE4TDc5LjUxOTYgMjIuODk1M0M3OS41MTk2IDIyLjg5NTMgNzkuNTE5NiAyMi44OTUzIDc5LjUxOTYgMjIuODk1M0M3Ny4zMzAxIDI1LjA4NDkgNzYuNjU1MyAyNy41MTQ5IDc2LjY1NTMgMzIuNTQwOUw3Ni42NTY3IDMyLjU0MDlWNjEuNzY3NEM3OS40ODg4IDYyLjY0NTUgODEuNTQ1NyA2NS4yODU5IDgxLjU0NTcgNjguNDA2N0M4MS41NDU3IDcyLjI0NSA3OC40MzQxIDc1LjM1NjYgNzQuNTk1OCA3NS4zNTY2QzcwLjc1NzUgNzUuMzU2NiA2Ny42NDU5IDcyLjI0NSA2Ny42NDU5IDY4LjQwNjdDNjcuNjQ1OSA2NS4zMDM2IDY5LjY3OTUgNjIuNjc1NiA3Mi40ODY3IDYxLjc4MjVWMzIuNTQwOUw3Mi40ODU0IDMyLjU0MDlDNzIuNDg1NCAyNy4xNDIgNzMuMjAwNyAyMy4zMTcgNzYuNTcxIDE5Ljk0NjdMNzcuMjM0NyAxOS4yODNDNzYuNzMyNCAxOC4zMjE4IDc2LjQ0ODMgMTcuMjI4MyA3Ni40NDgzIDE2LjA2ODZaTTgzLjM5ODIgMTMuMjg4NkM4MS44NjI5IDEzLjI4ODYgODAuNjE4MiAxNC41MzMyIDgwLjYxODIgMTYuMDY4NkM4MC42MTgyIDE3LjYwMzkgODEuODYyOSAxOC44NDg2IDgzLjM5ODIgMTguODQ4NkM4NC45MzM2IDE4Ljg0ODYgODYuMTc4MiAxNy42MDM5IDg2LjE3ODIgMTYuMDY4NkM4Ni4xNzgyIDE0LjUzMzIgODQuOTMzNiAxMy4yODg2IDgzLjM5ODIgMTMuMjg4NlpNNzQuNTk1OCA2NS42MjY3QzczLjA2MDUgNjUuNjI2NyA3MS44MTU4IDY2Ljg3MTQgNzEuODE1OCA2OC40MDY3QzcxLjgxNTggNjkuOTQyIDczLjA2MDUgNzEuMTg2NyA3NC41OTU4IDcxLjE4NjdDNzYuMTMxMSA3MS4xODY3IDc3LjM3NTggNjkuOTQyIDc3LjM3NTggNjguNDA2N0M3Ny4zNzU4IDY2Ljg3MTQgNzYuMTMxMSA2NS42MjY3IDc0LjU5NTggNjUuNjI2N1oiIGZpbGw9IiMyNDI5MkUiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNjAuMDAwMSAwLjQyNzk3OUM1Ni4xNjE4IDAuNDI3OTc5IDUzLjA1MDIgMy41Mzk1NyA1My4wNTAyIDcuMzc3OTFDNTMuMDUwMiAxMC40ODk4IDU1LjA5NTQgMTMuMTI0IDU3LjkxNSAxNC4wMDk2TDU3LjkxNSA0Ny4xODc3QzU1LjEwNzggNDguMDgwNyA1My4wNzQxIDUwLjcwODggNTMuMDc0MSA1My44MTE5QzUzLjA3NDEgNTYuOTE2MSA1NS4xMDkzIDU5LjU0NSA1Ny45MTgxIDYwLjQzN0w1Ny45MTk4IDYxLjc3MzVDNTUuMDk3OCA2Mi42NTc3IDUzLjA1MDMgNjUuMjkzMSA1My4wNTAzIDY4LjQwNjdDNTMuMDUwMyA3MS41MjY0IDU1LjEwNTkgNzQuMTY2MSA1Ny45MzY1IDc1LjA0NTFMNTcuOTM4MiA3Ni4zNzAxQzU1LjExOSA3Ny4yNTYgNTMuMDc0MSA3OS44OSA1My4wNzQxIDgzLjAwMTZDNTMuMDc0MSA4Ni44Mzk5IDU2LjE4NTcgODkuOTUxNSA2MC4wMjQgODkuOTUxNUM2My44NjI0IDg5Ljk1MTUgNjYuOTc0IDg2LjgzOTkgNjYuOTc0IDgzLjAwMTZDNjYuOTc0IDc5Ljg4OTMgNjQuOTI4MiA3Ny4yNTQ5IDYyLjEwODEgNzYuMzY5NUw2Mi4xMDY0IDc1LjAzMThDNjQuOTE1MSA3NC4xMzk3IDY2Ljk1MDIgNzEuNTEwOCA2Ni45NTAyIDY4LjQwNjdDNjYuOTUwMiA2NS4yOTY1IDY0LjkwNzEgNjIuNjYzNCA2Mi4wODk4IDYxLjc3NjRMNjIuMDg4MSA2MC40NTAyQzY0LjkxODYgNTkuNTcxIDY2Ljk3NCA1Ni45MzE1IDY2Ljk3NCA1My44MTE5QzY2Ljk3NCA1MC42OTExIDY0LjkxNyA0OC4wNTA4IDYyLjA4NSA0Ny4xNzI2TDYyLjA4NSAxNC4wMDk3QzY0LjkwNDcgMTMuMTI0MSA2Ni45NSAxMC40ODk5IDY2Ljk1IDcuMzc3OTFDNjYuOTUgMy41Mzk1NyA2My44Mzg0IDAuNDI3OTc5IDYwLjAwMDEgMC40Mjc5NzlaTTU3LjIyMDEgNy4zNzc5MUM1Ny4yMjAxIDUuODQyNTcgNTguNDY0OCA0LjU5Nzk0IDYwLjAwMDEgNC41OTc5NEM2MS41MzU0IDQuNTk3OTQgNjIuNzgwMSA1Ljg0MjU3IDYyLjc4MDEgNy4zNzc5MUM2Mi43ODAxIDguOTEzMjQgNjEuNTM1NCAxMC4xNTc5IDYwLjAwMDEgMTAuMTU3OUM1OC40NjQ4IDEwLjE1NzkgNTcuMjIwMSA4LjkxMzI0IDU3LjIyMDEgNy4zNzc5MVpNNTcuMjQ0MSA4My4wMDE2QzU3LjI0NDEgODEuNDY2MiA1OC40ODg3IDgwLjIyMTYgNjAuMDI0IDgwLjIyMTZDNjEuNTU5NCA4MC4yMjE2IDYyLjgwNCA4MS40NjYyIDYyLjgwNCA4My4wMDE2QzYyLjgwNCA4NC41MzY5IDYxLjU1OTQgODUuNzgxNSA2MC4wMjQgODUuNzgxNUM1OC40ODg3IDg1Ljc4MTUgNTcuMjQ0MSA4NC41MzY5IDU3LjI0NDEgODMuMDAxNlpNNTcuMjIwMyA2OC40MDY3QzU3LjIyMDMgNjYuODcxNCA1OC40NjQ5IDY1LjYyNjggNjAuMDAwMyA2NS42MjY4QzYxLjUzNTYgNjUuNjI2OCA2Mi43ODAyIDY2Ljg3MTQgNjIuNzgwMiA2OC40MDY3QzYyLjc4MDIgNjkuOTQyMSA2MS41MzU2IDcxLjE4NjcgNjAuMDAwMyA3MS4xODY3QzU4LjQ2NDkgNzEuMTg2NyA1Ny4yMjAzIDY5Ljk0MjEgNTcuMjIwMyA2OC40MDY3Wk02MC4wMjQgNTEuMDMxOUM1OC40ODg3IDUxLjAzMTkgNTcuMjQ0MSA1Mi4yNzY1IDU3LjI0NDEgNTMuODExOUM1Ny4yNDQxIDU1LjM0NzIgNTguNDg4NyA1Ni41OTE4IDYwLjAyNCA1Ni41OTE4QzYxLjU1OTQgNTYuNTkxOCA2Mi44MDQgNTUuMzQ3MiA2Mi44MDQgNTMuODExOUM2Mi44MDQgNTIuMjc2NSA2MS41NTk0IDUxLjAzMTkgNjAuMDI0IDUxLjAzMTlaIiBmaWxsPSIjMjQyOTJFIi8+DQo8L2c+DQo8ZGVmcz4NCjxjbGlwUGF0aCBpZD0iY2xpcDBfMTk2OjI4NzkiPg0KPHJlY3Qgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxMjAiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuNDI3OTc5KSIvPg0KPC9jbGlwUGF0aD4NCjwvZGVmcz4NCjwvc3ZnPg==';
|
|
4713
|
+
var logo = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMSIgdmlld0JveD0iMCAwIDEyMCAxMjEiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xOTY6Mjg3OSkiPgo8cGF0aCBkPSJNNzQuMTMyOSAxOS45MzVDNzEuMjU0NiAxOC4xNjQ0IDY3Ljc1OCAxNy4xNTg2IDY0LjIxMzggMTYuNjM3OUM2MC44ODM5IDE2LjI1MjcgNTkuMDY5NyAxNi4yNiA1NS44ODQyIDE2LjU2NTNDNTIuMjg2IDE3LjAyOTUgNDguODg2NiAxOC4xMjY5IDQ1LjgwMTIgMTkuNzQyMkwzOC45NzQ2IDI0LjYzMzRDMzUuMDMzNSAyOC4zODQ0IDMyLjEwNDcgMzMuMTg5OCAzMC42Mzk3IDM4LjU5NzdDMzAuNTQ0MyAzOC45NTAxIDMwLjI3MDMgMzkuMjI3MSAyOS45MTkxIDM5LjMyNjlDMTguMjE2NiA0Mi42NTM3IDkuMDk3NjYgNTMuMDE3MyA4LjE0ODg1IDY1LjI1MTdDNy45NTgxIDY3LjcxMTUgOC4wNDI1MiA2OS4wNzc5IDguMTQ4ODYgNzEuNDk4OUM4LjYxNTcxIDgyLjEyNzggMTguMjAxOSA5NC4wNDY1IDI5LjkyIDk3LjQyMjlDMzAuMjcwOCA5Ny41MjM5IDMwLjU0NDQgOTcuODAxMSAzMC42Mzk4IDk4LjE1MzVDMzMuOTA2MyAxMTAuMjIxIDQ0LjQzMjYgMTE5LjU1MyA1Ny4yNzI3IDEyMC4zMzJDNTkuNzYzMiAxMjAuNDgzIDYxLjEyMTMgMTIwLjQ2NiA2My41MTk5IDEyMC4yMDdDNzQuNTAyNyAxMTkuMDE3IDg1LjY0MzMgMTA5LjkxNCA4OC44OSA5OC4zMDM2Qzg4Ljk4OTcgOTcuOTQ3IDg5LjI3MTUgOTcuNjY4NyA4OS42Mjk1IDk3LjU3NDJDMTAxLjYgOTQuNDE0MSAxMTAuODA5IDgzLjkyMjYgMTExLjc3OCA3MS4zMjc2TDExMS43OSA3MS4xNjMyQzExMS45NyA2OC44MzQ5IDExMi4wNzYgNjcuNDYxMiAxMTEuNzc4IDY1LjA4MDRDMTEwLjE3MiA1Mi4yNDEzIDEwMS41OCA0Mi4zMTg1IDg5LjYzMDEgMzkuMTc2M0M4OS4yNzIgMzkuMDgyMiA4OC45OTA0IDM4LjgwNDMgODguODg3NiAzOC40NDg2Qzg3LjM0NTQgMzMuMTEyMSA4My4xNTY3IDI2LjkxMDggODAuODY2OSAyNC44OTMyQzc4LjQ5MzYgMjIuODAyIDc3LjAxMTIgMjEuNzA1NSA3NC4xMzI5IDE5LjkzNVoiIGZpbGw9IiNGQUZBRkEiLz4KPHBhdGggZD0iTTU1LjM1NjUgODEuNTQ2M0M1Mi4yMTA2IDg1LjczMjQgNDcuNTk4OCA4OC43NTM5IDQyLjI4MzMgODkuODQ4N0M0Mi4yNzk2IDg5Ljk5ODMgNDIuMjc3NyA5MC4xNDg0IDQyLjI3NzcgOTAuMjk5QzQyLjI3NzcgMTAwLjA4NyA1MC4yMTIzIDEwOC4wMjEgNjAgMTA4LjAyMUM2OS43ODc4IDEwOC4wMjEgNzcuNzIyMyAxMDAuMDg3IDc3LjcyMjMgOTAuMjk5Qzc3LjcyMjMgODAuNTExMiA2OS43ODc4IDcyLjU3NjcgNjAgNzIuNTc2N0M1OS43NzgyIDcyLjU3NjcgNTkuNTU3NCA3Mi41ODA3IDU5LjMzNzUgNzIuNTg4OEM1OC44NzI3IDc0Ljk5MTkgNTguMDE0OCA3Ny4yNTQ4IDU2LjgzMzYgNzkuMzA4QzU3LjY4NDUgNzguNTc3OCA1OC43OTA4IDc4LjEzNjYgNjAgNzguMTM2NkM2Mi42ODY5IDc4LjEzNjYgNjQuODY1IDgwLjMxNDcgNjQuODY1IDgzLjAwMTZDNjQuODY1IDg1LjY4ODQgNjIuNjg2OSA4Ny44NjY1IDYwIDg3Ljg2NjVDNTcuMzEzMiA4Ny44NjY1IDU1LjEzNTEgODUuNjg4NCA1NS4xMzUxIDgzLjAwMTZDNTUuMTM1MSA4Mi40OTQ2IDU1LjIxMjYgODIuMDA1OCA1NS4zNTY1IDgxLjU0NjNaIiBmaWxsPSIjRjJCMjREIi8+CjxwYXRoIGQ9Ik03My4zNTUgMjAuODc1NEM3My43MTk5IDIwLjM1OTEgNzMuNTgxNyAxOS42MjM5IDczLjAxMzggMTkuMzQ1OUM3MC42MDg3IDE4LjE2ODMgNjguMDI0IDE3LjMwMDcgNjUuMzExOSAxNi43OTUyQzY0LjcxMiAxNi42ODM0IDY0LjE2OTkgMTcuMTUyNCA2NC4xNjk5IDE3Ljc2MjZWMjQuMjU2M0M2NC4xNjk5IDI0LjczMDkgNjQuNTA0MiAyNS4xMzc3IDY0Ljk2NTIgMjUuMjUwN0M2Ni41MzY0IDI1LjYzNTggNjguMDQxIDI2LjE5MDUgNjkuNDU4NyAyNi44OTQyQzcwLjA4ODggMjcuMjA3MSA3MC44NjQ0IDI2LjgzNzYgNzEuMDI0OCAyNi4xNTI3QzcxLjQ2NTMgMjQuMjcxOCA3Mi4xOTA2IDIyLjUyMyA3My4zNTUgMjAuODc1NFoiIGZpbGw9IiMyNDI5MkUiLz4KPHBhdGggZD0iTTc4Ljg3MjcgMzUuODcwMkM3OC43ODc2IDM1LjcxNzggNzguNzQxNSAzNS41NDY1IDc4Ljc0MTUgMzUuMzcxOVYzMi44ODkxQzc4Ljc0MTUgMzIuODg4NyA3OC43NDEyIDMyLjg4ODQgNzguNzQwOCAzMi44ODg0VjMyLjg4ODRDNzguNzQwNCAzMi44ODg0IDc4Ljc0MDEgMzIuODg4MSA3OC43NDAxIDMyLjg4NzdDNzguNzQwMiAyOC45NTEgNzkuMTczNCAyNy4wNzAzIDgwLjE5NiAyNS42NDQ4QzgwLjUyMDIgMjUuMTkyNyA4MS4xNzAxIDI1LjE4NjQgODEuNTU1MiAyNS41ODc5Qzg0Ljk3MTYgMjkuMTQ5NyA4Ny41MjQ1IDMzLjU0NjUgODguODc4IDM4LjQ0MkM4OC45NzY3IDM4Ljc5ODggODkuMjU4NyAzOS4wNzcgODkuNjE2NyAzOS4xNzEzQzEwMS4yNDggNDIuMjM3MSAxMTAuMTM1IDUyLjA1MzYgMTExLjgzMSA2NC4xNzlDMTExLjkxMyA2NC43NjYgMTExLjQ0OSA2NS4yNzkzIDExMC44NTcgNjUuMjc5M0gxMDQuNDNDMTAzLjkzMiA2NS4yNzkzIDEwMy41MTMgNjQuOTEyOCAxMDMuNDIzIDY0LjQyMzRDMTAxLjczIDU1LjIxNDYgOTQuMjcyOSA0OC4wMTg5IDg0LjkzMjkgNDYuNzIzNEw4Mi41ODczIDQ2LjM5ODFDODIuMTQ4NCA0Ni4zMzcyIDgxLjgwMiA0NS45OTQ4IDgxLjczNTggNDUuNTU2OEw4MS4zODI1IDQzLjIxNTJDODAuOTg1NSA0MC41ODQyIDgwLjExOTUgMzguMTA2NiA3OC44NzI3IDM1Ljg3MDJaIiBmaWxsPSIjMjQyOTJFIi8+CjxwYXRoIGQ9Ik0zOS4wMDYxIDI0LjcxNzFDMzguOTQ2NyAyNC42NTc4IDM4Ljg1MDggMjQuNjU2NSAzOC43OTAzIDI0LjcxNDdDMzQuODk5MSAyOC40NTUyIDMyLjAwNzIgMzMuMjI3OSAzMC41NTM5IDM4LjU5MjhDMzAuNDU4NSAzOC45NDUxIDMwLjE4NDIgMzkuMjIyMyAyOS44MzMxIDM5LjMyMkMxOC40NzMyIDQyLjU0ODUgOS44MzgxNyA1Mi4yNDUzIDguMTY4NyA2NC4xNzkxQzguMDg2NTggNjQuNzY2MSA4LjU1MDU4IDY1LjI3OTMgOS4xNDMyOSA2NS4yNzkzSDE1LjU3MDFDMTYuMDY3NyA2NS4yNzkzIDE2LjQ4NzEgNjQuOTEyOCAxNi41NzcxIDY0LjQyMzRDMTguMjQyOSA1NS4zNjQxIDI1LjQ4NjYgNDguMjUyNCAzNC42MTQ3IDQ2Ljc5MUwzNi45MDk4IDQ2LjQyMzVDMzcuMzQwOCA0Ni4zNTQ1IDM3LjY3NzIgNDYuMDE0IDM3Ljc0MSA0NS41ODIyTDM4LjA4MDYgNDMuMjgyOEMzOC41MjMyIDQwLjI4NjYgMzkuNTczNiAzNy40ODgxIDQxLjEwMjQgMzUuMDE2M0M0MS4yMDIyIDM0Ljg1NDkgNDEuMjU3IDM0LjY2OTQgNDEuMjU3MyAzNC40Nzk2TDQxLjI1OTkgMzIuODgxN0M0MS4yNTkzIDI4LjA0NzIgNDAuNjA0NiAyNi4zMTU2IDM5LjAwNjEgMjQuNzE3MVYyNC43MTcxWiIgZmlsbD0iIzI0MjkyRSIvPgo8cGF0aCBkPSJNNTAuNDYwOSAyNi42Nzg5QzQ5LjgzODUgMjYuOTcwNSA0OS4wODg5IDI2LjYwNzggNDguOTI0MSAyNS45NDA2QzQ4LjQ2MjkgMjQuMDczNiA0Ny43MTI0IDIyLjMzNzIgNDYuNTE5MiAyMC43MDAzQzQ2LjEzOTYgMjAuMTc5NiA0Ni4yODA4IDE5LjQyNjQgNDYuODYzNyAxOS4xNTE3QzQ5LjMxNDkgMTcuOTk2NSA1MS45NDY2IDE3LjE2MSA1NC43MDUgMTYuNjk5QzU1LjI5OTggMTYuNTk5NCA1NS44MyAxNy4wNjY1IDU1LjgzIDE3LjY2OTZWMjQuMTMzOUM1NS44MyAyNC42MTc4IDU1LjQ4MjkgMjUuMDI5OCA1NS4wMTA0IDI1LjEzMzhDNTMuNDIyNCAyNS40ODMzIDUxLjg5OSAyNi4wMDUzIDUwLjQ2MDkgMjYuNjc4OVoiIGZpbGw9IiMyNDI5MkUiLz4KPHBhdGggZD0iTTgxLjM4MjUgOTMuNTk4M0M4MC4wMjEgMTAyLjYyIDczLjE0NjYgMTA5LjgzNyA2NC4zMDI4IDExMS43MTRDNjMuODI2NSAxMTEuODE1IDYzLjQ3NTIgMTEyLjIyOSA2My40NzUyIDExMi43MTZWMTE5LjE3MkM2My40NzUyIDExOS43NzIgNjQuMDAxOCAxMjAuMjM5IDY0LjU5NDkgMTIwLjE0M0M3Ni4zMDg2IDExOC4yNTEgODUuNzY1IDEwOS42MyA4OC44Nzc4IDk4LjM3MjJDODguOTc2NSA5OC4wMTUzIDg5LjI1ODcgOTcuNzM2NSA4OS42MTY3IDk3LjY0MjJDMTAxLjI0NyA5NC41NzY0IDExMC4xMzUgODQuNzU5OCAxMTEuODMxIDcyLjYzNDVDMTExLjkxMyA3Mi4wNDc1IDExMS40NDkgNzEuNTM0MiAxMTAuODU3IDcxLjUzNDJIMTA0LjQzQzEwMy45MzIgNzEuNTM0MiAxMDMuNTEzIDcxLjkwMDcgMTAzLjQyMyA3Mi4zOTAxQzEwMS43MyA4MS41OTg5IDk0LjI3MjkgODguNzk0NiA4NC45MzI5IDkwLjA5MDFMODIuNTg3MyA5MC40MTU0QzgyLjE0ODQgOTAuNDc2MyA4MS44MDIgOTAuODE4NiA4MS43MzU4IDkxLjI1NjdMODEuMzgyNSA5My41OTgzWiIgZmlsbD0iIzI0MjkyRSIvPgo8cGF0aCBkPSJNMzQuNjE0NyA5MC4wMjI1QzI1LjQ4NjYgODguNTYxMSAxOC4yNDI5IDgxLjQ0OTQgMTYuNTc3MSA3Mi4zOUMxNi40ODcxIDcxLjkwMDcgMTYuMDY3NyA3MS41MzQyIDE1LjU3MDEgNzEuNTM0Mkg5LjE0MzI5QzguNTUwNTggNzEuNTM0MiA4LjA4NjU4IDcyLjA0NzQgOC4xNjg3IDcyLjYzNDRDOS44MzgxOCA4NC41NjgyIDE4LjQ3MzIgOTQuMjY1IDI5LjgzMzEgOTcuNDkxNUMzMC4xODQyIDk3LjU5MTIgMzAuNDU4NiA5Ny44NjkgMzAuNTU0MSA5OC4yMjE0QzMzLjczMjkgMTA5Ljk1NSA0My43OTQgMTE4Ljg1NiA1Ni4xMzk1IDEyMC4zMTlDNTYuNzIwMSAxMjAuMzg4IDU3LjIyMDMgMTE5LjkyNyA1Ny4yMjAzIDExOS4zNDJWMTEyLjk0QzU3LjIyMDMgMTEyLjQzMiA1Ni44MzgzIDExMi4wMDcgNTYuMzM2MSAxMTEuOTI5QzQ2LjkxMjkgMTEwLjQ1OSAzOS40NzU5IDEwMi45NzcgMzguMDgwNiA5My41MzA3TDM3Ljc0MSA5MS4yMzEzQzM3LjY3NzIgOTAuNzk5NSAzNy4zNDA4IDkwLjQ1ODkgMzYuOTA5OCA5MC4zODk5TDM0LjYxNDcgOTAuMDIyNVoiIGZpbGw9IiMyNDI5MkUiLz4KPHBhdGggZD0iTTgxLjYyODggODYuMTI5QzkxLjQxNjYgODYuMTI5IDk5LjM1MTEgNzguMTk0NSA5OS4zNTExIDY4LjQwNjdDOTkuMzUxMSA1OC42MTg5IDkxLjQxNjYgNTAuNjg0NCA4MS42Mjg4IDUwLjY4NDRDNzEuODQxIDUwLjY4NDQgNjMuOTA2NSA1OC42MTg5IDYzLjkwNjUgNjguNDA2N0M2My45MDY1IDY4LjUzOTYgNjMuOTA4IDY4LjY3MjEgNjMuOTEwOSA2OC44MDQyQzY2LjMzNyA2OS4yNzI2IDY4LjYyMDQgNzAuMTQxNSA3MC42ODk2IDcxLjMzOTVDNzAuMDcyNSA3MC41MjQxIDY5LjcwNjUgNjkuNTA4MSA2OS43MDY1IDY4LjQwNjdDNjkuNzA2NSA2NS43MTk5IDcxLjg4NDYgNjMuNTQxOCA3NC41NzE1IDYzLjU0MThDNzcuMjU4MyA2My41NDE4IDc5LjQzNjQgNjUuNzE5OSA3OS40MzY0IDY4LjQwNjdDNzkuNDM2NCA3MS4wOTM1IDc3LjI1ODMgNzMuMjcxNyA3NC41NzE1IDczLjI3MTdDNzQuMTI0OSA3My4yNzE3IDczLjY5MjMgNzMuMjExNSA3My4yODE0IDczLjA5ODhDNzcuMzI1MSA3Ni4yODc1IDgwLjIxNzEgODAuODcxNSA4MS4yMzEzIDg2LjEyNDdDODEuMzYzNSA4Ni4xMjc2IDgxLjQ5NiA4Ni4xMjkgODEuNjI4OCA4Ni4xMjlaIiBmaWxsPSIjRUIyMjI3Ii8+CjxwYXRoIGQ9Ik03Ny43MTc5IDQ2LjkxMTlDNzcuNzIwOCA0Ni43Nzk4IDc3LjcyMjIgNDYuNjQ3MyA3Ny43MjIyIDQ2LjUxNDRDNzcuNzIyMiAzNi43MjY3IDY5Ljc4NzcgMjguNzkyMSA1OS45OTk5IDI4Ljc5MjFDNTAuMjEyMSAyOC43OTIxIDQyLjI3NzYgMzYuNzI2NyA0Mi4yNzc2IDQ2LjUxNDRDNDIuMjc3NiA1Ni4zMDIyIDUwLjIxMjEgNjQuMjM2NyA1OS45OTk5IDY0LjIzNjdDNjAuMTMyOCA2NC4yMzY3IDYwLjI2NTMgNjQuMjM1MyA2MC4zOTc0IDY0LjIzMjRDNjAuODM1NyA2MS45NjIzIDYxLjYyNDYgNTkuODE3MiA2Mi43MDU2IDU3Ljg1NTZDNjEuOTMyIDU4LjM3NDMgNjEuMDAxMyA1OC42NzY4IDU5Ljk5OTkgNTguNjc2OEM1Ny4zMTMxIDU4LjY3NjggNTUuMTM1IDU2LjQ5ODcgNTUuMTM1IDUzLjgxMTlDNTUuMTM1IDUxLjEyNSA1Ny4zMTMxIDQ4Ljk0NjkgNTkuOTk5OSA0OC45NDY5QzYyLjY4NjcgNDguOTQ2OSA2NC44NjQ5IDUxLjEyNSA2NC44NjQ5IDUzLjgxMTlDNjQuODY0OSA1NC4xMzY0IDY0LjgzMzEgNTQuNDUzNiA2NC43NzI0IDU0Ljc2MDRDNjcuOTU3NSA1MC43Njk4IDcyLjUwODcgNDcuOTE3NiA3Ny43MTc5IDQ2LjkxMTlaIiBmaWxsPSIjMDRBNTRGIi8+CjxwYXRoIGQ9Ik01NS41NjEgNjcuOTU2NEM1NS41NjQ3IDY4LjEwNjEgNTUuNTY2NiA2OC4yNTYyIDU1LjU2NjYgNjguNDA2N0M1NS41NjY2IDc4LjE5NDUgNDcuNjMyIDg2LjEyOSAzNy44NDQzIDg2LjEyOUMyOC4wNTY1IDg2LjEyOSAyMC4xMjE5IDc4LjE5NDUgMjAuMTIxOSA2OC40MDY3QzIwLjEyMTkgNTguNjE4OSAyOC4wNTY1IDUwLjY4NDQgMzcuODQ0MyA1MC42ODQ0QzM4LjA2NiA1MC42ODQ0IDM4LjI4NjggNTAuNjg4NSAzOC41MDY2IDUwLjY5NjVDMzkuNTE0MyA1NS45MDYgNDIuMzY4OSA2MC40NTcgNDYuMzYxOSA2My42NDA4QzQ2LjA0NDggNjMuNTc1OSA0NS43MTY2IDYzLjU0MTggNDUuMzgwNCA2My41NDE4QzQyLjY5MzUgNjMuNTQxOCA0MC41MTU0IDY1LjcxOTkgNDAuNTE1NCA2OC40MDY3QzQwLjUxNTQgNzEuMDkzNSA0Mi42OTM1IDczLjI3MTcgNDUuMzgwNCA3My4yNzE3QzQ4LjA2NzIgNzMuMjcxNyA1MC4yNDUzIDcxLjA5MzUgNTAuMjQ1MyA2OC40MDY3QzUwLjI0NTMgNjcuMzk1OSA0OS45MzcxIDY2LjQ1NzIgNDkuNDA5NSA2NS42NzkzQzUxLjMwNTQgNjYuNzI5MiA1My4zNzM2IDY3LjUwNiA1NS41NjEgNjcuOTU2NFoiIGZpbGw9IiMyREE5RTEiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMC4xMDg4IDE2LjA2ODZDMzAuMTA4OCAxMi4yMzAyIDMzLjIyMDQgOS4xMTg2NSAzNy4wNTg3IDkuMTE4NjVDNDAuODk3IDkuMTE4NjUgNDQuMDA4NiAxMi4yMzAyIDQ0LjAwODYgMTYuMDY4NkM0NC4wMDg2IDE3LjM0ODMgNDMuNjYyOCAxOC41NDcyIDQzLjA1OTQgMTkuNTc3TDQzLjQyOTEgMTkuOTQ2N0w0MC40ODA1IDIyLjg5NTNMMzkuOTY3NSAyMi4zODIzQzM5LjA4MjYgMjIuNzkwNyAzOC4wOTczIDIzLjAxODUgMzcuMDU4NyAyMy4wMTg1QzMzLjIyMDQgMjMuMDE4NSAzMC4xMDg4IDE5LjkwNjkgMzAuMTA4OCAxNi4wNjg2Wk0zNy4wNTg3IDEzLjI4ODZDMzUuNTIzNCAxMy4yODg2IDM0LjI3ODcgMTQuNTMzMiAzNC4yNzg3IDE2LjA2ODZDMzQuMjc4NyAxNy42MDM5IDM1LjUyMzQgMTguODQ4NiAzNy4wNTg3IDE4Ljg0ODZDMzguNTk0IDE4Ljg0ODYgMzkuODM4NyAxNy42MDM5IDM5LjgzODcgMTYuMDY4NkMzOS44Mzg3IDE0LjUzMzIgMzguNTk0IDEzLjI4ODYgMzcuMDU4NyAxMy4yODg2WiIgZmlsbD0iIzI0MjkyRSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQzLjI3MyA2MS43ODk3TDQzLjMyMDIgMzIuNTM3NUw0My4zNDUgMzIuNTM3NUM0My4zNDQ3IDI3LjUxMzggNDIuNjY5NiAyNS4wODQ0IDQwLjQ4MDUgMjIuODk1M0w0My40MjkxIDE5Ljk0NjdDNDYuNzk5NSAyMy4zMTcxIDQ3LjUxNSAyNy4xNDIgNDcuNTE1IDMyLjU0MDlINDUuNDExOEw0Ny40OTAyIDMyLjU0NDJMNDcuNDQzIDYxLjc2MDZDNTAuMjg2NiA2Mi42MzE3IDUyLjM1NDMgNjUuMjc3NyA1Mi4zNTQzIDY4LjQwNjdDNTIuMzU0MyA3Mi4yNDUgNDkuMjQyNyA3NS4zNTY2IDQ1LjQwNDQgNzUuMzU2NkM0MS41NjYgNzUuMzU2NiAzOC40NTQ0IDcyLjI0NSAzOC40NTQ0IDY4LjQwNjdDMzguNDU0NCA2NS4zMTE5IDQwLjQ3NzMgNjIuNjg5NSA0My4yNzMgNjEuNzg5N1pNNDUuNDA0NCA2NS42MjY3QzQzLjg2OSA2NS42MjY3IDQyLjYyNDQgNjYuODcxMyA0Mi42MjQ0IDY4LjQwNjdDNDIuNjI0NCA2OS45NDIgNDMuODY5IDcxLjE4NjcgNDUuNDA0NCA3MS4xODY3QzQ2LjkzOTcgNzEuMTg2NyA0OC4xODQzIDY5Ljk0MiA0OC4xODQzIDY4LjQwNjdDNDguMTg0MyA2Ni44NzE0IDQ2LjkzOTcgNjUuNjI2NyA0NS40MDQ0IDY1LjYyNjdaIiBmaWxsPSIjMjQyOTJFIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNzYuNDQ4MyAxNi4wNjg2Qzc2LjQ0ODMgMTIuMjMwMiA3OS41NTk5IDkuMTE4NjUgODMuMzk4MiA5LjExODY1Qzg3LjIzNjYgOS4xMTg2NSA5MC4zNDgxIDEyLjIzMDIgOTAuMzQ4MSAxNi4wNjg2QzkwLjM0ODEgMTkuOTA2OSA4Ny4yMzY2IDIzLjAxODUgODMuMzk4MiAyMy4wMTg1QzgyLjIzODIgMjMuMDE4NSA4MS4xNDQ2IDIyLjczNDMgODAuMTgzMiAyMi4yMzE4TDc5LjUxOTYgMjIuODk1M0M3OS41MTk2IDIyLjg5NTMgNzkuNTE5NiAyMi44OTUzIDc5LjUxOTYgMjIuODk1M0M3Ny4zMzAxIDI1LjA4NDkgNzYuNjU1MyAyNy41MTQ5IDc2LjY1NTMgMzIuNTQwOUw3Ni42NTY3IDMyLjU0MDlWNjEuNzY3NEM3OS40ODg4IDYyLjY0NTUgODEuNTQ1NyA2NS4yODU5IDgxLjU0NTcgNjguNDA2N0M4MS41NDU3IDcyLjI0NSA3OC40MzQxIDc1LjM1NjYgNzQuNTk1OCA3NS4zNTY2QzcwLjc1NzUgNzUuMzU2NiA2Ny42NDU5IDcyLjI0NSA2Ny42NDU5IDY4LjQwNjdDNjcuNjQ1OSA2NS4zMDM2IDY5LjY3OTUgNjIuNjc1NiA3Mi40ODY3IDYxLjc4MjVWMzIuNTQwOUw3Mi40ODU0IDMyLjU0MDlDNzIuNDg1NCAyNy4xNDIgNzMuMjAwNyAyMy4zMTcgNzYuNTcxIDE5Ljk0NjdMNzcuMjM0NyAxOS4yODNDNzYuNzMyNCAxOC4zMjE4IDc2LjQ0ODMgMTcuMjI4MyA3Ni40NDgzIDE2LjA2ODZaTTgzLjM5ODIgMTMuMjg4NkM4MS44NjI5IDEzLjI4ODYgODAuNjE4MiAxNC41MzMyIDgwLjYxODIgMTYuMDY4NkM4MC42MTgyIDE3LjYwMzkgODEuODYyOSAxOC44NDg2IDgzLjM5ODIgMTguODQ4NkM4NC45MzM2IDE4Ljg0ODYgODYuMTc4MiAxNy42MDM5IDg2LjE3ODIgMTYuMDY4NkM4Ni4xNzgyIDE0LjUzMzIgODQuOTMzNiAxMy4yODg2IDgzLjM5ODIgMTMuMjg4NlpNNzQuNTk1OCA2NS42MjY3QzczLjA2MDUgNjUuNjI2NyA3MS44MTU4IDY2Ljg3MTQgNzEuODE1OCA2OC40MDY3QzcxLjgxNTggNjkuOTQyIDczLjA2MDUgNzEuMTg2NyA3NC41OTU4IDcxLjE4NjdDNzYuMTMxMSA3MS4xODY3IDc3LjM3NTggNjkuOTQyIDc3LjM3NTggNjguNDA2N0M3Ny4zNzU4IDY2Ljg3MTQgNzYuMTMxMSA2NS42MjY3IDc0LjU5NTggNjUuNjI2N1oiIGZpbGw9IiMyNDI5MkUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02MC4wMDAxIDAuNDI3OTc5QzU2LjE2MTggMC40Mjc5NzkgNTMuMDUwMiAzLjUzOTU3IDUzLjA1MDIgNy4zNzc5MUM1My4wNTAyIDEwLjQ4OTggNTUuMDk1NCAxMy4xMjQgNTcuOTE1IDE0LjAwOTZMNTcuOTE1IDQ3LjE4NzdDNTUuMTA3OCA0OC4wODA3IDUzLjA3NDEgNTAuNzA4OCA1My4wNzQxIDUzLjgxMTlDNTMuMDc0MSA1Ni45MTYxIDU1LjEwOTMgNTkuNTQ1IDU3LjkxODEgNjAuNDM3TDU3LjkxOTggNjEuNzczNUM1NS4wOTc4IDYyLjY1NzcgNTMuMDUwMyA2NS4yOTMxIDUzLjA1MDMgNjguNDA2N0M1My4wNTAzIDcxLjUyNjQgNTUuMTA1OSA3NC4xNjYxIDU3LjkzNjUgNzUuMDQ1MUw1Ny45MzgyIDc2LjM3MDFDNTUuMTE5IDc3LjI1NiA1My4wNzQxIDc5Ljg5IDUzLjA3NDEgODMuMDAxNkM1My4wNzQxIDg2LjgzOTkgNTYuMTg1NyA4OS45NTE1IDYwLjAyNCA4OS45NTE1QzYzLjg2MjQgODkuOTUxNSA2Ni45NzQgODYuODM5OSA2Ni45NzQgODMuMDAxNkM2Ni45NzQgNzkuODg5MyA2NC45MjgyIDc3LjI1NDkgNjIuMTA4MSA3Ni4zNjk1TDYyLjEwNjQgNzUuMDMxOEM2NC45MTUxIDc0LjEzOTcgNjYuOTUwMiA3MS41MTA4IDY2Ljk1MDIgNjguNDA2N0M2Ni45NTAyIDY1LjI5NjUgNjQuOTA3MSA2Mi42NjM0IDYyLjA4OTggNjEuNzc2NEw2Mi4wODgxIDYwLjQ1MDJDNjQuOTE4NiA1OS41NzEgNjYuOTc0IDU2LjkzMTUgNjYuOTc0IDUzLjgxMTlDNjYuOTc0IDUwLjY5MTEgNjQuOTE3IDQ4LjA1MDggNjIuMDg1IDQ3LjE3MjZMNjIuMDg1IDE0LjAwOTdDNjQuOTA0NyAxMy4xMjQxIDY2Ljk1IDEwLjQ4OTkgNjYuOTUgNy4zNzc5MUM2Ni45NSAzLjUzOTU3IDYzLjgzODQgMC40Mjc5NzkgNjAuMDAwMSAwLjQyNzk3OVpNNTcuMjIwMSA3LjM3NzkxQzU3LjIyMDEgNS44NDI1NyA1OC40NjQ4IDQuNTk3OTQgNjAuMDAwMSA0LjU5Nzk0QzYxLjUzNTQgNC41OTc5NCA2Mi43ODAxIDUuODQyNTcgNjIuNzgwMSA3LjM3NzkxQzYyLjc4MDEgOC45MTMyNCA2MS41MzU0IDEwLjE1NzkgNjAuMDAwMSAxMC4xNTc5QzU4LjQ2NDggMTAuMTU3OSA1Ny4yMjAxIDguOTEzMjQgNTcuMjIwMSA3LjM3NzkxWk01Ny4yNDQxIDgzLjAwMTZDNTcuMjQ0MSA4MS40NjYyIDU4LjQ4ODcgODAuMjIxNiA2MC4wMjQgODAuMjIxNkM2MS41NTk0IDgwLjIyMTYgNjIuODA0IDgxLjQ2NjIgNjIuODA0IDgzLjAwMTZDNjIuODA0IDg0LjUzNjkgNjEuNTU5NCA4NS43ODE1IDYwLjAyNCA4NS43ODE1QzU4LjQ4ODcgODUuNzgxNSA1Ny4yNDQxIDg0LjUzNjkgNTcuMjQ0MSA4My4wMDE2Wk01Ny4yMjAzIDY4LjQwNjdDNTcuMjIwMyA2Ni44NzE0IDU4LjQ2NDkgNjUuNjI2OCA2MC4wMDAzIDY1LjYyNjhDNjEuNTM1NiA2NS42MjY4IDYyLjc4MDIgNjYuODcxNCA2Mi43ODAyIDY4LjQwNjdDNjIuNzgwMiA2OS45NDIxIDYxLjUzNTYgNzEuMTg2NyA2MC4wMDAzIDcxLjE4NjdDNTguNDY0OSA3MS4xODY3IDU3LjIyMDMgNjkuOTQyMSA1Ny4yMjAzIDY4LjQwNjdaTTYwLjAyNCA1MS4wMzE5QzU4LjQ4ODcgNTEuMDMxOSA1Ny4yNDQxIDUyLjI3NjUgNTcuMjQ0MSA1My44MTE5QzU3LjI0NDEgNTUuMzQ3MiA1OC40ODg3IDU2LjU5MTggNjAuMDI0IDU2LjU5MThDNjEuNTU5NCA1Ni41OTE4IDYyLjgwNCA1NS4zNDcyIDYyLjgwNCA1My44MTE5QzYyLjgwNCA1Mi4yNzY1IDYxLjU1OTQgNTEuMDMxOSA2MC4wMjQgNTEuMDMxOVoiIGZpbGw9IiMyNDI5MkUiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xOTY6Mjg3OSI+CjxyZWN0IHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjQyNzk3OSkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4=';
|
|
4695
4714
|
|
|
4696
4715
|
function Logo() {
|
|
4697
4716
|
return (React__default.createElement("div", { style: {
|
|
@@ -4759,12 +4778,6 @@ var GetGeometry = function (_a) {
|
|
|
4759
4778
|
var _d = useState(false), subscribe = _d[0], setSubscribe = _d[1];
|
|
4760
4779
|
// pollination-react-io hooks
|
|
4761
4780
|
var _e = useGetGeometry(); _e.host; var geometry = _e.geometry, getGeometry = _e.getGeometry;
|
|
4762
|
-
// initial retrieval of geometry
|
|
4763
|
-
useEffect(function () {
|
|
4764
|
-
if (!getGeometry)
|
|
4765
|
-
return;
|
|
4766
|
-
getGeometry(key);
|
|
4767
|
-
}, [key, getGeometry]);
|
|
4768
4781
|
useEffect(function () {
|
|
4769
4782
|
if (!geometry || !setParentState)
|
|
4770
4783
|
return;
|
|
@@ -4845,12 +4858,6 @@ var GetModel = function (_a) {
|
|
|
4845
4858
|
var _d = useState(false), subscribe = _d[0], setSubscribe = _d[1];
|
|
4846
4859
|
// pollination-react-io hooks
|
|
4847
4860
|
var _e = useGetHbjson(), host = _e.host, hbjson = _e.hbjson, getHbjson = _e.getHbjson;
|
|
4848
|
-
// initial retrieval of geometry
|
|
4849
|
-
useEffect(function () {
|
|
4850
|
-
if (!getHbjson)
|
|
4851
|
-
return;
|
|
4852
|
-
getHbjson(key);
|
|
4853
|
-
}, [key, getHbjson]);
|
|
4854
4861
|
useEffect(function () {
|
|
4855
4862
|
if (!hbjson || !setParentState)
|
|
4856
4863
|
return;
|