@openelement/ui 0.41.0-alpha.1 → 0.41.0-alpha.3
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/package.json +8 -9
- package/src/index.d.ts +1 -1
- package/src/index.js +2 -2
- package/src/manifest.d.ts +2 -3
- package/src/manifest.js +10 -255
- package/src/open-button.js +2 -2
- package/src/open-code-block.d.ts +0 -3
- package/src/open-code-block.js +5 -20
- package/src/open-hero-ping.d.ts +1 -2
- package/src/open-hero-ping.js +8 -9
- package/src/open-props-tokens.d.ts +8 -0
- package/src/open-props-tokens.js +22 -8
- package/src/open-theme-toggle.js +3 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openelement/ui",
|
|
3
|
-
"version": "0.41.0-alpha.
|
|
3
|
+
"version": "0.41.0-alpha.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
@@ -121,13 +121,6 @@
|
|
|
121
121
|
"default": "./src/open-props-tokens.js"
|
|
122
122
|
}
|
|
123
123
|
},
|
|
124
|
-
"dependencies": {
|
|
125
|
-
"@openelement/element": "^0.41.0-alpha.1",
|
|
126
|
-
"@openelement/core": "^0.41.0-alpha.1",
|
|
127
|
-
"@openelement/signal": "^0.41.0-alpha.1",
|
|
128
|
-
"@openelement/protocol": "^0.41.0-alpha.1",
|
|
129
|
-
"@deno/shim-deno": "~0.19.0"
|
|
130
|
-
},
|
|
131
124
|
"repository": {
|
|
132
125
|
"type": "git",
|
|
133
126
|
"url": "git+https://github.com/open-element/openelement.git"
|
|
@@ -138,5 +131,11 @@
|
|
|
138
131
|
"ssg",
|
|
139
132
|
"framework",
|
|
140
133
|
"deno"
|
|
141
|
-
]
|
|
134
|
+
],
|
|
135
|
+
"dependencies": {
|
|
136
|
+
"@openelement/element": "^0.41.0-alpha.3",
|
|
137
|
+
"@openelement/core": "^0.41.0-alpha.3",
|
|
138
|
+
"@openelement/signal": "^0.41.0-alpha.3",
|
|
139
|
+
"@openelement/protocol": "^0.41.0-alpha.3"
|
|
140
|
+
}
|
|
142
141
|
}
|
package/src/index.d.ts
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
* ```
|
|
34
34
|
*
|
|
35
35
|
* @module @openelement/ui
|
|
36
|
-
*/ export { openPropsTokenSheet } from "./open-props-tokens.js";
|
|
36
|
+
*/ export { openPropsRootSheet, openPropsTokenSheet } from "./open-props-tokens.js";
|
|
37
37
|
export { daisyClassSheet } from "./daisy-classes.js";
|
|
38
38
|
export { OpenButton, tagName as openButtonTagName } from "./open-button.js";
|
|
39
39
|
export { OpenCard, tagName as openCardTagName } from "./open-card.js";
|
package/src/index.js
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
*
|
|
35
35
|
* @module @openelement/ui
|
|
36
36
|
*/ // Design tokens (CSSStyleSheet, zero Lit dependency)
|
|
37
|
-
export { openPropsTokenSheet } from './open-props-tokens.js';
|
|
37
|
+
export { openPropsRootSheet, openPropsTokenSheet } from './open-props-tokens.js';
|
|
38
38
|
// daisyUI forked class sheet (Pure CSS, Open Props tokens)
|
|
39
39
|
export { daisyClassSheet } from './daisy-classes.js';
|
|
40
40
|
// Components
|
|
@@ -59,4 +59,4 @@ export { OpenTabs, tagName as openTabsTagName } from './open-tabs.js';
|
|
|
59
59
|
// Package manifest (WC Package Protocol)
|
|
60
60
|
// Consumers (adapter-vite) read manifest.declarations to derive island metadata.
|
|
61
61
|
export { manifest } from './manifest.js';
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy91aS9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAb3BlbmVsZW1lbnQvdWkgLSBvcGVuRWxlbWVudCBVSSBDb21wb25lbnQgTGlicmFyeVxuICpcbiAqIFN3aXNzIEludGVybmF0aW9uYWwgU3R5bGU6IFB1cmUgQiZXLCBtaW5pbWFsLCB0eXBvZ3JhcGh5LWRyaXZlbi5cbiAqIFplcm8gTGl0IGRlcGVuZGVuY3kgLSBidWlsdCBvbiBEc2RFbGVtZW50IChuYXRpdmUgSFRNTEVsZW1lbnQpLlxuICpcbiAqIENvbXBvbmVudHM6XG4gKiAtIG9wZW4tYnV0dG9uOiBCdXR0b24gd2l0aCB2YXJpYW50cyAoZGVmYXVsdCwgcHJpbWFyeSwgZ2hvc3QsIGFjY2VudClcbiAqIC0gb3Blbi1jYXJkOiBDYXJkIGNvbnRhaW5lciB3aXRoIG9wdGlvbmFsIGhlYWRlci9mb290ZXJcbiAqIC0gb3Blbi1pbnB1dDogSW5wdXQgZmllbGQgd2l0aCBsYWJlbCBhbmQgZXJyb3Igc3RhdGVzXG4gKiAtIG9wZW4tY29kZS1ibG9jazogQ29kZSBibG9jayB3aXRoIGNvcHkgYnV0dG9uXG4gKiAtIG9wZW4tYmFkZ2U6IE9wZW4gUHJvcHMgc3RhdHVzIGJhZGdlXG4gKiAtIG9wZW4tYnJhbmQtbWFyazogQXBlcnR1cmUgTyBicmFuZCBtYXJrXG4gKiAtIG9wZW4tbGFiLXBhbmVsOiBTdGFuZGFyZHMtbGFiIGFydGlmYWN0L3NwZWMgcGFuZWxcbiAqIC0gb3Blbi1sYWItc3RhZ2U6IEtpbmV0aWMgc3RhbmRhcmRzLWxhYiBoZXJvIHByaW1pdGl2ZVxuICogLSBvcGVuLXN0YW5kYXJkcy12aXN1YWw6IFByb2R1Y3QtYXJ0IHN0YW5kYXJkcyBkaWFncmFtc1xuICogLSBvcGVuLWxheW91dDogQXBwIGxheW91dCB3aXRoIGhlYWRlciwgc2lkZWJhciwgZm9vdGVyXG4gKiAtIG9wZW4tdGhlbWUtdG9nZ2xlOiBUaGVtZSB0b2dnbGUgSXNsYW5kIChEYXJrL0xpZ2h0KVxuICogLSBvcGVuLWRpYWxvZzogRGlhbG9nIGNvbXBvbmVudCB1c2luZyBuYXRpdmUgPGRpYWxvZz5cbiAqIC0gb3Blbi1jYWxsb3V0OiBDYWxsb3V0L25vdGljZSBib3ggKGluZm8vd2FybmluZy9kYW5nZXIvdGlwKVxuICogLSBvcGVuLXN0ZXAtY2FyZDogU3RlcCBjYXJkIHdpdGggbnVtYmVyZWQgaW5kaWNhdG9yXG4gKiAtIG9wZW4tZHJvcGRvd246IERyb3Bkb3duIHRvZ2dsZSB3aXRoIHRyaWdnZXIgc2xvdCBhbmQgY29udGVudCBzbG90XG4gKiAtIG9wZW4tbW9kYWw6IE1vZGFsIGRpYWxvZyB1c2luZyBzaWduYWwtZHJpdmVuIG9wZW4gYXR0cmlidXRlXG4gKiAtIG9wZW4tdGFiczogVGFiIGludGVyZmFjZSB3aXRoIHRhYiBhbmQgcGFuZWwgc2xvdHNcbiAqXG4gKiBVc2FnZTpcbiAqIGBgYHRzXG4gKiAvLyBJbXBvcnQgYWxsIGNvbXBvbmVudHNcbiAqIGltcG9ydCAnQG9wZW5lbGVtZW50L3VpJztcbiAqXG4gKiAvLyBPciBpbXBvcnQgc3BlY2lmaWMgY29tcG9uZW50c1xuICogaW1wb3J0IHsgT3BlbkJ1dHRvbiB9IGZyb20gJ0BvcGVuZWxlbWVudC91aS9vcGVuLWJ1dHRvbic7XG4gKiBgYGBcbiAqXG4gKiBAbW9kdWxlIEBvcGVuZWxlbWVudC91aVxuICovXG5cbi8vIERlc2lnbiB0b2tlbnMgKENTU1N0eWxlU2hlZXQsIHplcm8gTGl0IGRlcGVuZGVuY3kpXG5leHBvcnQgeyBvcGVuUHJvcHNSb290U2hlZXQsIG9wZW5Qcm9wc1Rva2VuU2hlZXQgfSBmcm9tICcuL29wZW4tcHJvcHMtdG9rZW5zLmpzJztcblxuLy8gZGFpc3lVSSBmb3JrZWQgY2xhc3Mgc2hlZXQgKFB1cmUgQ1NTLCBPcGVuIFByb3BzIHRva2VucylcbmV4cG9ydCB7IGRhaXN5Q2xhc3NTaGVldCB9IGZyb20gJy4vZGFpc3ktY2xhc3Nlcy5qcyc7XG5cbi8vIENvbXBvbmVudHNcbmV4cG9ydCB7IE9wZW5CdXR0b24sIHRhZ05hbWUgYXMgb3BlbkJ1dHRvblRhZ05hbWUgfSBmcm9tICcuL29wZW4tYnV0dG9uLmpzJztcbmV4cG9ydCB7IE9wZW5DYXJkLCB0YWdOYW1lIGFzIG9wZW5DYXJkVGFnTmFtZSB9IGZyb20gJy4vb3Blbi1jYXJkLmpzJztcbmV4cG9ydCB7IE9wZW5JbnB1dCwgdGFnTmFtZSBhcyBvcGVuSW5wdXRUYWdOYW1lIH0gZnJvbSAnLi9vcGVuLWlucHV0LmpzJztcbmV4cG9ydCB7IE9wZW5Db2RlQmxvY2ssIHRhZ05hbWUgYXMgb3BlbkNvZGVCbG9ja1RhZ05hbWUgfSBmcm9tICcuL29wZW4tY29kZS1ibG9jay5qcyc7XG5leHBvcnQgeyBPcGVuQmFkZ2UsIHRhZ05hbWUgYXMgb3BlbkJhZGdlVGFnTmFtZSB9IGZyb20gJy4vb3Blbi1iYWRnZS5qcyc7XG5leHBvcnQgeyBPcGVuQnJhbmRNYXJrLCB0YWdOYW1lIGFzIG9wZW5CcmFuZE1hcmtUYWdOYW1lIH0gZnJvbSAnLi9vcGVuLWJyYW5kLW1hcmsuanMnO1xuZXhwb3J0IHsgT3BlbkxhYlBhbmVsLCB0YWdOYW1lIGFzIG9wZW5MYWJQYW5lbFRhZ05hbWUgfSBmcm9tICcuL29wZW4tbGFiLXBhbmVsLmpzJztcbmV4cG9ydCB7IE9wZW5MYWJTdGFnZSwgdGFnTmFtZSBhcyBvcGVuTGFiU3RhZ2VUYWdOYW1lIH0gZnJvbSAnLi9vcGVuLWxhYi1zdGFnZS5qcyc7XG5leHBvcnQge1xuICBPcGVuU3RhbmRhcmRzVmlzdWFsLFxuICB0YWdOYW1lIGFzIG9wZW5TdGFuZGFyZHNWaXN1YWxUYWdOYW1lLFxufSBmcm9tICcuL29wZW4tc3RhbmRhcmRzLXZpc3VhbC5qcyc7XG5leHBvcnQgeyBPcGVuTGF5b3V0LCB0YWdOYW1lIGFzIG9wZW5MYXlvdXRUYWdOYW1lIH0gZnJvbSAnLi9vcGVuLWxheW91dC5qcyc7XG5leHBvcnQgdHlwZSB7IEhlYWRlck5hdkxpbmssIE5hdkl0ZW0sIE5hdlNlY3Rpb24gfSBmcm9tICcuL29wZW4tbGF5b3V0LmpzJztcbmV4cG9ydCB7IE9wZW5UaGVtZVRvZ2dsZSwgdGFnTmFtZSBhcyBvcGVuVGhlbWVUb2dnbGVUYWdOYW1lIH0gZnJvbSAnLi9vcGVuLXRoZW1lLXRvZ2dsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE9wZW5IZXJvUGluZywgdGFnTmFtZSBhcyBvcGVuSGVyb1BpbmdUYWdOYW1lIH0gZnJvbSAnLi9vcGVuLWhlcm8tcGluZy5qcyc7XG5leHBvcnQgeyBPcGVuRGlhbG9nLCB0YWdOYW1lIGFzIG9wZW5EaWFsb2dUYWdOYW1lIH0gZnJvbSAnLi9vcGVuLWRpYWxvZy5qcyc7XG5leHBvcnQgeyBPcGVuQ2FsbG91dCwgdGFnTmFtZSBhcyBvcGVuQ2FsbG91dFRhZ05hbWUgfSBmcm9tICcuL29wZW4tY2FsbG91dC5qcyc7XG5leHBvcnQgeyBPcGVuU3RlcENhcmQsIHRhZ05hbWUgYXMgb3BlblN0ZXBDYXJkVGFnTmFtZSB9IGZyb20gJy4vb3Blbi1zdGVwLWNhcmQuanMnO1xuZXhwb3J0IHsgT3BlbkRyb3Bkb3duLCB0YWdOYW1lIGFzIG9wZW5Ecm9wZG93blRhZ05hbWUgfSBmcm9tICcuL29wZW4tZHJvcGRvd24uanMnO1xuZXhwb3J0IHsgT3Blbk1vZGFsLCB0YWdOYW1lIGFzIG9wZW5Nb2RhbFRhZ05hbWUgfSBmcm9tICcuL29wZW4tbW9kYWwuanMnO1xuZXhwb3J0IHsgT3BlblRhYnMsIHRhZ05hbWUgYXMgb3BlblRhYnNUYWdOYW1lIH0gZnJvbSAnLi9vcGVuLXRhYnMuanMnO1xuXG4vLyBQYWNrYWdlIG1hbmlmZXN0IChXQyBQYWNrYWdlIFByb3RvY29sKVxuLy8gQ29uc3VtZXJzIChhZGFwdGVyLXZpdGUpIHJlYWQgbWFuaWZlc3QuZGVjbGFyYXRpb25zIHRvIGRlcml2ZSBpc2xhbmQgbWV0YWRhdGEuXG5leHBvcnQgeyBtYW5pZmVzdCB9IGZyb20gJy4vbWFuaWZlc3QuanMnO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW1DQyxHQUVELHFEQUFxRDtBQUNyRCxTQUFTLGtCQUFrQixFQUFFLG1CQUFtQixRQUFRLHlCQUF5QjtBQUVqRiwyREFBMkQ7QUFDM0QsU0FBUyxlQUFlLFFBQVEscUJBQXFCO0FBRXJELGFBQWE7QUFDYixTQUFTLFVBQVUsRUFBRSxXQUFXLGlCQUFpQixRQUFRLG1CQUFtQjtBQUM1RSxTQUFTLFFBQVEsRUFBRSxXQUFXLGVBQWUsUUFBUSxpQkFBaUI7QUFDdEUsU0FBUyxTQUFTLEVBQUUsV0FBVyxnQkFBZ0IsUUFBUSxrQkFBa0I7QUFDekUsU0FBUyxhQUFhLEVBQUUsV0FBVyxvQkFBb0IsUUFBUSx1QkFBdUI7QUFDdEYsU0FBUyxTQUFTLEVBQUUsV0FBVyxnQkFBZ0IsUUFBUSxrQkFBa0I7QUFDekUsU0FBUyxhQUFhLEVBQUUsV0FBVyxvQkFBb0IsUUFBUSx1QkFBdUI7QUFDdEYsU0FBUyxZQUFZLEVBQUUsV0FBVyxtQkFBbUIsUUFBUSxzQkFBc0I7QUFDbkYsU0FBUyxZQUFZLEVBQUUsV0FBVyxtQkFBbUIsUUFBUSxzQkFBc0I7QUFDbkYsU0FDRSxtQkFBbUIsRUFDbkIsV0FBVywwQkFBMEIsUUFDaEMsNkJBQTZCO0FBQ3BDLFNBQVMsVUFBVSxFQUFFLFdBQVcsaUJBQWlCLFFBQVEsbUJBQW1CO0FBRTVFLFNBQVMsZUFBZSxFQUFFLFdBQVcsc0JBQXNCLFFBQVEseUJBQXlCO0FBQzVGLFNBQVMsV0FBVyxZQUFZLEVBQUUsV0FBVyxtQkFBbUIsUUFBUSxzQkFBc0I7QUFDOUYsU0FBUyxVQUFVLEVBQUUsV0FBVyxpQkFBaUIsUUFBUSxtQkFBbUI7QUFDNUUsU0FBUyxXQUFXLEVBQUUsV0FBVyxrQkFBa0IsUUFBUSxvQkFBb0I7QUFDL0UsU0FBUyxZQUFZLEVBQUUsV0FBVyxtQkFBbUIsUUFBUSxzQkFBc0I7QUFDbkYsU0FBUyxZQUFZLEVBQUUsV0FBVyxtQkFBbUIsUUFBUSxxQkFBcUI7QUFDbEYsU0FBUyxTQUFTLEVBQUUsV0FBVyxnQkFBZ0IsUUFBUSxrQkFBa0I7QUFDekUsU0FBUyxRQUFRLEVBQUUsV0FBVyxlQUFlLFFBQVEsaUJBQWlCO0FBRXRFLHlDQUF5QztBQUN6QyxpRkFBaUY7QUFDakYsU0FBUyxRQUFRLFFBQVEsZ0JBQWdCIn0=
|
package/src/manifest.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @openelement/ui - Generated Package Manifest
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* hand-written manifest so consumers continue to work.
|
|
4
|
+
* Imports the build-time generated manifest JSON. The generator lives in
|
|
5
|
+
* tools/generate-ui-manifest.ts and is run via `deno task generate:ui-manifest`.
|
|
7
6
|
*/ import type { OpenElementPackageManifest } from '@openelement/protocol/manifest';
|
|
8
7
|
export declare const manifest: OpenElementPackageManifest;
|
package/src/manifest.js
CHANGED
|
@@ -1,255 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
'open-badge',
|
|
12
|
-
'open-brand-mark',
|
|
13
|
-
'open-lab-panel',
|
|
14
|
-
'open-standards-visual',
|
|
15
|
-
'open-lab-stage',
|
|
16
|
-
'open-dialog',
|
|
17
|
-
'open-layout',
|
|
18
|
-
'open-dropdown',
|
|
19
|
-
'open-modal',
|
|
20
|
-
'open-tabs',
|
|
21
|
-
'open-hero-ping'
|
|
22
|
-
];
|
|
23
|
-
function layerFromClass(className) {
|
|
24
|
-
const interactive = new Set([
|
|
25
|
-
'OpenButton',
|
|
26
|
-
'OpenInput',
|
|
27
|
-
'OpenThemeToggle',
|
|
28
|
-
'OpenDialog',
|
|
29
|
-
'OpenLayout',
|
|
30
|
-
'OpenDropdown',
|
|
31
|
-
'OpenModal',
|
|
32
|
-
'OpenTabs',
|
|
33
|
-
'OpenHeroPing'
|
|
34
|
-
]);
|
|
35
|
-
return interactive.has(className) ? 'dsd-interactive' : 'dsd-static';
|
|
36
|
-
}
|
|
37
|
-
function hydrateFromClass(className) {
|
|
38
|
-
const load = new Set([
|
|
39
|
-
'OpenButton',
|
|
40
|
-
'OpenInput',
|
|
41
|
-
'OpenThemeToggle',
|
|
42
|
-
'OpenLayout',
|
|
43
|
-
'OpenDropdown',
|
|
44
|
-
'OpenModal',
|
|
45
|
-
'OpenTabs'
|
|
46
|
-
]);
|
|
47
|
-
return load.has(className) ? 'load' : 'idle';
|
|
48
|
-
}
|
|
49
|
-
function inferAttributeType(name) {
|
|
50
|
-
if (name === 'disabled' || name === 'compact' || name === 'open' || name === 'home' || name === 'required') {
|
|
51
|
-
return 'boolean';
|
|
52
|
-
}
|
|
53
|
-
if (name === 'step') return 'number';
|
|
54
|
-
if (name === 'nav-items' || name === 'header-nav' || name === 'locales') return 'array';
|
|
55
|
-
return 'string';
|
|
56
|
-
}
|
|
57
|
-
function parseObservedAttributes(text) {
|
|
58
|
-
const match = text.match(/static\s+(?:override\s+)?observedAttributes\s*=\s*\[([\s\S]*?)\]/);
|
|
59
|
-
if (!match) return [];
|
|
60
|
-
return match[1].split(/,\s*/).map((s)=>s.trim().replace(/^['"]|['"]$/g, '')).filter(Boolean);
|
|
61
|
-
}
|
|
62
|
-
function parseTagName(text) {
|
|
63
|
-
const match = text.match(/export\s+const\s+tagName\s*=\s*['"]([^'"]+)['"]/);
|
|
64
|
-
if (!match) throw new Error('Could not find tagName export');
|
|
65
|
-
return match[1];
|
|
66
|
-
}
|
|
67
|
-
function parseClassName(text, file) {
|
|
68
|
-
const match = text.match(/export\s+(?:default\s+)?class\s+(\w+)\s+extends\s+OpenElement/);
|
|
69
|
-
if (!match) throw new Error(`Could not find exported class in ${file}`);
|
|
70
|
-
return match[1];
|
|
71
|
-
}
|
|
72
|
-
function parseCssParts(text) {
|
|
73
|
-
const parts = [];
|
|
74
|
-
const seen = new Set();
|
|
75
|
-
for (const m of text.matchAll(/\*\s*@csspart\s+(\S+)\s*-+(.*)/g)){
|
|
76
|
-
const name = m[1].trim();
|
|
77
|
-
const description = m[2].trim();
|
|
78
|
-
if (!seen.has(name)) {
|
|
79
|
-
seen.add(name);
|
|
80
|
-
parts.push({
|
|
81
|
-
name,
|
|
82
|
-
description
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return parts;
|
|
87
|
-
}
|
|
88
|
-
function parseSlots(text) {
|
|
89
|
-
const slots = [];
|
|
90
|
-
const seen = new Set();
|
|
91
|
-
for (const m of text.matchAll(/\*\s*@slot\s+(\S*)\s*-+(.*)/g)){
|
|
92
|
-
const name = m[1].trim();
|
|
93
|
-
const description = m[2].trim();
|
|
94
|
-
if (!seen.has(name)) {
|
|
95
|
-
seen.add(name);
|
|
96
|
-
slots.push({
|
|
97
|
-
name,
|
|
98
|
-
description
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
// Default slot fallback when render includes <slot></slot> but no @slot -
|
|
103
|
-
if (text.includes('<slot></slot>') || text.includes('<slot ')) {
|
|
104
|
-
if (!seen.has('')) {
|
|
105
|
-
slots.unshift({
|
|
106
|
-
name: '',
|
|
107
|
-
description: 'Default slot'
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
return slots;
|
|
112
|
-
}
|
|
113
|
-
function parseEvents(text) {
|
|
114
|
-
const events = [];
|
|
115
|
-
const seen = new Set();
|
|
116
|
-
for (const m of text.matchAll(/new\s+CustomEvent\(['"]([^'"]+)['"],?\s*(?:\{([^}]*)\})?/g)){
|
|
117
|
-
const name = m[1];
|
|
118
|
-
if (seen.has(name)) continue;
|
|
119
|
-
seen.add(name);
|
|
120
|
-
const detail = (m[2] || '').match(/detail\s*:\s*\{([^}]*)\}/);
|
|
121
|
-
events.push({
|
|
122
|
-
name,
|
|
123
|
-
type: detail ? `CustomEvent<{ ${detail[1].trim()} }>` : 'CustomEvent',
|
|
124
|
-
description: `Fired on ${name}`
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
return events;
|
|
128
|
-
}
|
|
129
|
-
function parseDescription(text) {
|
|
130
|
-
const lines = text.split('\n');
|
|
131
|
-
for(let i = 0; i < lines.length; i++){
|
|
132
|
-
const line = lines[i].trim();
|
|
133
|
-
if (line.startsWith('* @openelement/ui')) {
|
|
134
|
-
const next = lines[i + 1]?.replace(/^\s*\*\s?/, '').trim();
|
|
135
|
-
if (next && !next.startsWith('*') && !next.startsWith('@')) return next;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return '';
|
|
139
|
-
}
|
|
140
|
-
function buildMeta(file, source) {
|
|
141
|
-
const tagName = parseTagName(source);
|
|
142
|
-
const className = parseClassName(source, file);
|
|
143
|
-
const observed = parseObservedAttributes(source);
|
|
144
|
-
const attributes = observed.map((name)=>({
|
|
145
|
-
name,
|
|
146
|
-
type: inferAttributeType(name),
|
|
147
|
-
description: `${name} attribute`
|
|
148
|
-
}));
|
|
149
|
-
// Provide defaults for known boolean attributes
|
|
150
|
-
for (const attr of attributes){
|
|
151
|
-
if (attr.type === 'boolean') {
|
|
152
|
-
attr.default = 'false';
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
return {
|
|
156
|
-
file,
|
|
157
|
-
tagName,
|
|
158
|
-
className,
|
|
159
|
-
description: parseDescription(source),
|
|
160
|
-
attributes,
|
|
161
|
-
events: parseEvents(source),
|
|
162
|
-
slots: parseSlots(source),
|
|
163
|
-
cssParts: parseCssParts(source),
|
|
164
|
-
layer: layerFromClass(className),
|
|
165
|
-
hydrate: hydrateFromClass(className)
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
function readComponentSources() {
|
|
169
|
-
const dir = new URL('.', import.meta.url);
|
|
170
|
-
const metas = [];
|
|
171
|
-
for (const entry of Deno.readDirSync(dir)){
|
|
172
|
-
if (!entry.isFile || !entry.name.startsWith('open-') || !entry.name.endsWith('.tsx')) continue;
|
|
173
|
-
const file = entry.name;
|
|
174
|
-
const source = new TextDecoder().decode(Deno.readFileSync(new URL(file, dir)));
|
|
175
|
-
if (!source.includes('extends OpenElement')) continue;
|
|
176
|
-
metas.push(buildMeta(file, source));
|
|
177
|
-
}
|
|
178
|
-
const order = new Map(COMPONENT_ORDER.map((t, i)=>[
|
|
179
|
-
t,
|
|
180
|
-
i
|
|
181
|
-
]));
|
|
182
|
-
metas.sort((a, b)=>(order.get(a.tagName) ?? 999) - (order.get(b.tagName) ?? 999));
|
|
183
|
-
return metas;
|
|
184
|
-
}
|
|
185
|
-
function buildDeclaration(meta) {
|
|
186
|
-
return {
|
|
187
|
-
tagName: meta.tagName,
|
|
188
|
-
className: meta.className,
|
|
189
|
-
superclassName: 'OpenElement',
|
|
190
|
-
description: meta.description,
|
|
191
|
-
attributes: meta.attributes.length ? meta.attributes : undefined,
|
|
192
|
-
events: meta.events.length ? meta.events : undefined,
|
|
193
|
-
slots: meta.slots.length ? meta.slots : undefined,
|
|
194
|
-
cssParts: meta.cssParts.length ? meta.cssParts : undefined,
|
|
195
|
-
openElement: {
|
|
196
|
-
ssr: true,
|
|
197
|
-
dsd: true,
|
|
198
|
-
layer: meta.layer,
|
|
199
|
-
hydrate: meta.hydrate,
|
|
200
|
-
module: `@openelement/ui/${meta.file.replace(/\.tsx$/, '')}`,
|
|
201
|
-
export: meta.className
|
|
202
|
-
}
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
function buildManifest() {
|
|
206
|
-
const metas = readComponentSources();
|
|
207
|
-
const declarations = metas.map(buildDeclaration);
|
|
208
|
-
const modules = metas.map((meta)=>({
|
|
209
|
-
path: `./${meta.file.replace(/\.tsx$/, '.js')}`,
|
|
210
|
-
exports: [
|
|
211
|
-
{
|
|
212
|
-
name: meta.className,
|
|
213
|
-
path: `./${meta.file.replace(/\.tsx$/, '.js')}`
|
|
214
|
-
}
|
|
215
|
-
],
|
|
216
|
-
declarations: [
|
|
217
|
-
meta.tagName
|
|
218
|
-
]
|
|
219
|
-
}));
|
|
220
|
-
return {
|
|
221
|
-
schemaVersion: '1.0.0',
|
|
222
|
-
packageName: '@openelement/ui',
|
|
223
|
-
version: pkgVersion,
|
|
224
|
-
description: 'Open Props Web Component library for openElement',
|
|
225
|
-
author: 'openElement',
|
|
226
|
-
license: 'MIT',
|
|
227
|
-
homepage: 'https://openelement.org',
|
|
228
|
-
repository: 'https://github.com/open-element/openelement',
|
|
229
|
-
openElement: {
|
|
230
|
-
adapter: 'vanilla',
|
|
231
|
-
hasStylesheet: true,
|
|
232
|
-
cssPrefix: 'open'
|
|
233
|
-
},
|
|
234
|
-
declarations,
|
|
235
|
-
modules
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
// ponytail: lazy-initialized to keep Deno runtime calls out of client bundles.
|
|
239
|
-
// buildManifest() scans the filesystem and must only execute at build time.
|
|
240
|
-
let _manifest;
|
|
241
|
-
export const manifest = new Proxy({}, {
|
|
242
|
-
get (_target, prop) {
|
|
243
|
-
if (!_manifest) _manifest = buildManifest();
|
|
244
|
-
return _manifest[prop];
|
|
245
|
-
},
|
|
246
|
-
ownKeys () {
|
|
247
|
-
if (!_manifest) _manifest = buildManifest();
|
|
248
|
-
return Reflect.ownKeys(_manifest);
|
|
249
|
-
},
|
|
250
|
-
getOwnPropertyDescriptor (_target, prop) {
|
|
251
|
-
if (!_manifest) _manifest = buildManifest();
|
|
252
|
-
return Reflect.getOwnPropertyDescriptor(_manifest, prop);
|
|
253
|
-
}
|
|
254
|
-
});
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy91aS9zcmMvbWFuaWZlc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVubyB9IGZyb20gXCJAZGVuby9zaGltLWRlbm9cIjtcbi8qKlxuICogQG9wZW5lbGVtZW50L3VpIC0gR2VuZXJhdGVkIFBhY2thZ2UgTWFuaWZlc3RcbiAqXG4gKiBTY2FucyBjb21wb25lbnQgc291cmNlIGZpbGVzIGF0IHJ1bnRpbWUgYW5kIGJ1aWxkcyBhIENFTS1jb21wYXRpYmxlXG4gKiBPcGVuRWxlbWVudFBhY2thZ2VNYW5pZmVzdC4gS2VlcHMgdGhlIHNhbWUgZXhwb3J0IHNoYXBlIGFzIHRoZSBwcmV2aW91c1xuICogaGFuZC13cml0dGVuIG1hbmlmZXN0IHNvIGNvbnN1bWVycyBjb250aW51ZSB0byB3b3JrLlxuICovXG4vLyBkZW5vLWFwaS1mcmVlOmlnbm9yZSDigJQgRGVubyBBUElzIHVzZWQgb25seSBpbiBsYXp5LWluaXRpYWxpemVkIFByb3h5IGZvciBidWlsZC10aW1lIG1hbmlmZXN0IGdlbmVyYXRpb25cblxuaW1wb3J0IHR5cGUge1xuICBPcGVuRWxlbWVudEF0dHJpYnV0ZSxcbiAgT3BlbkVsZW1lbnRDc3NQYXJ0LFxuICBPcGVuRWxlbWVudERlY2xhcmF0aW9uLFxuICBPcGVuRWxlbWVudEV2ZW50LFxuICBPcGVuRWxlbWVudFBhY2thZ2VNYW5pZmVzdCxcbiAgT3BlbkVsZW1lbnRTbG90LFxufSBmcm9tICdAb3BlbmVsZW1lbnQvcHJvdG9jb2wvbWFuaWZlc3QnO1xuXG5jb25zdCBwa2dWZXJzaW9uID0gJzAuNDAuOCc7XG5cbmludGVyZmFjZSBDb21wb25lbnRNZXRhIHtcbiAgZmlsZTogc3RyaW5nO1xuICB0YWdOYW1lOiBzdHJpbmc7XG4gIGNsYXNzTmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBhdHRyaWJ1dGVzOiBPcGVuRWxlbWVudEF0dHJpYnV0ZVtdO1xuICBldmVudHM6IE9wZW5FbGVtZW50RXZlbnRbXTtcbiAgc2xvdHM6IE9wZW5FbGVtZW50U2xvdFtdO1xuICBjc3NQYXJ0czogT3BlbkVsZW1lbnRDc3NQYXJ0W107XG4gIGxheWVyOiAnZHNkLXN0YXRpYycgfCAnZHNkLWludGVyYWN0aXZlJztcbiAgaHlkcmF0ZTogJ2xvYWQnIHwgJ2lkbGUnIHwgJ3Zpc2libGUnO1xufVxuXG5jb25zdCBDT01QT05FTlRfT1JERVIgPSBbXG4gICdvcGVuLWNhcmQnLFxuICAnb3Blbi1jYWxsb3V0JyxcbiAgJ29wZW4tc3RlcC1jYXJkJyxcbiAgJ29wZW4tYnV0dG9uJyxcbiAgJ29wZW4taW5wdXQnLFxuICAnb3Blbi10aGVtZS10b2dnbGUnLFxuICAnb3Blbi1jb2RlLWJsb2NrJyxcbiAgJ29wZW4tYmFkZ2UnLFxuICAnb3Blbi1icmFuZC1tYXJrJyxcbiAgJ29wZW4tbGFiLXBhbmVsJyxcbiAgJ29wZW4tc3RhbmRhcmRzLXZpc3VhbCcsXG4gICdvcGVuLWxhYi1zdGFnZScsXG4gICdvcGVuLWRpYWxvZycsXG4gICdvcGVuLWxheW91dCcsXG4gICdvcGVuLWRyb3Bkb3duJyxcbiAgJ29wZW4tbW9kYWwnLFxuICAnb3Blbi10YWJzJyxcbiAgJ29wZW4taGVyby1waW5nJyxcbl07XG5cbmZ1bmN0aW9uIGxheWVyRnJvbUNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKTogQ29tcG9uZW50TWV0YVsnbGF5ZXInXSB7XG4gIGNvbnN0IGludGVyYWN0aXZlID0gbmV3IFNldChbXG4gICAgJ09wZW5CdXR0b24nLFxuICAgICdPcGVuSW5wdXQnLFxuICAgICdPcGVuVGhlbWVUb2dnbGUnLFxuICAgICdPcGVuRGlhbG9nJyxcbiAgICAnT3BlbkxheW91dCcsXG4gICAgJ09wZW5Ecm9wZG93bicsXG4gICAgJ09wZW5Nb2RhbCcsXG4gICAgJ09wZW5UYWJzJyxcbiAgICAnT3Blbkhlcm9QaW5nJyxcbiAgXSk7XG4gIHJldHVybiBpbnRlcmFjdGl2ZS5oYXMoY2xhc3NOYW1lKSA/ICdkc2QtaW50ZXJhY3RpdmUnIDogJ2RzZC1zdGF0aWMnO1xufVxuXG5mdW5jdGlvbiBoeWRyYXRlRnJvbUNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKTogQ29tcG9uZW50TWV0YVsnaHlkcmF0ZSddIHtcbiAgY29uc3QgbG9hZCA9IG5ldyBTZXQoW1xuICAgICdPcGVuQnV0dG9uJyxcbiAgICAnT3BlbklucHV0JyxcbiAgICAnT3BlblRoZW1lVG9nZ2xlJyxcbiAgICAnT3BlbkxheW91dCcsXG4gICAgJ09wZW5Ecm9wZG93bicsXG4gICAgJ09wZW5Nb2RhbCcsXG4gICAgJ09wZW5UYWJzJyxcbiAgXSk7XG4gIHJldHVybiBsb2FkLmhhcyhjbGFzc05hbWUpID8gJ2xvYWQnIDogJ2lkbGUnO1xufVxuXG5mdW5jdGlvbiBpbmZlckF0dHJpYnV0ZVR5cGUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKFxuICAgIG5hbWUgPT09ICdkaXNhYmxlZCcgfHwgbmFtZSA9PT0gJ2NvbXBhY3QnIHx8IG5hbWUgPT09ICdvcGVuJyB8fCBuYW1lID09PSAnaG9tZScgfHxcbiAgICBuYW1lID09PSAncmVxdWlyZWQnXG4gICkge1xuICAgIHJldHVybiAnYm9vbGVhbic7XG4gIH1cbiAgaWYgKG5hbWUgPT09ICdzdGVwJykgcmV0dXJuICdudW1iZXInO1xuICBpZiAobmFtZSA9PT0gJ25hdi1pdGVtcycgfHwgbmFtZSA9PT0gJ2hlYWRlci1uYXYnIHx8IG5hbWUgPT09ICdsb2NhbGVzJykgcmV0dXJuICdhcnJheSc7XG4gIHJldHVybiAnc3RyaW5nJztcbn1cblxuZnVuY3Rpb24gcGFyc2VPYnNlcnZlZEF0dHJpYnV0ZXModGV4dDogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCBtYXRjaCA9IHRleHQubWF0Y2goL3N0YXRpY1xccysoPzpvdmVycmlkZVxccyspP29ic2VydmVkQXR0cmlidXRlc1xccyo9XFxzKlxcWyhbXFxzXFxTXSo/KVxcXS8pO1xuICBpZiAoIW1hdGNoKSByZXR1cm4gW107XG4gIHJldHVybiBtYXRjaFsxXVxuICAgIC5zcGxpdCgvLFxccyovKVxuICAgIC5tYXAoKHMpID0+IHMudHJpbSgpLnJlcGxhY2UoL15bJ1wiXXxbJ1wiXSQvZywgJycpKVxuICAgIC5maWx0ZXIoQm9vbGVhbik7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVGFnTmFtZSh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IHRleHQubWF0Y2goL2V4cG9ydFxccytjb25zdFxccyt0YWdOYW1lXFxzKj1cXHMqWydcIl0oW14nXCJdKylbJ1wiXS8pO1xuICBpZiAoIW1hdGNoKSB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHRhZ05hbWUgZXhwb3J0Jyk7XG4gIHJldHVybiBtYXRjaFsxXTtcbn1cblxuZnVuY3Rpb24gcGFyc2VDbGFzc05hbWUodGV4dDogc3RyaW5nLCBmaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IHRleHQubWF0Y2goL2V4cG9ydFxccysoPzpkZWZhdWx0XFxzKyk/Y2xhc3NcXHMrKFxcdyspXFxzK2V4dGVuZHNcXHMrT3BlbkVsZW1lbnQvKTtcbiAgaWYgKCFtYXRjaCkgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBleHBvcnRlZCBjbGFzcyBpbiAke2ZpbGV9YCk7XG4gIHJldHVybiBtYXRjaFsxXTtcbn1cblxuZnVuY3Rpb24gcGFyc2VDc3NQYXJ0cyh0ZXh0OiBzdHJpbmcpOiBPcGVuRWxlbWVudENzc1BhcnRbXSB7XG4gIGNvbnN0IHBhcnRzOiBPcGVuRWxlbWVudENzc1BhcnRbXSA9IFtdO1xuICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgbSBvZiB0ZXh0Lm1hdGNoQWxsKC9cXCpcXHMqQGNzc3BhcnRcXHMrKFxcUyspXFxzKi0rKC4qKS9nKSkge1xuICAgIGNvbnN0IG5hbWUgPSBtWzFdLnRyaW0oKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IG1bMl0udHJpbSgpO1xuICAgIGlmICghc2Vlbi5oYXMobmFtZSkpIHtcbiAgICAgIHNlZW4uYWRkKG5hbWUpO1xuICAgICAgcGFydHMucHVzaCh7IG5hbWUsIGRlc2NyaXB0aW9uIH0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcGFydHM7XG59XG5cbmZ1bmN0aW9uIHBhcnNlU2xvdHModGV4dDogc3RyaW5nKTogT3BlbkVsZW1lbnRTbG90W10ge1xuICBjb25zdCBzbG90czogT3BlbkVsZW1lbnRTbG90W10gPSBbXTtcbiAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IG0gb2YgdGV4dC5tYXRjaEFsbCgvXFwqXFxzKkBzbG90XFxzKyhcXFMqKVxccyotKyguKikvZykpIHtcbiAgICBjb25zdCBuYW1lID0gbVsxXS50cmltKCk7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBtWzJdLnRyaW0oKTtcbiAgICBpZiAoIXNlZW4uaGFzKG5hbWUpKSB7XG4gICAgICBzZWVuLmFkZChuYW1lKTtcbiAgICAgIHNsb3RzLnB1c2goeyBuYW1lLCBkZXNjcmlwdGlvbiB9KTtcbiAgICB9XG4gIH1cbiAgLy8gRGVmYXVsdCBzbG90IGZhbGxiYWNrIHdoZW4gcmVuZGVyIGluY2x1ZGVzIDxzbG90Pjwvc2xvdD4gYnV0IG5vIEBzbG90IC1cbiAgaWYgKHRleHQuaW5jbHVkZXMoJzxzbG90Pjwvc2xvdD4nKSB8fCB0ZXh0LmluY2x1ZGVzKCc8c2xvdCAnKSkge1xuICAgIGlmICghc2Vlbi5oYXMoJycpKSB7XG4gICAgICBzbG90cy51bnNoaWZ0KHsgbmFtZTogJycsIGRlc2NyaXB0aW9uOiAnRGVmYXVsdCBzbG90JyB9KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNsb3RzO1xufVxuXG5mdW5jdGlvbiBwYXJzZUV2ZW50cyh0ZXh0OiBzdHJpbmcpOiBPcGVuRWxlbWVudEV2ZW50W10ge1xuICBjb25zdCBldmVudHM6IE9wZW5FbGVtZW50RXZlbnRbXSA9IFtdO1xuICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgbSBvZiB0ZXh0Lm1hdGNoQWxsKC9uZXdcXHMrQ3VzdG9tRXZlbnRcXChbJ1wiXShbXidcIl0rKVsnXCJdLD9cXHMqKD86XFx7KFtefV0qKVxcfSk/L2cpKSB7XG4gICAgY29uc3QgbmFtZSA9IG1bMV07XG4gICAgaWYgKHNlZW4uaGFzKG5hbWUpKSBjb250aW51ZTtcbiAgICBzZWVuLmFkZChuYW1lKTtcbiAgICBjb25zdCBkZXRhaWwgPSAobVsyXSB8fCAnJykubWF0Y2goL2RldGFpbFxccyo6XFxzKlxceyhbXn1dKilcXH0vKTtcbiAgICBldmVudHMucHVzaCh7XG4gICAgICBuYW1lLFxuICAgICAgdHlwZTogZGV0YWlsID8gYEN1c3RvbUV2ZW50PHsgJHtkZXRhaWxbMV0udHJpbSgpfSB9PmAgOiAnQ3VzdG9tRXZlbnQnLFxuICAgICAgZGVzY3JpcHRpb246IGBGaXJlZCBvbiAke25hbWV9YCxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gZXZlbnRzO1xufVxuXG5mdW5jdGlvbiBwYXJzZURlc2NyaXB0aW9uKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGxpbmVzID0gdGV4dC5zcGxpdCgnXFxuJyk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBsaW5lID0gbGluZXNbaV0udHJpbSgpO1xuICAgIGlmIChsaW5lLnN0YXJ0c1dpdGgoJyogQG9wZW5lbGVtZW50L3VpJykpIHtcbiAgICAgIGNvbnN0IG5leHQgPSBsaW5lc1tpICsgMV0/LnJlcGxhY2UoL15cXHMqXFwqXFxzPy8sICcnKS50cmltKCk7XG4gICAgICBpZiAobmV4dCAmJiAhbmV4dC5zdGFydHNXaXRoKCcqJykgJiYgIW5leHQuc3RhcnRzV2l0aCgnQCcpKSByZXR1cm4gbmV4dDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBidWlsZE1ldGEoZmlsZTogc3RyaW5nLCBzb3VyY2U6IHN0cmluZyk6IENvbXBvbmVudE1ldGEge1xuICBjb25zdCB0YWdOYW1lID0gcGFyc2VUYWdOYW1lKHNvdXJjZSk7XG4gIGNvbnN0IGNsYXNzTmFtZSA9IHBhcnNlQ2xhc3NOYW1lKHNvdXJjZSwgZmlsZSk7XG4gIGNvbnN0IG9ic2VydmVkID0gcGFyc2VPYnNlcnZlZEF0dHJpYnV0ZXMoc291cmNlKTtcbiAgY29uc3QgYXR0cmlidXRlczogT3BlbkVsZW1lbnRBdHRyaWJ1dGVbXSA9IG9ic2VydmVkLm1hcCgobmFtZSkgPT4gKHtcbiAgICBuYW1lLFxuICAgIHR5cGU6IGluZmVyQXR0cmlidXRlVHlwZShuYW1lKSxcbiAgICBkZXNjcmlwdGlvbjogYCR7bmFtZX0gYXR0cmlidXRlYCxcbiAgfSkpO1xuXG4gIC8vIFByb3ZpZGUgZGVmYXVsdHMgZm9yIGtub3duIGJvb2xlYW4gYXR0cmlidXRlc1xuICBmb3IgKGNvbnN0IGF0dHIgb2YgYXR0cmlidXRlcykge1xuICAgIGlmIChhdHRyLnR5cGUgPT09ICdib29sZWFuJykge1xuICAgICAgYXR0ci5kZWZhdWx0ID0gJ2ZhbHNlJztcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZpbGUsXG4gICAgdGFnTmFtZSxcbiAgICBjbGFzc05hbWUsXG4gICAgZGVzY3JpcHRpb246IHBhcnNlRGVzY3JpcHRpb24oc291cmNlKSxcbiAgICBhdHRyaWJ1dGVzLFxuICAgIGV2ZW50czogcGFyc2VFdmVudHMoc291cmNlKSxcbiAgICBzbG90czogcGFyc2VTbG90cyhzb3VyY2UpLFxuICAgIGNzc1BhcnRzOiBwYXJzZUNzc1BhcnRzKHNvdXJjZSksXG4gICAgbGF5ZXI6IGxheWVyRnJvbUNsYXNzKGNsYXNzTmFtZSksXG4gICAgaHlkcmF0ZTogaHlkcmF0ZUZyb21DbGFzcyhjbGFzc05hbWUpLFxuICB9O1xufVxuXG5mdW5jdGlvbiByZWFkQ29tcG9uZW50U291cmNlcygpOiBDb21wb25lbnRNZXRhW10ge1xuICBjb25zdCBkaXIgPSBuZXcgVVJMKCcuJywgaW1wb3J0Lm1ldGEudXJsKTtcbiAgY29uc3QgbWV0YXM6IENvbXBvbmVudE1ldGFbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGVudHJ5IG9mIERlbm8ucmVhZERpclN5bmMoZGlyKSkge1xuICAgIGlmICghZW50cnkuaXNGaWxlIHx8ICFlbnRyeS5uYW1lLnN0YXJ0c1dpdGgoJ29wZW4tJykgfHwgIWVudHJ5Lm5hbWUuZW5kc1dpdGgoJy50c3gnKSkgY29udGludWU7XG4gICAgY29uc3QgZmlsZSA9IGVudHJ5Lm5hbWU7XG4gICAgY29uc3Qgc291cmNlID0gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKERlbm8ucmVhZEZpbGVTeW5jKG5ldyBVUkwoZmlsZSwgZGlyKSkpO1xuICAgIGlmICghc291cmNlLmluY2x1ZGVzKCdleHRlbmRzIE9wZW5FbGVtZW50JykpIGNvbnRpbnVlO1xuICAgIG1ldGFzLnB1c2goYnVpbGRNZXRhKGZpbGUsIHNvdXJjZSkpO1xuICB9XG4gIGNvbnN0IG9yZGVyID0gbmV3IE1hcChDT01QT05FTlRfT1JERVIubWFwKCh0LCBpKSA9PiBbdCwgaV0pKTtcbiAgbWV0YXMuc29ydCgoYSwgYikgPT4gKG9yZGVyLmdldChhLnRhZ05hbWUpID8/IDk5OSkgLSAob3JkZXIuZ2V0KGIudGFnTmFtZSkgPz8gOTk5KSk7XG4gIHJldHVybiBtZXRhcztcbn1cblxuZnVuY3Rpb24gYnVpbGREZWNsYXJhdGlvbihtZXRhOiBDb21wb25lbnRNZXRhKTogT3BlbkVsZW1lbnREZWNsYXJhdGlvbiB7XG4gIHJldHVybiB7XG4gICAgdGFnTmFtZTogbWV0YS50YWdOYW1lLFxuICAgIGNsYXNzTmFtZTogbWV0YS5jbGFzc05hbWUsXG4gICAgc3VwZXJjbGFzc05hbWU6ICdPcGVuRWxlbWVudCcsXG4gICAgZGVzY3JpcHRpb246IG1ldGEuZGVzY3JpcHRpb24sXG4gICAgYXR0cmlidXRlczogbWV0YS5hdHRyaWJ1dGVzLmxlbmd0aCA/IG1ldGEuYXR0cmlidXRlcyA6IHVuZGVmaW5lZCxcbiAgICBldmVudHM6IG1ldGEuZXZlbnRzLmxlbmd0aCA/IG1ldGEuZXZlbnRzIDogdW5kZWZpbmVkLFxuICAgIHNsb3RzOiBtZXRhLnNsb3RzLmxlbmd0aCA/IG1ldGEuc2xvdHMgOiB1bmRlZmluZWQsXG4gICAgY3NzUGFydHM6IG1ldGEuY3NzUGFydHMubGVuZ3RoID8gbWV0YS5jc3NQYXJ0cyA6IHVuZGVmaW5lZCxcbiAgICBvcGVuRWxlbWVudDoge1xuICAgICAgc3NyOiB0cnVlLFxuICAgICAgZHNkOiB0cnVlLFxuICAgICAgbGF5ZXI6IG1ldGEubGF5ZXIsXG4gICAgICBoeWRyYXRlOiBtZXRhLmh5ZHJhdGUsXG4gICAgICBtb2R1bGU6IGBAb3BlbmVsZW1lbnQvdWkvJHttZXRhLmZpbGUucmVwbGFjZSgvXFwudHN4JC8sICcnKX1gLFxuICAgICAgZXhwb3J0OiBtZXRhLmNsYXNzTmFtZSxcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZE1hbmlmZXN0KCk6IE9wZW5FbGVtZW50UGFja2FnZU1hbmlmZXN0IHtcbiAgY29uc3QgbWV0YXMgPSByZWFkQ29tcG9uZW50U291cmNlcygpO1xuICBjb25zdCBkZWNsYXJhdGlvbnMgPSBtZXRhcy5tYXAoYnVpbGREZWNsYXJhdGlvbik7XG4gIGNvbnN0IG1vZHVsZXMgPSBtZXRhcy5tYXAoKG1ldGEpID0+ICh7XG4gICAgcGF0aDogYC4vJHttZXRhLmZpbGUucmVwbGFjZSgvXFwudHN4JC8sICcuanMnKX1gLFxuICAgIGV4cG9ydHM6IFt7IG5hbWU6IG1ldGEuY2xhc3NOYW1lLCBwYXRoOiBgLi8ke21ldGEuZmlsZS5yZXBsYWNlKC9cXC50c3gkLywgJy5qcycpfWAgfV0sXG4gICAgZGVjbGFyYXRpb25zOiBbbWV0YS50YWdOYW1lXSxcbiAgfSkpO1xuXG4gIHJldHVybiB7XG4gICAgc2NoZW1hVmVyc2lvbjogJzEuMC4wJyxcbiAgICBwYWNrYWdlTmFtZTogJ0BvcGVuZWxlbWVudC91aScsXG4gICAgdmVyc2lvbjogcGtnVmVyc2lvbixcbiAgICBkZXNjcmlwdGlvbjogJ09wZW4gUHJvcHMgV2ViIENvbXBvbmVudCBsaWJyYXJ5IGZvciBvcGVuRWxlbWVudCcsXG4gICAgYXV0aG9yOiAnb3BlbkVsZW1lbnQnLFxuICAgIGxpY2Vuc2U6ICdNSVQnLFxuICAgIGhvbWVwYWdlOiAnaHR0cHM6Ly9vcGVuZWxlbWVudC5vcmcnLFxuICAgIHJlcG9zaXRvcnk6ICdodHRwczovL2dpdGh1Yi5jb20vb3Blbi1lbGVtZW50L29wZW5lbGVtZW50JyxcbiAgICBvcGVuRWxlbWVudDoge1xuICAgICAgYWRhcHRlcjogJ3ZhbmlsbGEnLFxuICAgICAgaGFzU3R5bGVzaGVldDogdHJ1ZSxcbiAgICAgIGNzc1ByZWZpeDogJ29wZW4nLFxuICAgIH0sXG4gICAgZGVjbGFyYXRpb25zLFxuICAgIG1vZHVsZXMsXG4gIH07XG59XG5cbi8vIHBvbnl0YWlsOiBsYXp5LWluaXRpYWxpemVkIHRvIGtlZXAgRGVubyBydW50aW1lIGNhbGxzIG91dCBvZiBjbGllbnQgYnVuZGxlcy5cbi8vIGJ1aWxkTWFuaWZlc3QoKSBzY2FucyB0aGUgZmlsZXN5c3RlbSBhbmQgbXVzdCBvbmx5IGV4ZWN1dGUgYXQgYnVpbGQgdGltZS5cbmxldCBfbWFuaWZlc3Q6IE9wZW5FbGVtZW50UGFja2FnZU1hbmlmZXN0IHwgdW5kZWZpbmVkO1xuZXhwb3J0IGNvbnN0IG1hbmlmZXN0OiBPcGVuRWxlbWVudFBhY2thZ2VNYW5pZmVzdCA9IG5ldyBQcm94eShcbiAge30gYXMgT3BlbkVsZW1lbnRQYWNrYWdlTWFuaWZlc3QsXG4gIHtcbiAgICBnZXQoX3RhcmdldCwgcHJvcCkge1xuICAgICAgaWYgKCFfbWFuaWZlc3QpIF9tYW5pZmVzdCA9IGJ1aWxkTWFuaWZlc3QoKTtcbiAgICAgIHJldHVybiAoKF9tYW5pZmVzdCBhcyB1bmtub3duKSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbcHJvcCBhcyBzdHJpbmddO1xuICAgIH0sXG4gICAgb3duS2V5cygpIHtcbiAgICAgIGlmICghX21hbmlmZXN0KSBfbWFuaWZlc3QgPSBidWlsZE1hbmlmZXN0KCk7XG4gICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKF9tYW5pZmVzdCEpO1xuICAgIH0sXG4gICAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF90YXJnZXQsIHByb3ApIHtcbiAgICAgIGlmICghX21hbmlmZXN0KSBfbWFuaWZlc3QgPSBidWlsZE1hbmlmZXN0KCk7XG4gICAgICByZXR1cm4gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoX21hbmlmZXN0ISwgcHJvcCk7XG4gICAgfSxcbiAgfSxcbik7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxJQUFJLFFBQVEsa0JBQWtCO0FBbUJ2QyxNQUFNLGFBQWE7QUFlbkIsTUFBTSxrQkFBa0I7RUFDdEI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NBQ0Q7QUFFRCxTQUFTLGVBQWUsU0FBaUI7RUFDdkMsTUFBTSxjQUFjLElBQUksSUFBSTtJQUMxQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7R0FDRDtFQUNELE9BQU8sWUFBWSxHQUFHLENBQUMsYUFBYSxvQkFBb0I7QUFDMUQ7QUFFQSxTQUFTLGlCQUFpQixTQUFpQjtFQUN6QyxNQUFNLE9BQU8sSUFBSSxJQUFJO0lBQ25CO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0dBQ0Q7RUFDRCxPQUFPLEtBQUssR0FBRyxDQUFDLGFBQWEsU0FBUztBQUN4QztBQUVBLFNBQVMsbUJBQW1CLElBQVk7RUFDdEMsSUFDRSxTQUFTLGNBQWMsU0FBUyxhQUFhLFNBQVMsVUFBVSxTQUFTLFVBQ3pFLFNBQVMsWUFDVDtJQUNBLE9BQU87RUFDVDtFQUNBLElBQUksU0FBUyxRQUFRLE9BQU87RUFDNUIsSUFBSSxTQUFTLGVBQWUsU0FBUyxnQkFBZ0IsU0FBUyxXQUFXLE9BQU87RUFDaEYsT0FBTztBQUNUO0FBRUEsU0FBUyx3QkFBd0IsSUFBWTtFQUMzQyxNQUFNLFFBQVEsS0FBSyxLQUFLLENBQUM7RUFDekIsSUFBSSxDQUFDLE9BQU8sT0FBTyxFQUFFO0VBQ3JCLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FDWixLQUFLLENBQUMsUUFDTixHQUFHLENBQUMsQ0FBQyxJQUFNLEVBQUUsSUFBSSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsS0FDNUMsTUFBTSxDQUFDO0FBQ1o7QUFFQSxTQUFTLGFBQWEsSUFBWTtFQUNoQyxNQUFNLFFBQVEsS0FBSyxLQUFLLENBQUM7RUFDekIsSUFBSSxDQUFDLE9BQU8sTUFBTSxJQUFJLE1BQU07RUFDNUIsT0FBTyxLQUFLLENBQUMsRUFBRTtBQUNqQjtBQUVBLFNBQVMsZUFBZSxJQUFZLEVBQUUsSUFBWTtFQUNoRCxNQUFNLFFBQVEsS0FBSyxLQUFLLENBQUM7RUFDekIsSUFBSSxDQUFDLE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxpQ0FBaUMsRUFBRSxNQUFNO0VBQ3RFLE9BQU8sS0FBSyxDQUFDLEVBQUU7QUFDakI7QUFFQSxTQUFTLGNBQWMsSUFBWTtFQUNqQyxNQUFNLFFBQThCLEVBQUU7RUFDdEMsTUFBTSxPQUFPLElBQUk7RUFDakIsS0FBSyxNQUFNLEtBQUssS0FBSyxRQUFRLENBQUMsbUNBQW9DO0lBQ2hFLE1BQU0sT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUk7SUFDdEIsTUFBTSxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSTtJQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsT0FBTztNQUNuQixLQUFLLEdBQUcsQ0FBQztNQUNULE1BQU0sSUFBSSxDQUFDO1FBQUU7UUFBTTtNQUFZO0lBQ2pDO0VBQ0Y7RUFDQSxPQUFPO0FBQ1Q7QUFFQSxTQUFTLFdBQVcsSUFBWTtFQUM5QixNQUFNLFFBQTJCLEVBQUU7RUFDbkMsTUFBTSxPQUFPLElBQUk7RUFDakIsS0FBSyxNQUFNLEtBQUssS0FBSyxRQUFRLENBQUMsZ0NBQWlDO0lBQzdELE1BQU0sT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUk7SUFDdEIsTUFBTSxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSTtJQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsT0FBTztNQUNuQixLQUFLLEdBQUcsQ0FBQztNQUNULE1BQU0sSUFBSSxDQUFDO1FBQUU7UUFBTTtNQUFZO0lBQ2pDO0VBQ0Y7RUFDQSwwRUFBMEU7RUFDMUUsSUFBSSxLQUFLLFFBQVEsQ0FBQyxvQkFBb0IsS0FBSyxRQUFRLENBQUMsV0FBVztJQUM3RCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSztNQUNqQixNQUFNLE9BQU8sQ0FBQztRQUFFLE1BQU07UUFBSSxhQUFhO01BQWU7SUFDeEQ7RUFDRjtFQUNBLE9BQU87QUFDVDtBQUVBLFNBQVMsWUFBWSxJQUFZO0VBQy9CLE1BQU0sU0FBNkIsRUFBRTtFQUNyQyxNQUFNLE9BQU8sSUFBSTtFQUNqQixLQUFLLE1BQU0sS0FBSyxLQUFLLFFBQVEsQ0FBQyw2REFBOEQ7SUFDMUYsTUFBTSxPQUFPLENBQUMsQ0FBQyxFQUFFO0lBQ2pCLElBQUksS0FBSyxHQUFHLENBQUMsT0FBTztJQUNwQixLQUFLLEdBQUcsQ0FBQztJQUNULE1BQU0sU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssQ0FBQztJQUNsQyxPQUFPLElBQUksQ0FBQztNQUNWO01BQ0EsTUFBTSxTQUFTLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHO01BQ3hELGFBQWEsQ0FBQyxTQUFTLEVBQUUsTUFBTTtJQUNqQztFQUNGO0VBQ0EsT0FBTztBQUNUO0FBRUEsU0FBUyxpQkFBaUIsSUFBWTtFQUNwQyxNQUFNLFFBQVEsS0FBSyxLQUFLLENBQUM7RUFDekIsSUFBSyxJQUFJLElBQUksR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLElBQUs7SUFDckMsTUFBTSxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSTtJQUMxQixJQUFJLEtBQUssVUFBVSxDQUFDLHNCQUFzQjtNQUN4QyxNQUFNLE9BQU8sS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLFFBQVEsYUFBYSxJQUFJO01BQ3BELElBQUksUUFBUSxDQUFDLEtBQUssVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxNQUFNLE9BQU87SUFDckU7RUFDRjtFQUNBLE9BQU87QUFDVDtBQUVBLFNBQVMsVUFBVSxJQUFZLEVBQUUsTUFBYztFQUM3QyxNQUFNLFVBQVUsYUFBYTtFQUM3QixNQUFNLFlBQVksZUFBZSxRQUFRO0VBQ3pDLE1BQU0sV0FBVyx3QkFBd0I7RUFDekMsTUFBTSxhQUFxQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLE9BQVMsQ0FBQztNQUNqRTtNQUNBLE1BQU0sbUJBQW1CO01BQ3pCLGFBQWEsR0FBRyxLQUFLLFVBQVUsQ0FBQztJQUNsQyxDQUFDO0VBRUQsZ0RBQWdEO0VBQ2hELEtBQUssTUFBTSxRQUFRLFdBQVk7SUFDN0IsSUFBSSxLQUFLLElBQUksS0FBSyxXQUFXO01BQzNCLEtBQUssT0FBTyxHQUFHO0lBQ2pCO0VBQ0Y7RUFFQSxPQUFPO0lBQ0w7SUFDQTtJQUNBO0lBQ0EsYUFBYSxpQkFBaUI7SUFDOUI7SUFDQSxRQUFRLFlBQVk7SUFDcEIsT0FBTyxXQUFXO0lBQ2xCLFVBQVUsY0FBYztJQUN4QixPQUFPLGVBQWU7SUFDdEIsU0FBUyxpQkFBaUI7RUFDNUI7QUFDRjtBQUVBLFNBQVM7RUFDUCxNQUFNLE1BQU0sSUFBSSxJQUFJLEtBQUssWUFBWSxHQUFHO0VBQ3hDLE1BQU0sUUFBeUIsRUFBRTtFQUNqQyxLQUFLLE1BQU0sU0FBUyxLQUFLLFdBQVcsQ0FBQyxLQUFNO0lBQ3pDLElBQUksQ0FBQyxNQUFNLE1BQU0sSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVM7SUFDdEYsTUFBTSxPQUFPLE1BQU0sSUFBSTtJQUN2QixNQUFNLFNBQVMsSUFBSSxjQUFjLE1BQU0sQ0FBQyxLQUFLLFlBQVksQ0FBQyxJQUFJLElBQUksTUFBTTtJQUN4RSxJQUFJLENBQUMsT0FBTyxRQUFRLENBQUMsd0JBQXdCO0lBQzdDLE1BQU0sSUFBSSxDQUFDLFVBQVUsTUFBTTtFQUM3QjtFQUNBLE1BQU0sUUFBUSxJQUFJLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBTTtNQUFDO01BQUc7S0FBRTtFQUMxRCxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsT0FBTyxLQUFLLEdBQUc7RUFDakYsT0FBTztBQUNUO0FBRUEsU0FBUyxpQkFBaUIsSUFBbUI7RUFDM0MsT0FBTztJQUNMLFNBQVMsS0FBSyxPQUFPO0lBQ3JCLFdBQVcsS0FBSyxTQUFTO0lBQ3pCLGdCQUFnQjtJQUNoQixhQUFhLEtBQUssV0FBVztJQUM3QixZQUFZLEtBQUssVUFBVSxDQUFDLE1BQU0sR0FBRyxLQUFLLFVBQVUsR0FBRztJQUN2RCxRQUFRLEtBQUssTUFBTSxDQUFDLE1BQU0sR0FBRyxLQUFLLE1BQU0sR0FBRztJQUMzQyxPQUFPLEtBQUssS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLEtBQUssR0FBRztJQUN4QyxVQUFVLEtBQUssUUFBUSxDQUFDLE1BQU0sR0FBRyxLQUFLLFFBQVEsR0FBRztJQUNqRCxhQUFhO01BQ1gsS0FBSztNQUNMLEtBQUs7TUFDTCxPQUFPLEtBQUssS0FBSztNQUNqQixTQUFTLEtBQUssT0FBTztNQUNyQixRQUFRLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsS0FBSztNQUM1RCxRQUFRLEtBQUssU0FBUztJQUN4QjtFQUNGO0FBQ0Y7QUFFQSxTQUFTO0VBQ1AsTUFBTSxRQUFRO0VBQ2QsTUFBTSxlQUFlLE1BQU0sR0FBRyxDQUFDO0VBQy9CLE1BQU0sVUFBVSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQVMsQ0FBQztNQUNuQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLFFBQVE7TUFDL0MsU0FBUztRQUFDO1VBQUUsTUFBTSxLQUFLLFNBQVM7VUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLFFBQVE7UUFBQztPQUFFO01BQ3BGLGNBQWM7UUFBQyxLQUFLLE9BQU87T0FBQztJQUM5QixDQUFDO0VBRUQsT0FBTztJQUNMLGVBQWU7SUFDZixhQUFhO0lBQ2IsU0FBUztJQUNULGFBQWE7SUFDYixRQUFRO0lBQ1IsU0FBUztJQUNULFVBQVU7SUFDVixZQUFZO0lBQ1osYUFBYTtNQUNYLFNBQVM7TUFDVCxlQUFlO01BQ2YsV0FBVztJQUNiO0lBQ0E7SUFDQTtFQUNGO0FBQ0Y7QUFFQSwrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLElBQUk7QUFDSixPQUFPLE1BQU0sV0FBdUMsSUFBSSxNQUN0RCxDQUFDLEdBQ0Q7RUFDRSxLQUFJLE9BQU8sRUFBRSxJQUFJO0lBQ2YsSUFBSSxDQUFDLFdBQVcsWUFBWTtJQUM1QixPQUFPLEFBQUUsU0FBaUQsQ0FBQyxLQUFlO0VBQzVFO0VBQ0E7SUFDRSxJQUFJLENBQUMsV0FBVyxZQUFZO0lBQzVCLE9BQU8sUUFBUSxPQUFPLENBQUM7RUFDekI7RUFDQSwwQkFBeUIsT0FBTyxFQUFFLElBQUk7SUFDcEMsSUFBSSxDQUFDLFdBQVcsWUFBWTtJQUM1QixPQUFPLFFBQVEsd0JBQXdCLENBQUMsV0FBWTtFQUN0RDtBQUNGLEdBQ0EifQ==
|
|
1
|
+
/**
|
|
2
|
+
* @openelement/ui - Generated Package Manifest
|
|
3
|
+
*
|
|
4
|
+
* Imports the build-time generated manifest JSON. The generator lives in
|
|
5
|
+
* tools/generate-ui-manifest.ts and is run via `deno task generate:ui-manifest`.
|
|
6
|
+
*/ import manifestData from './generated-manifest.json' with {
|
|
7
|
+
type: 'json'
|
|
8
|
+
};
|
|
9
|
+
export const manifest = manifestData;
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy91aS9zcmMvbWFuaWZlc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAb3BlbmVsZW1lbnQvdWkgLSBHZW5lcmF0ZWQgUGFja2FnZSBNYW5pZmVzdFxuICpcbiAqIEltcG9ydHMgdGhlIGJ1aWxkLXRpbWUgZ2VuZXJhdGVkIG1hbmlmZXN0IEpTT04uIFRoZSBnZW5lcmF0b3IgbGl2ZXMgaW5cbiAqIHRvb2xzL2dlbmVyYXRlLXVpLW1hbmlmZXN0LnRzIGFuZCBpcyBydW4gdmlhIGBkZW5vIHRhc2sgZ2VuZXJhdGU6dWktbWFuaWZlc3RgLlxuICovXG5cbmltcG9ydCB0eXBlIHsgT3BlbkVsZW1lbnRQYWNrYWdlTWFuaWZlc3QgfSBmcm9tICdAb3BlbmVsZW1lbnQvcHJvdG9jb2wvbWFuaWZlc3QnO1xuaW1wb3J0IG1hbmlmZXN0RGF0YSBmcm9tICcuL2dlbmVyYXRlZC1tYW5pZmVzdC5qc29uJyB3aXRoIHsgdHlwZTogJ2pzb24nIH07XG5cbmV4cG9ydCBjb25zdCBtYW5pZmVzdDogT3BlbkVsZW1lbnRQYWNrYWdlTWFuaWZlc3QgPSBtYW5pZmVzdERhdGEgYXMgT3BlbkVsZW1lbnRQYWNrYWdlTWFuaWZlc3Q7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0NBS0MsR0FHRCxPQUFPLGtCQUFrQixpQ0FBaUM7RUFBRSxNQUFNO0FBQU8sRUFBRTtBQUUzRSxPQUFPLE1BQU0sV0FBdUMsYUFBMkMifQ==
|
package/src/open-button.js
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* ```
|
|
21
21
|
*/ import { OpenElement } from '@openelement/element';
|
|
22
22
|
import { StyleSheet } from '@openelement/core/style-sheet';
|
|
23
|
-
import { escapeAttr } from '@openelement/core';
|
|
23
|
+
import { escapeAttr } from '@openelement/core/static';
|
|
24
24
|
export const tagName = 'open-button';
|
|
25
25
|
const sheet = new StyleSheet();
|
|
26
26
|
sheet.replaceSync(`
|
|
@@ -216,4 +216,4 @@ export default OpenButton;
|
|
|
216
216
|
if (typeof customElements !== 'undefined' && !customElements.get(tagName)) {
|
|
217
217
|
customElements.define(tagName, OpenButton);
|
|
218
218
|
}
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy91aS9zcmMvb3Blbi1idXR0b24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4SW1wb3J0U291cmNlIEBvcGVuZWxlbWVudC9jb3JlICovXG4vKipcbiAqIEBvcGVuZWxlbWVudC91aSAtIG9wZW4tYnV0dG9uXG4gKlxuICogTWluaW1hbCBidXR0b24gY29tcG9uZW50IGZvbGxvd2luZyBTd2lzcyBJbnRlcm5hdGlvbmFsIFN0eWxlLlxuICogUHVyZSBCJlcgZGVzaWduIHdpdGggc3VidGxlIGhvdmVyIHN0YXRlcy5cbiAqXG4gKiB2MC4yMC4wOiBNaWdyYXRlZCBmcm9tIERzZExpdEVsZW1lbnQgdG8gRHNkRWxlbWVudCAoT2NlYW4gY29tcG9uZW50KS5cbiAqIHYwLjI0LjE6IE1pZ3JhdGVkIGZyb20gaHRtbGBgIHRlbXBsYXRlIHRvIEpTWCAoQURSLTAwNTcpLlxuICpcbiAqIFZhcmlhbnRzOiBkZWZhdWx0IChvdXRsaW5lZCksIHByaW1hcnkgKGZpbGxlZCksIGdob3N0IChubyBib3JkZXIpLCBhY2NlbnQgKGdyYWRpZW50KVxuICogU2l6ZXM6IHNtLCBtZCAoZGVmYXVsdCksIGxnXG4gKlxuICogQGNzc3BhcnQgY29udHJvbCAtVGhlIGJ1dHRvbiBvciBhbmNob3IgZWxlbWVudFxuICpcbiAqIFVzYWdlOlxuICogYGBgaHRtbFxuICogPG9wZW4tYnV0dG9uPkNsaWNrIG1lPC9vcGVuLWJ1dHRvbj5cbiAqIDxvcGVuLWJ1dHRvbiB2YXJpYW50PVwicHJpbWFyeVwiPlN1Ym1pdDwvb3Blbi1idXR0b24+XG4gKiA8b3Blbi1idXR0b24gc2l6ZT1cInNtXCIgZGlzYWJsZWQ+U21hbGw8L29wZW4tYnV0dG9uPlxuICogYGBgXG4gKi9cblxuaW1wb3J0IHsgT3BlbkVsZW1lbnQgfSBmcm9tICdAb3BlbmVsZW1lbnQvZWxlbWVudCc7XG5pbXBvcnQgeyBTdHlsZVNoZWV0LCB0eXBlIFN0eWxlU2hlZXRMaWtlIH0gZnJvbSAnQG9wZW5lbGVtZW50L2NvcmUvc3R5bGUtc2hlZXQnO1xuaW1wb3J0IHsgZXNjYXBlQXR0ciB9IGZyb20gJ0BvcGVuZWxlbWVudC9jb3JlJztcblxuZXhwb3J0IGNvbnN0IHRhZ05hbWUgPSAnb3Blbi1idXR0b24nO1xuXG5jb25zdCBzaGVldDogU3R5bGVTaGVldExpa2UgPSBuZXcgU3R5bGVTaGVldCgpO1xuc2hlZXQucmVwbGFjZVN5bmMoYFxuICA6aG9zdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgLmJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXNpemUtMik7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc2Fucyk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LTgpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItc2l6ZS0xKSBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYm9yZGVyKSA3MiUsIHZhcigtLWJyYW5kKSk7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJnLWVsZXZhdGVkKSA3OCUsIHRyYW5zcGFyZW50KTtcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1idG4tcmFkaXVzKTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1ncmF5LTApIDcyJSwgdHJhbnNwYXJlbnQpO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLWVhc2UtMykgdmFyKC0tZHVyYXRpb24tMiksIGJvcmRlci1jb2xvciB2YXIoLS1lYXNlLTMpIHZhcigtLWR1cmF0aW9uLTIpLCBiYWNrZ3JvdW5kIHZhcigtLWVhc2UtMykgdmFyKC0tZHVyYXRpb24tMiksIHRyYW5zZm9ybSB2YXIoLS1lYXNlLTMpIHZhcigtLWR1cmF0aW9uLTIpLCBib3gtc2hhZG93IHZhcigtLWVhc2UtMykgdmFyKC0tZHVyYXRpb24tMik7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgfVxuXG4gIC8qIFNpemVzICovXG4gIC5idG4tLXNtIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1zaXplLTEpIHZhcigtLXNpemUtMyk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMCk7XG4gICAgbWluLWhlaWdodDogMzBweDtcbiAgfVxuXG4gIC5idG4tLW1kIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1zaXplLTIpIHZhcigtLXNpemUtNCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMSk7XG4gICAgbWluLWhlaWdodDogMzhweDtcbiAgfVxuXG4gIC5idG4tLWxnIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1zaXplLTMpIHZhcigtLXNpemUtNSk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMik7XG4gICAgbWluLWhlaWdodDogNDhweDtcbiAgfVxuXG4gIC8qIFZhcmlhbnRzICovXG4gIC5idG4tLWRlZmF1bHQ6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1icmFuZC1kZWVwKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kLWxpZ2h0KTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnJhbmQtcGFsZSkgNTIlLCB2YXIoLS1iZy1lbGV2YXRlZCkpO1xuICB9XG5cbiAgLmJ0bi0tcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYnJhbmQpLCB2YXIoLS1icmFuZC1saWdodCkpO1xuICAgIGNvbG9yOiB2YXIoLS1vbi1icmFuZCk7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiAwIHZhcigtLXNpemUtMikgdmFyKC0tc2l6ZS01KSBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnJhbmQpIDIyJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgLmJ0bi0tcHJpbWFyeTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYnJhbmQtaG92ZXIpLCB2YXIoLS1icmFuZC1saWdodCkpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGModmFyKC0tYm9yZGVyLXNpemUtMSkgKiAtMSkpO1xuICAgIGJveC1zaGFkb3c6IDAgdmFyKC0tc2l6ZS0zKSB2YXIoLS1zaXplLTYpIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1icmFuZCkgMjglLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICAuYnRuLS1naG9zdCB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5idG4tLWdob3N0OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnJhbmQtcGFsZSkgMzglLCB0cmFuc3BhcmVudCk7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5idG4tLWFjY2VudCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQpO1xuICAgIGNvbG9yOiB2YXIoLS1vbi1icmFuZCk7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAuYnRuLS1hY2NlbnQ6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4wNSk7XG4gIH1cbiAgLmJ0bi0tYWNjZW50OmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0xKTtcbiAgfVxuXG4gIC8qIFN0YXRlcyAqL1xuICAuYnRuOmRpc2FibGVkLFxuICAuYnRuW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gIC5idG46Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWJyYW5kLCB2YXIoLS1pbmRpZ28tNikpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoZGlzYWJsZWQpKSAuYnRuIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuYCk7XG5cbmV4cG9ydCBjbGFzcyBPcGVuQnV0dG9uIGV4dGVuZHMgT3BlbkVsZW1lbnQge1xuICBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzID0gW3NoZWV0XTtcbiAgc3RhdGljIG92ZXJyaWRlIGRlbGVnYXRlc0ZvY3VzID0gdHJ1ZTtcbiAgc3RhdGljIG92ZXJyaWRlIGZvcm1Bc3NvY2lhdGVkID0gdHJ1ZTtcbiAgc3RhdGljIG92ZXJyaWRlIG9ic2VydmVkQXR0cmlidXRlcyA9IFsndmFyaWFudCcsICdzaXplJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAndGFyZ2V0JywgJ3R5cGUnXTtcblxuICBvdmVycmlkZSByZW5kZXIoKTogUmV0dXJuVHlwZTx0eXBlb2YgT3BlbkVsZW1lbnQucHJvdG90eXBlLnJlbmRlcj4ge1xuICAgIGNvbnN0IHYgPSB0aGlzLmdldEF0dHJpYnV0ZSgndmFyaWFudCcpIHx8ICdkZWZhdWx0JztcbiAgICBjb25zdCBzID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ3NpemUnKSB8fCAnbWQnO1xuICAgIGNvbnN0IGQgPSB0aGlzLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICBjb25zdCBocmVmID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSB8fCAnJztcbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmdldEF0dHJpYnV0ZSgndGFyZ2V0JykgfHwgJyc7XG4gICAgY29uc3QgdHlwZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd0eXBlJykgfHwgJ2J1dHRvbic7XG4gICAgY29uc3QgY2xhc3NlcyA9IGBidG4gYnRuLS0ke3Z9IGJ0bi0tJHtzfWA7XG5cbiAgICBpZiAoaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGFcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXN9XG4gICAgICAgICAgcGFydD0nY29udHJvbCdcbiAgICAgICAgICBocmVmPXtkID8gJycgOiBocmVmfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0IHx8IHVuZGVmaW5lZH1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtkID8gJ3RydWUnIDogdW5kZWZpbmVkfVxuICAgICAgICAgIHJlbD17dGFyZ2V0ID09PSAnX2JsYW5rJyA/ICdub29wZW5lciBub3JlZmVycmVyJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLl9oYW5kbGVDbGlja31cbiAgICAgICAgPlxuICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPC9hPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXN9XG4gICAgICAgIHBhcnQ9J2NvbnRyb2wnXG4gICAgICAgIGRpc2FibGVkPXtkfVxuICAgICAgICB0eXBlPXt0eXBlfVxuICAgICAgICBvbkNsaWNrPXt0aGlzLl9oYW5kbGVDbGlja31cbiAgICAgID5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9idXR0b24+XG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lOiBzdHJpbmcsIG9sZDogc3RyaW5nIHwgbnVsbCwgdmFsOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKG9sZCA9PT0gdmFsKSByZXR1cm47XG4gICAgLy8gaHJlZiBjaGFuZ2UgbWF5IHN3aXRjaCBlbGVtZW50IHR5cGUgKGEgdnMgYnV0dG9uKSAtZnVsbCByZS1yZW5kZXJcbiAgICBpZiAobmFtZSA9PT0gJ2hyZWYnKSB7XG4gICAgICB0aGlzLl9yZVJlbmRlcigpO1xuICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ2Rpc2FibGVkJykge1xuICAgICAgdGhpcy5fc3luY0RPTSgpO1xuICAgICAgdGhpcy5fdXBkYXRlU3RhdGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc3luY0RPTSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3N5bmNET00oKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5idG4nKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGNvbnN0IHYgPSB0aGlzLmdldEF0dHJpYnV0ZSgndmFyaWFudCcpIHx8ICdkZWZhdWx0JztcbiAgICBjb25zdCBzID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ3NpemUnKSB8fCAnbWQnO1xuICAgIGVsLmNsYXNzTmFtZSA9IGBidG4gYnRuLS0ke3Z9IGJ0bi0tJHtzfWA7XG4gICAgaWYgKGVsIGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQpIHtcbiAgICAgIGVsLmRpc2FibGVkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7XG4gICAgfVxuICAgIGlmIChlbCBpbnN0YW5jZW9mIEhUTUxBbmNob3JFbGVtZW50ICYmIHRoaXMuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtZGlzYWJsZWQnLCAndHJ1ZScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlUmVuZGVyKCk6IHZvaWQge1xuICAgIC8vIE5PVEU6IFdlIGRvIE5PVCBjYXB0dXJlIGFzc2lnbmVkTm9kZXMgYmVmb3JlIGlubmVySFRNTCByZXBsYWNlbWVudC5cbiAgICAvLyBMaWdodCBET00gY2hpbGRyZW4gcmVtYWluIGluIHRoZSBob3N0IGVsZW1lbnQgYW5kIGF1dG9tYXRpY2FsbHlcbiAgICAvLyByZS1wcm9qZWN0IHRvIHRoZSBuZXcgPHNsb3Q+IC0gbm8gbWFudWFsIERPTSBtYW5pcHVsYXRpb24gbmVlZGVkLlxuICAgIC8vIFRoZSBwcmV2aW91cyBhcHByb2FjaCAocmVwbGFjZUNoaWxkcmVuKSBpbmNvcnJlY3RseSBtb3ZlZCBsaWdodCBET01cbiAgICAvLyBjaGlsZHJlbiBpbnRvIHRoZSBzaGFkb3cgcm9vdCwgYnJlYWtpbmcgc2xvdCBwcm9qZWN0aW9uLlxuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTdGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2ludGVybmFscz8uc3RhdGVzKSByZXR1cm47XG4gICAgaWYgKHRoaXMuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLl9pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnZW5hYmxlZCcpO1xuICAgICAgdGhpcy5faW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2Rpc2FibGVkJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2ludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdkaXNhYmxlZCcpO1xuICAgICAgdGhpcy5faW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2VuYWJsZWQnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVDbGljayhfZTogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdvcGVuLWNsaWNrJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF9lc2NBdHRyID0gZXNjYXBlQXR0cjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgT3BlbkJ1dHRvbjtcblxuLy8gR3VhcmQ6IGlkZW1wb3RlbnQgYWNyb3NzIFNTUiBwYXRoc1xuaWYgKHR5cGVvZiBjdXN0b21FbGVtZW50cyAhPT0gJ3VuZGVmaW5lZCcgJiYgIWN1c3RvbUVsZW1lbnRzLmdldCh0YWdOYW1lKSkge1xuICBjdXN0b21FbGVtZW50cy5kZWZpbmUodGFnTmFtZSwgT3BlbkJ1dHRvbik7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDLEdBQ3ZDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW9CQyxHQUVELFNBQVMsV0FBVyxRQUFRLHVCQUF1QjtBQUNuRCxTQUFTLFVBQVUsUUFBNkIsZ0NBQWdDO0FBQ2hGLFNBQVMsVUFBVSxRQUFRLG9CQUFvQjtBQUUvQyxPQUFPLE1BQU0sVUFBVSxjQUFjO0FBRXJDLE1BQU0sUUFBd0IsSUFBSTtBQUNsQyxNQUFNLFdBQVcsQ0FBQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF5R25CLENBQUM7QUFFRCxPQUFPLE1BQU0sbUJBQW1CO0VBQzlCLE9BQWdCLFNBQVM7SUFBQztHQUFNLENBQUM7RUFDakMsT0FBZ0IsaUJBQWlCLEtBQUs7RUFDdEMsT0FBZ0IsaUJBQWlCLEtBQUs7RUFDdEMsT0FBZ0IscUJBQXFCO0lBQUM7SUFBVztJQUFRO0lBQVk7SUFBUTtJQUFVO0dBQU8sQ0FBQztFQUV0RixTQUEwRDtJQUNqRSxNQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjO0lBQzFDLE1BQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVc7SUFDdkMsTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENB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
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy91aS9zcmMvb3Blbi1idXR0b24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4SW1wb3J0U291cmNlIEBvcGVuZWxlbWVudC9jb3JlICovXG4vKipcbiAqIEBvcGVuZWxlbWVudC91aSAtIG9wZW4tYnV0dG9uXG4gKlxuICogTWluaW1hbCBidXR0b24gY29tcG9uZW50IGZvbGxvd2luZyBTd2lzcyBJbnRlcm5hdGlvbmFsIFN0eWxlLlxuICogUHVyZSBCJlcgZGVzaWduIHdpdGggc3VidGxlIGhvdmVyIHN0YXRlcy5cbiAqXG4gKiB2MC4yMC4wOiBNaWdyYXRlZCBmcm9tIERzZExpdEVsZW1lbnQgdG8gRHNkRWxlbWVudCAoT2NlYW4gY29tcG9uZW50KS5cbiAqIHYwLjI0LjE6IE1pZ3JhdGVkIGZyb20gaHRtbGBgIHRlbXBsYXRlIHRvIEpTWCAoQURSLTAwNTcpLlxuICpcbiAqIFZhcmlhbnRzOiBkZWZhdWx0IChvdXRsaW5lZCksIHByaW1hcnkgKGZpbGxlZCksIGdob3N0IChubyBib3JkZXIpLCBhY2NlbnQgKGdyYWRpZW50KVxuICogU2l6ZXM6IHNtLCBtZCAoZGVmYXVsdCksIGxnXG4gKlxuICogQGNzc3BhcnQgY29udHJvbCAtVGhlIGJ1dHRvbiBvciBhbmNob3IgZWxlbWVudFxuICpcbiAqIFVzYWdlOlxuICogYGBgaHRtbFxuICogPG9wZW4tYnV0dG9uPkNsaWNrIG1lPC9vcGVuLWJ1dHRvbj5cbiAqIDxvcGVuLWJ1dHRvbiB2YXJpYW50PVwicHJpbWFyeVwiPlN1Ym1pdDwvb3Blbi1idXR0b24+XG4gKiA8b3Blbi1idXR0b24gc2l6ZT1cInNtXCIgZGlzYWJsZWQ+U21hbGw8L29wZW4tYnV0dG9uPlxuICogYGBgXG4gKi9cblxuaW1wb3J0IHsgT3BlbkVsZW1lbnQgfSBmcm9tICdAb3BlbmVsZW1lbnQvZWxlbWVudCc7XG5pbXBvcnQgeyBTdHlsZVNoZWV0LCB0eXBlIFN0eWxlU2hlZXRMaWtlIH0gZnJvbSAnQG9wZW5lbGVtZW50L2NvcmUvc3R5bGUtc2hlZXQnO1xuaW1wb3J0IHsgZXNjYXBlQXR0ciB9IGZyb20gJ0BvcGVuZWxlbWVudC9jb3JlL3N0YXRpYyc7XG5cbmV4cG9ydCBjb25zdCB0YWdOYW1lID0gJ29wZW4tYnV0dG9uJztcblxuY29uc3Qgc2hlZXQ6IFN0eWxlU2hlZXRMaWtlID0gbmV3IFN0eWxlU2hlZXQoKTtcbnNoZWV0LnJlcGxhY2VTeW5jKGBcbiAgOmhvc3Qge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuXG4gIC5idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1zaXplLTIpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXNhbnMpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC04KTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogdmFyKC0tYm9yZGVyLXNpemUtMSkgc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJvcmRlcikgNzIlLCB2YXIoLS1icmFuZCkpO1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1iZy1lbGV2YXRlZCkgNzglLCB0cmFuc3BhcmVudCk7XG4gICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnRuLXJhZGl1cyk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3JheS0wKSA3MiUsIHRyYW5zcGFyZW50KTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS1lYXNlLTMpIHZhcigtLWR1cmF0aW9uLTIpLCBib3JkZXItY29sb3IgdmFyKC0tZWFzZS0zKSB2YXIoLS1kdXJhdGlvbi0yKSwgYmFja2dyb3VuZCB2YXIoLS1lYXNlLTMpIHZhcigtLWR1cmF0aW9uLTIpLCB0cmFuc2Zvcm0gdmFyKC0tZWFzZS0zKSB2YXIoLS1kdXJhdGlvbi0yKSwgYm94LXNoYWRvdyB2YXIoLS1lYXNlLTMpIHZhcigtLWR1cmF0aW9uLTIpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIH1cblxuICAvKiBTaXplcyAqL1xuICAuYnRuLS1zbSB7XG4gICAgcGFkZGluZzogdmFyKC0tc2l6ZS0xKSB2YXIoLS1zaXplLTMpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTApO1xuICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gIH1cblxuICAuYnRuLS1tZCB7XG4gICAgcGFkZGluZzogdmFyKC0tc2l6ZS0yKSB2YXIoLS1zaXplLTQpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTEpO1xuICAgIG1pbi1oZWlnaHQ6IDM4cHg7XG4gIH1cblxuICAuYnRuLS1sZyB7XG4gICAgcGFkZGluZzogdmFyKC0tc2l6ZS0zKSB2YXIoLS1zaXplLTUpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTIpO1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gIH1cblxuICAvKiBWYXJpYW50cyAqL1xuICAuYnRuLS1kZWZhdWx0OmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tYnJhbmQtZGVlcCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZC1saWdodCk7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyYW5kLXBhbGUpIDUyJSwgdmFyKC0tYmctZWxldmF0ZWQpKTtcbiAgfVxuXG4gIC5idG4tLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJyYW5kKSwgdmFyKC0tYnJhbmQtbGlnaHQpKTtcbiAgICBjb2xvcjogdmFyKC0tb24tYnJhbmQpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogMCB2YXIoLS1zaXplLTIpIHZhcigtLXNpemUtNSkgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyYW5kKSAyMiUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIC5idG4tLXByaW1hcnk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJyYW5kLWhvdmVyKSwgdmFyKC0tYnJhbmQtbGlnaHQpKTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKHZhcigtLWJvcmRlci1zaXplLTEpICogLTEpKTtcbiAgICBib3gtc2hhZG93OiAwIHZhcigtLXNpemUtMykgdmFyKC0tc2l6ZS02KSBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnJhbmQpIDI4JSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgLmJ0bi0tZ2hvc3Qge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAuYnRuLS1naG9zdDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyYW5kLXBhbGUpIDM4JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAuYnRuLS1hY2NlbnQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJyYW5kKTtcbiAgICBjb2xvcjogdmFyKC0tb24tYnJhbmQpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLmJ0bi0tYWNjZW50OmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgZmlsdGVyOiBicmlnaHRuZXNzKDEuMDUpO1xuICB9XG4gIC5idG4tLWFjY2VudDphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMSk7XG4gIH1cblxuICAvKiBTdGF0ZXMgKi9cbiAgLmJ0bjpkaXNhYmxlZCxcbiAgLmJ0blthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAuYnRuOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1icmFuZCwgdmFyKC0taW5kaWdvLTYpKTtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKGRpc2FibGVkKSkgLmJ0biB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbmApO1xuXG5leHBvcnQgY2xhc3MgT3BlbkJ1dHRvbiBleHRlbmRzIE9wZW5FbGVtZW50IHtcbiAgc3RhdGljIG92ZXJyaWRlIHN0eWxlcyA9IFtzaGVldF07XG4gIHN0YXRpYyBvdmVycmlkZSBkZWxlZ2F0ZXNGb2N1cyA9IHRydWU7XG4gIHN0YXRpYyBvdmVycmlkZSBmb3JtQXNzb2NpYXRlZCA9IHRydWU7XG4gIHN0YXRpYyBvdmVycmlkZSBvYnNlcnZlZEF0dHJpYnV0ZXMgPSBbJ3ZhcmlhbnQnLCAnc2l6ZScsICdkaXNhYmxlZCcsICdocmVmJywgJ3RhcmdldCcsICd0eXBlJ107XG5cbiAgb3ZlcnJpZGUgcmVuZGVyKCk6IFJldHVyblR5cGU8dHlwZW9mIE9wZW5FbGVtZW50LnByb3RvdHlwZS5yZW5kZXI+IHtcbiAgICBjb25zdCB2ID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZhcmlhbnQnKSB8fCAnZGVmYXVsdCc7XG4gICAgY29uc3QgcyA9IHRoaXMuZ2V0QXR0cmlidXRlKCdzaXplJykgfHwgJ21kJztcbiAgICBjb25zdCBkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7XG4gICAgY29uc3QgaHJlZiA9IHRoaXMuZ2V0QXR0cmlidXRlKCdocmVmJykgfHwgJyc7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ3RhcmdldCcpIHx8ICcnO1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmdldEF0dHJpYnV0ZSgndHlwZScpIHx8ICdidXR0b24nO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBgYnRuIGJ0bi0tJHt2fSBidG4tLSR7c31gO1xuXG4gICAgaWYgKGhyZWYpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxhXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzfVxuICAgICAgICAgIHBhcnQ9J2NvbnRyb2wnXG4gICAgICAgICAgaHJlZj17ZCA/ICcnIDogaHJlZn1cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldCB8fCB1bmRlZmluZWR9XG4gICAgICAgICAgYXJpYS1kaXNhYmxlZD17ZCA/ICd0cnVlJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICByZWw9e3RhcmdldCA9PT0gJ19ibGFuaycgPyAnbm9vcGVuZXIgbm9yZWZlcnJlcicgOiB1bmRlZmluZWR9XG4gICAgICAgICAgb25DbGljaz17dGhpcy5faGFuZGxlQ2xpY2t9XG4gICAgICAgID5cbiAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgIDwvYT5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzfVxuICAgICAgICBwYXJ0PSdjb250cm9sJ1xuICAgICAgICBkaXNhYmxlZD17ZH1cbiAgICAgICAgdHlwZT17dHlwZX1cbiAgICAgICAgb25DbGljaz17dGhpcy5faGFuZGxlQ2xpY2t9XG4gICAgICA+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvYnV0dG9uPlxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZTogc3RyaW5nLCBvbGQ6IHN0cmluZyB8IG51bGwsIHZhbDogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChvbGQgPT09IHZhbCkgcmV0dXJuO1xuICAgIC8vIGhyZWYgY2hhbmdlIG1heSBzd2l0Y2ggZWxlbWVudCB0eXBlIChhIHZzIGJ1dHRvbikgLWZ1bGwgcmUtcmVuZGVyXG4gICAgaWYgKG5hbWUgPT09ICdocmVmJykge1xuICAgICAgdGhpcy5fcmVSZW5kZXIoKTtcbiAgICB9IGVsc2UgaWYgKG5hbWUgPT09ICdkaXNhYmxlZCcpIHtcbiAgICAgIHRoaXMuX3N5bmNET00oKTtcbiAgICAgIHRoaXMuX3VwZGF0ZVN0YXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3N5bmNET00oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zeW5jRE9NKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcuYnRuJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGlmICghZWwpIHJldHVybjtcbiAgICBjb25zdCB2ID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZhcmlhbnQnKSB8fCAnZGVmYXVsdCc7XG4gICAgY29uc3QgcyA9IHRoaXMuZ2V0QXR0cmlidXRlKCdzaXplJykgfHwgJ21kJztcbiAgICBlbC5jbGFzc05hbWUgPSBgYnRuIGJ0bi0tJHt2fSBidG4tLSR7c31gO1xuICAgIGlmIChlbCBpbnN0YW5jZW9mIEhUTUxCdXR0b25FbGVtZW50KSB7XG4gICAgICBlbC5kaXNhYmxlZCA9IHRoaXMuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgIH1cbiAgICBpZiAoZWwgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCAmJiB0aGlzLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkge1xuICAgICAgZWwuc2V0QXR0cmlidXRlKCdhcmlhLWRpc2FibGVkJywgJ3RydWUnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZVJlbmRlcigpOiB2b2lkIHtcbiAgICAvLyBOT1RFOiBXZSBkbyBOT1QgY2FwdHVyZSBhc3NpZ25lZE5vZGVzIGJlZm9yZSBpbm5lckhUTUwgcmVwbGFjZW1lbnQuXG4gICAgLy8gTGlnaHQgRE9NIGNoaWxkcmVuIHJlbWFpbiBpbiB0aGUgaG9zdCBlbGVtZW50IGFuZCBhdXRvbWF0aWNhbGx5XG4gICAgLy8gcmUtcHJvamVjdCB0byB0aGUgbmV3IDxzbG90PiAtIG5vIG1hbnVhbCBET00gbWFuaXB1bGF0aW9uIG5lZWRlZC5cbiAgICAvLyBUaGUgcHJldmlvdXMgYXBwcm9hY2ggKHJlcGxhY2VDaGlsZHJlbikgaW5jb3JyZWN0bHkgbW92ZWQgbGlnaHQgRE9NXG4gICAgLy8gY2hpbGRyZW4gaW50byB0aGUgc2hhZG93IHJvb3QsIGJyZWFraW5nIHNsb3QgcHJvamVjdGlvbi5cbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU3RhdGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pbnRlcm5hbHM/LnN0YXRlcykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkge1xuICAgICAgdGhpcy5faW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ2VuYWJsZWQnKTtcbiAgICAgIHRoaXMuX2ludGVybmFscy5zdGF0ZXMuYWRkKCdkaXNhYmxlZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnZGlzYWJsZWQnKTtcbiAgICAgIHRoaXMuX2ludGVybmFscy5zdGF0ZXMuYWRkKCdlbmFibGVkJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xpY2soX2U6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnb3Blbi1jbGljaycsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZXNjQXR0ciA9IGVzY2FwZUF0dHI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9wZW5CdXR0b247XG5cbi8vIEd1YXJkOiBpZGVtcG90ZW50IGFjcm9zcyBTU1IgcGF0aHNcbmlmICh0eXBlb2YgY3VzdG9tRWxlbWVudHMgIT09ICd1bmRlZmluZWQnICYmICFjdXN0b21FbGVtZW50cy5nZXQodGFnTmFtZSkpIHtcbiAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKHRhZ05hbWUsIE9wZW5CdXR0b24pO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1QyxHQUN2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FvQkMsR0FFRCxTQUFTLFdBQVcsUUFBUSx1QkFBdUI7QUFDbkQsU0FBUyxVQUFVLFFBQTZCLGdDQUFnQztBQUNoRixTQUFTLFVBQVUsUUFBUSwyQkFBMkI7QUFFdEQsT0FBTyxNQUFNLFVBQVUsY0FBYztBQUVyQyxNQUFNLFFBQXdCLElBQUk7QUFDbEMsTUFBTSxXQUFXLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUduQixDQUFDO0FBRUQsT0FBTyxNQUFNLG1CQUFtQjtFQUM5QixPQUFnQixTQUFTO0lBQUM7R0FBTSxDQUFDO0VBQ2pDLE9BQWdCLGlCQUFpQixLQUFLO0VBQ3RDLE9BQWdCLGlCQUFpQixLQUFLO0VBQ3RDLE9BQWdCLHFCQUFxQjtJQUFDO0lBQVc7SUFBUTtJQUFZO0lBQVE7SUFBVTtHQUFPLENBQUM7RUFFdEYsU0FBMEQ7SUFDakUsTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYztJQUMxQyxNQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXO0lBQ3ZDLE1BQU0sSUFBSSxJQUFJLENBQUMs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
|
package/src/open-code-block.d.ts
CHANGED
|
@@ -24,8 +24,6 @@ declare const sheet: StyleSheetLike;
|
|
|
24
24
|
export declare class OpenCodeBlock extends OpenElement {
|
|
25
25
|
static override styles: [];
|
|
26
26
|
private _copyState: any;
|
|
27
|
-
private _copyTimer: any;
|
|
28
|
-
private _highlightTimer: any;
|
|
29
27
|
private _highlightedInShadow: any;
|
|
30
28
|
private _highlightRetries: any;
|
|
31
29
|
private static MAX_HIGHLIGHT_RETRIES: any;
|
|
@@ -33,7 +31,6 @@ export declare class OpenCodeBlock extends OpenElement {
|
|
|
33
31
|
override connectedCallback(): void;
|
|
34
32
|
override onDsdHydrated(): void;
|
|
35
33
|
override onCsrRendered(): void;
|
|
36
|
-
override disconnectedCallback(): void;
|
|
37
34
|
private _prismGlobal: any;
|
|
38
35
|
private _tryHighlight: any;
|
|
39
36
|
private _injectHighlighted: any;
|
package/src/open-code-block.js
CHANGED
|
@@ -127,8 +127,6 @@ export class OpenCodeBlock extends OpenElement {
|
|
|
127
127
|
sheet
|
|
128
128
|
];
|
|
129
129
|
_copyState = 'idle';
|
|
130
|
-
_copyTimer;
|
|
131
|
-
_highlightTimer;
|
|
132
130
|
_highlightedInShadow = false;
|
|
133
131
|
_highlightRetries = 0;
|
|
134
132
|
static MAX_HIGHLIGHT_RETRIES = 120;
|
|
@@ -151,17 +149,6 @@ export class OpenCodeBlock extends OpenElement {
|
|
|
151
149
|
super.onCsrRendered();
|
|
152
150
|
this._tryHighlight();
|
|
153
151
|
}
|
|
154
|
-
disconnectedCallback() {
|
|
155
|
-
super.disconnectedCallback();
|
|
156
|
-
if (this._copyTimer !== undefined) {
|
|
157
|
-
clearTimeout(this._copyTimer);
|
|
158
|
-
this._copyTimer = undefined;
|
|
159
|
-
}
|
|
160
|
-
if (this._highlightTimer !== undefined) {
|
|
161
|
-
clearTimeout(this._highlightTimer);
|
|
162
|
-
this._highlightTimer = undefined;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
152
|
_prismGlobal() {
|
|
166
153
|
return globalThis.Prism;
|
|
167
154
|
}
|
|
@@ -171,7 +158,7 @@ export class OpenCodeBlock extends OpenElement {
|
|
|
171
158
|
if (this._highlightRetries++ < OpenCodeBlock.MAX_HIGHLIGHT_RETRIES) {
|
|
172
159
|
// Exponential backoff: 10, 20, 40, 80, 160, 320, 500ms cap
|
|
173
160
|
const delay = Math.min(10 * Math.pow(2, Math.min(this._highlightRetries, 6)), 500);
|
|
174
|
-
this.
|
|
161
|
+
this._setTimeout(()=>this._tryHighlight(), delay);
|
|
175
162
|
}
|
|
176
163
|
return;
|
|
177
164
|
}
|
|
@@ -192,7 +179,7 @@ export class OpenCodeBlock extends OpenElement {
|
|
|
192
179
|
if (!grammar) {
|
|
193
180
|
if (this._highlightRetries++ < OpenCodeBlock.MAX_HIGHLIGHT_RETRIES) {
|
|
194
181
|
const delay = Math.min(20 * Math.pow(2, Math.min(this._highlightRetries, 6)), 1000);
|
|
195
|
-
this.
|
|
182
|
+
this._setTimeout(()=>this._tryHighlight(), delay);
|
|
196
183
|
}
|
|
197
184
|
return;
|
|
198
185
|
}
|
|
@@ -229,22 +216,20 @@ export class OpenCodeBlock extends OpenElement {
|
|
|
229
216
|
this._internals?.states.add('copied');
|
|
230
217
|
this._internals?.states.delete('failed');
|
|
231
218
|
this._updateCopyButtonDOM();
|
|
232
|
-
this.
|
|
219
|
+
this._setTimeout(()=>{
|
|
233
220
|
this._copyState = 'idle';
|
|
234
221
|
this._internals?.states.delete('copied');
|
|
235
222
|
this._updateCopyButtonDOM();
|
|
236
|
-
this._copyTimer = undefined;
|
|
237
223
|
}, 2000);
|
|
238
224
|
} catch (e) {
|
|
239
225
|
log.warn('Clipboard write failed:', e);
|
|
240
226
|
this._internals?.states.add('failed');
|
|
241
227
|
this._internals?.states.delete('copied');
|
|
242
228
|
this._updateCopyButtonDOM();
|
|
243
|
-
this.
|
|
229
|
+
this._setTimeout(()=>{
|
|
244
230
|
this._copyState = 'idle';
|
|
245
231
|
this._internals?.states.delete('failed');
|
|
246
232
|
this._updateCopyButtonDOM();
|
|
247
|
-
this._copyTimer = undefined;
|
|
248
233
|
}, 2000);
|
|
249
234
|
}
|
|
250
235
|
}
|
|
@@ -264,4 +249,4 @@ export default OpenCodeBlock;
|
|
|
264
249
|
if (typeof customElements !== 'undefined' && !customElements.get(tagName)) {
|
|
265
250
|
customElements.define(tagName, OpenCodeBlock);
|
|
266
251
|
}
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy91aS9zcmMvb3Blbi1jb2RlLWJsb2NrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGpzeEltcG9ydFNvdXJjZSBAb3BlbmVsZW1lbnQvY29yZSAqL1xuLyoqXG4gKiBAb3BlbmVsZW1lbnQvdWkgLSBvcGVuLWNvZGUtYmxvY2tcbiAqXG4gKiBDb2RlIGJsb2NrIHdpdGggY29weSBidXR0b24gQU5EIHN5bnRheCBoaWdobGlnaHRpbmcgdmlhIFByaXNtLlxuICpcbiAqIHYwLjIwLjA6IE1pZ3JhdGVkIGZyb20gRHNkTGl0RWxlbWVudCB0byBEc2RFbGVtZW50IChPY2VhbiBjb21wb25lbnQpLlxuICogICAtIFNlbGYtY29udGFpbmVkIFByaXNtIGhpZ2hsaWdodGluZyBpbmplY3RlZCBpbnRvIHNoYWRvdyByb290XG4gKiAgIC0gQ29weSBidXR0b24gdXNlcyBFbGVtZW50SW50ZXJuYWxzIDpzdGF0ZShjb3BpZWQpIGZvciBDU1MgZmVlZGJhY2tcbiAqICAgLSBEU0QgcmVuZGVycyA8c2xvdD4gZm9yIFNTUiAobm8gSlMgY29udGVudCBmYWxsYmFjaylcbiAqIHYwLjI0LjE6IE1pZ3JhdGVkIGZyb20gaHRtbGBgIHRlbXBsYXRlIHRvIEpTWCAoQURSLTAwNTcpLlxuICpcbiAqIEBjc3NwYXJ0IGNvcHkgLSBUaGUgY29weSBidXR0b25cbiAqXG4gKiBVc2FnZTpcbiAqIGBgYGh0bWxcbiAqIDxvcGVuLWNvZGUtYmxvY2s+XG4gKiAgIDxwcmU+PGNvZGU+Y29uc3QgeCA9IDE7PC9jb2RlPjwvcHJlPlxuICogPC9vcGVuLWNvZGUtYmxvY2s+XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgeyBPcGVuRWxlbWVudCB9IGZyb20gJ0BvcGVuZWxlbWVudC9lbGVtZW50JztcbmltcG9ydCB7IFN0eWxlU2hlZXQsIHR5cGUgU3R5bGVTaGVldExpa2UgfSBmcm9tICdAb3BlbmVsZW1lbnQvY29yZS9zdHlsZS1zaGVldCc7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIgfSBmcm9tICdAb3BlbmVsZW1lbnQvY29yZS9sb2dnZXInO1xuZXhwb3J0IGNvbnN0IHRhZ05hbWUgPSAnb3Blbi1jb2RlLWJsb2NrJztcblxuY29uc3QgbG9nID0gY3JlYXRlTG9nZ2VyKCd1aScpO1xuXG5jb25zdCBzaGVldDogU3R5bGVTaGVldExpa2UgPSBuZXcgU3R5bGVTaGVldCgpO1xuc2hlZXQucmVwbGFjZVN5bmMoYFxuICA6aG9zdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgcHJlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogdmFyKC0tc2l6ZS01KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jb2RlKTtcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci1zaXplLTEpIHNvbGlkIHZhcigtLWNvZGUtYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtMyk7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0wKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZm9udC1saW5laGVpZ2h0LTQpO1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tYnJhbmQtc3VidGxlKSB0cmFuc3BhcmVudDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgfVxuXG4gIDo6c2xvdHRlZChwcmUpIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogdmFyKC0tc2l6ZS01KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jb2RlKTtcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci1zaXplLTEpIHNvbGlkIHZhcigtLWNvZGUtYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtMyk7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0wKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZm9udC1saW5laGVpZ2h0LTQpO1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tYnJhbmQtc3VidGxlKSB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5sYW5nLWJhZGdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiB2YXIoLS1zaXplLTIpO1xuICAgIGxlZnQ6IHZhcigtLXNpemUtMyk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMDApO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC03KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1mb250LWxldHRlcnNwYWNpbmctNSk7XG4gICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgLmNvcHktYnRuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiB2YXIoLS1zaXplLTIpO1xuICAgIHJpZ2h0OiB2YXIoLS1zaXplLTIpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLXN1YnRsZSk7XG4gICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xuICAgIHBhZGRpbmc6IHZhcigtLXNpemUtMSkgdmFyKC0tc2l6ZS0zKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0wMCk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc2Fucyk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LTYpO1xuICAgIGJvcmRlcjogMC41cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy0xKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tZWFzZS0yKSB2YXIoLS1kdXJhdGlvbi0yKTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1mb250LWxldHRlcnNwYWNpbmctNCk7XG4gIH1cblxuICAuY29weS1idG46aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLWdsb3cpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnJhbmQpO1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKGNvcGllZCkpIC5jb3B5LWJ0biB7XG4gICAgY29sb3I6ICMyMmM1NWU7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LDE5Nyw5NCwwLjMpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsMTk3LDk0LDAuMDgpO1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKGZhaWxlZCkpIC5jb3B5LWJ0biB7XG4gICAgY29sb3I6IHZhcigtLWVycm9yKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWVycm9yKTtcbiAgfVxuXG4gIC8qIFByaXNtIHRva2VuIGNvbG9ycyAoZGFyayB0aGVtZSkgKi9cbiAgLnRva2VuLmNkYXRhLCAudG9rZW4uY29tbWVudCwgLnRva2VuLmRvY3R5cGUsIC50b2tlbi5wcm9sb2cgeyBjb2xvcjogIzZhNzM3ZDsgfVxuICAudG9rZW4ucHVuY3R1YXRpb24geyBjb2xvcjogIzhiOTQ5ZTsgfVxuICAudG9rZW4ubmFtZXNwYWNlIHsgb3BhY2l0eTogMC43OyB9XG4gIC50b2tlbi5ib29sZWFuLCAudG9rZW4uY29uc3RhbnQsIC50b2tlbi5kZWxldGVkLCAudG9rZW4ubnVtYmVyLCAudG9rZW4ucHJvcGVydHksIC50b2tlbi5zeW1ib2wsIC50b2tlbi50YWcgeyBjb2xvcjogIzc5YzBmZjsgfVxuICAudG9rZW4uYXR0ci1uYW1lLCAudG9rZW4uYnVpbHRpbiwgLnRva2VuLmNoYXIsIC50b2tlbi5pbnNlcnRlZCwgLnRva2VuLnNlbGVjdG9yLCAudG9rZW4uc3RyaW5nIHsgY29sb3I6ICNhNWQ2ZmY7IH1cbiAgLnRva2VuLmVudGl0eSwgLnRva2VuLm9wZXJhdG9yLCAudG9rZW4udXJsLCAubGFuZ3VhZ2UtY3NzIC50b2tlbi5zdHJpbmcsIC5zdHlsZSAudG9rZW4uc3RyaW5nIHsgY29sb3I6ICNkMmE4ZmY7IH1cbiAgLnRva2VuLmF0cnVsZSwgLnRva2VuLmF0dHItdmFsdWUsIC50b2tlbi5rZXl3b3JkIHsgY29sb3I6ICNmZjdiNzI7IH1cbiAgLnRva2VuLmNsYXNzLW5hbWUsIC50b2tlbi5mdW5jdGlvbiB7IGNvbG9yOiAjZDJhOGZmOyB9XG4gIC50b2tlbi5pbXBvcnRhbnQsIC50b2tlbi5yZWdleCwgLnRva2VuLnZhcmlhYmxlIHsgY29sb3I6ICNmZmE2NTc7IH1cbiAgLnRva2VuLmJvbGQsIC50b2tlbi5pbXBvcnRhbnQgeyBmb250LXdlaWdodDogNzAwOyB9XG4gIC50b2tlbi5pdGFsaWMgeyBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgLnRva2VuLmVudGl0eSB7IGN1cnNvcjogaGVscDsgfVxuYCk7XG5cbmV4cG9ydCBjbGFzcyBPcGVuQ29kZUJsb2NrIGV4dGVuZHMgT3BlbkVsZW1lbnQge1xuICBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzID0gW3NoZWV0XTtcblxuICBwcml2YXRlIF9jb3B5U3RhdGU6ICdpZGxlJyB8ICdjb3BpZWQnIHwgJ2ZhaWxlZCcgPSAnaWRsZSc7XG4gIHByaXZhdGUgX2NvcHlUaW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2hpZ2hsaWdodFRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0ZWRJblNoYWRvdyA9IGZhbHNlO1xuICBwcml2YXRlIF9oaWdobGlnaHRSZXRyaWVzID0gMDtcbiAgcHJpdmF0ZSBzdGF0aWMgTUFYX0hJR0hMSUdIVF9SRVRSSUVTID0gMTIwO1xuXG4gIG92ZXJyaWRlIHJlbmRlcigpOiBSZXR1cm5UeXBlPHR5cGVvZiBPcGVuRWxlbWVudC5wcm90b3R5cGUucmVuZGVyPiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPSdidXR0b24nIGNsYXNzTmFtZT0nY29weS1idG4nIHBhcnQ9J2NvcHknIG9uQ2xpY2s9eygpID0+IHRoaXMuX2NvcHkoKX0+XG4gICAgICAgICAgQ29weVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25Ec2RIeWRyYXRlZCgpOiB2b2lkIHtcbiAgICBzdXBlci5vbkRzZEh5ZHJhdGVkKCk7XG4gICAgdGhpcy5fdHJ5SGlnaGxpZ2h0KCk7XG4gIH1cblxuICBvdmVycmlkZSBvbkNzclJlbmRlcmVkKCk6IHZvaWQge1xuICAgIHN1cGVyLm9uQ3NyUmVuZGVyZWQoKTtcbiAgICB0aGlzLl90cnlIaWdobGlnaHQoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgaWYgKHRoaXMuX2NvcHlUaW1lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fY29weVRpbWVyKTtcbiAgICAgIHRoaXMuX2NvcHlUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2hpZ2hsaWdodFRpbWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9oaWdobGlnaHRUaW1lcik7XG4gICAgICB0aGlzLl9oaWdobGlnaHRUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9wcmlzbUdsb2JhbCgpOiB1bmtub3duIHtcbiAgICByZXR1cm4gKGdsb2JhbFRoaXMgYXMgdHlwZW9mIGdsb2JhbFRoaXMgJiB7IFByaXNtPzogdW5rbm93biB9KS5QcmlzbTtcbiAgfVxuXG4gIHByaXZhdGUgX3RyeUhpZ2hsaWdodCgpOiB2b2lkIHtcbiAgICBjb25zdCBwID0gdGhpcy5fcHJpc21HbG9iYWwoKTtcbiAgICBpZiAodHlwZW9mIHAgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBpZiAodGhpcy5faGlnaGxpZ2h0UmV0cmllcysrIDwgT3BlbkNvZGVCbG9jay5NQVhfSElHSExJR0hUX1JFVFJJRVMpIHtcbiAgICAgICAgLy8gRXhwb25lbnRpYWwgYmFja29mZjogMTAsIDIwLCA0MCwgODAsIDE2MCwgMzIwLCA1MDBtcyBjYXBcbiAgICAgICAgY29uc3QgZGVsYXkgPSBNYXRoLm1pbigxMCAqIE1hdGgucG93KDIsIE1hdGgubWluKHRoaXMuX2hpZ2hsaWdodFJldHJpZXMsIDYpKSwgNTAwKTtcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0VGltZXIgPSBnbG9iYWxUaGlzLnNldFRpbWVvdXQoKCkgPT4gdGhpcy5fdHJ5SGlnaGxpZ2h0KCksIGRlbGF5KTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmUgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJzpzY29wZSA+IHByZScpIHx8XG4gICAgICBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZpbmQoKGMpID0+IGMudGFnTmFtZSA9PT0gJ1BSRScpO1xuICAgIGlmICghcHJlKSByZXR1cm47XG4gICAgY29uc3QgY29kZUVsID0gcHJlLnF1ZXJ5U2VsZWN0b3IoJ2NvZGUnKTtcbiAgICBpZiAoIWNvZGVFbCkgcmV0dXJuO1xuXG4gICAgbGV0IGxhbmcgPSAndHlwZXNjcmlwdCc7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNvZGVFbC5jbGFzc0xpc3Q7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbGFzc2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoY2xhc3Nlc1tpXS5zdGFydHNXaXRoKCdsYW5ndWFnZS0nKSkge1xuICAgICAgICBsYW5nID0gY2xhc3Nlc1tpXS5zbGljZSg5KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcmF3ID0gY29kZUVsLnRleHRDb250ZW50IHx8ICcnO1xuICAgIGNvbnN0IGdyYW1tYXIgPSAocCBhcyBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4pLmxhbmd1YWdlcz8uW2xhbmddIGFzXG4gICAgICB8IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICB8IHVuZGVmaW5lZDtcbiAgICBpZiAoIWdyYW1tYXIpIHtcbiAgICAgIGlmICh0aGlzLl9oaWdobGlnaHRSZXRyaWVzKysgPCBPcGVuQ29kZUJsb2NrLk1BWF9ISUdITElHSFRfUkVUUklFUykge1xuICAgICAgICBjb25zdCBkZWxheSA9IE1hdGgubWluKDIwICogTWF0aC5wb3coMiwgTWF0aC5taW4odGhpcy5faGlnaGxpZ2h0UmV0cmllcywgNikpLCAxMDAwKTtcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0VGltZXIgPSBnbG9iYWxUaGlzLnNldFRpbWVvdXQoKCkgPT4gdGhpcy5fdHJ5SGlnaGxpZ2h0KCksIGRlbGF5KTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5faGlnaGxpZ2h0UmV0cmllcyA9IDA7XG4gICAgY29uc3QgaGlnaGxpZ2h0ZWRIdG1sID1cbiAgICAgIChwIGFzIHsgaGlnaGxpZ2h0OiAoY29kZTogc3RyaW5nLCBncmFtbWFyOiB1bmtub3duLCBsYW5nOiBzdHJpbmcpID0+IHN0cmluZyB9KS5oaWdobGlnaHQoXG4gICAgICAgIHJhdyxcbiAgICAgICAgZ3JhbW1hcixcbiAgICAgICAgbGFuZyxcbiAgICAgICk7XG4gICAgdGhpcy5faW5qZWN0SGlnaGxpZ2h0ZWQoaGlnaGxpZ2h0ZWRIdG1sKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luamVjdEhpZ2hsaWdodGVkKGh0bWw6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaGFkb3dSb290IHx8IHRoaXMuX2hpZ2hsaWdodGVkSW5TaGFkb3cpIHJldHVybjtcbiAgICB0aGlzLl9oaWdobGlnaHRlZEluU2hhZG93ID0gdHJ1ZTtcblxuICAgIGNvbnN0IHNsb3QgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcignc2xvdCcpO1xuICAgIGlmICghc2xvdCkgcmV0dXJuO1xuXG4gICAgY29uc3QgaGlnaGxpZ2h0ZWRQcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwcmUnKTtcbiAgICBjb25zdCBoaWdobGlnaHRlZENvZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb2RlJyk7XG4gICAgaGlnaGxpZ2h0ZWRDb2RlLmNsYXNzTmFtZSA9ICdsYW5ndWFnZS10eXBlc2NyaXB0JztcbiAgICBoaWdobGlnaHRlZENvZGUuaW5uZXJIVE1MID0gaHRtbDtcbiAgICBoaWdobGlnaHRlZFByZS5hcHBlbmRDaGlsZChoaWdobGlnaHRlZENvZGUpO1xuICAgIHNsb3QucmVwbGFjZVdpdGgoaGlnaGxpZ2h0ZWRQcmUpO1xuXG4gICAgY29uc3QgbGlnaHRQcmUgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3ByZScpO1xuICAgIGlmIChsaWdodFByZSkgKGxpZ2h0UHJlIGFzIEhUTUxFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q29kZVRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zaGFkb3dSb290KSB7XG4gICAgICBjb25zdCBzaGFkb3dDb2RlID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ3ByZSBjb2RlJyk7XG4gICAgICBpZiAoc2hhZG93Q29kZSkgcmV0dXJuIHNoYWRvd0NvZGUudGV4dENvbnRlbnQgfHwgJyc7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnRleHRDb250ZW50IHx8ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfY29weSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdGV4dCA9IHRoaXMuX2dldENvZGVUZXh0KCk7XG4gICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcbiAgICAgIHRoaXMuX2NvcHlTdGF0ZSA9ICdjb3BpZWQnO1xuICAgICAgdGhpcy5faW50ZXJuYWxzPy5zdGF0ZXMuYWRkKCdjb3BpZWQnKTtcbiAgICAgIHRoaXMuX2ludGVybmFscz8uc3RhdGVzLmRlbGV0ZSgnZmFpbGVkJyk7XG4gICAgICB0aGlzLl91cGRhdGVDb3B5QnV0dG9uRE9NKCk7XG4gICAgICB0aGlzLl9jb3B5VGltZXIgPSBnbG9iYWxUaGlzLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jb3B5U3RhdGUgPSAnaWRsZSc7XG4gICAgICAgIHRoaXMuX2ludGVybmFscz8uc3RhdGVzLmRlbGV0ZSgnY29waWVkJyk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvcHlCdXR0b25ET00oKTtcbiAgICAgICAgdGhpcy5fY29weVRpbWVyID0gdW5kZWZpbmVkO1xuICAgICAgfSwgMjAwMCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgbG9nLndhcm4oJ0NsaXBib2FyZCB3cml0ZSBmYWlsZWQ6JywgZSk7XG4gICAgICB0aGlzLl9pbnRlcm5hbHM/LnN0YXRlcy5hZGQoJ2ZhaWxlZCcpO1xuICAgICAgdGhpcy5faW50ZXJuYWxzPy5zdGF0ZXMuZGVsZXRlKCdjb3BpZWQnKTtcbiAgICAgIHRoaXMuX3VwZGF0ZUNvcHlCdXR0b25ET00oKTtcbiAgICAgIHRoaXMuX2NvcHlUaW1lciA9IGdsb2JhbFRoaXMuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2NvcHlTdGF0ZSA9ICdpZGxlJztcbiAgICAgICAgdGhpcy5faW50ZXJuYWxzPy5zdGF0ZXMuZGVsZXRlKCdmYWlsZWQnKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29weUJ1dHRvbkRPTSgpO1xuICAgICAgICB0aGlzLl9jb3B5VGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICB9LCAyMDAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVDb3B5QnV0dG9uRE9NKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaGFkb3dSb290KSByZXR1cm47XG4gICAgY29uc3QgYnRuID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi5jb3B5LWJ0bicpO1xuICAgIGlmICghYnRuKSByZXR1cm47XG4gICAgYnRuLmNsYXNzTGlzdC50b2dnbGUoJ2NvcGllZCcsIHRoaXMuX2NvcHlTdGF0ZSA9PT0gJ2NvcGllZCcpO1xuICAgIGJ0bi5jbGFzc0xpc3QudG9nZ2xlKCdmYWlsZWQnLCB0aGlzLl9jb3B5U3RhdGUgPT09ICdmYWlsZWQnKTtcbiAgICBpZiAodGhpcy5fY29weVN0YXRlID09PSAnY29waWVkJykgYnRuLnRleHRDb250ZW50ID0gJ0NvcGllZCEnO1xuICAgIGVsc2UgaWYgKHRoaXMuX2NvcHlTdGF0ZSA9PT0gJ2ZhaWxlZCcpIGJ0bi50ZXh0Q29udGVudCA9ICdGYWlsZWQnO1xuICAgIGVsc2UgYnRuLnRleHRDb250ZW50ID0gJ0NvcHknO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9wZW5Db2RlQmxvY2s7XG5cbi8vIEd1YXJkOiBpZGVtcG90ZW50IGFjcm9zcyBTU1IgcGF0aHNcbmlmICh0eXBlb2YgY3VzdG9tRWxlbWVudHMgIT09ICd1bmRlZmluZWQnICYmICFjdXN0b21FbGVtZW50cy5nZXQodGFnTmFtZSkpIHtcbiAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKHRhZ05hbWUsIE9wZW5Db2RlQmxvY2spO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1QyxHQUN2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW1CQyxHQUVELFNBQVMsV0FBVyxRQUFRLHVCQUF1QjtBQUNuRCxTQUFTLFVBQVUsUUFBNkIsZ0NBQWdDO0FBQ2hGLFNBQVMsWUFBWSxRQUFRLDJCQUEyQjtBQUN4RCxPQUFPLE1BQU0sVUFBVSxrQkFBa0I7QUFFekMsTUFBTSxNQUFNLGFBQWE7QUFFekIsTUFBTSxRQUF3QixJQUFJO0FBQ2xDLE1BQU0sV0FBVyxDQUFDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0duQixDQUFDO0FBRUQsT0FBTyxNQUFNLHNCQUFzQjtFQUNqQyxPQUFnQixTQUFTO0lBQUM7R0FBTSxDQUFDO0VBRXpCLGFBQTJDLE9BQU87RUFDbEQsV0FBc0Q7RUFDdEQsZ0JBQTJEO0VBQzNELHVCQUF1QixNQUFNO0VBQzdCLG9CQUFvQixFQUFFO0VBQzlCLE9BQWUsd0JBQXdCLElBQUk7RUFFbEMsU0FBMEQ7SUFDakUsU0FDSTtRQUNBLENBQUMsT0FBTyxLQUFLO1FBQ2IsQ0FBQyxPQUFPLEtBQUssU0FBUyxVQUFVLFdBQVcsS0FBSyxPQUFPLFNBQVMsSUFBTSxJQUFJLENBQUMsS0FBSyxJQUFJOztRQUVwRixFQUFFLE9BQU87TUFDWDtFQUVKO0VBRVMsb0JBQTBCO0lBQ2pDLEtBQUssQ0FBQztFQUNSO0VBRVMsZ0JBQXNCO0lBQzdCLEtBQUssQ0FBQztJQUNOLElBQUksQ0FBQyxhQUFhO0VBQ3BCO0VBRVMsZ0JBQXNCO0lBQzdCLEtBQUssQ0FBQztJQUNOLElBQUksQ0FBQyxhQUFhO0VBQ3BCO0VBRVMsdUJBQTZCO0lBQ3BDLEtBQUssQ0FBQztJQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXO01BQ2pDLGFBQWEsSUFBSSxDQUFDLFVBQVU7TUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRztJQUNwQjtJQUNBLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxXQUFXO01BQ3RDLGFBQWEsSUFBSSxDQUFDLGVBQWU7TUFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRztJQUN6QjtFQUNGO0VBRVEsZUFBd0I7SUFDOUIsT0FBTyxBQUFDLFdBQXVELEtBQUs7RUFDdEU7RUFFUSxnQkFBc0I7SUFDNUIsTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZO0lBQzNCLElBQUksT0FBTyxNQUFNLGFBQWE7TUFDNUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssY0FBYyxxQkFBcUIsRUFBRTtRQUNsRSwyREFBMkQ7UUFDM0QsTUFBTSxRQUFRLEtBQUssR0FBRyxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSztRQUM5RSxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsVUFBVSxDQUFDLElBQU0sSUFBSSxDQUFDLGFBQWEsSUFBSTtNQUMzRTtNQUNBO0lBQ0Y7SUFFQSxNQUFNLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFDN0IsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFNLEVBQUUsT0FBTyxLQUFLO0lBQ3RELElBQUksQ0FBQyxLQUFLO0lBQ1YsTUFBTSxTQUFTLElBQUksYUFBYSxDQUFDO0lBQ2pDLElBQUksQ0FBQyxRQUFRO0lBRWIsSUFBSSxPQUFPO0lBQ1gsTUFBTSxVQUFVLE9BQU8sU0FBUztJQUNoQyxJQUFLLElBQUksSUFBSSxHQUFHLElBQUksUUFBUSxNQUFNLEVBQUUsSUFBSztNQUN2QyxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGNBQWM7UUFDdEMsT0FBTyxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUN4QjtNQUNGO0lBQ0Y7SUFFQSxNQUFNLE1BQU0sT0FBTyxXQUFXLElBQUk7SUFDbEMsTUFBTSxVQUFVLEFBQUMsRUFBOEMsU0FBUyxFQUFFLENBQUMsS0FBSztJQUdoRixJQUFJLENBQUMsU0FBUztNQUNaLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLGNBQWMscUJBQXFCLEVBQUU7UUFDbEUsTUFBTSxRQUFRLEtBQUssR0FBRyxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSztRQUM5RSxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsVUFBVSxDQUFDLElBQU0sSUFBSSxDQUFDLGFBQWEsSUFBSTtNQUMzRTtNQUNBO0lBQ0Y7SUFDQSxJQUFJLENBQUMsaUJBQWlCLEdBQUc7SUFDekIsTUFBTSxrQkFDSixBQUFDLEVBQThFLFNBQVMsQ0FDdEYsS0FDQSxTQUNBO0lBRUosSUFBSSxDQUFDLGtCQUFrQixDQUFDO0VBQzFCO0VBRVEsbUJBQW1CLElBQVksRUFBUTtJQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7SUFDbkQsSUFBSSxDQUFDLG9CQUFvQixHQUFHO0lBRTVCLE1BQU0sUUFBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUMzQyxJQUFJLENBQUMsT0FBTTtJQUVYLE1BQU0saUJBQWlCLFNBQVMsYUFBYSxDQUFDO0lBQzlDLE1BQU0sa0JBQWtCLFNBQVMsYUFBYSxDQUFDO0lBQy9DLGdCQUFnQixTQUFTLEdBQUc7SUFDNUIsZ0JBQWdCLFNBQVMsR0FBRztJQUM1QixlQUFlLFdBQVcsQ0FBQztJQUMzQixNQUFLLFdBQVcsQ0FBQztJQUVqQixNQUFNLFdBQVcsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUNwQyxJQUFJLFVBQVUsQUFBQyxTQUF5QixLQUFLLENBQUMsT0FBTyxHQUFHO0VBQzFEO0VBRVEsZUFBdUI7SUFDN0IsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO01BQ25CLE1BQU0sYUFBYSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztNQUNqRCxJQUFJLFlBQVksT0FBTyxXQUFXLFdBQVcsSUFBSTtJQUNuRDtJQUNBLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSTtFQUM3QjtFQUVBLE1BQWMsUUFBdUI7SUFDbkMsSUFBSTtNQUNGLE1BQU0sT0FBTyxJQUFJLENBQUMsWUFBWTtNQUM5QixNQUFNLFVBQVUsU0FBUyxDQUFDLFNBQVMsQ0FBQztNQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHO01BQ2xCLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxJQUFJO01BQzVCLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxPQUFPO01BQy9CLElBQUksQ0FBQyxvQkFBb0I7TUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHO1FBQ2xCLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxPQUFPO1FBQy9CLElBQUksQ0FBQyxvQkFBb0I7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRztNQUNwQixHQUFHO0lBQ0wsRUFBRSxPQUFPLEdBQUc7TUFDVixJQUFJLElBQUksQ0FBQywyQkFBMkI7TUFDcEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLElBQUk7TUFDNUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLE9BQU87TUFDL0IsSUFBSSxDQUFDLG9CQUFvQjtNQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsVUFBVSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUc7UUFDbEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLE9BQU87UUFDL0IsSUFBSSxDQUFDLG9CQUFvQjtRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHO01BQ3BCLEdBQUc7SUFDTDtFQUNGO0VBRVEsdUJBQTZCO0lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO0lBQ3RCLE1BQU0sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUMxQyxJQUFJLENBQUMsS0FBSztJQUNWLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLEtBQUs7SUFDbkQsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsS0FBSztJQUNuRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxJQUFJLFdBQVcsR0FBRztTQUMvQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxJQUFJLFdBQVcsR0FBRztTQUNwRCxJQUFJLFdBQVcsR0FBRztFQUN6QjtBQUNGO0FBRUEsZUFBZSxjQUFjO0FBRTdCLHFDQUFxQztBQUNyQyxJQUFJLE9BQU8sbUJBQW1CLGVBQWUsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxVQUFVO0VBQ3pFLGVBQWUsTUFBTSxDQUFDLFNBQVM7QUFDakMifQ==
|
|
252
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy91aS9zcmMvb3Blbi1jb2RlLWJsb2NrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGpzeEltcG9ydFNvdXJjZSBAb3BlbmVsZW1lbnQvY29yZSAqL1xuLyoqXG4gKiBAb3BlbmVsZW1lbnQvdWkgLSBvcGVuLWNvZGUtYmxvY2tcbiAqXG4gKiBDb2RlIGJsb2NrIHdpdGggY29weSBidXR0b24gQU5EIHN5bnRheCBoaWdobGlnaHRpbmcgdmlhIFByaXNtLlxuICpcbiAqIHYwLjIwLjA6IE1pZ3JhdGVkIGZyb20gRHNkTGl0RWxlbWVudCB0byBEc2RFbGVtZW50IChPY2VhbiBjb21wb25lbnQpLlxuICogICAtIFNlbGYtY29udGFpbmVkIFByaXNtIGhpZ2hsaWdodGluZyBpbmplY3RlZCBpbnRvIHNoYWRvdyByb290XG4gKiAgIC0gQ29weSBidXR0b24gdXNlcyBFbGVtZW50SW50ZXJuYWxzIDpzdGF0ZShjb3BpZWQpIGZvciBDU1MgZmVlZGJhY2tcbiAqICAgLSBEU0QgcmVuZGVycyA8c2xvdD4gZm9yIFNTUiAobm8gSlMgY29udGVudCBmYWxsYmFjaylcbiAqIHYwLjI0LjE6IE1pZ3JhdGVkIGZyb20gaHRtbGBgIHRlbXBsYXRlIHRvIEpTWCAoQURSLTAwNTcpLlxuICpcbiAqIEBjc3NwYXJ0IGNvcHkgLSBUaGUgY29weSBidXR0b25cbiAqXG4gKiBVc2FnZTpcbiAqIGBgYGh0bWxcbiAqIDxvcGVuLWNvZGUtYmxvY2s+XG4gKiAgIDxwcmU+PGNvZGU+Y29uc3QgeCA9IDE7PC9jb2RlPjwvcHJlPlxuICogPC9vcGVuLWNvZGUtYmxvY2s+XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgeyBPcGVuRWxlbWVudCB9IGZyb20gJ0BvcGVuZWxlbWVudC9lbGVtZW50JztcbmltcG9ydCB7IFN0eWxlU2hlZXQsIHR5cGUgU3R5bGVTaGVldExpa2UgfSBmcm9tICdAb3BlbmVsZW1lbnQvY29yZS9zdHlsZS1zaGVldCc7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIgfSBmcm9tICdAb3BlbmVsZW1lbnQvY29yZS9sb2dnZXInO1xuZXhwb3J0IGNvbnN0IHRhZ05hbWUgPSAnb3Blbi1jb2RlLWJsb2NrJztcblxuY29uc3QgbG9nID0gY3JlYXRlTG9nZ2VyKCd1aScpO1xuXG5jb25zdCBzaGVldDogU3R5bGVTaGVldExpa2UgPSBuZXcgU3R5bGVTaGVldCgpO1xuc2hlZXQucmVwbGFjZVN5bmMoYFxuICA6aG9zdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgcHJlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogdmFyKC0tc2l6ZS01KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jb2RlKTtcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci1zaXplLTEpIHNvbGlkIHZhcigtLWNvZGUtYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtMyk7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0wKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZm9udC1saW5laGVpZ2h0LTQpO1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tYnJhbmQtc3VidGxlKSB0cmFuc3BhcmVudDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgfVxuXG4gIDo6c2xvdHRlZChwcmUpIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogdmFyKC0tc2l6ZS01KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jb2RlKTtcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci1zaXplLTEpIHNvbGlkIHZhcigtLWNvZGUtYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtMyk7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0wKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZm9udC1saW5laGVpZ2h0LTQpO1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tYnJhbmQtc3VidGxlKSB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5sYW5nLWJhZGdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiB2YXIoLS1zaXplLTIpO1xuICAgIGxlZnQ6IHZhcigtLXNpemUtMyk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMDApO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC03KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1mb250LWxldHRlcnNwYWNpbmctNSk7XG4gICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgLmNvcHktYnRuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiB2YXIoLS1zaXplLTIpO1xuICAgIHJpZ2h0OiB2YXIoLS1zaXplLTIpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLXN1YnRsZSk7XG4gICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xuICAgIHBhZGRpbmc6IHZhcigtLXNpemUtMSkgdmFyKC0tc2l6ZS0zKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0wMCk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc2Fucyk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LTYpO1xuICAgIGJvcmRlcjogMC41cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy0xKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tZWFzZS0yKSB2YXIoLS1kdXJhdGlvbi0yKTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1mb250LWxldHRlcnNwYWNpbmctNCk7XG4gIH1cblxuICAuY29weS1idG46aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLWdsb3cpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnJhbmQpO1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKGNvcGllZCkpIC5jb3B5LWJ0biB7XG4gICAgY29sb3I6ICMyMmM1NWU7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LDE5Nyw5NCwwLjMpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsMTk3LDk0LDAuMDgpO1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKGZhaWxlZCkpIC5jb3B5LWJ0biB7XG4gICAgY29sb3I6IHZhcigtLWVycm9yKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWVycm9yKTtcbiAgfVxuXG4gIC8qIFByaXNtIHRva2VuIGNvbG9ycyAoZGFyayB0aGVtZSkgKi9cbiAgLnRva2VuLmNkYXRhLCAudG9rZW4uY29tbWVudCwgLnRva2VuLmRvY3R5cGUsIC50b2tlbi5wcm9sb2cgeyBjb2xvcjogIzZhNzM3ZDsgfVxuICAudG9rZW4ucHVuY3R1YXRpb24geyBjb2xvcjogIzhiOTQ5ZTsgfVxuICAudG9rZW4ubmFtZXNwYWNlIHsgb3BhY2l0eTogMC43OyB9XG4gIC50b2tlbi5ib29sZWFuLCAudG9rZW4uY29uc3RhbnQsIC50b2tlbi5kZWxldGVkLCAudG9rZW4ubnVtYmVyLCAudG9rZW4ucHJvcGVydHksIC50b2tlbi5zeW1ib2wsIC50b2tlbi50YWcgeyBjb2xvcjogIzc5YzBmZjsgfVxuICAudG9rZW4uYXR0ci1uYW1lLCAudG9rZW4uYnVpbHRpbiwgLnRva2VuLmNoYXIsIC50b2tlbi5pbnNlcnRlZCwgLnRva2VuLnNlbGVjdG9yLCAudG9rZW4uc3RyaW5nIHsgY29sb3I6ICNhNWQ2ZmY7IH1cbiAgLnRva2VuLmVudGl0eSwgLnRva2VuLm9wZXJhdG9yLCAudG9rZW4udXJsLCAubGFuZ3VhZ2UtY3NzIC50b2tlbi5zdHJpbmcsIC5zdHlsZSAudG9rZW4uc3RyaW5nIHsgY29sb3I6ICNkMmE4ZmY7IH1cbiAgLnRva2VuLmF0cnVsZSwgLnRva2VuLmF0dHItdmFsdWUsIC50b2tlbi5rZXl3b3JkIHsgY29sb3I6ICNmZjdiNzI7IH1cbiAgLnRva2VuLmNsYXNzLW5hbWUsIC50b2tlbi5mdW5jdGlvbiB7IGNvbG9yOiAjZDJhOGZmOyB9XG4gIC50b2tlbi5pbXBvcnRhbnQsIC50b2tlbi5yZWdleCwgLnRva2VuLnZhcmlhYmxlIHsgY29sb3I6ICNmZmE2NTc7IH1cbiAgLnRva2VuLmJvbGQsIC50b2tlbi5pbXBvcnRhbnQgeyBmb250LXdlaWdodDogNzAwOyB9XG4gIC50b2tlbi5pdGFsaWMgeyBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgLnRva2VuLmVudGl0eSB7IGN1cnNvcjogaGVscDsgfVxuYCk7XG5cbmV4cG9ydCBjbGFzcyBPcGVuQ29kZUJsb2NrIGV4dGVuZHMgT3BlbkVsZW1lbnQge1xuICBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzID0gW3NoZWV0XTtcblxuICBwcml2YXRlIF9jb3B5U3RhdGU6ICdpZGxlJyB8ICdjb3BpZWQnIHwgJ2ZhaWxlZCcgPSAnaWRsZSc7XG4gIHByaXZhdGUgX2hpZ2hsaWdodGVkSW5TaGFkb3cgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0UmV0cmllcyA9IDA7XG4gIHByaXZhdGUgc3RhdGljIE1BWF9ISUdITElHSFRfUkVUUklFUyA9IDEyMDtcblxuICBvdmVycmlkZSByZW5kZXIoKTogUmV0dXJuVHlwZTx0eXBlb2YgT3BlbkVsZW1lbnQucHJvdG90eXBlLnJlbmRlcj4ge1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgIDxidXR0b24gdHlwZT0nYnV0dG9uJyBjbGFzc05hbWU9J2NvcHktYnRuJyBwYXJ0PSdjb3B5JyBvbkNsaWNrPXsoKSA9PiB0aGlzLl9jb3B5KCl9PlxuICAgICAgICAgIENvcHlcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uRHNkSHlkcmF0ZWQoKTogdm9pZCB7XG4gICAgc3VwZXIub25Ec2RIeWRyYXRlZCgpO1xuICAgIHRoaXMuX3RyeUhpZ2hsaWdodCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25Dc3JSZW5kZXJlZCgpOiB2b2lkIHtcbiAgICBzdXBlci5vbkNzclJlbmRlcmVkKCk7XG4gICAgdGhpcy5fdHJ5SGlnaGxpZ2h0KCk7XG4gIH1cblxuICBwcml2YXRlIF9wcmlzbUdsb2JhbCgpOiB1bmtub3duIHtcbiAgICByZXR1cm4gKGdsb2JhbFRoaXMgYXMgdHlwZW9mIGdsb2JhbFRoaXMgJiB7IFByaXNtPzogdW5rbm93biB9KS5QcmlzbTtcbiAgfVxuXG4gIHByaXZhdGUgX3RyeUhpZ2hsaWdodCgpOiB2b2lkIHtcbiAgICBjb25zdCBwID0gdGhpcy5fcHJpc21HbG9iYWwoKTtcbiAgICBpZiAodHlwZW9mIHAgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBpZiAodGhpcy5faGlnaGxpZ2h0UmV0cmllcysrIDwgT3BlbkNvZGVCbG9jay5NQVhfSElHSExJR0hUX1JFVFJJRVMpIHtcbiAgICAgICAgLy8gRXhwb25lbnRpYWwgYmFja29mZjogMTAsIDIwLCA0MCwgODAsIDE2MCwgMzIwLCA1MDBtcyBjYXBcbiAgICAgICAgY29uc3QgZGVsYXkgPSBNYXRoLm1pbigxMCAqIE1hdGgucG93KDIsIE1hdGgubWluKHRoaXMuX2hpZ2hsaWdodFJldHJpZXMsIDYpKSwgNTAwKTtcbiAgICAgICAgdGhpcy5fc2V0VGltZW91dCgoKSA9PiB0aGlzLl90cnlIaWdobGlnaHQoKSwgZGVsYXkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHByZSA9IHRoaXMucXVlcnlTZWxlY3RvcignOnNjb3BlID4gcHJlJykgfHxcbiAgICAgIEFycmF5LmZyb20odGhpcy5jaGlsZHJlbikuZmluZCgoYykgPT4gYy50YWdOYW1lID09PSAnUFJFJyk7XG4gICAgaWYgKCFwcmUpIHJldHVybjtcbiAgICBjb25zdCBjb2RlRWwgPSBwcmUucXVlcnlTZWxlY3RvcignY29kZScpO1xuICAgIGlmICghY29kZUVsKSByZXR1cm47XG5cbiAgICBsZXQgbGFuZyA9ICd0eXBlc2NyaXB0JztcbiAgICBjb25zdCBjbGFzc2VzID0gY29kZUVsLmNsYXNzTGlzdDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsYXNzZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChjbGFzc2VzW2ldLnN0YXJ0c1dpdGgoJ2xhbmd1YWdlLScpKSB7XG4gICAgICAgIGxhbmcgPSBjbGFzc2VzW2ldLnNsaWNlKDkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByYXcgPSBjb2RlRWwudGV4dENvbnRlbnQgfHwgJyc7XG4gICAgY29uc3QgZ3JhbW1hciA9IChwIGFzIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+PikubGFuZ3VhZ2VzPy5bbGFuZ10gYXNcbiAgICAgIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgIHwgdW5kZWZpbmVkO1xuICAgIGlmICghZ3JhbW1hcikge1xuICAgICAgaWYgKHRoaXMuX2hpZ2hsaWdodFJldHJpZXMrKyA8IE9wZW5Db2RlQmxvY2suTUFYX0hJR0hMSUdIVF9SRVRSSUVTKSB7XG4gICAgICAgIGNvbnN0IGRlbGF5ID0gTWF0aC5taW4oMjAgKiBNYXRoLnBvdygyLCBNYXRoLm1pbih0aGlzLl9oaWdobGlnaHRSZXRyaWVzLCA2KSksIDEwMDApO1xuICAgICAgICB0aGlzLl9zZXRUaW1lb3V0KCgpID0+IHRoaXMuX3RyeUhpZ2hsaWdodCgpLCBkZWxheSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2hpZ2hsaWdodFJldHJpZXMgPSAwO1xuICAgIGNvbnN0IGhpZ2hsaWdodGVkSHRtbCA9XG4gICAgICAocCBhcyB7IGhpZ2hsaWdodDogKGNvZGU6IHN0cmluZywgZ3JhbW1hcjogdW5rbm93biwgbGFuZzogc3RyaW5nKSA9PiBzdHJpbmcgfSkuaGlnaGxpZ2h0KFxuICAgICAgICByYXcsXG4gICAgICAgIGdyYW1tYXIsXG4gICAgICAgIGxhbmcsXG4gICAgICApO1xuICAgIHRoaXMuX2luamVjdEhpZ2hsaWdodGVkKGhpZ2hsaWdodGVkSHRtbCk7XG4gIH1cblxuICBwcml2YXRlIF9pbmplY3RIaWdobGlnaHRlZChodG1sOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hhZG93Um9vdCB8fCB0aGlzLl9oaWdobGlnaHRlZEluU2hhZG93KSByZXR1cm47XG4gICAgdGhpcy5faGlnaGxpZ2h0ZWRJblNoYWRvdyA9IHRydWU7XG5cbiAgICBjb25zdCBzbG90ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ3Nsb3QnKTtcbiAgICBpZiAoIXNsb3QpIHJldHVybjtcblxuICAgIGNvbnN0IGhpZ2hsaWdodGVkUHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJlJyk7XG4gICAgY29uc3QgaGlnaGxpZ2h0ZWRDb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY29kZScpO1xuICAgIGhpZ2hsaWdodGVkQ29kZS5jbGFzc05hbWUgPSAnbGFuZ3VhZ2UtdHlwZXNjcmlwdCc7XG4gICAgaGlnaGxpZ2h0ZWRDb2RlLmlubmVySFRNTCA9IGh0bWw7XG4gICAgaGlnaGxpZ2h0ZWRQcmUuYXBwZW5kQ2hpbGQoaGlnaGxpZ2h0ZWRDb2RlKTtcbiAgICBzbG90LnJlcGxhY2VXaXRoKGhpZ2hsaWdodGVkUHJlKTtcblxuICAgIGNvbnN0IGxpZ2h0UHJlID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdwcmUnKTtcbiAgICBpZiAobGlnaHRQcmUpIChsaWdodFByZSBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgfVxuXG4gIHByaXZhdGUgX2dldENvZGVUZXh0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuc2hhZG93Um9vdCkge1xuICAgICAgY29uc3Qgc2hhZG93Q29kZSA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdwcmUgY29kZScpO1xuICAgICAgaWYgKHNoYWRvd0NvZGUpIHJldHVybiBzaGFkb3dDb2RlLnRleHRDb250ZW50IHx8ICcnO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50ZXh0Q29udGVudCB8fCAnJztcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2NvcHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRleHQgPSB0aGlzLl9nZXRDb2RlVGV4dCgpO1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dCk7XG4gICAgICB0aGlzLl9jb3B5U3RhdGUgPSAnY29waWVkJztcbiAgICAgIHRoaXMuX2ludGVybmFscz8uc3RhdGVzLmFkZCgnY29waWVkJyk7XG4gICAgICB0aGlzLl9pbnRlcm5hbHM/LnN0YXRlcy5kZWxldGUoJ2ZhaWxlZCcpO1xuICAgICAgdGhpcy5fdXBkYXRlQ29weUJ1dHRvbkRPTSgpO1xuICAgICAgdGhpcy5fc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2NvcHlTdGF0ZSA9ICdpZGxlJztcbiAgICAgICAgdGhpcy5faW50ZXJuYWxzPy5zdGF0ZXMuZGVsZXRlKCdjb3BpZWQnKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29weUJ1dHRvbkRPTSgpO1xuICAgICAgfSwgMjAwMCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgbG9nLndhcm4oJ0NsaXBib2FyZCB3cml0ZSBmYWlsZWQ6JywgZSk7XG4gICAgICB0aGlzLl9pbnRlcm5hbHM/LnN0YXRlcy5hZGQoJ2ZhaWxlZCcpO1xuICAgICAgdGhpcy5faW50ZXJuYWxzPy5zdGF0ZXMuZGVsZXRlKCdjb3BpZWQnKTtcbiAgICAgIHRoaXMuX3VwZGF0ZUNvcHlCdXR0b25ET00oKTtcbiAgICAgIHRoaXMuX3NldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jb3B5U3RhdGUgPSAnaWRsZSc7XG4gICAgICAgIHRoaXMuX2ludGVybmFscz8uc3RhdGVzLmRlbGV0ZSgnZmFpbGVkJyk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvcHlCdXR0b25ET00oKTtcbiAgICAgIH0sIDIwMDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUNvcHlCdXR0b25ET00oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNoYWRvd1Jvb3QpIHJldHVybjtcbiAgICBjb25zdCBidG4gPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLmNvcHktYnRuJyk7XG4gICAgaWYgKCFidG4pIHJldHVybjtcbiAgICBidG4uY2xhc3NMaXN0LnRvZ2dsZSgnY29waWVkJywgdGhpcy5fY29weVN0YXRlID09PSAnY29waWVkJyk7XG4gICAgYnRuLmNsYXNzTGlzdC50b2dnbGUoJ2ZhaWxlZCcsIHRoaXMuX2NvcHlTdGF0ZSA9PT0gJ2ZhaWxlZCcpO1xuICAgIGlmICh0aGlzLl9jb3B5U3RhdGUgPT09ICdjb3BpZWQnKSBidG4udGV4dENvbnRlbnQgPSAnQ29waWVkISc7XG4gICAgZWxzZSBpZiAodGhpcy5fY29weVN0YXRlID09PSAnZmFpbGVkJykgYnRuLnRleHRDb250ZW50ID0gJ0ZhaWxlZCc7XG4gICAgZWxzZSBidG4udGV4dENvbnRlbnQgPSAnQ29weSc7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgT3BlbkNvZGVCbG9jaztcblxuLy8gR3VhcmQ6IGlkZW1wb3RlbnQgYWNyb3NzIFNTUiBwYXRoc1xuaWYgKHR5cGVvZiBjdXN0b21FbGVtZW50cyAhPT0gJ3VuZGVmaW5lZCcgJiYgIWN1c3RvbUVsZW1lbnRzLmdldCh0YWdOYW1lKSkge1xuICBjdXN0b21FbGVtZW50cy5kZWZpbmUodGFnTmFtZSwgT3BlbkNvZGVCbG9jayk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDLEdBQ3ZDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBbUJDLEdBRUQsU0FBUyxXQUFXLFFBQVEsdUJBQXVCO0FBQ25ELFNBQVMsVUFBVSxRQUE2QixnQ0FBZ0M7QUFDaEYsU0FBUyxZQUFZLFFBQVEsMkJBQTJCO0FBQ3hELE9BQU8sTUFBTSxVQUFVLGtCQUFrQjtBQUV6QyxNQUFNLE1BQU0sYUFBYTtBQUV6QixNQUFNLFFBQXdCLElBQUk7QUFDbEMsTUFBTSxXQUFXLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrR25CLENBQUM7QUFFRCxPQUFPLE1BQU0sc0JBQXNCO0VBQ2pDLE9BQWdCLFNBQVM7SUFBQztHQUFNLENBQUM7RUFFekIsYUFBMkMsT0FBTztFQUNsRCx1QkFBdUIsTUFBTTtFQUM3QixvQkFBb0IsRUFBRTtFQUM5QixPQUFlLHdCQUF3QixJQUFJO0VBRWxDLFNBQTBEO0lBQ2pFLFNBQ0k7UUFDQSxDQUFDLE9BQU8sS0FBSztR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
|
package/src/open-hero-ping.d.ts
CHANGED
|
@@ -18,9 +18,8 @@ export default class HeroPing extends OpenElement {
|
|
|
18
18
|
apiUrl: string;
|
|
19
19
|
_state: 'idle' | 'loading' | 'ok' | 'err';
|
|
20
20
|
_msg: string;
|
|
21
|
-
private
|
|
21
|
+
private _fetchAbort?: any;
|
|
22
22
|
override connectedCallback(): void;
|
|
23
|
-
override disconnectedCallback(): void;
|
|
24
23
|
_fetch: () => Promise<void>;
|
|
25
24
|
override render(): ReturnType<typeof OpenElement.prototype.render>;
|
|
26
25
|
private _renderToDom: any;
|
package/src/open-hero-ping.js
CHANGED
|
@@ -76,27 +76,26 @@ export default class HeroPing extends OpenElement {
|
|
|
76
76
|
apiUrl = '';
|
|
77
77
|
_state = 'idle';
|
|
78
78
|
_msg = '';
|
|
79
|
-
|
|
79
|
+
_fetchAbort;
|
|
80
80
|
connectedCallback() {
|
|
81
81
|
super.connectedCallback();
|
|
82
|
+
this._lifecycleSignal().addEventListener('abort', ()=>this._fetchAbort?.abort(), {
|
|
83
|
+
once: true
|
|
84
|
+
});
|
|
82
85
|
// DsdElement handles shadow root creation + initial render.
|
|
83
86
|
// Fetch after DOM is ready.
|
|
84
87
|
this._fetch();
|
|
85
88
|
}
|
|
86
|
-
disconnectedCallback() {
|
|
87
|
-
super.disconnectedCallback();
|
|
88
|
-
this._abortController?.abort();
|
|
89
|
-
}
|
|
90
89
|
_fetch = async ()=>{
|
|
91
|
-
this.
|
|
92
|
-
this.
|
|
90
|
+
this._fetchAbort?.abort();
|
|
91
|
+
this._fetchAbort = new AbortController();
|
|
93
92
|
this._state = 'loading';
|
|
94
93
|
this._msg = '';
|
|
95
94
|
this._renderToDom();
|
|
96
95
|
try {
|
|
97
96
|
const url = this.apiUrl || 'https://demo.openelement.org/api';
|
|
98
97
|
const r = await fetch(url, {
|
|
99
|
-
signal: this.
|
|
98
|
+
signal: this._fetchAbort.signal
|
|
100
99
|
});
|
|
101
100
|
if (!r.ok) throw new Error(`HTTP ${r.status}`);
|
|
102
101
|
const d = await r.json();
|
|
@@ -133,4 +132,4 @@ export default class HeroPing extends OpenElement {
|
|
|
133
132
|
if (typeof customElements !== 'undefined' && !customElements.get(tagName)) {
|
|
134
133
|
customElements.define(tagName, HeroPing);
|
|
135
134
|
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy91aS9zcmMvb3Blbi1oZXJvLXBpbmcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4SW1wb3J0U291cmNlIEBvcGVuZWxlbWVudC9jb3JlICovXG4vKipcbiAqIEhlcm8gUGluZyAtIE9jZWFuIGNvbXBvbmVudCAodjAuMjAuMCBPY2Vhbi1Jc2xhbmQpLlxuICpcbiAqIENhbGxzIGEgcmVhbCBBUEkgZW5kcG9pbnQgYW5kIHNob3dzIGEgc3RhdHVzIGRvdCB3aXRoIHJlc3BvbnNlIGluZm8uXG4gKiBQdXJlIERzZEVsZW1lbnQgLSB6ZXJvIExpdCBkZXBlbmRlbmN5LiBTdGF0ZSBjaGFuZ2VzIGFyZSByZWZsZWN0ZWRcbiAqIGJ5IHJlLXJlbmRlcmluZyB0aGUgc2hhZG93IERPTSBhbmQgcmUtaHlkcmF0aW5nIGV2ZW50cy5cbiAqXG4gKiB2MC4yNC4xOiBNaWdyYXRlZCBmcm9tIGh0bWxgYCB0ZW1wbGF0ZSB0byBKU1ggKEFEUi0wMDU3KS5cbiAqXG4gKiBAY3NzcGFydCBkb3Qtc3RhdGljICAtIFRoZSBzdGF0aWMgc3RhdHVzIGRvdFxuICogQGNzc3BhcnQgZG90LWFuaW1hdGVkIC0gVGhlIGFuaW1hdGVkIHBpbmcgYnV0dG9uXG4gKi9cbmltcG9ydCB7IE9wZW5FbGVtZW50IH0gZnJvbSAnQG9wZW5lbGVtZW50L2VsZW1lbnQnO1xuaW1wb3J0IHsgU3R5bGVTaGVldCwgdHlwZSBTdHlsZVNoZWV0TGlrZSB9IGZyb20gJ0BvcGVuZWxlbWVudC9jb3JlL3N0eWxlLXNoZWV0JztcbmV4cG9ydCBjb25zdCB0YWdOYW1lID0gJ29wZW4taGVyby1waW5nJztcblxuY29uc3Qgc3R5bGVzOiBTdHlsZVNoZWV0TGlrZSA9IG5ldyBTdHlsZVNoZWV0KCk7XG5zdHlsZXMucmVwbGFjZVN5bmMoYFxuICA6aG9zdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXNpemUtMik7XG4gIH1cbiAgLnBpbmcge1xuICAgIHBhZGRpbmc6IHZhcigtLXNpemUtMSkgdmFyKC0tc2l6ZS01KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtMSk7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItc2l6ZS0xKSBzb2xpZCB2YXIoLS1ncmF5LTUpO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB2YXIoLS1ncmF5LTUpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTAwKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWZvbnQtbGV0dGVyc3BhY2luZy01KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS1lYXNlLTIpIHZhcigtLWR1cmF0aW9uLTIpO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbiAgLnBpbmc6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWdyYXktMik7XG4gICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmF5LTYpO1xuICB9XG4gIC5waW5nOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjM7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxuICAuZG90IHtcbiAgICB3aWR0aDogN3B4O1xuICAgIGhlaWdodDogN3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1yb3VuZCk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICB9XG4gIC5kb3QuaWRsZSB7IGJhY2tncm91bmQ6IHZhcigtLWdyYXktNik7IH1cbiAgLmRvdC5sb2FkaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmF5LTUpO1xuICAgIGFuaW1hdGlvbjogcHVsc2UgMC44cyBlYXNlLWluLW91dCBpbmZpbml0ZSBhbHRlcm5hdGU7XG4gIH1cbiAgLmRvdC5vayB7IGJhY2tncm91bmQ6IHZhcigtLXN1Y2Nlc3MpOyB9XG4gIC5kb3QuZXJyIHsgYmFja2dyb3VuZDogdmFyKC0tZXJyb3IpOyB9XG4gIC5pbmZvIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0wMCk7XG4gICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbiAgLmluZm8gLm9rIHsgY29sb3I6IHZhcigtLXN1Y2Nlc3MpOyB9XG4gIC5pbmZvIC5lcnIgeyBjb2xvcjogdmFyKC0tZXJyb3IpOyB9XG4gIEBrZXlmcmFtZXMgcHVsc2Uge1xuICAgIGZyb20geyBvcGFjaXR5OiAwLjQ7IH1cbiAgICB0byB7IG9wYWNpdHk6IDE7IH1cbiAgfVxuYCk7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEhlcm9QaW5nIGV4dGVuZHMgT3BlbkVsZW1lbnQge1xuICBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzID0gW3N0eWxlc107XG5cbiAgYXBpVXJsID0gJyc7XG4gIF9zdGF0ZTogJ2lkbGUnIHwgJ2xvYWRpbmcnIHwgJ29rJyB8ICdlcnInID0gJ2lkbGUnO1xuICBfbXNnID0gJyc7XG4gIHByaXZhdGUgX2ZldGNoQWJvcnQ/OiBBYm9ydENvbnRyb2xsZXI7XG5cbiAgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9saWZlY3ljbGVTaWduYWwoKS5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsICgpID0+IHRoaXMuX2ZldGNoQWJvcnQ/LmFib3J0KCksIHtcbiAgICAgIG9uY2U6IHRydWUsXG4gICAgfSk7XG4gICAgLy8gRHNkRWxlbWVudCBoYW5kbGVzIHNoYWRvdyByb290IGNyZWF0aW9uICsgaW5pdGlhbCByZW5kZXIuXG4gICAgLy8gRmV0Y2ggYWZ0ZXIgRE9NIGlzIHJlYWR5LlxuICAgIHRoaXMuX2ZldGNoKCk7XG4gIH1cblxuICBfZmV0Y2ggPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgdGhpcy5fZmV0Y2hBYm9ydD8uYWJvcnQoKTtcbiAgICB0aGlzLl9mZXRjaEFib3J0ID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX3N0YXRlID0gJ2xvYWRpbmcnO1xuICAgIHRoaXMuX21zZyA9ICcnO1xuICAgIHRoaXMuX3JlbmRlclRvRG9tKCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuYXBpVXJsIHx8ICdodHRwczovL2RlbW8ub3BlbmVsZW1lbnQub3JnL2FwaSc7XG4gICAgICBjb25zdCByID0gYXdhaXQgZmV0Y2godXJsLCB7IHNpZ25hbDogdGhpcy5fZmV0Y2hBYm9ydC5zaWduYWwgfSk7XG4gICAgICBpZiAoIXIub2spIHRocm93IG5ldyBFcnJvcihgSFRUUCAke3Iuc3RhdHVzfWApO1xuICAgICAgY29uc3QgZCA9IGF3YWl0IHIuanNvbigpO1xuICAgICAgdGhpcy5fc3RhdGUgPSAnb2snO1xuICAgICAgdGhpcy5fbXNnID0gYCR7ZC5mcmFtZXdvcmt9IHYke2QudmVyc2lvbn0gICR7ZC50aW1lc3RhbXAuc2xpY2UoMTEsIDE5KX1gO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uICYmIGUubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSByZXR1cm47XG4gICAgICBjb25zdCBlcnIgPSBlIGFzIEVycm9yO1xuICAgICAgdGhpcy5fc3RhdGUgPSAnZXJyJztcbiAgICAgIHRoaXMuX21zZyA9IFN0cmluZyhlKS5pbmNsdWRlcygnSFRUUCcpID8gZXJyLm1lc3NhZ2UgOiAnY29ubmVjdGlvbiBmYWlsZWQnO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLl9yZW5kZXJUb0RvbSgpO1xuICAgIH1cbiAgfTtcblxuICBvdmVycmlkZSByZW5kZXIoKTogUmV0dXJuVHlwZTx0eXBlb2YgT3BlbkVsZW1lbnQucHJvdG90eXBlLnJlbmRlcj4ge1xuICAgIGNvbnN0IGRvdENsYXNzID0gYGRvdCAke3RoaXMuX3N0YXRlfWA7XG4gICAgY29uc3QgbG9hZGluZyA9IHRoaXMuX3N0YXRlID09PSAnbG9hZGluZyc7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT17ZG90Q2xhc3N9IHBhcnQ9J2RvdC1zdGF0aWMnPjwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9J2J1dHRvbidcbiAgICAgICAgICBjbGFzc05hbWU9J3BpbmcnXG4gICAgICAgICAgcGFydD0nZG90LWFuaW1hdGVkJ1xuICAgICAgICAgIGRpc2FibGVkPXtsb2FkaW5nfVxuICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuX2ZldGNofVxuICAgICAgICA+XG4gICAgICAgICAge2xvYWRpbmcgPyAncGluZ2luZy4uLicgOiAncGluZyBzZXJ2ZXInfVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAge3RoaXMuX21zZyAmJiAoXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdpbmZvJz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17dGhpcy5fc3RhdGV9Pnt0aGlzLl9tc2d9PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cblxuICAvKiogUmUtcmVuZGVyIHNoYWRvdyBET00gYW5kIHJlLWh5ZHJhdGUgY2xpY2sgZXZlbnRzLiAqL1xuICBwcml2YXRlIF9yZW5kZXJUb0RvbSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hhZG93Um9vdCkgcmV0dXJuO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cbn1cblxuLy8gR3VhcmQ6IGlkZW1wb3RlbnQgYWNyb3NzIFNTUiBwYXRoc1xuaWYgKHR5cGVvZiBjdXN0b21FbGVtZW50cyAhPT0gJ3VuZGVmaW5lZCcgJiYgIWN1c3RvbUVsZW1lbnRzLmdldCh0YWdOYW1lKSkge1xuICBjdXN0b21FbGVtZW50cy5kZWZpbmUodGFnTmFtZSwgSGVyb1BpbmcpO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1QyxHQUN2Qzs7Ozs7Ozs7Ozs7Q0FXQyxHQUNELFNBQVMsV0FBVyxRQUFRLHVCQUF1QjtBQUNuRCxTQUFTLFVBQVUsUUFBNkIsZ0NBQWdDO0FBQ2hGLE9BQU8sTUFBTSxVQUFVLGlCQUFpQjtBQUV4QyxNQUFNLFNBQXlCLElBQUk7QUFDbkMsT0FBTyxXQUFXLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVEcEIsQ0FBQztBQUVELGVBQWUsTUFBTSxpQkFBaUI7RUFDcEMsT0FBZ0IsU0FBUztJQUFDO0dBQU8sQ0FBQztFQUVsQyxTQUFTLEdBQUc7RUFDWixTQUE0QyxPQUFPO0VBQ25ELE9BQU8sR0FBRztFQUNGLFlBQThCO0VBRTdCLG9CQUEwQjtJQUNqQyxLQUFLLENBQUM7SUFDTixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxJQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUztNQUNqRixNQUFNO0lBQ1I7SUFDQSw0REFBNEQ7SUFDNUQsNEJBQTRCO0lBQzVCLElBQUksQ0FBQyxNQUFNO0VBQ2I7RUFFQSxTQUFTO0lBQ1AsSUFBSSxDQUFDLFdBQVcsRUFBRTtJQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUk7SUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRztJQUNkLElBQUksQ0FBQyxJQUFJLEdBQUc7SUFDWixJQUFJLENBQUMsWUFBWTtJQUNqQixJQUFJO01BQ0YsTUFBTSxNQUFNLElBQUksQ0FBQyxNQUFNLElBQUk7TUFDM0IsTUFBTSxJQUFJLE1BQU0sTUFBTSxLQUFLO1FBQUUsUUFBUSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU07TUFBQztNQUM3RCxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUU7TUFDN0MsTUFBTSxJQUFJLE1BQU0sRUFBRSxJQUFJO01BQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUc7TUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLO0lBQzFFLEVBQUUsT0FBTyxHQUFZO01BQ25CLElBQUksYUFBYSxnQkFBZ0IsRUFBRSxJQUFJLEtBQUssY0FBYztNQUMxRCxNQUFNLE1BQU07TUFDWixJQUFJLENBQUMsTUFBTSxHQUFHO01BQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLEdBQUcsUUFBUSxDQUFDLFVBQVUsSUFBSSxPQUFPLEdBQUc7SUFDekQsU0FBVTtNQUNSLElBQUksQ0FBQyxZQUFZO0lBQ25CO0VBQ0YsRUFBRTtFQUVPLFNBQTBEO0lBQ2pFLE1BQU0sV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO0lBQ3JDLE1BQU0sVUFBVSxJQUFJLENBQUMsTUFBTSxLQUFLO0lBQ2hDLFNBQ0k7UUFDQSxDQUFDLEtBQUssV0FBVyxVQUFVLEtBQUssZUFBZSxLQUFLO1FBQ3BELENBQUMsT0FDQyxLQUFLLFNBQ0wsVUFBVSxPQUNWLEtBQUssZUFDTCxVQUFVLFNBQ1YsU0FBUyxJQUFJLENBQUMsTUFBTSxFQUNyQjtVQUNDLENBQUMsVUFBVSxlQUFlLGNBQWM7UUFDMUMsRUFBRSxPQUFPO1FBQ1QsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUNQLEtBQUssVUFBVSxPQUFPO1lBQ3JCLENBQUMsS0FBSyxXQUFXLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLO1VBQ2xELEVBQUUsTUFDRjtNQUNKO0VBRUo7RUFFQSxzREFBc0QsR0FDdEQsQUFBUSxlQUFxQjtJQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtJQUN0QixJQUFJLENBQUMsTUFBTTtFQUNiO0FBQ0Y7QUFFQSxxQ0FBcUM7QUFDckMsSUFBSSxPQUFPLG1CQUFtQixlQUFlLENBQUMsZUFBZSxHQUFHLENBQUMsVUFBVTtFQUN6RSxlQUFlLE1BQU0sQ0FBQyxTQUFTO0FBQ2pDIn0=
|
|
@@ -5,3 +5,11 @@
|
|
|
5
5
|
* and SSR bundles do not depend on a file-system path next to import.meta.url.
|
|
6
6
|
*/ import { type StyleSheetLike } from '@openelement/core/style-sheet';
|
|
7
7
|
export declare const openPropsTokenSheet: StyleSheetLike;
|
|
8
|
+
/**
|
|
9
|
+
* Page-level variant of the token sheet.
|
|
10
|
+
*
|
|
11
|
+
* Uses `:root` selectors so tokens cascade into every shadow DOM via CSS
|
|
12
|
+
* custom-property inheritance. This is the sheet that should be injected
|
|
13
|
+
* into the document `<head>`; component shadow roots can then consume the
|
|
14
|
+
* tokens without adopting the host-level sheet themselves.
|
|
15
|
+
*/ export declare const openPropsRootSheet: StyleSheetLike;
|
package/src/open-props-tokens.js
CHANGED
|
@@ -4,8 +4,12 @@
|
|
|
4
4
|
* Inlined at build time so consumers do not need to ship a separate CSS asset
|
|
5
5
|
* and SSR bundles do not depend on a file-system path next to import.meta.url.
|
|
6
6
|
*/ import { StyleSheet } from '@openelement/core/style-sheet';
|
|
7
|
+
function toRootCss(hostCss) {
|
|
8
|
+
return hostCss.replace(/:host-context\(\[data-theme='dark'\]\),\s*\n\s*/g, '').replace(/:host\(\[data-theme='dark'\]\)/g, ":root[data-theme='dark']").replace(/:host/g, ':root');
|
|
9
|
+
}
|
|
7
10
|
const sheet = new StyleSheet();
|
|
8
|
-
|
|
11
|
+
const tokenCss = `
|
|
12
|
+
/**
|
|
9
13
|
* @openelement/ui - Open Props Token Sheet
|
|
10
14
|
*
|
|
11
15
|
* Shared design tokens (spacing, gray palette, border radius, typography,
|
|
@@ -312,11 +316,11 @@ sheet.replaceSync(`/**
|
|
|
312
316
|
}
|
|
313
317
|
|
|
314
318
|
/* ═══════════════════════════════════════════════
|
|
315
|
-
Dark Mode —
|
|
316
|
-
|
|
319
|
+
Dark Mode — matches hosts with data-theme="dark".
|
|
320
|
+
Document-level overrides live in openPropsRootSheet
|
|
321
|
+
(:root[data-theme="dark"]) so all shadow DOMs inherit.
|
|
317
322
|
═══════════════════════════════════════════════ */
|
|
318
|
-
:host([data-theme='dark'])
|
|
319
|
-
:host-context([data-theme='dark']) {
|
|
323
|
+
:host([data-theme='dark']) {
|
|
320
324
|
--gray-0: #030507;
|
|
321
325
|
--gray-1: #0d0f12;
|
|
322
326
|
--gray-2: #16191d;
|
|
@@ -439,7 +443,7 @@ sheet.replaceSync(`/**
|
|
|
439
443
|
--teal-7: #20c997;
|
|
440
444
|
--teal-8: #38d9a9;
|
|
441
445
|
--teal-9: #63e6be;
|
|
442
|
-
--
|
|
446
|
+
--teal-10: #96f2d7;
|
|
443
447
|
--teal-11: #c3fae8;
|
|
444
448
|
--teal-12: #e6fcf5;
|
|
445
449
|
--cyan-0: #053038;
|
|
@@ -469,6 +473,16 @@ sheet.replaceSync(`/**
|
|
|
469
473
|
--violet-11: #f3eaff;
|
|
470
474
|
--violet-12: #fbf7ff;
|
|
471
475
|
}
|
|
472
|
-
|
|
476
|
+
`;
|
|
477
|
+
sheet.replaceSync(tokenCss);
|
|
473
478
|
export const openPropsTokenSheet = sheet;
|
|
474
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy91aS9zcmMvb3Blbi1wcm9wcy10b2tlbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAb3BlbmVsZW1lbnQvdWkgLSBPcGVuIFByb3BzIFRva2VuIFNoZWV0XG4gKlxuICogSW5saW5lZCBhdCBidWlsZCB0aW1lIHNvIGNvbnN1bWVycyBkbyBub3QgbmVlZCB0byBzaGlwIGEgc2VwYXJhdGUgQ1NTIGFzc2V0XG4gKiBhbmQgU1NSIGJ1bmRsZXMgZG8gbm90IGRlcGVuZCBvbiBhIGZpbGUtc3lzdGVtIHBhdGggbmV4dCB0byBpbXBvcnQubWV0YS51cmwuXG4gKi9cblxuaW1wb3J0IHsgU3R5bGVTaGVldCwgdHlwZSBTdHlsZVNoZWV0TGlrZSB9IGZyb20gJ0BvcGVuZWxlbWVudC9jb3JlL3N0eWxlLXNoZWV0JztcblxuY29uc3Qgc2hlZXQ6IFN0eWxlU2hlZXRMaWtlID0gbmV3IFN0eWxlU2hlZXQoKTtcbnNoZWV0LnJlcGxhY2VTeW5jKGAvKipcbiAqIEBvcGVuZWxlbWVudC91aSAtIE9wZW4gUHJvcHMgVG9rZW4gU2hlZXRcbiAqXG4gKiBTaGFyZWQgZGVzaWduIHRva2VucyAoc3BhY2luZywgZ3JheSBwYWxldHRlLCBib3JkZXIgcmFkaXVzLCB0eXBvZ3JhcGh5LFxuICogc2VtYW50aWMgYnJhbmQvdGV4dC9iZy9ib3JkZXIgdG9rZW5zKSB0aGF0IGFsbCBvcGVuRWxlbWVudCBjb21wb25lbnRzXG4gKiBjYW4gYWRvcHQgdmlhIFxcYHN0YXRpYyBzdHlsZXNcXGAuXG4gKlxuICogQ2xlYW5lZCBkZWFkIHRva2Vuczsgb25seSB1c2VkIHRva2VucyBzdXJ2aXZlLlxuICovXG5cbjpob3N0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgY29udGFpbjogbGF5b3V0IHN0eWxlO1xuXG4gIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICBTcGFjaW5nIHNjYWxlXG4gICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuICAtLXNpemUtMTogNHB4O1xuICAtLXNpemUtMjogOHB4O1xuICAtLXNpemUtMzogMTJweDtcbiAgLS1zaXplLTQ6IDE2cHg7XG4gIC0tc2l6ZS01OiAyMHB4O1xuICAtLXNpemUtNjogMjRweDtcbiAgLS1zaXplLTc6IDI4cHg7XG4gIC0tc2l6ZS04OiAzMnB4O1xuICAtLXNpemUtOTogMzZweDtcbiAgLS1zaXplLTEwOiA0MHB4O1xuICAtLXNpemUtMTI6IDQ4cHg7XG4gIC0tc2l6ZS0xNjogNjRweDtcblxuICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgICAgR3JheSBwYWxldHRlIChsaWdodCBtb2RlIGJhc2UpXG4gICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuICAtLWdyYXktMDogI2Y4ZjlmYTtcbiAgLS1ncmF5LTE6ICNmMWYzZjU7XG4gIC0tZ3JheS0yOiAjZTllY2VmO1xuICAtLWdyYXktMzogI2RlZTJlNjtcbiAgLS1ncmF5LTQ6ICNjZWQ0ZGE7XG4gIC0tZ3JheS01OiAjYWRiNWJkO1xuICAtLWdyYXktNjogIzg2OGU5NjtcbiAgLS1ncmF5LTc6ICM0OTUwNTc7XG4gIC0tZ3JheS04OiAjMzQzYTQwO1xuICAtLWdyYXktOTogIzIxMjUyOTtcbiAgLS1ncmF5LTEwOiAjMTYxOTFkO1xuICAtLWdyYXktMTE6ICMwZDBmMTI7XG4gIC0tZ3JheS0xMjogIzAzMDUwNztcblxuICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgICAgQm9yZGVyIHJhZGl1c1xuICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbiAgLS1yYWRpdXMtMTogNnB4O1xuICAtLXJhZGl1cy0yOiA4cHg7XG4gIC0tcmFkaXVzLTM6IDEycHg7XG4gIC0tcmFkaXVzLTQ6IDIwcHg7XG4gIC0tcmFkaXVzLXJvdW5kOiA5OTk5cHg7XG5cbiAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICAgIEJvcmRlciBzaXplXG4gICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuICAtLWJvcmRlci1zaXplLTE6IDFweDtcbiAgLS1ib3JkZXItc2l6ZS0yOiAycHg7XG5cbiAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICAgIFNoYWRvd3NcbiAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4gIC0tc2hhZG93LTE6IDAgMXB4IDNweCAwIHJnYigwIDAgMCAvIDAuMSksIDAgMXB4IDJweCAtMXB4IHJnYigwIDAgMCAvIDAuMSk7XG5cbiAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICAgIFR5cG9ncmFwaHlcbiAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4gIC0tZm9udC1zYW5zOiAnSW5zdHJ1bWVudCBTYW5zJywgSW50ZXIsIEFyaWFsLCBIZWx2ZXRpY2EsIHN5c3RlbS11aSwgc2Fucy1zZXJpZjtcbiAgLS1mb250LW1vbm86ICdTRiBNb25vJywgJ0ZpcmEgQ29kZScsICdGaXJhIE1vbm8nLCBtb25vc3BhY2U7XG4gIC0tZm9udC1zaXplLTAwOiAwLjc1cmVtO1xuICAtLWZvbnQtc2l6ZS0wOiAwLjg3NXJlbTtcbiAgLS1mb250LXNpemUtMTogMXJlbTtcbiAgLS1mb250LXNpemUtMjogMS4yNXJlbTtcbiAgLS1mb250LXNpemUtMzogMS41cmVtO1xuICAtLWZvbnQtc2l6ZS00OiAycmVtO1xuICAtLWZvbnQtc2l6ZS01OiAyLjVyZW07XG4gIC0tZm9udC1zaXplLTY6IDMuMTI1cmVtO1xuICAtLWZvbnQtc2l6ZS03OiA0cmVtO1xuICAtLWZvbnQtc2l6ZS04OiA1LjVyZW07XG4gIC0tZm9udC13ZWlnaHQtNDogNDAwO1xuICAtLWZvbnQtd2VpZ2h0LTU6IDUwMDtcbiAgLS1mb250LXdlaWdodC02OiA2MDA7XG4gIC0tZm9udC13ZWlnaHQtNzogNzAwO1xuICAtLWZvbnQtd2VpZ2h0LTg6IDgwMDtcbiAgLS1mb250LXdlaWdodC05OiA5MDA7XG4gIC0tZm9udC1sZXR0ZXJzcGFjaW5nLTA6IDA7XG4gIC0tZm9udC1sZXR0ZXJzcGFjaW5nLTE6IDA7XG4gIC0tZm9udC1sZXR0ZXJzcGFjaW5nLTI6IDA7XG4gIC0tZm9udC1sZXR0ZXJzcGFjaW5nLTM6IDA7XG4gIC0tZm9udC1sZXR0ZXJzcGFjaW5nLTQ6IDAuMDRlbTtcbiAgLS1mb250LWxldHRlcnNwYWNpbmctNTogMC4wOGVtO1xuICAtLWZvbnQtbGluZWhlaWdodC0xOiAwLjk1O1xuICAtLWZvbnQtbGluZWhlaWdodC0zOiAxLjU7XG4gIC0tZm9udC1saW5laGVpZ2h0LTQ6IDEuNzU7XG5cbiAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICAgIEFuaW1hdGlvbiBlYXNpbmdcbiAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4gIC0tZWFzZS0xOiBjdWJpYy1iZXppZXIoMC4yNSwgMCwgMC41LCAxKTtcbiAgLS1lYXNlLTI6IGN1YmljLWJlemllcigwLjQ1LCAwLCAwLjI1LCAxKTtcbiAgLS1lYXNlLTM6IGN1YmljLWJlemllcigwLjUsIDAsIDAsIDEpO1xuICAtLWR1cmF0aW9uLTI6IDIwMG1zO1xuXG4gIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICBCcmFuZCB0b2tlbnNcbiAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4gIC0tYnJhbmQ6IHZhcigtLXZpb2xldC02KTtcbiAgLS1icmFuZC1ob3ZlcjogdmFyKC0tdmlvbGV0LTcpO1xuICAtLWJyYW5kLWxpZ2h0OiB2YXIoLS12aW9sZXQtNCk7XG4gIC0tYnJhbmQtcGFsZTogdmFyKC0tdmlvbGV0LTEpO1xuICAtLWJyYW5kLWRlZXA6IHZhcigtLXZpb2xldC0xMSk7XG4gIC0tYnJhbmQtc3VidGxlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnJhbmQpIDEyJSwgdHJhbnNwYXJlbnQpO1xuICAtLWJyYW5kLWdsb3c6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1icmFuZCkgMjQlLCB0cmFuc3BhcmVudCk7XG4gIC0tb24tYnJhbmQ6IHZhcigtLWdyYXktMCk7XG4gIC0tc2l0ZS1jb250YWluZXI6IDExMjBweDtcbiAgLS1zaXRlLWNvbnRhaW5lci13aWRlOiAxMjQwcHg7XG4gIC0tc2l0ZS1jb250YWluZXItcmVhZGluZzogNzYwcHg7XG4gIC0tc2l0ZS1zZWN0aW9uLWJsb2NrOiB2YXIoLS1zaXplLTE2KTtcbiAgLS1zaXRlLXNlY3Rpb24tZ2FwOiB2YXIoLS1zaXplLTgpO1xuXG4gIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICBDb21wb25lbnQgU2VtYW50aWMgVG9rZW5zIChmb3IgZGFpc3lVSSBjbGFzc2VzKVxuICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbiAgLS1idG4tcGFkZGluZy14OiB2YXIoLS1zaXplLTQpO1xuICAtLWJ0bi1wYWRkaW5nLXk6IHZhcigtLXNpemUtMik7XG4gIC0tYnRuLXJhZGl1czogdmFyKC0tcmFkaXVzLXJvdW5kKTtcbiAgLS1idG4tZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMCk7XG4gIC0tYnRuLWZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC03KTtcbiAgLS1idG4tdGV4dC1jYXNlOiBub25lO1xuICAtLWNhcmQtcGFkZGluZzogdmFyKC0tc2l6ZS02KTtcbiAgLS1jYXJkLXJhZGl1czogdmFyKC0tcmFkaXVzLTEpO1xuICAtLWJhZGdlLXBhZGRpbmcteDogdmFyKC0tc2l6ZS0yKTtcbiAgLS1iYWRnZS1wYWRkaW5nLXk6IDJweDtcbiAgLS1iYWRnZS1yYWRpdXM6IHZhcigtLXJhZGl1cy1yb3VuZCk7XG4gIC0tYmFkZ2UtZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMDApO1xuICAtLWFsZXJ0LXBhZGRpbmc6IHZhcigtLXNpemUtNCk7XG4gIC0tYWxlcnQtcmFkaXVzOiB2YXIoLS1yYWRpdXMtMik7XG4gIC0taW5wdXQtcGFkZGluZy14OiB2YXIoLS1zaXplLTMpO1xuICAtLWlucHV0LXBhZGRpbmcteTogdmFyKC0tc2l6ZS0yKTtcbiAgLS1pbnB1dC1yYWRpdXM6IHZhcigtLXJhZGl1cy0xKTtcbiAgLS1pbnB1dC1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0wKTtcbiAgLS1pbnB1dC1ib3JkZXItY29sb3I6IHZhcigtLWJvcmRlcik7XG4gIC0tZGl2aWRlci1tYXJnaW46IHZhcigtLXNpemUtNCkgMDtcbiAgLS1kaXZpZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXIpO1xuICAtLXRvb2x0aXAtYmc6IHZhcigtLWdyYXktOSk7XG4gIC0tdG9vbHRpcC1jb2xvcjogdmFyKC0tZ3JheS0wKTtcbiAgLS10b29sdGlwLXJhZGl1czogdmFyKC0tcmFkaXVzLTEpO1xuICAtLXRvb2x0aXAtcGFkZGluZzogdmFyKC0tc2l6ZS0xKSB2YXIoLS1zaXplLTIpO1xuICAtLW1vZGFsLWJnOiB2YXIoLS1iZy1lbGV2YXRlZCk7XG4gIC0tbW9kYWwtcmFkaXVzOiB2YXIoLS1yYWRpdXMtMyk7XG4gIC0tbW9kYWwtcGFkZGluZzogdmFyKC0tc2l6ZS02KTtcbiAgLS1tZW51LXBhZGRpbmc6IHZhcigtLXNpemUtMik7XG4gIC0tbWVudS1yYWRpdXM6IHZhcigtLXJhZGl1cy0yKTtcbiAgLS1tZW51LWl0ZW0tcGFkZGluZzogdmFyKC0tc2l6ZS0yKSB2YXIoLS1zaXplLTQpO1xuICAtLWRyb3Bkb3duLWJnOiB2YXIoLS1iZy1lbGV2YXRlZCk7XG4gIC0tZHJvcGRvd24tcmFkaXVzOiB2YXIoLS1yYWRpdXMtMik7XG4gIC0tdGFiLXBhZGRpbmc6IHZhcigtLXNpemUtMikgdmFyKC0tc2l6ZS00KTtcbiAgLS10YWItcmFkaXVzOiB2YXIoLS1yYWRpdXMtMSk7XG5cbiAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICAgIFVJIFNlbWFudGljIFRva2VucyAobGlnaHQgZGVmYXVsdHMpXG4gICAgIERhcmsgbW9kZSBvdmVycmlkZXMgdmlhIDpyb290W2RhdGEtdGhlbWU9XCJkYXJrXCJdIGluIFNTR1xuICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbiAgLS10ZXh0LXByaW1hcnk6IHZhcigtLWdyYXktOSk7XG4gIC0tdGV4dC1zZWNvbmRhcnk6IHZhcigtLWdyYXktNik7XG4gIC0tdGV4dC1tdXRlZDogdmFyKC0tZ3JheS01KTtcbiAgLS1iZy1iYXNlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdmlvbGV0LTApIDQyJSwgdmFyKC0tZ3JheS0wKSk7XG4gIC0tYmctc3VyZmFjZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXZpb2xldC0wKSAzMiUsIHZhcigtLWdyYXktMSkpO1xuICAtLWJnLWNhcmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS12aW9sZXQtMCkgMTglLCB2YXIoLS1ncmF5LTApKTtcbiAgLS1iZy1lbGV2YXRlZDogI2ZmZmZmZjtcbiAgLS1iZy1ob3ZlcjogdmFyKC0tZ3JheS0yKTtcbiAgLS1iZy1tdXRlZDogdmFyKC0tZ3JheS0xKTtcbiAgLS1iZy1jb2RlOiB2YXIoLS1ncmF5LTExKTtcbiAgLS1jb2RlLWJvcmRlcjogdmFyKC0tZ3JheS04KTtcbiAgLS1jb2RlLXRleHQ6IHZhcigtLWdyYXktMik7XG4gIC0tYm9yZGVyOiB2YXIoLS1ncmF5LTMpO1xuICAtLWJvcmRlci1ob3ZlcjogdmFyKC0tZ3JheS00KTtcbiAgLS1lcnJvcjogI2RjMzU0NTtcbiAgLS1lcnJvci1zdWJ0bGU6IHJnYmEoMjIwLCA1MywgNjksIDAuMSk7XG4gIC0tc3VjY2VzczogIzE2YTM0YTtcbiAgLS1zdWNjZXNzLXN1YnRsZTogcmdiYSgyMiwgMTYzLCA3NCwgMC4xKTtcbiAgLS13YXJuaW5nOiAjZDk3NzA2O1xuICAtLXdhcm5pbmctc3VidGxlOiByZ2JhKDIxNywgMTE5LCA2LCAwLjEpO1xuICAtLWluZm86ICMyNTYzZWI7XG4gIC0taW5mby1zdWJ0bGU6IHJnYmEoMzcsIDk5LCAyMzUsIDAuMSk7XG4gIC0tb3ZlcmxheTogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAtLW5hdi1iZzogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJnLWJhc2UpIDg2JSwgdHJhbnNwYXJlbnQpO1xuICAtLW5hdi1oZWlnaHQ6IDcycHg7XG4gIC0tbmF2LWxpbmstY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7XG4gIC0tbmF2LWxpbmstaG92ZXI6IHZhcigtLWJyYW5kKTtcbiAgLS1uYXYtbGluay1zaXplOiB2YXIoLS1mb250LXNpemUtMCk7XG5cbiAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICAgIE9wZW4gUHJvcHMgQ29sb3IgU2NhbGVzIChsaWdodCBtb2RlKVxuICAgICBodHRwczovL29wZW4tcHJvcHMuc3R5bGVcbiAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4gIC0taW5kaWdvLTA6ICNlZGYyZmY7XG4gIC0taW5kaWdvLTE6ICNkYmU0ZmY7XG4gIC0taW5kaWdvLTI6ICNiYWM4ZmY7XG4gIC0taW5kaWdvLTM6ICM5MWE3ZmY7XG4gIC0taW5kaWdvLTQ6ICM3NDhmZmM7XG4gIC0taW5kaWdvLTU6ICM1YzdjZmE7XG4gIC0taW5kaWdvLTY6ICM0YzZlZjU7XG4gIC0taW5kaWdvLTc6ICM0MjYzZWI7XG4gIC0taW5kaWdvLTg6ICMzYjViZGI7XG4gIC0taW5kaWdvLTk6ICMzNjRmYzc7XG4gIC0taW5kaWdvLTEwOiAjMmIzOTkwO1xuICAtLWluZGlnby0xMTogIzFlMjY2ZDtcbiAgLS1pbmRpZ28tMTI6ICMxMTE4NGE7XG4gIC0tZ3JlZW4tMDogI2ViZmJlZTtcbiAgLS1ncmVlbi0xOiAjZDNmOWQ4O1xuICAtLWdyZWVuLTI6ICNiMmYyYmI7XG4gIC0tZ3JlZW4tMzogIzhjZTk5YTtcbiAgLS1ncmVlbi00OiAjNjlkYjdjO1xuICAtLWdyZWVuLTU6ICM1MWNmNjY7XG4gIC0tZ3JlZW4tNjogIzQwYzA1NztcbiAgLS1ncmVlbi03OiAjMzdiMjRkO1xuICAtLWdyZWVuLTg6ICMyZjllNDQ7XG4gIC0tZ3JlZW4tOTogIzJiOGEzZTtcbiAgLS1ncmVlbi0xMDogIzIyNjIzMTtcbiAgLS1ncmVlbi0xMTogIzFhNDcyNTtcbiAgLS1ncmVlbi0xMjogIzBmMmQxODtcbiAgLS1yZWQtMDogI2ZmZjVmNTtcbiAgLS1yZWQtMTogI2ZmZTNlMztcbiAgLS1yZWQtMjogI2ZmYzljOTtcbiAgLS1yZWQtMzogI2ZmYThhODtcbiAgLS1yZWQtNDogI2ZmODc4NztcbiAgLS1yZWQtNTogI2ZmNmI2YjtcbiAgLS1yZWQtNjogI2ZhNTI1MjtcbiAgLS1yZWQtNzogI2YwM2UzZTtcbiAgLS1yZWQtODogI2UwMzEzMTtcbiAgLS1yZWQtOTogI2M5MmEyYTtcbiAgLS1yZWQtMTA6ICNhNjFlMWU7XG4gIC0tcmVkLTExOiAjODIxNTE1O1xuICAtLXJlZC0xMjogIzU0MGQwZDtcbiAgLS1vcmFuZ2UtMDogI2ZmZjRlNjtcbiAgLS1vcmFuZ2UtMTogI2ZmZThjYztcbiAgLS1vcmFuZ2UtMjogI2ZmZDhhODtcbiAgLS1vcmFuZ2UtMzogI2ZmYzA3ODtcbiAgLS1vcmFuZ2UtNDogI2ZmYTk0ZDtcbiAgLS1vcmFuZ2UtNTogI2ZmOTIyYjtcbiAgLS1vcmFuZ2UtNjogI2ZkN2UxNDtcbiAgLS1vcmFuZ2UtNzogI2Y3NjcwNztcbiAgLS1vcmFuZ2UtODogI2U4NTkwYztcbiAgLS1vcmFuZ2UtOTogI2Q5NDgwZjtcbiAgLS1vcmFuZ2UtMTA6ICNiMDNhMDA7XG4gIC0tb3JhbmdlLTExOiAjODcyYTAwO1xuICAtLW9yYW5nZS0xMjogIzVjMWEwMDtcbiAgLS1ibHVlLTA6ICNlN2Y1ZmY7XG4gIC0tYmx1ZS0xOiAjZDBlYmZmO1xuICAtLWJsdWUtMjogI2E1ZDhmZjtcbiAgLS1ibHVlLTM6ICM3NGMwZmM7XG4gIC0tYmx1ZS00OiAjNGRhYmY3O1xuICAtLWJsdWUtNTogIzMzOWFmMDtcbiAgLS1ibHVlLTY6ICMyMjhiZTY7XG4gIC0tYmx1ZS03OiAjMWM3ZWQ2O1xuICAtLWJsdWUtODogIzE5NzFjMjtcbiAgLS1ibHVlLTk6ICMxODY0YWI7XG4gIC0tYmx1ZS0xMDogIzEzNGU4YTtcbiAgLS1ibHVlLTExOiAjMGUzYjY5O1xuICAtLWJsdWUtMTI6ICMwOTI4NDg7XG4gIC0tdGVhbC0wOiAjZTZmY2Y1O1xuICAtLXRlYWwtMTogI2MzZmFlODtcbiAgLS10ZWFsLTI6ICM5NmYyZDc7XG4gIC0tdGVhbC0zOiAjNjNlNmJlO1xuICAtLXRlYWwtNDogIzM4ZDlhOTtcbiAgLS10ZWFsLTU6ICMyMGM5OTc7XG4gIC0tdGVhbC02OiAjMTJiODg2O1xuICAtLXRlYWwtNzogIzBjYTY3ODtcbiAgLS10ZWFsLTg6ICMwOTkyNjg7XG4gIC0tdGVhbC05OiAjMDg3ZjViO1xuICAtLXRlYWwtMTA6ICMwNjY2NDk7XG4gIC0tdGVhbC0xMTogIzA1NGQzNztcbiAgLS10ZWFsLTEyOiAjMDMzMzI1O1xuICAtLWN5YW4tMDogI2UzZmFmYztcbiAgLS1jeWFuLTE6ICNjNWY2ZmE7XG4gIC0tY3lhbi0yOiAjOTllOWYyO1xuICAtLWN5YW4tMzogIzY2ZDllODtcbiAgLS1jeWFuLTQ6ICMzYmM5ZGI7XG4gIC0tY3lhbi01OiAjMjJiOGNmO1xuICAtLWN5YW4tNjogIzE1YWFiZjtcbiAgLS1jeWFuLTc6ICMxMDk4YWQ7XG4gIC0tY3lhbi04OiAjMGM4NTk5O1xuICAtLWN5YW4tOTogIzBiNzI4NTtcbiAgLS1jeWFuLTEwOiAjMDk1YzZiO1xuICAtLWN5YW4tMTE6ICMwNzQ2NTI7XG4gIC0tY3lhbi0xMjogIzA1MzAzODtcbiAgLS12aW9sZXQtMDogI2ZiZjdmZjtcbiAgLS12aW9sZXQtMTogI2YzZWFmZjtcbiAgLS12aW9sZXQtMjogI2U2ZDhmZjtcbiAgLS12aW9sZXQtMzogI2QwYmRmZjtcbiAgLS12aW9sZXQtNDogI2I1OWNmZjtcbiAgLS12aW9sZXQtNTogIzljN2RmMjtcbiAgLS12aW9sZXQtNjogIzgyNjJkYjtcbiAgLS12aW9sZXQtNzogIzZkNGNjNDtcbiAgLS12aW9sZXQtODogIzU4Mzk5ZTtcbiAgLS12aW9sZXQtOTogIzQyMjc3NDtcbiAgLS12aW9sZXQtMTA6ICMyZjFjNTI7XG4gIC0tdmlvbGV0LTExOiAjMjExNDNiO1xuICAtLXZpb2xldC0xMjogIzEzMGEyMjtcbn1cblxuLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICBEYXJrIE1vZGUg4oCUIGNhc2NhZGVzIGZyb20gOnJvb3RbZGF0YS10aGVtZT1cImRhcmtcIl1cbiAgIEFsbCBzaGFkb3cgRE9NcyBpbmhlcml0IHRoZXNlIG92ZXJyaWRlc1xuICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG46aG9zdChbZGF0YS10aGVtZT0nZGFyayddKSxcbjpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkge1xuICAtLWdyYXktMDogIzAzMDUwNztcbiAgLS1ncmF5LTE6ICMwZDBmMTI7XG4gIC0tZ3JheS0yOiAjMTYxOTFkO1xuICAtLWdyYXktMzogIzIxMjUyOTtcbiAgLS1ncmF5LTQ6ICMzNDNhNDA7XG4gIC0tZ3JheS01OiAjNDk1MDU3O1xuICAtLWdyYXktNjogIzg2OGU5NjtcbiAgLS1ncmF5LTc6ICNhZGI1YmQ7XG4gIC0tZ3JheS04OiAjY2VkNGRhO1xuICAtLWdyYXktOTogI2RlZTJlNjtcbiAgLS1ncmF5LTEwOiAjZTllY2VmO1xuICAtLWdyYXktMTE6ICNmMWYzZjU7XG4gIC0tZ3JheS0xMjogI2Y4ZjlmYTtcbiAgLS1icmFuZDogdmFyKC0tdmlvbGV0LTYpO1xuICAtLWJyYW5kLWhvdmVyOiB2YXIoLS12aW9sZXQtNyk7XG4gIC0tYnJhbmQtbGlnaHQ6IHZhcigtLXZpb2xldC00KTtcbiAgLS1icmFuZC1kZWVwOiB2YXIoLS12aW9sZXQtMTIpO1xuICAtLWJyYW5kLXN1YnRsZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyYW5kKSAxNiUsIHRyYW5zcGFyZW50KTtcbiAgLS1icmFuZC1nbG93OiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnJhbmQpIDIyJSwgdHJhbnNwYXJlbnQpO1xuICAtLW9uLWJyYW5kOiB2YXIoLS1ncmF5LTEyKTtcbiAgLS10ZXh0LXByaW1hcnk6IHZhcigtLWdyYXktMTApO1xuICAtLXRleHQtc2Vjb25kYXJ5OiB2YXIoLS1ncmF5LTcpO1xuICAtLXRleHQtbXV0ZWQ6IHZhcigtLWdyYXktNik7XG4gIC0tYmctYmFzZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXZpb2xldC0wKSAxOCUsIHZhcigtLWdyYXktMCkpO1xuICAtLWJnLXN1cmZhY2U6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS12aW9sZXQtMSkgMTQlLCB2YXIoLS1ncmF5LTEpKTtcbiAgLS1iZy1jYXJkOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdmlvbGV0LTIpIDEwJSwgdmFyKC0tZ3JheS0yKSk7XG4gIC0tYmctZWxldmF0ZWQ6IHZhcigtLWdyYXktMSk7XG4gIC0tYmctaG92ZXI6IHZhcigtLWdyYXktMyk7XG4gIC0tYmctY29kZTogdmFyKC0tZ3JheS0xKTtcbiAgLS1jb2RlLWJvcmRlcjogdmFyKC0tZ3JheS00KTtcbiAgLS1jb2RlLXRleHQ6IHZhcigtLWdyYXktMTApO1xuICAtLWJvcmRlcjogdmFyKC0tZ3JheS0zKTtcbiAgLS1ib3JkZXItaG92ZXI6IHZhcigtLWdyYXktNCk7XG4gIC0tZXJyb3I6ICNmODcxNzE7XG4gIC0tZXJyb3Itc3VidGxlOiByZ2JhKDI0OCwgMTEzLCAxMTMsIDAuMTUpO1xuICAtLXN1Y2Nlc3M6ICM0YWRlODA7XG4gIC0tc3VjY2Vzcy1zdWJ0bGU6IHJnYmEoNzQsIDIyMiwgMTI4LCAwLjEpO1xuICAtLXdhcm5pbmc6ICNmYmJmMjQ7XG4gIC0td2FybmluZy1zdWJ0bGU6IHJnYmEoMjUxLCAxOTEsIDM2LCAwLjEpO1xuICAtLWluZm86ICM2MGE1ZmE7XG4gIC0taW5mby1zdWJ0bGU6IHJnYmEoOTYsIDE2NSwgMjUwLCAwLjEpO1xuICAtLW92ZXJsYXk6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgLS1uYXYtYmc6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1iZy1iYXNlKSA4NiUsIHRyYW5zcGFyZW50KTtcbiAgLS1uYXYtbGluay1jb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTtcbiAgLS1uYXYtbGluay1ob3ZlcjogdmFyKC0tYnJhbmQtbGlnaHQpO1xuXG4gIC8qIE9wZW4gUHJvcHMgQ29sb3IgU2NhbGVzIChkYXJrIG1vZGUgaW52ZXJzaW9uKSAqL1xuICAtLWluZGlnby0wOiAjMTExODRhO1xuICAtLWluZGlnby0xOiAjMWUyNjZkO1xuICAtLWluZGlnby0yOiAjMmIzOTkwO1xuICAtLWluZGlnby0zOiAjMzY0ZmM3O1xuICAtLWluZGlnby00OiAjM2I1YmRiO1xuICAtLWluZGlnby01OiAjNDI2M2ViO1xuICAtLWluZGlnby02OiAjNGM2ZWY1O1xuICAtLWluZGlnby03OiAjNWM3Y2ZhO1xuICAtLWluZGlnby04OiAjNzQ4ZmZjO1xuICAtLWluZGlnby05OiAjOTFhN2ZmO1xuICAtLWluZGlnby0xMDogI2JhYzhmZjtcbiAgLS1pbmRpZ28tMTE6ICNkYmU0ZmY7XG4gIC0taW5kaWdvLTEyOiAjZWRmMmZmO1xuICAtLWdyZWVuLTA6ICMwZjJkMTg7XG4gIC0tZ3JlZW4tMTogIzFhNDcyNTtcbiAgLS1ncmVlbi0yOiAjMjI2MjMxO1xuICAtLWdyZWVuLTM6ICMyYjhhM2U7XG4gIC0tZ3JlZW4tNDogIzJmOWU0NDtcbiAgLS1ncmVlbi01OiAjMzdiMjRkO1xuICAtLWdyZWVuLTY6ICM0MGMwNTc7XG4gIC0tZ3JlZW4tNzogIzUxY2Y2NjtcbiAgLS1ncmVlbi04OiAjNjlkYjdjO1xuICAtLWdyZWVuLTk6ICM4Y2U5OWE7XG4gIC0tZ3JlZW4tMTA6ICNiMmYyYmI7XG4gIC0tZ3JlZW4tMTE6ICNkM2Y5ZDg7XG4gIC0tZ3JlZW4tMTI6ICNlYmZiZWU7XG4gIC0tcmVkLTA6ICM1NDBkMGQ7XG4gIC0tcmVkLTE6ICM4MjE1MTU7XG4gIC0tcmVkLTI6ICNhNjFlMWU7XG4gIC0tcmVkLTM6ICNjOTJhMmE7XG4gIC0tcmVkLTQ6ICNlMDMxMzE7XG4gIC0tcmVkLTU6ICNmMDNlM2U7XG4gIC0tcmVkLTY6ICNmYTUyNTI7XG4gIC0tcmVkLTc6ICNmZjZiNmI7XG4gIC0tcmVkLTg6ICNmZjg3ODc7XG4gIC0tcmVkLTk6ICNmZmE4YTg7XG4gIC0tcmVkLTEwOiAjZmZjOWM5O1xuICAtLXJlZC0xMTogI2ZmZTNlMztcbiAgLS1yZWQtMTI6ICNmZmY1ZjU7XG4gIC0tb3JhbmdlLTA6ICM1YzFhMDA7XG4gIC0tb3JhbmdlLTE6ICM4NzJhMDA7XG4gIC0tb3JhbmdlLTI6ICNiMDNhMDA7XG4gIC0tb3JhbmdlLTM6ICNkOTQ4MGY7XG4gIC0tb3JhbmdlLTQ6ICNlODU5MGM7XG4gIC0tb3JhbmdlLTU6ICNmNzY3MDc7XG4gIC0tb3JhbmdlLTY6ICNmZDdlMTQ7XG4gIC0tb3JhbmdlLTc6ICNmZjkyMmI7XG4gIC0tb3JhbmdlLTg6ICNmZmE5NGQ7XG4gIC0tb3JhbmdlLTk6ICNmZmMwNzg7XG4gIC0tb3JhbmdlLTEwOiAjZmZkOGE4O1xuICAtLW9yYW5nZS0xMTogI2ZmZThjYztcbiAgLS1vcmFuZ2UtMTI6ICNmZmY0ZTY7XG4gIC0tYmx1ZS0wOiAjMDkyODQ4O1xuICAtLWJsdWUtMTogIzBlM2I2OTtcbiAgLS1ibHVlLTI6ICMxMzRlOGE7XG4gIC0tYmx1ZS0zOiAjMTg2NGFiO1xuICAtLWJsdWUtNDogIzE5NzFjMjtcbiAgLS1ibHVlLTU6ICMxYzdlZDY7XG4gIC0tYmx1ZS02OiAjMjI4YmU2O1xuICAtLWJsdWUtNzogIzMzOWFmMDtcbiAgLS1ibHVlLTg6ICM0ZGFiZjc7XG4gIC0tYmx1ZS05OiAjNzRjMGZjO1xuICAtLWJsdWUtMTA6ICNhNWQ4ZmY7XG4gIC0tYmx1ZS0xMTogI2QwZWJmZjtcbiAgLS1ibHVlLTEyOiAjZTdmNWZmO1xuICAtLXRlYWwtMDogIzAzMzMyNTtcbiAgLS10ZWFsLTE6ICMwNTRkMzc7XG4gIC0tdGVhbC0yOiAjMDY2NjQ5O1xuICAtLXRlYWwtMzogIzA4N2Y1YjtcbiAgLS10ZWFsLTQ6ICMwOTkyNjg7XG4gIC0tdGVhbC01OiAjMGNhNjc4O1xuICAtLXRlYWwtNjogIzEyYjg4NjtcbiAgLS10ZWFsLTc6ICMyMGM5OTc7XG4gIC0tdGVhbC04OiAjMzhkOWE5O1xuICAtLXRlYWwtOTogIzYzZTZiZTtcbiAgLS1ibHVlLTEwOiAjOTZmMmQ3O1xuICAtLXRlYWwtMTE6ICNjM2ZhZTg7XG4gIC0tdGVhbC0xMjogI2U2ZmNmNTtcbiAgLS1jeWFuLTA6ICMwNTMwMzg7XG4gIC0tY3lhbi0xOiAjMDc0NjUyO1xuICAtLWN5YW4tMjogIzA5NWM2YjtcbiAgLS1jeWFuLTM6ICMwYjcyODU7XG4gIC0tY3lhbi00OiAjMGM4NTk5O1xuICAtLWN5YW4tNTogIzEwOThhZDtcbiAgLS1jeWFuLTY6ICMxNWFhYmY7XG4gIC0tY3lhbi03OiAjMjJiOGNmO1xuICAtLWN5YW4tODogIzNiYzlkYjtcbiAgLS1jeWFuLTk6ICM2NmQ5ZTg7XG4gIC0tY3lhbi0xMDogIzk5ZTlmMjtcbiAgLS1jeWFuLTExOiAjYzVmNmZhO1xuICAtLWN5YW4tMTI6ICNlM2ZhZmM7XG4gIC0tdmlvbGV0LTA6ICMxMzBhMjI7XG4gIC0tdmlvbGV0LTE6ICMyMTE0M2I7XG4gIC0tdmlvbGV0LTI6ICMyZjFjNTI7XG4gIC0tdmlvbGV0LTM6ICM0MjI3NzQ7XG4gIC0tdmlvbGV0LTQ6ICM1ODM5OWU7XG4gIC0tdmlvbGV0LTU6ICM2ZDRjYzQ7XG4gIC0tdmlvbGV0LTY6ICM4MjYyZGI7XG4gIC0tdmlvbGV0LTc6ICM5YzdkZjI7XG4gIC0tdmlvbGV0LTg6ICNiNTljZmY7XG4gIC0tdmlvbGV0LTk6ICNkMGJkZmY7XG4gIC0tdmlvbGV0LTEwOiAjZTZkOGZmO1xuICAtLXZpb2xldC0xMTogI2YzZWFmZjtcbiAgLS12aW9sZXQtMTI6ICNmYmY3ZmY7XG59XG5gKTtcblxuZXhwb3J0IGNvbnN0IG9wZW5Qcm9wc1Rva2VuU2hlZXQ6IFN0eWxlU2hlZXRMaWtlID0gc2hlZXQ7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0NBS0MsR0FFRCxTQUFTLFVBQVUsUUFBNkIsZ0NBQWdDO0FBRWhGLE1BQU0sUUFBd0IsSUFBSTtBQUNsQyxNQUFNLFdBQVcsQ0FBQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdkbkIsQ0FBQztBQUVELE9BQU8sTUFBTSxzQkFBc0MsTUFBTSJ9
|
|
479
|
+
/**
|
|
480
|
+
* Page-level variant of the token sheet.
|
|
481
|
+
*
|
|
482
|
+
* Uses `:root` selectors so tokens cascade into every shadow DOM via CSS
|
|
483
|
+
* custom-property inheritance. This is the sheet that should be injected
|
|
484
|
+
* into the document `<head>`; component shadow roots can then consume the
|
|
485
|
+
* tokens without adopting the host-level sheet themselves.
|
|
486
|
+
*/ export const openPropsRootSheet = new StyleSheet();
|
|
487
|
+
openPropsRootSheet.replaceSync(toRootCss(tokenCss));
|
|
488
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy91aS9zcmMvb3Blbi1wcm9wcy10b2tlbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAb3BlbmVsZW1lbnQvdWkgLSBPcGVuIFByb3BzIFRva2VuIFNoZWV0XG4gKlxuICogSW5saW5lZCBhdCBidWlsZCB0aW1lIHNvIGNvbnN1bWVycyBkbyBub3QgbmVlZCB0byBzaGlwIGEgc2VwYXJhdGUgQ1NTIGFzc2V0XG4gKiBhbmQgU1NSIGJ1bmRsZXMgZG8gbm90IGRlcGVuZCBvbiBhIGZpbGUtc3lzdGVtIHBhdGggbmV4dCB0byBpbXBvcnQubWV0YS51cmwuXG4gKi9cblxuaW1wb3J0IHsgU3R5bGVTaGVldCwgdHlwZSBTdHlsZVNoZWV0TGlrZSB9IGZyb20gJ0BvcGVuZWxlbWVudC9jb3JlL3N0eWxlLXNoZWV0JztcblxuZnVuY3Rpb24gdG9Sb290Q3NzKGhvc3RDc3M6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBob3N0Q3NzXG4gICAgLnJlcGxhY2UoLzpob3N0LWNvbnRleHRcXChcXFtkYXRhLXRoZW1lPSdkYXJrJ1xcXVxcKSxcXHMqXFxuXFxzKi9nLCAnJylcbiAgICAucmVwbGFjZSgvOmhvc3RcXChcXFtkYXRhLXRoZW1lPSdkYXJrJ1xcXVxcKS9nLCBcIjpyb290W2RhdGEtdGhlbWU9J2RhcmsnXVwiKVxuICAgIC5yZXBsYWNlKC86aG9zdC9nLCAnOnJvb3QnKTtcbn1cblxuY29uc3Qgc2hlZXQ6IFN0eWxlU2hlZXRMaWtlID0gbmV3IFN0eWxlU2hlZXQoKTtcbmNvbnN0IHRva2VuQ3NzID0gYFxuLyoqXG4gKiBAb3BlbmVsZW1lbnQvdWkgLSBPcGVuIFByb3BzIFRva2VuIFNoZWV0XG4gKlxuICogU2hhcmVkIGRlc2lnbiB0b2tlbnMgKHNwYWNpbmcsIGdyYXkgcGFsZXR0ZSwgYm9yZGVyIHJhZGl1cywgdHlwb2dyYXBoeSxcbiAqIHNlbWFudGljIGJyYW5kL3RleHQvYmcvYm9yZGVyIHRva2VucykgdGhhdCBhbGwgb3BlbkVsZW1lbnQgY29tcG9uZW50c1xuICogY2FuIGFkb3B0IHZpYSBcXGBzdGF0aWMgc3R5bGVzXFxgLlxuICpcbiAqIENsZWFuZWQgZGVhZCB0b2tlbnM7IG9ubHkgdXNlZCB0b2tlbnMgc3Vydml2ZS5cbiAqL1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIGNvbnRhaW46IGxheW91dCBzdHlsZTtcblxuICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgICAgU3BhY2luZyBzY2FsZVxuICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbiAgLS1zaXplLTE6IDRweDtcbiAgLS1zaXplLTI6IDhweDtcbiAgLS1zaXplLTM6IDEycHg7XG4gIC0tc2l6ZS00OiAxNnB4O1xuICAtLXNpemUtNTogMjBweDtcbiAgLS1zaXplLTY6IDI0cHg7XG4gIC0tc2l6ZS03OiAyOHB4O1xuICAtLXNpemUtODogMzJweDtcbiAgLS1zaXplLTk6IDM2cHg7XG4gIC0tc2l6ZS0xMDogNDBweDtcbiAgLS1zaXplLTEyOiA0OHB4O1xuICAtLXNpemUtMTY6IDY0cHg7XG5cbiAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICAgIEdyYXkgcGFsZXR0ZSAobGlnaHQgbW9kZSBiYXNlKVxuICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbiAgLS1ncmF5LTA6ICNmOGY5ZmE7XG4gIC0tZ3JheS0xOiAjZjFmM2Y1O1xuICAtLWdyYXktMjogI2U5ZWNlZjtcbiAgLS1ncmF5LTM6ICNkZWUyZTY7XG4gIC0tZ3JheS00OiAjY2VkNGRhO1xuICAtLWdyYXktNTogI2FkYjViZDtcbiAgLS1ncmF5LTY6ICM4NjhlOTY7XG4gIC0tZ3JheS03OiAjNDk1MDU3O1xuICAtLWdyYXktODogIzM0M2E0MDtcbiAgLS1ncmF5LTk6ICMyMTI1Mjk7XG4gIC0tZ3JheS0xMDogIzE2MTkxZDtcbiAgLS1ncmF5LTExOiAjMGQwZjEyO1xuICAtLWdyYXktMTI6ICMwMzA1MDc7XG5cbiAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICAgIEJvcmRlciByYWRpdXNcbiAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4gIC0tcmFkaXVzLTE6IDZweDtcbiAgLS1yYWRpdXMtMjogOHB4O1xuICAtLXJhZGl1cy0zOiAxMnB4O1xuICAtLXJhZGl1cy00OiAyMHB4O1xuICAtLXJhZGl1cy1yb3VuZDogOTk5OXB4O1xuXG4gIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICBCb3JkZXIgc2l6ZVxuICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbiAgLS1ib3JkZXItc2l6ZS0xOiAxcHg7XG4gIC0tYm9yZGVyLXNpemUtMjogMnB4O1xuXG4gIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICBTaGFkb3dzXG4gICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuICAtLXNoYWRvdy0xOiAwIDFweCAzcHggMCByZ2IoMCAwIDAgLyAwLjEpLCAwIDFweCAycHggLTFweCByZ2IoMCAwIDAgLyAwLjEpO1xuXG4gIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICBUeXBvZ3JhcGh5XG4gICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuICAtLWZvbnQtc2FuczogJ0luc3RydW1lbnQgU2FucycsIEludGVyLCBBcmlhbCwgSGVsdmV0aWNhLCBzeXN0ZW0tdWksIHNhbnMtc2VyaWY7XG4gIC0tZm9udC1tb25vOiAnU0YgTW9ubycsICdGaXJhIENvZGUnLCAnRmlyYSBNb25vJywgbW9ub3NwYWNlO1xuICAtLWZvbnQtc2l6ZS0wMDogMC43NXJlbTtcbiAgLS1mb250LXNpemUtMDogMC44NzVyZW07XG4gIC0tZm9udC1zaXplLTE6IDFyZW07XG4gIC0tZm9udC1zaXplLTI6IDEuMjVyZW07XG4gIC0tZm9udC1zaXplLTM6IDEuNXJlbTtcbiAgLS1mb250LXNpemUtNDogMnJlbTtcbiAgLS1mb250LXNpemUtNTogMi41cmVtO1xuICAtLWZvbnQtc2l6ZS02OiAzLjEyNXJlbTtcbiAgLS1mb250LXNpemUtNzogNHJlbTtcbiAgLS1mb250LXNpemUtODogNS41cmVtO1xuICAtLWZvbnQtd2VpZ2h0LTQ6IDQwMDtcbiAgLS1mb250LXdlaWdodC01OiA1MDA7XG4gIC0tZm9udC13ZWlnaHQtNjogNjAwO1xuICAtLWZvbnQtd2VpZ2h0LTc6IDcwMDtcbiAgLS1mb250LXdlaWdodC04OiA4MDA7XG4gIC0tZm9udC13ZWlnaHQtOTogOTAwO1xuICAtLWZvbnQtbGV0dGVyc3BhY2luZy0wOiAwO1xuICAtLWZvbnQtbGV0dGVyc3BhY2luZy0xOiAwO1xuICAtLWZvbnQtbGV0dGVyc3BhY2luZy0yOiAwO1xuICAtLWZvbnQtbGV0dGVyc3BhY2luZy0zOiAwO1xuICAtLWZvbnQtbGV0dGVyc3BhY2luZy00OiAwLjA0ZW07XG4gIC0tZm9udC1sZXR0ZXJzcGFjaW5nLTU6IDAuMDhlbTtcbiAgLS1mb250LWxpbmVoZWlnaHQtMTogMC45NTtcbiAgLS1mb250LWxpbmVoZWlnaHQtMzogMS41O1xuICAtLWZvbnQtbGluZWhlaWdodC00OiAxLjc1O1xuXG4gIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICBBbmltYXRpb24gZWFzaW5nXG4gICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuICAtLWVhc2UtMTogY3ViaWMtYmV6aWVyKDAuMjUsIDAsIDAuNSwgMSk7XG4gIC0tZWFzZS0yOiBjdWJpYy1iZXppZXIoMC40NSwgMCwgMC4yNSwgMSk7XG4gIC0tZWFzZS0zOiBjdWJpYy1iZXppZXIoMC41LCAwLCAwLCAxKTtcbiAgLS1kdXJhdGlvbi0yOiAyMDBtcztcblxuICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgICAgQnJhbmQgdG9rZW5zXG4gICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuICAtLWJyYW5kOiB2YXIoLS12aW9sZXQtNik7XG4gIC0tYnJhbmQtaG92ZXI6IHZhcigtLXZpb2xldC03KTtcbiAgLS1icmFuZC1saWdodDogdmFyKC0tdmlvbGV0LTQpO1xuICAtLWJyYW5kLXBhbGU6IHZhcigtLXZpb2xldC0xKTtcbiAgLS1icmFuZC1kZWVwOiB2YXIoLS12aW9sZXQtMTEpO1xuICAtLWJyYW5kLXN1YnRsZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyYW5kKSAxMiUsIHRyYW5zcGFyZW50KTtcbiAgLS1icmFuZC1nbG93OiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnJhbmQpIDI0JSwgdHJhbnNwYXJlbnQpO1xuICAtLW9uLWJyYW5kOiB2YXIoLS1ncmF5LTApO1xuICAtLXNpdGUtY29udGFpbmVyOiAxMTIwcHg7XG4gIC0tc2l0ZS1jb250YWluZXItd2lkZTogMTI0MHB4O1xuICAtLXNpdGUtY29udGFpbmVyLXJlYWRpbmc6IDc2MHB4O1xuICAtLXNpdGUtc2VjdGlvbi1ibG9jazogdmFyKC0tc2l6ZS0xNik7XG4gIC0tc2l0ZS1zZWN0aW9uLWdhcDogdmFyKC0tc2l6ZS04KTtcblxuICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgICAgQ29tcG9uZW50IFNlbWFudGljIFRva2VucyAoZm9yIGRhaXN5VUkgY2xhc3NlcylcbiAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4gIC0tYnRuLXBhZGRpbmcteDogdmFyKC0tc2l6ZS00KTtcbiAgLS1idG4tcGFkZGluZy15OiB2YXIoLS1zaXplLTIpO1xuICAtLWJ0bi1yYWRpdXM6IHZhcigtLXJhZGl1cy1yb3VuZCk7XG4gIC0tYnRuLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTApO1xuICAtLWJ0bi1mb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtNyk7XG4gIC0tYnRuLXRleHQtY2FzZTogbm9uZTtcbiAgLS1jYXJkLXBhZGRpbmc6IHZhcigtLXNpemUtNik7XG4gIC0tY2FyZC1yYWRpdXM6IHZhcigtLXJhZGl1cy0xKTtcbiAgLS1iYWRnZS1wYWRkaW5nLXg6IHZhcigtLXNpemUtMik7XG4gIC0tYmFkZ2UtcGFkZGluZy15OiAycHg7XG4gIC0tYmFkZ2UtcmFkaXVzOiB2YXIoLS1yYWRpdXMtcm91bmQpO1xuICAtLWJhZGdlLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTAwKTtcbiAgLS1hbGVydC1wYWRkaW5nOiB2YXIoLS1zaXplLTQpO1xuICAtLWFsZXJ0LXJhZGl1czogdmFyKC0tcmFkaXVzLTIpO1xuICAtLWlucHV0LXBhZGRpbmcteDogdmFyKC0tc2l6ZS0zKTtcbiAgLS1pbnB1dC1wYWRkaW5nLXk6IHZhcigtLXNpemUtMik7XG4gIC0taW5wdXQtcmFkaXVzOiB2YXIoLS1yYWRpdXMtMSk7XG4gIC0taW5wdXQtZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMCk7XG4gIC0taW5wdXQtYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXIpO1xuICAtLWRpdmlkZXItbWFyZ2luOiB2YXIoLS1zaXplLTQpIDA7XG4gIC0tZGl2aWRlci1jb2xvcjogdmFyKC0tYm9yZGVyKTtcbiAgLS10b29sdGlwLWJnOiB2YXIoLS1ncmF5LTkpO1xuICAtLXRvb2x0aXAtY29sb3I6IHZhcigtLWdyYXktMCk7XG4gIC0tdG9vbHRpcC1yYWRpdXM6IHZhcigtLXJhZGl1cy0xKTtcbiAgLS10b29sdGlwLXBhZGRpbmc6IHZhcigtLXNpemUtMSkgdmFyKC0tc2l6ZS0yKTtcbiAgLS1tb2RhbC1iZzogdmFyKC0tYmctZWxldmF0ZWQpO1xuICAtLW1vZGFsLXJhZGl1czogdmFyKC0tcmFkaXVzLTMpO1xuICAtLW1vZGFsLXBhZGRpbmc6IHZhcigtLXNpemUtNik7XG4gIC0tbWVudS1wYWRkaW5nOiB2YXIoLS1zaXplLTIpO1xuICAtLW1lbnUtcmFkaXVzOiB2YXIoLS1yYWRpdXMtMik7XG4gIC0tbWVudS1pdGVtLXBhZGRpbmc6IHZhcigtLXNpemUtMikgdmFyKC0tc2l6ZS00KTtcbiAgLS1kcm9wZG93bi1iZzogdmFyKC0tYmctZWxldmF0ZWQpO1xuICAtLWRyb3Bkb3duLXJhZGl1czogdmFyKC0tcmFkaXVzLTIpO1xuICAtLXRhYi1wYWRkaW5nOiB2YXIoLS1zaXplLTIpIHZhcigtLXNpemUtNCk7XG4gIC0tdGFiLXJhZGl1czogdmFyKC0tcmFkaXVzLTEpO1xuXG4gIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICBVSSBTZW1hbnRpYyBUb2tlbnMgKGxpZ2h0IGRlZmF1bHRzKVxuICAgICBEYXJrIG1vZGUgb3ZlcnJpZGVzIHZpYSA6cm9vdFtkYXRhLXRoZW1lPVwiZGFya1wiXSBpbiBTU0dcbiAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4gIC0tdGV4dC1wcmltYXJ5OiB2YXIoLS1ncmF5LTkpO1xuICAtLXRleHQtc2Vjb25kYXJ5OiB2YXIoLS1ncmF5LTYpO1xuICAtLXRleHQtbXV0ZWQ6IHZhcigtLWdyYXktNSk7XG4gIC0tYmctYmFzZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXZpb2xldC0wKSA0MiUsIHZhcigtLWdyYXktMCkpO1xuICAtLWJnLXN1cmZhY2U6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS12aW9sZXQtMCkgMzIlLCB2YXIoLS1ncmF5LTEpKTtcbiAgLS1iZy1jYXJkOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdmlvbGV0LTApIDE4JSwgdmFyKC0tZ3JheS0wKSk7XG4gIC0tYmctZWxldmF0ZWQ6ICNmZmZmZmY7XG4gIC0tYmctaG92ZXI6IHZhcigtLWdyYXktMik7XG4gIC0tYmctbXV0ZWQ6IHZhcigtLWdyYXktMSk7XG4gIC0tYmctY29kZTogdmFyKC0tZ3JheS0xMSk7XG4gIC0tY29kZS1ib3JkZXI6IHZhcigtLWdyYXktOCk7XG4gIC0tY29kZS10ZXh0OiB2YXIoLS1ncmF5LTIpO1xuICAtLWJvcmRlcjogdmFyKC0tZ3JheS0zKTtcbiAgLS1ib3JkZXItaG92ZXI6IHZhcigtLWdyYXktNCk7XG4gIC0tZXJyb3I6ICNkYzM1NDU7XG4gIC0tZXJyb3Itc3VidGxlOiByZ2JhKDIyMCwgNTMsIDY5LCAwLjEpO1xuICAtLXN1Y2Nlc3M6ICMxNmEzNGE7XG4gIC0tc3VjY2Vzcy1zdWJ0bGU6IHJnYmEoMjIsIDE2MywgNzQsIDAuMSk7XG4gIC0td2FybmluZzogI2Q5NzcwNjtcbiAgLS13YXJuaW5nLXN1YnRsZTogcmdiYSgyMTcsIDExOSwgNiwgMC4xKTtcbiAgLS1pbmZvOiAjMjU2M2ViO1xuICAtLWluZm8tc3VidGxlOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjEpO1xuICAtLW92ZXJsYXk6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgLS1uYXYtYmc6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1iZy1iYXNlKSA4NiUsIHRyYW5zcGFyZW50KTtcbiAgLS1uYXYtaGVpZ2h0OiA3MnB4O1xuICAtLW5hdi1saW5rLWNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpO1xuICAtLW5hdi1saW5rLWhvdmVyOiB2YXIoLS1icmFuZCk7XG4gIC0tbmF2LWxpbmstc2l6ZTogdmFyKC0tZm9udC1zaXplLTApO1xuXG4gIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICBPcGVuIFByb3BzIENvbG9yIFNjYWxlcyAobGlnaHQgbW9kZSlcbiAgICAgaHR0cHM6Ly9vcGVuLXByb3BzLnN0eWxlXG4gICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuICAtLWluZGlnby0wOiAjZWRmMmZmO1xuICAtLWluZGlnby0xOiAjZGJlNGZmO1xuICAtLWluZGlnby0yOiAjYmFjOGZmO1xuICAtLWluZGlnby0zOiAjOTFhN2ZmO1xuICAtLWluZGlnby00OiAjNzQ4ZmZjO1xuICAtLWluZGlnby01OiAjNWM3Y2ZhO1xuICAtLWluZGlnby02OiAjNGM2ZWY1O1xuICAtLWluZGlnby03OiAjNDI2M2ViO1xuICAtLWluZGlnby04OiAjM2I1YmRiO1xuICAtLWluZGlnby05OiAjMzY0ZmM3O1xuICAtLWluZGlnby0xMDogIzJiMzk5MDtcbiAgLS1pbmRpZ28tMTE6ICMxZTI2NmQ7XG4gIC0taW5kaWdvLTEyOiAjMTExODRhO1xuICAtLWdyZWVuLTA6ICNlYmZiZWU7XG4gIC0tZ3JlZW4tMTogI2QzZjlkODtcbiAgLS1ncmVlbi0yOiAjYjJmMmJiO1xuICAtLWdyZWVuLTM6ICM4Y2U5OWE7XG4gIC0tZ3JlZW4tNDogIzY5ZGI3YztcbiAgLS1ncmVlbi01OiAjNTFjZjY2O1xuICAtLWdyZWVuLTY6ICM0MGMwNTc7XG4gIC0tZ3JlZW4tNzogIzM3YjI0ZDtcbiAgLS1ncmVlbi04OiAjMmY5ZTQ0O1xuICAtLWdyZWVuLTk6ICMyYjhhM2U7XG4gIC0tZ3JlZW4tMTA6ICMyMjYyMzE7XG4gIC0tZ3JlZW4tMTE6ICMxYTQ3MjU7XG4gIC0tZ3JlZW4tMTI6ICMwZjJkMTg7XG4gIC0tcmVkLTA6ICNmZmY1ZjU7XG4gIC0tcmVkLTE6ICNmZmUzZTM7XG4gIC0tcmVkLTI6ICNmZmM5Yzk7XG4gIC0tcmVkLTM6ICNmZmE4YTg7XG4gIC0tcmVkLTQ6ICNmZjg3ODc7XG4gIC0tcmVkLTU6ICNmZjZiNmI7XG4gIC0tcmVkLTY6ICNmYTUyNTI7XG4gIC0tcmVkLTc6ICNmMDNlM2U7XG4gIC0tcmVkLTg6ICNlMDMxMzE7XG4gIC0tcmVkLTk6ICNjOTJhMmE7XG4gIC0tcmVkLTEwOiAjYTYxZTFlO1xuICAtLXJlZC0xMTogIzgyMTUxNTtcbiAgLS1yZWQtMTI6ICM1NDBkMGQ7XG4gIC0tb3JhbmdlLTA6ICNmZmY0ZTY7XG4gIC0tb3JhbmdlLTE6ICNmZmU4Y2M7XG4gIC0tb3JhbmdlLTI6ICNmZmQ4YTg7XG4gIC0tb3JhbmdlLTM6ICNmZmMwNzg7XG4gIC0tb3JhbmdlLTQ6ICNmZmE5NGQ7XG4gIC0tb3JhbmdlLTU6ICNmZjkyMmI7XG4gIC0tb3JhbmdlLTY6ICNmZDdlMTQ7XG4gIC0tb3JhbmdlLTc6ICNmNzY3MDc7XG4gIC0tb3JhbmdlLTg6ICNlODU5MGM7XG4gIC0tb3JhbmdlLTk6ICNkOTQ4MGY7XG4gIC0tb3JhbmdlLTEwOiAjYjAzYTAwO1xuICAtLW9yYW5nZS0xMTogIzg3MmEwMDtcbiAgLS1vcmFuZ2UtMTI6ICM1YzFhMDA7XG4gIC0tYmx1ZS0wOiAjZTdmNWZmO1xuICAtLWJsdWUtMTogI2QwZWJmZjtcbiAgLS1ibHVlLTI6ICNhNWQ4ZmY7XG4gIC0tYmx1ZS0zOiAjNzRjMGZjO1xuICAtLWJsdWUtNDogIzRkYWJmNztcbiAgLS1ibHVlLTU6ICMzMzlhZjA7XG4gIC0tYmx1ZS02OiAjMjI4YmU2O1xuICAtLWJsdWUtNzogIzFjN2VkNjtcbiAgLS1ibHVlLTg6ICMxOTcxYzI7XG4gIC0tYmx1ZS05OiAjMTg2NGFiO1xuICAtLWJsdWUtMTA6ICMxMzRlOGE7XG4gIC0tYmx1ZS0xMTogIzBlM2I2OTtcbiAgLS1ibHVlLTEyOiAjMDkyODQ4O1xuICAtLXRlYWwtMDogI2U2ZmNmNTtcbiAgLS10ZWFsLTE6ICNjM2ZhZTg7XG4gIC0tdGVhbC0yOiAjOTZmMmQ3O1xuICAtLXRlYWwtMzogIzYzZTZiZTtcbiAgLS10ZWFsLTQ6ICMzOGQ5YTk7XG4gIC0tdGVhbC01OiAjMjBjOTk3O1xuICAtLXRlYWwtNjogIzEyYjg4NjtcbiAgLS10ZWFsLTc6ICMwY2E2Nzg7XG4gIC0tdGVhbC04OiAjMDk5MjY4O1xuICAtLXRlYWwtOTogIzA4N2Y1YjtcbiAgLS10ZWFsLTEwOiAjMDY2NjQ5O1xuICAtLXRlYWwtMTE6ICMwNTRkMzc7XG4gIC0tdGVhbC0xMjogIzAzMzMyNTtcbiAgLS1jeWFuLTA6ICNlM2ZhZmM7XG4gIC0tY3lhbi0xOiAjYzVmNmZhO1xuICAtLWN5YW4tMjogIzk5ZTlmMjtcbiAgLS1jeWFuLTM6ICM2NmQ5ZTg7XG4gIC0tY3lhbi00OiAjM2JjOWRiO1xuICAtLWN5YW4tNTogIzIyYjhjZjtcbiAgLS1jeWFuLTY6ICMxNWFhYmY7XG4gIC0tY3lhbi03OiAjMTA5OGFkO1xuICAtLWN5YW4tODogIzBjODU5OTtcbiAgLS1jeWFuLTk6ICMwYjcyODU7XG4gIC0tY3lhbi0xMDogIzA5NWM2YjtcbiAgLS1jeWFuLTExOiAjMDc0NjUyO1xuICAtLWN5YW4tMTI6ICMwNTMwMzg7XG4gIC0tdmlvbGV0LTA6ICNmYmY3ZmY7XG4gIC0tdmlvbGV0LTE6ICNmM2VhZmY7XG4gIC0tdmlvbGV0LTI6ICNlNmQ4ZmY7XG4gIC0tdmlvbGV0LTM6ICNkMGJkZmY7XG4gIC0tdmlvbGV0LTQ6ICNiNTljZmY7XG4gIC0tdmlvbGV0LTU6ICM5YzdkZjI7XG4gIC0tdmlvbGV0LTY6ICM4MjYyZGI7XG4gIC0tdmlvbGV0LTc6ICM2ZDRjYzQ7XG4gIC0tdmlvbGV0LTg6ICM1ODM5OWU7XG4gIC0tdmlvbGV0LTk6ICM0MjI3NzQ7XG4gIC0tdmlvbGV0LTEwOiAjMmYxYzUyO1xuICAtLXZpb2xldC0xMTogIzIxMTQzYjtcbiAgLS12aW9sZXQtMTI6ICMxMzBhMjI7XG59XG5cbi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgRGFyayBNb2RlIOKAlCBtYXRjaGVzIGhvc3RzIHdpdGggZGF0YS10aGVtZT1cImRhcmtcIi5cbiAgIERvY3VtZW50LWxldmVsIG92ZXJyaWRlcyBsaXZlIGluIG9wZW5Qcm9wc1Jvb3RTaGVldFxuICAgKDpyb290W2RhdGEtdGhlbWU9XCJkYXJrXCJdKSBzbyBhbGwgc2hhZG93IERPTXMgaW5oZXJpdC5cbiAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuOmhvc3QoW2RhdGEtdGhlbWU9J2RhcmsnXSkge1xuICAtLWdyYXktMDogIzAzMDUwNztcbiAgLS1ncmF5LTE6ICMwZDBmMTI7XG4gIC0tZ3JheS0yOiAjMTYxOTFkO1xuICAtLWdyYXktMzogIzIxMjUyOTtcbiAgLS1ncmF5LTQ6ICMzNDNhNDA7XG4gIC0tZ3JheS01OiAjNDk1MDU3O1xuICAtLWdyYXktNjogIzg2OGU5NjtcbiAgLS1ncmF5LTc6ICNhZGI1YmQ7XG4gIC0tZ3JheS04OiAjY2VkNGRhO1xuICAtLWdyYXktOTogI2RlZTJlNjtcbiAgLS1ncmF5LTEwOiAjZTllY2VmO1xuICAtLWdyYXktMTE6ICNmMWYzZjU7XG4gIC0tZ3JheS0xMjogI2Y4ZjlmYTtcbiAgLS1icmFuZDogdmFyKC0tdmlvbGV0LTYpO1xuICAtLWJyYW5kLWhvdmVyOiB2YXIoLS12aW9sZXQtNyk7XG4gIC0tYnJhbmQtbGlnaHQ6IHZhcigtLXZpb2xldC00KTtcbiAgLS1icmFuZC1kZWVwOiB2YXIoLS12aW9sZXQtMTIpO1xuICAtLWJyYW5kLXN1YnRsZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyYW5kKSAxNiUsIHRyYW5zcGFyZW50KTtcbiAgLS1icmFuZC1nbG93OiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnJhbmQpIDIyJSwgdHJhbnNwYXJlbnQpO1xuICAtLW9uLWJyYW5kOiB2YXIoLS1ncmF5LTEyKTtcbiAgLS10ZXh0LXByaW1hcnk6IHZhcigtLWdyYXktMTApO1xuICAtLXRleHQtc2Vjb25kYXJ5OiB2YXIoLS1ncmF5LTcpO1xuICAtLXRleHQtbXV0ZWQ6IHZhcigtLWdyYXktNik7XG4gIC0tYmctYmFzZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXZpb2xldC0wKSAxOCUsIHZhcigtLWdyYXktMCkpO1xuICAtLWJnLXN1cmZhY2U6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS12aW9sZXQtMSkgMTQlLCB2YXIoLS1ncmF5LTEpKTtcbiAgLS1iZy1jYXJkOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdmlvbGV0LTIpIDEwJSwgdmFyKC0tZ3JheS0yKSk7XG4gIC0tYmctZWxldmF0ZWQ6IHZhcigtLWdyYXktMSk7XG4gIC0tYmctaG92ZXI6IHZhcigtLWdyYXktMyk7XG4gIC0tYmctY29kZTogdmFyKC0tZ3JheS0xKTtcbiAgLS1jb2RlLWJvcmRlcjogdmFyKC0tZ3JheS00KTtcbiAgLS1jb2RlLXRleHQ6IHZhcigtLWdyYXktMTApO1xuICAtLWJvcmRlcjogdmFyKC0tZ3JheS0zKTtcbiAgLS1ib3JkZXItaG92ZXI6IHZhcigtLWdyYXktNCk7XG4gIC0tZXJyb3I6ICNmODcxNzE7XG4gIC0tZXJyb3Itc3VidGxlOiByZ2JhKDI0OCwgMTEzLCAxMTMsIDAuMTUpO1xuICAtLXN1Y2Nlc3M6ICM0YWRlODA7XG4gIC0tc3VjY2Vzcy1zdWJ0bGU6IHJnYmEoNzQsIDIyMiwgMTI4LCAwLjEpO1xuICAtLXdhcm5pbmc6ICNmYmJmMjQ7XG4gIC0td2FybmluZy1zdWJ0bGU6IHJnYmEoMjUxLCAxOTEsIDM2LCAwLjEpO1xuICAtLWluZm86ICM2MGE1ZmE7XG4gIC0taW5mby1zdWJ0bGU6IHJnYmEoOTYsIDE2NSwgMjUwLCAwLjEpO1xuICAtLW92ZXJsYXk6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgLS1uYXYtYmc6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1iZy1iYXNlKSA4NiUsIHRyYW5zcGFyZW50KTtcbiAgLS1uYXYtbGluay1jb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTtcbiAgLS1uYXYtbGluay1ob3ZlcjogdmFyKC0tYnJhbmQtbGlnaHQpO1xuXG4gIC8qIE9wZW4gUHJvcHMgQ29sb3IgU2NhbGVzIChkYXJrIG1vZGUgaW52ZXJzaW9uKSAqL1xuICAtLWluZGlnby0wOiAjMTExODRhO1xuICAtLWluZGlnby0xOiAjMWUyNjZkO1xuICAtLWluZGlnby0yOiAjMmIzOTkwO1xuICAtLWluZGlnby0zOiAjMzY0ZmM3O1xuICAtLWluZGlnby00OiAjM2I1YmRiO1xuICAtLWluZGlnby01OiAjNDI2M2ViO1xuICAtLWluZGlnby02OiAjNGM2ZWY1O1xuICAtLWluZGlnby03OiAjNWM3Y2ZhO1xuICAtLWluZGlnby04OiAjNzQ4ZmZjO1xuICAtLWluZGlnby05OiAjOTFhN2ZmO1xuICAtLWluZGlnby0xMDogI2JhYzhmZjtcbiAgLS1pbmRpZ28tMTE6ICNkYmU0ZmY7XG4gIC0taW5kaWdvLTEyOiAjZWRmMmZmO1xuICAtLWdyZWVuLTA6ICMwZjJkMTg7XG4gIC0tZ3JlZW4tMTogIzFhNDcyNTtcbiAgLS1ncmVlbi0yOiAjMjI2MjMxO1xuICAtLWdyZWVuLTM6ICMyYjhhM2U7XG4gIC0tZ3JlZW4tNDogIzJmOWU0NDtcbiAgLS1ncmVlbi01OiAjMzdiMjRkO1xuICAtLWdyZWVuLTY6ICM0MGMwNTc7XG4gIC0tZ3JlZW4tNzogIzUxY2Y2NjtcbiAgLS1ncmVlbi04OiAjNjlkYjdjO1xuICAtLWdyZWVuLTk6ICM4Y2U5OWE7XG4gIC0tZ3JlZW4tMTA6ICNiMmYyYmI7XG4gIC0tZ3JlZW4tMTE6ICNkM2Y5ZDg7XG4gIC0tZ3JlZW4tMTI6ICNlYmZiZWU7XG4gIC0tcmVkLTA6ICM1NDBkMGQ7XG4gIC0tcmVkLTE6ICM4MjE1MTU7XG4gIC0tcmVkLTI6ICNhNjFlMWU7XG4gIC0tcmVkLTM6ICNjOTJhMmE7XG4gIC0tcmVkLTQ6ICNlMDMxMzE7XG4gIC0tcmVkLTU6ICNmMDNlM2U7XG4gIC0tcmVkLTY6ICNmYTUyNTI7XG4gIC0tcmVkLTc6ICNmZjZiNmI7XG4gIC0tcmVkLTg6ICNmZjg3ODc7XG4gIC0tcmVkLTk6ICNmZmE4YTg7XG4gIC0tcmVkLTEwOiAjZmZjOWM5O1xuICAtLXJlZC0xMTogI2ZmZTNlMztcbiAgLS1yZWQtMTI6ICNmZmY1ZjU7XG4gIC0tb3JhbmdlLTA6ICM1YzFhMDA7XG4gIC0tb3JhbmdlLTE6ICM4NzJhMDA7XG4gIC0tb3JhbmdlLTI6ICNiMDNhMDA7XG4gIC0tb3JhbmdlLTM6ICNkOTQ4MGY7XG4gIC0tb3JhbmdlLTQ6ICNlODU5MGM7XG4gIC0tb3JhbmdlLTU6ICNmNzY3MDc7XG4gIC0tb3JhbmdlLTY6ICNmZDdlMTQ7XG4gIC0tb3JhbmdlLTc6ICNmZjkyMmI7XG4gIC0tb3JhbmdlLTg6ICNmZmE5NGQ7XG4gIC0tb3JhbmdlLTk6ICNmZmMwNzg7XG4gIC0tb3JhbmdlLTEwOiAjZmZkOGE4O1xuICAtLW9yYW5nZS0xMTogI2ZmZThjYztcbiAgLS1vcmFuZ2UtMTI6ICNmZmY0ZTY7XG4gIC0tYmx1ZS0wOiAjMDkyODQ4O1xuICAtLWJsdWUtMTogIzBlM2I2OTtcbiAgLS1ibHVlLTI6ICMxMzRlOGE7XG4gIC0tYmx1ZS0zOiAjMTg2NGFiO1xuICAtLWJsdWUtNDogIzE5NzFjMjtcbiAgLS1ibHVlLTU6ICMxYzdlZDY7XG4gIC0tYmx1ZS02OiAjMjI4YmU2O1xuICAtLWJsdWUtNzogIzMzOWFmMDtcbiAgLS1ibHVlLTg6ICM0ZGFiZjc7XG4gIC0tYmx1ZS05OiAjNzRjMGZjO1xuICAtLWJsdWUtMTA6ICNhNWQ4ZmY7XG4gIC0tYmx1ZS0xMTogI2QwZWJmZjtcbiAgLS1ibHVlLTEyOiAjZTdmNWZmO1xuICAtLXRlYWwtMDogIzAzMzMyNTtcbiAgLS10ZWFsLTE6ICMwNTRkMzc7XG4gIC0tdGVhbC0yOiAjMDY2NjQ5O1xuICAtLXRlYWwtMzogIzA4N2Y1YjtcbiAgLS10ZWFsLTQ6ICMwOTkyNjg7XG4gIC0tdGVhbC01OiAjMGNhNjc4O1xuICAtLXRlYWwtNjogIzEyYjg4NjtcbiAgLS10ZWFsLTc6ICMyMGM5OTc7XG4gIC0tdGVhbC04OiAjMzhkOWE5O1xuICAtLXRlYWwtOTogIzYzZTZiZTtcbiAgLS10ZWFsLTEwOiAjOTZmMmQ3O1xuICAtLXRlYWwtMTE6ICNjM2ZhZTg7XG4gIC0tdGVhbC0xMjogI2U2ZmNmNTtcbiAgLS1jeWFuLTA6ICMwNTMwMzg7XG4gIC0tY3lhbi0xOiAjMDc0NjUyO1xuICAtLWN5YW4tMjogIzA5NWM2YjtcbiAgLS1jeWFuLTM6ICMwYjcyODU7XG4gIC0tY3lhbi00OiAjMGM4NTk5O1xuICAtLWN5YW4tNTogIzEwOThhZDtcbiAgLS1jeWFuLTY6ICMxNWFhYmY7XG4gIC0tY3lhbi03OiAjMjJiOGNmO1xuICAtLWN5YW4tODogIzNiYzlkYjtcbiAgLS1jeWFuLTk6ICM2NmQ5ZTg7XG4gIC0tY3lhbi0xMDogIzk5ZTlmMjtcbiAgLS1jeWFuLTExOiAjYzVmNmZhO1xuICAtLWN5YW4tMTI6ICNlM2ZhZmM7XG4gIC0tdmlvbGV0LTA6ICMxMzBhMjI7XG4gIC0tdmlvbGV0LTE6ICMyMTE0M2I7XG4gIC0tdmlvbGV0LTI6ICMyZjFjNTI7XG4gIC0tdmlvbGV0LTM6ICM0MjI3NzQ7XG4gIC0tdmlvbGV0LTQ6ICM1ODM5OWU7XG4gIC0tdmlvbGV0LTU6ICM2ZDRjYzQ7XG4gIC0tdmlvbGV0LTY6ICM4MjYyZGI7XG4gIC0tdmlvbGV0LTc6ICM5YzdkZjI7XG4gIC0tdmlvbGV0LTg6ICNiNTljZmY7XG4gIC0tdmlvbGV0LTk6ICNkMGJkZmY7XG4gIC0tdmlvbGV0LTEwOiAjZTZkOGZmO1xuICAtLXZpb2xldC0xMTogI2YzZWFmZjtcbiAgLS12aW9sZXQtMTI6ICNmYmY3ZmY7XG59XG5gO1xuXG5zaGVldC5yZXBsYWNlU3luYyh0b2tlbkNzcyk7XG5cbmV4cG9ydCBjb25zdCBvcGVuUHJvcHNUb2tlblNoZWV0OiBTdHlsZVNoZWV0TGlrZSA9IHNoZWV0O1xuXG4vKipcbiAqIFBhZ2UtbGV2ZWwgdmFyaWFudCBvZiB0aGUgdG9rZW4gc2hlZXQuXG4gKlxuICogVXNlcyBgOnJvb3RgIHNlbGVjdG9ycyBzbyB0b2tlbnMgY2FzY2FkZSBpbnRvIGV2ZXJ5IHNoYWRvdyBET00gdmlhIENTU1xuICogY3VzdG9tLXByb3BlcnR5IGluaGVyaXRhbmNlLiBUaGlzIGlzIHRoZSBzaGVldCB0aGF0IHNob3VsZCBiZSBpbmplY3RlZFxuICogaW50byB0aGUgZG9jdW1lbnQgYDxoZWFkPmA7IGNvbXBvbmVudCBzaGFkb3cgcm9vdHMgY2FuIHRoZW4gY29uc3VtZSB0aGVcbiAqIHRva2VucyB3aXRob3V0IGFkb3B0aW5nIHRoZSBob3N0LWxldmVsIHNoZWV0IHRoZW1zZWx2ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBvcGVuUHJvcHNSb290U2hlZXQ6IFN0eWxlU2hlZXRMaWtlID0gbmV3IFN0eWxlU2hlZXQoKTtcbm9wZW5Qcm9wc1Jvb3RTaGVldC5yZXBsYWNlU3luYyh0b1Jvb3RDc3ModG9rZW5Dc3MpKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Q0FLQyxHQUVELFNBQVMsVUFBVSxRQUE2QixnQ0FBZ0M7QUFFaEYsU0FBUyxVQUFVLE9BQWU7RUFDaEMsT0FBTyxRQUNKLE9BQU8sQ0FBQyxvREFBb0QsSUFDNUQsT0FBTyxDQUFDLG1DQUFtQyw0QkFDM0MsT0FBTyxDQUFDLFVBQVU7QUFDdkI7QUFFQSxNQUFNLFFBQXdCLElBQUk7QUFDbEMsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlkbEIsQ0FBQztBQUVELE1BQU0sV0FBVyxDQUFDO0FBRWxCLE9BQU8sTUFBTSxzQkFBc0MsTUFBTTtBQUV6RDs7Ozs7OztDQU9DLEdBQ0QsT0FBTyxNQUFNLHFCQUFxQyxJQUFJLGFBQWE7QUFDbkUsbUJBQW1CLFdBQVcsQ0FBQyxVQUFVIn0=
|
package/src/open-theme-toggle.js
CHANGED
|
@@ -82,7 +82,7 @@ export class OpenThemeToggle extends OpenElement {
|
|
|
82
82
|
_initDone = false;
|
|
83
83
|
connectedCallback() {
|
|
84
84
|
super.connectedCallback();
|
|
85
|
-
|
|
85
|
+
this._requestAnimationFrame(()=>this._initTheme());
|
|
86
86
|
}
|
|
87
87
|
/**
|
|
88
88
|
* v0.23.0: Theme initialization lives in _initTheme(), called from
|
|
@@ -144,7 +144,7 @@ export class OpenThemeToggle extends OpenElement {
|
|
|
144
144
|
}
|
|
145
145
|
onDsdHydrated() {
|
|
146
146
|
super.onDsdHydrated();
|
|
147
|
-
|
|
147
|
+
this._requestAnimationFrame(()=>this._initTheme());
|
|
148
148
|
}
|
|
149
149
|
onCsrRendered() {
|
|
150
150
|
super.onCsrRendered();
|
|
@@ -220,4 +220,4 @@ export default OpenThemeToggle;
|
|
|
220
220
|
if (typeof customElements !== 'undefined' && !customElements.get(tagName)) {
|
|
221
221
|
customElements.define(tagName, OpenThemeToggle);
|
|
222
222
|
}
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy91aS9zcmMvb3Blbi10aGVtZS10b2dnbGUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4SW1wb3J0U291cmNlIEBvcGVuZWxlbWVudC9jb3JlICovXG4vKipcbiAqIEBvcGVuZWxlbWVudC91aSAtIG9wZW4tdGhlbWUtdG9nZ2xlXG4gKlxuICogVGhlbWUgdG9nZ2xlIFJlYWN0aXZlIERTRCBjb21wb25lbnQgZm9yIERhcmsvTGlnaHQgbW9kZSBzd2l0Y2hpbmcuXG4gKiBTd2lzcyBJbnRlcm5hdGlvbmFsIFN0eWxlOiBQdXJlIEImVywgbWluaW1hbC5cbiAqXG4gKiB2MC4yMS4wOiBVc2VzIERzZEVsZW1lbnQgKyBodG1sIHRlbXBsYXRlcyArIFNpZ25hbHMuXG4gKiB2MC4yNC4xOiBNaWdyYXRlZCBmcm9tIGh0bWxgYCB0ZW1wbGF0ZSB0byBKU1ggKEFEUi0wMDU3KS5cbiAqXG4gKiBAY3NzcGFydCB0b2dnbGUgLVRoZSBidXR0b24gZWxlbWVudFxuICogQGNzc3BhcnQgaWNvbi1zdW4gLVRoZSBzdW4gU1ZHIGljb25cbiAqIEBjc3NwYXJ0IGljb24tbW9vbiAtVGhlIG1vb24gU1ZHIGljb25cbiAqXG4gKiBVc2FnZTpcbiAqIGBgYGh0bWxcbiAqIDxvcGVuLXRoZW1lLXRvZ2dsZSB0aGVtZT1cImxpZ2h0XCI+PC9vcGVuLXRoZW1lLXRvZ2dsZT5cbiAqIGBgYFxuICovXG5cbmltcG9ydCB7IE9wZW5FbGVtZW50IH0gZnJvbSAnQG9wZW5lbGVtZW50L2VsZW1lbnQnO1xuaW1wb3J0IHsgU3R5bGVTaGVldCwgdHlwZSBTdHlsZVNoZWV0TGlrZSB9IGZyb20gJ0BvcGVuZWxlbWVudC9jb3JlL3N0eWxlLXNoZWV0JztcbmltcG9ydCB7IHNpZ25hbCB9IGZyb20gJ0BvcGVuZWxlbWVudC9zaWduYWwnO1xuZXhwb3J0IGNvbnN0IHRhZ05hbWUgPSAnb3Blbi10aGVtZS10b2dnbGUnO1xuXG5jb25zdCBzaGVldDogU3R5bGVTaGVldExpa2UgPSBuZXcgU3R5bGVTaGVldCgpO1xuc2hlZXQucmVwbGFjZVN5bmMoYFxuICA6aG9zdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgLnRoZW1lLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzhweDsgaGVpZ2h0OiAzOHB4OyBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogdmFyKC0tYm9yZGVyLXNpemUtMSkgc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJvcmRlcikgNzIlLCB2YXIoLS1icmFuZCkpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1yb3VuZCk7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJnLWVsZXZhdGVkKSA3NiUsIHRyYW5zcGFyZW50KTtcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3JheS0wKSA3MCUsIHRyYW5zcGFyZW50KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLWVhc2UtMikgdmFyKC0tZHVyYXRpb24tMik7XG4gIH1cbiAgLnRoZW1lLXRvZ2dsZTpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZC1saWdodCk7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyYW5kLXBhbGUpIDQyJSwgdmFyKC0tYmctZWxldmF0ZWQpKTtcbiAgfVxuXG4gIC50aGVtZS10b2dnbGUgc3ZnIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gIH1cblxuICAudGhlbWUtdG9nZ2xlIC5pY29uLXN1biB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAudGhlbWUtdG9nZ2xlIC5pY29uLW1vb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAudGhlbWUtdG9nZ2xlW2RhdGEtdGhlbWU9XCJsaWdodFwiXSAuaWNvbi1zdW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAudGhlbWUtdG9nZ2xlW2RhdGEtdGhlbWU9XCJsaWdodFwiXSAuaWNvbi1tb29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuYCk7XG5cbmV4cG9ydCBjbGFzcyBPcGVuVGhlbWVUb2dnbGUgZXh0ZW5kcyBPcGVuRWxlbWVudCB7XG4gIC8vIHBvbnl0YWlsOiBTYWZhcmkgZG9lcyBub3QgcmVjb21wdXRlIGFkb3B0ZWRTdHlsZVNoZWV0cyB3aGVuXG4gIC8vIDpob3N0KFtkYXRhLXRoZW1lXSkgY2hhbmdlcy4gVGhlIHRva2VuIHNoZWV0cyAob3BlblByb3BzVG9rZW5TaGVldCxcbiAgLy8gZGFpc3lDbGFzc1NoZWV0KSBhcmUgYWxyZWFkeSBpbmplY3RlZCBhcyBwYWdlLWxldmVsIDxzdHlsZT4gYnlcbiAgLy8gdml0ZS5jb25maWcudHMg4oCUIENTUyBjdXN0b20gcHJvcGVydGllcyBjYXNjYWRlIGZyb20gOnJvb3QgbmF0dXJhbGx5LlxuICAvLyBPbmx5IGFkb3B0IHRoZSBjb21wb25lbnQtc3BlY2lmaWMgc2hlZXQuXG4gIHN0YXRpYyBvdmVycmlkZSBzdHlsZXMgPSBbc2hlZXRdO1xuICBzdGF0aWMgb3ZlcnJpZGUgZGVsZWdhdGVzRm9jdXMgPSB0cnVlO1xuICBzdGF0aWMgb3ZlcnJpZGUgb2JzZXJ2ZWRBdHRyaWJ1dGVzID0gWyd0aGVtZSddO1xuXG4gIHByaXZhdGUgX3RoZW1lID0gc2lnbmFsPCdkYXJrJyB8ICdsaWdodCc+KCdkYXJrJyk7XG4gIHByaXZhdGUgX2luaXREb25lID0gZmFsc2U7XG5cbiAgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5faW5pdFRoZW1lKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIHYwLjIzLjA6IFRoZW1lIGluaXRpYWxpemF0aW9uIGxpdmVzIGluIF9pbml0VGhlbWUoKSwgY2FsbGVkIGZyb21cbiAgICogYm90aCBvbkRzZEh5ZHJhdGVkKCkgYW5kIG9uQ3NyUmVuZGVyZWQoKSBzbyB0aGF0IHRoZSBwcmlvcml0eVxuICAgKiBjaGFpbiB3b3JrcyByZWdhcmRsZXNzIG9mIGh5ZHJhdGlvbiBwYXRoLlxuICAgKlxuICAgKiBQcmlvcml0eTogdGhlbWUgYXR0cmlidXRlID4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRhdGFzZXQudGhlbWVcbiAgICogPiBsb2NhbFN0b3JhZ2UgPiBwcmVmZXJzLWNvbG9yLXNjaGVtZSA+IGRlZmF1bHQgJ2RhcmsnLlxuICAgKi9cbiAgcHJpdmF0ZSBfaW5pdFRoZW1lKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pbml0RG9uZSkgcmV0dXJuO1xuICAgIHRoaXMuX2luaXREb25lID0gdHJ1ZTtcbiAgICBjb25zdCB0aGVtZUF0dHIgPSB0aGlzLmdldEF0dHJpYnV0ZSgndGhlbWUnKTtcbiAgICBpZiAodGhlbWVBdHRyID09PSAnbGlnaHQnKSB7XG4gICAgICB0aGlzLl90aGVtZS52YWx1ZSA9ICdsaWdodCc7XG4gICAgfSBlbHNlIGlmICh0aGVtZUF0dHIgPT09ICdkYXJrJykge1xuICAgICAgdGhpcy5fdGhlbWUudmFsdWUgPSAnZGFyayc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRvY1RoZW1lID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Py5kYXRhc2V0Py50aGVtZTtcbiAgICAgIGlmIChkb2NUaGVtZSA9PT0gJ2xpZ2h0Jykge1xuICAgICAgICB0aGlzLl90aGVtZS52YWx1ZSA9ICdsaWdodCc7XG4gICAgICB9IGVsc2UgaWYgKGRvY1RoZW1lID09PSAnZGFyaycpIHtcbiAgICAgICAgdGhpcy5fdGhlbWUudmFsdWUgPSAnZGFyayc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcmVzb2x2ZWQgPSBmYWxzZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBzYXZlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdvcGVuLXRoZW1lJyk7XG4gICAgICAgICAgaWYgKHNhdmVkID09PSAnbGlnaHQnKSB7XG4gICAgICAgICAgICB0aGlzLl90aGVtZS52YWx1ZSA9ICdsaWdodCc7XG4gICAgICAgICAgICByZXNvbHZlZCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIGlmIChzYXZlZCA9PT0gJ2RhcmsnKSB7XG4gICAgICAgICAgICB0aGlzLl90aGVtZS52YWx1ZSA9ICdkYXJrJztcbiAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggeyAvKiBsb2NhbFN0b3JhZ2UgYmxvY2tlZCAqLyB9XG4gICAgICAgIGlmICghcmVzb2x2ZWQgJiYgZ2xvYmFsVGhpcy5tYXRjaE1lZGlhKSB7XG4gICAgICAgICAgdGhpcy5fdGhlbWUudmFsdWUgPSBnbG9iYWxUaGlzLm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpJykubWF0Y2hlc1xuICAgICAgICAgICAgPyAnbGlnaHQnXG4gICAgICAgICAgICA6ICdkYXJrJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXRoZW1lJywgdGhpcy5fdGhlbWUudmFsdWUpO1xuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnLCB0aGlzLl90aGVtZS52YWx1ZSk7XG4gICAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSkge1xuICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmNvbG9yU2NoZW1lID0gdGhpcy5fdGhlbWUudmFsdWU7XG4gICAgfVxuICAgIC8vIFByb3BhZ2F0ZSB0byBwYXJlbnQgb3Blbi1sYXlvdXRcbiAgICB0cnkge1xuICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuZ2V0Um9vdE5vZGUoKTtcbiAgICAgIGlmIChyb290IGluc3RhbmNlb2YgU2hhZG93Um9vdCAmJiByb290Lmhvc3QpIHtcbiAgICAgICAgcm9vdC5ob3N0LnNldEF0dHJpYnV0ZSgnZGF0YS10aGVtZScsIHRoaXMuX3RoZW1lLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHsgLyogbm90IGluIHNoYWRvdyBET00gKi8gfVxuICAgIHRoaXMuX2Rpc3BhdGNoVGhlbWVDaGFuZ2UodGhpcy5fdGhlbWUudmFsdWUpO1xuICAgIHRoaXMuX3BlcnNpc3RUaGVtZSh0aGlzLl90aGVtZS52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9wZXJzaXN0VGhlbWUodGhlbWU6ICdkYXJrJyB8ICdsaWdodCcpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ29wZW4tdGhlbWUnLCB0aGVtZSk7XG4gICAgfSBjYXRjaCB7IC8qIGJsb2NrZWQgKi8gfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uRHNkSHlkcmF0ZWQoKTogdm9pZCB7XG4gICAgc3VwZXIub25Ec2RIeWRyYXRlZCgpO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLl9pbml0VGhlbWUoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25Dc3JSZW5kZXJlZCgpOiB2b2lkIHtcbiAgICBzdXBlci5vbkNzclJlbmRlcmVkKCk7XG4gIH1cblxuICBvdmVycmlkZSByZW5kZXIoKTogUmV0dXJuVHlwZTx0eXBlb2YgT3BlbkVsZW1lbnQucHJvdG90eXBlLnJlbmRlcj4ge1xuICAgIC8vIFplcm8gc2lnbmFsLnZhbHVlIHJlYWRzIGluIHJlbmRlciAoQURSLTAwNjIpLlxuICAgIC8vIGVmZmVjdCBiaW5kaW5nIHRoYXQgdXBkYXRlcyB0aGUgYXR0cmlidXRlIHdoZW4gdGhlbWUgY2hhbmdlcy5cbiAgICAvLyBDU1Mgc2VsZWN0b3JzIChbZGF0YS10aGVtZT1cImxpZ2h0XCJdKSBoYW5kbGUgaWNvbiB2aXNpYmlsaXR5LlxuICAgIHJldHVybiAoXG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9J2J1dHRvbidcbiAgICAgICAgY2xhc3NOYW1lPSd0aGVtZS10b2dnbGUnXG4gICAgICAgIHBhcnQ9J3RvZ2dsZSdcbiAgICAgICAgZGF0YS10aGVtZT17dGhpcy5fdGhlbWV9XG4gICAgICAgIGFyaWEtbGFiZWw9J1RvZ2dsZSB0aGVtZSdcbiAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5faGFuZGxlVG9nZ2xlKCl9XG4gICAgICA+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICBjbGFzc05hbWU9J2ljb24tc3VuJ1xuICAgICAgICAgIHBhcnQ9J2ljb24tc3VuJ1xuICAgICAgICAgIHZpZXdCb3g9JzAgMCAxNiAxNidcbiAgICAgICAgICBmaWxsPSdub25lJ1xuICAgICAgICAgIHN0cm9rZT0nY3VycmVudENvbG9yJ1xuICAgICAgICAgIHN0cm9rZS13aWR0aD0nMS4yJ1xuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSdyb3VuZCdcbiAgICAgICAgPlxuICAgICAgICAgIDxjaXJjbGUgY3g9JzgnIGN5PSc4JyByPSczJyAvPlxuICAgICAgICAgIDxsaW5lIHgxPSc4JyB5MT0nMScgeDI9JzgnIHkyPSczJyAvPlxuICAgICAgICAgIDxsaW5lIHgxPSc4JyB5MT0nMTMnIHgyPSc4JyB5Mj0nMTUnIC8+XG4gICAgICAgICAgPGxpbmUgeDE9JzEnIHkxPSc4JyB4Mj0nMycgeTI9JzgnIC8+XG4gICAgICAgICAgPGxpbmUgeDE9JzEzJyB5MT0nOCcgeDI9JzE1JyB5Mj0nOCcgLz5cbiAgICAgICAgICA8bGluZSB4MT0nMy4wNScgeTE9JzMuMDUnIHgyPSc0LjQ2JyB5Mj0nNC40NicgLz5cbiAgICAgICAgICA8bGluZSB4MT0nMTEuNTQnIHkxPScxMS41NCcgeDI9JzEyLjk1JyB5Mj0nMTIuOTUnIC8+XG4gICAgICAgICAgPGxpbmUgeDE9JzMuMDUnIHkxPScxMi45NScgeDI9JzQuNDYnIHkyPScxMS41NCcgLz5cbiAgICAgICAgICA8bGluZSB4MT0nMTEuNTQnIHkxPSc0LjQ2JyB4Mj0nMTIuOTUnIHkyPSczLjA1JyAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPHN2Z1xuICAgICAgICAgIGNsYXNzTmFtZT0naWNvbi1tb29uJ1xuICAgICAgICAgIHBhcnQ9J2ljb24tbW9vbidcbiAgICAgICAgICB2aWV3Qm94PScwIDAgMTYgMTYnXG4gICAgICAgICAgZmlsbD0nbm9uZSdcbiAgICAgICAgICBzdHJva2U9J2N1cnJlbnRDb2xvcidcbiAgICAgICAgICBzdHJva2Utd2lkdGg9JzEuMidcbiAgICAgICAgICBzdHJva2UtbGluZWNhcD0ncm91bmQnXG4gICAgICAgID5cbiAgICAgICAgICA8cGF0aCBkPSdNMTMuNSA5LjE0QTUuNSA1LjUgMCAwIDEgNi44NiAyLjUgNS41IDUuNSAwIDEgMCAxMy41IDkuMTRaJyAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVUb2dnbGUoKTogdm9pZCB7XG4gICAgY29uc3QgdGhlbWUgPSB0aGlzLl90aGVtZS52YWx1ZSA9PT0gJ2xpZ2h0JyA/ICdkYXJrJyA6ICdsaWdodCc7XG4gICAgdGhpcy5fdGhlbWUudmFsdWUgPSB0aGVtZTtcblxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnLCB0aGVtZSk7XG4gICAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSkge1xuICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmNvbG9yU2NoZW1lID0gdGhlbWU7XG4gICAgfVxuXG4gICAgLy8gUHJvcGFnYXRlIGRhdGEtdGhlbWUgdG8gcGFyZW50IDxvcGVuLWxheW91dD4gc28gOmhvc3QoW2RhdGEtdGhlbWU9XCJkYXJrXCJdKSBtYXRjaGVzXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLmdldFJvb3ROb2RlKCk7XG4gICAgICBpZiAocm9vdCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QgJiYgcm9vdC5ob3N0KSB7XG4gICAgICAgIHJvb3QuaG9zdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnLCB0aGVtZSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5kZWJ1ZygnW29wZW4tdGhlbWUtdG9nZ2xlXSBnZXRSb290Tm9kZSB1bmF2YWlsYWJsZTonLCBlKTtcbiAgICB9XG5cbiAgICB0aGlzLl9kaXNwYXRjaFRoZW1lQ2hhbmdlKHRoZW1lKTtcblxuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnb3Blbi10aGVtZScsIHRoZW1lKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKCdbb3Blbi10aGVtZS10b2dnbGVdIGxvY2FsU3RvcmFnZS5zZXRJdGVtIHVuYXZhaWxhYmxlOicsIGUpO1xuICAgIH1cbiAgICAvLyBkYXRhLXRoZW1lIGF0dHJpYnV0ZSBpcyBtYW5hZ2VkIGJ5IHNpZ25hbCBwcm9wIGJpbmRpbmcgKGRhdGEtdGhlbWU9e3RoaXMuX3RoZW1lfSlcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc3BhdGNoVGhlbWVDaGFuZ2UodGhlbWU6ICdkYXJrJyB8ICdsaWdodCcpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHR5cGVvZiBDdXN0b21FdmVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGdsb2JhbFRoaXMuZGlzcGF0Y2hFdmVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBnbG9iYWxUaGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdvcGVuOnRoZW1lLWNoYW5nZScsIHsgZGV0YWlsOiB7IHRoZW1lIH0gfSkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoJ1tvcGVuLXRoZW1lLXRvZ2dsZV0gdGhlbWUgZXZlbnQgZGlzcGF0Y2ggdW5hdmFpbGFibGU6JywgZSk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG5hbWU6IHN0cmluZywgb2xkOiBzdHJpbmcgfCBudWxsLCB2YWw6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAob2xkID09PSB2YWwpIHJldHVybjtcbiAgICBpZiAobmFtZSA9PT0gJ3RoZW1lJyAmJiB2YWwpIHtcbiAgICAgIHRoaXMuX3RoZW1lLnZhbHVlID0gdmFsID09PSAnbGlnaHQnID8gJ2xpZ2h0JyA6ICdkYXJrJztcbiAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXRoZW1lJywgdGhpcy5fdGhlbWUudmFsdWUpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBPcGVuVGhlbWVUb2dnbGU7XG5cbi8vIEd1YXJkOiBpZGVtcG90ZW50IGFjcm9zcyBTU1IgcGF0aHNcbmlmICh0eXBlb2YgY3VzdG9tRWxlbWVudHMgIT09ICd1bmRlZmluZWQnICYmICFjdXN0b21FbGVtZW50cy5nZXQodGFnTmFtZSkpIHtcbiAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKHRhZ05hbWUsIE9wZW5UaGVtZVRvZ2dsZSk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDLEdBQ3ZDOzs7Ozs7Ozs7Ozs7Ozs7OztDQWlCQyxHQUVELFNBQVMsV0FBVyxRQUFRLHVCQUF1QjtBQUNuRCxTQUFTLFVBQVUsUUFBNkIsZ0NBQWdDO0FBQ2hGLFNBQVMsTUFBTSxRQUFRLHNCQUFzQjtBQUM3QyxPQUFPLE1BQU0sVUFBVSxvQkFBb0I7QUFFM0MsTUFBTSxRQUF3QixJQUFJO0FBQ2xDLE1BQU0sV0FBVyxDQUFDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNENuQixDQUFDO0FBRUQsT0FBTyxNQUFNLHdCQUF3QjtFQUNuQyw4REFBOEQ7RUFDOUQsc0VBQXNFO0VBQ3RFLGlFQUFpRTtFQUNqRSx1RUFBdUU7RUFDdkUsMkNBQTJDO0VBQzNDLE9BQWdCLFNBQVM7SUFBQztHQUFNLENBQUM7RUFDakMsT0FBZ0IsaUJBQWlCLEtBQUs7RUFDdEMsT0FBZ0IscUJBQXFCO0lBQUM7R0FBUSxDQUFDO0VBRXZDLFNBQVMsT0FBeUIsUUFBUTtFQUMxQyxZQUFZLE1BQU07RUFFakIsb0JBQTBCO0lBQ2pDLEtBQUssQ0FBQztJQUNOLHNCQUFzQixJQUFNLElBQUksQ0FBQyxVQUFVO0VBQzdDO0VBRUE7Ozs7Ozs7R0FPQyxHQUNELEFBQVEsYUFBbUI7SUFDekIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO0lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUc7SUFDakIsTUFBTSxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDcEMsSUFBSSxjQUFjLFNBQVM7TUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUc7SUFDdEIsT0FBTyxJQUFJLGNBQWMsUUFBUTtNQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRztJQUN0QixPQUFPO01BQ0wsTUFBTSxXQUFXLFNBQVMsZUFBZSxFQUFFLFNBQVM7TUFDcEQsSUFBSSxhQUFhLFNBQVM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUc7TUFDdEIsT0FBTyxJQUFJLGFBQWEsUUFBUTtRQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRztNQUN0QixPQUFPO1FBQ0wsSUFBSSxXQUFXO1FBQ2YsSUFBSTtVQUNGLE1BQU0sUUFBUSxhQUFhLE9BQU8sQ0FBQztVQUNuQyxJQUFJLFVBQVUsU0FBUztZQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRztZQUNwQixXQUFXO1VBQ2IsT0FBTyxJQUFJLFVBQVUsUUFBUTtZQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRztZQUNwQixXQUFXO1VBQ2I7UUFDRixFQUFFLE9BQU0sQ0FBNkI7UUFDckMsSUFBSSxDQUFDLFlBQVksV0FBVyxVQUFVLEVBQUU7VUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsV0FBVyxVQUFVLENBQUMsaUNBQWlDLE9BQU8sR0FDOUUsVUFDQTtRQUNOO01BQ0Y7SUFDRjtJQUVBLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUs7SUFDakQsU0FBUyxlQUFlLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLO0lBQ3JFLElBQUksU0FBUyxlQUFlLENBQUMsS0FBSyxFQUFFO01BQ2xDLFNBQVMsZUFBZSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLO0lBQ2hFO0lBQ0Esa0NBQWtDO0lBQ2xDLElBQUk7TUFDRixNQUFNLE9BQU8sSUFBSSxDQUFDLFdBQVc7TUFDN0IsSUFBSSxnQkFBZ0IsY0FBYyxLQUFLLElBQUksRUFBRTtRQUMzQyxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUs7TUFDeEQ7SUFDRixFQUFFLE9BQU0sQ0FBMEI7SUFDbEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztJQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztFQUN0QztFQUVRLGNBQWMsS0FBdUIsRUFBUTtJQUNuRCxJQUFJO01BQ0YsYUFBYSxPQUFPLENBQUMsY0FBYztJQUNyQyxFQUFFLE9BQU0sQ0FBZ0I7RUFDMUI7RUFFbUIsZ0JBQXNCO0lBQ3ZDLEtBQUssQ0FBQztJQUNOLHNCQUFzQixJQUFNLElBQUksQ0FBQyxVQUFVO0VBQzdDO0VBRW1CLGdCQUFzQjtJQUN2QyxLQUFLLENBQUM7RUFDUjtFQUVTLFNBQTBEO0lBQ2pFLGdEQUFnRDtJQUNoRCxnRUFBZ0U7SUFDaEUsK0RBQStEO0lBQy9ELFFBQ0csT0FDQyxLQUFLLFNBQ0wsVUFBVSxlQUNWLEtBQUssU0FDTCxZQUFZLElBQUksQ0FBQyxNQUFNLEVBQ3ZCLFdBQVcsZUFDWCxTQUFTLElBQU0sSUFBSSxDQUFDLGFBQWEsSUFDbEM7UUFDQyxDQUFDLElBQ0MsVUFBVSxXQUNWLEtBQUssV0FDTCxRQUFRLFlBQ1IsS0FBSyxPQUNMLE9BQU8sZUFDUCxhQUFhLE1BQ2IsZUFBZSxRQUNoQjtVQUNDLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxJQUFJLEVBQUUsS0FBTTtVQUM5QixDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFNO1VBQ3BDLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxHQUFHLE1BQU87VUFDdEMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsS0FBTTtVQUNwQyxDQUFDLEtBQUssR0FBRyxLQUFLLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxLQUFNO1VBQ3RDLENBQUMsS0FBSyxHQUFHLE9BQU8sR0FBRyxPQUFPLEdBQUcsT0FBTyxHQUFHLFFBQVM7VUFDaEQsQ0FBQyxLQUFLLEdBQUcsUUFBUSxHQUFHLFFBQVEsR0FBRyxRQUFRLEdBQUcsU0FBVTtVQUNwRCxDQUFDLEtBQUssR0FBRyxPQUFPLEdBQUcsUUFBUSxHQUFHLE9BQU8sR0FBRyxTQUFVO1VBQ2xELENBQUMsS0FBSyxHQUFHLFFBQVEsR0FBRyxPQUFPLEdBQUcsUUFBUSxHQUFHLFFBQVM7UUFDcEQsRUFBRSxJQUFJO1FBQ04sQ0FBQyxJQUNDLFVBQVUsWUFDVixLQUFLLFlBQ0wsUUFBUSxZQUNSLEtBQUssT0FDTCxPQUFPLGVBQ1AsYUFBYSxNQUNiLGVBQWUsUUFDaEI7VUFDQyxDQUFDLEtBQUssRUFBRSw4REFBK0Q7UUFDekUsRUFBRSxJQUFJO01BQ1IsRUFBRTtFQUVOO0VBRVEsZ0JBQXNCO0lBQzVCLE1BQU0sUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxVQUFVLFNBQVM7SUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUc7SUFFcEIsU0FBUyxlQUFlLENBQUMsWUFBWSxDQUFDLGNBQWM7SUFDcEQsSUFBSSxTQUFTLGVBQWUsQ0FBQyxLQUFLLEVBQUU7TUFDbEMsU0FBUyxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRztJQUMvQztJQUVBLHFGQUFxRjtJQUNyRixJQUFJO01BQ0YsTUFBTSxPQUFPLElBQUksQ0FBQyxXQUFXO01BQzdCLElBQUksZ0JBQWdCLGNBQWMsS0FBSyxJQUFJLEVBQUU7UUFDM0MsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWM7TUFDdkM7SUFDRixFQUFFLE9BQU8sR0FBRztNQUNWLFFBQVEsS0FBSyxDQUFDLGdEQUFnRDtJQUNoRTtJQUVBLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUUxQixJQUFJO01BQ0YsYUFBYSxPQUFPLENBQUMsY0FBYztJQUNyQyxFQUFFLE9BQU8sR0FBRztNQUNWLFFBQVEsS0FBSyxDQUFDLHlEQUF5RDtJQUN6RTtFQUNBLG9GQUFvRjtFQUN0RjtFQUVRLHFCQUFxQixLQUF1QixFQUFRO0lBQzFELElBQUk7TUFDRixJQUFJLE9BQU8sZ0JBQWdCLGVBQWUsT0FBTyxXQUFXLGFBQWEsS0FBSyxZQUFZO1FBQ3hGLFdBQVcsYUFBYSxDQUFDLElBQUksWUFBWSxxQkFBcUI7VUFBRSxRQUFRO1lBQUU7VUFBTTtRQUFFO01BQ3BGO0lBQ0YsRUFBRSxPQUFPLEdBQUc7TUFDVixRQUFRLEtBQUssQ0FBQyx5REFBeUQ7SUFDekU7RUFDRjtFQUVTLHlCQUF5QixJQUFZLEVBQUUsR0FBa0IsRUFBRSxHQUFrQixFQUFRO0lBQzVGLElBQUksUUFBUSxLQUFLO0lBQ2pCLElBQUksU0FBUyxXQUFXLEtBQUs7TUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsUUFBUSxVQUFVLFVBQVU7TUFDaEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztJQUNuRDtFQUNGO0FBQ0Y7QUFFQSxlQUFlLGdCQUFnQjtBQUUvQixxQ0FBcUM7QUFDckMsSUFBSSxPQUFPLG1CQUFtQixlQUFlLENBQUMsZUFBZSxHQUFHLENBQUMsVUFBVTtFQUN6RSxlQUFlLE1BQU0sQ0FBQyxTQUFTO0FBQ2pDIn0=
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy91aS9zcmMvb3Blbi10aGVtZS10b2dnbGUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4SW1wb3J0U291cmNlIEBvcGVuZWxlbWVudC9jb3JlICovXG4vKipcbiAqIEBvcGVuZWxlbWVudC91aSAtIG9wZW4tdGhlbWUtdG9nZ2xlXG4gKlxuICogVGhlbWUgdG9nZ2xlIFJlYWN0aXZlIERTRCBjb21wb25lbnQgZm9yIERhcmsvTGlnaHQgbW9kZSBzd2l0Y2hpbmcuXG4gKiBTd2lzcyBJbnRlcm5hdGlvbmFsIFN0eWxlOiBQdXJlIEImVywgbWluaW1hbC5cbiAqXG4gKiB2MC4yMS4wOiBVc2VzIERzZEVsZW1lbnQgKyBodG1sIHRlbXBsYXRlcyArIFNpZ25hbHMuXG4gKiB2MC4yNC4xOiBNaWdyYXRlZCBmcm9tIGh0bWxgYCB0ZW1wbGF0ZSB0byBKU1ggKEFEUi0wMDU3KS5cbiAqXG4gKiBAY3NzcGFydCB0b2dnbGUgLVRoZSBidXR0b24gZWxlbWVudFxuICogQGNzc3BhcnQgaWNvbi1zdW4gLVRoZSBzdW4gU1ZHIGljb25cbiAqIEBjc3NwYXJ0IGljb24tbW9vbiAtVGhlIG1vb24gU1ZHIGljb25cbiAqXG4gKiBVc2FnZTpcbiAqIGBgYGh0bWxcbiAqIDxvcGVuLXRoZW1lLXRvZ2dsZSB0aGVtZT1cImxpZ2h0XCI+PC9vcGVuLXRoZW1lLXRvZ2dsZT5cbiAqIGBgYFxuICovXG5cbmltcG9ydCB7IE9wZW5FbGVtZW50IH0gZnJvbSAnQG9wZW5lbGVtZW50L2VsZW1lbnQnO1xuaW1wb3J0IHsgU3R5bGVTaGVldCwgdHlwZSBTdHlsZVNoZWV0TGlrZSB9IGZyb20gJ0BvcGVuZWxlbWVudC9jb3JlL3N0eWxlLXNoZWV0JztcbmltcG9ydCB7IHNpZ25hbCB9IGZyb20gJ0BvcGVuZWxlbWVudC9zaWduYWwnO1xuZXhwb3J0IGNvbnN0IHRhZ05hbWUgPSAnb3Blbi10aGVtZS10b2dnbGUnO1xuXG5jb25zdCBzaGVldDogU3R5bGVTaGVldExpa2UgPSBuZXcgU3R5bGVTaGVldCgpO1xuc2hlZXQucmVwbGFjZVN5bmMoYFxuICA6aG9zdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgLnRoZW1lLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzhweDsgaGVpZ2h0OiAzOHB4OyBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogdmFyKC0tYm9yZGVyLXNpemUtMSkgc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJvcmRlcikgNzIlLCB2YXIoLS1icmFuZCkpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1yb3VuZCk7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJnLWVsZXZhdGVkKSA3NiUsIHRyYW5zcGFyZW50KTtcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3JheS0wKSA3MCUsIHRyYW5zcGFyZW50KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLWVhc2UtMikgdmFyKC0tZHVyYXRpb24tMik7XG4gIH1cbiAgLnRoZW1lLXRvZ2dsZTpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZC1saWdodCk7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyYW5kLXBhbGUpIDQyJSwgdmFyKC0tYmctZWxldmF0ZWQpKTtcbiAgfVxuXG4gIC50aGVtZS10b2dnbGUgc3ZnIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gIH1cblxuICAudGhlbWUtdG9nZ2xlIC5pY29uLXN1biB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAudGhlbWUtdG9nZ2xlIC5pY29uLW1vb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAudGhlbWUtdG9nZ2xlW2RhdGEtdGhlbWU9XCJsaWdodFwiXSAuaWNvbi1zdW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAudGhlbWUtdG9nZ2xlW2RhdGEtdGhlbWU9XCJsaWdodFwiXSAuaWNvbi1tb29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuYCk7XG5cbmV4cG9ydCBjbGFzcyBPcGVuVGhlbWVUb2dnbGUgZXh0ZW5kcyBPcGVuRWxlbWVudCB7XG4gIC8vIHBvbnl0YWlsOiBTYWZhcmkgZG9lcyBub3QgcmVjb21wdXRlIGFkb3B0ZWRTdHlsZVNoZWV0cyB3aGVuXG4gIC8vIDpob3N0KFtkYXRhLXRoZW1lXSkgY2hhbmdlcy4gVGhlIHRva2VuIHNoZWV0cyAob3BlblByb3BzVG9rZW5TaGVldCxcbiAgLy8gZGFpc3lDbGFzc1NoZWV0KSBhcmUgYWxyZWFkeSBpbmplY3RlZCBhcyBwYWdlLWxldmVsIDxzdHlsZT4gYnlcbiAgLy8gdml0ZS5jb25maWcudHMg4oCUIENTUyBjdXN0b20gcHJvcGVydGllcyBjYXNjYWRlIGZyb20gOnJvb3QgbmF0dXJhbGx5LlxuICAvLyBPbmx5IGFkb3B0IHRoZSBjb21wb25lbnQtc3BlY2lmaWMgc2hlZXQuXG4gIHN0YXRpYyBvdmVycmlkZSBzdHlsZXMgPSBbc2hlZXRdO1xuICBzdGF0aWMgb3ZlcnJpZGUgZGVsZWdhdGVzRm9jdXMgPSB0cnVlO1xuICBzdGF0aWMgb3ZlcnJpZGUgb2JzZXJ2ZWRBdHRyaWJ1dGVzID0gWyd0aGVtZSddO1xuXG4gIHByaXZhdGUgX3RoZW1lID0gc2lnbmFsPCdkYXJrJyB8ICdsaWdodCc+KCdkYXJrJyk7XG4gIHByaXZhdGUgX2luaXREb25lID0gZmFsc2U7XG5cbiAgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5faW5pdFRoZW1lKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIHYwLjIzLjA6IFRoZW1lIGluaXRpYWxpemF0aW9uIGxpdmVzIGluIF9pbml0VGhlbWUoKSwgY2FsbGVkIGZyb21cbiAgICogYm90aCBvbkRzZEh5ZHJhdGVkKCkgYW5kIG9uQ3NyUmVuZGVyZWQoKSBzbyB0aGF0IHRoZSBwcmlvcml0eVxuICAgKiBjaGFpbiB3b3JrcyByZWdhcmRsZXNzIG9mIGh5ZHJhdGlvbiBwYXRoLlxuICAgKlxuICAgKiBQcmlvcml0eTogdGhlbWUgYXR0cmlidXRlID4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRhdGFzZXQudGhlbWVcbiAgICogPiBsb2NhbFN0b3JhZ2UgPiBwcmVmZXJzLWNvbG9yLXNjaGVtZSA+IGRlZmF1bHQgJ2RhcmsnLlxuICAgKi9cbiAgcHJpdmF0ZSBfaW5pdFRoZW1lKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pbml0RG9uZSkgcmV0dXJuO1xuICAgIHRoaXMuX2luaXREb25lID0gdHJ1ZTtcbiAgICBjb25zdCB0aGVtZUF0dHIgPSB0aGlzLmdldEF0dHJpYnV0ZSgndGhlbWUnKTtcbiAgICBpZiAodGhlbWVBdHRyID09PSAnbGlnaHQnKSB7XG4gICAgICB0aGlzLl90aGVtZS52YWx1ZSA9ICdsaWdodCc7XG4gICAgfSBlbHNlIGlmICh0aGVtZUF0dHIgPT09ICdkYXJrJykge1xuICAgICAgdGhpcy5fdGhlbWUudmFsdWUgPSAnZGFyayc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRvY1RoZW1lID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Py5kYXRhc2V0Py50aGVtZTtcbiAgICAgIGlmIChkb2NUaGVtZSA9PT0gJ2xpZ2h0Jykge1xuICAgICAgICB0aGlzLl90aGVtZS52YWx1ZSA9ICdsaWdodCc7XG4gICAgICB9IGVsc2UgaWYgKGRvY1RoZW1lID09PSAnZGFyaycpIHtcbiAgICAgICAgdGhpcy5fdGhlbWUudmFsdWUgPSAnZGFyayc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcmVzb2x2ZWQgPSBmYWxzZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBzYXZlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdvcGVuLXRoZW1lJyk7XG4gICAgICAgICAgaWYgKHNhdmVkID09PSAnbGlnaHQnKSB7XG4gICAgICAgICAgICB0aGlzLl90aGVtZS52YWx1ZSA9ICdsaWdodCc7XG4gICAgICAgICAgICByZXNvbHZlZCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIGlmIChzYXZlZCA9PT0gJ2RhcmsnKSB7XG4gICAgICAgICAgICB0aGlzLl90aGVtZS52YWx1ZSA9ICdkYXJrJztcbiAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggeyAvKiBsb2NhbFN0b3JhZ2UgYmxvY2tlZCAqLyB9XG4gICAgICAgIGlmICghcmVzb2x2ZWQgJiYgZ2xvYmFsVGhpcy5tYXRjaE1lZGlhKSB7XG4gICAgICAgICAgdGhpcy5fdGhlbWUudmFsdWUgPSBnbG9iYWxUaGlzLm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpJykubWF0Y2hlc1xuICAgICAgICAgICAgPyAnbGlnaHQnXG4gICAgICAgICAgICA6ICdkYXJrJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXRoZW1lJywgdGhpcy5fdGhlbWUudmFsdWUpO1xuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnLCB0aGlzLl90aGVtZS52YWx1ZSk7XG4gICAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSkge1xuICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmNvbG9yU2NoZW1lID0gdGhpcy5fdGhlbWUudmFsdWU7XG4gICAgfVxuICAgIC8vIFByb3BhZ2F0ZSB0byBwYXJlbnQgb3Blbi1sYXlvdXRcbiAgICB0cnkge1xuICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuZ2V0Um9vdE5vZGUoKTtcbiAgICAgIGlmIChyb290IGluc3RhbmNlb2YgU2hhZG93Um9vdCAmJiByb290Lmhvc3QpIHtcbiAgICAgICAgcm9vdC5ob3N0LnNldEF0dHJpYnV0ZSgnZGF0YS10aGVtZScsIHRoaXMuX3RoZW1lLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHsgLyogbm90IGluIHNoYWRvdyBET00gKi8gfVxuICAgIHRoaXMuX2Rpc3BhdGNoVGhlbWVDaGFuZ2UodGhpcy5fdGhlbWUudmFsdWUpO1xuICAgIHRoaXMuX3BlcnNpc3RUaGVtZSh0aGlzLl90aGVtZS52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9wZXJzaXN0VGhlbWUodGhlbWU6ICdkYXJrJyB8ICdsaWdodCcpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ29wZW4tdGhlbWUnLCB0aGVtZSk7XG4gICAgfSBjYXRjaCB7IC8qIGJsb2NrZWQgKi8gfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uRHNkSHlkcmF0ZWQoKTogdm9pZCB7XG4gICAgc3VwZXIub25Ec2RIeWRyYXRlZCgpO1xuICAgIHRoaXMuX3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLl9pbml0VGhlbWUoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25Dc3JSZW5kZXJlZCgpOiB2b2lkIHtcbiAgICBzdXBlci5vbkNzclJlbmRlcmVkKCk7XG4gIH1cblxuICBvdmVycmlkZSByZW5kZXIoKTogUmV0dXJuVHlwZTx0eXBlb2YgT3BlbkVsZW1lbnQucHJvdG90eXBlLnJlbmRlcj4ge1xuICAgIC8vIFplcm8gc2lnbmFsLnZhbHVlIHJlYWRzIGluIHJlbmRlciAoQURSLTAwNjIpLlxuICAgIC8vIGVmZmVjdCBiaW5kaW5nIHRoYXQgdXBkYXRlcyB0aGUgYXR0cmlidXRlIHdoZW4gdGhlbWUgY2hhbmdlcy5cbiAgICAvLyBDU1Mgc2VsZWN0b3JzIChbZGF0YS10aGVtZT1cImxpZ2h0XCJdKSBoYW5kbGUgaWNvbiB2aXNpYmlsaXR5LlxuICAgIHJldHVybiAoXG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9J2J1dHRvbidcbiAgICAgICAgY2xhc3NOYW1lPSd0aGVtZS10b2dnbGUnXG4gICAgICAgIHBhcnQ9J3RvZ2dsZSdcbiAgICAgICAgZGF0YS10aGVtZT17dGhpcy5fdGhlbWV9XG4gICAgICAgIGFyaWEtbGFiZWw9J1RvZ2dsZSB0aGVtZSdcbiAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5faGFuZGxlVG9nZ2xlKCl9XG4gICAgICA+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICBjbGFzc05hbWU9J2ljb24tc3VuJ1xuICAgICAgICAgIHBhcnQ9J2ljb24tc3VuJ1xuICAgICAgICAgIHZpZXdCb3g9JzAgMCAxNiAxNidcbiAgICAgICAgICBmaWxsPSdub25lJ1xuICAgICAgICAgIHN0cm9rZT0nY3VycmVudENvbG9yJ1xuICAgICAgICAgIHN0cm9rZS13aWR0aD0nMS4yJ1xuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSdyb3VuZCdcbiAgICAgICAgPlxuICAgICAgICAgIDxjaXJjbGUgY3g9JzgnIGN5PSc4JyByPSczJyAvPlxuICAgICAgICAgIDxsaW5lIHgxPSc4JyB5MT0nMScgeDI9JzgnIHkyPSczJyAvPlxuICAgICAgICAgIDxsaW5lIHgxPSc4JyB5MT0nMTMnIHgyPSc4JyB5Mj0nMTUnIC8+XG4gICAgICAgICAgPGxpbmUgeDE9JzEnIHkxPSc4JyB4Mj0nMycgeTI9JzgnIC8+XG4gICAgICAgICAgPGxpbmUgeDE9JzEzJyB5MT0nOCcgeDI9JzE1JyB5Mj0nOCcgLz5cbiAgICAgICAgICA8bGluZSB4MT0nMy4wNScgeTE9JzMuMDUnIHgyPSc0LjQ2JyB5Mj0nNC40NicgLz5cbiAgICAgICAgICA8bGluZSB4MT0nMTEuNTQnIHkxPScxMS41NCcgeDI9JzEyLjk1JyB5Mj0nMTIuOTUnIC8+XG4gICAgICAgICAgPGxpbmUgeDE9JzMuMDUnIHkxPScxMi45NScgeDI9JzQuNDYnIHkyPScxMS41NCcgLz5cbiAgICAgICAgICA8bGluZSB4MT0nMTEuNTQnIHkxPSc0LjQ2JyB4Mj0nMTIuOTUnIHkyPSczLjA1JyAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPHN2Z1xuICAgICAgICAgIGNsYXNzTmFtZT0naWNvbi1tb29uJ1xuICAgICAgICAgIHBhcnQ9J2ljb24tbW9vbidcbiAgICAgICAgICB2aWV3Qm94PScwIDAgMTYgMTYnXG4gICAgICAgICAgZmlsbD0nbm9uZSdcbiAgICAgICAgICBzdHJva2U9J2N1cnJlbnRDb2xvcidcbiAgICAgICAgICBzdHJva2Utd2lkdGg9JzEuMidcbiAgICAgICAgICBzdHJva2UtbGluZWNhcD0ncm91bmQnXG4gICAgICAgID5cbiAgICAgICAgICA8cGF0aCBkPSdNMTMuNSA5LjE0QTUuNSA1LjUgMCAwIDEgNi44NiAyLjUgNS41IDUuNSAwIDEgMCAxMy41IDkuMTRaJyAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVUb2dnbGUoKTogdm9pZCB7XG4gICAgY29uc3QgdGhlbWUgPSB0aGlzLl90aGVtZS52YWx1ZSA9PT0gJ2xpZ2h0JyA/ICdkYXJrJyA6ICdsaWdodCc7XG4gICAgdGhpcy5fdGhlbWUudmFsdWUgPSB0aGVtZTtcblxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnLCB0aGVtZSk7XG4gICAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSkge1xuICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmNvbG9yU2NoZW1lID0gdGhlbWU7XG4gICAgfVxuXG4gICAgLy8gUHJvcGFnYXRlIGRhdGEtdGhlbWUgdG8gcGFyZW50IDxvcGVuLWxheW91dD4gc28gOmhvc3QoW2RhdGEtdGhlbWU9XCJkYXJrXCJdKSBtYXRjaGVzXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLmdldFJvb3ROb2RlKCk7XG4gICAgICBpZiAocm9vdCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QgJiYgcm9vdC5ob3N0KSB7XG4gICAgICAgIHJvb3QuaG9zdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnLCB0aGVtZSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5kZWJ1ZygnW29wZW4tdGhlbWUtdG9nZ2xlXSBnZXRSb290Tm9kZSB1bmF2YWlsYWJsZTonLCBlKTtcbiAgICB9XG5cbiAgICB0aGlzLl9kaXNwYXRjaFRoZW1lQ2hhbmdlKHRoZW1lKTtcblxuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnb3Blbi10aGVtZScsIHRoZW1lKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKCdbb3Blbi10aGVtZS10b2dnbGVdIGxvY2FsU3RvcmFnZS5zZXRJdGVtIHVuYXZhaWxhYmxlOicsIGUpO1xuICAgIH1cbiAgICAvLyBkYXRhLXRoZW1lIGF0dHJpYnV0ZSBpcyBtYW5hZ2VkIGJ5IHNpZ25hbCBwcm9wIGJpbmRpbmcgKGRhdGEtdGhlbWU9e3RoaXMuX3RoZW1lfSlcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc3BhdGNoVGhlbWVDaGFuZ2UodGhlbWU6ICdkYXJrJyB8ICdsaWdodCcpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHR5cGVvZiBDdXN0b21FdmVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGdsb2JhbFRoaXMuZGlzcGF0Y2hFdmVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBnbG9iYWxUaGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdvcGVuOnRoZW1lLWNoYW5nZScsIHsgZGV0YWlsOiB7IHRoZW1lIH0gfSkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoJ1tvcGVuLXRoZW1lLXRvZ2dsZV0gdGhlbWUgZXZlbnQgZGlzcGF0Y2ggdW5hdmFpbGFibGU6JywgZSk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG5hbWU6IHN0cmluZywgb2xkOiBzdHJpbmcgfCBudWxsLCB2YWw6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAob2xkID09PSB2YWwpIHJldHVybjtcbiAgICBpZiAobmFtZSA9PT0gJ3RoZW1lJyAmJiB2YWwpIHtcbiAgICAgIHRoaXMuX3RoZW1lLnZhbHVlID0gdmFsID09PSAnbGlnaHQnID8gJ2xpZ2h0JyA6ICdkYXJrJztcbiAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXRoZW1lJywgdGhpcy5fdGhlbWUudmFsdWUpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBPcGVuVGhlbWVUb2dnbGU7XG5cbi8vIEd1YXJkOiBpZGVtcG90ZW50IGFjcm9zcyBTU1IgcGF0aHNcbmlmICh0eXBlb2YgY3VzdG9tRWxlbWVudHMgIT09ICd1bmRlZmluZWQnICYmICFjdXN0b21FbGVtZW50cy5nZXQodGFnTmFtZSkpIHtcbiAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKHRhZ05hbWUsIE9wZW5UaGVtZVRvZ2dsZSk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDLEdBQ3ZDOzs7Ozs7Ozs7Ozs7Ozs7OztDQWlCQyxHQUVELFNBQVMsV0FBVyxRQUFRLHVCQUF1QjtBQUNuRCxTQUFTLFVBQVUsUUFBNkIsZ0NBQWdDO0FBQ2hGLFNBQVMsTUFBTSxRQUFRLHNCQUFzQjtBQUM3QyxPQUFPLE1B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
|