bc-deeplib 2.3.0 → 2.4.1
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/dist/deeplib.d.ts +8 -9
- package/dist/deeplib.js +69 -72
- package/dist/deeplib.js.map +3 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/deeplib.d.ts
CHANGED
|
@@ -182,6 +182,8 @@ declare module 'bc-deeplib/base/base_subscreen' {
|
|
|
182
182
|
static readonly id: string;
|
|
183
183
|
/** Optional configuration flags for a BaseSubscreen instance. */
|
|
184
184
|
protected static readonly subscreenOptions: SubscreenOptions;
|
|
185
|
+
/** The menu at the top of the subscreen */
|
|
186
|
+
protected static menu: HTMLDivElement | null;
|
|
185
187
|
constructor(module?: BaseModule);
|
|
186
188
|
/** Changes the currently active subscreen. */
|
|
187
189
|
setSubscreen(screen: BaseSubscreen | string): Promise<void>;
|
|
@@ -764,13 +766,16 @@ declare module 'bc-deeplib/screens/main_menu' {
|
|
|
764
766
|
|
|
765
767
|
}
|
|
766
768
|
declare module 'bc-deeplib/utilities/common' {
|
|
769
|
+
export type DeepMergeOptions = {
|
|
770
|
+
concatArrays?: boolean;
|
|
771
|
+
};
|
|
767
772
|
/**
|
|
768
773
|
* Deeply merges two values into a new value.
|
|
769
774
|
* - Arrays are concatenated.
|
|
770
775
|
* - Plain objects are merged recursively.
|
|
771
776
|
* - Other values are replaced by `source`.
|
|
772
777
|
*/
|
|
773
|
-
export function deepMerge<T, U>(target: T, source: U): T & U;
|
|
778
|
+
export function deepMerge<T, U>(target: T, source: U, options?: DeepMergeOptions): T & U;
|
|
774
779
|
/**
|
|
775
780
|
* Returns a new array with elements of the input array shuffled.
|
|
776
781
|
* Uses something-something shuffle algorithm by splicing from a cloned array.
|
|
@@ -783,12 +788,6 @@ declare module 'bc-deeplib/utilities/common' {
|
|
|
783
788
|
* Example: `exportToGlobal('MyMod.Utils', value)` creates `globalThis.MyMod.Utils = value`.
|
|
784
789
|
*/
|
|
785
790
|
export function exportToGlobal(name: string, value: any): void;
|
|
786
|
-
/**
|
|
787
|
-
* Deeply merges only matching properties from `mergeFrom` into `mergeTo`.
|
|
788
|
-
* Properties not present in `mergeTo` are ignored.
|
|
789
|
-
* Objects are recursively merged, primitive properties overwritten.
|
|
790
|
-
*/
|
|
791
|
-
export function deepMergeMatchingProperties<T extends object>(mergeTo: T, mergeFrom: T): T;
|
|
792
791
|
/** Checks if the given property has a getter defined on the object or its prototype chain. */
|
|
793
792
|
export function hasGetter<T extends object>(obj: T, prop: keyof T | string): boolean;
|
|
794
793
|
/** Checks if the given property has a setter defined on the object or its prototype chain. */
|
|
@@ -850,10 +849,10 @@ declare module 'bc-deeplib/utilities/elements/elements' {
|
|
|
850
849
|
};
|
|
851
850
|
function elementCreateButton(options: Omit<Button, 'type'>): HTMLButtonElement;
|
|
852
851
|
function elementCreateCheckbox(options: Omit<Checkbox, 'type'>): HTMLElement;
|
|
853
|
-
function elementCreateCustom(options: Omit<Custom, 'type'>):
|
|
852
|
+
function elementCreateCustom(options: Omit<Custom, 'type'>): HTMLElement;
|
|
854
853
|
function elementCreateInput(options: Input): HTMLElement;
|
|
855
854
|
function elementCreateLabel(options: Omit<Label, 'type'>): HTMLElement;
|
|
856
|
-
function elementCreateDropdown(options: Omit<Dropdown, 'type'>): HTMLDivElement;
|
|
855
|
+
function elementCreateDropdown(options: Omit<Dropdown, 'type'>): HTMLDivElement | HTMLLabelElement;
|
|
857
856
|
function elementCreateTooltip(): HTMLDivElement;
|
|
858
857
|
function elementGetTooltip(): HTMLElement | undefined;
|
|
859
858
|
function elementSetTooltip(text: string): boolean;
|
package/dist/deeplib.js
CHANGED
|
@@ -258,7 +258,6 @@ var BaseModule = class {
|
|
|
258
258
|
* Subclasses can override to perform additional setup.
|
|
259
259
|
*/
|
|
260
260
|
init() {
|
|
261
|
-
this.registerDefaultSettings(modStorage.playerStorage);
|
|
262
261
|
}
|
|
263
262
|
/**
|
|
264
263
|
* Registers default settings for this module in persistent storage.
|
|
@@ -271,7 +270,8 @@ var BaseModule = class {
|
|
|
271
270
|
const storage = this.settingsStorage;
|
|
272
271
|
const defaults = this.defaultSettings;
|
|
273
272
|
if (!storage || !defaults) return;
|
|
274
|
-
|
|
273
|
+
if (Object.entries(this.defaultSettings).length === 0) return;
|
|
274
|
+
target[storage] = deepMerge(this.defaultSettings, target[storage], { concatArrays: false });
|
|
275
275
|
}
|
|
276
276
|
/**
|
|
277
277
|
* Provides default settings for this module.
|
|
@@ -335,6 +335,8 @@ var BaseSubscreen = class _BaseSubscreen {
|
|
|
335
335
|
settingsWidth: 1e3,
|
|
336
336
|
forceUpCharacter: false
|
|
337
337
|
};
|
|
338
|
+
/** The menu at the top of the subscreen */
|
|
339
|
+
static menu = null;
|
|
338
340
|
constructor(module) {
|
|
339
341
|
if (module) this.module = module;
|
|
340
342
|
const ctor = this.constructor;
|
|
@@ -432,8 +434,8 @@ var BaseSubscreen = class _BaseSubscreen {
|
|
|
432
434
|
layout.getSubscreen();
|
|
433
435
|
const settingsElement = layout.getSettingsDiv();
|
|
434
436
|
layout.appendToSubscreen(settingsElement);
|
|
435
|
-
|
|
436
|
-
layout.appendToSubscreen(menu);
|
|
437
|
+
_BaseSubscreen.menu = ElementMenu.Create("deeplib-nav-menu", []);
|
|
438
|
+
layout.appendToSubscreen(_BaseSubscreen.menu);
|
|
437
439
|
if (this.pageStructure.length > 1) {
|
|
438
440
|
const backNext = advElement.createBackNext({
|
|
439
441
|
id: "deeplib-page-back-next",
|
|
@@ -443,7 +445,7 @@ var BaseSubscreen = class _BaseSubscreen {
|
|
|
443
445
|
initialPrevTooltip: getText("settings.button.prev_button_hint"),
|
|
444
446
|
initialLabel: this.getPageLabel()
|
|
445
447
|
});
|
|
446
|
-
|
|
448
|
+
_BaseSubscreen.menu.prepend(backNext);
|
|
447
449
|
}
|
|
448
450
|
if (this.options.help) {
|
|
449
451
|
const onClick = this.options.help.onClick;
|
|
@@ -467,7 +469,7 @@ var BaseSubscreen = class _BaseSubscreen {
|
|
|
467
469
|
tooltip: this.options.help.tooltip
|
|
468
470
|
}
|
|
469
471
|
});
|
|
470
|
-
|
|
472
|
+
_BaseSubscreen.menu.append(helpButton);
|
|
471
473
|
}
|
|
472
474
|
if (this.options.doShowTitle) {
|
|
473
475
|
const subscreenTitle = advElement.createLabel({
|
|
@@ -488,7 +490,7 @@ var BaseSubscreen = class _BaseSubscreen {
|
|
|
488
490
|
tooltip: getText("settings.button.back_button_hint")
|
|
489
491
|
}
|
|
490
492
|
});
|
|
491
|
-
|
|
493
|
+
_BaseSubscreen.menu.append(exitButton);
|
|
492
494
|
}
|
|
493
495
|
const tooltip = advElement.createTooltip();
|
|
494
496
|
layout.appendToSubscreen(tooltip);
|
|
@@ -628,12 +630,9 @@ var styles_default = `.deeplib-subscreen,
|
|
|
628
630
|
width: 100%;
|
|
629
631
|
height: 100%;
|
|
630
632
|
}
|
|
631
|
-
|
|
632
|
-
.deeplib-button.button-styling,
|
|
633
|
-
.deeplib-button.button-styling::before {
|
|
633
|
+
.deeplib-button.button-styling, .deeplib-button.button-styling::before {
|
|
634
634
|
border-radius: min(1dvh, 0.5dvw);
|
|
635
635
|
}
|
|
636
|
-
|
|
637
636
|
.deeplib-button img {
|
|
638
637
|
position: absolute;
|
|
639
638
|
top: 0%;
|
|
@@ -653,17 +652,15 @@ var styles_default = `.deeplib-subscreen,
|
|
|
653
652
|
mask-image: var(--image);
|
|
654
653
|
pointer-events: none;
|
|
655
654
|
}
|
|
656
|
-
|
|
657
655
|
.deeplib-button:hover img {
|
|
658
656
|
background-color: var(--deeplib-icon-hover-color);
|
|
659
657
|
}
|
|
660
|
-
|
|
661
658
|
.deeplib-button .button-label {
|
|
662
659
|
background-color: transparent !important;
|
|
663
660
|
color: var(--deeplib-text-color);
|
|
664
661
|
font-size: min(3.6dvh, 1.8dvw);
|
|
662
|
+
display: contents;
|
|
665
663
|
}
|
|
666
|
-
|
|
667
664
|
.deeplib-button .button-tooltip {
|
|
668
665
|
border-radius: min(1dvh, 0.5dvw);
|
|
669
666
|
}
|
|
@@ -672,11 +669,14 @@ var styles_default = `.deeplib-subscreen,
|
|
|
672
669
|
display: flex;
|
|
673
670
|
align-items: center;
|
|
674
671
|
justify-content: center;
|
|
672
|
+
pointer-events: none;
|
|
675
673
|
}
|
|
676
674
|
|
|
677
675
|
#deeplib-subscreen-title {
|
|
678
676
|
text-align: left;
|
|
679
677
|
color: var(--deeplib-text-color);
|
|
678
|
+
user-select: none;
|
|
679
|
+
pointer-events: none;
|
|
680
680
|
}
|
|
681
681
|
|
|
682
682
|
.deeplib-text {
|
|
@@ -746,12 +746,17 @@ var styles_default = `.deeplib-subscreen,
|
|
|
746
746
|
}
|
|
747
747
|
.deeplib-prev-next .deeplib-prev-next-label {
|
|
748
748
|
white-space: nowrap;
|
|
749
|
+
user-select: none;
|
|
749
750
|
}
|
|
750
751
|
|
|
751
752
|
#deeplib-nav-menu {
|
|
752
753
|
display: flex;
|
|
753
754
|
flex-direction: row;
|
|
754
755
|
gap: min(2dvh, 1dvw);
|
|
756
|
+
z-index: 1;
|
|
757
|
+
}
|
|
758
|
+
#deeplib-nav-menu > .deeplib-button {
|
|
759
|
+
flex: 1 0 auto;
|
|
755
760
|
}
|
|
756
761
|
|
|
757
762
|
#deeplib-storage-meter {
|
|
@@ -766,8 +771,7 @@ var styles_default = `.deeplib-subscreen,
|
|
|
766
771
|
border-radius: var(--deeplib-border-radius);
|
|
767
772
|
z-index: -1;
|
|
768
773
|
}
|
|
769
|
-
|
|
770
|
-
#deeplib-storage-bar {
|
|
774
|
+
#deeplib-storage-meter #deeplib-storage-bar {
|
|
771
775
|
height: 100%;
|
|
772
776
|
width: 0%;
|
|
773
777
|
background: var(--deeplib-accent-color);
|
|
@@ -778,9 +782,12 @@ var styles_default = `.deeplib-subscreen,
|
|
|
778
782
|
flex-direction: row;
|
|
779
783
|
align-items: center;
|
|
780
784
|
gap: 0.3em;
|
|
785
|
+
width: fit-content;
|
|
781
786
|
}
|
|
782
|
-
|
|
783
|
-
|
|
787
|
+
.deeplib-checkbox-container span {
|
|
788
|
+
user-select: none;
|
|
789
|
+
}
|
|
790
|
+
.deeplib-checkbox-container .deeplib-input {
|
|
784
791
|
width: min(5vh, 2.5vw);
|
|
785
792
|
height: min(5vh, 2.5vw);
|
|
786
793
|
width: min(5dvh, 2.5dvw);
|
|
@@ -788,8 +795,7 @@ var styles_default = `.deeplib-subscreen,
|
|
|
788
795
|
border-radius: min(1vh, 0.5vw);
|
|
789
796
|
border-radius: min(1dvh, 0.5dvw);
|
|
790
797
|
}
|
|
791
|
-
|
|
792
|
-
.deeplib-checkbox-container input.deeplib-input[type=checkbox]:checked::before {
|
|
798
|
+
.deeplib-checkbox-container .deeplib-input[type=checkbox]:checked::before {
|
|
793
799
|
width: 80%;
|
|
794
800
|
height: 80%;
|
|
795
801
|
}
|
|
@@ -799,14 +805,16 @@ var styles_default = `.deeplib-subscreen,
|
|
|
799
805
|
flex-direction: row;
|
|
800
806
|
align-items: center;
|
|
801
807
|
gap: 0.3em;
|
|
808
|
+
width: fit-content;
|
|
802
809
|
}
|
|
803
|
-
|
|
804
|
-
|
|
810
|
+
.deeplib-input-container span {
|
|
811
|
+
user-select: none;
|
|
812
|
+
}
|
|
813
|
+
.deeplib-input-container:has(.deeplib-text) {
|
|
805
814
|
margin-top: min(1vh, 0.5vw);
|
|
806
815
|
margin-top: min(1dvh, 0.5dvw);
|
|
807
816
|
}
|
|
808
|
-
|
|
809
|
-
.deeplib-input-container input.deeplib-input {
|
|
817
|
+
.deeplib-input-container .deeplib-input {
|
|
810
818
|
font-size: 0.6em;
|
|
811
819
|
padding: min(1vh, 0.5vw);
|
|
812
820
|
padding: min(1dvh, 0.5dvw);
|
|
@@ -817,8 +825,7 @@ var styles_default = `.deeplib-subscreen,
|
|
|
817
825
|
border-radius: min(1vh, 0.5vw);
|
|
818
826
|
border-radius: min(1dvh, 0.5dvw);
|
|
819
827
|
}
|
|
820
|
-
|
|
821
|
-
.deeplib-input-container input.deeplib-input[type=color] {
|
|
828
|
+
.deeplib-input-container .deeplib-input[type=color] {
|
|
822
829
|
padding: 0px;
|
|
823
830
|
width: min(5vh, 2.5vw);
|
|
824
831
|
height: min(5vh, 2.5vw);
|
|
@@ -826,8 +833,7 @@ var styles_default = `.deeplib-subscreen,
|
|
|
826
833
|
height: min(5dvh, 2.5dvw);
|
|
827
834
|
border-radius: 0px;
|
|
828
835
|
}
|
|
829
|
-
|
|
830
|
-
.deeplib-input-container input.deeplib-input[type=color]:disabled {
|
|
836
|
+
.deeplib-input-container .deeplib-input[type=color]:disabled {
|
|
831
837
|
border: var(--deeplib-blocked-color) solid var(--deeplib-border-width);
|
|
832
838
|
cursor: not-allowed;
|
|
833
839
|
}
|
|
@@ -839,6 +845,7 @@ var styles_default = `.deeplib-subscreen,
|
|
|
839
845
|
gap: min(2vh, 1vw);
|
|
840
846
|
gap: min(2dvh, 1dvw);
|
|
841
847
|
color: var(--deeplib-text-color);
|
|
848
|
+
width: fit-content;
|
|
842
849
|
}
|
|
843
850
|
.deeplib-dropdown-container select {
|
|
844
851
|
padding: 0 min(1vh, 0.5vw);
|
|
@@ -846,6 +853,9 @@ var styles_default = `.deeplib-subscreen,
|
|
|
846
853
|
border-radius: min(1vh, 0.5vw);
|
|
847
854
|
border-radius: min(1dvh, 0.5dvw);
|
|
848
855
|
}
|
|
856
|
+
.deeplib-dropdown-container span {
|
|
857
|
+
user-select: none;
|
|
858
|
+
}
|
|
849
859
|
|
|
850
860
|
.deeplib-highlight-text {
|
|
851
861
|
font-weight: bold;
|
|
@@ -939,7 +949,7 @@ var styles_default = `.deeplib-subscreen,
|
|
|
939
949
|
height: 100dvh;
|
|
940
950
|
background-color: rgba(0, 0, 0, 0.5);
|
|
941
951
|
}
|
|
942
|
-
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL21udC9zaGluZG93cy9TdHVmZi9Db2RlL2JjL0JDLURlZXBMaWIvc3JjL3N0eWxlcyIsInNvdXJjZXMiOlsidmFycy5zY3NzIiwiYnV0dG9ucy5zY3NzIiwiZWxlbWVudHMuc2NzcyIsImlucHV0cy5zY3NzIiwibWVzc2FnZXMuc2NzcyIsIm1vZGFsLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNkRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUMzQ0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0U7RUFDRTtFQUNBOztBQUhKO0VBTUU7RUFDQTs7QUFHRjtFQUNFOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQ3pHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUN2RUo7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FDN0JGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFLTjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBIiwic291cmNlc0NvbnRlbnQiOlsiLmRlZXBsaWItc3Vic2NyZWVuLFxuLmRlZXBsaWItbW9kYWwge1xuICAtLWRlZXBsaWItYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdG1kLW1haW4sIHdoaXRlKTtcbiAgLS1kZWVwbGliLWVsZW1lbnQtY29sb3I6IHZhcigtLXRtZC1lbGVtZW50LCB3aGl0ZSk7XG4gIC0tZGVlcGxpYi1lbGVtZW50LWhvdmVyLWNvbG9yOiB2YXIoLS10bWQtZWxlbWVudC1ob3ZlciwgY3lhbik7XG4gIC0tZGVlcGxpYi1hY2NlbnQtY29sb3I6IHZhcigtLXRtZC1hY2NlbnQsICNGRkZGODgpO1xuICAtLWRlZXBsaWItYmxvY2tlZC1jb2xvcjogdmFyKC0tdG1kLWJsb2NrZWQsIHJlZCk7XG4gIC0tZGVlcGxpYi10ZXh0LWNvbG9yOiB2YXIoLS10bWQtdGV4dCwgYmxhY2spO1xuICAtLWRlZXBsaWItaWNvbi1jb2xvcjogdmFyKC0tdG1kLWFjY2VudCwgYmxhY2spO1xuICAtLWRlZXBsaWItaWNvbi1ob3Zlci1jb2xvcjogdmFyKC0tdG1kLWFjY2VudC1ob3ZlciwgYmxhY2spO1xuICAtLWRlZXBsaWItYm9yZGVyLWNvbG9yOiB2YXIoLS10bWQtYWNjZW50LCBibGFjayk7XG4gIC0tZGVlcGxpYi1ib3JkZXItd2lkdGg6IG1pbigwLjJ2aCwgMC4xdncpO1xuICAtLWRlZXBsaWItYm9yZGVyLXdpZHRoOiBtaW4oMC4yZHZoLCAwLjFkdncpO1xuICAtLWRlZXBsaWItYm9yZGVyLXJhZGl1czogbWluKDF2aCwgMC41dncpO1xuICAtLWRlZXBsaWItYm9yZGVyLXJhZGl1czogbWluKDFkdmgsIDAuNWR2dyk7XG59XG4iLCIuZGVlcGxpYi1idXR0b24ge1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmRlZXBsaWItYnV0dG9uLmJ1dHRvbi1zdHlsaW5nLFxuLmRlZXBsaWItYnV0dG9uLmJ1dHRvbi1zdHlsaW5nOjpiZWZvcmUge1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xufVxuXG4uZGVlcGxpYi1idXR0b24gaW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGVlcGxpYi1pY29uLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBtYXNrLXBvc2l0aW9uOiBsZWZ0O1xuICBtYXNrLXNpemU6IGNvbnRhaW47XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1pbWFnZSk7XG4gIG1hc2staW1hZ2U6IHZhcigtLWltYWdlKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5kZWVwbGliLWJ1dHRvbjpob3ZlciBpbWcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWljb24taG92ZXItY29sb3IpO1xufVxuXG4uZGVlcGxpYi1idXR0b24gLmJ1dHRvbi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xuICBmb250LXNpemU6IG1pbigzLjZkdmgsIDEuOGR2dyk7XG59XG5cbi5kZWVwbGliLWJ1dHRvbiAuYnV0dG9uLXRvb2x0aXAge1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xufVxuIiwiI2RlZXBsaWItcGFnZS1sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4jZGVlcGxpYi1zdWJzY3JlZW4tdGl0bGUge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcbn1cblxuLmRlZXBsaWItdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xufVxuXG4uZGVlcGxpYi1zdWJzY3JlZW4ge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZGVlcGxpYi1zdWJzY3JlZW4gKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbi5kZWVwbGliLXNldHRpbmdzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1hdXRvLXJvd3M6IG1pbi1jb250ZW50O1xuICBwYWRkaW5nOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xuICBnYXA6IDAuM2VtO1xufVxuXG4uZGVlcGxpYi1taXNjIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICBnYXA6IG1pbigxdmgsIDAuNXZ3KTtcbn1cblxuLmRlZXBsaWItdG9vbHRpcCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItZWxlbWVudC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogbWluKDEuMGR2aCwgMC41ZHZ3KTtcbiAgcGFkZGluZzogbWluKDF2aCwgMC41dncpO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBib3JkZXI6IG1pbigwLjJ2aCwgMC4xdncpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLWNvbG9yKTtcbiAgei1pbmRleDogMTtcbn1cblxuLmRlZXBsaWItb3ZlcmZsb3ctYm94IHtcbiAgYm9yZGVyOiB2YXIoLS1kZWVwbGliLWJvcmRlci1jb2xvcikgc29saWQgdmFyKC0tZGVlcGxpYi1ib3JkZXItd2lkdGgpO1xufVxuXG4uZGVlcGxpYi1wcmV2LW5leHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGdhcDogbWluKDJkdmgsIDFkdncpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWVsZW1lbnQtY29sb3IpO1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogbWluKDEuMGR2aCwgMC41ZHZ3KTtcbiAgYm9yZGVyOiBtaW4oMC4ydmgsIDAuMXZ3KSBzb2xpZCB2YXIoLS1kZWVwbGliLWJvcmRlci1jb2xvcik7XG5cbiAgLmRlZXBsaWItcHJldi1uZXh0LWJ1dHRvbiB7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWVsZW1lbnQtaG92ZXItY29sb3IpO1xuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcGxpYi1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG4gICAgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgfVxuXG4gIC5kZWVwbGliLXByZXYtbmV4dC1sYWJlbCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuXG4jZGVlcGxpYi1uYXYtbWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGdhcDogbWluKDJkdmgsIDFkdncpO1xufVxuXG4jZGVlcGxpYi1zdG9yYWdlLW1ldGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWVsZW1lbnQtY29sb3IpO1xuICBib3JkZXI6IHZhcigtLWRlZXBsaWItYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1kZWVwbGliLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXBsaWItYm9yZGVyLXJhZGl1cyk7XG4gIHotaW5kZXg6IC0xO1xufVxuXG4jZGVlcGxpYi1zdG9yYWdlLWJhciB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVwbGliLWFjY2VudC1jb2xvcik7XG59XG4iLCIuZGVlcGxpYi1jaGVja2JveC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuM2VtO1xufVxuXG4uZGVlcGxpYi1jaGVja2JveC1jb250YWluZXIgaW5wdXQuZGVlcGxpYi1pbnB1dCB7XG4gIHdpZHRoOiBtaW4oNXZoLCAyLjV2dyk7XG4gIGhlaWdodDogbWluKDV2aCwgMi41dncpO1xuICB3aWR0aDogbWluKDVkdmgsIDIuNWR2dyk7XG4gIGhlaWdodDogbWluKDVkdmgsIDIuNWR2dyk7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjB2aCwgMC41dncpO1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xufVxuXG4uZGVlcGxpYi1jaGVja2JveC1jb250YWluZXIgaW5wdXQuZGVlcGxpYi1pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZDo6YmVmb3JlIHtcbiAgd2lkdGg6IDgwJTtcbiAgaGVpZ2h0OiA4MCU7XG59XG5cbi5kZWVwbGliLWlucHV0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zZW07XG59XG5cbi5kZWVwbGliLWlucHV0LWNvbnRhaW5lcjpoYXMobGFiZWwuZGVlcGxpYi10ZXh0KSB7XG4gIG1hcmdpbi10b3A6IG1pbigxdmgsIDAuNXZ3KTtcbiAgbWFyZ2luLXRvcDogbWluKDFkdmgsIDAuNWR2dyk7XG59XG5cbi5kZWVwbGliLWlucHV0LWNvbnRhaW5lciBpbnB1dC5kZWVwbGliLWlucHV0IHtcbiAgZm9udC1zaXplOiAwLjZlbTtcbiAgcGFkZGluZzogbWluKDF2aCwgMC41dncpO1xuICBwYWRkaW5nOiBtaW4oMWR2aCwgMC41ZHZ3KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IG1pbig1dmgsIDIuNXZ3KTtcbiAgbWluLWhlaWdodDogbWluKDVkdmgsIDIuNWR2dyk7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjB2aCwgMC41dncpO1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xufVxuXG4uZGVlcGxpYi1pbnB1dC1jb250YWluZXIgaW5wdXQuZGVlcGxpYi1pbnB1dFt0eXBlPVwiY29sb3JcIl0ge1xuICBwYWRkaW5nOiAwcHg7XG4gIHdpZHRoOiBtaW4oNXZoLCAyLjV2dyk7XG4gIGhlaWdodDogbWluKDV2aCwgMi41dncpO1xuICB3aWR0aDogbWluKDVkdmgsIDIuNWR2dyk7XG4gIGhlaWdodDogbWluKDVkdmgsIDIuNWR2dyk7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLmRlZXBsaWItaW5wdXQtY29udGFpbmVyIGlucHV0LmRlZXBsaWItaW5wdXRbdHlwZT1cImNvbG9yXCJdOmRpc2FibGVkIHtcbiAgYm9yZGVyOiB2YXIoLS1kZWVwbGliLWJsb2NrZWQtY29sb3IpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLXdpZHRoKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmRlZXBsaWItZHJvcGRvd24tY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiBtaW4oMnZoLCAxdncpO1xuICBnYXA6IG1pbigyZHZoLCAxZHZ3KTtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG5cbiAgc2VsZWN0IHtcbiAgICBwYWRkaW5nOiAwIG1pbigxdmgsIDAuNXZ3KTtcbiAgICBwYWRkaW5nOiAwIG1pbigxZHZoLCAwLjVkdncpO1xuICAgIGJvcmRlci1yYWRpdXM6IG1pbigxdmgsIDAuNXZ3KTtcbiAgICBib3JkZXItcmFkaXVzOiBtaW4oMWR2aCwgMC41ZHZ3KTtcbiAgfVxufSIsIi5kZWVwbGliLWhpZ2hsaWdodC10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2IoMjAzLCAxODUsIDIzKTtcbn1cblxuI1RleHRBcmVhQ2hhdExvZ1tkYXRhLWNvbG9ydGhlbWU9J2RhcmsnXSBkaXYuQ2hhdE1lc3NhZ2UuZGVlcGxpYi1tZXNzYWdlLFxuI1RleHRBcmVhQ2hhdExvZ1tkYXRhLWNvbG9ydGhlbWU9J2RhcmsyJ10gZGl2LkNoYXRNZXNzYWdlLmRlZXBsaWItbWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItZWxlbWVudC1jb2xvcik7XG4gIGJvcmRlcjogbWluKDAuMmR2aCwgMC4xZHZ3KSBzb2xpZCB2YXIoLS1kZWVwbGliLWJvcmRlci1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xufVxuXG4jVGV4dEFyZWFDaGF0TG9nIGRpdi5DaGF0TWVzc2FnZS5kZWVwbGliLW1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICBib3JkZXI6IG1pbigwLjJkdmgsIDAuMWR2dykgc29saWQgIzQ0MDE3MTtcbiAgY29sb3I6ICMxMTE7XG4gIHBhZGRpbmctbGVmdDogbWluKDAuNmR2aCwgMC4zZHZ3KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbiNUZXh0QXJlYUNoYXRMb2dbZGF0YS1jb2xvcnRoZW1lPSdkYXJrJ10gZGl2LkNoYXRNZXNzYWdlLmRlZXBsaWItbWVzc2FnZSBhLFxuI1RleHRBcmVhQ2hhdExvZ1tkYXRhLWNvbG9ydGhlbWU9J2RhcmsyJ10gZGl2LkNoYXRNZXNzYWdlLmRlZXBsaWItbWVzc2FnZSBhIHtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG59XG5cbiNUZXh0QXJlYUNoYXRMb2cgZGl2LkNoYXRNZXNzYWdlLmRlZXBsaWItbWVzc2FnZSBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICMxMTE7XG59XG4iLCIuZGVlcGxpYi1tb2RhbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAxMCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB6LWluZGV4OiAxMDAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVlbTtcbiAgd2lkdGg6IG1heCg1MGR2dywgMjVkdmgpO1xuICBmb250LXNpemU6IG1pbig0ZHZoLCAyZHZ3KTtcbiAgcGFkZGluZzogbWluKDJkdmgsIDFkdncpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWVsZW1lbnQtY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4yZHZoLCAwLjZkdncpO1xuICBib3JkZXI6IG1pbigwLjJkdmgsIDAuMWR2dykgc29saWQgdmFyKC0tZGVlcGxpYi1ib3JkZXItY29sb3IpO1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcblxuICAuZGVlcGxpYi1tb2RhbC1pbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiBtaW4oMi42ZHZoLCAxLjhkdncpO1xuICAgIGJvcmRlci1yYWRpdXM6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG4gICAgcGFkZGluZzogbWluKDFkdmgsIDAuNWR2dyk7XG4gIH1cblxuICBpbnB1dC5kZWVwbGliLW1vZGFsLWlucHV0IHtcbiAgICBtYXgtd2lkdGg6IG1heCg1MGR2aCwgMjVkdncpO1xuICB9XG5cbiAgLmRlZXBsaWItbW9kYWwtYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZ2FwOiAwLjVlbTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5kZWVwbGliLWJ1dHRvbiB7XG4gICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgcGFkZGluZzogbWluKDAuNHZoLCAwLjJ2dykgbWluKDJ2aCwgMXZ3KTtcblxuICAgICAgLmJ1dHRvbi1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5kZWVwbGliLW1vZGFsLXByb21wdC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG5cbi5kZWVwbGliLW1vZGFsLWJsb2NrZXIge1xuICB6LWluZGV4OiAxMDAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMGR2dztcbiAgaGVpZ2h0OiAxMDBkdmg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cbiJdfQ== */`;
|
|
952
|
+
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL21udC9zaGluZG93cy9TdHVmZi9Db2RlL2JjL0JDLURlZXBMaWIvc3JjL3N0eWxlcyIsInNvdXJjZXMiOlsidmFycy5zY3NzIiwiYnV0dG9ucy5zY3NzIiwiZWxlbWVudHMuc2NzcyIsImlucHV0cy5zY3NzIiwibWVzc2FnZXMuc2NzcyIsIm1vZGFsLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNkRjtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUVFOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7O0FDM0NKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdFO0VBQ0U7RUFDQTs7QUFISjtFQU1FO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7OztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7OztBQ2pISjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7OztBQUtOO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7OztBQU9SO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOzs7QUN2Rko7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FDN0JGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFLTjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBIiwic291cmNlc0NvbnRlbnQiOlsiLmRlZXBsaWItc3Vic2NyZWVuLFxuLmRlZXBsaWItbW9kYWwge1xuICAtLWRlZXBsaWItYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdG1kLW1haW4sIHdoaXRlKTtcbiAgLS1kZWVwbGliLWVsZW1lbnQtY29sb3I6IHZhcigtLXRtZC1lbGVtZW50LCB3aGl0ZSk7XG4gIC0tZGVlcGxpYi1lbGVtZW50LWhvdmVyLWNvbG9yOiB2YXIoLS10bWQtZWxlbWVudC1ob3ZlciwgY3lhbik7XG4gIC0tZGVlcGxpYi1hY2NlbnQtY29sb3I6IHZhcigtLXRtZC1hY2NlbnQsICNGRkZGODgpO1xuICAtLWRlZXBsaWItYmxvY2tlZC1jb2xvcjogdmFyKC0tdG1kLWJsb2NrZWQsIHJlZCk7XG4gIC0tZGVlcGxpYi10ZXh0LWNvbG9yOiB2YXIoLS10bWQtdGV4dCwgYmxhY2spO1xuICAtLWRlZXBsaWItaWNvbi1jb2xvcjogdmFyKC0tdG1kLWFjY2VudCwgYmxhY2spO1xuICAtLWRlZXBsaWItaWNvbi1ob3Zlci1jb2xvcjogdmFyKC0tdG1kLWFjY2VudC1ob3ZlciwgYmxhY2spO1xuICAtLWRlZXBsaWItYm9yZGVyLWNvbG9yOiB2YXIoLS10bWQtYWNjZW50LCBibGFjayk7XG4gIC0tZGVlcGxpYi1ib3JkZXItd2lkdGg6IG1pbigwLjJ2aCwgMC4xdncpO1xuICAtLWRlZXBsaWItYm9yZGVyLXdpZHRoOiBtaW4oMC4yZHZoLCAwLjFkdncpO1xuICAtLWRlZXBsaWItYm9yZGVyLXJhZGl1czogbWluKDF2aCwgMC41dncpO1xuICAtLWRlZXBsaWItYm9yZGVyLXJhZGl1czogbWluKDFkdmgsIDAuNWR2dyk7XG59XG4iLCIuZGVlcGxpYi1idXR0b24ge1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcblxuICAmLmJ1dHRvbi1zdHlsaW5nLFxuICAmLmJ1dHRvbi1zdHlsaW5nOjpiZWZvcmUge1xuICAgIGJvcmRlci1yYWRpdXM6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG4gIH1cblxuICBpbWcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDAlO1xuICAgIGxlZnQ6IDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItaWNvbi1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgbWFzay1wb3NpdGlvbjogbGVmdDtcbiAgICBtYXNrLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWltYWdlKTtcbiAgICBtYXNrLWltYWdlOiB2YXIoLS1pbWFnZSk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAmOmhvdmVyIGltZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGVlcGxpYi1pY29uLWhvdmVyLWNvbG9yKTtcbiAgfVxuXG4gIC5idXR0b24tbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG4gICAgZm9udC1zaXplOiBtaW4oMy42ZHZoLCAxLjhkdncpO1xuICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICB9XG5cbiAgLmJ1dHRvbi10b29sdGlwIHtcbiAgICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xuICB9XG59IiwiI2RlZXBsaWItcGFnZS1sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuI2RlZXBsaWItc3Vic2NyZWVuLXRpdGxlIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmRlZXBsaWItdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xufVxuXG4uZGVlcGxpYi1zdWJzY3JlZW4ge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZGVlcGxpYi1zdWJzY3JlZW4gKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbi5kZWVwbGliLXNldHRpbmdzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1hdXRvLXJvd3M6IG1pbi1jb250ZW50O1xuICBwYWRkaW5nOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xuICBnYXA6IDAuM2VtO1xufVxuXG4uZGVlcGxpYi1taXNjIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICBnYXA6IG1pbigxdmgsIDAuNXZ3KTtcbn1cblxuLmRlZXBsaWItdG9vbHRpcCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItZWxlbWVudC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogbWluKDEuMGR2aCwgMC41ZHZ3KTtcbiAgcGFkZGluZzogbWluKDF2aCwgMC41dncpO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBib3JkZXI6IG1pbigwLjJ2aCwgMC4xdncpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLWNvbG9yKTtcbiAgei1pbmRleDogMTtcbn1cblxuLmRlZXBsaWItb3ZlcmZsb3ctYm94IHtcbiAgYm9yZGVyOiB2YXIoLS1kZWVwbGliLWJvcmRlci1jb2xvcikgc29saWQgdmFyKC0tZGVlcGxpYi1ib3JkZXItd2lkdGgpO1xufVxuXG4uZGVlcGxpYi1wcmV2LW5leHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGdhcDogbWluKDJkdmgsIDFkdncpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWVsZW1lbnQtY29sb3IpO1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogbWluKDEuMGR2aCwgMC41ZHZ3KTtcbiAgYm9yZGVyOiBtaW4oMC4ydmgsIDAuMXZ3KSBzb2xpZCB2YXIoLS1kZWVwbGliLWJvcmRlci1jb2xvcik7XG5cbiAgLmRlZXBsaWItcHJldi1uZXh0LWJ1dHRvbiB7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWVsZW1lbnQtaG92ZXItY29sb3IpO1xuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcGxpYi1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYXNwZWN0LXJhdGlvOiAxO1xuICB9XG5cbiAgLmRlZXBsaWItcHJldi1uZXh0LWxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG59XG5cbiNkZWVwbGliLW5hdi1tZW51IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZ2FwOiBtaW4oMmR2aCwgMWR2dyk7XG4gIHotaW5kZXg6IDE7XG5cbiAgJj4uZGVlcGxpYi1idXR0b24ge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICB9XG59XG5cbiNkZWVwbGliLXN0b3JhZ2UtbWV0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItZWxlbWVudC1jb2xvcik7XG4gIGJvcmRlcjogdmFyKC0tZGVlcGxpYi1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcGxpYi1ib3JkZXItcmFkaXVzKTtcbiAgei1pbmRleDogLTE7XG5cbiAgI2RlZXBsaWItc3RvcmFnZS1iYXIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcGxpYi1hY2NlbnQtY29sb3IpO1xuICB9XG59IiwiLmRlZXBsaWItY2hlY2tib3gtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjNlbTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gIHNwYW4ge1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG5cbiAgLmRlZXBsaWItaW5wdXQge1xuICAgIHdpZHRoOiBtaW4oNXZoLCAyLjV2dyk7XG4gICAgaGVpZ2h0OiBtaW4oNXZoLCAyLjV2dyk7XG4gICAgd2lkdGg6IG1pbig1ZHZoLCAyLjVkdncpO1xuICAgIGhlaWdodDogbWluKDVkdmgsIDIuNWR2dyk7XG4gICAgYm9yZGVyLXJhZGl1czogbWluKDEuMHZoLCAwLjV2dyk7XG4gICAgYm9yZGVyLXJhZGl1czogbWluKDEuMGR2aCwgMC41ZHZ3KTtcblxuICAgICZbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQ6OmJlZm9yZSB7XG4gICAgICB3aWR0aDogODAlO1xuICAgICAgaGVpZ2h0OiA4MCU7XG4gICAgfVxuICB9XG59XG5cbi5kZWVwbGliLWlucHV0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zZW07XG4gIHdpZHRoOiBmaXQtY29udGVudDtcblxuICBzcGFuIHtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuXG4gICY6aGFzKC5kZWVwbGliLXRleHQpIHtcbiAgICBtYXJnaW4tdG9wOiBtaW4oMXZoLCAwLjV2dyk7XG4gICAgbWFyZ2luLXRvcDogbWluKDFkdmgsIDAuNWR2dyk7XG4gIH1cblxuICAuZGVlcGxpYi1pbnB1dCB7XG4gICAgZm9udC1zaXplOiAwLjZlbTtcbiAgICBwYWRkaW5nOiBtaW4oMXZoLCAwLjV2dyk7XG4gICAgcGFkZGluZzogbWluKDFkdmgsIDAuNWR2dyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBtaW4taGVpZ2h0OiBtaW4oNXZoLCAyLjV2dyk7XG4gICAgbWluLWhlaWdodDogbWluKDVkdmgsIDIuNWR2dyk7XG4gICAgYm9yZGVyLXJhZGl1czogbWluKDEuMHZoLCAwLjV2dyk7XG4gICAgYm9yZGVyLXJhZGl1czogbWluKDEuMGR2aCwgMC41ZHZ3KTtcblxuICAgICZbdHlwZT1cImNvbG9yXCJdIHtcbiAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgIHdpZHRoOiBtaW4oNXZoLCAyLjV2dyk7XG4gICAgICBoZWlnaHQ6IG1pbig1dmgsIDIuNXZ3KTtcbiAgICAgIHdpZHRoOiBtaW4oNWR2aCwgMi41ZHZ3KTtcbiAgICAgIGhlaWdodDogbWluKDVkdmgsIDIuNWR2dyk7XG4gICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG5cbiAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBib3JkZXI6IHZhcigtLWRlZXBsaWItYmxvY2tlZC1jb2xvcikgc29saWQgdmFyKC0tZGVlcGxpYi1ib3JkZXItd2lkdGgpO1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi5kZWVwbGliLWRyb3Bkb3duLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogbWluKDJ2aCwgMXZ3KTtcbiAgZ2FwOiBtaW4oMmR2aCwgMWR2dyk7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG5cbiAgc2VsZWN0IHtcbiAgICBwYWRkaW5nOiAwIG1pbigxdmgsIDAuNXZ3KTtcbiAgICBwYWRkaW5nOiAwIG1pbigxZHZoLCAwLjVkdncpO1xuICAgIGJvcmRlci1yYWRpdXM6IG1pbigxdmgsIDAuNXZ3KTtcbiAgICBib3JkZXItcmFkaXVzOiBtaW4oMWR2aCwgMC41ZHZ3KTtcbiAgfVxuXG4gIHNwYW4ge1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG59IiwiLmRlZXBsaWItaGlnaGxpZ2h0LXRleHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHJnYigyMDMsIDE4NSwgMjMpO1xufVxuXG4jVGV4dEFyZWFDaGF0TG9nW2RhdGEtY29sb3J0aGVtZT0nZGFyayddIGRpdi5DaGF0TWVzc2FnZS5kZWVwbGliLW1lc3NhZ2UsXG4jVGV4dEFyZWFDaGF0TG9nW2RhdGEtY29sb3J0aGVtZT0nZGFyazInXSBkaXYuQ2hhdE1lc3NhZ2UuZGVlcGxpYi1tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGVlcGxpYi1lbGVtZW50LWNvbG9yKTtcbiAgYm9yZGVyOiBtaW4oMC4yZHZoLCAwLjFkdncpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG59XG5cbiNUZXh0QXJlYUNoYXRMb2cgZGl2LkNoYXRNZXNzYWdlLmRlZXBsaWItbWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIGJvcmRlcjogbWluKDAuMmR2aCwgMC4xZHZ3KSBzb2xpZCAjNDQwMTcxO1xuICBjb2xvcjogIzExMTtcbiAgcGFkZGluZy1sZWZ0OiBtaW4oMC42ZHZoLCAwLjNkdncpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuI1RleHRBcmVhQ2hhdExvZ1tkYXRhLWNvbG9ydGhlbWU9J2RhcmsnXSBkaXYuQ2hhdE1lc3NhZ2UuZGVlcGxpYi1tZXNzYWdlIGEsXG4jVGV4dEFyZWFDaGF0TG9nW2RhdGEtY29sb3J0aGVtZT0nZGFyazInXSBkaXYuQ2hhdE1lc3NhZ2UuZGVlcGxpYi1tZXNzYWdlIGEge1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcbn1cblxuI1RleHRBcmVhQ2hhdExvZyBkaXYuQ2hhdE1lc3NhZ2UuZGVlcGxpYi1tZXNzYWdlIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzExMTtcbn1cbiIsIi5kZWVwbGliLW1vZGFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDEwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHotaW5kZXg6IDEwMDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNWVtO1xuICB3aWR0aDogbWF4KDUwZHZ3LCAyNWR2aCk7XG4gIGZvbnQtc2l6ZTogbWluKDRkdmgsIDJkdncpO1xuICBwYWRkaW5nOiBtaW4oMmR2aCwgMWR2dyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItZWxlbWVudC1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjJkdmgsIDAuNmR2dyk7XG4gIGJvcmRlcjogbWluKDAuMmR2aCwgMC4xZHZ3KSBzb2xpZCB2YXIoLS1kZWVwbGliLWJvcmRlci1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xuXG4gIC5kZWVwbGliLW1vZGFsLWlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IG1pbigyLjZkdmgsIDEuOGR2dyk7XG4gICAgYm9yZGVyLXJhZGl1czogbWluKDEuMGR2aCwgMC41ZHZ3KTtcbiAgICBwYWRkaW5nOiBtaW4oMWR2aCwgMC41ZHZ3KTtcbiAgfVxuXG4gIGlucHV0LmRlZXBsaWItbW9kYWwtaW5wdXQge1xuICAgIG1heC13aWR0aDogbWF4KDUwZHZoLCAyNWR2dyk7XG4gIH1cblxuICAuZGVlcGxpYi1tb2RhbC1idXR0b24tY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDAuNWVtO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmRlZXBsaWItYnV0dG9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBwYWRkaW5nOiBtaW4oMC40dmgsIDAuMnZ3KSBtaW4oMnZoLCAxdncpO1xuXG4gICAgICAuYnV0dG9uLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmRlZXBsaWItbW9kYWwtcHJvbXB0LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbn1cblxuLmRlZXBsaWItbW9kYWwtYmxvY2tlciB7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwZHZ3O1xuICBoZWlnaHQ6IDEwMGR2aDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuIl19 */`;
|
|
943
953
|
|
|
944
954
|
// src/base/initialization.ts
|
|
945
955
|
var modStorage;
|
|
@@ -983,12 +993,6 @@ async function init(options) {
|
|
|
983
993
|
await options.initFunction?.();
|
|
984
994
|
if (options.mainMenuOptions)
|
|
985
995
|
MainMenu.setOptions(options.mainMenuOptions);
|
|
986
|
-
for (const m of modules()) {
|
|
987
|
-
if (m.defaultSettings && hasGetter(m, "defaultSettings") && m.settings && hasSetter(m, "settings")) {
|
|
988
|
-
if (Object.entries(m.defaultSettings).length === 0) continue;
|
|
989
|
-
m.settings = deepMergeMatchingProperties(m.defaultSettings, m.settings);
|
|
990
|
-
}
|
|
991
|
-
}
|
|
992
996
|
window[MOD_NAME + "Loaded"] = true;
|
|
993
997
|
logger.log(`Loaded! Version: ${MOD_VERSION}`);
|
|
994
998
|
}
|
|
@@ -1006,6 +1010,9 @@ function initModules(modulesToRegister) {
|
|
|
1006
1010
|
for (const module of modules()) {
|
|
1007
1011
|
module.run();
|
|
1008
1012
|
}
|
|
1013
|
+
for (const module of modules()) {
|
|
1014
|
+
module.registerDefaultSettings(modStorage.playerStorage);
|
|
1015
|
+
}
|
|
1009
1016
|
logger.debug("Modules Loaded.");
|
|
1010
1017
|
return true;
|
|
1011
1018
|
}
|
|
@@ -1429,13 +1436,13 @@ var GuiDebug = class extends BaseSubscreen {
|
|
|
1429
1436
|
|
|
1430
1437
|
// src/utilities/common.ts
|
|
1431
1438
|
function isPlainObject(value) {
|
|
1432
|
-
return value !== null && typeof value === "object" && Object.getPrototypeOf(value) === Object.prototype;
|
|
1439
|
+
return value !== null && typeof value === "object" && Object.getPrototypeOf(value) === Object.prototype && !Array.isArray(value);
|
|
1433
1440
|
}
|
|
1434
1441
|
__name(isPlainObject, "isPlainObject");
|
|
1435
|
-
function deepMerge(target, source) {
|
|
1442
|
+
function deepMerge(target, source, options = { concatArrays: true }) {
|
|
1436
1443
|
if (target === void 0) return source;
|
|
1437
1444
|
if (source === void 0) return target;
|
|
1438
|
-
if (Array.isArray(target) && Array.isArray(source)) {
|
|
1445
|
+
if (Array.isArray(target) && Array.isArray(source) && options.concatArrays) {
|
|
1439
1446
|
return [...target, ...source];
|
|
1440
1447
|
}
|
|
1441
1448
|
if (isPlainObject(target) && isPlainObject(source)) {
|
|
@@ -1444,7 +1451,7 @@ function deepMerge(target, source) {
|
|
|
1444
1451
|
if (key === "__proto__" || key === "constructor" || key === "prototype") {
|
|
1445
1452
|
continue;
|
|
1446
1453
|
}
|
|
1447
|
-
result[key] = key in target ? deepMerge(target[key], source[key]) : source[key];
|
|
1454
|
+
result[key] = key in target ? deepMerge(target[key], source[key], options) : source[key];
|
|
1448
1455
|
}
|
|
1449
1456
|
return result;
|
|
1450
1457
|
}
|
|
@@ -1474,19 +1481,7 @@ function exportToGlobal(name, value) {
|
|
|
1474
1481
|
current[keys[keys.length - 1]] = value;
|
|
1475
1482
|
}
|
|
1476
1483
|
__name(exportToGlobal, "exportToGlobal");
|
|
1477
|
-
function
|
|
1478
|
-
const mergedObject = { ...mergeTo };
|
|
1479
|
-
for (const key in mergeFrom) {
|
|
1480
|
-
if (mergeFrom[key] !== null && typeof mergeFrom[key] === "object") {
|
|
1481
|
-
mergedObject[key] = deepMergeMatchingProperties(mergedObject[key] || {}, mergeFrom[key]);
|
|
1482
|
-
} else if (key in mergedObject) {
|
|
1483
|
-
mergedObject[key] = mergeFrom[key];
|
|
1484
|
-
}
|
|
1485
|
-
}
|
|
1486
|
-
return mergedObject;
|
|
1487
|
-
}
|
|
1488
|
-
__name(deepMergeMatchingProperties, "deepMergeMatchingProperties");
|
|
1489
|
-
function hasGetter(obj, prop) {
|
|
1484
|
+
function hasGetter3(obj, prop) {
|
|
1490
1485
|
while (obj && obj !== Object.prototype) {
|
|
1491
1486
|
const descriptor = Object.getOwnPropertyDescriptor(obj, prop);
|
|
1492
1487
|
if (descriptor?.get) return true;
|
|
@@ -1494,8 +1489,8 @@ function hasGetter(obj, prop) {
|
|
|
1494
1489
|
}
|
|
1495
1490
|
return false;
|
|
1496
1491
|
}
|
|
1497
|
-
__name(
|
|
1498
|
-
function
|
|
1492
|
+
__name(hasGetter3, "hasGetter");
|
|
1493
|
+
function hasSetter3(obj, prop) {
|
|
1499
1494
|
while (obj && obj !== Object.prototype) {
|
|
1500
1495
|
const descriptor = Object.getOwnPropertyDescriptor(obj, prop);
|
|
1501
1496
|
if (descriptor?.set) return true;
|
|
@@ -1503,7 +1498,7 @@ function hasSetter(obj, prop) {
|
|
|
1503
1498
|
}
|
|
1504
1499
|
return false;
|
|
1505
1500
|
}
|
|
1506
|
-
__name(
|
|
1501
|
+
__name(hasSetter3, "hasSetter");
|
|
1507
1502
|
var byteToKB = /* @__PURE__ */ __name((nByte) => Math.round(nByte / 100) / 10, "byteToKB");
|
|
1508
1503
|
|
|
1509
1504
|
// src/utilities/elements/elements.ts
|
|
@@ -1572,10 +1567,11 @@ function elementCreateCheckbox(options) {
|
|
|
1572
1567
|
options.type = "checkbox";
|
|
1573
1568
|
const disabled = typeof options?.disabled === "function" ? options?.disabled() : options?.disabled;
|
|
1574
1569
|
const retElem = ElementCreate(deepMerge({
|
|
1575
|
-
tag: "
|
|
1570
|
+
tag: "label",
|
|
1576
1571
|
classList: ["deeplib-checkbox-container"],
|
|
1577
1572
|
attributes: {
|
|
1578
|
-
id: `${options.id}-container
|
|
1573
|
+
id: `${options.id}-container`,
|
|
1574
|
+
for: options.id
|
|
1579
1575
|
},
|
|
1580
1576
|
children: [
|
|
1581
1577
|
deepMerge({
|
|
@@ -1594,10 +1590,10 @@ function elementCreateCheckbox(options) {
|
|
|
1594
1590
|
}
|
|
1595
1591
|
}, options.htmlOptions?.checkbox),
|
|
1596
1592
|
deepMerge({
|
|
1597
|
-
tag: "
|
|
1593
|
+
tag: "span",
|
|
1598
1594
|
classList: ["deeplib-text"],
|
|
1599
1595
|
attributes: {
|
|
1600
|
-
|
|
1596
|
+
id: `${options.id}-label`
|
|
1601
1597
|
},
|
|
1602
1598
|
children: [options.label]
|
|
1603
1599
|
}, options.htmlOptions?.label)
|
|
@@ -1632,10 +1628,11 @@ function elementCreateInput(options) {
|
|
|
1632
1628
|
if (elem) return elem;
|
|
1633
1629
|
const disabled = typeof options?.disabled === "function" ? options?.disabled() : options?.disabled;
|
|
1634
1630
|
const retElem = ElementCreate(deepMerge({
|
|
1635
|
-
tag: "
|
|
1631
|
+
tag: "label",
|
|
1636
1632
|
classList: ["deeplib-input-container"],
|
|
1637
1633
|
attributes: {
|
|
1638
|
-
id: `${options.id}-container
|
|
1634
|
+
id: `${options.id}-container`,
|
|
1635
|
+
for: options.id
|
|
1639
1636
|
},
|
|
1640
1637
|
children: [
|
|
1641
1638
|
deepMerge({
|
|
@@ -1655,10 +1652,10 @@ function elementCreateInput(options) {
|
|
|
1655
1652
|
}
|
|
1656
1653
|
}, options.htmlOptions?.input),
|
|
1657
1654
|
options.label ? deepMerge({
|
|
1658
|
-
tag: "
|
|
1655
|
+
tag: "span",
|
|
1659
1656
|
classList: ["deeplib-text"],
|
|
1660
1657
|
attributes: {
|
|
1661
|
-
|
|
1658
|
+
id: `${options.id}-label`
|
|
1662
1659
|
},
|
|
1663
1660
|
children: [options.label]
|
|
1664
1661
|
}, options.htmlOptions?.label) : void 0
|
|
@@ -1681,7 +1678,7 @@ function elementCreateLabel(options) {
|
|
|
1681
1678
|
if (elem) return elem;
|
|
1682
1679
|
options.type = "label";
|
|
1683
1680
|
const retElem = ElementCreate(deepMerge({
|
|
1684
|
-
tag: "
|
|
1681
|
+
tag: "label",
|
|
1685
1682
|
classList: ["deeplib-label", "deeplib-text"],
|
|
1686
1683
|
attributes: {
|
|
1687
1684
|
id: options.id
|
|
@@ -1708,17 +1705,18 @@ function elementCreateDropdown(options) {
|
|
|
1708
1705
|
if (elem) return elem;
|
|
1709
1706
|
options.type = "dropdown";
|
|
1710
1707
|
const retElem = ElementCreate(deepMerge({
|
|
1711
|
-
tag: "
|
|
1708
|
+
tag: "label",
|
|
1712
1709
|
classList: ["deeplib-dropdown-container"],
|
|
1713
1710
|
attributes: {
|
|
1714
|
-
id: `${options.id}-container
|
|
1711
|
+
id: `${options.id}-container`,
|
|
1712
|
+
for: options.id
|
|
1715
1713
|
},
|
|
1716
1714
|
children: [
|
|
1717
1715
|
options.label ? deepMerge({
|
|
1718
|
-
tag: "
|
|
1716
|
+
tag: "span",
|
|
1719
1717
|
classList: ["deeplib-text"],
|
|
1720
1718
|
attributes: {
|
|
1721
|
-
|
|
1719
|
+
id: `${options.id}-label`
|
|
1722
1720
|
},
|
|
1723
1721
|
children: [options.label]
|
|
1724
1722
|
}, options.htmlOptions?.label) : void 0,
|
|
@@ -2177,7 +2175,7 @@ var MainMenu = class _MainMenu extends BaseSubscreen {
|
|
|
2177
2175
|
}
|
|
2178
2176
|
if (_MainMenu.options.storageFullnessIndicator) {
|
|
2179
2177
|
const maxStorageCapacityKB = 180;
|
|
2180
|
-
const currentStorageCapacityKB = byteToKB(ModStorage.measureSize(
|
|
2178
|
+
const currentStorageCapacityKB = byteToKB(ModStorage.measureSize(modStorage.extensionStorage));
|
|
2181
2179
|
const fullness = (currentStorageCapacityKB / maxStorageCapacityKB * 100).toFixed(1);
|
|
2182
2180
|
const storageFullnessWrapper = advElement.createButton({
|
|
2183
2181
|
id: CommonGenerateUniqueID(),
|
|
@@ -3153,13 +3151,12 @@ export {
|
|
|
3153
3151
|
byteToKB,
|
|
3154
3152
|
deepLibLogger,
|
|
3155
3153
|
deepMerge,
|
|
3156
|
-
deepMergeMatchingProperties,
|
|
3157
3154
|
domUtil,
|
|
3158
3155
|
exportToGlobal,
|
|
3159
3156
|
getModule,
|
|
3160
3157
|
getText,
|
|
3161
|
-
hasGetter,
|
|
3162
|
-
hasSetter,
|
|
3158
|
+
hasGetter3 as hasGetter,
|
|
3159
|
+
hasSetter3 as hasSetter,
|
|
3163
3160
|
initMod,
|
|
3164
3161
|
layout,
|
|
3165
3162
|
logger,
|