valtech-components 4.0.519 → 4.0.521
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/esm2022/lib/components/organisms/mini-games/christianity-game.component.mjs +434 -33
- package/esm2022/lib/components/organisms/mini-games/christianity-rules.mjs +18 -4
- package/esm2022/lib/components/organisms/mini-games/mini-games.i18n.mjs +59 -3
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +509 -38
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/mini-games/chessimals-game.component.d.ts +1 -1
- package/lib/components/organisms/mini-games/christianity-game.component.d.ts +35 -0
- package/lib/components/organisms/mini-games/christianity-rules.d.ts +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -13,7 +13,10 @@ const GENESIS_CATALOG_URL = 'assets/games/christianity/data/01-genesis.cards.jso
|
|
|
13
13
|
const GENESIS_ICON_URL = 'assets/games/christianity/icons/1-icon.png';
|
|
14
14
|
const TUTORIAL_CHARACTER_LIMIT = 12;
|
|
15
15
|
const TUTORIAL_OFFERING_LIMIT = 6;
|
|
16
|
+
const TUTORIAL_OPENING_HAND_SIZE = 5;
|
|
17
|
+
const TUTORIAL_SEED = 20260728;
|
|
16
18
|
const SPLASH_MIN_DURATION_MS = 720;
|
|
19
|
+
const CHRISTIANITY_PREVIEW_NEUTRAL_TILT = { rotateX: 0, rotateY: 0, shiftX: 0, shiftY: 0 };
|
|
17
20
|
const STARTER_CARDS = {
|
|
18
21
|
o_simple: {
|
|
19
22
|
id: 'o_simple',
|
|
@@ -183,12 +186,15 @@ export class ChristianityGameComponent {
|
|
|
183
186
|
this.impactTimers = new Set();
|
|
184
187
|
this.game = signal(structuredClone(STARTING_GAME));
|
|
185
188
|
this.screen = signal('splash');
|
|
189
|
+
this.tutorialPhase = signal('coin');
|
|
190
|
+
this.tutorialSetup = signal(null);
|
|
191
|
+
this.showOptions = signal(false);
|
|
186
192
|
this.catalogLoadState = signal('loading');
|
|
187
193
|
this.selectedHandCard = signal(null);
|
|
188
194
|
this.selectedAttacker = signal(null);
|
|
189
195
|
this.selectedPreview = signal(null);
|
|
190
196
|
this.selectedInfo = signal(null);
|
|
191
|
-
this.previewTilt = signal(
|
|
197
|
+
this.previewTilt = signal(CHRISTIANITY_PREVIEW_NEUTRAL_TILT);
|
|
192
198
|
this.selectedPreviewAbilityIndex = signal(0);
|
|
193
199
|
this.previewSlideDirection = signal(0);
|
|
194
200
|
this.hoveredHandIndex = signal(null);
|
|
@@ -228,6 +234,49 @@ export class ChristianityGameComponent {
|
|
|
228
234
|
this.opponent = computed(() => this.game().players.P2);
|
|
229
235
|
this.currentPlayer = computed(() => this.game().players[this.game().turnOwner]);
|
|
230
236
|
this.isOwnTurn = computed(() => this.game().status === 'in_progress' && this.game().turnOwner === 'P1');
|
|
237
|
+
this.turnBannerTitle = computed(() => {
|
|
238
|
+
if (this.game().status === 'finished')
|
|
239
|
+
return this.resultTitle();
|
|
240
|
+
return this.isOwnTurn() ? this.t('christianityYourTurn') : this.t('christianityRivalTurn');
|
|
241
|
+
});
|
|
242
|
+
this.turnBannerBody = computed(() => {
|
|
243
|
+
if (this.game().status === 'finished')
|
|
244
|
+
return this.resultBody();
|
|
245
|
+
return this.isOwnTurn() ? this.t('christianityYourTurnBody') : this.t('christianityRivalTurnBody');
|
|
246
|
+
});
|
|
247
|
+
this.resultTitle = computed(() => {
|
|
248
|
+
const winner = this.winnerSeat();
|
|
249
|
+
if (!winner)
|
|
250
|
+
return this.t('christianityGameFinished');
|
|
251
|
+
return winner === 'P1' ? this.t('christianityVictoryTitle') : this.t('christianityDefeatTitle');
|
|
252
|
+
});
|
|
253
|
+
this.resultBody = computed(() => {
|
|
254
|
+
const winner = this.winnerSeat();
|
|
255
|
+
if (!winner)
|
|
256
|
+
return this.t('christianityGameFinishedBody');
|
|
257
|
+
return winner === 'P1' ? this.t('christianityVictoryBody') : this.t('christianityDefeatBody');
|
|
258
|
+
});
|
|
259
|
+
this.setupTitle = computed(() => {
|
|
260
|
+
const setup = this.tutorialSetup();
|
|
261
|
+
if (!setup)
|
|
262
|
+
return this.t('christianityPreparingMatch');
|
|
263
|
+
if (this.tutorialPhase() === 'coin') {
|
|
264
|
+
return setup.coinWinner === 'P1' ? this.t('christianityCoinYouWon') : this.t('christianityCoinRivalWon');
|
|
265
|
+
}
|
|
266
|
+
return setup.leaderPicker === 'P1' ? this.t('christianityChooseLeaderTitle') : this.t('christianityRivalChoosesLeaderTitle');
|
|
267
|
+
});
|
|
268
|
+
this.setupBody = computed(() => {
|
|
269
|
+
const setup = this.tutorialSetup();
|
|
270
|
+
if (!setup)
|
|
271
|
+
return this.t('christianityPreparingMatchBody');
|
|
272
|
+
const firstPlayerName = setup.firstPlayer === 'P1' ? this.player().displayName : this.opponent().displayName;
|
|
273
|
+
if (this.tutorialPhase() === 'coin') {
|
|
274
|
+
return this.t('christianityCoinResultBody').replace('{player}', firstPlayerName);
|
|
275
|
+
}
|
|
276
|
+
if (setup.leaderPicker === 'P1')
|
|
277
|
+
return this.t('christianityChooseLeaderBody');
|
|
278
|
+
return this.t('christianityRivalChoosesLeaderBody');
|
|
279
|
+
});
|
|
231
280
|
this.winnerSeat = computed(() => {
|
|
232
281
|
const game = this.game();
|
|
233
282
|
if (game.status !== 'finished')
|
|
@@ -244,6 +293,7 @@ export class ChristianityGameComponent {
|
|
|
244
293
|
const query = this.gallerySearch().trim().toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, '');
|
|
245
294
|
const type = this.galleryType();
|
|
246
295
|
return this.allCatalogCards()
|
|
296
|
+
.filter(card => this.isClassicGalleryCard(card))
|
|
247
297
|
.filter(card => type === 'all' || card.type === type)
|
|
248
298
|
.filter(card => {
|
|
249
299
|
if (!query)
|
|
@@ -260,7 +310,7 @@ export class ChristianityGameComponent {
|
|
|
260
310
|
.sort((left, right) => this.cardSortKey(left).localeCompare(this.cardSortKey(right), 'es'));
|
|
261
311
|
});
|
|
262
312
|
this.galleryEditionLabel = computed(() => {
|
|
263
|
-
const count = this.allCatalogCards().length;
|
|
313
|
+
const count = this.allCatalogCards().filter(card => this.isClassicGalleryCard(card)).length;
|
|
264
314
|
return `${this.t('christianityGenesisEdition')} · ${count} ${this.t('christianityCards')}`;
|
|
265
315
|
});
|
|
266
316
|
this.galleryEditionIcon = computed(() => GENESIS_ICON_URL);
|
|
@@ -460,6 +510,9 @@ export class ChristianityGameComponent {
|
|
|
460
510
|
return null;
|
|
461
511
|
});
|
|
462
512
|
this.statusText = computed(() => {
|
|
513
|
+
if (this.tutorialPhase() === 'coin' || this.tutorialPhase() === 'leader_pick') {
|
|
514
|
+
return this.setupTitle();
|
|
515
|
+
}
|
|
463
516
|
const winner = this.winnerSeat();
|
|
464
517
|
if (winner) {
|
|
465
518
|
return winner === 'P1' ? this.t('christianityYouWin') : this.t('christianityOpponentWins');
|
|
@@ -493,6 +546,8 @@ export class ChristianityGameComponent {
|
|
|
493
546
|
const previousTop = this.document.body.style.top;
|
|
494
547
|
const previousWidth = this.document.body.style.width;
|
|
495
548
|
const scrollY = window.scrollY;
|
|
549
|
+
const scrollHost = this.document.querySelector('.mini-game-page-shell');
|
|
550
|
+
const scrollHostTop = scrollHost?.scrollTop ?? 0;
|
|
496
551
|
this.document.body.style.overflow = 'hidden';
|
|
497
552
|
this.document.body.style.overscrollBehavior = 'contain';
|
|
498
553
|
this.document.body.style.position = 'fixed';
|
|
@@ -505,8 +560,19 @@ export class ChristianityGameComponent {
|
|
|
505
560
|
this.document.body.style.top = previousTop;
|
|
506
561
|
this.document.body.style.width = previousWidth;
|
|
507
562
|
window.scrollTo({ top: scrollY, left: 0, behavior: 'auto' });
|
|
563
|
+
if (scrollHost) {
|
|
564
|
+
window.requestAnimationFrame(() => {
|
|
565
|
+
scrollHost.scrollTo({ top: scrollHostTop, left: 0, behavior: 'auto' });
|
|
566
|
+
});
|
|
567
|
+
}
|
|
508
568
|
});
|
|
509
569
|
});
|
|
570
|
+
effect(() => {
|
|
571
|
+
if (this.screen() === 'table' && this.game().status === 'finished') {
|
|
572
|
+
this.tutorialPhase.set('finished');
|
|
573
|
+
this.clearBotTurn();
|
|
574
|
+
}
|
|
575
|
+
}, { allowSignalWrites: true });
|
|
510
576
|
this.destroyRef.onDestroy(() => {
|
|
511
577
|
for (const timer of this.impactTimers) {
|
|
512
578
|
window.clearTimeout(timer);
|
|
@@ -586,41 +652,45 @@ export class ChristianityGameComponent {
|
|
|
586
652
|
return undefined;
|
|
587
653
|
return `${bible.book} ${bible.reference}${bible.version ? ` ${bible.version}` : ''}`;
|
|
588
654
|
}
|
|
589
|
-
createTutorialGame(cards) {
|
|
590
|
-
const leaders =
|
|
591
|
-
const playerLeader = this.findCard(leaders, 'Adán') ?? leaders[0];
|
|
592
|
-
const opponentLeader = this.findCard(leaders, 'Noé') ?? leaders
|
|
593
|
-
const offerings = cards.filter(card => card.type === 'offering').slice(0, TUTORIAL_OFFERING_LIMIT);
|
|
655
|
+
createTutorialGame(cards, options = {}) {
|
|
656
|
+
const leaders = this.tutorialLeaderCards(cards);
|
|
657
|
+
const playerLeader = this.cardById(options.playerLeaderId) ?? this.findCard(leaders, 'Adán') ?? leaders[0];
|
|
658
|
+
const opponentLeader = this.cardById(options.opponentLeaderId) ?? this.findCard(leaders, 'Noé') ?? leaders.find(card => card.id !== playerLeader?.id) ?? leaders[0];
|
|
659
|
+
const offerings = cards.filter(card => card.type === 'offering' && this.isClassicGalleryCard(card)).slice(0, TUTORIAL_OFFERING_LIMIT);
|
|
594
660
|
const places = cards.filter(card => card.type === 'place');
|
|
595
661
|
const characters = cards
|
|
596
|
-
.filter(card => card.type === 'character' && (card.cost ?? 0) <= 4 && (card.attack ?? 0) >= 0 && (card.life ?? 0) > 0)
|
|
662
|
+
.filter(card => card.type === 'character' && this.isClassicGalleryCard(card) && (card.cost ?? 0) <= 4 && (card.attack ?? 0) >= 0 && (card.life ?? 0) > 0)
|
|
597
663
|
.slice(0, TUTORIAL_CHARACTER_LIMIT);
|
|
598
|
-
const startingOffering = offerings[0] ?? STARTER_CARDS['o_simple'];
|
|
599
664
|
const tutorialDeck = [
|
|
600
|
-
...offerings
|
|
665
|
+
...offerings,
|
|
601
666
|
...characters,
|
|
602
|
-
...offerings
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
const
|
|
606
|
-
const
|
|
667
|
+
...offerings,
|
|
668
|
+
...characters.slice(0, 6),
|
|
669
|
+
].slice(0, 28);
|
|
670
|
+
const shuffledDeck = this.prepareTutorialOpeningDeck(this.shuffleCards(tutorialDeck, options.seed ?? TUTORIAL_SEED));
|
|
671
|
+
const playerHand = shuffledDeck.slice(0, TUTORIAL_OPENING_HAND_SIZE).map(card => card.id);
|
|
672
|
+
const opponentHand = shuffledDeck.slice(TUTORIAL_OPENING_HAND_SIZE, TUTORIAL_OPENING_HAND_SIZE * 2).map(card => card.id);
|
|
673
|
+
const sharedDeck = shuffledDeck.slice(TUTORIAL_OPENING_HAND_SIZE * 2).map(card => card.id);
|
|
607
674
|
return {
|
|
608
675
|
...structuredClone(STARTING_GAME),
|
|
609
676
|
status: 'in_progress',
|
|
610
|
-
turnOwner: 'P1',
|
|
677
|
+
turnOwner: options.firstPlayer ?? 'P1',
|
|
611
678
|
turnCount: 1,
|
|
612
679
|
matchScore: { P1: 0, P2: 0 },
|
|
613
680
|
sharedDeck,
|
|
614
681
|
placeZone: places[0] ? [places[0].id] : [],
|
|
615
682
|
historyZone: [],
|
|
616
683
|
players: {
|
|
617
|
-
P1: this.createTutorialPlayer('P1', playerLeader,
|
|
618
|
-
P2: this.createTutorialPlayer('P2', opponentLeader,
|
|
684
|
+
P1: this.createTutorialPlayer('P1', playerLeader, playerHand, []),
|
|
685
|
+
P2: this.createTutorialPlayer('P2', opponentLeader, opponentHand, []),
|
|
619
686
|
},
|
|
620
|
-
log: [
|
|
687
|
+
log: [
|
|
688
|
+
`${this.t('christianityTurnOf')} ${(options.firstPlayer ?? 'P1') === 'P1' ? STARTING_GAME.players.P1.displayName : STARTING_GAME.players.P2.displayName}.`,
|
|
689
|
+
this.t('christianityTutorialLoaded'),
|
|
690
|
+
],
|
|
621
691
|
};
|
|
622
692
|
}
|
|
623
|
-
createTutorialPlayer(seat, leader,
|
|
693
|
+
createTutorialPlayer(seat, leader, hand, battleZone) {
|
|
624
694
|
const base = STARTING_GAME.players[seat];
|
|
625
695
|
const leaderLife = leader?.leaderLife ?? leader?.life ?? base.leaderMaxHp;
|
|
626
696
|
return {
|
|
@@ -629,7 +699,7 @@ export class ChristianityGameComponent {
|
|
|
629
699
|
leaderName: leader ? this.translatedCardText(leader).name : base.leaderName,
|
|
630
700
|
leaderHp: leaderLife,
|
|
631
701
|
leaderMaxHp: leaderLife,
|
|
632
|
-
offerings: [
|
|
702
|
+
offerings: [],
|
|
633
703
|
offeringPlayedThisTurn: false,
|
|
634
704
|
hand,
|
|
635
705
|
handCount: hand ? undefined : 4,
|
|
@@ -668,10 +738,49 @@ export class ChristianityGameComponent {
|
|
|
668
738
|
findCard(cards, namePart) {
|
|
669
739
|
return cards.find(card => this.translatedCardText(card).name.toLowerCase().includes(namePart.toLowerCase()));
|
|
670
740
|
}
|
|
741
|
+
cardById(cardId) {
|
|
742
|
+
return cardId ? this.cardCatalog()[cardId] ?? STARTER_CARDS[cardId] : undefined;
|
|
743
|
+
}
|
|
744
|
+
tutorialLeaderCards(cards) {
|
|
745
|
+
const leaders = cards
|
|
746
|
+
.filter(card => card.type === 'leader' && this.isClassicGalleryCard(card))
|
|
747
|
+
.sort((left, right) => this.cardSortKey(left).localeCompare(this.cardSortKey(right), 'es'));
|
|
748
|
+
if (leaders.length >= 2)
|
|
749
|
+
return leaders.slice(0, 4);
|
|
750
|
+
return cards.filter(card => card.type === 'leader').slice(0, 4);
|
|
751
|
+
}
|
|
752
|
+
shuffleCards(cards, seed) {
|
|
753
|
+
const result = [...cards];
|
|
754
|
+
let state = seed >>> 0;
|
|
755
|
+
for (let index = result.length - 1; index > 0; index--) {
|
|
756
|
+
state = (state * 1664525 + 1013904223) >>> 0;
|
|
757
|
+
const swapIndex = state % (index + 1);
|
|
758
|
+
[result[index], result[swapIndex]] = [result[swapIndex], result[index]];
|
|
759
|
+
}
|
|
760
|
+
return result;
|
|
761
|
+
}
|
|
762
|
+
prepareTutorialOpeningDeck(cards) {
|
|
763
|
+
const result = [...cards];
|
|
764
|
+
this.ensureOpeningOffering(result, 0, TUTORIAL_OPENING_HAND_SIZE);
|
|
765
|
+
this.ensureOpeningOffering(result, TUTORIAL_OPENING_HAND_SIZE, TUTORIAL_OPENING_HAND_SIZE);
|
|
766
|
+
return result;
|
|
767
|
+
}
|
|
768
|
+
ensureOpeningOffering(cards, start, size) {
|
|
769
|
+
const hand = cards.slice(start, start + size);
|
|
770
|
+
if (hand.some(card => card.type === 'offering'))
|
|
771
|
+
return;
|
|
772
|
+
const offeringIndex = cards.findIndex((card, index) => index >= start + size && card.type === 'offering');
|
|
773
|
+
if (offeringIndex < 0)
|
|
774
|
+
return;
|
|
775
|
+
[cards[start], cards[offeringIndex]] = [cards[offeringIndex], cards[start]];
|
|
776
|
+
}
|
|
671
777
|
cardSortKey(card) {
|
|
672
778
|
const collector = card.collectorNumber ?? card.id;
|
|
673
779
|
return `${card.edition ?? ''}-${collector.padStart(8, '0')}-${this.translatedCardText(card).name}`;
|
|
674
780
|
}
|
|
781
|
+
isClassicGalleryCard(card) {
|
|
782
|
+
return (card.frontTemplate ?? 'genesis-classic') === 'genesis-classic';
|
|
783
|
+
}
|
|
675
784
|
cardDefinition(cardId) {
|
|
676
785
|
return this.cardCatalog()[cardId] ?? STARTER_CARDS[cardId] ?? STARTER_CARDS['p_scout'];
|
|
677
786
|
}
|
|
@@ -975,6 +1084,8 @@ export class ChristianityGameComponent {
|
|
|
975
1084
|
return totalOfferings(player);
|
|
976
1085
|
}
|
|
977
1086
|
canPlay(card) {
|
|
1087
|
+
if (this.tutorialPhase() !== 'in_progress')
|
|
1088
|
+
return false;
|
|
978
1089
|
return canPlayCard(this.game(), 'P1', card);
|
|
979
1090
|
}
|
|
980
1091
|
handCardActionLabel(card) {
|
|
@@ -1289,6 +1400,9 @@ export class ChristianityGameComponent {
|
|
|
1289
1400
|
this.combatAnimation.set(null);
|
|
1290
1401
|
this.combatTrail.set(null);
|
|
1291
1402
|
this.game.set(this.catalogLoaded() ? this.createTutorialGame(this.allCatalogCards()) : structuredClone(STARTING_GAME));
|
|
1403
|
+
this.tutorialPhase.set('coin');
|
|
1404
|
+
this.tutorialSetup.set(null);
|
|
1405
|
+
this.showOptions.set(false);
|
|
1292
1406
|
this.selectedHandCard.set(null);
|
|
1293
1407
|
this.selectedAttacker.set(null);
|
|
1294
1408
|
this.selectedPreview.set(null);
|
|
@@ -1298,9 +1412,126 @@ export class ChristianityGameComponent {
|
|
|
1298
1412
|
this.offeringsSeat.set(null);
|
|
1299
1413
|
}
|
|
1300
1414
|
startTutorial() {
|
|
1301
|
-
this.
|
|
1415
|
+
this.clearBotTurn();
|
|
1416
|
+
this.clearCombatTimers();
|
|
1417
|
+
this.resetTransientTableState();
|
|
1418
|
+
this.tutorialSetup.set(this.createTutorialSetup());
|
|
1419
|
+
this.tutorialPhase.set('coin');
|
|
1302
1420
|
this.screen.set('table');
|
|
1303
1421
|
}
|
|
1422
|
+
continueAfterCoin() {
|
|
1423
|
+
const setup = this.tutorialSetup();
|
|
1424
|
+
if (!setup)
|
|
1425
|
+
return;
|
|
1426
|
+
if (this.tutorialPhase() === 'coin') {
|
|
1427
|
+
this.tutorialPhase.set('leader_pick');
|
|
1428
|
+
if (setup.availableLeaders.length < 2) {
|
|
1429
|
+
this.startTutorialMatch(setup);
|
|
1430
|
+
return;
|
|
1431
|
+
}
|
|
1432
|
+
if (setup.leaderPicker === 'P2') {
|
|
1433
|
+
window.setTimeout(() => this.chooseRivalTutorialLeader(), 520);
|
|
1434
|
+
}
|
|
1435
|
+
return;
|
|
1436
|
+
}
|
|
1437
|
+
if (this.tutorialPhase() === 'leader_pick' && setup.leaderPicker === 'P2') {
|
|
1438
|
+
this.chooseRivalTutorialLeader();
|
|
1439
|
+
return;
|
|
1440
|
+
}
|
|
1441
|
+
if (this.tutorialPhase() === 'leader_pick' && setup.availableLeaders.length < 2) {
|
|
1442
|
+
this.startTutorialMatch(setup);
|
|
1443
|
+
}
|
|
1444
|
+
}
|
|
1445
|
+
chooseTutorialLeader(leaderId) {
|
|
1446
|
+
const setup = this.tutorialSetup();
|
|
1447
|
+
if (!setup || setup.leaderPicker !== 'P1')
|
|
1448
|
+
return;
|
|
1449
|
+
const opponentLeaderId = setup.availableLeaders.find(candidate => candidate !== leaderId) ?? setup.availableLeaders[0];
|
|
1450
|
+
this.startTutorialMatch({
|
|
1451
|
+
...setup,
|
|
1452
|
+
playerLeaderId: leaderId,
|
|
1453
|
+
opponentLeaderId,
|
|
1454
|
+
});
|
|
1455
|
+
}
|
|
1456
|
+
toggleOptions() {
|
|
1457
|
+
this.showOptions.update(value => !value);
|
|
1458
|
+
}
|
|
1459
|
+
restartTutorial() {
|
|
1460
|
+
this.startTutorial();
|
|
1461
|
+
}
|
|
1462
|
+
resignTutorial() {
|
|
1463
|
+
if (this.game().status === 'finished')
|
|
1464
|
+
return;
|
|
1465
|
+
this.clearBotTurn();
|
|
1466
|
+
this.clearCombatTimers();
|
|
1467
|
+
this.tutorialPhase.set('finished');
|
|
1468
|
+
this.showOptions.set(false);
|
|
1469
|
+
this.game.update(game => {
|
|
1470
|
+
const next = structuredClone(game);
|
|
1471
|
+
next.status = 'finished';
|
|
1472
|
+
next.players.P1.leaderHp = 0;
|
|
1473
|
+
next.matchScore.P2 += 1;
|
|
1474
|
+
next.revision++;
|
|
1475
|
+
next.log = [this.t('christianityResignedLog'), ...next.log].slice(0, 4);
|
|
1476
|
+
return next;
|
|
1477
|
+
});
|
|
1478
|
+
}
|
|
1479
|
+
returnToChristianityHome() {
|
|
1480
|
+
this.clearBotTurn();
|
|
1481
|
+
this.clearCombatTimers();
|
|
1482
|
+
this.resetTransientTableState();
|
|
1483
|
+
this.showOptions.set(false);
|
|
1484
|
+
this.screen.set('home');
|
|
1485
|
+
}
|
|
1486
|
+
createTutorialSetup() {
|
|
1487
|
+
const leaders = this.tutorialLeaderCards(this.allCatalogCards());
|
|
1488
|
+
const coinWinner = TUTORIAL_SEED % 2 === 0 ? 'P1' : 'P2';
|
|
1489
|
+
const firstPlayer = coinWinner === 'P1' ? 'P2' : 'P1';
|
|
1490
|
+
return {
|
|
1491
|
+
coinWinner,
|
|
1492
|
+
leaderPicker: coinWinner,
|
|
1493
|
+
firstPlayer,
|
|
1494
|
+
availableLeaders: leaders.map(card => card.id),
|
|
1495
|
+
};
|
|
1496
|
+
}
|
|
1497
|
+
chooseRivalTutorialLeader() {
|
|
1498
|
+
const setup = this.tutorialSetup();
|
|
1499
|
+
if (!setup || setup.leaderPicker !== 'P2')
|
|
1500
|
+
return;
|
|
1501
|
+
const opponentLeaderId = this.findCard(setup.availableLeaders.map(id => this.cardDefinition(id)), 'Noé')?.id ?? setup.availableLeaders[0];
|
|
1502
|
+
const playerLeaderId = setup.availableLeaders.find(candidate => candidate !== opponentLeaderId) ?? setup.availableLeaders[0];
|
|
1503
|
+
this.startTutorialMatch({
|
|
1504
|
+
...setup,
|
|
1505
|
+
playerLeaderId,
|
|
1506
|
+
opponentLeaderId,
|
|
1507
|
+
});
|
|
1508
|
+
}
|
|
1509
|
+
startTutorialMatch(setup) {
|
|
1510
|
+
this.resetTransientTableState();
|
|
1511
|
+
this.tutorialSetup.set(setup);
|
|
1512
|
+
this.tutorialPhase.set('in_progress');
|
|
1513
|
+
this.game.set(this.createTutorialGame(this.allCatalogCards(), {
|
|
1514
|
+
playerLeaderId: setup.playerLeaderId,
|
|
1515
|
+
opponentLeaderId: setup.opponentLeaderId,
|
|
1516
|
+
firstPlayer: setup.firstPlayer,
|
|
1517
|
+
seed: TUTORIAL_SEED,
|
|
1518
|
+
}));
|
|
1519
|
+
this.scheduleBotTurnIfNeeded();
|
|
1520
|
+
}
|
|
1521
|
+
resetTransientTableState() {
|
|
1522
|
+
this.selectedHandCard.set(null);
|
|
1523
|
+
this.selectedAttacker.set(null);
|
|
1524
|
+
this.selectedPreview.set(null);
|
|
1525
|
+
this.selectedInfo.set(null);
|
|
1526
|
+
this.showHistory.set(false);
|
|
1527
|
+
this.showGallery.set(false);
|
|
1528
|
+
this.offeringsSeat.set(null);
|
|
1529
|
+
this.impactEvents.set([]);
|
|
1530
|
+
this.combatAnimation.set(null);
|
|
1531
|
+
this.combatTrail.set(null);
|
|
1532
|
+
this.draggingCardId.set(null);
|
|
1533
|
+
this.draggingAttackerInstanceId.set(null);
|
|
1534
|
+
}
|
|
1304
1535
|
closePreview() {
|
|
1305
1536
|
this.selectedPreview.set(null);
|
|
1306
1537
|
this.selectedPreviewAbilityIndex.set(0);
|
|
@@ -1407,14 +1638,14 @@ export class ChristianityGameComponent {
|
|
|
1407
1638
|
const x = (event.clientX - bounds.left) / bounds.width - 0.5;
|
|
1408
1639
|
const y = (event.clientY - bounds.top) / bounds.height - 0.5;
|
|
1409
1640
|
this.previewTilt.set({
|
|
1410
|
-
rotateX:
|
|
1411
|
-
rotateY:
|
|
1412
|
-
shiftX: x *
|
|
1413
|
-
shiftY: y *
|
|
1641
|
+
rotateX: -y * 7,
|
|
1642
|
+
rotateY: x * 7,
|
|
1643
|
+
shiftX: x * 4,
|
|
1644
|
+
shiftY: y * 4,
|
|
1414
1645
|
});
|
|
1415
1646
|
}
|
|
1416
1647
|
resetPreviewTilt() {
|
|
1417
|
-
this.previewTilt.set(
|
|
1648
|
+
this.previewTilt.set(CHRISTIANITY_PREVIEW_NEUTRAL_TILT);
|
|
1418
1649
|
}
|
|
1419
1650
|
impactPopProps(impact) {
|
|
1420
1651
|
const position = this.impactPosition(impact);
|
|
@@ -1581,6 +1812,7 @@ export class ChristianityGameComponent {
|
|
|
1581
1812
|
const next = structuredClone(game);
|
|
1582
1813
|
const historyBefore = next.historyZone.length;
|
|
1583
1814
|
const log = [];
|
|
1815
|
+
this.resolveBotPlays(next, log);
|
|
1584
1816
|
this.resolveBotAttack(next, log, impacts);
|
|
1585
1817
|
if (next.historyZone.length > historyBefore) {
|
|
1586
1818
|
this.triggerHistoryPulse();
|
|
@@ -1595,6 +1827,33 @@ export class ChristianityGameComponent {
|
|
|
1595
1827
|
});
|
|
1596
1828
|
this.pushImpactEvents(impacts);
|
|
1597
1829
|
}
|
|
1830
|
+
resolveBotPlays(game, log) {
|
|
1831
|
+
const bot = game.players.P2;
|
|
1832
|
+
const hand = [...(bot.hand ?? [])];
|
|
1833
|
+
const offeringId = hand.find(cardId => this.cardDefinition(cardId).type === 'offering' && canPlayCard(game, 'P2', this.cardDefinition(cardId)));
|
|
1834
|
+
if (offeringId) {
|
|
1835
|
+
const card = this.cardDefinition(offeringId);
|
|
1836
|
+
const result = playChristianityCardFromHand(game, 'P2', card, { displayName: this.translatedCardText(card).name });
|
|
1837
|
+
if (result.played) {
|
|
1838
|
+
Object.assign(game, result.game);
|
|
1839
|
+
log.push(...result.log);
|
|
1840
|
+
}
|
|
1841
|
+
}
|
|
1842
|
+
const playableCharacters = [...(game.players.P2.hand ?? [])]
|
|
1843
|
+
.map(cardId => this.cardDefinition(cardId))
|
|
1844
|
+
.filter(card => card.type === 'character' && canPlayCard(game, 'P2', card))
|
|
1845
|
+
.sort((left, right) => (right.attack ?? 0) - (left.attack ?? 0) || (right.life ?? 0) - (left.life ?? 0));
|
|
1846
|
+
const character = playableCharacters[0];
|
|
1847
|
+
if (character) {
|
|
1848
|
+
const result = playChristianityCardFromHand(game, 'P2', character, {
|
|
1849
|
+
displayName: this.translatedCardText(character).name,
|
|
1850
|
+
});
|
|
1851
|
+
if (result.played) {
|
|
1852
|
+
Object.assign(game, result.game);
|
|
1853
|
+
log.push(...result.log);
|
|
1854
|
+
}
|
|
1855
|
+
}
|
|
1856
|
+
}
|
|
1598
1857
|
resolveBotAttack(game, log, impacts) {
|
|
1599
1858
|
const bot = game.players.P2;
|
|
1600
1859
|
const player = game.players.P1;
|
|
@@ -1681,7 +1940,7 @@ export class ChristianityGameComponent {
|
|
|
1681
1940
|
let leaderDamage = 0;
|
|
1682
1941
|
let reserveGain = 0;
|
|
1683
1942
|
this.game.update(game => {
|
|
1684
|
-
const result = resolveOfferingAbility(game, seat, offering.instanceId);
|
|
1943
|
+
const result = resolveOfferingAbility(game, seat, offering.instanceId, this.ruleMessages());
|
|
1685
1944
|
leaderDamage = result.leaderDamage;
|
|
1686
1945
|
reserveGain = result.reserveGain;
|
|
1687
1946
|
return result.game;
|
|
@@ -1923,6 +2182,31 @@ export class ChristianityGameComponent {
|
|
|
1923
2182
|
</article>
|
|
1924
2183
|
</section>
|
|
1925
2184
|
|
|
2185
|
+
<section
|
|
2186
|
+
class="christianity-turn-banner"
|
|
2187
|
+
data-testid="christianity-turn-banner"
|
|
2188
|
+
[class.is-own-turn]="isOwnTurn()"
|
|
2189
|
+
[class.is-rival-turn]="!isOwnTurn() && game().status === 'in_progress'"
|
|
2190
|
+
[class.is-finished]="game().status === 'finished'"
|
|
2191
|
+
aria-live="polite"
|
|
2192
|
+
>
|
|
2193
|
+
<div>
|
|
2194
|
+
<span>{{ t('christianityTurn') }} {{ game().turnCount }}</span>
|
|
2195
|
+
<strong>{{ turnBannerTitle() }}</strong>
|
|
2196
|
+
<p>{{ turnBannerBody() }}</p>
|
|
2197
|
+
</div>
|
|
2198
|
+
<button type="button" class="christianity-options-button" data-testid="christianity-options-button" valLightRipple (click)="toggleOptions()">
|
|
2199
|
+
{{ t('christianityOptions') }}
|
|
2200
|
+
</button>
|
|
2201
|
+
@if (showOptions()) {
|
|
2202
|
+
<div class="christianity-options-menu" data-testid="christianity-options-menu">
|
|
2203
|
+
<button type="button" (click)="restartTutorial()">{{ t('christianityRestart') }}</button>
|
|
2204
|
+
<button type="button" [disabled]="game().status === 'finished'" (click)="resignTutorial()">{{ t('christianityResign') }}</button>
|
|
2205
|
+
<button type="button" (click)="returnToChristianityHome()">{{ t('christianityBackToMenu') }}</button>
|
|
2206
|
+
</div>
|
|
2207
|
+
}
|
|
2208
|
+
</section>
|
|
2209
|
+
|
|
1926
2210
|
<section class="christianity-hand-shelf christianity-hand-shelf--opponent">
|
|
1927
2211
|
<div class="christianity-hand-meter christianity-hand-meter--opponent">
|
|
1928
2212
|
<span>{{ t('christianityHand') }}</span>
|
|
@@ -1944,6 +2228,51 @@ export class ChristianityGameComponent {
|
|
|
1944
2228
|
</section>
|
|
1945
2229
|
|
|
1946
2230
|
<section class="christianity-table" data-testid="christianity-table" [attr.aria-label]="t('christianityTable')">
|
|
2231
|
+
@if (tutorialPhase() !== 'in_progress' && tutorialPhase() !== 'finished') {
|
|
2232
|
+
<section class="christianity-setup-panel" data-testid="christianity-setup-panel" aria-live="polite">
|
|
2233
|
+
<div>
|
|
2234
|
+
<span>{{ t('christianityMatchSetup') }}</span>
|
|
2235
|
+
<h2>{{ setupTitle() }}</h2>
|
|
2236
|
+
<p>{{ setupBody() }}</p>
|
|
2237
|
+
</div>
|
|
2238
|
+
@if (tutorialPhase() === 'coin') {
|
|
2239
|
+
<button type="button" class="christianity-primary-action" data-testid="christianity-continue-setup" valLightRipple (click)="continueAfterCoin()">
|
|
2240
|
+
{{ t('christianityContinue') }}
|
|
2241
|
+
</button>
|
|
2242
|
+
}
|
|
2243
|
+
@if (tutorialPhase() === 'leader_pick') {
|
|
2244
|
+
@if (tutorialSetup()?.leaderPicker === 'P1' && (tutorialSetup()?.availableLeaders?.length ?? 0) > 1) {
|
|
2245
|
+
<div class="christianity-leader-choice-grid" data-testid="christianity-leader-choice-grid">
|
|
2246
|
+
@for (leaderId of tutorialSetup()?.availableLeaders ?? []; track leaderId) {
|
|
2247
|
+
@let leader = cardDefinition(leaderId);
|
|
2248
|
+
<button type="button" class="christianity-leader-choice-card christianity-render-card-button" valLightRipple (click)="chooseTutorialLeader(leaderId)">
|
|
2249
|
+
<val-christianity-card [card]="definitionToRenderCard(leader)" variant="baby"></val-christianity-card>
|
|
2250
|
+
</button>
|
|
2251
|
+
}
|
|
2252
|
+
</div>
|
|
2253
|
+
} @else {
|
|
2254
|
+
<button type="button" class="christianity-primary-action" data-testid="christianity-continue-setup" valLightRipple (click)="continueAfterCoin()">
|
|
2255
|
+
{{ t('christianityContinue') }}
|
|
2256
|
+
</button>
|
|
2257
|
+
}
|
|
2258
|
+
}
|
|
2259
|
+
</section>
|
|
2260
|
+
}
|
|
2261
|
+
@if (game().status === 'finished') {
|
|
2262
|
+
<section class="christianity-result-panel" data-testid="christianity-result-panel" aria-live="polite">
|
|
2263
|
+
<span>{{ t('christianityGameOver') }}</span>
|
|
2264
|
+
<h2>{{ resultTitle() }}</h2>
|
|
2265
|
+
<p>{{ resultBody() }}</p>
|
|
2266
|
+
<div>
|
|
2267
|
+
<button type="button" class="christianity-primary-action" data-testid="christianity-play-again" valLightRipple (click)="restartTutorial()">
|
|
2268
|
+
{{ t('christianityPlayAgain') }}
|
|
2269
|
+
</button>
|
|
2270
|
+
<button type="button" class="christianity-secondary-action" valLightRipple (click)="returnToChristianityHome()">
|
|
2271
|
+
{{ t('christianityBackToMenu') }}
|
|
2272
|
+
</button>
|
|
2273
|
+
</div>
|
|
2274
|
+
</section>
|
|
2275
|
+
}
|
|
1947
2276
|
<div class="christianity-impact-layer">
|
|
1948
2277
|
@if (combatTrail(); as trail) {
|
|
1949
2278
|
<span
|
|
@@ -2183,6 +2512,7 @@ export class ChristianityGameComponent {
|
|
|
2183
2512
|
type="button"
|
|
2184
2513
|
class="christianity-end-turn"
|
|
2185
2514
|
data-testid="christianity-end-turn"
|
|
2515
|
+
[disabled]="!isOwnTurn() || tutorialPhase() !== 'in_progress' || !!combatAnimation()"
|
|
2186
2516
|
(click)="endTurn()"
|
|
2187
2517
|
>
|
|
2188
2518
|
{{ t('christianityEndTurn') }}
|
|
@@ -2418,7 +2748,7 @@ export class ChristianityGameComponent {
|
|
|
2418
2748
|
@if (screen() === 'table') {
|
|
2419
2749
|
<section class="christianity-actions" data-testid="christianity-actions" aria-live="polite">
|
|
2420
2750
|
<p class="christianity-sr-only" data-testid="christianity-status">{{ statusText() }}</p>
|
|
2421
|
-
<button type="button" data-testid="christianity-primary-action" [disabled]="selectedActionDisabled()" (click)="playSelectedCard()">
|
|
2751
|
+
<button type="button" data-testid="christianity-primary-action" [disabled]="tutorialPhase() !== 'in_progress' || selectedActionDisabled()" (click)="playSelectedCard()">
|
|
2422
2752
|
{{ selectedActionLabel() }}
|
|
2423
2753
|
</button>
|
|
2424
2754
|
</section>
|
|
@@ -2541,7 +2871,7 @@ export class ChristianityGameComponent {
|
|
|
2541
2871
|
</section>
|
|
2542
2872
|
}
|
|
2543
2873
|
</main>
|
|
2544
|
-
`, isInline: true, styles: [":host{--christianity-theme-ink: var(--val-text-color, #1f2933);--christianity-theme-surface: #ffffff;--christianity-theme-parchment: #eff6ff;--christianity-theme-olive: #1d4ed8;--christianity-theme-gold: #2563eb;--christianity-theme-gold-soft: rgba(37, 99, 235, .16);--christianity-theme-gold-ring: rgba(37, 99, 235, .44);--christianity-theme-glow: rgba(37, 99, 235, .24);--christianity-theme-focus: #2563eb;--christianity-theme-shadow: rgba(37, 99, 235, .15);--christianity-theme-shadow-strong: rgba(37, 99, 235, .26);--christianity-card-aspect: 5 / 7.45;--christianity-card-back: linear-gradient(135deg, rgba(16, 42, 67, .16), rgba(16, 42, 67, .03)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(16, 42, 67, .11), rgba(16, 42, 67, .02)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);display:block;max-width:100%;min-width:0;overflow-x:clip;color:var(--christianity-theme-ink)}.christianity-shell{box-sizing:border-box;display:grid;gap:.65rem;width:100%;max-width:100%;min-width:0;padding:0;overflow-x:clip;overflow-y:visible}.christianity-shell.has-modal-open{max-height:100dvh;overflow:hidden;overscroll-behavior:contain}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.christianity-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;min-width:0}.christianity-gallery-open{min-height:2.2rem;padding:0 .75rem;border:1px solid var(--christianity-theme-gold-ring);border-radius:999px;background:linear-gradient(180deg,#eff6fffa,#fffffffa),radial-gradient(circle at 20% 0%,var(--christianity-theme-gold-soft),transparent 42%);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800;box-shadow:0 .55rem 1.2rem #2563eb1a}.christianity-splash{min-height:min(34rem,calc(100dvh - 8rem));border:1px solid rgba(37,99,235,.18);border-radius:.9rem;background:radial-gradient(circle at 50% 18%,rgba(37,99,235,.16),transparent 22rem),linear-gradient(180deg,#eff6ffed,#fffffff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #2563eb1f}.christianity-splash{display:grid;place-items:center;align-content:center;gap:1.2rem;padding:2.5rem 1.25rem;text-align:center}.christianity-splash__mark{position:relative;display:grid;grid-template-columns:repeat(3,.74rem);place-content:center;gap:.55rem;width:5.8rem;height:5.8rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(37,99,235,.12),transparent 55%),#ffffff9e;box-shadow:inset 0 0 0 .55rem #fff6,0 1rem 2rem #2563eb1f}.christianity-splash__mark:before,.christianity-splash__mark:after{content:\"\";position:absolute;inset:.42rem;border:1px solid rgba(37,99,235,.16);border-radius:inherit;animation:christianity-loader-ring 1.8s ease-out infinite}.christianity-splash__mark:after{animation-delay:.48s}.christianity-splash__mark span{width:.74rem;height:.74rem;border-radius:999px;background:var(--christianity-theme-focus);box-shadow:0 .35rem .85rem #2563eb38;animation:christianity-loader-dot .96s ease-in-out infinite}.christianity-splash__mark span:nth-child(2){animation-delay:.14s}.christianity-splash__mark span:nth-child(3){animation-delay:.28s}@keyframes christianity-loader-dot{0%,to{opacity:.38;transform:translateY(0) scale(.82)}45%{opacity:1;transform:translateY(-.22rem) scale(1)}}@keyframes christianity-loader-ring{0%{opacity:.48;transform:scale(.72)}to{opacity:0;transform:scale(1.2)}}.christianity-splash span,.christianity-start__copy span{color:var(--christianity-theme-olive);font-size:.76rem;font-weight:900;text-transform:uppercase}.christianity-splash h2,.christianity-start h2,.christianity-start p{margin:0}.christianity-splash h2{margin-top:.2rem;font-size:clamp(1.65rem,7vw,2.7rem);line-height:1}.christianity-splash p{max-width:26rem;margin:.55rem auto 0;color:#1f2933ad;font-size:.96rem}.christianity-start{display:grid;align-content:center;gap:1rem;min-height:min(34rem,calc(100dvh - 8rem));padding:0}.christianity-start__hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,18rem);gap:1rem;align-items:center}.christianity-start__copy{display:grid;gap:.45rem;max-width:36rem}.christianity-start h2{font-size:clamp(1.6rem,6vw,2.5rem);line-height:1.02}.christianity-start__copy p,.christianity-start__cards p,.christianity-start__modes p{color:#1f2933ad;line-height:1.42}.christianity-start__fan{position:relative;display:grid;place-items:center;min-height:13rem;overflow:visible}.christianity-start__fan val-christianity-card{position:absolute;width:clamp(5.7rem,12vw,7.2rem);transform-origin:50% 92%;filter:drop-shadow(0 1rem 1.5rem rgba(82,64,28,.18))}.christianity-start__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.christianity-start__cards article,.christianity-start__modes article{display:grid;gap:.65rem;align-content:start;padding:.95rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#ffffffd1;box-shadow:0 .75rem 1.7rem #52401c14}.christianity-start__cards article{min-height:11rem}.christianity-start__cards strong{font-size:1.05rem}.christianity-start__status{display:flex;flex-wrap:wrap;gap:.45rem}.christianity-start__status span,.christianity-start__modes article>span{display:inline-flex;align-items:center;width:fit-content;min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(37,99,235,.22);border-radius:999px;background:#eff6ffe0;color:#1f2933b8;font-size:.75rem;font-weight:850}.christianity-start__modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.christianity-start__modes article{min-height:8.5rem;background:#f8fafcb8;box-shadow:none;opacity:.82}.christianity-start__modes strong{font-size:.92rem}.christianity-start__modes p{margin:0;font-size:.8rem}.christianity-primary-action,.christianity-secondary-action{justify-self:start;min-height:2.5rem;padding:0 .9rem;border-radius:999px;font:inherit;font-weight:900}.christianity-primary-action{border:1px solid rgba(16,42,67,.16);background:#102a43;color:#fff}.christianity-secondary-action{border:1px solid var(--christianity-theme-gold-ring);background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink)}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-table{box-sizing:border-box;position:relative;display:grid;gap:.45rem;width:100%;max-width:100%;min-width:0;padding:.45rem .35rem;border-radius:.75rem;background:radial-gradient(circle at 50% 44%,rgba(255,255,255,.2),transparent 44%),linear-gradient(180deg,#c8ddf7,#b9d4f1);box-shadow:inset 0 0 0 1px #ffffff57,inset 0 1.4rem 3rem #ffffff29;overflow-x:clip;overflow-y:visible}.christianity-impact-layer{position:absolute;inset:0;z-index:30;pointer-events:none}.christianity-combat-trail{position:absolute;inset:0;z-index:2;--christianity-combat-trail-x: 50%;--christianity-combat-trail-y: 72%;--christianity-combat-trail-mid-x: 50%;--christianity-combat-trail-mid-y: 50%;--christianity-combat-trail-length: 34%;--christianity-combat-trail-angle: -90deg;--christianity-combat-trail-color: rgba(255, 255, 255, .96);--christianity-combat-trail-glow: rgba(96, 165, 250, .56);--christianity-combat-trail-hit: rgba(220, 38, 38, .42)}.christianity-combat-trail.is-leader-target{--christianity-combat-trail-color: rgba(255, 255, 255, .98);--christianity-combat-trail-glow: rgba(250, 204, 21, .52);--christianity-combat-trail-hit: rgba(250, 204, 21, .38)}.christianity-combat-trail.is-character-target{--christianity-combat-trail-color: rgba(219, 234, 254, .98);--christianity-combat-trail-glow: rgba(96, 165, 250, .58);--christianity-combat-trail-hit: rgba(220, 38, 38, .38)}.christianity-combat-trail:before{position:absolute;left:var(--christianity-combat-trail-mid-x);top:var(--christianity-combat-trail-mid-y);width:clamp(2.8rem,9vw,5.4rem);height:clamp(2.8rem,9vw,5.4rem);border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.72),transparent 28%),radial-gradient(circle,var(--christianity-combat-trail-hit),transparent 62%);content:\"\";opacity:0;transform:translate(-50%,-50%) scale(.58);animation:christianity-combat-burst .88s ease-out both}.christianity-combat-trail>span{position:absolute;left:var(--christianity-combat-trail-x);top:var(--christianity-combat-trail-y);width:var(--christianity-combat-trail-length);height:.36rem;border-radius:999px;background:linear-gradient(90deg,transparent 0 5%,rgba(255,255,255,.92) 42%,var(--christianity-combat-trail-color) 72%,rgba(96,165,250,.72)),repeating-linear-gradient(90deg,transparent 0 .7rem,rgba(255,255,255,.66) .7rem .92rem);box-shadow:0 0 .72rem var(--christianity-combat-trail-glow),0 0 1.45rem var(--christianity-combat-trail-glow);transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0);transform-origin:0 50%;animation:christianity-combat-arrow-trail .84s ease-out both}.christianity-combat-trail>span:after{position:absolute;top:50%;right:-.18rem;width:.95rem;height:.95rem;border-top:.28rem solid var(--christianity-combat-trail-color);border-right:.28rem solid var(--christianity-combat-trail-color);content:\"\";filter:drop-shadow(0 0 .45rem var(--christianity-combat-trail-glow));transform:translateY(-50%) rotate(45deg)}@keyframes christianity-combat-arrow-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0)}24%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(.52)}66%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1)}to{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1.04)}}@keyframes christianity-combat-burst{0%,42%{opacity:0;transform:translate(-50%,-50%) scale(.58) rotate(0)}58%{opacity:1;transform:translate(-50%,-50%) scale(.98) rotate(4deg)}to{opacity:0;transform:translate(-50%,-50%) scale(1.42) rotate(12deg)}}@media (prefers-reduced-motion: reduce){.christianity-combat-trail,.christianity-combat-trail:before,.christianity-combat-trail>span,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card,.christianity-floating-card-shell.is-sliding-next .christianity-floating-card,.christianity-splash__mark:before,.christianity-splash__mark:after,.christianity-splash__mark span{animation:none!important}}.christianity-player-side{box-sizing:border-box;display:grid;gap:.35rem;width:100%;max-width:100%;min-width:0;padding:.35rem .3rem;border-radius:.7rem;background:linear-gradient(180deg,#ffffff47,#ffffff24),#4a7ab414;grid-template-rows:minmax(7rem,1fr) auto;min-height:13.75rem}.christianity-player-side--opponent{grid-template-rows:auto minmax(7rem,1fr)}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{--christianity-battle-card-width: clamp(4.8rem, 15vw, 6.6rem);box-sizing:border-box;display:grid;grid-template-columns:repeat(4,var(--christianity-battle-card-width));gap:.5rem;align-items:center;justify-content:center;width:100%;max-width:100%;min-width:0;overflow:hidden;min-height:clamp(9.1rem,29vw,11rem);padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff6b,#ffffff3d),#1f4f8914;transition:background .16s ease,box-shadow .16s ease}.christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#fffaf0f5,#ffffffd6),#ffffffc2;box-shadow:inset 0 0 0 .14rem var(--christianity-theme-gold-soft),0 .8rem 1.7rem #5f6f2a1f}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff57,#fff3),#1f4f8914}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .18rem var(--christianity-theme-gold-soft),0 .85rem 1.4rem var(--christianity-theme-shadow)}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{display:grid;place-items:center;justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff2e;color:inherit;font:inherit;opacity:.62}.christianity-slot--play-target{position:relative;opacity:1;border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0eb,#f8fafcd1),#ffffffb3;color:#5d4305;font-weight:800;overflow:hidden;box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-slot--play-target:before{content:\"\";position:absolute;inset:.35rem;border:1px solid rgba(214,162,29,.22);border-radius:.4rem;background:linear-gradient(135deg,rgba(214,162,29,.1),transparent 46%),radial-gradient(circle at 50% 42%,var(--christianity-theme-glow),transparent 58%)}.christianity-slot--play-target span{position:relative;z-index:2;padding:.16rem .44rem;border-radius:999px;background:#ffffffc7;font-size:.78rem}@keyframes christianity-target-pulse{0%,to{box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow)}50%{box-shadow:inset 0 0 0 .16rem #d6a21d57,0 .9rem 1.65rem var(--christianity-theme-shadow-strong)}}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{padding:.75rem;border-radius:.75rem;background:#ffffffeb}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-actions button{pointer-events:auto;border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-actions button:disabled{display:none}.christianity-end-turn{border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:10.8rem;padding:.25rem .25rem 2.1rem;isolation:isolate;overflow:visible}.christianity-hand-shelf{position:relative;display:grid;z-index:12;min-height:12rem;margin-top:-1.15rem;padding:1.45rem .25rem 1rem;overflow:visible}.christianity-hand-shelf--opponent{z-index:8;min-height:6.85rem;margin-top:0;margin-bottom:0;padding:.45rem .25rem .85rem}.christianity-hand-fan--opponent{min-height:5.9rem;padding-bottom:.75rem;align-items:start}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.7rem,12vw,4.9rem);aspect-ratio:var(--christianity-card-aspect);margin-inline:-.9rem;transform-origin:50% 120%}.christianity-hand-fan--opponent .christianity-hidden-card-button:first-child{margin-left:0}.christianity-hand-fan--opponent .christianity-hidden-card-button:last-child{margin-right:0}.christianity-card-preview-card,.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-render-card-button{display:block;padding:0;overflow:visible;border:0;background:transparent;box-shadow:none}.christianity-render-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-gallery-card-button{display:block;width:min(100%,6.8rem);min-width:0;aspect-ratio:var(--christianity-card-aspect);padding:0;overflow:visible;border:0;background:transparent;color:inherit;font:inherit;text-align:left;box-shadow:none}.christianity-gallery-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-card-preview-card--hand.christianity-render-card-button,.christianity-card-preview-card--battle.christianity-render-card-button,.christianity-leader-card.christianity-render-card-button{aspect-ratio:var(--christianity-card-aspect)}.christianity-card-preview-card--hand.christianity-render-card-button:hover val-christianity-card,.christianity-card-preview-card--hand.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-target val-christianity-card{filter:drop-shadow(0 0 .45rem rgba(37,99,235,.45)) drop-shadow(0 .55rem 1rem rgba(37,99,235,.22))}.christianity-card-preview-card--battle.christianity-render-card-button.is-ready-attacker val-christianity-card{filter:drop-shadow(0 0 .24rem rgba(22,163,74,.32)) drop-shadow(0 .45rem .8rem rgba(22,163,74,.16))}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected{transform:translateY(-.28rem)}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card{filter:drop-shadow(0 0 .4rem rgba(250,204,21,.52)) drop-shadow(0 .65rem 1rem rgba(37,99,235,.24))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker{z-index:8;pointer-events:none}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card{animation:christianity-combat-lunge .98s cubic-bezier(.2,.78,.2,1) both;filter:drop-shadow(0 0 .5rem rgba(250,204,21,.72)) drop-shadow(0 1rem 1.4rem rgba(16,42,67,.28))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card{animation:christianity-combat-impact .98s ease-out both;filter:drop-shadow(0 0 .5rem rgba(220,38,38,.48)) drop-shadow(0 .75rem 1.1rem rgba(220,38,38,.18))}@keyframes christianity-combat-lunge{0%{transform:translateZ(0) rotate(0) scale(1)}24%{transform:translate3d(0,-1.4rem,0) rotate(-4deg) scale(1.08)}52%{transform:translate3d(0,-4.9rem,0) rotate(7deg) scale(1.12)}68%{transform:translate3d(0,-3.6rem,0) rotate(-3deg) scale(1.04)}to{transform:translateZ(0) rotate(0) scale(1)}}@keyframes christianity-combat-impact{0%,42%{transform:translateZ(0) scale(1)}54%{transform:translate3d(.16rem,-.12rem,0) rotate(2deg) scale(1.04)}64%{transform:translate3d(-.14rem,.1rem,0) rotate(-2deg) scale(.98)}to{transform:translateZ(0) rotate(0) scale(1)}}.christianity-leader-card.christianity-render-card-button.is-protected-target{opacity:.82}.christianity-leader-card.christianity-render-card-button.is-protected-target val-christianity-card{filter:grayscale(.22) drop-shadow(0 0 .28rem rgba(100,116,139,.26))}.christianity-card-frame{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;overflow:hidden;padding:.48rem;text-align:left;background:linear-gradient(180deg,#fffffffa,#f8fafcfa),radial-gradient(circle at 15% 0%,rgba(214,162,29,.12),transparent 44%);box-shadow:0 .5rem 1.25rem #2430441a,inset 0 0 0 .18rem #ffffff9e}.christianity-card-frame-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.16rem;align-items:start;min-width:0}.christianity-card-frame-header small{grid-column:1;min-width:0;overflow:hidden;color:#1f2933a3;font-size:clamp(.52rem,1.5vw,.68rem);line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-header strong{grid-column:1;justify-self:start;align-self:start;min-width:0;padding:0;overflow:hidden;border-radius:0;background:transparent;font-size:clamp(.82rem,2.5vw,1.05rem);line-height:1.02;text-overflow:ellipsis;white-space:nowrap}.christianity-card-preview-card--hand .christianity-card-frame-header strong,.christianity-card-preview-card--battle .christianity-card-frame-header strong,.christianity-leader-card .christianity-card-frame-header strong{display:-webkit-box;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-preview-card--hand .christianity-card-frame-header small{text-transform:uppercase}.christianity-card-preview-card--hand .christianity-card-frame-art>span{display:-webkit-box;max-width:88%;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-frame-header span{grid-column:2;grid-row:1 / span 2;display:grid;place-items:center;min-width:1.3rem;height:1.3rem;padding:0 .22rem;border-radius:999px;background:#ffd91a;color:#243044;font-size:.8rem;font-weight:900;line-height:1;box-shadow:inset 0 -.08rem #52401c2e}.christianity-card-frame-header span.is-offering-pips,.christianity-full-card-cost.is-offering-pips,.christianity-offering-card span.is-offering-pips{grid-auto-flow:column;gap:.14rem;min-width:auto;padding:0 .28rem}.christianity-card-frame-header span.is-offering-pips i,.christianity-full-card-cost.is-offering-pips i,.christianity-offering-card span.is-offering-pips i,.christianity-full-card-pips i{display:block;width:.72rem;height:.72rem;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9) 0 .12rem,transparent .13rem),#ffd91a;box-shadow:inset 0 -.08rem #52401c2e,0 .12rem .24rem #102a431a}.christianity-card-frame-art{position:relative;display:grid;place-items:center;min-height:0;overflow:hidden;border-radius:.36rem;background:linear-gradient(135deg,#5f6f2a2e,#d6a21d24),radial-gradient(circle at 50% 18%,rgba(255,255,255,.72),transparent 48%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-card-frame-art>span{max-width:78%;overflow:hidden;color:#2430447a;font-size:clamp(.82rem,2.2vw,1.05rem);font-weight:900;line-height:1.02;text-align:center;text-overflow:ellipsis}.christianity-card-frame-art small{position:absolute;right:0;bottom:.28rem;max-width:78%;padding:.1rem .34rem;overflow:hidden;border-radius:999px 0 0 999px;background:#ffffffe6;color:#1f2933a8;font-size:.48rem;font-style:italic;font-weight:900;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-card-frame-effect{display:grid;align-content:center;gap:.1rem;min-height:1.45rem;padding:.24rem;overflow:hidden;border-radius:.34rem;background:radial-gradient(circle at 50% 70%,rgba(36,48,68,.06),transparent 44%),#ffffffdb}.christianity-card-frame-effect strong{justify-self:end;align-self:end;padding:.12rem .32rem;border-radius:999px;background:#edf2f7;font-size:clamp(.66rem,2vw,.82rem);line-height:1.05}.christianity-card-frame-effect p{margin:0;overflow:hidden;color:#1f2933b8;font-size:.58rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-footer{display:flex;justify-content:space-between;gap:.22rem;color:#1f293385;font-size:.46rem;font-weight:800;line-height:1}.christianity-card-frame--battle{gap:.22rem;padding:.42rem}.christianity-card-frame--battle .christianity-card-frame-art{min-height:2.6rem}.christianity-card-frame--leader .christianity-card-frame-art{background:linear-gradient(135deg,#2563eb24,#d6a21d29),radial-gradient(circle at 50% 18%,rgba(255,255,255,.78),transparent 48%),#e7eef8}.christianity-card-frame--list{width:clamp(4.4rem,22vw,5.8rem);padding:.38rem}.christianity-card-frame--list .christianity-card-frame-art{min-height:2.5rem}.christianity-hand-card-wrap{position:relative;display:grid;justify-items:center;flex:0 0 auto;margin-inline:-.42rem;padding-bottom:2rem;transform-origin:50% 115%;transition:transform .16s ease,filter .16s ease}.christianity-hand-card-wrap:hover,.christianity-hand-card-wrap.is-selected,.christianity-hand-card-wrap.is-dragging{z-index:3}.christianity-hand-card-wrap:hover .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-selected .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-dragging .christianity-card-preview-card--hand{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .12rem var(--christianity-theme-gold-soft),0 1rem 2rem var(--christianity-theme-shadow);transform:translateY(-.5rem) scale(1.045)}.christianity-card-preview-card--hand{cursor:grab;touch-action:none}.christianity-card-preview-card--hand:active{cursor:grabbing}.christianity-card-preview-card--hand.cdk-drag-disabled{cursor:not-allowed}.christianity-card-drag-preview,.christianity-card-preview-card.cdk-drag-preview{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;box-shadow:0 0 0 .16rem #fff4c2ad,0 1.5rem 3rem var(--christianity-theme-shadow-strong);transform:rotate(2deg) scale(1.03)}.christianity-card-drag-preview val-christianity-card{display:block;width:100%;height:100%}.christianity-card-drag-placeholder,.christianity-card-preview-card.cdk-drag-placeholder{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;background:#94a3b81f;opacity:.22}.christianity-slot.cdk-drop-list-dragging,.christianity-offering-drop-target.cdk-drop-list-dragging{border-color:var(--christianity-theme-gold-ring)}.christianity-slot.cdk-drop-list-receiving,.christianity-offering-drop-target.cdk-drop-list-receiving{box-shadow:inset 0 0 0 .18rem #d6a21d57,0 1rem 1.9rem var(--christianity-theme-shadow-strong)}.christianity-card-eye{position:absolute;right:50%;bottom:.38rem;width:2.15rem;height:1.55rem;border:1px solid color-mix(in srgb,var(--christianity-theme-focus) 52%,transparent);border-radius:999px;background:#fffffff0;box-shadow:0 .55rem 1.1rem #102a4324;opacity:0;transform:translate(50%,-.2rem) scale(.92);transition:opacity .14s ease,transform .14s ease,border-color .14s ease}.christianity-card-eye:before{content:\"\";position:absolute;top:50%;left:50%;width:1.1rem;height:1.1rem;border:.12rem solid var(--christianity-theme-focus);border-radius:82% 0;background:#fffffff0;transform:translate(-50%,-50%) rotate(45deg)}.christianity-card-eye:after{content:\"\";position:absolute;top:50%;left:50%;width:.42rem;height:.42rem;border:.09rem solid rgba(255,255,255,.95);border-radius:999px;background:radial-gradient(circle at 35% 32%,#ffffff 0 .06rem,transparent .07rem),var(--christianity-theme-focus);transform:translate(-50%,-50%)}.christianity-hand-card-wrap:hover .christianity-card-eye,.christianity-hand-card-wrap.is-selected .christianity-card-eye,.christianity-card-eye:focus-visible{opacity:1;transform:translate(50%) scale(1)}.christianity-offering-drop-target{display:grid;width:min(100%,5.9rem);height:7.1rem;min-height:0;max-height:7.1rem;border:1px solid transparent;border-radius:.64rem;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.christianity-offering-drop-target.is-play-target{border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0f5,#fffffff0),radial-gradient(circle at 82% 14%,rgba(250,204,21,.28) 0 .7rem,transparent .72rem);box-shadow:inset 0 0 0 .12rem #d6a21d3d,0 .8rem 1.55rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-offering-drop-target>.cdk-drag-placeholder{display:none}.christianity-card-frame--back,.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:0;aspect-ratio:var(--christianity-card-aspect);place-items:center;padding:.55rem;overflow:hidden;box-shadow:0 .8rem 1.55rem #24304424;transform-origin:50% -18%;background:var(--christianity-card-back)}.christianity-card-frame--back:before,.christianity-card-preview-card--back:before{content:\"\";position:absolute;inset:.5rem;border:1px solid rgba(16,42,67,.12);border-radius:.38rem;background:linear-gradient(180deg,#ffffff2e,#ffffff0a);box-shadow:inset 0 0 0 .12rem #ffffff1f}.christianity-card-preview-card--battle{justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;min-width:0;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);margin-inline:0}.christianity-card-preview-card>span,.christianity-card-mini>span,.christianity-offering-pile>span,.christianity-offering-card>span,.christianity-leader-card>span,.christianity-zone-card>span,.christianity-zone-pile>span{position:relative;z-index:2;align-self:start;font-weight:700;line-height:1.05}.christianity-card-preview-card>strong,.christianity-card-mini>strong,.christianity-offering-pile>strong,.christianity-offering-card>strong,.christianity-leader-card>strong,.christianity-zone-card>strong,.christianity-zone-pile>strong{position:relative;z-index:3;justify-self:end;align-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{box-sizing:border-box;display:grid;grid-template-columns:minmax(4.8rem,6.2rem) minmax(5rem,1fr) minmax(4.6rem,6.2rem);gap:.65rem;align-items:end;justify-items:center;width:100%;max-width:100%;min-width:0}.christianity-player-rack--opponent{align-items:start}.christianity-hand-meter{position:absolute;top:0;right:.35rem;z-index:4;display:inline-grid;grid-auto-flow:column;gap:.25rem;align-items:center;min-height:1.7rem;padding:.18rem .46rem;border:1px solid rgba(36,48,68,.12);border-radius:999px;background:#ffffffe6;box-shadow:0 .35rem .8rem #102a4314}.christianity-hand-meter--opponent{top:.15rem}.christianity-hand-meter span{color:#1f293394;font-size:.68rem}.christianity-hand-meter strong{font-size:.86rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:grid;justify-items:center;justify-self:center;width:min(100%,6.2rem)}.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-frame{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;align-content:stretch}.christianity-offering-pile,.christianity-zone-card,.christianity-zone-pile{grid-template-rows:auto minmax(2.6rem,1fr) auto;align-content:stretch;gap:.32rem}.christianity-card-mini{width:3.5rem}.christianity-offering-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;justify-self:center;width:min(100%,6.15rem);height:7.35rem;max-height:7.35rem;min-height:0;padding:.55rem .48rem .48rem;background:linear-gradient(180deg,#fff,#f8fafc),linear-gradient(135deg,rgba(250,204,21,.18),transparent 42%)}.christianity-offering-drop-target .christianity-offering-pile{width:100%;height:100%;max-height:none}.christianity-offering-pile>span:not(.christianity-empty-card-slot){position:relative;z-index:3;align-self:end;justify-self:stretch;max-width:100%;overflow:hidden;padding:.12rem .28rem 0;color:#1f2933b8;font-size:clamp(.72rem,2.3vw,.88rem);font-weight:800;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-pile>strong{position:absolute;right:.42rem;bottom:.42rem;z-index:3;min-width:1.7rem;padding:.13rem .38rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-offering-pile>small{position:absolute;bottom:.47rem;left:.42rem;z-index:3;max-width:calc(100% - 2.7rem);overflow:hidden;color:#1f293394;font-size:.58rem;font-weight:850;line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-slot>.cdk-drag-placeholder{display:none}.christianity-offering-pile val-christianity-card{position:absolute;top:1.42rem;left:50%;z-index:1;width:clamp(2.75rem,14vw,3.55rem);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .42rem .8rem rgba(16,42,67,.14))}.christianity-offering-pile:before,.christianity-offering-pile:after{content:\"\";position:absolute;top:1.52rem;left:50%;z-index:0;width:clamp(2.75rem,14vw,3.55rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.35rem;background:#f8fafcf0;transform:translate(calc(-50% + .24rem)) translateY(.1rem) rotate(4deg)}.christianity-offering-pile:after{background:var(--christianity-card-back);transform:translate(calc(-50% - .24rem)) translateY(.22rem) rotate(-4deg)}.christianity-offering-pile.is-empty-zone:before,.christianity-offering-pile.is-empty-zone:after{display:none}.christianity-leader-card{align-self:center;justify-self:center;width:clamp(4.75rem,17vw,6rem);min-height:0;aspect-ratio:var(--christianity-card-aspect)}.christianity-attack-drop-target{display:grid;justify-items:center;min-width:0}.christianity-rack-spacer{display:block;min-height:1px}.christianity-battle-zone{grid-template-columns:repeat(4,var(--christianity-battle-card-width))}.christianity-shared-zone{box-sizing:border-box;display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch;width:100%;max-width:100%;min-width:0}.christianity-zone-card,.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;min-height:6.45rem;padding:.7rem .52rem .55rem;border-color:#24304414;background:linear-gradient(180deg,#ffffff8a,#f8fafc5c),#ffffff3d}.christianity-zone-pile{box-shadow:inset 0 0 0 999px #ffffff0a,0 .45rem 1rem #102a430f}.christianity-zone-card.is-play-target{border-color:#2563eb61;box-shadow:inset 0 0 0 999px #2563eb14,0 0 0 .18rem #2563eb1f}.christianity-zone-pile--history.has-new-card{animation:christianity-history-pulse .9s ease-out both}@keyframes christianity-history-pulse{0%{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}28%{box-shadow:inset 0 0 0 999px #ffffff29,0 0 0 .25rem #2563eb2e;transform:scale(1.025)}to{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}}.christianity-zone-card val-christianity-card,.christianity-zone-pile val-christianity-card{position:absolute;top:.62rem;left:50%;z-index:1;width:clamp(3.3rem,16vw,4.35rem);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .35rem .75rem rgba(16,42,67,.12))}.christianity-zone-pile--deck val-christianity-card{transform:translate(-50%) rotate(3deg)}.christianity-zone-card>span:not(.christianity-empty-card-slot),.christianity-zone-pile>span:not(.christianity-empty-card-slot){position:relative;z-index:3;justify-self:start;max-width:calc(100% - 1.55rem);overflow:hidden;color:#1f2933d6;font-size:clamp(.76rem,2.5vw,.92rem);text-overflow:ellipsis;white-space:nowrap}.christianity-zone-card>strong,.christianity-zone-pile>strong{position:absolute;right:.45rem;bottom:.45rem;z-index:4;min-width:1.65rem;padding:.12rem .4rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-zone-card>em{position:relative;z-index:4;justify-self:center;align-self:end;padding:.12rem .38rem;border-radius:999px;background:#2563eb1f;color:var(--christianity-theme-focus);font-size:.68rem;font-style:normal;font-weight:900}.christianity-empty-card-slot{position:absolute;top:.72rem;left:50%;z-index:1;display:block;width:clamp(3.3rem,16vw,4.35rem);aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(16,42,67,.22);border-radius:.35rem;background:#ffffff5c;transform:translate(-50%)}.christianity-zone-pile:before,.christianity-zone-pile:after{content:\"\";position:absolute;top:.82rem;left:50%;z-index:0;width:clamp(3.3rem,16vw,4.35rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.35rem;background:#f8fafcf0;transform:translate(calc(-50% + .22rem)) rotate(4deg)}.christianity-zone-pile:after{background:var(--christianity-card-back);transform:translate(calc(-50% - .22rem)) translateY(.16rem) rotate(-3deg)}.christianity-zone-pile.is-empty-zone:before,.christianity-zone-pile.is-empty-zone:after{display:none}.christianity-floating-card-shell{position:fixed;top:50%;left:50%;z-index:10020;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.55rem;width:min(56rem,calc(100vw - 1.25rem));max-height:calc(100dvh - 4.25rem);overflow:visible;overscroll-behavior:contain;scrollbar-width:none;transform:translate(-50%,-50%)}.christianity-floating-card-shell::-webkit-scrollbar{display:none}.christianity-floating-card-shell.is-history-preview{width:min(56rem,calc(100vw - 1.25rem))}.christianity-preview-topbar{position:relative;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:.65rem;min-height:2.05rem}.christianity-preview-position{display:inline-grid;place-items:center;min-height:2rem;min-width:3.15rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933b8;font-size:.76rem;font-weight:900;box-shadow:0 .45rem 1rem #102a431a}.christianity-floating-card{position:relative;z-index:2;display:block;width:min(17.5rem,calc(52dvh - 3rem),calc(100vw - 7rem));min-height:0;padding:0;border:0;border-radius:.75rem;background:transparent;box-shadow:0 0 2.2rem var(--christianity-theme-glow);touch-action:none;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(var(--preview-rotate-y, -5deg));transition:transform 90ms ease-out}.christianity-preview-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(13rem,17rem);gap:1rem;align-items:center;min-height:0}.christianity-preview-stage{position:relative;display:grid;place-items:center;justify-self:center;width:min(100%,31rem);min-width:0;min-height:0;padding-inline:4.4rem;perspective:52rem}.christianity-preview-stage:before{content:\"\";position:absolute;inset:10% 2.35rem;z-index:0;border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.26),transparent 58%),linear-gradient(90deg,transparent,rgba(37,99,235,.1),transparent);opacity:.8;pointer-events:none}.christianity-preview-ghost{position:absolute;z-index:1;width:min(13rem,calc(42dvh - 3rem),34vw);opacity:.34;pointer-events:none;filter:blur(.02rem) saturate(.9);transition:transform .36s cubic-bezier(.2,.84,.22,1),opacity .36s ease}.christianity-preview-ghost--previous{transform:translate(-86%) rotateY(22deg) rotate(-4deg) scale(.8)}.christianity-preview-ghost--next{transform:translate(86%) rotateY(-22deg) rotate(4deg) scale(.8)}.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card{animation:christianity-preview-slide-previous .36s cubic-bezier(.2,.84,.22,1) both}.christianity-floating-card-shell.is-sliding-next .christianity-floating-card{animation:christianity-preview-slide-next .36s cubic-bezier(.2,.84,.22,1) both}@keyframes christianity-preview-slide-previous{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) - 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(calc(var(--preview-rotate-y, -5deg) + 16deg)) scale(.9)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(var(--preview-rotate-y, -5deg)) scale(1)}}@keyframes christianity-preview-slide-next{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) + 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(calc(var(--preview-rotate-y, -5deg) - 16deg)) scale(.9)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(var(--preview-rotate-y, -5deg)) scale(1)}}.christianity-preview-side{display:grid;min-width:0}.christianity-floating-card val-christianity-card{display:block;width:100%;min-height:0}.christianity-full-card-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.42rem;align-items:center}.christianity-full-card-header strong{min-width:0;display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;text-overflow:clip;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:clamp(1.25rem,5vw,1.85rem);line-height:1.04}.christianity-full-card-type-icon,.christianity-full-card-cost{display:grid;place-items:center;border-radius:999px}.christianity-full-card-type-icon{width:1.6rem;height:1.6rem;background:radial-gradient(circle at 50% 50%,rgba(95,111,42,.72) 0 .22rem,transparent .24rem),#2430441a}.christianity-full-card-type-icon img{width:1rem;height:1rem;object-fit:contain}.christianity-full-card-cost{min-width:2.1rem;height:2.1rem;padding:0 .36rem;background:#ffd91a;color:#243044;font-size:1.1rem;font-weight:900;box-shadow:inset 0 -.12rem #52401c2e}.christianity-full-card-art{position:relative;display:grid;place-items:center;min-height:9rem;overflow:hidden;border-radius:.48rem;background:linear-gradient(135deg,#5f6f2a33,#d6a21d29),radial-gradient(circle at 50% 25%,rgba(255,255,255,.76),transparent 42%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-full-card-art img{width:100%;height:100%;object-fit:cover}.christianity-full-card-art>span{max-width:80%;color:#24304494;font-size:clamp(1.1rem,5vw,1.8rem);font-weight:900;line-height:1.05;text-align:center}.christianity-full-card-art small{position:absolute;right:0;bottom:.55rem;min-width:5rem;padding:.16rem .48rem;border-radius:999px 0 0 999px;background:#ffffffe6;box-shadow:0 .3rem .8rem #102a431f;color:#1f2933bd;font-size:.68rem;font-style:italic;font-weight:900;text-align:center;text-transform:uppercase}.christianity-full-card-verse,.christianity-full-card-effect{display:grid;gap:.32rem}.christianity-full-card-verse p,.christianity-full-card-effect p{margin:0;line-height:1.25}.christianity-full-card-verse{color:#171923;font-family:Georgia,Times New Roman,serif;font-size:clamp(.72rem,2.7vw,.86rem)}.christianity-full-card-verse strong{font-family:inherit;font-size:.78rem;font-weight:900}.christianity-full-card-effect{position:relative;align-content:start;min-height:7rem;padding:.6rem .7rem;overflow:hidden;border-radius:.45rem;background:radial-gradient(circle at 50% 72%,rgba(36,48,68,.07),transparent 34%),#ffffffdb}.christianity-full-card-stats{display:flex;gap:1rem;min-height:1.35rem}.christianity-full-card-stats strong{font-size:1rem;line-height:1}.christianity-full-card-stats .christianity-full-card-pips{display:inline-grid;grid-auto-flow:column;gap:.2rem;justify-self:start;padding:0;background:transparent}.christianity-full-card-effect>div:last-of-type{display:grid;gap:.12rem}.christianity-full-card-effect>div:last-of-type strong{font-size:.82rem}.christianity-full-card-effect p{font-size:clamp(.78rem,2.9vw,.92rem)}.christianity-full-card-rarity{position:absolute;top:.62rem;right:.62rem;width:.46rem;height:.46rem;border-radius:.12rem;transform:rotate(45deg)}.christianity-full-card-rarity.is-normal{background:#d1d5db}.christianity-full-card-rarity.is-uncommon{background:#22c55e}.christianity-full-card-rarity.is-rare{background:#3b82f6}.christianity-full-card-rarity.is-legendary{background:#eab308}.christianity-full-card-footer{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:.34rem;align-items:center;color:#1f2933ad;font-size:.58rem;line-height:1;text-transform:uppercase}.christianity-full-card-footer span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-floating-card-close{position:relative;z-index:8;min-height:2rem;padding:0 .6rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .45rem 1rem #102a431a}.christianity-preview-nav{position:absolute;top:50%;z-index:7;display:grid;place-items:center;width:2.35rem;height:2.35rem;border:1px solid rgba(37,99,235,.26);border-radius:999px;background:#ffffffeb;color:var(--christianity-theme-focus);font:inherit;font-size:1.1rem;font-weight:1000;box-shadow:0 .75rem 1.4rem #102a4324,inset 0 0 0 1px #ffffff70;transform:translateY(-50%)}.christianity-preview-nav--previous{left:.6rem}.christianity-preview-nav--next{right:.6rem}.christianity-preview-backdrop,.christianity-history-backdrop,.christianity-info-backdrop{position:fixed;inset:0;border:0;border-radius:0;background:#0f172aa3}.christianity-preview-backdrop{z-index:10010;backdrop-filter:blur(.12rem)}.christianity-info-backdrop{z-index:50}.christianity-info-panel{position:fixed;top:50%;left:50%;z-index:51;width:min(31rem,calc(100vw - 1.25rem));max-height:min(34rem,calc(100vh - 2rem));padding-top:2.35rem;transform:translate(-50%,-50%)}.christianity-info-close{position:absolute;top:0;right:.15rem;z-index:2}.christianity-rule-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem;max-height:inherit;padding:1rem;overflow-y:auto;border:1px solid rgba(36,48,68,.14);border-radius:.9rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 38%);box-shadow:0 1.2rem 2.6rem #102a433d,inset 0 0 0 .25rem #ffffff85}.christianity-rule-note-icon{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:999px;background:color-mix(in srgb,var(--christianity-theme-focus) 12%,#ffffff);color:var(--christianity-theme-focus);font-size:1rem;font-weight:900;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent)}.christianity-rule-note small,.christianity-rule-note strong,.christianity-rule-note p,.christianity-rule-note h2{margin:0}.christianity-rule-note small{color:#1f29339e;font-size:.78rem;font-weight:800;text-transform:uppercase}.christianity-rule-note h2{margin-top:.18rem;font-size:clamp(1.5rem,7vw,2.2rem);line-height:1.05}.christianity-rule-note strong{display:inline-flex;width:fit-content;margin-top:.55rem;padding:.22rem .55rem;border-radius:999px;background:#edf2f7;font-size:.92rem}.christianity-rule-note p{margin-top:.75rem;color:#1f2933c7;line-height:1.45}.christianity-rule-note ul{display:grid;gap:.45rem;margin:.8rem 0 0;padding-left:1.05rem;color:#1f2933c7;line-height:1.35}.christianity-floating-card>small,.christianity-floating-card>span{color:#1f2933a3}.christianity-floating-card>strong{font-size:clamp(1.55rem,8vw,2.35rem);line-height:1.05}.christianity-floating-card>p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-preview-rule-note{position:relative;z-index:4;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;max-height:min(18rem,54dvh);padding:.68rem .76rem;overflow-y:auto;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:linear-gradient(180deg,#ffffffe0,#f8fafcd1),radial-gradient(circle at 8% 0%,rgba(37,99,235,.07),transparent 44%);box-shadow:0 .55rem 1.2rem #102a4314}.christianity-preview-abilities{position:relative;z-index:4;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:.5rem;max-height:min(13rem,30dvh);min-height:0;padding:.72rem .78rem .78rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:.75rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 44%);box-shadow:0 .75rem 1.6rem #102a431f}.christianity-preview-abilities-header{display:flex;align-items:center;justify-content:space-between;gap:.7rem;min-width:0}.christianity-preview-abilities-header>div{display:grid;gap:.1rem;min-width:0}.christianity-preview-abilities small,.christianity-preview-abilities p,.christianity-preview-abilities-header span,.christianity-preview-ability-card strong{margin:0}.christianity-preview-abilities small{color:#1f293394;font-size:.68rem;font-weight:900;text-transform:uppercase}.christianity-preview-abilities-header span{color:#1f293385;font-size:.72rem;font-weight:900}.christianity-preview-ability-nav{display:flex;flex:0 0 auto;gap:.35rem}.christianity-preview-ability-nav button{display:grid;place-items:center;width:1.85rem;height:1.85rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:#ffffffe0;color:var(--christianity-theme-focus);font:inherit;font-size:1rem;font-weight:950;line-height:1;box-shadow:0 .35rem .85rem #2563eb24}.christianity-preview-ability-tabs{display:flex;gap:.34rem;overflow-x:auto;scrollbar-width:none}.christianity-preview-ability-tabs::-webkit-scrollbar{display:none}.christianity-preview-ability-tabs button{flex:0 0 auto;max-width:100%;min-height:1.85rem;padding:0 .58rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:999px;background:#edf2f7d1;color:#1f2933c2;font:inherit;font-size:.74rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-tabs button.is-selected{border-color:#2563eb52;background:color-mix(in srgb,var(--christianity-theme-focus) 14%,#ffffff);color:var(--christianity-theme-focus)}.christianity-preview-ability-card{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;gap:.34rem;padding:.55rem .62rem;overflow:hidden;border:1px solid rgba(148,163,184,.16);border-radius:.62rem;background:#ffffff94}.christianity-preview-ability-card strong{overflow:hidden;color:#1f2933e6;font-size:.82rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-scroll{min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain;padding-right:.25rem}.christianity-preview-abilities p{color:#1f2933bd;font-size:.8rem;line-height:1.32}.christianity-preview-ability-footer{display:flex;justify-content:flex-end;align-self:end}.christianity-preview-use-ability{min-height:2rem;padding:0 .72rem;border:0;border-radius:999px;background:var(--christianity-theme-focus);color:#fff;font:inherit;font-size:.78rem;font-weight:900;box-shadow:0 .55rem 1.1rem #2563eb38}.christianity-preview-use-ability:disabled{background:#94a3b85c;color:#1f293380;box-shadow:none}.christianity-preview-rule-note small,.christianity-preview-rule-note strong,.christianity-preview-rule-note p{margin:0}.christianity-preview-rule-note small{color:#1f293394;font-size:.68rem;font-weight:800;text-transform:uppercase}.christianity-preview-rule-note strong{display:block;margin-top:.08rem;font-size:.92rem;line-height:1.1}.christianity-preview-rule-note p{margin-top:.22rem;color:#1f2933bd;font-size:.82rem;line-height:1.32}@media (min-width: 52rem){.christianity-floating-card-shell{width:min(58rem,calc(100vw - 3rem))}.christianity-floating-card{min-height:0;padding:0;width:min(22rem,calc(67dvh - 5.85rem),24rem)}}@media (max-width: 51.99rem){.christianity-floating-card-shell{top:50%;gap:.4rem;width:min(calc(100vw - .9rem),24rem);max-height:calc(100dvh - 1.15rem)}.christianity-preview-content{grid-template-columns:minmax(0,1fr)}.christianity-preview-side{display:none}.christianity-preview-stage{width:100%;padding-inline:3.55rem}.christianity-floating-card{width:min(14.4rem,calc(58dvh - 8.2rem),calc(100vw - 8rem));justify-self:center}.christianity-preview-ghost{display:block;width:min(7.1rem,calc(30dvh - 4rem),24vw);opacity:.24}.christianity-preview-ghost--previous{transform:translate(-118%) rotateY(24deg) rotate(-5deg) scale(.78)}.christianity-preview-ghost--next{transform:translate(118%) rotateY(-24deg) rotate(5deg) scale(.78)}.christianity-floating-card-close{min-height:1.9rem;padding:0 .58rem;font-size:.72rem}.christianity-preview-nav{width:2.2rem;height:2.2rem}.christianity-preview-nav--previous{left:.35rem}.christianity-preview-nav--next{right:.35rem}.christianity-preview-abilities{max-height:min(9.6rem,27dvh);padding:.62rem .7rem}.christianity-preview-ability-tabs{padding-bottom:.02rem}.christianity-preview-ability-card{padding:.48rem .54rem}.christianity-preview-abilities p{font-size:.78rem;line-height:1.24}.christianity-preview-use-ability{min-height:1.95rem;padding-inline:.68rem}}.christianity-history-backdrop{z-index:40}.christianity-gallery-backdrop{z-index:10000;background:#0f172ab8;backdrop-filter:blur(.14rem)}.christianity-history-drawer{position:fixed;right:auto;bottom:max(.5rem,env(safe-area-inset-bottom));left:50%;z-index:41;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;width:min(calc(100vw - 1rem),44rem);min-height:min(18rem,calc(100dvh - 1rem));max-height:min(32rem,calc(100dvh - 2rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347;transform:translate(-50%)}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-dialog-actions{display:flex;align-items:center;gap:.45rem}.christianity-dialog-close{min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#fff;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .8rem #102a4314}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem .1rem .25rem}.christianity-history-grid::-webkit-scrollbar,.christianity-offering-list::-webkit-scrollbar{width:.65rem}.christianity-history-grid::-webkit-scrollbar-track,.christianity-offering-list::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-history-grid::-webkit-scrollbar-thumb,.christianity-offering-list::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offerings-drawer{grid-template-rows:auto auto minmax(0,1fr);width:min(calc(100vw - 1rem),48rem);min-height:min(20rem,calc(100dvh - 1rem));max-height:min(34rem,calc(100dvh - 2rem))}.christianity-offerings-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;padding:.72rem .8rem;border:1px solid rgba(36,48,68,.12);border-radius:.7rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 8% 0%,rgba(214,162,29,.12),transparent 42%)}.christianity-offerings-note p{margin:0;color:#1f2933c2;font-size:.86rem;line-height:1.35}.christianity-offering-list{display:grid;gap:.6rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem}.christianity-offering-row{display:grid;grid-template-columns:minmax(5.4rem,6.5rem) minmax(0,1fr);gap:.65rem;align-items:center;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.65rem;background:#fff}.christianity-offering-row.is-exhausted{opacity:.68}.christianity-gallery-drawer{position:fixed;grid-template-rows:auto auto auto minmax(0,1fr);inset:0;z-index:10001;box-sizing:border-box;width:100dvw;height:100dvh;max-width:none;min-height:100dvh;max-height:100dvh;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));border:0;border-radius:0;background:linear-gradient(180deg,#f8fafcfc,#eff6fffc),radial-gradient(circle at 16% 0%,rgba(37,99,235,.12),transparent 42%);transform:none}.christianity-gallery-drawer header>div:first-child{display:grid;gap:.15rem;min-width:0}.christianity-gallery-drawer header p{color:#1f293394;font-size:.82rem}.christianity-gallery-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(8.5rem,13rem);gap:.65rem;min-width:0}.christianity-gallery-controls label{display:grid;gap:.25rem;min-width:0;color:#1f29339e;font-size:.74rem;font-weight:800}.christianity-gallery-controls input,.christianity-gallery-controls select{width:100%;min-width:0;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(36,48,68,.16);border-radius:.65rem;background:#fff;color:var(--christianity-theme-ink);font:inherit;font-size:.9rem}.christianity-gallery-edition-strip{display:flex;gap:.45rem;overflow-x:auto;min-width:0;padding-bottom:.2rem}.christianity-gallery-edition-strip button{display:inline-flex;align-items:center;gap:.45rem;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(214,162,29,.38);border-radius:999px;background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800}.christianity-gallery-edition-strip img{width:1.2rem;height:1.2rem;object-fit:contain}.christianity-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.9rem,7rem));justify-content:center;align-content:start;gap:.72rem;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.35rem .15rem .65rem}.christianity-gallery-grid::-webkit-scrollbar{width:.65rem}.christianity-gallery-grid::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-gallery-grid::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offering-card{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;gap:.26rem;width:100%;min-height:7.7rem;padding:.58rem;overflow:hidden;text-align:left;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 78% 14%,rgba(250,204,21,.78) 0 .42rem,transparent .44rem);box-shadow:0 .45rem 1rem #102a431a}.christianity-offering-card small{min-width:0;overflow:hidden;color:#1f293394;font-size:.62rem;font-weight:800;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-offering-card strong{display:-webkit-box;align-self:start;min-width:0;margin-top:.1rem;overflow:hidden;overflow-wrap:anywhere;font-size:.88rem;line-height:1.05;-webkit-box-orient:vertical;-webkit-line-clamp:3}.christianity-offering-card span{position:absolute;right:.42rem;bottom:.42rem;display:grid;place-items:center;min-width:1.55rem;height:1.55rem;padding:0 .28rem;border-radius:999px;background:#edf2f7;font-size:.82rem;font-weight:900}.christianity-offering-card em{align-self:end;max-width:calc(100% - 1.9rem);overflow:hidden;color:#1f29339e;font-size:.64rem;font-style:normal;font-weight:800;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-card p,.christianity-offering-row p{margin:0}.christianity-offering-card p{align-self:end;color:#1f2933a3;font-size:.72rem;line-height:1.2}.christianity-offering-row>div{display:grid;gap:.35rem;align-content:center;min-width:0}.christianity-offering-row>div p{color:#1f2933b8;font-size:.85rem;line-height:1.3}.christianity-offering-row>div button{justify-self:start;min-height:2.2rem;padding:0 .7rem;border:1px solid rgba(16,42,67,.16);border-radius:.5rem;background:#102a43;color:#fff;font:inherit;font-weight:800}.christianity-offering-row>div button:disabled{background:#e2e8f0;color:#1f293394}.christianity-history-grid .christianity-render-card-button{justify-self:center;width:min(100%,6.4rem)}.christianity-gallery-grid .christianity-render-card-button{justify-self:center;width:min(100%,7rem)}.christianity-offering-card.christianity-render-card-button{width:min(100%,5.8rem);min-height:0;padding:0;border:0;background:transparent;box-shadow:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent);outline-offset:.125rem}:host-context(.dark),:host-context(.ion-palette-dark),:host-context(html.ion-palette-dark),:host-context(body.dark),:host-context([data-theme=\"dark\"]){--christianity-theme-ink: var(--ion-text-color, #e5edf8);--christianity-theme-surface: #111827;--christianity-theme-parchment: #13223a;--christianity-theme-olive: #93c5fd;--christianity-theme-gold: #60a5fa;--christianity-theme-gold-soft: rgba(96, 165, 250, .18);--christianity-theme-gold-ring: rgba(147, 197, 253, .42);--christianity-theme-glow: rgba(96, 165, 250, .24);--christianity-theme-focus: #93c5fd;--christianity-theme-shadow: rgba(0, 0, 0, .34);--christianity-theme-shadow-strong: rgba(0, 0, 0, .48);--christianity-card-back: linear-gradient(135deg, rgba(147, 197, 253, .2), rgba(15, 23, 42, .08)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(147, 197, 253, .15), rgba(15, 23, 42, .06)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);color-scheme:dark}:host-context(.dark) .christianity-gallery-open,:host-context(.ion-palette-dark) .christianity-gallery-open,:host-context(html.ion-palette-dark) .christianity-gallery-open,:host-context(body.dark) .christianity-gallery-open,:host-context([data-theme=\"dark\"]) .christianity-gallery-open,:host-context(.dark) .christianity-secondary-action,:host-context(.ion-palette-dark) .christianity-secondary-action,:host-context(html.ion-palette-dark) .christianity-secondary-action,:host-context(body.dark) .christianity-secondary-action,:host-context([data-theme=\"dark\"]) .christianity-secondary-action,:host-context(.dark) .christianity-gallery-edition-strip button,:host-context(.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(html.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(body.dark) .christianity-gallery-edition-strip button,:host-context([data-theme=\"dark\"]) .christianity-gallery-edition-strip button{border-color:#93c5fd5c;background:linear-gradient(180deg,#1e3a5fd1,#0f172ae0),radial-gradient(circle at 20% 0%,rgba(96,165,250,.16),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.2rem #0000003d}:host-context(.dark) .christianity-splash,:host-context(.ion-palette-dark) .christianity-splash,:host-context(html.ion-palette-dark) .christianity-splash,:host-context(body.dark) .christianity-splash,:host-context([data-theme=\"dark\"]) .christianity-splash{border-color:#93c5fd38;background:radial-gradient(circle at 50% 18%,rgba(96,165,250,.16),transparent 22rem),linear-gradient(180deg,#0f172ae0,#07111ff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #00000047}:host-context(.dark) .christianity-start__cards article,:host-context(.ion-palette-dark) .christianity-start__cards article,:host-context(html.ion-palette-dark) .christianity-start__cards article,:host-context(body.dark) .christianity-start__cards article,:host-context([data-theme=\"dark\"]) .christianity-start__cards article,:host-context(.dark) .christianity-start__modes article,:host-context(.ion-palette-dark) .christianity-start__modes article,:host-context(html.ion-palette-dark) .christianity-start__modes article,:host-context(body.dark) .christianity-start__modes article,:host-context([data-theme=\"dark\"]) .christianity-start__modes article,:host-context(.dark) .christianity-start__status span,:host-context(.ion-palette-dark) .christianity-start__status span,:host-context(html.ion-palette-dark) .christianity-start__status span,:host-context(body.dark) .christianity-start__status span,:host-context([data-theme=\"dark\"]) .christianity-start__status span,:host-context(.dark) .christianity-start__modes article>span,:host-context(.ion-palette-dark) .christianity-start__modes article>span,:host-context(html.ion-palette-dark) .christianity-start__modes article>span,:host-context(body.dark) .christianity-start__modes article>span,:host-context([data-theme=\"dark\"]) .christianity-start__modes article>span{border-color:#94a3b833;background:#0f172aad;box-shadow:0 .75rem 1.7rem #00000038}:host-context(.dark) .christianity-splash p,:host-context(.ion-palette-dark) .christianity-splash p,:host-context(html.ion-palette-dark) .christianity-splash p,:host-context(body.dark) .christianity-splash p,:host-context([data-theme=\"dark\"]) .christianity-splash p,:host-context(.dark) .christianity-start__copy p,:host-context(.ion-palette-dark) .christianity-start__copy p,:host-context(html.ion-palette-dark) .christianity-start__copy p,:host-context(body.dark) .christianity-start__copy p,:host-context([data-theme=\"dark\"]) .christianity-start__copy p,:host-context(.dark) .christianity-start__cards p,:host-context(.ion-palette-dark) .christianity-start__cards p,:host-context(html.ion-palette-dark) .christianity-start__cards p,:host-context(body.dark) .christianity-start__cards p,:host-context([data-theme=\"dark\"]) .christianity-start__cards p,:host-context(.dark) .christianity-start__modes p,:host-context(.ion-palette-dark) .christianity-start__modes p,:host-context(html.ion-palette-dark) .christianity-start__modes p,:host-context(body.dark) .christianity-start__modes p,:host-context([data-theme=\"dark\"]) .christianity-start__modes p,:host-context(.dark) .christianity-header p,:host-context(.ion-palette-dark) .christianity-header p,:host-context(html.ion-palette-dark) .christianity-header p,:host-context(body.dark) .christianity-header p,:host-context([data-theme=\"dark\"]) .christianity-header p,:host-context(.dark) .christianity-match-player small,:host-context(.ion-palette-dark) .christianity-match-player small,:host-context(html.ion-palette-dark) .christianity-match-player small,:host-context(body.dark) .christianity-match-player small,:host-context([data-theme=\"dark\"]) .christianity-match-player small,:host-context(.dark) .christianity-scoreboard span,:host-context(.ion-palette-dark) .christianity-scoreboard span,:host-context(html.ion-palette-dark) .christianity-scoreboard span,:host-context(body.dark) .christianity-scoreboard span,:host-context([data-theme=\"dark\"]) .christianity-scoreboard span{color:#e2e8f0bd}:host-context(.dark) .christianity-turn,:host-context(.ion-palette-dark) .christianity-turn,:host-context(html.ion-palette-dark) .christianity-turn,:host-context(body.dark) .christianity-turn,:host-context([data-theme=\"dark\"]) .christianity-turn,:host-context(.dark) .christianity-leader,:host-context(.ion-palette-dark) .christianity-leader,:host-context(html.ion-palette-dark) .christianity-leader,:host-context(body.dark) .christianity-leader,:host-context([data-theme=\"dark\"]) .christianity-leader,:host-context(.dark) .christianity-offerings,:host-context(.ion-palette-dark) .christianity-offerings,:host-context(html.ion-palette-dark) .christianity-offerings,:host-context(body.dark) .christianity-offerings,:host-context([data-theme=\"dark\"]) .christianity-offerings,:host-context(.dark) .christianity-hidden-hand,:host-context(.ion-palette-dark) .christianity-hidden-hand,:host-context(html.ion-palette-dark) .christianity-hidden-hand,:host-context(body.dark) .christianity-hidden-hand,:host-context([data-theme=\"dark\"]) .christianity-hidden-hand,:host-context(.dark) .christianity-pile,:host-context(.ion-palette-dark) .christianity-pile,:host-context(html.ion-palette-dark) .christianity-pile,:host-context(body.dark) .christianity-pile,:host-context([data-theme=\"dark\"]) .christianity-pile,:host-context(.dark) .christianity-deck,:host-context(.ion-palette-dark) .christianity-deck,:host-context(html.ion-palette-dark) .christianity-deck,:host-context(body.dark) .christianity-deck,:host-context([data-theme=\"dark\"]) .christianity-deck,:host-context(.dark) .christianity-place,:host-context(.ion-palette-dark) .christianity-place,:host-context(html.ion-palette-dark) .christianity-place,:host-context(body.dark) .christianity-place,:host-context([data-theme=\"dark\"]) .christianity-place,:host-context(.dark) .christianity-match-strip,:host-context(.ion-palette-dark) .christianity-match-strip,:host-context(html.ion-palette-dark) .christianity-match-strip,:host-context(body.dark) .christianity-match-strip,:host-context([data-theme=\"dark\"]) .christianity-match-strip,:host-context(.dark) .christianity-actions,:host-context(.ion-palette-dark) .christianity-actions,:host-context(html.ion-palette-dark) .christianity-actions,:host-context(body.dark) .christianity-actions,:host-context([data-theme=\"dark\"]) .christianity-actions,:host-context(.dark) .christianity-history,:host-context(.ion-palette-dark) .christianity-history,:host-context(html.ion-palette-dark) .christianity-history,:host-context(body.dark) .christianity-history,:host-context([data-theme=\"dark\"]) .christianity-history{border-color:#94a3b82e;background:#0f172ad1}:host-context(.dark) .christianity-turn.is-own-turn,:host-context(.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(html.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(body.dark) .christianity-turn.is-own-turn,:host-context([data-theme=\"dark\"]) .christianity-turn.is-own-turn{border-color:#2dd4bf5c;background:#14534c5c}:host-context(.dark) .christianity-table,:host-context(.ion-palette-dark) .christianity-table,:host-context(html.ion-palette-dark) .christianity-table,:host-context(body.dark) .christianity-table,:host-context([data-theme=\"dark\"]) .christianity-table{background:linear-gradient(180deg,#10233d,#0b1728)}:host-context(.dark) .christianity-player-side,:host-context(.ion-palette-dark) .christianity-player-side,:host-context(html.ion-palette-dark) .christianity-player-side,:host-context(body.dark) .christianity-player-side,:host-context([data-theme=\"dark\"]) .christianity-player-side{background:#0f172a57}:host-context(.dark) .christianity-battle-zone,:host-context(.ion-palette-dark) .christianity-battle-zone,:host-context(html.ion-palette-dark) .christianity-battle-zone,:host-context(body.dark) .christianity-battle-zone,:host-context([data-theme=\"dark\"]) .christianity-battle-zone,:host-context(.dark) .christianity-shared-zone,:host-context(.ion-palette-dark) .christianity-shared-zone,:host-context(html.ion-palette-dark) .christianity-shared-zone,:host-context(body.dark) .christianity-shared-zone,:host-context([data-theme=\"dark\"]) .christianity-shared-zone{background:#0f172a94}:host-context(.dark) .christianity-battle-zone.is-placing-card,:host-context(.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(html.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(body.dark) .christianity-battle-zone.is-placing-card,:host-context([data-theme=\"dark\"]) .christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#1e3a5fd1,#0f172ab8),#0f172a94}:host-context(.dark) .christianity-card,:host-context(.ion-palette-dark) .christianity-card,:host-context(html.ion-palette-dark) .christianity-card,:host-context(body.dark) .christianity-card,:host-context([data-theme=\"dark\"]) .christianity-card,:host-context(.dark) .christianity-slot,:host-context(.ion-palette-dark) .christianity-slot,:host-context(html.ion-palette-dark) .christianity-slot,:host-context(body.dark) .christianity-slot,:host-context([data-theme=\"dark\"]) .christianity-slot{border-color:#94a3b83d;background:#0f172a8a}:host-context(.dark) .christianity-slot--play-target,:host-context(.ion-palette-dark) .christianity-slot--play-target,:host-context(html.ion-palette-dark) .christianity-slot--play-target,:host-context(body.dark) .christianity-slot--play-target,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target{color:var(--christianity-theme-ink);background:linear-gradient(180deg,#2563eb3d,#0f172ac7),#0f172abd}:host-context(.dark) .christianity-slot--play-target span,:host-context(.ion-palette-dark) .christianity-slot--play-target span,:host-context(html.ion-palette-dark) .christianity-slot--play-target span,:host-context(body.dark) .christianity-slot--play-target span,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target span,:host-context(.dark) .christianity-card strong,:host-context(.ion-palette-dark) .christianity-card strong,:host-context(html.ion-palette-dark) .christianity-card strong,:host-context(body.dark) .christianity-card strong,:host-context([data-theme=\"dark\"]) .christianity-card strong{background:#1e293beb}:host-context(.dark) .christianity-offering-pile,:host-context(.ion-palette-dark) .christianity-offering-pile,:host-context(html.ion-palette-dark) .christianity-offering-pile,:host-context(body.dark) .christianity-offering-pile,:host-context([data-theme=\"dark\"]) .christianity-offering-pile,:host-context(.dark) .christianity-zone-card,:host-context(.ion-palette-dark) .christianity-zone-card,:host-context(html.ion-palette-dark) .christianity-zone-card,:host-context(body.dark) .christianity-zone-card,:host-context([data-theme=\"dark\"]) .christianity-zone-card,:host-context(.dark) .christianity-zone-pile,:host-context(.ion-palette-dark) .christianity-zone-pile,:host-context(html.ion-palette-dark) .christianity-zone-pile,:host-context(body.dark) .christianity-zone-pile,:host-context([data-theme=\"dark\"]) .christianity-zone-pile{border-color:#94a3b83d;background:linear-gradient(180deg,#111827f5,#0f172af0),radial-gradient(circle at 14% 0%,rgba(96,165,250,.12),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.25rem #00000047,inset 0 0 0 .12rem #ffffff08}:host-context(.dark) .christianity-offering-pile>span,:host-context(.ion-palette-dark) .christianity-offering-pile>span,:host-context(html.ion-palette-dark) .christianity-offering-pile>span,:host-context(body.dark) .christianity-offering-pile>span,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>span,:host-context(.dark) .christianity-zone-card>span,:host-context(.ion-palette-dark) .christianity-zone-card>span,:host-context(html.ion-palette-dark) .christianity-zone-card>span,:host-context(body.dark) .christianity-zone-card>span,:host-context([data-theme=\"dark\"]) .christianity-zone-card>span,:host-context(.dark) .christianity-zone-pile>span,:host-context(.ion-palette-dark) .christianity-zone-pile>span,:host-context(html.ion-palette-dark) .christianity-zone-pile>span,:host-context(body.dark) .christianity-zone-pile>span,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>span,:host-context(.dark) .christianity-player-badge,:host-context(.ion-palette-dark) .christianity-player-badge,:host-context(html.ion-palette-dark) .christianity-player-badge,:host-context(body.dark) .christianity-player-badge,:host-context([data-theme=\"dark\"]) .christianity-player-badge{color:#e2e8f0c7}:host-context(.dark) .christianity-offering-pile>small,:host-context(.ion-palette-dark) .christianity-offering-pile>small,:host-context(html.ion-palette-dark) .christianity-offering-pile>small,:host-context(body.dark) .christianity-offering-pile>small,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>small{color:#e2e8f09e}:host-context(.dark) .christianity-offering-pile>strong,:host-context(.ion-palette-dark) .christianity-offering-pile>strong,:host-context(html.ion-palette-dark) .christianity-offering-pile>strong,:host-context(body.dark) .christianity-offering-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>strong,:host-context(.dark) .christianity-zone-card>strong,:host-context(.ion-palette-dark) .christianity-zone-card>strong,:host-context(html.ion-palette-dark) .christianity-zone-card>strong,:host-context(body.dark) .christianity-zone-card>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-card>strong,:host-context(.dark) .christianity-zone-pile>strong,:host-context(.ion-palette-dark) .christianity-zone-pile>strong,:host-context(html.ion-palette-dark) .christianity-zone-pile>strong,:host-context(body.dark) .christianity-zone-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>strong,:host-context(.dark) .christianity-hand-meter,:host-context(.ion-palette-dark) .christianity-hand-meter,:host-context(html.ion-palette-dark) .christianity-hand-meter,:host-context(body.dark) .christianity-hand-meter,:host-context([data-theme=\"dark\"]) .christianity-hand-meter{border-color:#94a3b833;background:#0f172ae0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #00000047}:host-context(.dark) .christianity-hand-meter span,:host-context(.ion-palette-dark) .christianity-hand-meter span,:host-context(html.ion-palette-dark) .christianity-hand-meter span,:host-context(body.dark) .christianity-hand-meter span,:host-context([data-theme=\"dark\"]) .christianity-hand-meter span{color:#e2e8f0b3}:host-context(.dark) .christianity-offering-pile:before,:host-context(.ion-palette-dark) .christianity-offering-pile:before,:host-context(html.ion-palette-dark) .christianity-offering-pile:before,:host-context(body.dark) .christianity-offering-pile:before,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:before,:host-context(.dark) .christianity-zone-pile:before,:host-context(.ion-palette-dark) .christianity-zone-pile:before,:host-context(html.ion-palette-dark) .christianity-zone-pile:before,:host-context(body.dark) .christianity-zone-pile:before,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:before{border-color:#94a3b833;background:#e2e8f0eb;box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-offering-pile:after,:host-context(.ion-palette-dark) .christianity-offering-pile:after,:host-context(html.ion-palette-dark) .christianity-offering-pile:after,:host-context(body.dark) .christianity-offering-pile:after,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:after,:host-context(.dark) .christianity-zone-pile:after,:host-context(.ion-palette-dark) .christianity-zone-pile:after,:host-context(html.ion-palette-dark) .christianity-zone-pile:after,:host-context(body.dark) .christianity-zone-pile:after,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:after{border-color:#94a3b838;background:var(--christianity-card-back);box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-end-turn:disabled,:host-context(.ion-palette-dark) .christianity-end-turn:disabled,:host-context(html.ion-palette-dark) .christianity-end-turn:disabled,:host-context(body.dark) .christianity-end-turn:disabled,:host-context([data-theme=\"dark\"]) .christianity-end-turn:disabled{border-color:#94a3b829;background:#0f172a75;color:#e2e8f06b;opacity:1}:host-context(.dark) .christianity-history-drawer,:host-context(.ion-palette-dark) .christianity-history-drawer,:host-context(html.ion-palette-dark) .christianity-history-drawer,:host-context(body.dark) .christianity-history-drawer,:host-context([data-theme=\"dark\"]) .christianity-history-drawer,:host-context(.dark) .christianity-rule-note,:host-context(.ion-palette-dark) .christianity-rule-note,:host-context(html.ion-palette-dark) .christianity-rule-note,:host-context(body.dark) .christianity-rule-note,:host-context([data-theme=\"dark\"]) .christianity-rule-note,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note,:host-context(.dark) .christianity-preview-abilities,:host-context(.ion-palette-dark) .christianity-preview-abilities,:host-context(html.ion-palette-dark) .christianity-preview-abilities,:host-context(body.dark) .christianity-preview-abilities,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities{border-color:#94a3b82e;background:linear-gradient(180deg,#0f172af5,#111827f5),radial-gradient(circle at 8% 0%,rgba(96,165,250,.12),transparent 40%);box-shadow:0 1.5rem 4rem #0000006b}:host-context(.dark) .christianity-dialog-close,:host-context(.ion-palette-dark) .christianity-dialog-close,:host-context(html.ion-palette-dark) .christianity-dialog-close,:host-context(body.dark) .christianity-dialog-close,:host-context([data-theme=\"dark\"]) .christianity-dialog-close,:host-context(.dark) .christianity-floating-card-close,:host-context(.ion-palette-dark) .christianity-floating-card-close,:host-context(html.ion-palette-dark) .christianity-floating-card-close,:host-context(body.dark) .christianity-floating-card-close,:host-context([data-theme=\"dark\"]) .christianity-floating-card-close,:host-context(.dark) .christianity-preview-position,:host-context(.ion-palette-dark) .christianity-preview-position,:host-context(html.ion-palette-dark) .christianity-preview-position,:host-context(body.dark) .christianity-preview-position,:host-context([data-theme=\"dark\"]) .christianity-preview-position,:host-context(.dark) .christianity-preview-nav,:host-context(.ion-palette-dark) .christianity-preview-nav,:host-context(html.ion-palette-dark) .christianity-preview-nav,:host-context(body.dark) .christianity-preview-nav,:host-context([data-theme=\"dark\"]) .christianity-preview-nav,:host-context(.dark) .christianity-preview-ability-nav button,:host-context(.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(html.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(body.dark) .christianity-preview-ability-nav button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-nav button,:host-context(.dark) .christianity-preview-ability-tabs button,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(body.dark) .christianity-preview-ability-tabs button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button{border-color:#94a3b838;background:#0f172af0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #0000004d}:host-context(.dark) .christianity-preview-ability-tabs button.is-selected,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(body.dark) .christianity-preview-ability-tabs button.is-selected,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button.is-selected{border-color:#60a5fa61;background:#2563eb38;color:#dbeafef0}:host-context(.dark) .christianity-preview-use-ability:disabled,:host-context(.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(html.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(body.dark) .christianity-preview-use-ability:disabled,:host-context([data-theme=\"dark\"]) .christianity-preview-use-ability:disabled{background:#334155c7;color:#e2e8f07a}:host-context(.dark) .christianity-preview-ability-card,:host-context(.ion-palette-dark) .christianity-preview-ability-card,:host-context(html.ion-palette-dark) .christianity-preview-ability-card,:host-context(body.dark) .christianity-preview-ability-card,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card{border-color:#94a3b829;background:#0f172a6b}:host-context(.dark) .christianity-preview-ability-card strong,:host-context(.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(html.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(body.dark) .christianity-preview-ability-card strong,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card strong,:host-context(.dark) .christianity-preview-abilities-header span,:host-context(.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(html.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(body.dark) .christianity-preview-abilities-header span,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities-header span{color:#e2e8f0d1}:host-context(.dark) .christianity-history-drawer header span,:host-context(.ion-palette-dark) .christianity-history-drawer header span,:host-context(html.ion-palette-dark) .christianity-history-drawer header span,:host-context(body.dark) .christianity-history-drawer header span,:host-context([data-theme=\"dark\"]) .christianity-history-drawer header span,:host-context(.dark) .christianity-rule-note strong,:host-context(.ion-palette-dark) .christianity-rule-note strong,:host-context(html.ion-palette-dark) .christianity-rule-note strong,:host-context(body.dark) .christianity-rule-note strong,:host-context([data-theme=\"dark\"]) .christianity-rule-note strong{background:#1e293beb}:host-context(.dark) .christianity-rule-note small,:host-context(.ion-palette-dark) .christianity-rule-note small,:host-context(html.ion-palette-dark) .christianity-rule-note small,:host-context(body.dark) .christianity-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-rule-note small,:host-context(.dark) .christianity-preview-rule-note small,:host-context(.ion-palette-dark) .christianity-preview-rule-note small,:host-context(html.ion-palette-dark) .christianity-preview-rule-note small,:host-context(body.dark) .christianity-preview-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note small,:host-context(.dark) .christianity-preview-abilities small,:host-context(.ion-palette-dark) .christianity-preview-abilities small,:host-context(html.ion-palette-dark) .christianity-preview-abilities small,:host-context(body.dark) .christianity-preview-abilities small,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities small,:host-context(.dark) .christianity-gallery-drawer header p,:host-context(.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(html.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(body.dark) .christianity-gallery-drawer header p,:host-context([data-theme=\"dark\"]) .christianity-gallery-drawer header p,:host-context(.dark) .christianity-gallery-controls label,:host-context(.ion-palette-dark) .christianity-gallery-controls label,:host-context(html.ion-palette-dark) .christianity-gallery-controls label,:host-context(body.dark) .christianity-gallery-controls label,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls label{color:#e2e8f0ad}:host-context(.dark) .christianity-rule-note p,:host-context(.ion-palette-dark) .christianity-rule-note p,:host-context(html.ion-palette-dark) .christianity-rule-note p,:host-context(body.dark) .christianity-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-rule-note p,:host-context(.dark) .christianity-rule-note ul,:host-context(.ion-palette-dark) .christianity-rule-note ul,:host-context(html.ion-palette-dark) .christianity-rule-note ul,:host-context(body.dark) .christianity-rule-note ul,:host-context([data-theme=\"dark\"]) .christianity-rule-note ul,:host-context(.dark) .christianity-preview-rule-note p,:host-context(.ion-palette-dark) .christianity-preview-rule-note p,:host-context(html.ion-palette-dark) .christianity-preview-rule-note p,:host-context(body.dark) .christianity-preview-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note p,:host-context(.dark) .christianity-preview-abilities p,:host-context(.ion-palette-dark) .christianity-preview-abilities p,:host-context(html.ion-palette-dark) .christianity-preview-abilities p,:host-context(body.dark) .christianity-preview-abilities p,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities p,:host-context(.dark) .christianity-offerings-note p,:host-context(.ion-palette-dark) .christianity-offerings-note p,:host-context(html.ion-palette-dark) .christianity-offerings-note p,:host-context(body.dark) .christianity-offerings-note p,:host-context([data-theme=\"dark\"]) .christianity-offerings-note p{color:#e2e8f0cc}:host-context(.dark) .christianity-gallery-controls input,:host-context(.ion-palette-dark) .christianity-gallery-controls input,:host-context(html.ion-palette-dark) .christianity-gallery-controls input,:host-context(body.dark) .christianity-gallery-controls input,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls input,:host-context(.dark) .christianity-gallery-controls select,:host-context(.ion-palette-dark) .christianity-gallery-controls select,:host-context(html.ion-palette-dark) .christianity-gallery-controls select,:host-context(body.dark) .christianity-gallery-controls select,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls select,:host-context(.dark) .christianity-offering-row,:host-context(.ion-palette-dark) .christianity-offering-row,:host-context(html.ion-palette-dark) .christianity-offering-row,:host-context(body.dark) .christianity-offering-row,:host-context([data-theme=\"dark\"]) .christianity-offering-row,:host-context(.dark) .christianity-offerings-note,:host-context(.ion-palette-dark) .christianity-offerings-note,:host-context(html.ion-palette-dark) .christianity-offerings-note,:host-context(body.dark) .christianity-offerings-note,:host-context([data-theme=\"dark\"]) .christianity-offerings-note{border-color:#94a3b833;background:#0f172ac7;color:var(--christianity-theme-ink)}:host-context(.dark) .christianity-history-grid,:host-context(.ion-palette-dark) .christianity-history-grid,:host-context(html.ion-palette-dark) .christianity-history-grid,:host-context(body.dark) .christianity-history-grid,:host-context([data-theme=\"dark\"]) .christianity-history-grid,:host-context(.dark) .christianity-offering-list,:host-context(.ion-palette-dark) .christianity-offering-list,:host-context(html.ion-palette-dark) .christianity-offering-list,:host-context(body.dark) .christianity-offering-list,:host-context([data-theme=\"dark\"]) .christianity-offering-list,:host-context(.dark) .christianity-gallery-grid,:host-context(.ion-palette-dark) .christianity-gallery-grid,:host-context(html.ion-palette-dark) .christianity-gallery-grid,:host-context(body.dark) .christianity-gallery-grid,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note{scrollbar-color:rgba(148,163,184,.54) rgba(15,23,42,.86)}:host-context(.dark) .christianity-rule-note-icon,:host-context(.ion-palette-dark) .christianity-rule-note-icon,:host-context(html.ion-palette-dark) .christianity-rule-note-icon,:host-context(body.dark) .christianity-rule-note-icon,:host-context([data-theme=\"dark\"]) .christianity-rule-note-icon{background:#60a5fa29;color:#bfdbfe;box-shadow:inset 0 0 0 1px #93c5fd38}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-track{background:#0f172adb}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-thumb{border-color:#0f172adb;background:#94a3b88a}@media (max-width: 720px){:host{overflow-x:hidden}.christianity-shell{padding:0 0 10.4rem}.christianity-actions{position:fixed;right:max(.6rem,env(safe-area-inset-right));bottom:calc(max(.75rem,env(safe-area-inset-bottom)) + 9.7rem);z-index:80;display:block;width:auto;padding:0;background:transparent;pointer-events:none}.christianity-end-turn{position:fixed;bottom:calc(max(.75rem,env(safe-area-inset-bottom)) + 9.7rem);left:calc(max(.6rem,env(safe-area-inset-left)) + 5.95rem);z-index:80;min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-actions button{min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-header,.christianity-match-strip,.christianity-player__summary{box-sizing:border-box;width:100%;padding-right:max(.5rem,env(safe-area-inset-right));padding-left:max(.5rem,env(safe-area-inset-left))}.christianity-header,.christianity-player__summary,.christianity-shared-zone{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-header-actions{align-items:flex-end;flex-direction:column}.christianity-start__cards,.christianity-start__hero{grid-template-columns:minmax(0,1fr)}.christianity-start__fan{min-height:10.5rem}.christianity-start__fan val-christianity-card{width:clamp(5.2rem,22vw,6.4rem)}.christianity-start__modes{grid-template-columns:repeat(2,minmax(0,1fr))}.christianity-splash{min-height:min(30rem,calc(100dvh - 7rem));padding-right:max(.65rem,env(safe-area-inset-right));padding-left:max(.65rem,env(safe-area-inset-left));border-right:0;border-left:0;border-radius:0}.christianity-start{min-height:min(30rem,calc(100dvh - 7rem));padding:0}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem;width:100%;max-width:100%;min-width:0;padding-right:.25rem;padding-left:.25rem;overflow-x:hidden}.christianity-player-side{width:100%;max-width:100%;min-width:0;padding:.3rem .25rem;overflow:hidden}.christianity-battle-zone{--christianity-battle-card-width: min(5.2rem, 100%);grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.25rem,1.5vw,.4rem);justify-content:stretch;min-height:8.75rem;padding-inline:.28rem;overflow-x:hidden}.christianity-battle-zone .christianity-card-preview-card--battle,.christianity-battle-zone .christianity-slot{width:min(100%,5.2rem)}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent){position:fixed;right:0;bottom:0;left:0;z-index:52;box-sizing:border-box;min-height:9.55rem;margin:0;padding:.7rem max(.35rem,env(safe-area-inset-right)) max(.55rem,env(safe-area-inset-bottom)) max(.35rem,env(safe-area-inset-left));background:linear-gradient(180deg,#eff6ff00,#dbeafef5 18%,#dbeafefa),radial-gradient(circle at 50% 0%,rgba(37,99,235,.14),transparent 58%);pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan,.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-card-wrap{pointer-events:auto}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-meter{top:.15rem;right:max(.55rem,env(safe-area-inset-right));pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan{min-height:8.85rem;padding:.25rem .25rem 1.1rem;overflow:visible}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-card-preview-card--hand{width:clamp(4.35rem,20vw,5.65rem)}.christianity-hand-shelf--opponent{min-height:6.65rem;margin-top:0;margin-bottom:0;padding-top:.4rem;padding-bottom:.85rem}.christianity-player-rack{grid-template-columns:minmax(0,5.55rem) minmax(0,1fr) minmax(0,5.45rem);gap:clamp(.35rem,2vw,.5rem)}.christianity-shared-zone{gap:.45rem;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.christianity-zone-card,.christianity-zone-pile{min-height:6.15rem;padding:.58rem .46rem .5rem;gap:.24rem}.christianity-zone-card val-christianity-card,.christianity-zone-pile val-christianity-card,.christianity-zone-pile:before,.christianity-zone-pile:after,.christianity-empty-card-slot{width:clamp(3rem,18vw,3.85rem)}.christianity-offering-pile{height:6.9rem;max-height:6.9rem;padding:.52rem .42rem .48rem;gap:.24rem}.christianity-offering-drop-target{width:min(100%,5.8rem);height:6.9rem;min-height:0;max-height:6.9rem}.christianity-offering-pile val-christianity-card,.christianity-offering-pile:before,.christianity-offering-pile:after{width:clamp(2.65rem,15vw,3.35rem)}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);height:auto;min-height:0}.christianity-leader-card{width:clamp(4.55rem,20vw,5.7rem);min-height:0}.christianity-offering-row{grid-template-columns:minmax(5rem,5.8rem) minmax(0,1fr);gap:.5rem}.christianity-gallery-controls{grid-template-columns:minmax(0,1fr);gap:.5rem}.christianity-gallery-drawer{gap:.6rem;padding:max(.72rem,env(safe-area-inset-top)) max(.72rem,env(safe-area-inset-right)) max(.72rem,env(safe-area-inset-bottom)) max(.72rem,env(safe-area-inset-left))}.christianity-gallery-drawer header{align-items:start}.christianity-gallery-drawer h2{font-size:1.2rem;line-height:1.05}.christianity-gallery-controls label{gap:.18rem;font-size:.7rem}.christianity-gallery-controls input,.christianity-gallery-controls select,.christianity-gallery-edition-strip button{min-height:2.05rem}.christianity-gallery-grid{grid-template-columns:repeat(3,minmax(0,5.55rem));justify-content:center;gap:.55rem;scrollbar-gutter:auto;padding:.4rem 0 .8rem}.christianity-gallery-grid .christianity-render-card-button{width:min(100%,5.55rem)}.christianity-offering-card{min-height:7.25rem;padding:.5rem}.christianity-hand-fan--opponent{min-height:5.75rem;padding-bottom:.7rem}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.35rem,15vw,4.25rem);margin-inline:-.72rem}}\n"], dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: LightRippleDirective, selector: "[valLightRipple]" }, { kind: "component", type: ChristianityCardComponent, selector: "val-christianity-card", inputs: ["card", "variant"] }, { kind: "component", type: MiniGameCalloutComponent, selector: "val-mini-game-callout", inputs: ["props"] }, { kind: "component", type: MiniGameScorePopComponent, selector: "val-mini-game-score-pop", inputs: ["props"] }] }); }
|
|
2874
|
+
`, isInline: true, styles: [":host{--christianity-theme-ink: var(--val-text-color, #1f2933);--christianity-theme-surface: #ffffff;--christianity-theme-parchment: #eff6ff;--christianity-theme-olive: #1d4ed8;--christianity-theme-gold: #2563eb;--christianity-theme-gold-soft: rgba(37, 99, 235, .16);--christianity-theme-gold-ring: rgba(37, 99, 235, .44);--christianity-theme-glow: rgba(37, 99, 235, .24);--christianity-theme-focus: #2563eb;--christianity-theme-shadow: rgba(37, 99, 235, .15);--christianity-theme-shadow-strong: rgba(37, 99, 235, .26);--christianity-card-aspect: 5 / 7.45;--christianity-card-back: linear-gradient(135deg, rgba(16, 42, 67, .16), rgba(16, 42, 67, .03)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(16, 42, 67, .11), rgba(16, 42, 67, .02)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);display:block;max-width:100%;min-width:0;overflow-x:clip;color:var(--christianity-theme-ink)}.christianity-shell{box-sizing:border-box;display:grid;gap:.65rem;width:100%;max-width:100%;min-width:0;padding:0;overflow-x:clip;overflow-y:visible}.christianity-shell.has-modal-open{max-height:100dvh;overflow:hidden;overscroll-behavior:contain}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.christianity-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;min-width:0}.christianity-gallery-open{min-height:2.2rem;padding:0 .75rem;border:1px solid var(--christianity-theme-gold-ring);border-radius:999px;background:linear-gradient(180deg,#eff6fffa,#fffffffa),radial-gradient(circle at 20% 0%,var(--christianity-theme-gold-soft),transparent 42%);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800;box-shadow:0 .55rem 1.2rem #2563eb1a}.christianity-splash{min-height:min(34rem,calc(100dvh - 8rem));border:1px solid rgba(37,99,235,.18);border-radius:.9rem;background:radial-gradient(circle at 50% 18%,rgba(37,99,235,.16),transparent 22rem),linear-gradient(180deg,#eff6ffed,#fffffff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #2563eb1f}.christianity-splash{display:grid;place-items:center;align-content:center;gap:1.2rem;padding:2.5rem 1.25rem;text-align:center}.christianity-splash__mark{position:relative;display:grid;grid-template-columns:repeat(3,.74rem);place-content:center;gap:.55rem;width:5.8rem;height:5.8rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(37,99,235,.12),transparent 55%),#ffffff9e;box-shadow:inset 0 0 0 .55rem #fff6,0 1rem 2rem #2563eb1f}.christianity-splash__mark:before,.christianity-splash__mark:after{content:\"\";position:absolute;inset:.42rem;border:1px solid rgba(37,99,235,.16);border-radius:inherit;animation:christianity-loader-ring 1.8s ease-out infinite}.christianity-splash__mark:after{animation-delay:.48s}.christianity-splash__mark span{width:.74rem;height:.74rem;border-radius:999px;background:var(--christianity-theme-focus);box-shadow:0 .35rem .85rem #2563eb38;animation:christianity-loader-dot .96s ease-in-out infinite}.christianity-splash__mark span:nth-child(2){animation-delay:.14s}.christianity-splash__mark span:nth-child(3){animation-delay:.28s}@keyframes christianity-loader-dot{0%,to{opacity:.38;transform:translateY(0) scale(.82)}45%{opacity:1;transform:translateY(-.22rem) scale(1)}}@keyframes christianity-loader-ring{0%{opacity:.48;transform:scale(.72)}to{opacity:0;transform:scale(1.2)}}.christianity-splash span,.christianity-start__copy span{color:var(--christianity-theme-olive);font-size:.76rem;font-weight:900;text-transform:uppercase}.christianity-splash h2,.christianity-start h2,.christianity-start p{margin:0}.christianity-splash h2{margin-top:.2rem;font-size:clamp(1.65rem,7vw,2.7rem);line-height:1}.christianity-splash p{max-width:26rem;margin:.55rem auto 0;color:#1f2933ad;font-size:.96rem}.christianity-start{display:grid;align-content:center;gap:1rem;min-height:min(34rem,calc(100dvh - 8rem));padding:0}.christianity-start__hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,18rem);gap:1rem;align-items:center}.christianity-start__copy{display:grid;gap:.45rem;max-width:36rem}.christianity-start h2{font-size:clamp(1.6rem,6vw,2.5rem);line-height:1.02}.christianity-start__copy p,.christianity-start__cards p,.christianity-start__modes p{color:#1f2933ad;line-height:1.42}.christianity-start__fan{position:relative;display:grid;place-items:center;min-height:13rem;overflow:visible}.christianity-start__fan val-christianity-card{position:absolute;width:clamp(5.7rem,12vw,7.2rem);transform-origin:50% 92%;filter:drop-shadow(0 1rem 1.5rem rgba(82,64,28,.18))}.christianity-start__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.christianity-start__cards article,.christianity-start__modes article{display:grid;gap:.65rem;align-content:start;padding:.95rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#ffffffd1;box-shadow:0 .75rem 1.7rem #52401c14}.christianity-start__cards article{min-height:11rem}.christianity-start__cards strong{font-size:1.05rem}.christianity-start__status{display:flex;flex-wrap:wrap;gap:.45rem}.christianity-start__status span,.christianity-start__modes article>span{display:inline-flex;align-items:center;width:fit-content;min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(37,99,235,.22);border-radius:999px;background:#eff6ffe0;color:#1f2933b8;font-size:.75rem;font-weight:850}.christianity-start__modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.christianity-start__modes article{min-height:8.5rem;background:#f8fafcb8;box-shadow:none;opacity:.82}.christianity-start__modes strong{font-size:.92rem}.christianity-start__modes p{margin:0;font-size:.8rem}.christianity-primary-action,.christianity-secondary-action{justify-self:start;min-height:2.5rem;padding:0 .9rem;border-radius:999px;font:inherit;font-weight:900}.christianity-primary-action{border:1px solid rgba(16,42,67,.16);background:#102a43;color:#fff}.christianity-secondary-action{border:1px solid var(--christianity-theme-gold-ring);background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink)}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-turn-banner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.58rem .72rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:linear-gradient(135deg,#fffffff0,#eff6ffd1),#fffc;box-shadow:0 .65rem 1.25rem #102a4314}.christianity-turn-banner.is-own-turn{border-color:#2563eb47;box-shadow:0 .75rem 1.45rem #2563eb1f,inset 0 0 0 1px #2563eb14}.christianity-turn-banner.is-rival-turn{border-color:#b453093d}.christianity-turn-banner.is-finished{border-color:#16a34a4d}.christianity-turn-banner span{display:block;color:#1f29338f;font-size:.68rem;font-weight:900;text-transform:uppercase}.christianity-turn-banner strong{display:block;color:var(--christianity-theme-ink);font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.05}.christianity-turn-banner p{margin:.12rem 0 0;color:#1f2933ad;font-size:.78rem;line-height:1.25}.christianity-options-button,.christianity-options-menu button{min-height:2.15rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffeb;color:var(--christianity-theme-ink);font:inherit;font-size:.78rem;font-weight:900}.christianity-options-button{padding:0 .78rem}.christianity-options-menu{position:absolute;right:.55rem;top:calc(100% + .35rem);z-index:18;display:grid;gap:.35rem;min-width:9.5rem;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#fffffffa;box-shadow:0 1rem 2rem #102a432e}.christianity-options-menu button{border-radius:.55rem;text-align:left}.christianity-options-menu button:disabled{opacity:.45}.christianity-table{box-sizing:border-box;position:relative;display:grid;gap:.45rem;width:100%;max-width:100%;min-width:0;padding:.45rem .35rem;border-radius:.75rem;background:radial-gradient(circle at 50% 44%,rgba(255,255,255,.2),transparent 44%),linear-gradient(180deg,#c8ddf7,#b9d4f1);box-shadow:inset 0 0 0 1px #ffffff57,inset 0 1.4rem 3rem #ffffff29;overflow-x:clip;overflow-y:visible}.christianity-setup-panel,.christianity-result-panel{position:absolute;inset:.8rem;z-index:14;display:grid;align-content:center;justify-items:center;gap:.85rem;padding:1rem;border:1px solid rgba(37,99,235,.16);border-radius:.9rem;background:linear-gradient(180deg,#f8fafcf5,#eff6fff0),#fffffff0;box-shadow:0 1.25rem 2.4rem #102a432e;text-align:center}.christianity-setup-panel span,.christianity-result-panel span{color:#2563ebc2;font-size:.72rem;font-weight:1000;text-transform:uppercase}.christianity-setup-panel h2,.christianity-result-panel h2{margin:.18rem 0 0;color:var(--christianity-theme-ink);font-size:clamp(1.45rem,3vw,2.35rem);line-height:1}.christianity-setup-panel p,.christianity-result-panel p{max-width:31rem;margin:.35rem auto 0;color:#1f2933ad;font-size:.95rem;line-height:1.35}.christianity-result-panel>div:last-child{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem}.christianity-leader-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,7.2rem));gap:.65rem;justify-content:center;width:min(100%,32rem)}.christianity-leader-choice-card{width:100%;border:0;background:transparent;color:inherit;font:inherit}.christianity-leader-choice-card:hover val-christianity-card{transform:translateY(-.25rem);filter:drop-shadow(0 .75rem 1.25rem rgba(37,99,235,.22))}.christianity-impact-layer{position:absolute;inset:0;z-index:30;pointer-events:none}.christianity-combat-trail{position:absolute;inset:0;z-index:2;--christianity-combat-trail-x: 50%;--christianity-combat-trail-y: 72%;--christianity-combat-trail-mid-x: 50%;--christianity-combat-trail-mid-y: 50%;--christianity-combat-trail-length: 34%;--christianity-combat-trail-angle: -90deg;--christianity-combat-trail-color: rgba(255, 255, 255, .96);--christianity-combat-trail-glow: rgba(96, 165, 250, .56);--christianity-combat-trail-hit: rgba(220, 38, 38, .42)}.christianity-combat-trail.is-leader-target{--christianity-combat-trail-color: rgba(255, 255, 255, .98);--christianity-combat-trail-glow: rgba(250, 204, 21, .52);--christianity-combat-trail-hit: rgba(250, 204, 21, .38)}.christianity-combat-trail.is-character-target{--christianity-combat-trail-color: rgba(219, 234, 254, .98);--christianity-combat-trail-glow: rgba(96, 165, 250, .58);--christianity-combat-trail-hit: rgba(220, 38, 38, .38)}.christianity-combat-trail:before{position:absolute;left:var(--christianity-combat-trail-mid-x);top:var(--christianity-combat-trail-mid-y);width:clamp(2.8rem,9vw,5.4rem);height:clamp(2.8rem,9vw,5.4rem);border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.72),transparent 28%),radial-gradient(circle,var(--christianity-combat-trail-hit),transparent 62%);content:\"\";opacity:0;transform:translate(-50%,-50%) scale(.58);animation:christianity-combat-burst .88s ease-out both}.christianity-combat-trail>span{position:absolute;left:var(--christianity-combat-trail-x);top:var(--christianity-combat-trail-y);width:var(--christianity-combat-trail-length);height:.36rem;border-radius:999px;background:linear-gradient(90deg,transparent 0 5%,rgba(255,255,255,.92) 42%,var(--christianity-combat-trail-color) 72%,rgba(96,165,250,.72)),repeating-linear-gradient(90deg,transparent 0 .7rem,rgba(255,255,255,.66) .7rem .92rem);box-shadow:0 0 .72rem var(--christianity-combat-trail-glow),0 0 1.45rem var(--christianity-combat-trail-glow);transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0);transform-origin:0 50%;animation:christianity-combat-arrow-trail .84s ease-out both}.christianity-combat-trail>span:after{position:absolute;top:50%;right:-.18rem;width:.95rem;height:.95rem;border-top:.28rem solid var(--christianity-combat-trail-color);border-right:.28rem solid var(--christianity-combat-trail-color);content:\"\";filter:drop-shadow(0 0 .45rem var(--christianity-combat-trail-glow));transform:translateY(-50%) rotate(45deg)}@keyframes christianity-combat-arrow-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0)}24%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(.52)}66%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1)}to{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1.04)}}@keyframes christianity-combat-burst{0%,42%{opacity:0;transform:translate(-50%,-50%) scale(.58) rotate(0)}58%{opacity:1;transform:translate(-50%,-50%) scale(.98) rotate(4deg)}to{opacity:0;transform:translate(-50%,-50%) scale(1.42) rotate(12deg)}}@media (prefers-reduced-motion: reduce){.christianity-combat-trail,.christianity-combat-trail:before,.christianity-combat-trail>span,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card,.christianity-floating-card-shell.is-sliding-next .christianity-floating-card,.christianity-splash__mark:before,.christianity-splash__mark:after,.christianity-splash__mark span{animation:none!important}}.christianity-player-side{box-sizing:border-box;display:grid;gap:.35rem;width:100%;max-width:100%;min-width:0;padding:.35rem .3rem;border-radius:.7rem;background:linear-gradient(180deg,#ffffff47,#ffffff24),#4a7ab414;grid-template-rows:minmax(7rem,1fr) auto;min-height:13.75rem}.christianity-player-side--opponent{grid-template-rows:auto minmax(7rem,1fr)}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{--christianity-battle-card-width: clamp(5.35rem, 10.5vw, 7.75rem);box-sizing:border-box;display:grid;grid-template-columns:repeat(4,var(--christianity-battle-card-width));gap:.5rem;align-items:center;justify-content:center;width:100%;max-width:100%;min-width:0;overflow:hidden;min-height:clamp(10rem,19vw,12.4rem);padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff6b,#ffffff3d),#1f4f8914;transition:background .16s ease,box-shadow .16s ease}.christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#fffaf0f5,#ffffffd6),#ffffffc2;box-shadow:inset 0 0 0 .14rem var(--christianity-theme-gold-soft),0 .8rem 1.7rem #5f6f2a1f}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff57,#fff3),#1f4f8914}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .18rem var(--christianity-theme-gold-soft),0 .85rem 1.4rem var(--christianity-theme-shadow)}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{display:grid;place-items:center;justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff2e;color:inherit;font:inherit;opacity:.62}.christianity-slot--play-target{position:relative;opacity:1;border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0eb,#f8fafcd1),#ffffffb3;color:#5d4305;font-weight:800;overflow:hidden;box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-slot--play-target:before{content:\"\";position:absolute;inset:.35rem;border:1px solid rgba(214,162,29,.22);border-radius:.4rem;background:linear-gradient(135deg,rgba(214,162,29,.1),transparent 46%),radial-gradient(circle at 50% 42%,var(--christianity-theme-glow),transparent 58%)}.christianity-slot--play-target span{position:relative;z-index:2;padding:.16rem .44rem;border-radius:999px;background:#ffffffc7;font-size:.78rem}@keyframes christianity-target-pulse{0%,to{box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow)}50%{box-shadow:inset 0 0 0 .16rem #d6a21d57,0 .9rem 1.65rem var(--christianity-theme-shadow-strong)}}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{padding:.75rem;border-radius:.75rem;background:#ffffffeb}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-actions button{pointer-events:auto;border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-actions button:disabled{display:none}.christianity-end-turn{border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:10.8rem;padding:.25rem .25rem 2.1rem;isolation:isolate;overflow:visible}.christianity-hand-shelf{position:relative;display:grid;z-index:12;min-height:12rem;margin-top:-1.15rem;padding:1.45rem .25rem 1rem;overflow:visible}.christianity-hand-shelf--opponent{z-index:8;min-height:6.85rem;margin-top:0;margin-bottom:0;padding:.45rem .25rem .85rem}.christianity-hand-fan--opponent{min-height:5.9rem;padding-bottom:.75rem;align-items:start}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.7rem,12vw,4.9rem);aspect-ratio:var(--christianity-card-aspect);margin-inline:-.9rem;transform-origin:50% 120%}.christianity-hand-fan--opponent .christianity-hidden-card-button:first-child{margin-left:0}.christianity-hand-fan--opponent .christianity-hidden-card-button:last-child{margin-right:0}.christianity-card-preview-card,.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-render-card-button{display:block;padding:0;overflow:visible;border:0;background:transparent;box-shadow:none}.christianity-render-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-gallery-card-button{display:block;width:min(100%,6.8rem);min-width:0;aspect-ratio:var(--christianity-card-aspect);padding:0;overflow:visible;border:0;background:transparent;color:inherit;font:inherit;text-align:left;box-shadow:none}.christianity-gallery-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-card-preview-card--hand.christianity-render-card-button,.christianity-card-preview-card--battle.christianity-render-card-button,.christianity-leader-card.christianity-render-card-button{aspect-ratio:var(--christianity-card-aspect)}.christianity-card-preview-card--hand.christianity-render-card-button:hover val-christianity-card,.christianity-card-preview-card--hand.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-target val-christianity-card{filter:drop-shadow(0 0 .45rem rgba(37,99,235,.45)) drop-shadow(0 .55rem 1rem rgba(37,99,235,.22))}.christianity-card-preview-card--battle.christianity-render-card-button.is-ready-attacker val-christianity-card{filter:drop-shadow(0 0 .24rem rgba(22,163,74,.32)) drop-shadow(0 .45rem .8rem rgba(22,163,74,.16))}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected{transform:translateY(-.28rem)}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card{filter:drop-shadow(0 0 .4rem rgba(250,204,21,.52)) drop-shadow(0 .65rem 1rem rgba(37,99,235,.24))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker{z-index:8;pointer-events:none}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card{animation:christianity-combat-lunge .98s cubic-bezier(.2,.78,.2,1) both;filter:drop-shadow(0 0 .5rem rgba(250,204,21,.72)) drop-shadow(0 1rem 1.4rem rgba(16,42,67,.28))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card{animation:christianity-combat-impact .98s ease-out both;filter:drop-shadow(0 0 .5rem rgba(220,38,38,.48)) drop-shadow(0 .75rem 1.1rem rgba(220,38,38,.18))}@keyframes christianity-combat-lunge{0%{transform:translateZ(0) rotate(0) scale(1)}24%{transform:translate3d(0,-1.4rem,0) rotate(-4deg) scale(1.08)}52%{transform:translate3d(0,-4.9rem,0) rotate(7deg) scale(1.12)}68%{transform:translate3d(0,-3.6rem,0) rotate(-3deg) scale(1.04)}to{transform:translateZ(0) rotate(0) scale(1)}}@keyframes christianity-combat-impact{0%,42%{transform:translateZ(0) scale(1)}54%{transform:translate3d(.16rem,-.12rem,0) rotate(2deg) scale(1.04)}64%{transform:translate3d(-.14rem,.1rem,0) rotate(-2deg) scale(.98)}to{transform:translateZ(0) rotate(0) scale(1)}}.christianity-leader-card.christianity-render-card-button.is-protected-target{opacity:.82}.christianity-leader-card.christianity-render-card-button.is-protected-target val-christianity-card{filter:grayscale(.22) drop-shadow(0 0 .28rem rgba(100,116,139,.26))}.christianity-card-frame{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;overflow:hidden;padding:.48rem;text-align:left;background:linear-gradient(180deg,#fffffffa,#f8fafcfa),radial-gradient(circle at 15% 0%,rgba(214,162,29,.12),transparent 44%);box-shadow:0 .5rem 1.25rem #2430441a,inset 0 0 0 .18rem #ffffff9e}.christianity-card-frame-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.16rem;align-items:start;min-width:0}.christianity-card-frame-header small{grid-column:1;min-width:0;overflow:hidden;color:#1f2933a3;font-size:clamp(.52rem,1.5vw,.68rem);line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-header strong{grid-column:1;justify-self:start;align-self:start;min-width:0;padding:0;overflow:hidden;border-radius:0;background:transparent;font-size:clamp(.82rem,2.5vw,1.05rem);line-height:1.02;text-overflow:ellipsis;white-space:nowrap}.christianity-card-preview-card--hand .christianity-card-frame-header strong,.christianity-card-preview-card--battle .christianity-card-frame-header strong,.christianity-leader-card .christianity-card-frame-header strong{display:-webkit-box;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-preview-card--hand .christianity-card-frame-header small{text-transform:uppercase}.christianity-card-preview-card--hand .christianity-card-frame-art>span{display:-webkit-box;max-width:88%;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-frame-header span{grid-column:2;grid-row:1 / span 2;display:grid;place-items:center;min-width:1.3rem;height:1.3rem;padding:0 .22rem;border-radius:999px;background:#ffd91a;color:#243044;font-size:.8rem;font-weight:900;line-height:1;box-shadow:inset 0 -.08rem #52401c2e}.christianity-card-frame-header span.is-offering-pips,.christianity-full-card-cost.is-offering-pips,.christianity-offering-card span.is-offering-pips{grid-auto-flow:column;gap:.14rem;min-width:auto;padding:0 .28rem}.christianity-card-frame-header span.is-offering-pips i,.christianity-full-card-cost.is-offering-pips i,.christianity-offering-card span.is-offering-pips i,.christianity-full-card-pips i{display:block;width:.72rem;height:.72rem;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9) 0 .12rem,transparent .13rem),#ffd91a;box-shadow:inset 0 -.08rem #52401c2e,0 .12rem .24rem #102a431a}.christianity-card-frame-art{position:relative;display:grid;place-items:center;min-height:0;overflow:hidden;border-radius:.36rem;background:linear-gradient(135deg,#5f6f2a2e,#d6a21d24),radial-gradient(circle at 50% 18%,rgba(255,255,255,.72),transparent 48%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-card-frame-art>span{max-width:78%;overflow:hidden;color:#2430447a;font-size:clamp(.82rem,2.2vw,1.05rem);font-weight:900;line-height:1.02;text-align:center;text-overflow:ellipsis}.christianity-card-frame-art small{position:absolute;right:0;bottom:.28rem;max-width:78%;padding:.1rem .34rem;overflow:hidden;border-radius:999px 0 0 999px;background:#ffffffe6;color:#1f2933a8;font-size:.48rem;font-style:italic;font-weight:900;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-card-frame-effect{display:grid;align-content:center;gap:.1rem;min-height:1.45rem;padding:.24rem;overflow:hidden;border-radius:.34rem;background:radial-gradient(circle at 50% 70%,rgba(36,48,68,.06),transparent 44%),#ffffffdb}.christianity-card-frame-effect strong{justify-self:end;align-self:end;padding:.12rem .32rem;border-radius:999px;background:#edf2f7;font-size:clamp(.66rem,2vw,.82rem);line-height:1.05}.christianity-card-frame-effect p{margin:0;overflow:hidden;color:#1f2933b8;font-size:.58rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-footer{display:flex;justify-content:space-between;gap:.22rem;color:#1f293385;font-size:.46rem;font-weight:800;line-height:1}.christianity-card-frame--battle{gap:.22rem;padding:.42rem}.christianity-card-frame--battle .christianity-card-frame-art{min-height:2.6rem}.christianity-card-frame--leader .christianity-card-frame-art{background:linear-gradient(135deg,#2563eb24,#d6a21d29),radial-gradient(circle at 50% 18%,rgba(255,255,255,.78),transparent 48%),#e7eef8}.christianity-card-frame--list{width:clamp(4.4rem,22vw,5.8rem);padding:.38rem}.christianity-card-frame--list .christianity-card-frame-art{min-height:2.5rem}.christianity-hand-card-wrap{position:relative;display:grid;justify-items:center;flex:0 0 auto;margin-inline:-.42rem;padding-bottom:2rem;transform-origin:50% 115%;transition:transform .16s ease,filter .16s ease}.christianity-hand-card-wrap:hover,.christianity-hand-card-wrap.is-selected,.christianity-hand-card-wrap.is-dragging{z-index:3}.christianity-hand-card-wrap:hover .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-selected .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-dragging .christianity-card-preview-card--hand{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .12rem var(--christianity-theme-gold-soft),0 1rem 2rem var(--christianity-theme-shadow);transform:translateY(-.5rem) scale(1.045)}.christianity-card-preview-card--hand{cursor:grab;touch-action:none}.christianity-card-preview-card--hand:active{cursor:grabbing}.christianity-card-preview-card--hand.cdk-drag-disabled{cursor:not-allowed}.christianity-card-drag-preview,.christianity-card-preview-card.cdk-drag-preview{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;box-shadow:0 0 0 .16rem #fff4c2ad,0 1.5rem 3rem var(--christianity-theme-shadow-strong);transform:rotate(2deg) scale(1.03)}.christianity-card-drag-preview val-christianity-card{display:block;width:100%;height:100%}.christianity-card-drag-placeholder,.christianity-card-preview-card.cdk-drag-placeholder{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;background:#94a3b81f;opacity:.22}.christianity-slot.cdk-drop-list-dragging,.christianity-offering-drop-target.cdk-drop-list-dragging{border-color:var(--christianity-theme-gold-ring)}.christianity-slot.cdk-drop-list-receiving,.christianity-offering-drop-target.cdk-drop-list-receiving{box-shadow:inset 0 0 0 .18rem #d6a21d57,0 1rem 1.9rem var(--christianity-theme-shadow-strong)}.christianity-card-eye{position:absolute;right:50%;bottom:.38rem;width:2.15rem;height:1.55rem;border:1px solid color-mix(in srgb,var(--christianity-theme-focus) 52%,transparent);border-radius:999px;background:#fffffff0;box-shadow:0 .55rem 1.1rem #102a4324;opacity:0;transform:translate(50%,-.2rem) scale(.92);transition:opacity .14s ease,transform .14s ease,border-color .14s ease}.christianity-card-eye:before{content:\"\";position:absolute;top:50%;left:50%;width:1.1rem;height:1.1rem;border:.12rem solid var(--christianity-theme-focus);border-radius:82% 0;background:#fffffff0;transform:translate(-50%,-50%) rotate(45deg)}.christianity-card-eye:after{content:\"\";position:absolute;top:50%;left:50%;width:.42rem;height:.42rem;border:.09rem solid rgba(255,255,255,.95);border-radius:999px;background:radial-gradient(circle at 35% 32%,#ffffff 0 .06rem,transparent .07rem),var(--christianity-theme-focus);transform:translate(-50%,-50%)}.christianity-hand-card-wrap:hover .christianity-card-eye,.christianity-hand-card-wrap.is-selected .christianity-card-eye,.christianity-card-eye:focus-visible{opacity:1;transform:translate(50%) scale(1)}.christianity-offering-drop-target{display:grid;width:min(100%,6.45rem);height:8.05rem;min-height:0;max-height:8.05rem;border:1px solid transparent;border-radius:.64rem;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.christianity-offering-drop-target.is-play-target{border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0f5,#fffffff0),radial-gradient(circle at 82% 14%,rgba(250,204,21,.28) 0 .7rem,transparent .72rem);box-shadow:inset 0 0 0 .12rem #d6a21d3d,0 .8rem 1.55rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-offering-drop-target>.cdk-drag-placeholder{display:none}.christianity-card-frame--back,.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:0;aspect-ratio:var(--christianity-card-aspect);place-items:center;padding:.55rem;overflow:hidden;box-shadow:0 .8rem 1.55rem #24304424;transform-origin:50% -18%;background:var(--christianity-card-back)}.christianity-card-frame--back:before,.christianity-card-preview-card--back:before{content:\"\";position:absolute;inset:.5rem;border:1px solid rgba(16,42,67,.12);border-radius:.38rem;background:linear-gradient(180deg,#ffffff2e,#ffffff0a);box-shadow:inset 0 0 0 .12rem #ffffff1f}.christianity-card-preview-card--battle{justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;min-width:0;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);margin-inline:0}.christianity-card-preview-card>span,.christianity-card-mini>span,.christianity-offering-pile>span,.christianity-offering-card>span,.christianity-leader-card>span,.christianity-zone-card>span,.christianity-zone-pile>span{position:relative;z-index:2;align-self:start;font-weight:700;line-height:1.05}.christianity-card-preview-card>strong,.christianity-card-mini>strong,.christianity-offering-pile>strong,.christianity-offering-card>strong,.christianity-leader-card>strong,.christianity-zone-card>strong,.christianity-zone-pile>strong{position:relative;z-index:3;justify-self:end;align-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{box-sizing:border-box;display:grid;grid-template-columns:minmax(5.3rem,6.9rem) minmax(5rem,1fr) minmax(4.9rem,6.5rem);gap:.65rem;align-items:end;justify-items:center;width:100%;max-width:100%;min-width:0}.christianity-player-rack--opponent{align-items:start}.christianity-hand-meter{position:absolute;top:0;right:.35rem;z-index:4;display:inline-grid;grid-auto-flow:column;gap:.25rem;align-items:center;min-height:1.7rem;padding:.18rem .46rem;border:1px solid rgba(36,48,68,.12);border-radius:999px;background:#ffffffe6;box-shadow:0 .35rem .8rem #102a4314}.christianity-hand-meter--opponent{top:.15rem}.christianity-hand-meter span{color:#1f293394;font-size:.68rem}.christianity-hand-meter strong{font-size:.86rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:grid;justify-items:center;justify-self:center;width:min(100%,6.9rem)}.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-frame{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;align-content:stretch}.christianity-offering-pile,.christianity-zone-card,.christianity-zone-pile{grid-template-rows:auto minmax(2.6rem,1fr) auto;align-content:stretch;gap:.32rem}.christianity-card-mini{width:3.5rem}.christianity-offering-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;justify-self:center;width:min(100%,6.75rem);height:8.15rem;max-height:8.15rem;min-height:0;padding:.72rem .64rem .62rem;background:linear-gradient(180deg,#fff,#f8fafc),linear-gradient(135deg,rgba(250,204,21,.18),transparent 42%)}.christianity-offering-drop-target .christianity-offering-pile{width:100%;height:100%;max-height:none}.christianity-offering-pile>span:not(.christianity-empty-card-slot){position:relative;z-index:3;align-self:end;justify-self:stretch;max-width:100%;overflow:hidden;padding:.12rem .28rem 0;color:#1f2933b8;font-size:clamp(.72rem,2.3vw,.88rem);font-weight:800;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-pile>strong{position:absolute;right:.5rem;bottom:.5rem;z-index:3;min-width:1.7rem;padding:.13rem .38rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-offering-pile>small{position:absolute;bottom:.56rem;left:.5rem;z-index:3;max-width:calc(100% - 2.7rem);overflow:hidden;color:#1f293394;font-size:.58rem;font-weight:850;line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-slot>.cdk-drag-placeholder{display:none}.christianity-offering-pile val-christianity-card{position:absolute;top:1.72rem;left:50%;z-index:1;width:clamp(3rem,10vw,3.95rem);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .42rem .8rem rgba(16,42,67,.14))}.christianity-offering-pile:before,.christianity-offering-pile:after{content:\"\";position:absolute;top:1.82rem;left:50%;z-index:0;width:clamp(3rem,10vw,3.95rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.35rem;background:#f8fafcf0;transform:translate(calc(-50% + .24rem)) translateY(.1rem) rotate(4deg)}.christianity-offering-pile:after{background:var(--christianity-card-back);transform:translate(calc(-50% - .24rem)) translateY(.22rem) rotate(-4deg)}.christianity-offering-pile.is-empty-zone:before,.christianity-offering-pile.is-empty-zone:after{display:none}.christianity-leader-card{align-self:center;justify-self:center;width:clamp(5.25rem,9vw,7rem);min-height:0;aspect-ratio:var(--christianity-card-aspect)}.christianity-attack-drop-target{display:grid;justify-items:center;min-width:0}.christianity-rack-spacer{display:block;min-height:1px}.christianity-battle-zone{grid-template-columns:repeat(4,var(--christianity-battle-card-width))}.christianity-shared-zone{box-sizing:border-box;display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch;width:100%;max-width:100%;min-width:0}.christianity-zone-card,.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;min-height:7.65rem;padding:.78rem .62rem .62rem;border-color:#24304414;background:linear-gradient(180deg,#ffffff8a,#f8fafc5c),#ffffff3d}.christianity-zone-pile{box-shadow:inset 0 0 0 999px #ffffff0a,0 .45rem 1rem #102a430f}.christianity-zone-card.is-play-target{border-color:#2563eb61;box-shadow:inset 0 0 0 999px #2563eb14,0 0 0 .18rem #2563eb1f}.christianity-zone-pile--history.has-new-card{animation:christianity-history-pulse .9s ease-out both}@keyframes christianity-history-pulse{0%{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}28%{box-shadow:inset 0 0 0 999px #ffffff29,0 0 0 .25rem #2563eb2e;transform:scale(1.025)}to{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}}.christianity-zone-card val-christianity-card,.christianity-zone-pile val-christianity-card{position:absolute;top:.62rem;left:50%;z-index:1;width:clamp(4rem,9vw,5.4rem);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .35rem .75rem rgba(16,42,67,.12))}.christianity-zone-pile--deck val-christianity-card{transform:translate(-50%) rotate(3deg)}.christianity-zone-card>span:not(.christianity-empty-card-slot),.christianity-zone-pile>span:not(.christianity-empty-card-slot){position:relative;z-index:3;justify-self:start;max-width:calc(100% - 1.55rem);overflow:hidden;color:#1f2933d6;font-size:clamp(.76rem,2.5vw,.92rem);text-overflow:ellipsis;white-space:nowrap}.christianity-zone-card>strong,.christianity-zone-pile>strong{position:absolute;right:.45rem;bottom:.45rem;z-index:4;min-width:1.65rem;padding:.12rem .4rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-zone-card>em{position:relative;z-index:4;justify-self:center;align-self:end;padding:.12rem .38rem;border-radius:999px;background:#2563eb1f;color:var(--christianity-theme-focus);font-size:.68rem;font-style:normal;font-weight:900}.christianity-empty-card-slot{position:absolute;top:.72rem;left:50%;z-index:1;display:block;width:clamp(4rem,9vw,5.4rem);aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(16,42,67,.22);border-radius:.35rem;background:#ffffff5c;transform:translate(-50%)}.christianity-zone-pile:before,.christianity-zone-pile:after{content:\"\";position:absolute;top:.82rem;left:50%;z-index:0;width:clamp(3.3rem,16vw,4.35rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.35rem;background:#f8fafcf0;transform:translate(calc(-50% + .22rem)) rotate(4deg)}.christianity-zone-pile:after{background:var(--christianity-card-back);transform:translate(calc(-50% - .22rem)) translateY(.16rem) rotate(-3deg)}.christianity-zone-pile.is-empty-zone:before,.christianity-zone-pile.is-empty-zone:after{display:none}.christianity-floating-card-shell{position:fixed;top:50%;left:50%;z-index:10020;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.55rem;width:min(56rem,calc(100vw - 1.25rem));max-height:calc(100dvh - 4.25rem);overflow:visible;overscroll-behavior:contain;scrollbar-width:none;transform:translate(-50%,-50%)}.christianity-floating-card-shell::-webkit-scrollbar{display:none}.christianity-floating-card-shell.is-history-preview{width:min(56rem,calc(100vw - 1.25rem))}.christianity-preview-topbar{position:relative;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:.65rem;min-height:2.05rem}.christianity-preview-position{display:inline-grid;place-items:center;min-height:2rem;min-width:3.15rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933b8;font-size:.76rem;font-weight:900;box-shadow:0 .45rem 1rem #102a431a}.christianity-floating-card{position:relative;z-index:2;display:block;width:min(17.5rem,calc(52dvh - 3rem),calc(100vw - 7rem));min-height:0;padding:0;border:0;border-radius:.75rem;background:transparent;box-shadow:0 0 2.2rem var(--christianity-theme-glow);touch-action:none;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg));transition:transform .14s ease-out}.christianity-preview-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(13rem,17rem);gap:1rem;align-items:center;min-height:0}.christianity-preview-stage{position:relative;display:grid;place-items:center;justify-self:center;width:min(100%,31rem);min-width:0;min-height:0;padding-inline:4.4rem;perspective:52rem}.christianity-preview-stage:before{content:\"\";position:absolute;inset:10% 2.35rem;z-index:0;border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.26),transparent 58%),linear-gradient(90deg,transparent,rgba(37,99,235,.1),transparent);opacity:.8;pointer-events:none}.christianity-preview-ghost{position:absolute;z-index:1;width:min(13rem,calc(42dvh - 3rem),34vw);opacity:.34;pointer-events:none;filter:blur(.02rem) saturate(.9);transition:transform .36s cubic-bezier(.2,.84,.22,1),opacity .36s ease}.christianity-preview-ghost--previous{transform:translate(-86%) rotateY(22deg) rotate(-4deg) scale(.8)}.christianity-preview-ghost--next{transform:translate(86%) rotateY(-22deg) rotate(4deg) scale(.8)}.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card{animation:christianity-preview-slide-previous .36s cubic-bezier(.2,.84,.22,1) both}.christianity-floating-card-shell.is-sliding-next .christianity-floating-card{animation:christianity-preview-slide-next .36s cubic-bezier(.2,.84,.22,1) both}@keyframes christianity-preview-slide-previous{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) - 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(calc(var(--preview-rotate-y, 0deg) + 10deg)) scale(.92)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg)) scale(1)}}@keyframes christianity-preview-slide-next{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) + 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(calc(var(--preview-rotate-y, 0deg) - 10deg)) scale(.92)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg)) scale(1)}}.christianity-preview-side{display:grid;min-width:0}.christianity-floating-card val-christianity-card{display:block;width:100%;min-height:0}.christianity-full-card-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.42rem;align-items:center}.christianity-full-card-header strong{min-width:0;display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;text-overflow:clip;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:clamp(1.25rem,5vw,1.85rem);line-height:1.04}.christianity-full-card-type-icon,.christianity-full-card-cost{display:grid;place-items:center;border-radius:999px}.christianity-full-card-type-icon{width:1.6rem;height:1.6rem;background:radial-gradient(circle at 50% 50%,rgba(95,111,42,.72) 0 .22rem,transparent .24rem),#2430441a}.christianity-full-card-type-icon img{width:1rem;height:1rem;object-fit:contain}.christianity-full-card-cost{min-width:2.1rem;height:2.1rem;padding:0 .36rem;background:#ffd91a;color:#243044;font-size:1.1rem;font-weight:900;box-shadow:inset 0 -.12rem #52401c2e}.christianity-full-card-art{position:relative;display:grid;place-items:center;min-height:9rem;overflow:hidden;border-radius:.48rem;background:linear-gradient(135deg,#5f6f2a33,#d6a21d29),radial-gradient(circle at 50% 25%,rgba(255,255,255,.76),transparent 42%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-full-card-art img{width:100%;height:100%;object-fit:cover}.christianity-full-card-art>span{max-width:80%;color:#24304494;font-size:clamp(1.1rem,5vw,1.8rem);font-weight:900;line-height:1.05;text-align:center}.christianity-full-card-art small{position:absolute;right:0;bottom:.55rem;min-width:5rem;padding:.16rem .48rem;border-radius:999px 0 0 999px;background:#ffffffe6;box-shadow:0 .3rem .8rem #102a431f;color:#1f2933bd;font-size:.68rem;font-style:italic;font-weight:900;text-align:center;text-transform:uppercase}.christianity-full-card-verse,.christianity-full-card-effect{display:grid;gap:.32rem}.christianity-full-card-verse p,.christianity-full-card-effect p{margin:0;line-height:1.25}.christianity-full-card-verse{color:#171923;font-family:Georgia,Times New Roman,serif;font-size:clamp(.72rem,2.7vw,.86rem)}.christianity-full-card-verse strong{font-family:inherit;font-size:.78rem;font-weight:900}.christianity-full-card-effect{position:relative;align-content:start;min-height:7rem;padding:.6rem .7rem;overflow:hidden;border-radius:.45rem;background:radial-gradient(circle at 50% 72%,rgba(36,48,68,.07),transparent 34%),#ffffffdb}.christianity-full-card-stats{display:flex;gap:1rem;min-height:1.35rem}.christianity-full-card-stats strong{font-size:1rem;line-height:1}.christianity-full-card-stats .christianity-full-card-pips{display:inline-grid;grid-auto-flow:column;gap:.2rem;justify-self:start;padding:0;background:transparent}.christianity-full-card-effect>div:last-of-type{display:grid;gap:.12rem}.christianity-full-card-effect>div:last-of-type strong{font-size:.82rem}.christianity-full-card-effect p{font-size:clamp(.78rem,2.9vw,.92rem)}.christianity-full-card-rarity{position:absolute;top:.62rem;right:.62rem;width:.46rem;height:.46rem;border-radius:.12rem;transform:rotate(45deg)}.christianity-full-card-rarity.is-normal{background:#d1d5db}.christianity-full-card-rarity.is-uncommon{background:#22c55e}.christianity-full-card-rarity.is-rare{background:#3b82f6}.christianity-full-card-rarity.is-legendary{background:#eab308}.christianity-full-card-footer{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:.34rem;align-items:center;color:#1f2933ad;font-size:.58rem;line-height:1;text-transform:uppercase}.christianity-full-card-footer span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-floating-card-close{position:relative;z-index:8;min-height:2rem;padding:0 .6rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .45rem 1rem #102a431a}.christianity-preview-nav{position:absolute;top:50%;z-index:7;display:grid;place-items:center;width:2.55rem;height:2.55rem;border:1px solid rgba(37,99,235,.28);border-radius:999px;background:linear-gradient(180deg,#fffffffa,#eff6fff0),radial-gradient(circle at 35% 20%,rgba(37,99,235,.18),transparent 52%);color:var(--christianity-theme-focus);font:inherit;font-size:1.2rem;font-weight:1000;box-shadow:0 .75rem 1.4rem #102a4324,inset 0 0 0 1px #ffffff70;transform:translateY(-50%)}.christianity-preview-nav:hover{border-color:#2563eb6b;box-shadow:0 .95rem 1.65rem #102a432e,0 0 0 .16rem #2563eb14,inset 0 0 0 1px #ffffff9e}.christianity-preview-nav--previous{left:.6rem}.christianity-preview-nav--next{right:.6rem}.christianity-preview-backdrop,.christianity-history-backdrop,.christianity-info-backdrop{position:fixed;inset:0;border:0;border-radius:0;background:#0f172aa3}.christianity-preview-backdrop{z-index:10010;backdrop-filter:blur(.12rem)}.christianity-info-backdrop{z-index:50}.christianity-info-panel{position:fixed;top:50%;left:50%;z-index:51;width:min(31rem,calc(100vw - 1.25rem));max-height:min(34rem,calc(100vh - 2rem));padding-top:2.35rem;transform:translate(-50%,-50%)}.christianity-info-close{position:absolute;top:0;right:.15rem;z-index:2}.christianity-rule-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem;max-height:inherit;padding:1rem;overflow-y:auto;border:1px solid rgba(36,48,68,.14);border-radius:.9rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 38%);box-shadow:0 1.2rem 2.6rem #102a433d,inset 0 0 0 .25rem #ffffff85}.christianity-rule-note-icon{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:999px;background:color-mix(in srgb,var(--christianity-theme-focus) 12%,#ffffff);color:var(--christianity-theme-focus);font-size:1rem;font-weight:900;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent)}.christianity-rule-note small,.christianity-rule-note strong,.christianity-rule-note p,.christianity-rule-note h2{margin:0}.christianity-rule-note small{color:#1f29339e;font-size:.78rem;font-weight:800;text-transform:uppercase}.christianity-rule-note h2{margin-top:.18rem;font-size:clamp(1.5rem,7vw,2.2rem);line-height:1.05}.christianity-rule-note strong{display:inline-flex;width:fit-content;margin-top:.55rem;padding:.22rem .55rem;border-radius:999px;background:#edf2f7;font-size:.92rem}.christianity-rule-note p{margin-top:.75rem;color:#1f2933c7;line-height:1.45}.christianity-rule-note ul{display:grid;gap:.45rem;margin:.8rem 0 0;padding-left:1.05rem;color:#1f2933c7;line-height:1.35}.christianity-floating-card>small,.christianity-floating-card>span{color:#1f2933a3}.christianity-floating-card>strong{font-size:clamp(1.55rem,8vw,2.35rem);line-height:1.05}.christianity-floating-card>p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-preview-rule-note{position:relative;z-index:4;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;max-height:min(18rem,54dvh);padding:.68rem .76rem;overflow-y:auto;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:linear-gradient(180deg,#ffffffe0,#f8fafcd1),radial-gradient(circle at 8% 0%,rgba(37,99,235,.07),transparent 44%);box-shadow:0 .55rem 1.2rem #102a4314}.christianity-preview-abilities{position:relative;z-index:4;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:.5rem;max-height:min(13rem,30dvh);min-height:0;padding:.72rem .78rem .78rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:.75rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 44%);box-shadow:0 .75rem 1.6rem #102a431f}.christianity-preview-abilities-header{display:flex;align-items:center;justify-content:space-between;gap:.7rem;min-width:0}.christianity-preview-abilities-header>div{display:grid;gap:.1rem;min-width:0}.christianity-preview-abilities small,.christianity-preview-abilities p,.christianity-preview-abilities-header span,.christianity-preview-ability-card strong{margin:0}.christianity-preview-abilities small{color:#1f293394;font-size:.68rem;font-weight:900;text-transform:uppercase}.christianity-preview-abilities-header span{color:#1f293385;font-size:.72rem;font-weight:900}.christianity-preview-ability-nav{display:flex;flex:0 0 auto;gap:.35rem}.christianity-preview-ability-nav button{display:grid;place-items:center;width:1.85rem;height:1.85rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:#ffffffe0;color:var(--christianity-theme-focus);font:inherit;font-size:1rem;font-weight:950;line-height:1;box-shadow:0 .35rem .85rem #2563eb24}.christianity-preview-ability-tabs{display:flex;gap:.34rem;overflow-x:auto;scrollbar-width:none}.christianity-preview-ability-tabs::-webkit-scrollbar{display:none}.christianity-preview-ability-tabs button{flex:0 0 auto;max-width:100%;min-height:1.85rem;padding:0 .58rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:999px;background:#edf2f7d1;color:#1f2933c2;font:inherit;font-size:.74rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-tabs button.is-selected{border-color:#2563eb52;background:color-mix(in srgb,var(--christianity-theme-focus) 14%,#ffffff);color:var(--christianity-theme-focus)}.christianity-preview-ability-card{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;gap:.34rem;padding:.55rem .62rem;overflow:hidden;border:1px solid rgba(148,163,184,.16);border-radius:.62rem;background:#ffffff94}.christianity-preview-ability-card strong{overflow:hidden;color:#1f2933e6;font-size:.82rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-scroll{min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain;padding-right:.25rem}.christianity-preview-abilities p{color:#1f2933bd;font-size:.8rem;line-height:1.32}.christianity-preview-ability-footer{display:flex;justify-content:flex-end;align-self:end}.christianity-preview-use-ability{min-height:2rem;padding:0 .72rem;border:0;border-radius:999px;background:var(--christianity-theme-focus);color:#fff;font:inherit;font-size:.78rem;font-weight:900;box-shadow:0 .55rem 1.1rem #2563eb38}.christianity-preview-use-ability:disabled{background:#94a3b85c;color:#1f293380;box-shadow:none}.christianity-preview-rule-note small,.christianity-preview-rule-note strong,.christianity-preview-rule-note p{margin:0}.christianity-preview-rule-note small{color:#1f293394;font-size:.68rem;font-weight:800;text-transform:uppercase}.christianity-preview-rule-note strong{display:block;margin-top:.08rem;font-size:.92rem;line-height:1.1}.christianity-preview-rule-note p{margin-top:.22rem;color:#1f2933bd;font-size:.82rem;line-height:1.32}@media (min-width: 52rem){.christianity-floating-card-shell{width:min(58rem,calc(100vw - 3rem))}.christianity-floating-card{min-height:0;padding:0;width:min(22rem,calc(67dvh - 5.85rem),24rem)}}@media (max-width: 51.99rem){.christianity-floating-card-shell{top:50%;gap:.4rem;width:min(calc(100vw - .9rem),24rem);max-height:calc(100dvh - 1.15rem)}.christianity-preview-content{grid-template-columns:minmax(0,1fr)}.christianity-preview-side{display:none}.christianity-preview-stage{width:100%;padding-inline:3.55rem}.christianity-floating-card{width:min(14.4rem,calc(58dvh - 8.2rem),calc(100vw - 8rem));justify-self:center}.christianity-preview-ghost{display:block;width:min(7.1rem,calc(30dvh - 4rem),24vw);opacity:.24}.christianity-preview-ghost--previous{transform:translate(-118%) rotateY(24deg) rotate(-5deg) scale(.78)}.christianity-preview-ghost--next{transform:translate(118%) rotateY(-24deg) rotate(5deg) scale(.78)}.christianity-floating-card-close{min-height:1.9rem;padding:0 .58rem;font-size:.72rem}.christianity-preview-nav{width:2.2rem;height:2.2rem}.christianity-preview-nav--previous{left:.35rem}.christianity-preview-nav--next{right:.35rem}.christianity-preview-abilities{max-height:min(9.6rem,27dvh);padding:.62rem .7rem}.christianity-preview-ability-tabs{padding-bottom:.02rem}.christianity-preview-ability-card{padding:.48rem .54rem}.christianity-preview-abilities p{font-size:.78rem;line-height:1.24}.christianity-preview-use-ability{min-height:1.95rem;padding-inline:.68rem}}.christianity-history-backdrop{z-index:40}.christianity-gallery-backdrop{z-index:10000;background:#0f172ab8;backdrop-filter:blur(.14rem)}.christianity-history-drawer{position:fixed;right:auto;bottom:max(.5rem,env(safe-area-inset-bottom));left:50%;z-index:41;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;width:min(calc(100vw - 1rem),44rem);min-height:min(18rem,calc(100dvh - 1rem));max-height:min(32rem,calc(100dvh - 2rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347;transform:translate(-50%)}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-dialog-actions{display:flex;align-items:center;gap:.45rem}.christianity-dialog-close{min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#fff;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .8rem #102a4314}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem .1rem .25rem}.christianity-history-grid::-webkit-scrollbar,.christianity-offering-list::-webkit-scrollbar{width:.65rem}.christianity-history-grid::-webkit-scrollbar-track,.christianity-offering-list::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-history-grid::-webkit-scrollbar-thumb,.christianity-offering-list::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offerings-drawer{grid-template-rows:auto auto minmax(0,1fr);width:min(calc(100vw - 1rem),48rem);min-height:min(20rem,calc(100dvh - 1rem));max-height:min(34rem,calc(100dvh - 2rem))}.christianity-offerings-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;padding:.72rem .8rem;border:1px solid rgba(36,48,68,.12);border-radius:.7rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 8% 0%,rgba(214,162,29,.12),transparent 42%)}.christianity-offerings-note p{margin:0;color:#1f2933c2;font-size:.86rem;line-height:1.35}.christianity-offering-list{display:grid;gap:.6rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem}.christianity-offering-row{display:grid;grid-template-columns:minmax(5.4rem,6.5rem) minmax(0,1fr);gap:.65rem;align-items:center;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.65rem;background:#fff}.christianity-offering-row.is-exhausted{opacity:.68}.christianity-gallery-drawer{position:fixed;grid-template-rows:auto auto auto minmax(0,1fr);inset:0;z-index:10001;box-sizing:border-box;width:100dvw;height:100dvh;max-width:none;min-height:100dvh;max-height:100dvh;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));border:0;border-radius:0;background:linear-gradient(180deg,#f8fafcfc,#eff6fffc),radial-gradient(circle at 16% 0%,rgba(37,99,235,.12),transparent 42%);transform:none}.christianity-gallery-drawer header>div:first-child{display:grid;gap:.15rem;min-width:0}.christianity-gallery-drawer header p{color:#1f293394;font-size:.82rem}.christianity-gallery-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(8.5rem,13rem);gap:.65rem;min-width:0}.christianity-gallery-controls label{display:grid;gap:.25rem;min-width:0;color:#1f29339e;font-size:.74rem;font-weight:800}.christianity-gallery-controls input,.christianity-gallery-controls select{width:100%;min-width:0;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(36,48,68,.16);border-radius:.65rem;background:#fff;color:var(--christianity-theme-ink);font:inherit;font-size:.9rem}.christianity-gallery-edition-strip{display:flex;gap:.45rem;overflow-x:auto;min-width:0;padding-bottom:.2rem}.christianity-gallery-edition-strip button{display:inline-flex;align-items:center;gap:.45rem;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(214,162,29,.38);border-radius:999px;background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800}.christianity-gallery-edition-strip img{width:1.2rem;height:1.2rem;object-fit:contain}.christianity-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.6rem,8.7rem));justify-content:center;align-content:start;gap:.85rem;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.35rem .15rem .65rem}.christianity-gallery-grid::-webkit-scrollbar{width:.65rem}.christianity-gallery-grid::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-gallery-grid::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offering-card{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;gap:.26rem;width:100%;min-height:7.7rem;padding:.58rem;overflow:hidden;text-align:left;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 78% 14%,rgba(250,204,21,.78) 0 .42rem,transparent .44rem);box-shadow:0 .45rem 1rem #102a431a}.christianity-offering-card small{min-width:0;overflow:hidden;color:#1f293394;font-size:.62rem;font-weight:800;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-offering-card strong{display:-webkit-box;align-self:start;min-width:0;margin-top:.1rem;overflow:hidden;overflow-wrap:anywhere;font-size:.88rem;line-height:1.05;-webkit-box-orient:vertical;-webkit-line-clamp:3}.christianity-offering-card span{position:absolute;right:.42rem;bottom:.42rem;display:grid;place-items:center;min-width:1.55rem;height:1.55rem;padding:0 .28rem;border-radius:999px;background:#edf2f7;font-size:.82rem;font-weight:900}.christianity-offering-card em{align-self:end;max-width:calc(100% - 1.9rem);overflow:hidden;color:#1f29339e;font-size:.64rem;font-style:normal;font-weight:800;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-card p,.christianity-offering-row p{margin:0}.christianity-offering-card p{align-self:end;color:#1f2933a3;font-size:.72rem;line-height:1.2}.christianity-offering-row>div{display:grid;gap:.35rem;align-content:center;min-width:0}.christianity-offering-row>div p{color:#1f2933b8;font-size:.85rem;line-height:1.3}.christianity-offering-row>div button{justify-self:start;min-height:2.2rem;padding:0 .7rem;border:1px solid rgba(16,42,67,.16);border-radius:.5rem;background:#102a43;color:#fff;font:inherit;font-weight:800}.christianity-offering-row>div button:disabled{background:#e2e8f0;color:#1f293394}.christianity-history-grid .christianity-render-card-button{justify-self:center;width:min(100%,6.4rem)}.christianity-gallery-grid .christianity-render-card-button{justify-self:center;width:min(100%,8.7rem)}.christianity-gallery-grid .christianity-card-frame-header strong{font-size:clamp(.74rem,.85vw,.9rem)}.christianity-gallery-grid .christianity-card-frame-header small,.christianity-gallery-grid .christianity-card-frame-footer{font-size:.44rem}.christianity-offering-card.christianity-render-card-button{width:min(100%,5.8rem);min-height:0;padding:0;border:0;background:transparent;box-shadow:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent);outline-offset:.125rem}:host-context(.dark),:host-context(.ion-palette-dark),:host-context(html.ion-palette-dark),:host-context(body.dark),:host-context([data-theme=\"dark\"]){--christianity-theme-ink: var(--ion-text-color, #e5edf8);--christianity-theme-surface: #111827;--christianity-theme-parchment: #13223a;--christianity-theme-olive: #93c5fd;--christianity-theme-gold: #60a5fa;--christianity-theme-gold-soft: rgba(96, 165, 250, .18);--christianity-theme-gold-ring: rgba(147, 197, 253, .42);--christianity-theme-glow: rgba(96, 165, 250, .24);--christianity-theme-focus: #93c5fd;--christianity-theme-shadow: rgba(0, 0, 0, .34);--christianity-theme-shadow-strong: rgba(0, 0, 0, .48);--christianity-card-back: linear-gradient(135deg, rgba(147, 197, 253, .2), rgba(15, 23, 42, .08)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(147, 197, 253, .15), rgba(15, 23, 42, .06)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);color-scheme:dark}:host-context(.dark) .christianity-gallery-open,:host-context(.ion-palette-dark) .christianity-gallery-open,:host-context(html.ion-palette-dark) .christianity-gallery-open,:host-context(body.dark) .christianity-gallery-open,:host-context([data-theme=\"dark\"]) .christianity-gallery-open,:host-context(.dark) .christianity-secondary-action,:host-context(.ion-palette-dark) .christianity-secondary-action,:host-context(html.ion-palette-dark) .christianity-secondary-action,:host-context(body.dark) .christianity-secondary-action,:host-context([data-theme=\"dark\"]) .christianity-secondary-action,:host-context(.dark) .christianity-gallery-edition-strip button,:host-context(.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(html.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(body.dark) .christianity-gallery-edition-strip button,:host-context([data-theme=\"dark\"]) .christianity-gallery-edition-strip button{border-color:#93c5fd5c;background:linear-gradient(180deg,#1e3a5fd1,#0f172ae0),radial-gradient(circle at 20% 0%,rgba(96,165,250,.16),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.2rem #0000003d}:host-context(.dark) .christianity-splash,:host-context(.ion-palette-dark) .christianity-splash,:host-context(html.ion-palette-dark) .christianity-splash,:host-context(body.dark) .christianity-splash,:host-context([data-theme=\"dark\"]) .christianity-splash{border-color:#93c5fd38;background:radial-gradient(circle at 50% 18%,rgba(96,165,250,.16),transparent 22rem),linear-gradient(180deg,#0f172ae0,#07111ff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #00000047}:host-context(.dark) .christianity-start__cards article,:host-context(.ion-palette-dark) .christianity-start__cards article,:host-context(html.ion-palette-dark) .christianity-start__cards article,:host-context(body.dark) .christianity-start__cards article,:host-context([data-theme=\"dark\"]) .christianity-start__cards article,:host-context(.dark) .christianity-start__modes article,:host-context(.ion-palette-dark) .christianity-start__modes article,:host-context(html.ion-palette-dark) .christianity-start__modes article,:host-context(body.dark) .christianity-start__modes article,:host-context([data-theme=\"dark\"]) .christianity-start__modes article,:host-context(.dark) .christianity-start__status span,:host-context(.ion-palette-dark) .christianity-start__status span,:host-context(html.ion-palette-dark) .christianity-start__status span,:host-context(body.dark) .christianity-start__status span,:host-context([data-theme=\"dark\"]) .christianity-start__status span,:host-context(.dark) .christianity-start__modes article>span,:host-context(.ion-palette-dark) .christianity-start__modes article>span,:host-context(html.ion-palette-dark) .christianity-start__modes article>span,:host-context(body.dark) .christianity-start__modes article>span,:host-context([data-theme=\"dark\"]) .christianity-start__modes article>span{border-color:#94a3b833;background:#0f172aad;box-shadow:0 .75rem 1.7rem #00000038}:host-context(.dark) .christianity-splash p,:host-context(.ion-palette-dark) .christianity-splash p,:host-context(html.ion-palette-dark) .christianity-splash p,:host-context(body.dark) .christianity-splash p,:host-context([data-theme=\"dark\"]) .christianity-splash p,:host-context(.dark) .christianity-start__copy p,:host-context(.ion-palette-dark) .christianity-start__copy p,:host-context(html.ion-palette-dark) .christianity-start__copy p,:host-context(body.dark) .christianity-start__copy p,:host-context([data-theme=\"dark\"]) .christianity-start__copy p,:host-context(.dark) .christianity-start__cards p,:host-context(.ion-palette-dark) .christianity-start__cards p,:host-context(html.ion-palette-dark) .christianity-start__cards p,:host-context(body.dark) .christianity-start__cards p,:host-context([data-theme=\"dark\"]) .christianity-start__cards p,:host-context(.dark) .christianity-start__modes p,:host-context(.ion-palette-dark) .christianity-start__modes p,:host-context(html.ion-palette-dark) .christianity-start__modes p,:host-context(body.dark) .christianity-start__modes p,:host-context([data-theme=\"dark\"]) .christianity-start__modes p,:host-context(.dark) .christianity-header p,:host-context(.ion-palette-dark) .christianity-header p,:host-context(html.ion-palette-dark) .christianity-header p,:host-context(body.dark) .christianity-header p,:host-context([data-theme=\"dark\"]) .christianity-header p,:host-context(.dark) .christianity-match-player small,:host-context(.ion-palette-dark) .christianity-match-player small,:host-context(html.ion-palette-dark) .christianity-match-player small,:host-context(body.dark) .christianity-match-player small,:host-context([data-theme=\"dark\"]) .christianity-match-player small,:host-context(.dark) .christianity-scoreboard span,:host-context(.ion-palette-dark) .christianity-scoreboard span,:host-context(html.ion-palette-dark) .christianity-scoreboard span,:host-context(body.dark) .christianity-scoreboard span,:host-context([data-theme=\"dark\"]) .christianity-scoreboard span{color:#e2e8f0bd}:host-context(.dark) .christianity-turn,:host-context(.ion-palette-dark) .christianity-turn,:host-context(html.ion-palette-dark) .christianity-turn,:host-context(body.dark) .christianity-turn,:host-context([data-theme=\"dark\"]) .christianity-turn,:host-context(.dark) .christianity-leader,:host-context(.ion-palette-dark) .christianity-leader,:host-context(html.ion-palette-dark) .christianity-leader,:host-context(body.dark) .christianity-leader,:host-context([data-theme=\"dark\"]) .christianity-leader,:host-context(.dark) .christianity-offerings,:host-context(.ion-palette-dark) .christianity-offerings,:host-context(html.ion-palette-dark) .christianity-offerings,:host-context(body.dark) .christianity-offerings,:host-context([data-theme=\"dark\"]) .christianity-offerings,:host-context(.dark) .christianity-hidden-hand,:host-context(.ion-palette-dark) .christianity-hidden-hand,:host-context(html.ion-palette-dark) .christianity-hidden-hand,:host-context(body.dark) .christianity-hidden-hand,:host-context([data-theme=\"dark\"]) .christianity-hidden-hand,:host-context(.dark) .christianity-pile,:host-context(.ion-palette-dark) .christianity-pile,:host-context(html.ion-palette-dark) .christianity-pile,:host-context(body.dark) .christianity-pile,:host-context([data-theme=\"dark\"]) .christianity-pile,:host-context(.dark) .christianity-deck,:host-context(.ion-palette-dark) .christianity-deck,:host-context(html.ion-palette-dark) .christianity-deck,:host-context(body.dark) .christianity-deck,:host-context([data-theme=\"dark\"]) .christianity-deck,:host-context(.dark) .christianity-place,:host-context(.ion-palette-dark) .christianity-place,:host-context(html.ion-palette-dark) .christianity-place,:host-context(body.dark) .christianity-place,:host-context([data-theme=\"dark\"]) .christianity-place,:host-context(.dark) .christianity-match-strip,:host-context(.ion-palette-dark) .christianity-match-strip,:host-context(html.ion-palette-dark) .christianity-match-strip,:host-context(body.dark) .christianity-match-strip,:host-context([data-theme=\"dark\"]) .christianity-match-strip,:host-context(.dark) .christianity-actions,:host-context(.ion-palette-dark) .christianity-actions,:host-context(html.ion-palette-dark) .christianity-actions,:host-context(body.dark) .christianity-actions,:host-context([data-theme=\"dark\"]) .christianity-actions,:host-context(.dark) .christianity-history,:host-context(.ion-palette-dark) .christianity-history,:host-context(html.ion-palette-dark) .christianity-history,:host-context(body.dark) .christianity-history,:host-context([data-theme=\"dark\"]) .christianity-history{border-color:#94a3b82e;background:#0f172ad1}:host-context(.dark) .christianity-turn.is-own-turn,:host-context(.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(html.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(body.dark) .christianity-turn.is-own-turn,:host-context([data-theme=\"dark\"]) .christianity-turn.is-own-turn{border-color:#2dd4bf5c;background:#14534c5c}:host-context(.dark) .christianity-table,:host-context(.ion-palette-dark) .christianity-table,:host-context(html.ion-palette-dark) .christianity-table,:host-context(body.dark) .christianity-table,:host-context([data-theme=\"dark\"]) .christianity-table{background:linear-gradient(180deg,#10233d,#0b1728)}:host-context(.dark) .christianity-player-side,:host-context(.ion-palette-dark) .christianity-player-side,:host-context(html.ion-palette-dark) .christianity-player-side,:host-context(body.dark) .christianity-player-side,:host-context([data-theme=\"dark\"]) .christianity-player-side{background:#0f172a57}:host-context(.dark) .christianity-battle-zone,:host-context(.ion-palette-dark) .christianity-battle-zone,:host-context(html.ion-palette-dark) .christianity-battle-zone,:host-context(body.dark) .christianity-battle-zone,:host-context([data-theme=\"dark\"]) .christianity-battle-zone,:host-context(.dark) .christianity-shared-zone,:host-context(.ion-palette-dark) .christianity-shared-zone,:host-context(html.ion-palette-dark) .christianity-shared-zone,:host-context(body.dark) .christianity-shared-zone,:host-context([data-theme=\"dark\"]) .christianity-shared-zone{background:#0f172a94}:host-context(.dark) .christianity-battle-zone.is-placing-card,:host-context(.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(html.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(body.dark) .christianity-battle-zone.is-placing-card,:host-context([data-theme=\"dark\"]) .christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#1e3a5fd1,#0f172ab8),#0f172a94}:host-context(.dark) .christianity-card,:host-context(.ion-palette-dark) .christianity-card,:host-context(html.ion-palette-dark) .christianity-card,:host-context(body.dark) .christianity-card,:host-context([data-theme=\"dark\"]) .christianity-card,:host-context(.dark) .christianity-slot,:host-context(.ion-palette-dark) .christianity-slot,:host-context(html.ion-palette-dark) .christianity-slot,:host-context(body.dark) .christianity-slot,:host-context([data-theme=\"dark\"]) .christianity-slot{border-color:#94a3b83d;background:#0f172a8a}:host-context(.dark) .christianity-slot--play-target,:host-context(.ion-palette-dark) .christianity-slot--play-target,:host-context(html.ion-palette-dark) .christianity-slot--play-target,:host-context(body.dark) .christianity-slot--play-target,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target{color:var(--christianity-theme-ink);background:linear-gradient(180deg,#2563eb3d,#0f172ac7),#0f172abd}:host-context(.dark) .christianity-slot--play-target span,:host-context(.ion-palette-dark) .christianity-slot--play-target span,:host-context(html.ion-palette-dark) .christianity-slot--play-target span,:host-context(body.dark) .christianity-slot--play-target span,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target span,:host-context(.dark) .christianity-card strong,:host-context(.ion-palette-dark) .christianity-card strong,:host-context(html.ion-palette-dark) .christianity-card strong,:host-context(body.dark) .christianity-card strong,:host-context([data-theme=\"dark\"]) .christianity-card strong{background:#1e293beb}:host-context(.dark) .christianity-offering-pile,:host-context(.ion-palette-dark) .christianity-offering-pile,:host-context(html.ion-palette-dark) .christianity-offering-pile,:host-context(body.dark) .christianity-offering-pile,:host-context([data-theme=\"dark\"]) .christianity-offering-pile,:host-context(.dark) .christianity-zone-card,:host-context(.ion-palette-dark) .christianity-zone-card,:host-context(html.ion-palette-dark) .christianity-zone-card,:host-context(body.dark) .christianity-zone-card,:host-context([data-theme=\"dark\"]) .christianity-zone-card,:host-context(.dark) .christianity-zone-pile,:host-context(.ion-palette-dark) .christianity-zone-pile,:host-context(html.ion-palette-dark) .christianity-zone-pile,:host-context(body.dark) .christianity-zone-pile,:host-context([data-theme=\"dark\"]) .christianity-zone-pile{border-color:#94a3b83d;background:linear-gradient(180deg,#111827f5,#0f172af0),radial-gradient(circle at 14% 0%,rgba(96,165,250,.12),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.25rem #00000047,inset 0 0 0 .12rem #ffffff08}:host-context(.dark) .christianity-offering-pile>span,:host-context(.ion-palette-dark) .christianity-offering-pile>span,:host-context(html.ion-palette-dark) .christianity-offering-pile>span,:host-context(body.dark) .christianity-offering-pile>span,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>span,:host-context(.dark) .christianity-zone-card>span,:host-context(.ion-palette-dark) .christianity-zone-card>span,:host-context(html.ion-palette-dark) .christianity-zone-card>span,:host-context(body.dark) .christianity-zone-card>span,:host-context([data-theme=\"dark\"]) .christianity-zone-card>span,:host-context(.dark) .christianity-zone-pile>span,:host-context(.ion-palette-dark) .christianity-zone-pile>span,:host-context(html.ion-palette-dark) .christianity-zone-pile>span,:host-context(body.dark) .christianity-zone-pile>span,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>span,:host-context(.dark) .christianity-player-badge,:host-context(.ion-palette-dark) .christianity-player-badge,:host-context(html.ion-palette-dark) .christianity-player-badge,:host-context(body.dark) .christianity-player-badge,:host-context([data-theme=\"dark\"]) .christianity-player-badge{color:#e2e8f0c7}:host-context(.dark) .christianity-offering-pile>small,:host-context(.ion-palette-dark) .christianity-offering-pile>small,:host-context(html.ion-palette-dark) .christianity-offering-pile>small,:host-context(body.dark) .christianity-offering-pile>small,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>small{color:#e2e8f09e}:host-context(.dark) .christianity-offering-pile>strong,:host-context(.ion-palette-dark) .christianity-offering-pile>strong,:host-context(html.ion-palette-dark) .christianity-offering-pile>strong,:host-context(body.dark) .christianity-offering-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>strong,:host-context(.dark) .christianity-zone-card>strong,:host-context(.ion-palette-dark) .christianity-zone-card>strong,:host-context(html.ion-palette-dark) .christianity-zone-card>strong,:host-context(body.dark) .christianity-zone-card>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-card>strong,:host-context(.dark) .christianity-zone-pile>strong,:host-context(.ion-palette-dark) .christianity-zone-pile>strong,:host-context(html.ion-palette-dark) .christianity-zone-pile>strong,:host-context(body.dark) .christianity-zone-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>strong,:host-context(.dark) .christianity-hand-meter,:host-context(.ion-palette-dark) .christianity-hand-meter,:host-context(html.ion-palette-dark) .christianity-hand-meter,:host-context(body.dark) .christianity-hand-meter,:host-context([data-theme=\"dark\"]) .christianity-hand-meter{border-color:#94a3b833;background:#0f172ae0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #00000047}:host-context(.dark) .christianity-hand-meter span,:host-context(.ion-palette-dark) .christianity-hand-meter span,:host-context(html.ion-palette-dark) .christianity-hand-meter span,:host-context(body.dark) .christianity-hand-meter span,:host-context([data-theme=\"dark\"]) .christianity-hand-meter span{color:#e2e8f0b3}:host-context(.dark) .christianity-offering-pile:before,:host-context(.ion-palette-dark) .christianity-offering-pile:before,:host-context(html.ion-palette-dark) .christianity-offering-pile:before,:host-context(body.dark) .christianity-offering-pile:before,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:before,:host-context(.dark) .christianity-zone-pile:before,:host-context(.ion-palette-dark) .christianity-zone-pile:before,:host-context(html.ion-palette-dark) .christianity-zone-pile:before,:host-context(body.dark) .christianity-zone-pile:before,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:before{border-color:#94a3b833;background:#e2e8f0eb;box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-offering-pile:after,:host-context(.ion-palette-dark) .christianity-offering-pile:after,:host-context(html.ion-palette-dark) .christianity-offering-pile:after,:host-context(body.dark) .christianity-offering-pile:after,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:after,:host-context(.dark) .christianity-zone-pile:after,:host-context(.ion-palette-dark) .christianity-zone-pile:after,:host-context(html.ion-palette-dark) .christianity-zone-pile:after,:host-context(body.dark) .christianity-zone-pile:after,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:after{border-color:#94a3b838;background:var(--christianity-card-back);box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-end-turn:disabled,:host-context(.ion-palette-dark) .christianity-end-turn:disabled,:host-context(html.ion-palette-dark) .christianity-end-turn:disabled,:host-context(body.dark) .christianity-end-turn:disabled,:host-context([data-theme=\"dark\"]) .christianity-end-turn:disabled{border-color:#94a3b829;background:#0f172a75;color:#e2e8f06b;opacity:1}:host-context(.dark) .christianity-history-drawer,:host-context(.ion-palette-dark) .christianity-history-drawer,:host-context(html.ion-palette-dark) .christianity-history-drawer,:host-context(body.dark) .christianity-history-drawer,:host-context([data-theme=\"dark\"]) .christianity-history-drawer,:host-context(.dark) .christianity-rule-note,:host-context(.ion-palette-dark) .christianity-rule-note,:host-context(html.ion-palette-dark) .christianity-rule-note,:host-context(body.dark) .christianity-rule-note,:host-context([data-theme=\"dark\"]) .christianity-rule-note,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note,:host-context(.dark) .christianity-preview-abilities,:host-context(.ion-palette-dark) .christianity-preview-abilities,:host-context(html.ion-palette-dark) .christianity-preview-abilities,:host-context(body.dark) .christianity-preview-abilities,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities{border-color:#94a3b82e;background:linear-gradient(180deg,#0f172af5,#111827f5),radial-gradient(circle at 8% 0%,rgba(96,165,250,.12),transparent 40%);box-shadow:0 1.5rem 4rem #0000006b}:host-context(.dark) .christianity-dialog-close,:host-context(.ion-palette-dark) .christianity-dialog-close,:host-context(html.ion-palette-dark) .christianity-dialog-close,:host-context(body.dark) .christianity-dialog-close,:host-context([data-theme=\"dark\"]) .christianity-dialog-close,:host-context(.dark) .christianity-floating-card-close,:host-context(.ion-palette-dark) .christianity-floating-card-close,:host-context(html.ion-palette-dark) .christianity-floating-card-close,:host-context(body.dark) .christianity-floating-card-close,:host-context([data-theme=\"dark\"]) .christianity-floating-card-close,:host-context(.dark) .christianity-preview-position,:host-context(.ion-palette-dark) .christianity-preview-position,:host-context(html.ion-palette-dark) .christianity-preview-position,:host-context(body.dark) .christianity-preview-position,:host-context([data-theme=\"dark\"]) .christianity-preview-position,:host-context(.dark) .christianity-preview-nav,:host-context(.ion-palette-dark) .christianity-preview-nav,:host-context(html.ion-palette-dark) .christianity-preview-nav,:host-context(body.dark) .christianity-preview-nav,:host-context([data-theme=\"dark\"]) .christianity-preview-nav,:host-context(.dark) .christianity-preview-ability-nav button,:host-context(.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(html.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(body.dark) .christianity-preview-ability-nav button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-nav button,:host-context(.dark) .christianity-preview-ability-tabs button,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(body.dark) .christianity-preview-ability-tabs button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button{border-color:#94a3b838;background:#0f172af0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #0000004d}:host-context(.dark) .christianity-preview-ability-tabs button.is-selected,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(body.dark) .christianity-preview-ability-tabs button.is-selected,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button.is-selected{border-color:#60a5fa61;background:#2563eb38;color:#dbeafef0}:host-context(.dark) .christianity-preview-use-ability:disabled,:host-context(.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(html.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(body.dark) .christianity-preview-use-ability:disabled,:host-context([data-theme=\"dark\"]) .christianity-preview-use-ability:disabled{background:#334155c7;color:#e2e8f07a}:host-context(.dark) .christianity-preview-ability-card,:host-context(.ion-palette-dark) .christianity-preview-ability-card,:host-context(html.ion-palette-dark) .christianity-preview-ability-card,:host-context(body.dark) .christianity-preview-ability-card,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card{border-color:#94a3b829;background:#0f172a6b}:host-context(.dark) .christianity-preview-ability-card strong,:host-context(.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(html.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(body.dark) .christianity-preview-ability-card strong,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card strong,:host-context(.dark) .christianity-preview-abilities-header span,:host-context(.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(html.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(body.dark) .christianity-preview-abilities-header span,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities-header span{color:#e2e8f0d1}:host-context(.dark) .christianity-history-drawer header span,:host-context(.ion-palette-dark) .christianity-history-drawer header span,:host-context(html.ion-palette-dark) .christianity-history-drawer header span,:host-context(body.dark) .christianity-history-drawer header span,:host-context([data-theme=\"dark\"]) .christianity-history-drawer header span,:host-context(.dark) .christianity-rule-note strong,:host-context(.ion-palette-dark) .christianity-rule-note strong,:host-context(html.ion-palette-dark) .christianity-rule-note strong,:host-context(body.dark) .christianity-rule-note strong,:host-context([data-theme=\"dark\"]) .christianity-rule-note strong{background:#1e293beb}:host-context(.dark) .christianity-rule-note small,:host-context(.ion-palette-dark) .christianity-rule-note small,:host-context(html.ion-palette-dark) .christianity-rule-note small,:host-context(body.dark) .christianity-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-rule-note small,:host-context(.dark) .christianity-preview-rule-note small,:host-context(.ion-palette-dark) .christianity-preview-rule-note small,:host-context(html.ion-palette-dark) .christianity-preview-rule-note small,:host-context(body.dark) .christianity-preview-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note small,:host-context(.dark) .christianity-preview-abilities small,:host-context(.ion-palette-dark) .christianity-preview-abilities small,:host-context(html.ion-palette-dark) .christianity-preview-abilities small,:host-context(body.dark) .christianity-preview-abilities small,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities small,:host-context(.dark) .christianity-gallery-drawer header p,:host-context(.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(html.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(body.dark) .christianity-gallery-drawer header p,:host-context([data-theme=\"dark\"]) .christianity-gallery-drawer header p,:host-context(.dark) .christianity-gallery-controls label,:host-context(.ion-palette-dark) .christianity-gallery-controls label,:host-context(html.ion-palette-dark) .christianity-gallery-controls label,:host-context(body.dark) .christianity-gallery-controls label,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls label{color:#e2e8f0ad}:host-context(.dark) .christianity-rule-note p,:host-context(.ion-palette-dark) .christianity-rule-note p,:host-context(html.ion-palette-dark) .christianity-rule-note p,:host-context(body.dark) .christianity-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-rule-note p,:host-context(.dark) .christianity-rule-note ul,:host-context(.ion-palette-dark) .christianity-rule-note ul,:host-context(html.ion-palette-dark) .christianity-rule-note ul,:host-context(body.dark) .christianity-rule-note ul,:host-context([data-theme=\"dark\"]) .christianity-rule-note ul,:host-context(.dark) .christianity-preview-rule-note p,:host-context(.ion-palette-dark) .christianity-preview-rule-note p,:host-context(html.ion-palette-dark) .christianity-preview-rule-note p,:host-context(body.dark) .christianity-preview-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note p,:host-context(.dark) .christianity-preview-abilities p,:host-context(.ion-palette-dark) .christianity-preview-abilities p,:host-context(html.ion-palette-dark) .christianity-preview-abilities p,:host-context(body.dark) .christianity-preview-abilities p,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities p,:host-context(.dark) .christianity-offerings-note p,:host-context(.ion-palette-dark) .christianity-offerings-note p,:host-context(html.ion-palette-dark) .christianity-offerings-note p,:host-context(body.dark) .christianity-offerings-note p,:host-context([data-theme=\"dark\"]) .christianity-offerings-note p{color:#e2e8f0cc}:host-context(.dark) .christianity-gallery-controls input,:host-context(.ion-palette-dark) .christianity-gallery-controls input,:host-context(html.ion-palette-dark) .christianity-gallery-controls input,:host-context(body.dark) .christianity-gallery-controls input,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls input,:host-context(.dark) .christianity-gallery-controls select,:host-context(.ion-palette-dark) .christianity-gallery-controls select,:host-context(html.ion-palette-dark) .christianity-gallery-controls select,:host-context(body.dark) .christianity-gallery-controls select,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls select,:host-context(.dark) .christianity-offering-row,:host-context(.ion-palette-dark) .christianity-offering-row,:host-context(html.ion-palette-dark) .christianity-offering-row,:host-context(body.dark) .christianity-offering-row,:host-context([data-theme=\"dark\"]) .christianity-offering-row,:host-context(.dark) .christianity-offerings-note,:host-context(.ion-palette-dark) .christianity-offerings-note,:host-context(html.ion-palette-dark) .christianity-offerings-note,:host-context(body.dark) .christianity-offerings-note,:host-context([data-theme=\"dark\"]) .christianity-offerings-note{border-color:#94a3b833;background:#0f172ac7;color:var(--christianity-theme-ink)}:host-context(.dark) .christianity-history-grid,:host-context(.ion-palette-dark) .christianity-history-grid,:host-context(html.ion-palette-dark) .christianity-history-grid,:host-context(body.dark) .christianity-history-grid,:host-context([data-theme=\"dark\"]) .christianity-history-grid,:host-context(.dark) .christianity-offering-list,:host-context(.ion-palette-dark) .christianity-offering-list,:host-context(html.ion-palette-dark) .christianity-offering-list,:host-context(body.dark) .christianity-offering-list,:host-context([data-theme=\"dark\"]) .christianity-offering-list,:host-context(.dark) .christianity-gallery-grid,:host-context(.ion-palette-dark) .christianity-gallery-grid,:host-context(html.ion-palette-dark) .christianity-gallery-grid,:host-context(body.dark) .christianity-gallery-grid,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note{scrollbar-color:rgba(148,163,184,.54) rgba(15,23,42,.86)}:host-context(.dark) .christianity-rule-note-icon,:host-context(.ion-palette-dark) .christianity-rule-note-icon,:host-context(html.ion-palette-dark) .christianity-rule-note-icon,:host-context(body.dark) .christianity-rule-note-icon,:host-context([data-theme=\"dark\"]) .christianity-rule-note-icon{background:#60a5fa29;color:#bfdbfe;box-shadow:inset 0 0 0 1px #93c5fd38}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-track{background:#0f172adb}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-thumb{border-color:#0f172adb;background:#94a3b88a}@media (max-width: 720px){:host{overflow-x:hidden}.christianity-shell{padding:0 0 10.4rem}.christianity-actions{position:fixed;right:max(.6rem,env(safe-area-inset-right));bottom:calc(max(.75rem,env(safe-area-inset-bottom)) + 9.7rem);z-index:80;display:block;width:auto;padding:0;background:transparent;pointer-events:none}.christianity-end-turn{position:fixed;bottom:calc(max(.75rem,env(safe-area-inset-bottom)) + 9.7rem);left:calc(max(.6rem,env(safe-area-inset-left)) + 5.95rem);z-index:80;min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-actions button{min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-header,.christianity-match-strip,.christianity-player__summary{box-sizing:border-box;width:100%;padding-right:max(.5rem,env(safe-area-inset-right));padding-left:max(.5rem,env(safe-area-inset-left))}.christianity-header,.christianity-player__summary,.christianity-shared-zone{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-turn-banner{grid-template-columns:minmax(0,1fr);gap:.45rem;padding:.55rem}.christianity-options-button{justify-self:start}.christianity-options-menu{right:auto;left:.55rem}.christianity-setup-panel,.christianity-result-panel{inset:.55rem;padding:.7rem}.christianity-leader-choice-grid{grid-template-columns:repeat(2,minmax(0,6rem));gap:.45rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-header-actions{align-items:flex-end;flex-direction:column}.christianity-start__cards,.christianity-start__hero{grid-template-columns:minmax(0,1fr)}.christianity-start__fan{min-height:10.5rem}.christianity-start__fan val-christianity-card{width:clamp(5.2rem,22vw,6.4rem)}.christianity-start__modes{grid-template-columns:repeat(2,minmax(0,1fr))}.christianity-splash{min-height:min(30rem,calc(100dvh - 7rem));padding-right:max(.65rem,env(safe-area-inset-right));padding-left:max(.65rem,env(safe-area-inset-left));border-right:0;border-left:0;border-radius:0}.christianity-start{min-height:min(30rem,calc(100dvh - 7rem));padding:0}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem;width:100%;max-width:100%;min-width:0;padding-right:.25rem;padding-left:.25rem;overflow-x:hidden}.christianity-player-side{width:100%;max-width:100%;min-width:0;padding:.3rem .25rem;overflow:hidden}.christianity-battle-zone{--christianity-battle-card-width: min(5.2rem, 100%);grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.25rem,1.5vw,.4rem);justify-content:stretch;min-height:8.75rem;padding-inline:.28rem;overflow-x:hidden}.christianity-battle-zone .christianity-card-preview-card--battle,.christianity-battle-zone .christianity-slot{width:min(100%,5.2rem)}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent){position:fixed;right:0;bottom:0;left:0;z-index:52;box-sizing:border-box;min-height:9.55rem;margin:0;padding:.7rem max(.35rem,env(safe-area-inset-right)) max(.55rem,env(safe-area-inset-bottom)) max(.35rem,env(safe-area-inset-left));background:linear-gradient(180deg,#eff6ff00,#dbeafef5 18%,#dbeafefa),radial-gradient(circle at 50% 0%,rgba(37,99,235,.14),transparent 58%);pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan,.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-card-wrap{pointer-events:auto}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-meter{top:.15rem;right:max(.55rem,env(safe-area-inset-right));pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan{min-height:8.85rem;padding:.25rem .25rem 1.1rem;overflow:visible}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-card-preview-card--hand{width:clamp(4.35rem,20vw,5.65rem)}.christianity-hand-shelf--opponent{min-height:6.65rem;margin-top:0;margin-bottom:0;padding-top:.4rem;padding-bottom:.85rem}.christianity-player-rack{grid-template-columns:minmax(0,5.55rem) minmax(0,1fr) minmax(0,5.45rem);gap:clamp(.35rem,2vw,.5rem)}.christianity-shared-zone{gap:.45rem;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.christianity-zone-card,.christianity-zone-pile{min-height:6.15rem;padding:.58rem .46rem .5rem;gap:.24rem}.christianity-zone-card val-christianity-card,.christianity-zone-pile val-christianity-card,.christianity-zone-pile:before,.christianity-zone-pile:after,.christianity-empty-card-slot{width:clamp(3rem,18vw,3.85rem)}.christianity-offering-pile{height:6.9rem;max-height:6.9rem;padding:.52rem .42rem .48rem;gap:.24rem}.christianity-offering-drop-target{width:min(100%,5.8rem);height:6.9rem;min-height:0;max-height:6.9rem}.christianity-offering-pile val-christianity-card,.christianity-offering-pile:before,.christianity-offering-pile:after{width:clamp(2.65rem,15vw,3.35rem)}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);height:auto;min-height:0}.christianity-leader-card{width:clamp(4.55rem,20vw,5.7rem);min-height:0}.christianity-offering-row{grid-template-columns:minmax(5rem,5.8rem) minmax(0,1fr);gap:.5rem}.christianity-gallery-controls{grid-template-columns:minmax(0,1fr);gap:.5rem}.christianity-gallery-drawer{gap:.6rem;padding:max(.72rem,env(safe-area-inset-top)) max(.72rem,env(safe-area-inset-right)) max(.72rem,env(safe-area-inset-bottom)) max(.72rem,env(safe-area-inset-left))}.christianity-gallery-drawer header{align-items:start}.christianity-gallery-drawer h2{font-size:1.2rem;line-height:1.05}.christianity-gallery-controls label{gap:.18rem;font-size:.7rem}.christianity-gallery-controls input,.christianity-gallery-controls select,.christianity-gallery-edition-strip button{min-height:2.05rem}.christianity-gallery-grid{grid-template-columns:repeat(3,minmax(0,5.55rem));justify-content:center;gap:.55rem;scrollbar-gutter:auto;padding:.4rem 0 .8rem}.christianity-gallery-grid .christianity-render-card-button{width:min(100%,5.55rem)}.christianity-offering-card{min-height:7.25rem;padding:.5rem}.christianity-hand-fan--opponent{min-height:5.75rem;padding-bottom:.7rem}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.35rem,15vw,4.25rem);margin-inline:-.72rem}}\n"], dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: LightRippleDirective, selector: "[valLightRipple]" }, { kind: "component", type: ChristianityCardComponent, selector: "val-christianity-card", inputs: ["card", "variant"] }, { kind: "component", type: MiniGameCalloutComponent, selector: "val-mini-game-callout", inputs: ["props"] }, { kind: "component", type: MiniGameScorePopComponent, selector: "val-mini-game-score-pop", inputs: ["props"] }] }); }
|
|
2545
2875
|
}
|
|
2546
2876
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChristianityGameComponent, decorators: [{
|
|
2547
2877
|
type: Component,
|
|
@@ -2647,6 +2977,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
2647
2977
|
</article>
|
|
2648
2978
|
</section>
|
|
2649
2979
|
|
|
2980
|
+
<section
|
|
2981
|
+
class="christianity-turn-banner"
|
|
2982
|
+
data-testid="christianity-turn-banner"
|
|
2983
|
+
[class.is-own-turn]="isOwnTurn()"
|
|
2984
|
+
[class.is-rival-turn]="!isOwnTurn() && game().status === 'in_progress'"
|
|
2985
|
+
[class.is-finished]="game().status === 'finished'"
|
|
2986
|
+
aria-live="polite"
|
|
2987
|
+
>
|
|
2988
|
+
<div>
|
|
2989
|
+
<span>{{ t('christianityTurn') }} {{ game().turnCount }}</span>
|
|
2990
|
+
<strong>{{ turnBannerTitle() }}</strong>
|
|
2991
|
+
<p>{{ turnBannerBody() }}</p>
|
|
2992
|
+
</div>
|
|
2993
|
+
<button type="button" class="christianity-options-button" data-testid="christianity-options-button" valLightRipple (click)="toggleOptions()">
|
|
2994
|
+
{{ t('christianityOptions') }}
|
|
2995
|
+
</button>
|
|
2996
|
+
@if (showOptions()) {
|
|
2997
|
+
<div class="christianity-options-menu" data-testid="christianity-options-menu">
|
|
2998
|
+
<button type="button" (click)="restartTutorial()">{{ t('christianityRestart') }}</button>
|
|
2999
|
+
<button type="button" [disabled]="game().status === 'finished'" (click)="resignTutorial()">{{ t('christianityResign') }}</button>
|
|
3000
|
+
<button type="button" (click)="returnToChristianityHome()">{{ t('christianityBackToMenu') }}</button>
|
|
3001
|
+
</div>
|
|
3002
|
+
}
|
|
3003
|
+
</section>
|
|
3004
|
+
|
|
2650
3005
|
<section class="christianity-hand-shelf christianity-hand-shelf--opponent">
|
|
2651
3006
|
<div class="christianity-hand-meter christianity-hand-meter--opponent">
|
|
2652
3007
|
<span>{{ t('christianityHand') }}</span>
|
|
@@ -2668,6 +3023,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
2668
3023
|
</section>
|
|
2669
3024
|
|
|
2670
3025
|
<section class="christianity-table" data-testid="christianity-table" [attr.aria-label]="t('christianityTable')">
|
|
3026
|
+
@if (tutorialPhase() !== 'in_progress' && tutorialPhase() !== 'finished') {
|
|
3027
|
+
<section class="christianity-setup-panel" data-testid="christianity-setup-panel" aria-live="polite">
|
|
3028
|
+
<div>
|
|
3029
|
+
<span>{{ t('christianityMatchSetup') }}</span>
|
|
3030
|
+
<h2>{{ setupTitle() }}</h2>
|
|
3031
|
+
<p>{{ setupBody() }}</p>
|
|
3032
|
+
</div>
|
|
3033
|
+
@if (tutorialPhase() === 'coin') {
|
|
3034
|
+
<button type="button" class="christianity-primary-action" data-testid="christianity-continue-setup" valLightRipple (click)="continueAfterCoin()">
|
|
3035
|
+
{{ t('christianityContinue') }}
|
|
3036
|
+
</button>
|
|
3037
|
+
}
|
|
3038
|
+
@if (tutorialPhase() === 'leader_pick') {
|
|
3039
|
+
@if (tutorialSetup()?.leaderPicker === 'P1' && (tutorialSetup()?.availableLeaders?.length ?? 0) > 1) {
|
|
3040
|
+
<div class="christianity-leader-choice-grid" data-testid="christianity-leader-choice-grid">
|
|
3041
|
+
@for (leaderId of tutorialSetup()?.availableLeaders ?? []; track leaderId) {
|
|
3042
|
+
@let leader = cardDefinition(leaderId);
|
|
3043
|
+
<button type="button" class="christianity-leader-choice-card christianity-render-card-button" valLightRipple (click)="chooseTutorialLeader(leaderId)">
|
|
3044
|
+
<val-christianity-card [card]="definitionToRenderCard(leader)" variant="baby"></val-christianity-card>
|
|
3045
|
+
</button>
|
|
3046
|
+
}
|
|
3047
|
+
</div>
|
|
3048
|
+
} @else {
|
|
3049
|
+
<button type="button" class="christianity-primary-action" data-testid="christianity-continue-setup" valLightRipple (click)="continueAfterCoin()">
|
|
3050
|
+
{{ t('christianityContinue') }}
|
|
3051
|
+
</button>
|
|
3052
|
+
}
|
|
3053
|
+
}
|
|
3054
|
+
</section>
|
|
3055
|
+
}
|
|
3056
|
+
@if (game().status === 'finished') {
|
|
3057
|
+
<section class="christianity-result-panel" data-testid="christianity-result-panel" aria-live="polite">
|
|
3058
|
+
<span>{{ t('christianityGameOver') }}</span>
|
|
3059
|
+
<h2>{{ resultTitle() }}</h2>
|
|
3060
|
+
<p>{{ resultBody() }}</p>
|
|
3061
|
+
<div>
|
|
3062
|
+
<button type="button" class="christianity-primary-action" data-testid="christianity-play-again" valLightRipple (click)="restartTutorial()">
|
|
3063
|
+
{{ t('christianityPlayAgain') }}
|
|
3064
|
+
</button>
|
|
3065
|
+
<button type="button" class="christianity-secondary-action" valLightRipple (click)="returnToChristianityHome()">
|
|
3066
|
+
{{ t('christianityBackToMenu') }}
|
|
3067
|
+
</button>
|
|
3068
|
+
</div>
|
|
3069
|
+
</section>
|
|
3070
|
+
}
|
|
2671
3071
|
<div class="christianity-impact-layer">
|
|
2672
3072
|
@if (combatTrail(); as trail) {
|
|
2673
3073
|
<span
|
|
@@ -2907,6 +3307,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
2907
3307
|
type="button"
|
|
2908
3308
|
class="christianity-end-turn"
|
|
2909
3309
|
data-testid="christianity-end-turn"
|
|
3310
|
+
[disabled]="!isOwnTurn() || tutorialPhase() !== 'in_progress' || !!combatAnimation()"
|
|
2910
3311
|
(click)="endTurn()"
|
|
2911
3312
|
>
|
|
2912
3313
|
{{ t('christianityEndTurn') }}
|
|
@@ -3142,7 +3543,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
3142
3543
|
@if (screen() === 'table') {
|
|
3143
3544
|
<section class="christianity-actions" data-testid="christianity-actions" aria-live="polite">
|
|
3144
3545
|
<p class="christianity-sr-only" data-testid="christianity-status">{{ statusText() }}</p>
|
|
3145
|
-
<button type="button" data-testid="christianity-primary-action" [disabled]="selectedActionDisabled()" (click)="playSelectedCard()">
|
|
3546
|
+
<button type="button" data-testid="christianity-primary-action" [disabled]="tutorialPhase() !== 'in_progress' || selectedActionDisabled()" (click)="playSelectedCard()">
|
|
3146
3547
|
{{ selectedActionLabel() }}
|
|
3147
3548
|
</button>
|
|
3148
3549
|
</section>
|
|
@@ -3265,6 +3666,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
3265
3666
|
</section>
|
|
3266
3667
|
}
|
|
3267
3668
|
</main>
|
|
3268
|
-
`, styles: [":host{--christianity-theme-ink: var(--val-text-color, #1f2933);--christianity-theme-surface: #ffffff;--christianity-theme-parchment: #eff6ff;--christianity-theme-olive: #1d4ed8;--christianity-theme-gold: #2563eb;--christianity-theme-gold-soft: rgba(37, 99, 235, .16);--christianity-theme-gold-ring: rgba(37, 99, 235, .44);--christianity-theme-glow: rgba(37, 99, 235, .24);--christianity-theme-focus: #2563eb;--christianity-theme-shadow: rgba(37, 99, 235, .15);--christianity-theme-shadow-strong: rgba(37, 99, 235, .26);--christianity-card-aspect: 5 / 7.45;--christianity-card-back: linear-gradient(135deg, rgba(16, 42, 67, .16), rgba(16, 42, 67, .03)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(16, 42, 67, .11), rgba(16, 42, 67, .02)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);display:block;max-width:100%;min-width:0;overflow-x:clip;color:var(--christianity-theme-ink)}.christianity-shell{box-sizing:border-box;display:grid;gap:.65rem;width:100%;max-width:100%;min-width:0;padding:0;overflow-x:clip;overflow-y:visible}.christianity-shell.has-modal-open{max-height:100dvh;overflow:hidden;overscroll-behavior:contain}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.christianity-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;min-width:0}.christianity-gallery-open{min-height:2.2rem;padding:0 .75rem;border:1px solid var(--christianity-theme-gold-ring);border-radius:999px;background:linear-gradient(180deg,#eff6fffa,#fffffffa),radial-gradient(circle at 20% 0%,var(--christianity-theme-gold-soft),transparent 42%);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800;box-shadow:0 .55rem 1.2rem #2563eb1a}.christianity-splash{min-height:min(34rem,calc(100dvh - 8rem));border:1px solid rgba(37,99,235,.18);border-radius:.9rem;background:radial-gradient(circle at 50% 18%,rgba(37,99,235,.16),transparent 22rem),linear-gradient(180deg,#eff6ffed,#fffffff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #2563eb1f}.christianity-splash{display:grid;place-items:center;align-content:center;gap:1.2rem;padding:2.5rem 1.25rem;text-align:center}.christianity-splash__mark{position:relative;display:grid;grid-template-columns:repeat(3,.74rem);place-content:center;gap:.55rem;width:5.8rem;height:5.8rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(37,99,235,.12),transparent 55%),#ffffff9e;box-shadow:inset 0 0 0 .55rem #fff6,0 1rem 2rem #2563eb1f}.christianity-splash__mark:before,.christianity-splash__mark:after{content:\"\";position:absolute;inset:.42rem;border:1px solid rgba(37,99,235,.16);border-radius:inherit;animation:christianity-loader-ring 1.8s ease-out infinite}.christianity-splash__mark:after{animation-delay:.48s}.christianity-splash__mark span{width:.74rem;height:.74rem;border-radius:999px;background:var(--christianity-theme-focus);box-shadow:0 .35rem .85rem #2563eb38;animation:christianity-loader-dot .96s ease-in-out infinite}.christianity-splash__mark span:nth-child(2){animation-delay:.14s}.christianity-splash__mark span:nth-child(3){animation-delay:.28s}@keyframes christianity-loader-dot{0%,to{opacity:.38;transform:translateY(0) scale(.82)}45%{opacity:1;transform:translateY(-.22rem) scale(1)}}@keyframes christianity-loader-ring{0%{opacity:.48;transform:scale(.72)}to{opacity:0;transform:scale(1.2)}}.christianity-splash span,.christianity-start__copy span{color:var(--christianity-theme-olive);font-size:.76rem;font-weight:900;text-transform:uppercase}.christianity-splash h2,.christianity-start h2,.christianity-start p{margin:0}.christianity-splash h2{margin-top:.2rem;font-size:clamp(1.65rem,7vw,2.7rem);line-height:1}.christianity-splash p{max-width:26rem;margin:.55rem auto 0;color:#1f2933ad;font-size:.96rem}.christianity-start{display:grid;align-content:center;gap:1rem;min-height:min(34rem,calc(100dvh - 8rem));padding:0}.christianity-start__hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,18rem);gap:1rem;align-items:center}.christianity-start__copy{display:grid;gap:.45rem;max-width:36rem}.christianity-start h2{font-size:clamp(1.6rem,6vw,2.5rem);line-height:1.02}.christianity-start__copy p,.christianity-start__cards p,.christianity-start__modes p{color:#1f2933ad;line-height:1.42}.christianity-start__fan{position:relative;display:grid;place-items:center;min-height:13rem;overflow:visible}.christianity-start__fan val-christianity-card{position:absolute;width:clamp(5.7rem,12vw,7.2rem);transform-origin:50% 92%;filter:drop-shadow(0 1rem 1.5rem rgba(82,64,28,.18))}.christianity-start__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.christianity-start__cards article,.christianity-start__modes article{display:grid;gap:.65rem;align-content:start;padding:.95rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#ffffffd1;box-shadow:0 .75rem 1.7rem #52401c14}.christianity-start__cards article{min-height:11rem}.christianity-start__cards strong{font-size:1.05rem}.christianity-start__status{display:flex;flex-wrap:wrap;gap:.45rem}.christianity-start__status span,.christianity-start__modes article>span{display:inline-flex;align-items:center;width:fit-content;min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(37,99,235,.22);border-radius:999px;background:#eff6ffe0;color:#1f2933b8;font-size:.75rem;font-weight:850}.christianity-start__modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.christianity-start__modes article{min-height:8.5rem;background:#f8fafcb8;box-shadow:none;opacity:.82}.christianity-start__modes strong{font-size:.92rem}.christianity-start__modes p{margin:0;font-size:.8rem}.christianity-primary-action,.christianity-secondary-action{justify-self:start;min-height:2.5rem;padding:0 .9rem;border-radius:999px;font:inherit;font-weight:900}.christianity-primary-action{border:1px solid rgba(16,42,67,.16);background:#102a43;color:#fff}.christianity-secondary-action{border:1px solid var(--christianity-theme-gold-ring);background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink)}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-table{box-sizing:border-box;position:relative;display:grid;gap:.45rem;width:100%;max-width:100%;min-width:0;padding:.45rem .35rem;border-radius:.75rem;background:radial-gradient(circle at 50% 44%,rgba(255,255,255,.2),transparent 44%),linear-gradient(180deg,#c8ddf7,#b9d4f1);box-shadow:inset 0 0 0 1px #ffffff57,inset 0 1.4rem 3rem #ffffff29;overflow-x:clip;overflow-y:visible}.christianity-impact-layer{position:absolute;inset:0;z-index:30;pointer-events:none}.christianity-combat-trail{position:absolute;inset:0;z-index:2;--christianity-combat-trail-x: 50%;--christianity-combat-trail-y: 72%;--christianity-combat-trail-mid-x: 50%;--christianity-combat-trail-mid-y: 50%;--christianity-combat-trail-length: 34%;--christianity-combat-trail-angle: -90deg;--christianity-combat-trail-color: rgba(255, 255, 255, .96);--christianity-combat-trail-glow: rgba(96, 165, 250, .56);--christianity-combat-trail-hit: rgba(220, 38, 38, .42)}.christianity-combat-trail.is-leader-target{--christianity-combat-trail-color: rgba(255, 255, 255, .98);--christianity-combat-trail-glow: rgba(250, 204, 21, .52);--christianity-combat-trail-hit: rgba(250, 204, 21, .38)}.christianity-combat-trail.is-character-target{--christianity-combat-trail-color: rgba(219, 234, 254, .98);--christianity-combat-trail-glow: rgba(96, 165, 250, .58);--christianity-combat-trail-hit: rgba(220, 38, 38, .38)}.christianity-combat-trail:before{position:absolute;left:var(--christianity-combat-trail-mid-x);top:var(--christianity-combat-trail-mid-y);width:clamp(2.8rem,9vw,5.4rem);height:clamp(2.8rem,9vw,5.4rem);border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.72),transparent 28%),radial-gradient(circle,var(--christianity-combat-trail-hit),transparent 62%);content:\"\";opacity:0;transform:translate(-50%,-50%) scale(.58);animation:christianity-combat-burst .88s ease-out both}.christianity-combat-trail>span{position:absolute;left:var(--christianity-combat-trail-x);top:var(--christianity-combat-trail-y);width:var(--christianity-combat-trail-length);height:.36rem;border-radius:999px;background:linear-gradient(90deg,transparent 0 5%,rgba(255,255,255,.92) 42%,var(--christianity-combat-trail-color) 72%,rgba(96,165,250,.72)),repeating-linear-gradient(90deg,transparent 0 .7rem,rgba(255,255,255,.66) .7rem .92rem);box-shadow:0 0 .72rem var(--christianity-combat-trail-glow),0 0 1.45rem var(--christianity-combat-trail-glow);transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0);transform-origin:0 50%;animation:christianity-combat-arrow-trail .84s ease-out both}.christianity-combat-trail>span:after{position:absolute;top:50%;right:-.18rem;width:.95rem;height:.95rem;border-top:.28rem solid var(--christianity-combat-trail-color);border-right:.28rem solid var(--christianity-combat-trail-color);content:\"\";filter:drop-shadow(0 0 .45rem var(--christianity-combat-trail-glow));transform:translateY(-50%) rotate(45deg)}@keyframes christianity-combat-arrow-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0)}24%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(.52)}66%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1)}to{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1.04)}}@keyframes christianity-combat-burst{0%,42%{opacity:0;transform:translate(-50%,-50%) scale(.58) rotate(0)}58%{opacity:1;transform:translate(-50%,-50%) scale(.98) rotate(4deg)}to{opacity:0;transform:translate(-50%,-50%) scale(1.42) rotate(12deg)}}@media (prefers-reduced-motion: reduce){.christianity-combat-trail,.christianity-combat-trail:before,.christianity-combat-trail>span,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card,.christianity-floating-card-shell.is-sliding-next .christianity-floating-card,.christianity-splash__mark:before,.christianity-splash__mark:after,.christianity-splash__mark span{animation:none!important}}.christianity-player-side{box-sizing:border-box;display:grid;gap:.35rem;width:100%;max-width:100%;min-width:0;padding:.35rem .3rem;border-radius:.7rem;background:linear-gradient(180deg,#ffffff47,#ffffff24),#4a7ab414;grid-template-rows:minmax(7rem,1fr) auto;min-height:13.75rem}.christianity-player-side--opponent{grid-template-rows:auto minmax(7rem,1fr)}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{--christianity-battle-card-width: clamp(4.8rem, 15vw, 6.6rem);box-sizing:border-box;display:grid;grid-template-columns:repeat(4,var(--christianity-battle-card-width));gap:.5rem;align-items:center;justify-content:center;width:100%;max-width:100%;min-width:0;overflow:hidden;min-height:clamp(9.1rem,29vw,11rem);padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff6b,#ffffff3d),#1f4f8914;transition:background .16s ease,box-shadow .16s ease}.christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#fffaf0f5,#ffffffd6),#ffffffc2;box-shadow:inset 0 0 0 .14rem var(--christianity-theme-gold-soft),0 .8rem 1.7rem #5f6f2a1f}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff57,#fff3),#1f4f8914}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .18rem var(--christianity-theme-gold-soft),0 .85rem 1.4rem var(--christianity-theme-shadow)}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{display:grid;place-items:center;justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff2e;color:inherit;font:inherit;opacity:.62}.christianity-slot--play-target{position:relative;opacity:1;border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0eb,#f8fafcd1),#ffffffb3;color:#5d4305;font-weight:800;overflow:hidden;box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-slot--play-target:before{content:\"\";position:absolute;inset:.35rem;border:1px solid rgba(214,162,29,.22);border-radius:.4rem;background:linear-gradient(135deg,rgba(214,162,29,.1),transparent 46%),radial-gradient(circle at 50% 42%,var(--christianity-theme-glow),transparent 58%)}.christianity-slot--play-target span{position:relative;z-index:2;padding:.16rem .44rem;border-radius:999px;background:#ffffffc7;font-size:.78rem}@keyframes christianity-target-pulse{0%,to{box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow)}50%{box-shadow:inset 0 0 0 .16rem #d6a21d57,0 .9rem 1.65rem var(--christianity-theme-shadow-strong)}}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{padding:.75rem;border-radius:.75rem;background:#ffffffeb}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-actions button{pointer-events:auto;border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-actions button:disabled{display:none}.christianity-end-turn{border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:10.8rem;padding:.25rem .25rem 2.1rem;isolation:isolate;overflow:visible}.christianity-hand-shelf{position:relative;display:grid;z-index:12;min-height:12rem;margin-top:-1.15rem;padding:1.45rem .25rem 1rem;overflow:visible}.christianity-hand-shelf--opponent{z-index:8;min-height:6.85rem;margin-top:0;margin-bottom:0;padding:.45rem .25rem .85rem}.christianity-hand-fan--opponent{min-height:5.9rem;padding-bottom:.75rem;align-items:start}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.7rem,12vw,4.9rem);aspect-ratio:var(--christianity-card-aspect);margin-inline:-.9rem;transform-origin:50% 120%}.christianity-hand-fan--opponent .christianity-hidden-card-button:first-child{margin-left:0}.christianity-hand-fan--opponent .christianity-hidden-card-button:last-child{margin-right:0}.christianity-card-preview-card,.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-render-card-button{display:block;padding:0;overflow:visible;border:0;background:transparent;box-shadow:none}.christianity-render-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-gallery-card-button{display:block;width:min(100%,6.8rem);min-width:0;aspect-ratio:var(--christianity-card-aspect);padding:0;overflow:visible;border:0;background:transparent;color:inherit;font:inherit;text-align:left;box-shadow:none}.christianity-gallery-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-card-preview-card--hand.christianity-render-card-button,.christianity-card-preview-card--battle.christianity-render-card-button,.christianity-leader-card.christianity-render-card-button{aspect-ratio:var(--christianity-card-aspect)}.christianity-card-preview-card--hand.christianity-render-card-button:hover val-christianity-card,.christianity-card-preview-card--hand.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-target val-christianity-card{filter:drop-shadow(0 0 .45rem rgba(37,99,235,.45)) drop-shadow(0 .55rem 1rem rgba(37,99,235,.22))}.christianity-card-preview-card--battle.christianity-render-card-button.is-ready-attacker val-christianity-card{filter:drop-shadow(0 0 .24rem rgba(22,163,74,.32)) drop-shadow(0 .45rem .8rem rgba(22,163,74,.16))}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected{transform:translateY(-.28rem)}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card{filter:drop-shadow(0 0 .4rem rgba(250,204,21,.52)) drop-shadow(0 .65rem 1rem rgba(37,99,235,.24))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker{z-index:8;pointer-events:none}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card{animation:christianity-combat-lunge .98s cubic-bezier(.2,.78,.2,1) both;filter:drop-shadow(0 0 .5rem rgba(250,204,21,.72)) drop-shadow(0 1rem 1.4rem rgba(16,42,67,.28))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card{animation:christianity-combat-impact .98s ease-out both;filter:drop-shadow(0 0 .5rem rgba(220,38,38,.48)) drop-shadow(0 .75rem 1.1rem rgba(220,38,38,.18))}@keyframes christianity-combat-lunge{0%{transform:translateZ(0) rotate(0) scale(1)}24%{transform:translate3d(0,-1.4rem,0) rotate(-4deg) scale(1.08)}52%{transform:translate3d(0,-4.9rem,0) rotate(7deg) scale(1.12)}68%{transform:translate3d(0,-3.6rem,0) rotate(-3deg) scale(1.04)}to{transform:translateZ(0) rotate(0) scale(1)}}@keyframes christianity-combat-impact{0%,42%{transform:translateZ(0) scale(1)}54%{transform:translate3d(.16rem,-.12rem,0) rotate(2deg) scale(1.04)}64%{transform:translate3d(-.14rem,.1rem,0) rotate(-2deg) scale(.98)}to{transform:translateZ(0) rotate(0) scale(1)}}.christianity-leader-card.christianity-render-card-button.is-protected-target{opacity:.82}.christianity-leader-card.christianity-render-card-button.is-protected-target val-christianity-card{filter:grayscale(.22) drop-shadow(0 0 .28rem rgba(100,116,139,.26))}.christianity-card-frame{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;overflow:hidden;padding:.48rem;text-align:left;background:linear-gradient(180deg,#fffffffa,#f8fafcfa),radial-gradient(circle at 15% 0%,rgba(214,162,29,.12),transparent 44%);box-shadow:0 .5rem 1.25rem #2430441a,inset 0 0 0 .18rem #ffffff9e}.christianity-card-frame-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.16rem;align-items:start;min-width:0}.christianity-card-frame-header small{grid-column:1;min-width:0;overflow:hidden;color:#1f2933a3;font-size:clamp(.52rem,1.5vw,.68rem);line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-header strong{grid-column:1;justify-self:start;align-self:start;min-width:0;padding:0;overflow:hidden;border-radius:0;background:transparent;font-size:clamp(.82rem,2.5vw,1.05rem);line-height:1.02;text-overflow:ellipsis;white-space:nowrap}.christianity-card-preview-card--hand .christianity-card-frame-header strong,.christianity-card-preview-card--battle .christianity-card-frame-header strong,.christianity-leader-card .christianity-card-frame-header strong{display:-webkit-box;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-preview-card--hand .christianity-card-frame-header small{text-transform:uppercase}.christianity-card-preview-card--hand .christianity-card-frame-art>span{display:-webkit-box;max-width:88%;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-frame-header span{grid-column:2;grid-row:1 / span 2;display:grid;place-items:center;min-width:1.3rem;height:1.3rem;padding:0 .22rem;border-radius:999px;background:#ffd91a;color:#243044;font-size:.8rem;font-weight:900;line-height:1;box-shadow:inset 0 -.08rem #52401c2e}.christianity-card-frame-header span.is-offering-pips,.christianity-full-card-cost.is-offering-pips,.christianity-offering-card span.is-offering-pips{grid-auto-flow:column;gap:.14rem;min-width:auto;padding:0 .28rem}.christianity-card-frame-header span.is-offering-pips i,.christianity-full-card-cost.is-offering-pips i,.christianity-offering-card span.is-offering-pips i,.christianity-full-card-pips i{display:block;width:.72rem;height:.72rem;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9) 0 .12rem,transparent .13rem),#ffd91a;box-shadow:inset 0 -.08rem #52401c2e,0 .12rem .24rem #102a431a}.christianity-card-frame-art{position:relative;display:grid;place-items:center;min-height:0;overflow:hidden;border-radius:.36rem;background:linear-gradient(135deg,#5f6f2a2e,#d6a21d24),radial-gradient(circle at 50% 18%,rgba(255,255,255,.72),transparent 48%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-card-frame-art>span{max-width:78%;overflow:hidden;color:#2430447a;font-size:clamp(.82rem,2.2vw,1.05rem);font-weight:900;line-height:1.02;text-align:center;text-overflow:ellipsis}.christianity-card-frame-art small{position:absolute;right:0;bottom:.28rem;max-width:78%;padding:.1rem .34rem;overflow:hidden;border-radius:999px 0 0 999px;background:#ffffffe6;color:#1f2933a8;font-size:.48rem;font-style:italic;font-weight:900;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-card-frame-effect{display:grid;align-content:center;gap:.1rem;min-height:1.45rem;padding:.24rem;overflow:hidden;border-radius:.34rem;background:radial-gradient(circle at 50% 70%,rgba(36,48,68,.06),transparent 44%),#ffffffdb}.christianity-card-frame-effect strong{justify-self:end;align-self:end;padding:.12rem .32rem;border-radius:999px;background:#edf2f7;font-size:clamp(.66rem,2vw,.82rem);line-height:1.05}.christianity-card-frame-effect p{margin:0;overflow:hidden;color:#1f2933b8;font-size:.58rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-footer{display:flex;justify-content:space-between;gap:.22rem;color:#1f293385;font-size:.46rem;font-weight:800;line-height:1}.christianity-card-frame--battle{gap:.22rem;padding:.42rem}.christianity-card-frame--battle .christianity-card-frame-art{min-height:2.6rem}.christianity-card-frame--leader .christianity-card-frame-art{background:linear-gradient(135deg,#2563eb24,#d6a21d29),radial-gradient(circle at 50% 18%,rgba(255,255,255,.78),transparent 48%),#e7eef8}.christianity-card-frame--list{width:clamp(4.4rem,22vw,5.8rem);padding:.38rem}.christianity-card-frame--list .christianity-card-frame-art{min-height:2.5rem}.christianity-hand-card-wrap{position:relative;display:grid;justify-items:center;flex:0 0 auto;margin-inline:-.42rem;padding-bottom:2rem;transform-origin:50% 115%;transition:transform .16s ease,filter .16s ease}.christianity-hand-card-wrap:hover,.christianity-hand-card-wrap.is-selected,.christianity-hand-card-wrap.is-dragging{z-index:3}.christianity-hand-card-wrap:hover .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-selected .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-dragging .christianity-card-preview-card--hand{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .12rem var(--christianity-theme-gold-soft),0 1rem 2rem var(--christianity-theme-shadow);transform:translateY(-.5rem) scale(1.045)}.christianity-card-preview-card--hand{cursor:grab;touch-action:none}.christianity-card-preview-card--hand:active{cursor:grabbing}.christianity-card-preview-card--hand.cdk-drag-disabled{cursor:not-allowed}.christianity-card-drag-preview,.christianity-card-preview-card.cdk-drag-preview{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;box-shadow:0 0 0 .16rem #fff4c2ad,0 1.5rem 3rem var(--christianity-theme-shadow-strong);transform:rotate(2deg) scale(1.03)}.christianity-card-drag-preview val-christianity-card{display:block;width:100%;height:100%}.christianity-card-drag-placeholder,.christianity-card-preview-card.cdk-drag-placeholder{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;background:#94a3b81f;opacity:.22}.christianity-slot.cdk-drop-list-dragging,.christianity-offering-drop-target.cdk-drop-list-dragging{border-color:var(--christianity-theme-gold-ring)}.christianity-slot.cdk-drop-list-receiving,.christianity-offering-drop-target.cdk-drop-list-receiving{box-shadow:inset 0 0 0 .18rem #d6a21d57,0 1rem 1.9rem var(--christianity-theme-shadow-strong)}.christianity-card-eye{position:absolute;right:50%;bottom:.38rem;width:2.15rem;height:1.55rem;border:1px solid color-mix(in srgb,var(--christianity-theme-focus) 52%,transparent);border-radius:999px;background:#fffffff0;box-shadow:0 .55rem 1.1rem #102a4324;opacity:0;transform:translate(50%,-.2rem) scale(.92);transition:opacity .14s ease,transform .14s ease,border-color .14s ease}.christianity-card-eye:before{content:\"\";position:absolute;top:50%;left:50%;width:1.1rem;height:1.1rem;border:.12rem solid var(--christianity-theme-focus);border-radius:82% 0;background:#fffffff0;transform:translate(-50%,-50%) rotate(45deg)}.christianity-card-eye:after{content:\"\";position:absolute;top:50%;left:50%;width:.42rem;height:.42rem;border:.09rem solid rgba(255,255,255,.95);border-radius:999px;background:radial-gradient(circle at 35% 32%,#ffffff 0 .06rem,transparent .07rem),var(--christianity-theme-focus);transform:translate(-50%,-50%)}.christianity-hand-card-wrap:hover .christianity-card-eye,.christianity-hand-card-wrap.is-selected .christianity-card-eye,.christianity-card-eye:focus-visible{opacity:1;transform:translate(50%) scale(1)}.christianity-offering-drop-target{display:grid;width:min(100%,5.9rem);height:7.1rem;min-height:0;max-height:7.1rem;border:1px solid transparent;border-radius:.64rem;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.christianity-offering-drop-target.is-play-target{border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0f5,#fffffff0),radial-gradient(circle at 82% 14%,rgba(250,204,21,.28) 0 .7rem,transparent .72rem);box-shadow:inset 0 0 0 .12rem #d6a21d3d,0 .8rem 1.55rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-offering-drop-target>.cdk-drag-placeholder{display:none}.christianity-card-frame--back,.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:0;aspect-ratio:var(--christianity-card-aspect);place-items:center;padding:.55rem;overflow:hidden;box-shadow:0 .8rem 1.55rem #24304424;transform-origin:50% -18%;background:var(--christianity-card-back)}.christianity-card-frame--back:before,.christianity-card-preview-card--back:before{content:\"\";position:absolute;inset:.5rem;border:1px solid rgba(16,42,67,.12);border-radius:.38rem;background:linear-gradient(180deg,#ffffff2e,#ffffff0a);box-shadow:inset 0 0 0 .12rem #ffffff1f}.christianity-card-preview-card--battle{justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;min-width:0;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);margin-inline:0}.christianity-card-preview-card>span,.christianity-card-mini>span,.christianity-offering-pile>span,.christianity-offering-card>span,.christianity-leader-card>span,.christianity-zone-card>span,.christianity-zone-pile>span{position:relative;z-index:2;align-self:start;font-weight:700;line-height:1.05}.christianity-card-preview-card>strong,.christianity-card-mini>strong,.christianity-offering-pile>strong,.christianity-offering-card>strong,.christianity-leader-card>strong,.christianity-zone-card>strong,.christianity-zone-pile>strong{position:relative;z-index:3;justify-self:end;align-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{box-sizing:border-box;display:grid;grid-template-columns:minmax(4.8rem,6.2rem) minmax(5rem,1fr) minmax(4.6rem,6.2rem);gap:.65rem;align-items:end;justify-items:center;width:100%;max-width:100%;min-width:0}.christianity-player-rack--opponent{align-items:start}.christianity-hand-meter{position:absolute;top:0;right:.35rem;z-index:4;display:inline-grid;grid-auto-flow:column;gap:.25rem;align-items:center;min-height:1.7rem;padding:.18rem .46rem;border:1px solid rgba(36,48,68,.12);border-radius:999px;background:#ffffffe6;box-shadow:0 .35rem .8rem #102a4314}.christianity-hand-meter--opponent{top:.15rem}.christianity-hand-meter span{color:#1f293394;font-size:.68rem}.christianity-hand-meter strong{font-size:.86rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:grid;justify-items:center;justify-self:center;width:min(100%,6.2rem)}.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-frame{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;align-content:stretch}.christianity-offering-pile,.christianity-zone-card,.christianity-zone-pile{grid-template-rows:auto minmax(2.6rem,1fr) auto;align-content:stretch;gap:.32rem}.christianity-card-mini{width:3.5rem}.christianity-offering-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;justify-self:center;width:min(100%,6.15rem);height:7.35rem;max-height:7.35rem;min-height:0;padding:.55rem .48rem .48rem;background:linear-gradient(180deg,#fff,#f8fafc),linear-gradient(135deg,rgba(250,204,21,.18),transparent 42%)}.christianity-offering-drop-target .christianity-offering-pile{width:100%;height:100%;max-height:none}.christianity-offering-pile>span:not(.christianity-empty-card-slot){position:relative;z-index:3;align-self:end;justify-self:stretch;max-width:100%;overflow:hidden;padding:.12rem .28rem 0;color:#1f2933b8;font-size:clamp(.72rem,2.3vw,.88rem);font-weight:800;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-pile>strong{position:absolute;right:.42rem;bottom:.42rem;z-index:3;min-width:1.7rem;padding:.13rem .38rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-offering-pile>small{position:absolute;bottom:.47rem;left:.42rem;z-index:3;max-width:calc(100% - 2.7rem);overflow:hidden;color:#1f293394;font-size:.58rem;font-weight:850;line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-slot>.cdk-drag-placeholder{display:none}.christianity-offering-pile val-christianity-card{position:absolute;top:1.42rem;left:50%;z-index:1;width:clamp(2.75rem,14vw,3.55rem);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .42rem .8rem rgba(16,42,67,.14))}.christianity-offering-pile:before,.christianity-offering-pile:after{content:\"\";position:absolute;top:1.52rem;left:50%;z-index:0;width:clamp(2.75rem,14vw,3.55rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.35rem;background:#f8fafcf0;transform:translate(calc(-50% + .24rem)) translateY(.1rem) rotate(4deg)}.christianity-offering-pile:after{background:var(--christianity-card-back);transform:translate(calc(-50% - .24rem)) translateY(.22rem) rotate(-4deg)}.christianity-offering-pile.is-empty-zone:before,.christianity-offering-pile.is-empty-zone:after{display:none}.christianity-leader-card{align-self:center;justify-self:center;width:clamp(4.75rem,17vw,6rem);min-height:0;aspect-ratio:var(--christianity-card-aspect)}.christianity-attack-drop-target{display:grid;justify-items:center;min-width:0}.christianity-rack-spacer{display:block;min-height:1px}.christianity-battle-zone{grid-template-columns:repeat(4,var(--christianity-battle-card-width))}.christianity-shared-zone{box-sizing:border-box;display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch;width:100%;max-width:100%;min-width:0}.christianity-zone-card,.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;min-height:6.45rem;padding:.7rem .52rem .55rem;border-color:#24304414;background:linear-gradient(180deg,#ffffff8a,#f8fafc5c),#ffffff3d}.christianity-zone-pile{box-shadow:inset 0 0 0 999px #ffffff0a,0 .45rem 1rem #102a430f}.christianity-zone-card.is-play-target{border-color:#2563eb61;box-shadow:inset 0 0 0 999px #2563eb14,0 0 0 .18rem #2563eb1f}.christianity-zone-pile--history.has-new-card{animation:christianity-history-pulse .9s ease-out both}@keyframes christianity-history-pulse{0%{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}28%{box-shadow:inset 0 0 0 999px #ffffff29,0 0 0 .25rem #2563eb2e;transform:scale(1.025)}to{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}}.christianity-zone-card val-christianity-card,.christianity-zone-pile val-christianity-card{position:absolute;top:.62rem;left:50%;z-index:1;width:clamp(3.3rem,16vw,4.35rem);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .35rem .75rem rgba(16,42,67,.12))}.christianity-zone-pile--deck val-christianity-card{transform:translate(-50%) rotate(3deg)}.christianity-zone-card>span:not(.christianity-empty-card-slot),.christianity-zone-pile>span:not(.christianity-empty-card-slot){position:relative;z-index:3;justify-self:start;max-width:calc(100% - 1.55rem);overflow:hidden;color:#1f2933d6;font-size:clamp(.76rem,2.5vw,.92rem);text-overflow:ellipsis;white-space:nowrap}.christianity-zone-card>strong,.christianity-zone-pile>strong{position:absolute;right:.45rem;bottom:.45rem;z-index:4;min-width:1.65rem;padding:.12rem .4rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-zone-card>em{position:relative;z-index:4;justify-self:center;align-self:end;padding:.12rem .38rem;border-radius:999px;background:#2563eb1f;color:var(--christianity-theme-focus);font-size:.68rem;font-style:normal;font-weight:900}.christianity-empty-card-slot{position:absolute;top:.72rem;left:50%;z-index:1;display:block;width:clamp(3.3rem,16vw,4.35rem);aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(16,42,67,.22);border-radius:.35rem;background:#ffffff5c;transform:translate(-50%)}.christianity-zone-pile:before,.christianity-zone-pile:after{content:\"\";position:absolute;top:.82rem;left:50%;z-index:0;width:clamp(3.3rem,16vw,4.35rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.35rem;background:#f8fafcf0;transform:translate(calc(-50% + .22rem)) rotate(4deg)}.christianity-zone-pile:after{background:var(--christianity-card-back);transform:translate(calc(-50% - .22rem)) translateY(.16rem) rotate(-3deg)}.christianity-zone-pile.is-empty-zone:before,.christianity-zone-pile.is-empty-zone:after{display:none}.christianity-floating-card-shell{position:fixed;top:50%;left:50%;z-index:10020;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.55rem;width:min(56rem,calc(100vw - 1.25rem));max-height:calc(100dvh - 4.25rem);overflow:visible;overscroll-behavior:contain;scrollbar-width:none;transform:translate(-50%,-50%)}.christianity-floating-card-shell::-webkit-scrollbar{display:none}.christianity-floating-card-shell.is-history-preview{width:min(56rem,calc(100vw - 1.25rem))}.christianity-preview-topbar{position:relative;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:.65rem;min-height:2.05rem}.christianity-preview-position{display:inline-grid;place-items:center;min-height:2rem;min-width:3.15rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933b8;font-size:.76rem;font-weight:900;box-shadow:0 .45rem 1rem #102a431a}.christianity-floating-card{position:relative;z-index:2;display:block;width:min(17.5rem,calc(52dvh - 3rem),calc(100vw - 7rem));min-height:0;padding:0;border:0;border-radius:.75rem;background:transparent;box-shadow:0 0 2.2rem var(--christianity-theme-glow);touch-action:none;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(var(--preview-rotate-y, -5deg));transition:transform 90ms ease-out}.christianity-preview-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(13rem,17rem);gap:1rem;align-items:center;min-height:0}.christianity-preview-stage{position:relative;display:grid;place-items:center;justify-self:center;width:min(100%,31rem);min-width:0;min-height:0;padding-inline:4.4rem;perspective:52rem}.christianity-preview-stage:before{content:\"\";position:absolute;inset:10% 2.35rem;z-index:0;border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.26),transparent 58%),linear-gradient(90deg,transparent,rgba(37,99,235,.1),transparent);opacity:.8;pointer-events:none}.christianity-preview-ghost{position:absolute;z-index:1;width:min(13rem,calc(42dvh - 3rem),34vw);opacity:.34;pointer-events:none;filter:blur(.02rem) saturate(.9);transition:transform .36s cubic-bezier(.2,.84,.22,1),opacity .36s ease}.christianity-preview-ghost--previous{transform:translate(-86%) rotateY(22deg) rotate(-4deg) scale(.8)}.christianity-preview-ghost--next{transform:translate(86%) rotateY(-22deg) rotate(4deg) scale(.8)}.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card{animation:christianity-preview-slide-previous .36s cubic-bezier(.2,.84,.22,1) both}.christianity-floating-card-shell.is-sliding-next .christianity-floating-card{animation:christianity-preview-slide-next .36s cubic-bezier(.2,.84,.22,1) both}@keyframes christianity-preview-slide-previous{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) - 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(calc(var(--preview-rotate-y, -5deg) + 16deg)) scale(.9)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(var(--preview-rotate-y, -5deg)) scale(1)}}@keyframes christianity-preview-slide-next{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) + 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(calc(var(--preview-rotate-y, -5deg) - 16deg)) scale(.9)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(var(--preview-rotate-y, -5deg)) scale(1)}}.christianity-preview-side{display:grid;min-width:0}.christianity-floating-card val-christianity-card{display:block;width:100%;min-height:0}.christianity-full-card-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.42rem;align-items:center}.christianity-full-card-header strong{min-width:0;display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;text-overflow:clip;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:clamp(1.25rem,5vw,1.85rem);line-height:1.04}.christianity-full-card-type-icon,.christianity-full-card-cost{display:grid;place-items:center;border-radius:999px}.christianity-full-card-type-icon{width:1.6rem;height:1.6rem;background:radial-gradient(circle at 50% 50%,rgba(95,111,42,.72) 0 .22rem,transparent .24rem),#2430441a}.christianity-full-card-type-icon img{width:1rem;height:1rem;object-fit:contain}.christianity-full-card-cost{min-width:2.1rem;height:2.1rem;padding:0 .36rem;background:#ffd91a;color:#243044;font-size:1.1rem;font-weight:900;box-shadow:inset 0 -.12rem #52401c2e}.christianity-full-card-art{position:relative;display:grid;place-items:center;min-height:9rem;overflow:hidden;border-radius:.48rem;background:linear-gradient(135deg,#5f6f2a33,#d6a21d29),radial-gradient(circle at 50% 25%,rgba(255,255,255,.76),transparent 42%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-full-card-art img{width:100%;height:100%;object-fit:cover}.christianity-full-card-art>span{max-width:80%;color:#24304494;font-size:clamp(1.1rem,5vw,1.8rem);font-weight:900;line-height:1.05;text-align:center}.christianity-full-card-art small{position:absolute;right:0;bottom:.55rem;min-width:5rem;padding:.16rem .48rem;border-radius:999px 0 0 999px;background:#ffffffe6;box-shadow:0 .3rem .8rem #102a431f;color:#1f2933bd;font-size:.68rem;font-style:italic;font-weight:900;text-align:center;text-transform:uppercase}.christianity-full-card-verse,.christianity-full-card-effect{display:grid;gap:.32rem}.christianity-full-card-verse p,.christianity-full-card-effect p{margin:0;line-height:1.25}.christianity-full-card-verse{color:#171923;font-family:Georgia,Times New Roman,serif;font-size:clamp(.72rem,2.7vw,.86rem)}.christianity-full-card-verse strong{font-family:inherit;font-size:.78rem;font-weight:900}.christianity-full-card-effect{position:relative;align-content:start;min-height:7rem;padding:.6rem .7rem;overflow:hidden;border-radius:.45rem;background:radial-gradient(circle at 50% 72%,rgba(36,48,68,.07),transparent 34%),#ffffffdb}.christianity-full-card-stats{display:flex;gap:1rem;min-height:1.35rem}.christianity-full-card-stats strong{font-size:1rem;line-height:1}.christianity-full-card-stats .christianity-full-card-pips{display:inline-grid;grid-auto-flow:column;gap:.2rem;justify-self:start;padding:0;background:transparent}.christianity-full-card-effect>div:last-of-type{display:grid;gap:.12rem}.christianity-full-card-effect>div:last-of-type strong{font-size:.82rem}.christianity-full-card-effect p{font-size:clamp(.78rem,2.9vw,.92rem)}.christianity-full-card-rarity{position:absolute;top:.62rem;right:.62rem;width:.46rem;height:.46rem;border-radius:.12rem;transform:rotate(45deg)}.christianity-full-card-rarity.is-normal{background:#d1d5db}.christianity-full-card-rarity.is-uncommon{background:#22c55e}.christianity-full-card-rarity.is-rare{background:#3b82f6}.christianity-full-card-rarity.is-legendary{background:#eab308}.christianity-full-card-footer{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:.34rem;align-items:center;color:#1f2933ad;font-size:.58rem;line-height:1;text-transform:uppercase}.christianity-full-card-footer span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-floating-card-close{position:relative;z-index:8;min-height:2rem;padding:0 .6rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .45rem 1rem #102a431a}.christianity-preview-nav{position:absolute;top:50%;z-index:7;display:grid;place-items:center;width:2.35rem;height:2.35rem;border:1px solid rgba(37,99,235,.26);border-radius:999px;background:#ffffffeb;color:var(--christianity-theme-focus);font:inherit;font-size:1.1rem;font-weight:1000;box-shadow:0 .75rem 1.4rem #102a4324,inset 0 0 0 1px #ffffff70;transform:translateY(-50%)}.christianity-preview-nav--previous{left:.6rem}.christianity-preview-nav--next{right:.6rem}.christianity-preview-backdrop,.christianity-history-backdrop,.christianity-info-backdrop{position:fixed;inset:0;border:0;border-radius:0;background:#0f172aa3}.christianity-preview-backdrop{z-index:10010;backdrop-filter:blur(.12rem)}.christianity-info-backdrop{z-index:50}.christianity-info-panel{position:fixed;top:50%;left:50%;z-index:51;width:min(31rem,calc(100vw - 1.25rem));max-height:min(34rem,calc(100vh - 2rem));padding-top:2.35rem;transform:translate(-50%,-50%)}.christianity-info-close{position:absolute;top:0;right:.15rem;z-index:2}.christianity-rule-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem;max-height:inherit;padding:1rem;overflow-y:auto;border:1px solid rgba(36,48,68,.14);border-radius:.9rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 38%);box-shadow:0 1.2rem 2.6rem #102a433d,inset 0 0 0 .25rem #ffffff85}.christianity-rule-note-icon{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:999px;background:color-mix(in srgb,var(--christianity-theme-focus) 12%,#ffffff);color:var(--christianity-theme-focus);font-size:1rem;font-weight:900;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent)}.christianity-rule-note small,.christianity-rule-note strong,.christianity-rule-note p,.christianity-rule-note h2{margin:0}.christianity-rule-note small{color:#1f29339e;font-size:.78rem;font-weight:800;text-transform:uppercase}.christianity-rule-note h2{margin-top:.18rem;font-size:clamp(1.5rem,7vw,2.2rem);line-height:1.05}.christianity-rule-note strong{display:inline-flex;width:fit-content;margin-top:.55rem;padding:.22rem .55rem;border-radius:999px;background:#edf2f7;font-size:.92rem}.christianity-rule-note p{margin-top:.75rem;color:#1f2933c7;line-height:1.45}.christianity-rule-note ul{display:grid;gap:.45rem;margin:.8rem 0 0;padding-left:1.05rem;color:#1f2933c7;line-height:1.35}.christianity-floating-card>small,.christianity-floating-card>span{color:#1f2933a3}.christianity-floating-card>strong{font-size:clamp(1.55rem,8vw,2.35rem);line-height:1.05}.christianity-floating-card>p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-preview-rule-note{position:relative;z-index:4;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;max-height:min(18rem,54dvh);padding:.68rem .76rem;overflow-y:auto;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:linear-gradient(180deg,#ffffffe0,#f8fafcd1),radial-gradient(circle at 8% 0%,rgba(37,99,235,.07),transparent 44%);box-shadow:0 .55rem 1.2rem #102a4314}.christianity-preview-abilities{position:relative;z-index:4;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:.5rem;max-height:min(13rem,30dvh);min-height:0;padding:.72rem .78rem .78rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:.75rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 44%);box-shadow:0 .75rem 1.6rem #102a431f}.christianity-preview-abilities-header{display:flex;align-items:center;justify-content:space-between;gap:.7rem;min-width:0}.christianity-preview-abilities-header>div{display:grid;gap:.1rem;min-width:0}.christianity-preview-abilities small,.christianity-preview-abilities p,.christianity-preview-abilities-header span,.christianity-preview-ability-card strong{margin:0}.christianity-preview-abilities small{color:#1f293394;font-size:.68rem;font-weight:900;text-transform:uppercase}.christianity-preview-abilities-header span{color:#1f293385;font-size:.72rem;font-weight:900}.christianity-preview-ability-nav{display:flex;flex:0 0 auto;gap:.35rem}.christianity-preview-ability-nav button{display:grid;place-items:center;width:1.85rem;height:1.85rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:#ffffffe0;color:var(--christianity-theme-focus);font:inherit;font-size:1rem;font-weight:950;line-height:1;box-shadow:0 .35rem .85rem #2563eb24}.christianity-preview-ability-tabs{display:flex;gap:.34rem;overflow-x:auto;scrollbar-width:none}.christianity-preview-ability-tabs::-webkit-scrollbar{display:none}.christianity-preview-ability-tabs button{flex:0 0 auto;max-width:100%;min-height:1.85rem;padding:0 .58rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:999px;background:#edf2f7d1;color:#1f2933c2;font:inherit;font-size:.74rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-tabs button.is-selected{border-color:#2563eb52;background:color-mix(in srgb,var(--christianity-theme-focus) 14%,#ffffff);color:var(--christianity-theme-focus)}.christianity-preview-ability-card{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;gap:.34rem;padding:.55rem .62rem;overflow:hidden;border:1px solid rgba(148,163,184,.16);border-radius:.62rem;background:#ffffff94}.christianity-preview-ability-card strong{overflow:hidden;color:#1f2933e6;font-size:.82rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-scroll{min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain;padding-right:.25rem}.christianity-preview-abilities p{color:#1f2933bd;font-size:.8rem;line-height:1.32}.christianity-preview-ability-footer{display:flex;justify-content:flex-end;align-self:end}.christianity-preview-use-ability{min-height:2rem;padding:0 .72rem;border:0;border-radius:999px;background:var(--christianity-theme-focus);color:#fff;font:inherit;font-size:.78rem;font-weight:900;box-shadow:0 .55rem 1.1rem #2563eb38}.christianity-preview-use-ability:disabled{background:#94a3b85c;color:#1f293380;box-shadow:none}.christianity-preview-rule-note small,.christianity-preview-rule-note strong,.christianity-preview-rule-note p{margin:0}.christianity-preview-rule-note small{color:#1f293394;font-size:.68rem;font-weight:800;text-transform:uppercase}.christianity-preview-rule-note strong{display:block;margin-top:.08rem;font-size:.92rem;line-height:1.1}.christianity-preview-rule-note p{margin-top:.22rem;color:#1f2933bd;font-size:.82rem;line-height:1.32}@media (min-width: 52rem){.christianity-floating-card-shell{width:min(58rem,calc(100vw - 3rem))}.christianity-floating-card{min-height:0;padding:0;width:min(22rem,calc(67dvh - 5.85rem),24rem)}}@media (max-width: 51.99rem){.christianity-floating-card-shell{top:50%;gap:.4rem;width:min(calc(100vw - .9rem),24rem);max-height:calc(100dvh - 1.15rem)}.christianity-preview-content{grid-template-columns:minmax(0,1fr)}.christianity-preview-side{display:none}.christianity-preview-stage{width:100%;padding-inline:3.55rem}.christianity-floating-card{width:min(14.4rem,calc(58dvh - 8.2rem),calc(100vw - 8rem));justify-self:center}.christianity-preview-ghost{display:block;width:min(7.1rem,calc(30dvh - 4rem),24vw);opacity:.24}.christianity-preview-ghost--previous{transform:translate(-118%) rotateY(24deg) rotate(-5deg) scale(.78)}.christianity-preview-ghost--next{transform:translate(118%) rotateY(-24deg) rotate(5deg) scale(.78)}.christianity-floating-card-close{min-height:1.9rem;padding:0 .58rem;font-size:.72rem}.christianity-preview-nav{width:2.2rem;height:2.2rem}.christianity-preview-nav--previous{left:.35rem}.christianity-preview-nav--next{right:.35rem}.christianity-preview-abilities{max-height:min(9.6rem,27dvh);padding:.62rem .7rem}.christianity-preview-ability-tabs{padding-bottom:.02rem}.christianity-preview-ability-card{padding:.48rem .54rem}.christianity-preview-abilities p{font-size:.78rem;line-height:1.24}.christianity-preview-use-ability{min-height:1.95rem;padding-inline:.68rem}}.christianity-history-backdrop{z-index:40}.christianity-gallery-backdrop{z-index:10000;background:#0f172ab8;backdrop-filter:blur(.14rem)}.christianity-history-drawer{position:fixed;right:auto;bottom:max(.5rem,env(safe-area-inset-bottom));left:50%;z-index:41;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;width:min(calc(100vw - 1rem),44rem);min-height:min(18rem,calc(100dvh - 1rem));max-height:min(32rem,calc(100dvh - 2rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347;transform:translate(-50%)}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-dialog-actions{display:flex;align-items:center;gap:.45rem}.christianity-dialog-close{min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#fff;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .8rem #102a4314}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem .1rem .25rem}.christianity-history-grid::-webkit-scrollbar,.christianity-offering-list::-webkit-scrollbar{width:.65rem}.christianity-history-grid::-webkit-scrollbar-track,.christianity-offering-list::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-history-grid::-webkit-scrollbar-thumb,.christianity-offering-list::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offerings-drawer{grid-template-rows:auto auto minmax(0,1fr);width:min(calc(100vw - 1rem),48rem);min-height:min(20rem,calc(100dvh - 1rem));max-height:min(34rem,calc(100dvh - 2rem))}.christianity-offerings-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;padding:.72rem .8rem;border:1px solid rgba(36,48,68,.12);border-radius:.7rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 8% 0%,rgba(214,162,29,.12),transparent 42%)}.christianity-offerings-note p{margin:0;color:#1f2933c2;font-size:.86rem;line-height:1.35}.christianity-offering-list{display:grid;gap:.6rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem}.christianity-offering-row{display:grid;grid-template-columns:minmax(5.4rem,6.5rem) minmax(0,1fr);gap:.65rem;align-items:center;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.65rem;background:#fff}.christianity-offering-row.is-exhausted{opacity:.68}.christianity-gallery-drawer{position:fixed;grid-template-rows:auto auto auto minmax(0,1fr);inset:0;z-index:10001;box-sizing:border-box;width:100dvw;height:100dvh;max-width:none;min-height:100dvh;max-height:100dvh;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));border:0;border-radius:0;background:linear-gradient(180deg,#f8fafcfc,#eff6fffc),radial-gradient(circle at 16% 0%,rgba(37,99,235,.12),transparent 42%);transform:none}.christianity-gallery-drawer header>div:first-child{display:grid;gap:.15rem;min-width:0}.christianity-gallery-drawer header p{color:#1f293394;font-size:.82rem}.christianity-gallery-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(8.5rem,13rem);gap:.65rem;min-width:0}.christianity-gallery-controls label{display:grid;gap:.25rem;min-width:0;color:#1f29339e;font-size:.74rem;font-weight:800}.christianity-gallery-controls input,.christianity-gallery-controls select{width:100%;min-width:0;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(36,48,68,.16);border-radius:.65rem;background:#fff;color:var(--christianity-theme-ink);font:inherit;font-size:.9rem}.christianity-gallery-edition-strip{display:flex;gap:.45rem;overflow-x:auto;min-width:0;padding-bottom:.2rem}.christianity-gallery-edition-strip button{display:inline-flex;align-items:center;gap:.45rem;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(214,162,29,.38);border-radius:999px;background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800}.christianity-gallery-edition-strip img{width:1.2rem;height:1.2rem;object-fit:contain}.christianity-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.9rem,7rem));justify-content:center;align-content:start;gap:.72rem;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.35rem .15rem .65rem}.christianity-gallery-grid::-webkit-scrollbar{width:.65rem}.christianity-gallery-grid::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-gallery-grid::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offering-card{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;gap:.26rem;width:100%;min-height:7.7rem;padding:.58rem;overflow:hidden;text-align:left;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 78% 14%,rgba(250,204,21,.78) 0 .42rem,transparent .44rem);box-shadow:0 .45rem 1rem #102a431a}.christianity-offering-card small{min-width:0;overflow:hidden;color:#1f293394;font-size:.62rem;font-weight:800;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-offering-card strong{display:-webkit-box;align-self:start;min-width:0;margin-top:.1rem;overflow:hidden;overflow-wrap:anywhere;font-size:.88rem;line-height:1.05;-webkit-box-orient:vertical;-webkit-line-clamp:3}.christianity-offering-card span{position:absolute;right:.42rem;bottom:.42rem;display:grid;place-items:center;min-width:1.55rem;height:1.55rem;padding:0 .28rem;border-radius:999px;background:#edf2f7;font-size:.82rem;font-weight:900}.christianity-offering-card em{align-self:end;max-width:calc(100% - 1.9rem);overflow:hidden;color:#1f29339e;font-size:.64rem;font-style:normal;font-weight:800;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-card p,.christianity-offering-row p{margin:0}.christianity-offering-card p{align-self:end;color:#1f2933a3;font-size:.72rem;line-height:1.2}.christianity-offering-row>div{display:grid;gap:.35rem;align-content:center;min-width:0}.christianity-offering-row>div p{color:#1f2933b8;font-size:.85rem;line-height:1.3}.christianity-offering-row>div button{justify-self:start;min-height:2.2rem;padding:0 .7rem;border:1px solid rgba(16,42,67,.16);border-radius:.5rem;background:#102a43;color:#fff;font:inherit;font-weight:800}.christianity-offering-row>div button:disabled{background:#e2e8f0;color:#1f293394}.christianity-history-grid .christianity-render-card-button{justify-self:center;width:min(100%,6.4rem)}.christianity-gallery-grid .christianity-render-card-button{justify-self:center;width:min(100%,7rem)}.christianity-offering-card.christianity-render-card-button{width:min(100%,5.8rem);min-height:0;padding:0;border:0;background:transparent;box-shadow:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent);outline-offset:.125rem}:host-context(.dark),:host-context(.ion-palette-dark),:host-context(html.ion-palette-dark),:host-context(body.dark),:host-context([data-theme=\"dark\"]){--christianity-theme-ink: var(--ion-text-color, #e5edf8);--christianity-theme-surface: #111827;--christianity-theme-parchment: #13223a;--christianity-theme-olive: #93c5fd;--christianity-theme-gold: #60a5fa;--christianity-theme-gold-soft: rgba(96, 165, 250, .18);--christianity-theme-gold-ring: rgba(147, 197, 253, .42);--christianity-theme-glow: rgba(96, 165, 250, .24);--christianity-theme-focus: #93c5fd;--christianity-theme-shadow: rgba(0, 0, 0, .34);--christianity-theme-shadow-strong: rgba(0, 0, 0, .48);--christianity-card-back: linear-gradient(135deg, rgba(147, 197, 253, .2), rgba(15, 23, 42, .08)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(147, 197, 253, .15), rgba(15, 23, 42, .06)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);color-scheme:dark}:host-context(.dark) .christianity-gallery-open,:host-context(.ion-palette-dark) .christianity-gallery-open,:host-context(html.ion-palette-dark) .christianity-gallery-open,:host-context(body.dark) .christianity-gallery-open,:host-context([data-theme=\"dark\"]) .christianity-gallery-open,:host-context(.dark) .christianity-secondary-action,:host-context(.ion-palette-dark) .christianity-secondary-action,:host-context(html.ion-palette-dark) .christianity-secondary-action,:host-context(body.dark) .christianity-secondary-action,:host-context([data-theme=\"dark\"]) .christianity-secondary-action,:host-context(.dark) .christianity-gallery-edition-strip button,:host-context(.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(html.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(body.dark) .christianity-gallery-edition-strip button,:host-context([data-theme=\"dark\"]) .christianity-gallery-edition-strip button{border-color:#93c5fd5c;background:linear-gradient(180deg,#1e3a5fd1,#0f172ae0),radial-gradient(circle at 20% 0%,rgba(96,165,250,.16),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.2rem #0000003d}:host-context(.dark) .christianity-splash,:host-context(.ion-palette-dark) .christianity-splash,:host-context(html.ion-palette-dark) .christianity-splash,:host-context(body.dark) .christianity-splash,:host-context([data-theme=\"dark\"]) .christianity-splash{border-color:#93c5fd38;background:radial-gradient(circle at 50% 18%,rgba(96,165,250,.16),transparent 22rem),linear-gradient(180deg,#0f172ae0,#07111ff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #00000047}:host-context(.dark) .christianity-start__cards article,:host-context(.ion-palette-dark) .christianity-start__cards article,:host-context(html.ion-palette-dark) .christianity-start__cards article,:host-context(body.dark) .christianity-start__cards article,:host-context([data-theme=\"dark\"]) .christianity-start__cards article,:host-context(.dark) .christianity-start__modes article,:host-context(.ion-palette-dark) .christianity-start__modes article,:host-context(html.ion-palette-dark) .christianity-start__modes article,:host-context(body.dark) .christianity-start__modes article,:host-context([data-theme=\"dark\"]) .christianity-start__modes article,:host-context(.dark) .christianity-start__status span,:host-context(.ion-palette-dark) .christianity-start__status span,:host-context(html.ion-palette-dark) .christianity-start__status span,:host-context(body.dark) .christianity-start__status span,:host-context([data-theme=\"dark\"]) .christianity-start__status span,:host-context(.dark) .christianity-start__modes article>span,:host-context(.ion-palette-dark) .christianity-start__modes article>span,:host-context(html.ion-palette-dark) .christianity-start__modes article>span,:host-context(body.dark) .christianity-start__modes article>span,:host-context([data-theme=\"dark\"]) .christianity-start__modes article>span{border-color:#94a3b833;background:#0f172aad;box-shadow:0 .75rem 1.7rem #00000038}:host-context(.dark) .christianity-splash p,:host-context(.ion-palette-dark) .christianity-splash p,:host-context(html.ion-palette-dark) .christianity-splash p,:host-context(body.dark) .christianity-splash p,:host-context([data-theme=\"dark\"]) .christianity-splash p,:host-context(.dark) .christianity-start__copy p,:host-context(.ion-palette-dark) .christianity-start__copy p,:host-context(html.ion-palette-dark) .christianity-start__copy p,:host-context(body.dark) .christianity-start__copy p,:host-context([data-theme=\"dark\"]) .christianity-start__copy p,:host-context(.dark) .christianity-start__cards p,:host-context(.ion-palette-dark) .christianity-start__cards p,:host-context(html.ion-palette-dark) .christianity-start__cards p,:host-context(body.dark) .christianity-start__cards p,:host-context([data-theme=\"dark\"]) .christianity-start__cards p,:host-context(.dark) .christianity-start__modes p,:host-context(.ion-palette-dark) .christianity-start__modes p,:host-context(html.ion-palette-dark) .christianity-start__modes p,:host-context(body.dark) .christianity-start__modes p,:host-context([data-theme=\"dark\"]) .christianity-start__modes p,:host-context(.dark) .christianity-header p,:host-context(.ion-palette-dark) .christianity-header p,:host-context(html.ion-palette-dark) .christianity-header p,:host-context(body.dark) .christianity-header p,:host-context([data-theme=\"dark\"]) .christianity-header p,:host-context(.dark) .christianity-match-player small,:host-context(.ion-palette-dark) .christianity-match-player small,:host-context(html.ion-palette-dark) .christianity-match-player small,:host-context(body.dark) .christianity-match-player small,:host-context([data-theme=\"dark\"]) .christianity-match-player small,:host-context(.dark) .christianity-scoreboard span,:host-context(.ion-palette-dark) .christianity-scoreboard span,:host-context(html.ion-palette-dark) .christianity-scoreboard span,:host-context(body.dark) .christianity-scoreboard span,:host-context([data-theme=\"dark\"]) .christianity-scoreboard span{color:#e2e8f0bd}:host-context(.dark) .christianity-turn,:host-context(.ion-palette-dark) .christianity-turn,:host-context(html.ion-palette-dark) .christianity-turn,:host-context(body.dark) .christianity-turn,:host-context([data-theme=\"dark\"]) .christianity-turn,:host-context(.dark) .christianity-leader,:host-context(.ion-palette-dark) .christianity-leader,:host-context(html.ion-palette-dark) .christianity-leader,:host-context(body.dark) .christianity-leader,:host-context([data-theme=\"dark\"]) .christianity-leader,:host-context(.dark) .christianity-offerings,:host-context(.ion-palette-dark) .christianity-offerings,:host-context(html.ion-palette-dark) .christianity-offerings,:host-context(body.dark) .christianity-offerings,:host-context([data-theme=\"dark\"]) .christianity-offerings,:host-context(.dark) .christianity-hidden-hand,:host-context(.ion-palette-dark) .christianity-hidden-hand,:host-context(html.ion-palette-dark) .christianity-hidden-hand,:host-context(body.dark) .christianity-hidden-hand,:host-context([data-theme=\"dark\"]) .christianity-hidden-hand,:host-context(.dark) .christianity-pile,:host-context(.ion-palette-dark) .christianity-pile,:host-context(html.ion-palette-dark) .christianity-pile,:host-context(body.dark) .christianity-pile,:host-context([data-theme=\"dark\"]) .christianity-pile,:host-context(.dark) .christianity-deck,:host-context(.ion-palette-dark) .christianity-deck,:host-context(html.ion-palette-dark) .christianity-deck,:host-context(body.dark) .christianity-deck,:host-context([data-theme=\"dark\"]) .christianity-deck,:host-context(.dark) .christianity-place,:host-context(.ion-palette-dark) .christianity-place,:host-context(html.ion-palette-dark) .christianity-place,:host-context(body.dark) .christianity-place,:host-context([data-theme=\"dark\"]) .christianity-place,:host-context(.dark) .christianity-match-strip,:host-context(.ion-palette-dark) .christianity-match-strip,:host-context(html.ion-palette-dark) .christianity-match-strip,:host-context(body.dark) .christianity-match-strip,:host-context([data-theme=\"dark\"]) .christianity-match-strip,:host-context(.dark) .christianity-actions,:host-context(.ion-palette-dark) .christianity-actions,:host-context(html.ion-palette-dark) .christianity-actions,:host-context(body.dark) .christianity-actions,:host-context([data-theme=\"dark\"]) .christianity-actions,:host-context(.dark) .christianity-history,:host-context(.ion-palette-dark) .christianity-history,:host-context(html.ion-palette-dark) .christianity-history,:host-context(body.dark) .christianity-history,:host-context([data-theme=\"dark\"]) .christianity-history{border-color:#94a3b82e;background:#0f172ad1}:host-context(.dark) .christianity-turn.is-own-turn,:host-context(.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(html.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(body.dark) .christianity-turn.is-own-turn,:host-context([data-theme=\"dark\"]) .christianity-turn.is-own-turn{border-color:#2dd4bf5c;background:#14534c5c}:host-context(.dark) .christianity-table,:host-context(.ion-palette-dark) .christianity-table,:host-context(html.ion-palette-dark) .christianity-table,:host-context(body.dark) .christianity-table,:host-context([data-theme=\"dark\"]) .christianity-table{background:linear-gradient(180deg,#10233d,#0b1728)}:host-context(.dark) .christianity-player-side,:host-context(.ion-palette-dark) .christianity-player-side,:host-context(html.ion-palette-dark) .christianity-player-side,:host-context(body.dark) .christianity-player-side,:host-context([data-theme=\"dark\"]) .christianity-player-side{background:#0f172a57}:host-context(.dark) .christianity-battle-zone,:host-context(.ion-palette-dark) .christianity-battle-zone,:host-context(html.ion-palette-dark) .christianity-battle-zone,:host-context(body.dark) .christianity-battle-zone,:host-context([data-theme=\"dark\"]) .christianity-battle-zone,:host-context(.dark) .christianity-shared-zone,:host-context(.ion-palette-dark) .christianity-shared-zone,:host-context(html.ion-palette-dark) .christianity-shared-zone,:host-context(body.dark) .christianity-shared-zone,:host-context([data-theme=\"dark\"]) .christianity-shared-zone{background:#0f172a94}:host-context(.dark) .christianity-battle-zone.is-placing-card,:host-context(.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(html.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(body.dark) .christianity-battle-zone.is-placing-card,:host-context([data-theme=\"dark\"]) .christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#1e3a5fd1,#0f172ab8),#0f172a94}:host-context(.dark) .christianity-card,:host-context(.ion-palette-dark) .christianity-card,:host-context(html.ion-palette-dark) .christianity-card,:host-context(body.dark) .christianity-card,:host-context([data-theme=\"dark\"]) .christianity-card,:host-context(.dark) .christianity-slot,:host-context(.ion-palette-dark) .christianity-slot,:host-context(html.ion-palette-dark) .christianity-slot,:host-context(body.dark) .christianity-slot,:host-context([data-theme=\"dark\"]) .christianity-slot{border-color:#94a3b83d;background:#0f172a8a}:host-context(.dark) .christianity-slot--play-target,:host-context(.ion-palette-dark) .christianity-slot--play-target,:host-context(html.ion-palette-dark) .christianity-slot--play-target,:host-context(body.dark) .christianity-slot--play-target,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target{color:var(--christianity-theme-ink);background:linear-gradient(180deg,#2563eb3d,#0f172ac7),#0f172abd}:host-context(.dark) .christianity-slot--play-target span,:host-context(.ion-palette-dark) .christianity-slot--play-target span,:host-context(html.ion-palette-dark) .christianity-slot--play-target span,:host-context(body.dark) .christianity-slot--play-target span,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target span,:host-context(.dark) .christianity-card strong,:host-context(.ion-palette-dark) .christianity-card strong,:host-context(html.ion-palette-dark) .christianity-card strong,:host-context(body.dark) .christianity-card strong,:host-context([data-theme=\"dark\"]) .christianity-card strong{background:#1e293beb}:host-context(.dark) .christianity-offering-pile,:host-context(.ion-palette-dark) .christianity-offering-pile,:host-context(html.ion-palette-dark) .christianity-offering-pile,:host-context(body.dark) .christianity-offering-pile,:host-context([data-theme=\"dark\"]) .christianity-offering-pile,:host-context(.dark) .christianity-zone-card,:host-context(.ion-palette-dark) .christianity-zone-card,:host-context(html.ion-palette-dark) .christianity-zone-card,:host-context(body.dark) .christianity-zone-card,:host-context([data-theme=\"dark\"]) .christianity-zone-card,:host-context(.dark) .christianity-zone-pile,:host-context(.ion-palette-dark) .christianity-zone-pile,:host-context(html.ion-palette-dark) .christianity-zone-pile,:host-context(body.dark) .christianity-zone-pile,:host-context([data-theme=\"dark\"]) .christianity-zone-pile{border-color:#94a3b83d;background:linear-gradient(180deg,#111827f5,#0f172af0),radial-gradient(circle at 14% 0%,rgba(96,165,250,.12),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.25rem #00000047,inset 0 0 0 .12rem #ffffff08}:host-context(.dark) .christianity-offering-pile>span,:host-context(.ion-palette-dark) .christianity-offering-pile>span,:host-context(html.ion-palette-dark) .christianity-offering-pile>span,:host-context(body.dark) .christianity-offering-pile>span,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>span,:host-context(.dark) .christianity-zone-card>span,:host-context(.ion-palette-dark) .christianity-zone-card>span,:host-context(html.ion-palette-dark) .christianity-zone-card>span,:host-context(body.dark) .christianity-zone-card>span,:host-context([data-theme=\"dark\"]) .christianity-zone-card>span,:host-context(.dark) .christianity-zone-pile>span,:host-context(.ion-palette-dark) .christianity-zone-pile>span,:host-context(html.ion-palette-dark) .christianity-zone-pile>span,:host-context(body.dark) .christianity-zone-pile>span,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>span,:host-context(.dark) .christianity-player-badge,:host-context(.ion-palette-dark) .christianity-player-badge,:host-context(html.ion-palette-dark) .christianity-player-badge,:host-context(body.dark) .christianity-player-badge,:host-context([data-theme=\"dark\"]) .christianity-player-badge{color:#e2e8f0c7}:host-context(.dark) .christianity-offering-pile>small,:host-context(.ion-palette-dark) .christianity-offering-pile>small,:host-context(html.ion-palette-dark) .christianity-offering-pile>small,:host-context(body.dark) .christianity-offering-pile>small,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>small{color:#e2e8f09e}:host-context(.dark) .christianity-offering-pile>strong,:host-context(.ion-palette-dark) .christianity-offering-pile>strong,:host-context(html.ion-palette-dark) .christianity-offering-pile>strong,:host-context(body.dark) .christianity-offering-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>strong,:host-context(.dark) .christianity-zone-card>strong,:host-context(.ion-palette-dark) .christianity-zone-card>strong,:host-context(html.ion-palette-dark) .christianity-zone-card>strong,:host-context(body.dark) .christianity-zone-card>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-card>strong,:host-context(.dark) .christianity-zone-pile>strong,:host-context(.ion-palette-dark) .christianity-zone-pile>strong,:host-context(html.ion-palette-dark) .christianity-zone-pile>strong,:host-context(body.dark) .christianity-zone-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>strong,:host-context(.dark) .christianity-hand-meter,:host-context(.ion-palette-dark) .christianity-hand-meter,:host-context(html.ion-palette-dark) .christianity-hand-meter,:host-context(body.dark) .christianity-hand-meter,:host-context([data-theme=\"dark\"]) .christianity-hand-meter{border-color:#94a3b833;background:#0f172ae0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #00000047}:host-context(.dark) .christianity-hand-meter span,:host-context(.ion-palette-dark) .christianity-hand-meter span,:host-context(html.ion-palette-dark) .christianity-hand-meter span,:host-context(body.dark) .christianity-hand-meter span,:host-context([data-theme=\"dark\"]) .christianity-hand-meter span{color:#e2e8f0b3}:host-context(.dark) .christianity-offering-pile:before,:host-context(.ion-palette-dark) .christianity-offering-pile:before,:host-context(html.ion-palette-dark) .christianity-offering-pile:before,:host-context(body.dark) .christianity-offering-pile:before,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:before,:host-context(.dark) .christianity-zone-pile:before,:host-context(.ion-palette-dark) .christianity-zone-pile:before,:host-context(html.ion-palette-dark) .christianity-zone-pile:before,:host-context(body.dark) .christianity-zone-pile:before,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:before{border-color:#94a3b833;background:#e2e8f0eb;box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-offering-pile:after,:host-context(.ion-palette-dark) .christianity-offering-pile:after,:host-context(html.ion-palette-dark) .christianity-offering-pile:after,:host-context(body.dark) .christianity-offering-pile:after,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:after,:host-context(.dark) .christianity-zone-pile:after,:host-context(.ion-palette-dark) .christianity-zone-pile:after,:host-context(html.ion-palette-dark) .christianity-zone-pile:after,:host-context(body.dark) .christianity-zone-pile:after,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:after{border-color:#94a3b838;background:var(--christianity-card-back);box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-end-turn:disabled,:host-context(.ion-palette-dark) .christianity-end-turn:disabled,:host-context(html.ion-palette-dark) .christianity-end-turn:disabled,:host-context(body.dark) .christianity-end-turn:disabled,:host-context([data-theme=\"dark\"]) .christianity-end-turn:disabled{border-color:#94a3b829;background:#0f172a75;color:#e2e8f06b;opacity:1}:host-context(.dark) .christianity-history-drawer,:host-context(.ion-palette-dark) .christianity-history-drawer,:host-context(html.ion-palette-dark) .christianity-history-drawer,:host-context(body.dark) .christianity-history-drawer,:host-context([data-theme=\"dark\"]) .christianity-history-drawer,:host-context(.dark) .christianity-rule-note,:host-context(.ion-palette-dark) .christianity-rule-note,:host-context(html.ion-palette-dark) .christianity-rule-note,:host-context(body.dark) .christianity-rule-note,:host-context([data-theme=\"dark\"]) .christianity-rule-note,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note,:host-context(.dark) .christianity-preview-abilities,:host-context(.ion-palette-dark) .christianity-preview-abilities,:host-context(html.ion-palette-dark) .christianity-preview-abilities,:host-context(body.dark) .christianity-preview-abilities,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities{border-color:#94a3b82e;background:linear-gradient(180deg,#0f172af5,#111827f5),radial-gradient(circle at 8% 0%,rgba(96,165,250,.12),transparent 40%);box-shadow:0 1.5rem 4rem #0000006b}:host-context(.dark) .christianity-dialog-close,:host-context(.ion-palette-dark) .christianity-dialog-close,:host-context(html.ion-palette-dark) .christianity-dialog-close,:host-context(body.dark) .christianity-dialog-close,:host-context([data-theme=\"dark\"]) .christianity-dialog-close,:host-context(.dark) .christianity-floating-card-close,:host-context(.ion-palette-dark) .christianity-floating-card-close,:host-context(html.ion-palette-dark) .christianity-floating-card-close,:host-context(body.dark) .christianity-floating-card-close,:host-context([data-theme=\"dark\"]) .christianity-floating-card-close,:host-context(.dark) .christianity-preview-position,:host-context(.ion-palette-dark) .christianity-preview-position,:host-context(html.ion-palette-dark) .christianity-preview-position,:host-context(body.dark) .christianity-preview-position,:host-context([data-theme=\"dark\"]) .christianity-preview-position,:host-context(.dark) .christianity-preview-nav,:host-context(.ion-palette-dark) .christianity-preview-nav,:host-context(html.ion-palette-dark) .christianity-preview-nav,:host-context(body.dark) .christianity-preview-nav,:host-context([data-theme=\"dark\"]) .christianity-preview-nav,:host-context(.dark) .christianity-preview-ability-nav button,:host-context(.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(html.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(body.dark) .christianity-preview-ability-nav button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-nav button,:host-context(.dark) .christianity-preview-ability-tabs button,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(body.dark) .christianity-preview-ability-tabs button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button{border-color:#94a3b838;background:#0f172af0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #0000004d}:host-context(.dark) .christianity-preview-ability-tabs button.is-selected,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(body.dark) .christianity-preview-ability-tabs button.is-selected,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button.is-selected{border-color:#60a5fa61;background:#2563eb38;color:#dbeafef0}:host-context(.dark) .christianity-preview-use-ability:disabled,:host-context(.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(html.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(body.dark) .christianity-preview-use-ability:disabled,:host-context([data-theme=\"dark\"]) .christianity-preview-use-ability:disabled{background:#334155c7;color:#e2e8f07a}:host-context(.dark) .christianity-preview-ability-card,:host-context(.ion-palette-dark) .christianity-preview-ability-card,:host-context(html.ion-palette-dark) .christianity-preview-ability-card,:host-context(body.dark) .christianity-preview-ability-card,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card{border-color:#94a3b829;background:#0f172a6b}:host-context(.dark) .christianity-preview-ability-card strong,:host-context(.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(html.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(body.dark) .christianity-preview-ability-card strong,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card strong,:host-context(.dark) .christianity-preview-abilities-header span,:host-context(.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(html.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(body.dark) .christianity-preview-abilities-header span,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities-header span{color:#e2e8f0d1}:host-context(.dark) .christianity-history-drawer header span,:host-context(.ion-palette-dark) .christianity-history-drawer header span,:host-context(html.ion-palette-dark) .christianity-history-drawer header span,:host-context(body.dark) .christianity-history-drawer header span,:host-context([data-theme=\"dark\"]) .christianity-history-drawer header span,:host-context(.dark) .christianity-rule-note strong,:host-context(.ion-palette-dark) .christianity-rule-note strong,:host-context(html.ion-palette-dark) .christianity-rule-note strong,:host-context(body.dark) .christianity-rule-note strong,:host-context([data-theme=\"dark\"]) .christianity-rule-note strong{background:#1e293beb}:host-context(.dark) .christianity-rule-note small,:host-context(.ion-palette-dark) .christianity-rule-note small,:host-context(html.ion-palette-dark) .christianity-rule-note small,:host-context(body.dark) .christianity-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-rule-note small,:host-context(.dark) .christianity-preview-rule-note small,:host-context(.ion-palette-dark) .christianity-preview-rule-note small,:host-context(html.ion-palette-dark) .christianity-preview-rule-note small,:host-context(body.dark) .christianity-preview-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note small,:host-context(.dark) .christianity-preview-abilities small,:host-context(.ion-palette-dark) .christianity-preview-abilities small,:host-context(html.ion-palette-dark) .christianity-preview-abilities small,:host-context(body.dark) .christianity-preview-abilities small,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities small,:host-context(.dark) .christianity-gallery-drawer header p,:host-context(.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(html.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(body.dark) .christianity-gallery-drawer header p,:host-context([data-theme=\"dark\"]) .christianity-gallery-drawer header p,:host-context(.dark) .christianity-gallery-controls label,:host-context(.ion-palette-dark) .christianity-gallery-controls label,:host-context(html.ion-palette-dark) .christianity-gallery-controls label,:host-context(body.dark) .christianity-gallery-controls label,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls label{color:#e2e8f0ad}:host-context(.dark) .christianity-rule-note p,:host-context(.ion-palette-dark) .christianity-rule-note p,:host-context(html.ion-palette-dark) .christianity-rule-note p,:host-context(body.dark) .christianity-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-rule-note p,:host-context(.dark) .christianity-rule-note ul,:host-context(.ion-palette-dark) .christianity-rule-note ul,:host-context(html.ion-palette-dark) .christianity-rule-note ul,:host-context(body.dark) .christianity-rule-note ul,:host-context([data-theme=\"dark\"]) .christianity-rule-note ul,:host-context(.dark) .christianity-preview-rule-note p,:host-context(.ion-palette-dark) .christianity-preview-rule-note p,:host-context(html.ion-palette-dark) .christianity-preview-rule-note p,:host-context(body.dark) .christianity-preview-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note p,:host-context(.dark) .christianity-preview-abilities p,:host-context(.ion-palette-dark) .christianity-preview-abilities p,:host-context(html.ion-palette-dark) .christianity-preview-abilities p,:host-context(body.dark) .christianity-preview-abilities p,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities p,:host-context(.dark) .christianity-offerings-note p,:host-context(.ion-palette-dark) .christianity-offerings-note p,:host-context(html.ion-palette-dark) .christianity-offerings-note p,:host-context(body.dark) .christianity-offerings-note p,:host-context([data-theme=\"dark\"]) .christianity-offerings-note p{color:#e2e8f0cc}:host-context(.dark) .christianity-gallery-controls input,:host-context(.ion-palette-dark) .christianity-gallery-controls input,:host-context(html.ion-palette-dark) .christianity-gallery-controls input,:host-context(body.dark) .christianity-gallery-controls input,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls input,:host-context(.dark) .christianity-gallery-controls select,:host-context(.ion-palette-dark) .christianity-gallery-controls select,:host-context(html.ion-palette-dark) .christianity-gallery-controls select,:host-context(body.dark) .christianity-gallery-controls select,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls select,:host-context(.dark) .christianity-offering-row,:host-context(.ion-palette-dark) .christianity-offering-row,:host-context(html.ion-palette-dark) .christianity-offering-row,:host-context(body.dark) .christianity-offering-row,:host-context([data-theme=\"dark\"]) .christianity-offering-row,:host-context(.dark) .christianity-offerings-note,:host-context(.ion-palette-dark) .christianity-offerings-note,:host-context(html.ion-palette-dark) .christianity-offerings-note,:host-context(body.dark) .christianity-offerings-note,:host-context([data-theme=\"dark\"]) .christianity-offerings-note{border-color:#94a3b833;background:#0f172ac7;color:var(--christianity-theme-ink)}:host-context(.dark) .christianity-history-grid,:host-context(.ion-palette-dark) .christianity-history-grid,:host-context(html.ion-palette-dark) .christianity-history-grid,:host-context(body.dark) .christianity-history-grid,:host-context([data-theme=\"dark\"]) .christianity-history-grid,:host-context(.dark) .christianity-offering-list,:host-context(.ion-palette-dark) .christianity-offering-list,:host-context(html.ion-palette-dark) .christianity-offering-list,:host-context(body.dark) .christianity-offering-list,:host-context([data-theme=\"dark\"]) .christianity-offering-list,:host-context(.dark) .christianity-gallery-grid,:host-context(.ion-palette-dark) .christianity-gallery-grid,:host-context(html.ion-palette-dark) .christianity-gallery-grid,:host-context(body.dark) .christianity-gallery-grid,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note{scrollbar-color:rgba(148,163,184,.54) rgba(15,23,42,.86)}:host-context(.dark) .christianity-rule-note-icon,:host-context(.ion-palette-dark) .christianity-rule-note-icon,:host-context(html.ion-palette-dark) .christianity-rule-note-icon,:host-context(body.dark) .christianity-rule-note-icon,:host-context([data-theme=\"dark\"]) .christianity-rule-note-icon{background:#60a5fa29;color:#bfdbfe;box-shadow:inset 0 0 0 1px #93c5fd38}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-track{background:#0f172adb}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-thumb{border-color:#0f172adb;background:#94a3b88a}@media (max-width: 720px){:host{overflow-x:hidden}.christianity-shell{padding:0 0 10.4rem}.christianity-actions{position:fixed;right:max(.6rem,env(safe-area-inset-right));bottom:calc(max(.75rem,env(safe-area-inset-bottom)) + 9.7rem);z-index:80;display:block;width:auto;padding:0;background:transparent;pointer-events:none}.christianity-end-turn{position:fixed;bottom:calc(max(.75rem,env(safe-area-inset-bottom)) + 9.7rem);left:calc(max(.6rem,env(safe-area-inset-left)) + 5.95rem);z-index:80;min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-actions button{min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-header,.christianity-match-strip,.christianity-player__summary{box-sizing:border-box;width:100%;padding-right:max(.5rem,env(safe-area-inset-right));padding-left:max(.5rem,env(safe-area-inset-left))}.christianity-header,.christianity-player__summary,.christianity-shared-zone{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-header-actions{align-items:flex-end;flex-direction:column}.christianity-start__cards,.christianity-start__hero{grid-template-columns:minmax(0,1fr)}.christianity-start__fan{min-height:10.5rem}.christianity-start__fan val-christianity-card{width:clamp(5.2rem,22vw,6.4rem)}.christianity-start__modes{grid-template-columns:repeat(2,minmax(0,1fr))}.christianity-splash{min-height:min(30rem,calc(100dvh - 7rem));padding-right:max(.65rem,env(safe-area-inset-right));padding-left:max(.65rem,env(safe-area-inset-left));border-right:0;border-left:0;border-radius:0}.christianity-start{min-height:min(30rem,calc(100dvh - 7rem));padding:0}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem;width:100%;max-width:100%;min-width:0;padding-right:.25rem;padding-left:.25rem;overflow-x:hidden}.christianity-player-side{width:100%;max-width:100%;min-width:0;padding:.3rem .25rem;overflow:hidden}.christianity-battle-zone{--christianity-battle-card-width: min(5.2rem, 100%);grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.25rem,1.5vw,.4rem);justify-content:stretch;min-height:8.75rem;padding-inline:.28rem;overflow-x:hidden}.christianity-battle-zone .christianity-card-preview-card--battle,.christianity-battle-zone .christianity-slot{width:min(100%,5.2rem)}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent){position:fixed;right:0;bottom:0;left:0;z-index:52;box-sizing:border-box;min-height:9.55rem;margin:0;padding:.7rem max(.35rem,env(safe-area-inset-right)) max(.55rem,env(safe-area-inset-bottom)) max(.35rem,env(safe-area-inset-left));background:linear-gradient(180deg,#eff6ff00,#dbeafef5 18%,#dbeafefa),radial-gradient(circle at 50% 0%,rgba(37,99,235,.14),transparent 58%);pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan,.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-card-wrap{pointer-events:auto}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-meter{top:.15rem;right:max(.55rem,env(safe-area-inset-right));pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan{min-height:8.85rem;padding:.25rem .25rem 1.1rem;overflow:visible}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-card-preview-card--hand{width:clamp(4.35rem,20vw,5.65rem)}.christianity-hand-shelf--opponent{min-height:6.65rem;margin-top:0;margin-bottom:0;padding-top:.4rem;padding-bottom:.85rem}.christianity-player-rack{grid-template-columns:minmax(0,5.55rem) minmax(0,1fr) minmax(0,5.45rem);gap:clamp(.35rem,2vw,.5rem)}.christianity-shared-zone{gap:.45rem;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.christianity-zone-card,.christianity-zone-pile{min-height:6.15rem;padding:.58rem .46rem .5rem;gap:.24rem}.christianity-zone-card val-christianity-card,.christianity-zone-pile val-christianity-card,.christianity-zone-pile:before,.christianity-zone-pile:after,.christianity-empty-card-slot{width:clamp(3rem,18vw,3.85rem)}.christianity-offering-pile{height:6.9rem;max-height:6.9rem;padding:.52rem .42rem .48rem;gap:.24rem}.christianity-offering-drop-target{width:min(100%,5.8rem);height:6.9rem;min-height:0;max-height:6.9rem}.christianity-offering-pile val-christianity-card,.christianity-offering-pile:before,.christianity-offering-pile:after{width:clamp(2.65rem,15vw,3.35rem)}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);height:auto;min-height:0}.christianity-leader-card{width:clamp(4.55rem,20vw,5.7rem);min-height:0}.christianity-offering-row{grid-template-columns:minmax(5rem,5.8rem) minmax(0,1fr);gap:.5rem}.christianity-gallery-controls{grid-template-columns:minmax(0,1fr);gap:.5rem}.christianity-gallery-drawer{gap:.6rem;padding:max(.72rem,env(safe-area-inset-top)) max(.72rem,env(safe-area-inset-right)) max(.72rem,env(safe-area-inset-bottom)) max(.72rem,env(safe-area-inset-left))}.christianity-gallery-drawer header{align-items:start}.christianity-gallery-drawer h2{font-size:1.2rem;line-height:1.05}.christianity-gallery-controls label{gap:.18rem;font-size:.7rem}.christianity-gallery-controls input,.christianity-gallery-controls select,.christianity-gallery-edition-strip button{min-height:2.05rem}.christianity-gallery-grid{grid-template-columns:repeat(3,minmax(0,5.55rem));justify-content:center;gap:.55rem;scrollbar-gutter:auto;padding:.4rem 0 .8rem}.christianity-gallery-grid .christianity-render-card-button{width:min(100%,5.55rem)}.christianity-offering-card{min-height:7.25rem;padding:.5rem}.christianity-hand-fan--opponent{min-height:5.75rem;padding-bottom:.7rem}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.35rem,15vw,4.25rem);margin-inline:-.72rem}}\n"] }]
|
|
3669
|
+
`, styles: [":host{--christianity-theme-ink: var(--val-text-color, #1f2933);--christianity-theme-surface: #ffffff;--christianity-theme-parchment: #eff6ff;--christianity-theme-olive: #1d4ed8;--christianity-theme-gold: #2563eb;--christianity-theme-gold-soft: rgba(37, 99, 235, .16);--christianity-theme-gold-ring: rgba(37, 99, 235, .44);--christianity-theme-glow: rgba(37, 99, 235, .24);--christianity-theme-focus: #2563eb;--christianity-theme-shadow: rgba(37, 99, 235, .15);--christianity-theme-shadow-strong: rgba(37, 99, 235, .26);--christianity-card-aspect: 5 / 7.45;--christianity-card-back: linear-gradient(135deg, rgba(16, 42, 67, .16), rgba(16, 42, 67, .03)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(16, 42, 67, .11), rgba(16, 42, 67, .02)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);display:block;max-width:100%;min-width:0;overflow-x:clip;color:var(--christianity-theme-ink)}.christianity-shell{box-sizing:border-box;display:grid;gap:.65rem;width:100%;max-width:100%;min-width:0;padding:0;overflow-x:clip;overflow-y:visible}.christianity-shell.has-modal-open{max-height:100dvh;overflow:hidden;overscroll-behavior:contain}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.christianity-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;min-width:0}.christianity-gallery-open{min-height:2.2rem;padding:0 .75rem;border:1px solid var(--christianity-theme-gold-ring);border-radius:999px;background:linear-gradient(180deg,#eff6fffa,#fffffffa),radial-gradient(circle at 20% 0%,var(--christianity-theme-gold-soft),transparent 42%);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800;box-shadow:0 .55rem 1.2rem #2563eb1a}.christianity-splash{min-height:min(34rem,calc(100dvh - 8rem));border:1px solid rgba(37,99,235,.18);border-radius:.9rem;background:radial-gradient(circle at 50% 18%,rgba(37,99,235,.16),transparent 22rem),linear-gradient(180deg,#eff6ffed,#fffffff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #2563eb1f}.christianity-splash{display:grid;place-items:center;align-content:center;gap:1.2rem;padding:2.5rem 1.25rem;text-align:center}.christianity-splash__mark{position:relative;display:grid;grid-template-columns:repeat(3,.74rem);place-content:center;gap:.55rem;width:5.8rem;height:5.8rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(37,99,235,.12),transparent 55%),#ffffff9e;box-shadow:inset 0 0 0 .55rem #fff6,0 1rem 2rem #2563eb1f}.christianity-splash__mark:before,.christianity-splash__mark:after{content:\"\";position:absolute;inset:.42rem;border:1px solid rgba(37,99,235,.16);border-radius:inherit;animation:christianity-loader-ring 1.8s ease-out infinite}.christianity-splash__mark:after{animation-delay:.48s}.christianity-splash__mark span{width:.74rem;height:.74rem;border-radius:999px;background:var(--christianity-theme-focus);box-shadow:0 .35rem .85rem #2563eb38;animation:christianity-loader-dot .96s ease-in-out infinite}.christianity-splash__mark span:nth-child(2){animation-delay:.14s}.christianity-splash__mark span:nth-child(3){animation-delay:.28s}@keyframes christianity-loader-dot{0%,to{opacity:.38;transform:translateY(0) scale(.82)}45%{opacity:1;transform:translateY(-.22rem) scale(1)}}@keyframes christianity-loader-ring{0%{opacity:.48;transform:scale(.72)}to{opacity:0;transform:scale(1.2)}}.christianity-splash span,.christianity-start__copy span{color:var(--christianity-theme-olive);font-size:.76rem;font-weight:900;text-transform:uppercase}.christianity-splash h2,.christianity-start h2,.christianity-start p{margin:0}.christianity-splash h2{margin-top:.2rem;font-size:clamp(1.65rem,7vw,2.7rem);line-height:1}.christianity-splash p{max-width:26rem;margin:.55rem auto 0;color:#1f2933ad;font-size:.96rem}.christianity-start{display:grid;align-content:center;gap:1rem;min-height:min(34rem,calc(100dvh - 8rem));padding:0}.christianity-start__hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,18rem);gap:1rem;align-items:center}.christianity-start__copy{display:grid;gap:.45rem;max-width:36rem}.christianity-start h2{font-size:clamp(1.6rem,6vw,2.5rem);line-height:1.02}.christianity-start__copy p,.christianity-start__cards p,.christianity-start__modes p{color:#1f2933ad;line-height:1.42}.christianity-start__fan{position:relative;display:grid;place-items:center;min-height:13rem;overflow:visible}.christianity-start__fan val-christianity-card{position:absolute;width:clamp(5.7rem,12vw,7.2rem);transform-origin:50% 92%;filter:drop-shadow(0 1rem 1.5rem rgba(82,64,28,.18))}.christianity-start__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.christianity-start__cards article,.christianity-start__modes article{display:grid;gap:.65rem;align-content:start;padding:.95rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#ffffffd1;box-shadow:0 .75rem 1.7rem #52401c14}.christianity-start__cards article{min-height:11rem}.christianity-start__cards strong{font-size:1.05rem}.christianity-start__status{display:flex;flex-wrap:wrap;gap:.45rem}.christianity-start__status span,.christianity-start__modes article>span{display:inline-flex;align-items:center;width:fit-content;min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(37,99,235,.22);border-radius:999px;background:#eff6ffe0;color:#1f2933b8;font-size:.75rem;font-weight:850}.christianity-start__modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.christianity-start__modes article{min-height:8.5rem;background:#f8fafcb8;box-shadow:none;opacity:.82}.christianity-start__modes strong{font-size:.92rem}.christianity-start__modes p{margin:0;font-size:.8rem}.christianity-primary-action,.christianity-secondary-action{justify-self:start;min-height:2.5rem;padding:0 .9rem;border-radius:999px;font:inherit;font-weight:900}.christianity-primary-action{border:1px solid rgba(16,42,67,.16);background:#102a43;color:#fff}.christianity-secondary-action{border:1px solid var(--christianity-theme-gold-ring);background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink)}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-turn-banner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.58rem .72rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:linear-gradient(135deg,#fffffff0,#eff6ffd1),#fffc;box-shadow:0 .65rem 1.25rem #102a4314}.christianity-turn-banner.is-own-turn{border-color:#2563eb47;box-shadow:0 .75rem 1.45rem #2563eb1f,inset 0 0 0 1px #2563eb14}.christianity-turn-banner.is-rival-turn{border-color:#b453093d}.christianity-turn-banner.is-finished{border-color:#16a34a4d}.christianity-turn-banner span{display:block;color:#1f29338f;font-size:.68rem;font-weight:900;text-transform:uppercase}.christianity-turn-banner strong{display:block;color:var(--christianity-theme-ink);font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.05}.christianity-turn-banner p{margin:.12rem 0 0;color:#1f2933ad;font-size:.78rem;line-height:1.25}.christianity-options-button,.christianity-options-menu button{min-height:2.15rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffeb;color:var(--christianity-theme-ink);font:inherit;font-size:.78rem;font-weight:900}.christianity-options-button{padding:0 .78rem}.christianity-options-menu{position:absolute;right:.55rem;top:calc(100% + .35rem);z-index:18;display:grid;gap:.35rem;min-width:9.5rem;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#fffffffa;box-shadow:0 1rem 2rem #102a432e}.christianity-options-menu button{border-radius:.55rem;text-align:left}.christianity-options-menu button:disabled{opacity:.45}.christianity-table{box-sizing:border-box;position:relative;display:grid;gap:.45rem;width:100%;max-width:100%;min-width:0;padding:.45rem .35rem;border-radius:.75rem;background:radial-gradient(circle at 50% 44%,rgba(255,255,255,.2),transparent 44%),linear-gradient(180deg,#c8ddf7,#b9d4f1);box-shadow:inset 0 0 0 1px #ffffff57,inset 0 1.4rem 3rem #ffffff29;overflow-x:clip;overflow-y:visible}.christianity-setup-panel,.christianity-result-panel{position:absolute;inset:.8rem;z-index:14;display:grid;align-content:center;justify-items:center;gap:.85rem;padding:1rem;border:1px solid rgba(37,99,235,.16);border-radius:.9rem;background:linear-gradient(180deg,#f8fafcf5,#eff6fff0),#fffffff0;box-shadow:0 1.25rem 2.4rem #102a432e;text-align:center}.christianity-setup-panel span,.christianity-result-panel span{color:#2563ebc2;font-size:.72rem;font-weight:1000;text-transform:uppercase}.christianity-setup-panel h2,.christianity-result-panel h2{margin:.18rem 0 0;color:var(--christianity-theme-ink);font-size:clamp(1.45rem,3vw,2.35rem);line-height:1}.christianity-setup-panel p,.christianity-result-panel p{max-width:31rem;margin:.35rem auto 0;color:#1f2933ad;font-size:.95rem;line-height:1.35}.christianity-result-panel>div:last-child{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem}.christianity-leader-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,7.2rem));gap:.65rem;justify-content:center;width:min(100%,32rem)}.christianity-leader-choice-card{width:100%;border:0;background:transparent;color:inherit;font:inherit}.christianity-leader-choice-card:hover val-christianity-card{transform:translateY(-.25rem);filter:drop-shadow(0 .75rem 1.25rem rgba(37,99,235,.22))}.christianity-impact-layer{position:absolute;inset:0;z-index:30;pointer-events:none}.christianity-combat-trail{position:absolute;inset:0;z-index:2;--christianity-combat-trail-x: 50%;--christianity-combat-trail-y: 72%;--christianity-combat-trail-mid-x: 50%;--christianity-combat-trail-mid-y: 50%;--christianity-combat-trail-length: 34%;--christianity-combat-trail-angle: -90deg;--christianity-combat-trail-color: rgba(255, 255, 255, .96);--christianity-combat-trail-glow: rgba(96, 165, 250, .56);--christianity-combat-trail-hit: rgba(220, 38, 38, .42)}.christianity-combat-trail.is-leader-target{--christianity-combat-trail-color: rgba(255, 255, 255, .98);--christianity-combat-trail-glow: rgba(250, 204, 21, .52);--christianity-combat-trail-hit: rgba(250, 204, 21, .38)}.christianity-combat-trail.is-character-target{--christianity-combat-trail-color: rgba(219, 234, 254, .98);--christianity-combat-trail-glow: rgba(96, 165, 250, .58);--christianity-combat-trail-hit: rgba(220, 38, 38, .38)}.christianity-combat-trail:before{position:absolute;left:var(--christianity-combat-trail-mid-x);top:var(--christianity-combat-trail-mid-y);width:clamp(2.8rem,9vw,5.4rem);height:clamp(2.8rem,9vw,5.4rem);border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.72),transparent 28%),radial-gradient(circle,var(--christianity-combat-trail-hit),transparent 62%);content:\"\";opacity:0;transform:translate(-50%,-50%) scale(.58);animation:christianity-combat-burst .88s ease-out both}.christianity-combat-trail>span{position:absolute;left:var(--christianity-combat-trail-x);top:var(--christianity-combat-trail-y);width:var(--christianity-combat-trail-length);height:.36rem;border-radius:999px;background:linear-gradient(90deg,transparent 0 5%,rgba(255,255,255,.92) 42%,var(--christianity-combat-trail-color) 72%,rgba(96,165,250,.72)),repeating-linear-gradient(90deg,transparent 0 .7rem,rgba(255,255,255,.66) .7rem .92rem);box-shadow:0 0 .72rem var(--christianity-combat-trail-glow),0 0 1.45rem var(--christianity-combat-trail-glow);transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0);transform-origin:0 50%;animation:christianity-combat-arrow-trail .84s ease-out both}.christianity-combat-trail>span:after{position:absolute;top:50%;right:-.18rem;width:.95rem;height:.95rem;border-top:.28rem solid var(--christianity-combat-trail-color);border-right:.28rem solid var(--christianity-combat-trail-color);content:\"\";filter:drop-shadow(0 0 .45rem var(--christianity-combat-trail-glow));transform:translateY(-50%) rotate(45deg)}@keyframes christianity-combat-arrow-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0)}24%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(.52)}66%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1)}to{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1.04)}}@keyframes christianity-combat-burst{0%,42%{opacity:0;transform:translate(-50%,-50%) scale(.58) rotate(0)}58%{opacity:1;transform:translate(-50%,-50%) scale(.98) rotate(4deg)}to{opacity:0;transform:translate(-50%,-50%) scale(1.42) rotate(12deg)}}@media (prefers-reduced-motion: reduce){.christianity-combat-trail,.christianity-combat-trail:before,.christianity-combat-trail>span,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card,.christianity-floating-card-shell.is-sliding-next .christianity-floating-card,.christianity-splash__mark:before,.christianity-splash__mark:after,.christianity-splash__mark span{animation:none!important}}.christianity-player-side{box-sizing:border-box;display:grid;gap:.35rem;width:100%;max-width:100%;min-width:0;padding:.35rem .3rem;border-radius:.7rem;background:linear-gradient(180deg,#ffffff47,#ffffff24),#4a7ab414;grid-template-rows:minmax(7rem,1fr) auto;min-height:13.75rem}.christianity-player-side--opponent{grid-template-rows:auto minmax(7rem,1fr)}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{--christianity-battle-card-width: clamp(5.35rem, 10.5vw, 7.75rem);box-sizing:border-box;display:grid;grid-template-columns:repeat(4,var(--christianity-battle-card-width));gap:.5rem;align-items:center;justify-content:center;width:100%;max-width:100%;min-width:0;overflow:hidden;min-height:clamp(10rem,19vw,12.4rem);padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff6b,#ffffff3d),#1f4f8914;transition:background .16s ease,box-shadow .16s ease}.christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#fffaf0f5,#ffffffd6),#ffffffc2;box-shadow:inset 0 0 0 .14rem var(--christianity-theme-gold-soft),0 .8rem 1.7rem #5f6f2a1f}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff57,#fff3),#1f4f8914}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .18rem var(--christianity-theme-gold-soft),0 .85rem 1.4rem var(--christianity-theme-shadow)}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{display:grid;place-items:center;justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff2e;color:inherit;font:inherit;opacity:.62}.christianity-slot--play-target{position:relative;opacity:1;border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0eb,#f8fafcd1),#ffffffb3;color:#5d4305;font-weight:800;overflow:hidden;box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-slot--play-target:before{content:\"\";position:absolute;inset:.35rem;border:1px solid rgba(214,162,29,.22);border-radius:.4rem;background:linear-gradient(135deg,rgba(214,162,29,.1),transparent 46%),radial-gradient(circle at 50% 42%,var(--christianity-theme-glow),transparent 58%)}.christianity-slot--play-target span{position:relative;z-index:2;padding:.16rem .44rem;border-radius:999px;background:#ffffffc7;font-size:.78rem}@keyframes christianity-target-pulse{0%,to{box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow)}50%{box-shadow:inset 0 0 0 .16rem #d6a21d57,0 .9rem 1.65rem var(--christianity-theme-shadow-strong)}}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{padding:.75rem;border-radius:.75rem;background:#ffffffeb}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-actions button{pointer-events:auto;border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-actions button:disabled{display:none}.christianity-end-turn{border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:10.8rem;padding:.25rem .25rem 2.1rem;isolation:isolate;overflow:visible}.christianity-hand-shelf{position:relative;display:grid;z-index:12;min-height:12rem;margin-top:-1.15rem;padding:1.45rem .25rem 1rem;overflow:visible}.christianity-hand-shelf--opponent{z-index:8;min-height:6.85rem;margin-top:0;margin-bottom:0;padding:.45rem .25rem .85rem}.christianity-hand-fan--opponent{min-height:5.9rem;padding-bottom:.75rem;align-items:start}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.7rem,12vw,4.9rem);aspect-ratio:var(--christianity-card-aspect);margin-inline:-.9rem;transform-origin:50% 120%}.christianity-hand-fan--opponent .christianity-hidden-card-button:first-child{margin-left:0}.christianity-hand-fan--opponent .christianity-hidden-card-button:last-child{margin-right:0}.christianity-card-preview-card,.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-render-card-button{display:block;padding:0;overflow:visible;border:0;background:transparent;box-shadow:none}.christianity-render-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-gallery-card-button{display:block;width:min(100%,6.8rem);min-width:0;aspect-ratio:var(--christianity-card-aspect);padding:0;overflow:visible;border:0;background:transparent;color:inherit;font:inherit;text-align:left;box-shadow:none}.christianity-gallery-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-card-preview-card--hand.christianity-render-card-button,.christianity-card-preview-card--battle.christianity-render-card-button,.christianity-leader-card.christianity-render-card-button{aspect-ratio:var(--christianity-card-aspect)}.christianity-card-preview-card--hand.christianity-render-card-button:hover val-christianity-card,.christianity-card-preview-card--hand.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-target val-christianity-card{filter:drop-shadow(0 0 .45rem rgba(37,99,235,.45)) drop-shadow(0 .55rem 1rem rgba(37,99,235,.22))}.christianity-card-preview-card--battle.christianity-render-card-button.is-ready-attacker val-christianity-card{filter:drop-shadow(0 0 .24rem rgba(22,163,74,.32)) drop-shadow(0 .45rem .8rem rgba(22,163,74,.16))}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected{transform:translateY(-.28rem)}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card{filter:drop-shadow(0 0 .4rem rgba(250,204,21,.52)) drop-shadow(0 .65rem 1rem rgba(37,99,235,.24))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker{z-index:8;pointer-events:none}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card{animation:christianity-combat-lunge .98s cubic-bezier(.2,.78,.2,1) both;filter:drop-shadow(0 0 .5rem rgba(250,204,21,.72)) drop-shadow(0 1rem 1.4rem rgba(16,42,67,.28))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card{animation:christianity-combat-impact .98s ease-out both;filter:drop-shadow(0 0 .5rem rgba(220,38,38,.48)) drop-shadow(0 .75rem 1.1rem rgba(220,38,38,.18))}@keyframes christianity-combat-lunge{0%{transform:translateZ(0) rotate(0) scale(1)}24%{transform:translate3d(0,-1.4rem,0) rotate(-4deg) scale(1.08)}52%{transform:translate3d(0,-4.9rem,0) rotate(7deg) scale(1.12)}68%{transform:translate3d(0,-3.6rem,0) rotate(-3deg) scale(1.04)}to{transform:translateZ(0) rotate(0) scale(1)}}@keyframes christianity-combat-impact{0%,42%{transform:translateZ(0) scale(1)}54%{transform:translate3d(.16rem,-.12rem,0) rotate(2deg) scale(1.04)}64%{transform:translate3d(-.14rem,.1rem,0) rotate(-2deg) scale(.98)}to{transform:translateZ(0) rotate(0) scale(1)}}.christianity-leader-card.christianity-render-card-button.is-protected-target{opacity:.82}.christianity-leader-card.christianity-render-card-button.is-protected-target val-christianity-card{filter:grayscale(.22) drop-shadow(0 0 .28rem rgba(100,116,139,.26))}.christianity-card-frame{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;overflow:hidden;padding:.48rem;text-align:left;background:linear-gradient(180deg,#fffffffa,#f8fafcfa),radial-gradient(circle at 15% 0%,rgba(214,162,29,.12),transparent 44%);box-shadow:0 .5rem 1.25rem #2430441a,inset 0 0 0 .18rem #ffffff9e}.christianity-card-frame-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.16rem;align-items:start;min-width:0}.christianity-card-frame-header small{grid-column:1;min-width:0;overflow:hidden;color:#1f2933a3;font-size:clamp(.52rem,1.5vw,.68rem);line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-header strong{grid-column:1;justify-self:start;align-self:start;min-width:0;padding:0;overflow:hidden;border-radius:0;background:transparent;font-size:clamp(.82rem,2.5vw,1.05rem);line-height:1.02;text-overflow:ellipsis;white-space:nowrap}.christianity-card-preview-card--hand .christianity-card-frame-header strong,.christianity-card-preview-card--battle .christianity-card-frame-header strong,.christianity-leader-card .christianity-card-frame-header strong{display:-webkit-box;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-preview-card--hand .christianity-card-frame-header small{text-transform:uppercase}.christianity-card-preview-card--hand .christianity-card-frame-art>span{display:-webkit-box;max-width:88%;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-frame-header span{grid-column:2;grid-row:1 / span 2;display:grid;place-items:center;min-width:1.3rem;height:1.3rem;padding:0 .22rem;border-radius:999px;background:#ffd91a;color:#243044;font-size:.8rem;font-weight:900;line-height:1;box-shadow:inset 0 -.08rem #52401c2e}.christianity-card-frame-header span.is-offering-pips,.christianity-full-card-cost.is-offering-pips,.christianity-offering-card span.is-offering-pips{grid-auto-flow:column;gap:.14rem;min-width:auto;padding:0 .28rem}.christianity-card-frame-header span.is-offering-pips i,.christianity-full-card-cost.is-offering-pips i,.christianity-offering-card span.is-offering-pips i,.christianity-full-card-pips i{display:block;width:.72rem;height:.72rem;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9) 0 .12rem,transparent .13rem),#ffd91a;box-shadow:inset 0 -.08rem #52401c2e,0 .12rem .24rem #102a431a}.christianity-card-frame-art{position:relative;display:grid;place-items:center;min-height:0;overflow:hidden;border-radius:.36rem;background:linear-gradient(135deg,#5f6f2a2e,#d6a21d24),radial-gradient(circle at 50% 18%,rgba(255,255,255,.72),transparent 48%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-card-frame-art>span{max-width:78%;overflow:hidden;color:#2430447a;font-size:clamp(.82rem,2.2vw,1.05rem);font-weight:900;line-height:1.02;text-align:center;text-overflow:ellipsis}.christianity-card-frame-art small{position:absolute;right:0;bottom:.28rem;max-width:78%;padding:.1rem .34rem;overflow:hidden;border-radius:999px 0 0 999px;background:#ffffffe6;color:#1f2933a8;font-size:.48rem;font-style:italic;font-weight:900;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-card-frame-effect{display:grid;align-content:center;gap:.1rem;min-height:1.45rem;padding:.24rem;overflow:hidden;border-radius:.34rem;background:radial-gradient(circle at 50% 70%,rgba(36,48,68,.06),transparent 44%),#ffffffdb}.christianity-card-frame-effect strong{justify-self:end;align-self:end;padding:.12rem .32rem;border-radius:999px;background:#edf2f7;font-size:clamp(.66rem,2vw,.82rem);line-height:1.05}.christianity-card-frame-effect p{margin:0;overflow:hidden;color:#1f2933b8;font-size:.58rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-footer{display:flex;justify-content:space-between;gap:.22rem;color:#1f293385;font-size:.46rem;font-weight:800;line-height:1}.christianity-card-frame--battle{gap:.22rem;padding:.42rem}.christianity-card-frame--battle .christianity-card-frame-art{min-height:2.6rem}.christianity-card-frame--leader .christianity-card-frame-art{background:linear-gradient(135deg,#2563eb24,#d6a21d29),radial-gradient(circle at 50% 18%,rgba(255,255,255,.78),transparent 48%),#e7eef8}.christianity-card-frame--list{width:clamp(4.4rem,22vw,5.8rem);padding:.38rem}.christianity-card-frame--list .christianity-card-frame-art{min-height:2.5rem}.christianity-hand-card-wrap{position:relative;display:grid;justify-items:center;flex:0 0 auto;margin-inline:-.42rem;padding-bottom:2rem;transform-origin:50% 115%;transition:transform .16s ease,filter .16s ease}.christianity-hand-card-wrap:hover,.christianity-hand-card-wrap.is-selected,.christianity-hand-card-wrap.is-dragging{z-index:3}.christianity-hand-card-wrap:hover .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-selected .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-dragging .christianity-card-preview-card--hand{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .12rem var(--christianity-theme-gold-soft),0 1rem 2rem var(--christianity-theme-shadow);transform:translateY(-.5rem) scale(1.045)}.christianity-card-preview-card--hand{cursor:grab;touch-action:none}.christianity-card-preview-card--hand:active{cursor:grabbing}.christianity-card-preview-card--hand.cdk-drag-disabled{cursor:not-allowed}.christianity-card-drag-preview,.christianity-card-preview-card.cdk-drag-preview{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;box-shadow:0 0 0 .16rem #fff4c2ad,0 1.5rem 3rem var(--christianity-theme-shadow-strong);transform:rotate(2deg) scale(1.03)}.christianity-card-drag-preview val-christianity-card{display:block;width:100%;height:100%}.christianity-card-drag-placeholder,.christianity-card-preview-card.cdk-drag-placeholder{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;background:#94a3b81f;opacity:.22}.christianity-slot.cdk-drop-list-dragging,.christianity-offering-drop-target.cdk-drop-list-dragging{border-color:var(--christianity-theme-gold-ring)}.christianity-slot.cdk-drop-list-receiving,.christianity-offering-drop-target.cdk-drop-list-receiving{box-shadow:inset 0 0 0 .18rem #d6a21d57,0 1rem 1.9rem var(--christianity-theme-shadow-strong)}.christianity-card-eye{position:absolute;right:50%;bottom:.38rem;width:2.15rem;height:1.55rem;border:1px solid color-mix(in srgb,var(--christianity-theme-focus) 52%,transparent);border-radius:999px;background:#fffffff0;box-shadow:0 .55rem 1.1rem #102a4324;opacity:0;transform:translate(50%,-.2rem) scale(.92);transition:opacity .14s ease,transform .14s ease,border-color .14s ease}.christianity-card-eye:before{content:\"\";position:absolute;top:50%;left:50%;width:1.1rem;height:1.1rem;border:.12rem solid var(--christianity-theme-focus);border-radius:82% 0;background:#fffffff0;transform:translate(-50%,-50%) rotate(45deg)}.christianity-card-eye:after{content:\"\";position:absolute;top:50%;left:50%;width:.42rem;height:.42rem;border:.09rem solid rgba(255,255,255,.95);border-radius:999px;background:radial-gradient(circle at 35% 32%,#ffffff 0 .06rem,transparent .07rem),var(--christianity-theme-focus);transform:translate(-50%,-50%)}.christianity-hand-card-wrap:hover .christianity-card-eye,.christianity-hand-card-wrap.is-selected .christianity-card-eye,.christianity-card-eye:focus-visible{opacity:1;transform:translate(50%) scale(1)}.christianity-offering-drop-target{display:grid;width:min(100%,6.45rem);height:8.05rem;min-height:0;max-height:8.05rem;border:1px solid transparent;border-radius:.64rem;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.christianity-offering-drop-target.is-play-target{border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0f5,#fffffff0),radial-gradient(circle at 82% 14%,rgba(250,204,21,.28) 0 .7rem,transparent .72rem);box-shadow:inset 0 0 0 .12rem #d6a21d3d,0 .8rem 1.55rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-offering-drop-target>.cdk-drag-placeholder{display:none}.christianity-card-frame--back,.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:0;aspect-ratio:var(--christianity-card-aspect);place-items:center;padding:.55rem;overflow:hidden;box-shadow:0 .8rem 1.55rem #24304424;transform-origin:50% -18%;background:var(--christianity-card-back)}.christianity-card-frame--back:before,.christianity-card-preview-card--back:before{content:\"\";position:absolute;inset:.5rem;border:1px solid rgba(16,42,67,.12);border-radius:.38rem;background:linear-gradient(180deg,#ffffff2e,#ffffff0a);box-shadow:inset 0 0 0 .12rem #ffffff1f}.christianity-card-preview-card--battle{justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;min-width:0;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);margin-inline:0}.christianity-card-preview-card>span,.christianity-card-mini>span,.christianity-offering-pile>span,.christianity-offering-card>span,.christianity-leader-card>span,.christianity-zone-card>span,.christianity-zone-pile>span{position:relative;z-index:2;align-self:start;font-weight:700;line-height:1.05}.christianity-card-preview-card>strong,.christianity-card-mini>strong,.christianity-offering-pile>strong,.christianity-offering-card>strong,.christianity-leader-card>strong,.christianity-zone-card>strong,.christianity-zone-pile>strong{position:relative;z-index:3;justify-self:end;align-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{box-sizing:border-box;display:grid;grid-template-columns:minmax(5.3rem,6.9rem) minmax(5rem,1fr) minmax(4.9rem,6.5rem);gap:.65rem;align-items:end;justify-items:center;width:100%;max-width:100%;min-width:0}.christianity-player-rack--opponent{align-items:start}.christianity-hand-meter{position:absolute;top:0;right:.35rem;z-index:4;display:inline-grid;grid-auto-flow:column;gap:.25rem;align-items:center;min-height:1.7rem;padding:.18rem .46rem;border:1px solid rgba(36,48,68,.12);border-radius:999px;background:#ffffffe6;box-shadow:0 .35rem .8rem #102a4314}.christianity-hand-meter--opponent{top:.15rem}.christianity-hand-meter span{color:#1f293394;font-size:.68rem}.christianity-hand-meter strong{font-size:.86rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:grid;justify-items:center;justify-self:center;width:min(100%,6.9rem)}.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-frame{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;align-content:stretch}.christianity-offering-pile,.christianity-zone-card,.christianity-zone-pile{grid-template-rows:auto minmax(2.6rem,1fr) auto;align-content:stretch;gap:.32rem}.christianity-card-mini{width:3.5rem}.christianity-offering-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;justify-self:center;width:min(100%,6.75rem);height:8.15rem;max-height:8.15rem;min-height:0;padding:.72rem .64rem .62rem;background:linear-gradient(180deg,#fff,#f8fafc),linear-gradient(135deg,rgba(250,204,21,.18),transparent 42%)}.christianity-offering-drop-target .christianity-offering-pile{width:100%;height:100%;max-height:none}.christianity-offering-pile>span:not(.christianity-empty-card-slot){position:relative;z-index:3;align-self:end;justify-self:stretch;max-width:100%;overflow:hidden;padding:.12rem .28rem 0;color:#1f2933b8;font-size:clamp(.72rem,2.3vw,.88rem);font-weight:800;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-pile>strong{position:absolute;right:.5rem;bottom:.5rem;z-index:3;min-width:1.7rem;padding:.13rem .38rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-offering-pile>small{position:absolute;bottom:.56rem;left:.5rem;z-index:3;max-width:calc(100% - 2.7rem);overflow:hidden;color:#1f293394;font-size:.58rem;font-weight:850;line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-slot>.cdk-drag-placeholder{display:none}.christianity-offering-pile val-christianity-card{position:absolute;top:1.72rem;left:50%;z-index:1;width:clamp(3rem,10vw,3.95rem);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .42rem .8rem rgba(16,42,67,.14))}.christianity-offering-pile:before,.christianity-offering-pile:after{content:\"\";position:absolute;top:1.82rem;left:50%;z-index:0;width:clamp(3rem,10vw,3.95rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.35rem;background:#f8fafcf0;transform:translate(calc(-50% + .24rem)) translateY(.1rem) rotate(4deg)}.christianity-offering-pile:after{background:var(--christianity-card-back);transform:translate(calc(-50% - .24rem)) translateY(.22rem) rotate(-4deg)}.christianity-offering-pile.is-empty-zone:before,.christianity-offering-pile.is-empty-zone:after{display:none}.christianity-leader-card{align-self:center;justify-self:center;width:clamp(5.25rem,9vw,7rem);min-height:0;aspect-ratio:var(--christianity-card-aspect)}.christianity-attack-drop-target{display:grid;justify-items:center;min-width:0}.christianity-rack-spacer{display:block;min-height:1px}.christianity-battle-zone{grid-template-columns:repeat(4,var(--christianity-battle-card-width))}.christianity-shared-zone{box-sizing:border-box;display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch;width:100%;max-width:100%;min-width:0}.christianity-zone-card,.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;min-height:7.65rem;padding:.78rem .62rem .62rem;border-color:#24304414;background:linear-gradient(180deg,#ffffff8a,#f8fafc5c),#ffffff3d}.christianity-zone-pile{box-shadow:inset 0 0 0 999px #ffffff0a,0 .45rem 1rem #102a430f}.christianity-zone-card.is-play-target{border-color:#2563eb61;box-shadow:inset 0 0 0 999px #2563eb14,0 0 0 .18rem #2563eb1f}.christianity-zone-pile--history.has-new-card{animation:christianity-history-pulse .9s ease-out both}@keyframes christianity-history-pulse{0%{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}28%{box-shadow:inset 0 0 0 999px #ffffff29,0 0 0 .25rem #2563eb2e;transform:scale(1.025)}to{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}}.christianity-zone-card val-christianity-card,.christianity-zone-pile val-christianity-card{position:absolute;top:.62rem;left:50%;z-index:1;width:clamp(4rem,9vw,5.4rem);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .35rem .75rem rgba(16,42,67,.12))}.christianity-zone-pile--deck val-christianity-card{transform:translate(-50%) rotate(3deg)}.christianity-zone-card>span:not(.christianity-empty-card-slot),.christianity-zone-pile>span:not(.christianity-empty-card-slot){position:relative;z-index:3;justify-self:start;max-width:calc(100% - 1.55rem);overflow:hidden;color:#1f2933d6;font-size:clamp(.76rem,2.5vw,.92rem);text-overflow:ellipsis;white-space:nowrap}.christianity-zone-card>strong,.christianity-zone-pile>strong{position:absolute;right:.45rem;bottom:.45rem;z-index:4;min-width:1.65rem;padding:.12rem .4rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-zone-card>em{position:relative;z-index:4;justify-self:center;align-self:end;padding:.12rem .38rem;border-radius:999px;background:#2563eb1f;color:var(--christianity-theme-focus);font-size:.68rem;font-style:normal;font-weight:900}.christianity-empty-card-slot{position:absolute;top:.72rem;left:50%;z-index:1;display:block;width:clamp(4rem,9vw,5.4rem);aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(16,42,67,.22);border-radius:.35rem;background:#ffffff5c;transform:translate(-50%)}.christianity-zone-pile:before,.christianity-zone-pile:after{content:\"\";position:absolute;top:.82rem;left:50%;z-index:0;width:clamp(3.3rem,16vw,4.35rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.35rem;background:#f8fafcf0;transform:translate(calc(-50% + .22rem)) rotate(4deg)}.christianity-zone-pile:after{background:var(--christianity-card-back);transform:translate(calc(-50% - .22rem)) translateY(.16rem) rotate(-3deg)}.christianity-zone-pile.is-empty-zone:before,.christianity-zone-pile.is-empty-zone:after{display:none}.christianity-floating-card-shell{position:fixed;top:50%;left:50%;z-index:10020;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.55rem;width:min(56rem,calc(100vw - 1.25rem));max-height:calc(100dvh - 4.25rem);overflow:visible;overscroll-behavior:contain;scrollbar-width:none;transform:translate(-50%,-50%)}.christianity-floating-card-shell::-webkit-scrollbar{display:none}.christianity-floating-card-shell.is-history-preview{width:min(56rem,calc(100vw - 1.25rem))}.christianity-preview-topbar{position:relative;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:.65rem;min-height:2.05rem}.christianity-preview-position{display:inline-grid;place-items:center;min-height:2rem;min-width:3.15rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933b8;font-size:.76rem;font-weight:900;box-shadow:0 .45rem 1rem #102a431a}.christianity-floating-card{position:relative;z-index:2;display:block;width:min(17.5rem,calc(52dvh - 3rem),calc(100vw - 7rem));min-height:0;padding:0;border:0;border-radius:.75rem;background:transparent;box-shadow:0 0 2.2rem var(--christianity-theme-glow);touch-action:none;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg));transition:transform .14s ease-out}.christianity-preview-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(13rem,17rem);gap:1rem;align-items:center;min-height:0}.christianity-preview-stage{position:relative;display:grid;place-items:center;justify-self:center;width:min(100%,31rem);min-width:0;min-height:0;padding-inline:4.4rem;perspective:52rem}.christianity-preview-stage:before{content:\"\";position:absolute;inset:10% 2.35rem;z-index:0;border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.26),transparent 58%),linear-gradient(90deg,transparent,rgba(37,99,235,.1),transparent);opacity:.8;pointer-events:none}.christianity-preview-ghost{position:absolute;z-index:1;width:min(13rem,calc(42dvh - 3rem),34vw);opacity:.34;pointer-events:none;filter:blur(.02rem) saturate(.9);transition:transform .36s cubic-bezier(.2,.84,.22,1),opacity .36s ease}.christianity-preview-ghost--previous{transform:translate(-86%) rotateY(22deg) rotate(-4deg) scale(.8)}.christianity-preview-ghost--next{transform:translate(86%) rotateY(-22deg) rotate(4deg) scale(.8)}.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card{animation:christianity-preview-slide-previous .36s cubic-bezier(.2,.84,.22,1) both}.christianity-floating-card-shell.is-sliding-next .christianity-floating-card{animation:christianity-preview-slide-next .36s cubic-bezier(.2,.84,.22,1) both}@keyframes christianity-preview-slide-previous{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) - 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(calc(var(--preview-rotate-y, 0deg) + 10deg)) scale(.92)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg)) scale(1)}}@keyframes christianity-preview-slide-next{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) + 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(calc(var(--preview-rotate-y, 0deg) - 10deg)) scale(.92)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg)) scale(1)}}.christianity-preview-side{display:grid;min-width:0}.christianity-floating-card val-christianity-card{display:block;width:100%;min-height:0}.christianity-full-card-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.42rem;align-items:center}.christianity-full-card-header strong{min-width:0;display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;text-overflow:clip;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:clamp(1.25rem,5vw,1.85rem);line-height:1.04}.christianity-full-card-type-icon,.christianity-full-card-cost{display:grid;place-items:center;border-radius:999px}.christianity-full-card-type-icon{width:1.6rem;height:1.6rem;background:radial-gradient(circle at 50% 50%,rgba(95,111,42,.72) 0 .22rem,transparent .24rem),#2430441a}.christianity-full-card-type-icon img{width:1rem;height:1rem;object-fit:contain}.christianity-full-card-cost{min-width:2.1rem;height:2.1rem;padding:0 .36rem;background:#ffd91a;color:#243044;font-size:1.1rem;font-weight:900;box-shadow:inset 0 -.12rem #52401c2e}.christianity-full-card-art{position:relative;display:grid;place-items:center;min-height:9rem;overflow:hidden;border-radius:.48rem;background:linear-gradient(135deg,#5f6f2a33,#d6a21d29),radial-gradient(circle at 50% 25%,rgba(255,255,255,.76),transparent 42%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-full-card-art img{width:100%;height:100%;object-fit:cover}.christianity-full-card-art>span{max-width:80%;color:#24304494;font-size:clamp(1.1rem,5vw,1.8rem);font-weight:900;line-height:1.05;text-align:center}.christianity-full-card-art small{position:absolute;right:0;bottom:.55rem;min-width:5rem;padding:.16rem .48rem;border-radius:999px 0 0 999px;background:#ffffffe6;box-shadow:0 .3rem .8rem #102a431f;color:#1f2933bd;font-size:.68rem;font-style:italic;font-weight:900;text-align:center;text-transform:uppercase}.christianity-full-card-verse,.christianity-full-card-effect{display:grid;gap:.32rem}.christianity-full-card-verse p,.christianity-full-card-effect p{margin:0;line-height:1.25}.christianity-full-card-verse{color:#171923;font-family:Georgia,Times New Roman,serif;font-size:clamp(.72rem,2.7vw,.86rem)}.christianity-full-card-verse strong{font-family:inherit;font-size:.78rem;font-weight:900}.christianity-full-card-effect{position:relative;align-content:start;min-height:7rem;padding:.6rem .7rem;overflow:hidden;border-radius:.45rem;background:radial-gradient(circle at 50% 72%,rgba(36,48,68,.07),transparent 34%),#ffffffdb}.christianity-full-card-stats{display:flex;gap:1rem;min-height:1.35rem}.christianity-full-card-stats strong{font-size:1rem;line-height:1}.christianity-full-card-stats .christianity-full-card-pips{display:inline-grid;grid-auto-flow:column;gap:.2rem;justify-self:start;padding:0;background:transparent}.christianity-full-card-effect>div:last-of-type{display:grid;gap:.12rem}.christianity-full-card-effect>div:last-of-type strong{font-size:.82rem}.christianity-full-card-effect p{font-size:clamp(.78rem,2.9vw,.92rem)}.christianity-full-card-rarity{position:absolute;top:.62rem;right:.62rem;width:.46rem;height:.46rem;border-radius:.12rem;transform:rotate(45deg)}.christianity-full-card-rarity.is-normal{background:#d1d5db}.christianity-full-card-rarity.is-uncommon{background:#22c55e}.christianity-full-card-rarity.is-rare{background:#3b82f6}.christianity-full-card-rarity.is-legendary{background:#eab308}.christianity-full-card-footer{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:.34rem;align-items:center;color:#1f2933ad;font-size:.58rem;line-height:1;text-transform:uppercase}.christianity-full-card-footer span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-floating-card-close{position:relative;z-index:8;min-height:2rem;padding:0 .6rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .45rem 1rem #102a431a}.christianity-preview-nav{position:absolute;top:50%;z-index:7;display:grid;place-items:center;width:2.55rem;height:2.55rem;border:1px solid rgba(37,99,235,.28);border-radius:999px;background:linear-gradient(180deg,#fffffffa,#eff6fff0),radial-gradient(circle at 35% 20%,rgba(37,99,235,.18),transparent 52%);color:var(--christianity-theme-focus);font:inherit;font-size:1.2rem;font-weight:1000;box-shadow:0 .75rem 1.4rem #102a4324,inset 0 0 0 1px #ffffff70;transform:translateY(-50%)}.christianity-preview-nav:hover{border-color:#2563eb6b;box-shadow:0 .95rem 1.65rem #102a432e,0 0 0 .16rem #2563eb14,inset 0 0 0 1px #ffffff9e}.christianity-preview-nav--previous{left:.6rem}.christianity-preview-nav--next{right:.6rem}.christianity-preview-backdrop,.christianity-history-backdrop,.christianity-info-backdrop{position:fixed;inset:0;border:0;border-radius:0;background:#0f172aa3}.christianity-preview-backdrop{z-index:10010;backdrop-filter:blur(.12rem)}.christianity-info-backdrop{z-index:50}.christianity-info-panel{position:fixed;top:50%;left:50%;z-index:51;width:min(31rem,calc(100vw - 1.25rem));max-height:min(34rem,calc(100vh - 2rem));padding-top:2.35rem;transform:translate(-50%,-50%)}.christianity-info-close{position:absolute;top:0;right:.15rem;z-index:2}.christianity-rule-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem;max-height:inherit;padding:1rem;overflow-y:auto;border:1px solid rgba(36,48,68,.14);border-radius:.9rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 38%);box-shadow:0 1.2rem 2.6rem #102a433d,inset 0 0 0 .25rem #ffffff85}.christianity-rule-note-icon{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:999px;background:color-mix(in srgb,var(--christianity-theme-focus) 12%,#ffffff);color:var(--christianity-theme-focus);font-size:1rem;font-weight:900;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent)}.christianity-rule-note small,.christianity-rule-note strong,.christianity-rule-note p,.christianity-rule-note h2{margin:0}.christianity-rule-note small{color:#1f29339e;font-size:.78rem;font-weight:800;text-transform:uppercase}.christianity-rule-note h2{margin-top:.18rem;font-size:clamp(1.5rem,7vw,2.2rem);line-height:1.05}.christianity-rule-note strong{display:inline-flex;width:fit-content;margin-top:.55rem;padding:.22rem .55rem;border-radius:999px;background:#edf2f7;font-size:.92rem}.christianity-rule-note p{margin-top:.75rem;color:#1f2933c7;line-height:1.45}.christianity-rule-note ul{display:grid;gap:.45rem;margin:.8rem 0 0;padding-left:1.05rem;color:#1f2933c7;line-height:1.35}.christianity-floating-card>small,.christianity-floating-card>span{color:#1f2933a3}.christianity-floating-card>strong{font-size:clamp(1.55rem,8vw,2.35rem);line-height:1.05}.christianity-floating-card>p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-preview-rule-note{position:relative;z-index:4;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;max-height:min(18rem,54dvh);padding:.68rem .76rem;overflow-y:auto;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:linear-gradient(180deg,#ffffffe0,#f8fafcd1),radial-gradient(circle at 8% 0%,rgba(37,99,235,.07),transparent 44%);box-shadow:0 .55rem 1.2rem #102a4314}.christianity-preview-abilities{position:relative;z-index:4;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:.5rem;max-height:min(13rem,30dvh);min-height:0;padding:.72rem .78rem .78rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:.75rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 44%);box-shadow:0 .75rem 1.6rem #102a431f}.christianity-preview-abilities-header{display:flex;align-items:center;justify-content:space-between;gap:.7rem;min-width:0}.christianity-preview-abilities-header>div{display:grid;gap:.1rem;min-width:0}.christianity-preview-abilities small,.christianity-preview-abilities p,.christianity-preview-abilities-header span,.christianity-preview-ability-card strong{margin:0}.christianity-preview-abilities small{color:#1f293394;font-size:.68rem;font-weight:900;text-transform:uppercase}.christianity-preview-abilities-header span{color:#1f293385;font-size:.72rem;font-weight:900}.christianity-preview-ability-nav{display:flex;flex:0 0 auto;gap:.35rem}.christianity-preview-ability-nav button{display:grid;place-items:center;width:1.85rem;height:1.85rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:#ffffffe0;color:var(--christianity-theme-focus);font:inherit;font-size:1rem;font-weight:950;line-height:1;box-shadow:0 .35rem .85rem #2563eb24}.christianity-preview-ability-tabs{display:flex;gap:.34rem;overflow-x:auto;scrollbar-width:none}.christianity-preview-ability-tabs::-webkit-scrollbar{display:none}.christianity-preview-ability-tabs button{flex:0 0 auto;max-width:100%;min-height:1.85rem;padding:0 .58rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:999px;background:#edf2f7d1;color:#1f2933c2;font:inherit;font-size:.74rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-tabs button.is-selected{border-color:#2563eb52;background:color-mix(in srgb,var(--christianity-theme-focus) 14%,#ffffff);color:var(--christianity-theme-focus)}.christianity-preview-ability-card{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;gap:.34rem;padding:.55rem .62rem;overflow:hidden;border:1px solid rgba(148,163,184,.16);border-radius:.62rem;background:#ffffff94}.christianity-preview-ability-card strong{overflow:hidden;color:#1f2933e6;font-size:.82rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-scroll{min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain;padding-right:.25rem}.christianity-preview-abilities p{color:#1f2933bd;font-size:.8rem;line-height:1.32}.christianity-preview-ability-footer{display:flex;justify-content:flex-end;align-self:end}.christianity-preview-use-ability{min-height:2rem;padding:0 .72rem;border:0;border-radius:999px;background:var(--christianity-theme-focus);color:#fff;font:inherit;font-size:.78rem;font-weight:900;box-shadow:0 .55rem 1.1rem #2563eb38}.christianity-preview-use-ability:disabled{background:#94a3b85c;color:#1f293380;box-shadow:none}.christianity-preview-rule-note small,.christianity-preview-rule-note strong,.christianity-preview-rule-note p{margin:0}.christianity-preview-rule-note small{color:#1f293394;font-size:.68rem;font-weight:800;text-transform:uppercase}.christianity-preview-rule-note strong{display:block;margin-top:.08rem;font-size:.92rem;line-height:1.1}.christianity-preview-rule-note p{margin-top:.22rem;color:#1f2933bd;font-size:.82rem;line-height:1.32}@media (min-width: 52rem){.christianity-floating-card-shell{width:min(58rem,calc(100vw - 3rem))}.christianity-floating-card{min-height:0;padding:0;width:min(22rem,calc(67dvh - 5.85rem),24rem)}}@media (max-width: 51.99rem){.christianity-floating-card-shell{top:50%;gap:.4rem;width:min(calc(100vw - .9rem),24rem);max-height:calc(100dvh - 1.15rem)}.christianity-preview-content{grid-template-columns:minmax(0,1fr)}.christianity-preview-side{display:none}.christianity-preview-stage{width:100%;padding-inline:3.55rem}.christianity-floating-card{width:min(14.4rem,calc(58dvh - 8.2rem),calc(100vw - 8rem));justify-self:center}.christianity-preview-ghost{display:block;width:min(7.1rem,calc(30dvh - 4rem),24vw);opacity:.24}.christianity-preview-ghost--previous{transform:translate(-118%) rotateY(24deg) rotate(-5deg) scale(.78)}.christianity-preview-ghost--next{transform:translate(118%) rotateY(-24deg) rotate(5deg) scale(.78)}.christianity-floating-card-close{min-height:1.9rem;padding:0 .58rem;font-size:.72rem}.christianity-preview-nav{width:2.2rem;height:2.2rem}.christianity-preview-nav--previous{left:.35rem}.christianity-preview-nav--next{right:.35rem}.christianity-preview-abilities{max-height:min(9.6rem,27dvh);padding:.62rem .7rem}.christianity-preview-ability-tabs{padding-bottom:.02rem}.christianity-preview-ability-card{padding:.48rem .54rem}.christianity-preview-abilities p{font-size:.78rem;line-height:1.24}.christianity-preview-use-ability{min-height:1.95rem;padding-inline:.68rem}}.christianity-history-backdrop{z-index:40}.christianity-gallery-backdrop{z-index:10000;background:#0f172ab8;backdrop-filter:blur(.14rem)}.christianity-history-drawer{position:fixed;right:auto;bottom:max(.5rem,env(safe-area-inset-bottom));left:50%;z-index:41;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;width:min(calc(100vw - 1rem),44rem);min-height:min(18rem,calc(100dvh - 1rem));max-height:min(32rem,calc(100dvh - 2rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347;transform:translate(-50%)}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-dialog-actions{display:flex;align-items:center;gap:.45rem}.christianity-dialog-close{min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#fff;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .8rem #102a4314}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem .1rem .25rem}.christianity-history-grid::-webkit-scrollbar,.christianity-offering-list::-webkit-scrollbar{width:.65rem}.christianity-history-grid::-webkit-scrollbar-track,.christianity-offering-list::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-history-grid::-webkit-scrollbar-thumb,.christianity-offering-list::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offerings-drawer{grid-template-rows:auto auto minmax(0,1fr);width:min(calc(100vw - 1rem),48rem);min-height:min(20rem,calc(100dvh - 1rem));max-height:min(34rem,calc(100dvh - 2rem))}.christianity-offerings-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;padding:.72rem .8rem;border:1px solid rgba(36,48,68,.12);border-radius:.7rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 8% 0%,rgba(214,162,29,.12),transparent 42%)}.christianity-offerings-note p{margin:0;color:#1f2933c2;font-size:.86rem;line-height:1.35}.christianity-offering-list{display:grid;gap:.6rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem}.christianity-offering-row{display:grid;grid-template-columns:minmax(5.4rem,6.5rem) minmax(0,1fr);gap:.65rem;align-items:center;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.65rem;background:#fff}.christianity-offering-row.is-exhausted{opacity:.68}.christianity-gallery-drawer{position:fixed;grid-template-rows:auto auto auto minmax(0,1fr);inset:0;z-index:10001;box-sizing:border-box;width:100dvw;height:100dvh;max-width:none;min-height:100dvh;max-height:100dvh;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));border:0;border-radius:0;background:linear-gradient(180deg,#f8fafcfc,#eff6fffc),radial-gradient(circle at 16% 0%,rgba(37,99,235,.12),transparent 42%);transform:none}.christianity-gallery-drawer header>div:first-child{display:grid;gap:.15rem;min-width:0}.christianity-gallery-drawer header p{color:#1f293394;font-size:.82rem}.christianity-gallery-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(8.5rem,13rem);gap:.65rem;min-width:0}.christianity-gallery-controls label{display:grid;gap:.25rem;min-width:0;color:#1f29339e;font-size:.74rem;font-weight:800}.christianity-gallery-controls input,.christianity-gallery-controls select{width:100%;min-width:0;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(36,48,68,.16);border-radius:.65rem;background:#fff;color:var(--christianity-theme-ink);font:inherit;font-size:.9rem}.christianity-gallery-edition-strip{display:flex;gap:.45rem;overflow-x:auto;min-width:0;padding-bottom:.2rem}.christianity-gallery-edition-strip button{display:inline-flex;align-items:center;gap:.45rem;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(214,162,29,.38);border-radius:999px;background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800}.christianity-gallery-edition-strip img{width:1.2rem;height:1.2rem;object-fit:contain}.christianity-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.6rem,8.7rem));justify-content:center;align-content:start;gap:.85rem;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.35rem .15rem .65rem}.christianity-gallery-grid::-webkit-scrollbar{width:.65rem}.christianity-gallery-grid::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-gallery-grid::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offering-card{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;gap:.26rem;width:100%;min-height:7.7rem;padding:.58rem;overflow:hidden;text-align:left;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 78% 14%,rgba(250,204,21,.78) 0 .42rem,transparent .44rem);box-shadow:0 .45rem 1rem #102a431a}.christianity-offering-card small{min-width:0;overflow:hidden;color:#1f293394;font-size:.62rem;font-weight:800;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-offering-card strong{display:-webkit-box;align-self:start;min-width:0;margin-top:.1rem;overflow:hidden;overflow-wrap:anywhere;font-size:.88rem;line-height:1.05;-webkit-box-orient:vertical;-webkit-line-clamp:3}.christianity-offering-card span{position:absolute;right:.42rem;bottom:.42rem;display:grid;place-items:center;min-width:1.55rem;height:1.55rem;padding:0 .28rem;border-radius:999px;background:#edf2f7;font-size:.82rem;font-weight:900}.christianity-offering-card em{align-self:end;max-width:calc(100% - 1.9rem);overflow:hidden;color:#1f29339e;font-size:.64rem;font-style:normal;font-weight:800;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-card p,.christianity-offering-row p{margin:0}.christianity-offering-card p{align-self:end;color:#1f2933a3;font-size:.72rem;line-height:1.2}.christianity-offering-row>div{display:grid;gap:.35rem;align-content:center;min-width:0}.christianity-offering-row>div p{color:#1f2933b8;font-size:.85rem;line-height:1.3}.christianity-offering-row>div button{justify-self:start;min-height:2.2rem;padding:0 .7rem;border:1px solid rgba(16,42,67,.16);border-radius:.5rem;background:#102a43;color:#fff;font:inherit;font-weight:800}.christianity-offering-row>div button:disabled{background:#e2e8f0;color:#1f293394}.christianity-history-grid .christianity-render-card-button{justify-self:center;width:min(100%,6.4rem)}.christianity-gallery-grid .christianity-render-card-button{justify-self:center;width:min(100%,8.7rem)}.christianity-gallery-grid .christianity-card-frame-header strong{font-size:clamp(.74rem,.85vw,.9rem)}.christianity-gallery-grid .christianity-card-frame-header small,.christianity-gallery-grid .christianity-card-frame-footer{font-size:.44rem}.christianity-offering-card.christianity-render-card-button{width:min(100%,5.8rem);min-height:0;padding:0;border:0;background:transparent;box-shadow:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent);outline-offset:.125rem}:host-context(.dark),:host-context(.ion-palette-dark),:host-context(html.ion-palette-dark),:host-context(body.dark),:host-context([data-theme=\"dark\"]){--christianity-theme-ink: var(--ion-text-color, #e5edf8);--christianity-theme-surface: #111827;--christianity-theme-parchment: #13223a;--christianity-theme-olive: #93c5fd;--christianity-theme-gold: #60a5fa;--christianity-theme-gold-soft: rgba(96, 165, 250, .18);--christianity-theme-gold-ring: rgba(147, 197, 253, .42);--christianity-theme-glow: rgba(96, 165, 250, .24);--christianity-theme-focus: #93c5fd;--christianity-theme-shadow: rgba(0, 0, 0, .34);--christianity-theme-shadow-strong: rgba(0, 0, 0, .48);--christianity-card-back: linear-gradient(135deg, rgba(147, 197, 253, .2), rgba(15, 23, 42, .08)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(147, 197, 253, .15), rgba(15, 23, 42, .06)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);color-scheme:dark}:host-context(.dark) .christianity-gallery-open,:host-context(.ion-palette-dark) .christianity-gallery-open,:host-context(html.ion-palette-dark) .christianity-gallery-open,:host-context(body.dark) .christianity-gallery-open,:host-context([data-theme=\"dark\"]) .christianity-gallery-open,:host-context(.dark) .christianity-secondary-action,:host-context(.ion-palette-dark) .christianity-secondary-action,:host-context(html.ion-palette-dark) .christianity-secondary-action,:host-context(body.dark) .christianity-secondary-action,:host-context([data-theme=\"dark\"]) .christianity-secondary-action,:host-context(.dark) .christianity-gallery-edition-strip button,:host-context(.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(html.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(body.dark) .christianity-gallery-edition-strip button,:host-context([data-theme=\"dark\"]) .christianity-gallery-edition-strip button{border-color:#93c5fd5c;background:linear-gradient(180deg,#1e3a5fd1,#0f172ae0),radial-gradient(circle at 20% 0%,rgba(96,165,250,.16),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.2rem #0000003d}:host-context(.dark) .christianity-splash,:host-context(.ion-palette-dark) .christianity-splash,:host-context(html.ion-palette-dark) .christianity-splash,:host-context(body.dark) .christianity-splash,:host-context([data-theme=\"dark\"]) .christianity-splash{border-color:#93c5fd38;background:radial-gradient(circle at 50% 18%,rgba(96,165,250,.16),transparent 22rem),linear-gradient(180deg,#0f172ae0,#07111ff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #00000047}:host-context(.dark) .christianity-start__cards article,:host-context(.ion-palette-dark) .christianity-start__cards article,:host-context(html.ion-palette-dark) .christianity-start__cards article,:host-context(body.dark) .christianity-start__cards article,:host-context([data-theme=\"dark\"]) .christianity-start__cards article,:host-context(.dark) .christianity-start__modes article,:host-context(.ion-palette-dark) .christianity-start__modes article,:host-context(html.ion-palette-dark) .christianity-start__modes article,:host-context(body.dark) .christianity-start__modes article,:host-context([data-theme=\"dark\"]) .christianity-start__modes article,:host-context(.dark) .christianity-start__status span,:host-context(.ion-palette-dark) .christianity-start__status span,:host-context(html.ion-palette-dark) .christianity-start__status span,:host-context(body.dark) .christianity-start__status span,:host-context([data-theme=\"dark\"]) .christianity-start__status span,:host-context(.dark) .christianity-start__modes article>span,:host-context(.ion-palette-dark) .christianity-start__modes article>span,:host-context(html.ion-palette-dark) .christianity-start__modes article>span,:host-context(body.dark) .christianity-start__modes article>span,:host-context([data-theme=\"dark\"]) .christianity-start__modes article>span{border-color:#94a3b833;background:#0f172aad;box-shadow:0 .75rem 1.7rem #00000038}:host-context(.dark) .christianity-splash p,:host-context(.ion-palette-dark) .christianity-splash p,:host-context(html.ion-palette-dark) .christianity-splash p,:host-context(body.dark) .christianity-splash p,:host-context([data-theme=\"dark\"]) .christianity-splash p,:host-context(.dark) .christianity-start__copy p,:host-context(.ion-palette-dark) .christianity-start__copy p,:host-context(html.ion-palette-dark) .christianity-start__copy p,:host-context(body.dark) .christianity-start__copy p,:host-context([data-theme=\"dark\"]) .christianity-start__copy p,:host-context(.dark) .christianity-start__cards p,:host-context(.ion-palette-dark) .christianity-start__cards p,:host-context(html.ion-palette-dark) .christianity-start__cards p,:host-context(body.dark) .christianity-start__cards p,:host-context([data-theme=\"dark\"]) .christianity-start__cards p,:host-context(.dark) .christianity-start__modes p,:host-context(.ion-palette-dark) .christianity-start__modes p,:host-context(html.ion-palette-dark) .christianity-start__modes p,:host-context(body.dark) .christianity-start__modes p,:host-context([data-theme=\"dark\"]) .christianity-start__modes p,:host-context(.dark) .christianity-header p,:host-context(.ion-palette-dark) .christianity-header p,:host-context(html.ion-palette-dark) .christianity-header p,:host-context(body.dark) .christianity-header p,:host-context([data-theme=\"dark\"]) .christianity-header p,:host-context(.dark) .christianity-match-player small,:host-context(.ion-palette-dark) .christianity-match-player small,:host-context(html.ion-palette-dark) .christianity-match-player small,:host-context(body.dark) .christianity-match-player small,:host-context([data-theme=\"dark\"]) .christianity-match-player small,:host-context(.dark) .christianity-scoreboard span,:host-context(.ion-palette-dark) .christianity-scoreboard span,:host-context(html.ion-palette-dark) .christianity-scoreboard span,:host-context(body.dark) .christianity-scoreboard span,:host-context([data-theme=\"dark\"]) .christianity-scoreboard span{color:#e2e8f0bd}:host-context(.dark) .christianity-turn,:host-context(.ion-palette-dark) .christianity-turn,:host-context(html.ion-palette-dark) .christianity-turn,:host-context(body.dark) .christianity-turn,:host-context([data-theme=\"dark\"]) .christianity-turn,:host-context(.dark) .christianity-leader,:host-context(.ion-palette-dark) .christianity-leader,:host-context(html.ion-palette-dark) .christianity-leader,:host-context(body.dark) .christianity-leader,:host-context([data-theme=\"dark\"]) .christianity-leader,:host-context(.dark) .christianity-offerings,:host-context(.ion-palette-dark) .christianity-offerings,:host-context(html.ion-palette-dark) .christianity-offerings,:host-context(body.dark) .christianity-offerings,:host-context([data-theme=\"dark\"]) .christianity-offerings,:host-context(.dark) .christianity-hidden-hand,:host-context(.ion-palette-dark) .christianity-hidden-hand,:host-context(html.ion-palette-dark) .christianity-hidden-hand,:host-context(body.dark) .christianity-hidden-hand,:host-context([data-theme=\"dark\"]) .christianity-hidden-hand,:host-context(.dark) .christianity-pile,:host-context(.ion-palette-dark) .christianity-pile,:host-context(html.ion-palette-dark) .christianity-pile,:host-context(body.dark) .christianity-pile,:host-context([data-theme=\"dark\"]) .christianity-pile,:host-context(.dark) .christianity-deck,:host-context(.ion-palette-dark) .christianity-deck,:host-context(html.ion-palette-dark) .christianity-deck,:host-context(body.dark) .christianity-deck,:host-context([data-theme=\"dark\"]) .christianity-deck,:host-context(.dark) .christianity-place,:host-context(.ion-palette-dark) .christianity-place,:host-context(html.ion-palette-dark) .christianity-place,:host-context(body.dark) .christianity-place,:host-context([data-theme=\"dark\"]) .christianity-place,:host-context(.dark) .christianity-match-strip,:host-context(.ion-palette-dark) .christianity-match-strip,:host-context(html.ion-palette-dark) .christianity-match-strip,:host-context(body.dark) .christianity-match-strip,:host-context([data-theme=\"dark\"]) .christianity-match-strip,:host-context(.dark) .christianity-actions,:host-context(.ion-palette-dark) .christianity-actions,:host-context(html.ion-palette-dark) .christianity-actions,:host-context(body.dark) .christianity-actions,:host-context([data-theme=\"dark\"]) .christianity-actions,:host-context(.dark) .christianity-history,:host-context(.ion-palette-dark) .christianity-history,:host-context(html.ion-palette-dark) .christianity-history,:host-context(body.dark) .christianity-history,:host-context([data-theme=\"dark\"]) .christianity-history{border-color:#94a3b82e;background:#0f172ad1}:host-context(.dark) .christianity-turn.is-own-turn,:host-context(.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(html.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(body.dark) .christianity-turn.is-own-turn,:host-context([data-theme=\"dark\"]) .christianity-turn.is-own-turn{border-color:#2dd4bf5c;background:#14534c5c}:host-context(.dark) .christianity-table,:host-context(.ion-palette-dark) .christianity-table,:host-context(html.ion-palette-dark) .christianity-table,:host-context(body.dark) .christianity-table,:host-context([data-theme=\"dark\"]) .christianity-table{background:linear-gradient(180deg,#10233d,#0b1728)}:host-context(.dark) .christianity-player-side,:host-context(.ion-palette-dark) .christianity-player-side,:host-context(html.ion-palette-dark) .christianity-player-side,:host-context(body.dark) .christianity-player-side,:host-context([data-theme=\"dark\"]) .christianity-player-side{background:#0f172a57}:host-context(.dark) .christianity-battle-zone,:host-context(.ion-palette-dark) .christianity-battle-zone,:host-context(html.ion-palette-dark) .christianity-battle-zone,:host-context(body.dark) .christianity-battle-zone,:host-context([data-theme=\"dark\"]) .christianity-battle-zone,:host-context(.dark) .christianity-shared-zone,:host-context(.ion-palette-dark) .christianity-shared-zone,:host-context(html.ion-palette-dark) .christianity-shared-zone,:host-context(body.dark) .christianity-shared-zone,:host-context([data-theme=\"dark\"]) .christianity-shared-zone{background:#0f172a94}:host-context(.dark) .christianity-battle-zone.is-placing-card,:host-context(.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(html.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(body.dark) .christianity-battle-zone.is-placing-card,:host-context([data-theme=\"dark\"]) .christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#1e3a5fd1,#0f172ab8),#0f172a94}:host-context(.dark) .christianity-card,:host-context(.ion-palette-dark) .christianity-card,:host-context(html.ion-palette-dark) .christianity-card,:host-context(body.dark) .christianity-card,:host-context([data-theme=\"dark\"]) .christianity-card,:host-context(.dark) .christianity-slot,:host-context(.ion-palette-dark) .christianity-slot,:host-context(html.ion-palette-dark) .christianity-slot,:host-context(body.dark) .christianity-slot,:host-context([data-theme=\"dark\"]) .christianity-slot{border-color:#94a3b83d;background:#0f172a8a}:host-context(.dark) .christianity-slot--play-target,:host-context(.ion-palette-dark) .christianity-slot--play-target,:host-context(html.ion-palette-dark) .christianity-slot--play-target,:host-context(body.dark) .christianity-slot--play-target,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target{color:var(--christianity-theme-ink);background:linear-gradient(180deg,#2563eb3d,#0f172ac7),#0f172abd}:host-context(.dark) .christianity-slot--play-target span,:host-context(.ion-palette-dark) .christianity-slot--play-target span,:host-context(html.ion-palette-dark) .christianity-slot--play-target span,:host-context(body.dark) .christianity-slot--play-target span,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target span,:host-context(.dark) .christianity-card strong,:host-context(.ion-palette-dark) .christianity-card strong,:host-context(html.ion-palette-dark) .christianity-card strong,:host-context(body.dark) .christianity-card strong,:host-context([data-theme=\"dark\"]) .christianity-card strong{background:#1e293beb}:host-context(.dark) .christianity-offering-pile,:host-context(.ion-palette-dark) .christianity-offering-pile,:host-context(html.ion-palette-dark) .christianity-offering-pile,:host-context(body.dark) .christianity-offering-pile,:host-context([data-theme=\"dark\"]) .christianity-offering-pile,:host-context(.dark) .christianity-zone-card,:host-context(.ion-palette-dark) .christianity-zone-card,:host-context(html.ion-palette-dark) .christianity-zone-card,:host-context(body.dark) .christianity-zone-card,:host-context([data-theme=\"dark\"]) .christianity-zone-card,:host-context(.dark) .christianity-zone-pile,:host-context(.ion-palette-dark) .christianity-zone-pile,:host-context(html.ion-palette-dark) .christianity-zone-pile,:host-context(body.dark) .christianity-zone-pile,:host-context([data-theme=\"dark\"]) .christianity-zone-pile{border-color:#94a3b83d;background:linear-gradient(180deg,#111827f5,#0f172af0),radial-gradient(circle at 14% 0%,rgba(96,165,250,.12),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.25rem #00000047,inset 0 0 0 .12rem #ffffff08}:host-context(.dark) .christianity-offering-pile>span,:host-context(.ion-palette-dark) .christianity-offering-pile>span,:host-context(html.ion-palette-dark) .christianity-offering-pile>span,:host-context(body.dark) .christianity-offering-pile>span,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>span,:host-context(.dark) .christianity-zone-card>span,:host-context(.ion-palette-dark) .christianity-zone-card>span,:host-context(html.ion-palette-dark) .christianity-zone-card>span,:host-context(body.dark) .christianity-zone-card>span,:host-context([data-theme=\"dark\"]) .christianity-zone-card>span,:host-context(.dark) .christianity-zone-pile>span,:host-context(.ion-palette-dark) .christianity-zone-pile>span,:host-context(html.ion-palette-dark) .christianity-zone-pile>span,:host-context(body.dark) .christianity-zone-pile>span,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>span,:host-context(.dark) .christianity-player-badge,:host-context(.ion-palette-dark) .christianity-player-badge,:host-context(html.ion-palette-dark) .christianity-player-badge,:host-context(body.dark) .christianity-player-badge,:host-context([data-theme=\"dark\"]) .christianity-player-badge{color:#e2e8f0c7}:host-context(.dark) .christianity-offering-pile>small,:host-context(.ion-palette-dark) .christianity-offering-pile>small,:host-context(html.ion-palette-dark) .christianity-offering-pile>small,:host-context(body.dark) .christianity-offering-pile>small,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>small{color:#e2e8f09e}:host-context(.dark) .christianity-offering-pile>strong,:host-context(.ion-palette-dark) .christianity-offering-pile>strong,:host-context(html.ion-palette-dark) .christianity-offering-pile>strong,:host-context(body.dark) .christianity-offering-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>strong,:host-context(.dark) .christianity-zone-card>strong,:host-context(.ion-palette-dark) .christianity-zone-card>strong,:host-context(html.ion-palette-dark) .christianity-zone-card>strong,:host-context(body.dark) .christianity-zone-card>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-card>strong,:host-context(.dark) .christianity-zone-pile>strong,:host-context(.ion-palette-dark) .christianity-zone-pile>strong,:host-context(html.ion-palette-dark) .christianity-zone-pile>strong,:host-context(body.dark) .christianity-zone-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>strong,:host-context(.dark) .christianity-hand-meter,:host-context(.ion-palette-dark) .christianity-hand-meter,:host-context(html.ion-palette-dark) .christianity-hand-meter,:host-context(body.dark) .christianity-hand-meter,:host-context([data-theme=\"dark\"]) .christianity-hand-meter{border-color:#94a3b833;background:#0f172ae0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #00000047}:host-context(.dark) .christianity-hand-meter span,:host-context(.ion-palette-dark) .christianity-hand-meter span,:host-context(html.ion-palette-dark) .christianity-hand-meter span,:host-context(body.dark) .christianity-hand-meter span,:host-context([data-theme=\"dark\"]) .christianity-hand-meter span{color:#e2e8f0b3}:host-context(.dark) .christianity-offering-pile:before,:host-context(.ion-palette-dark) .christianity-offering-pile:before,:host-context(html.ion-palette-dark) .christianity-offering-pile:before,:host-context(body.dark) .christianity-offering-pile:before,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:before,:host-context(.dark) .christianity-zone-pile:before,:host-context(.ion-palette-dark) .christianity-zone-pile:before,:host-context(html.ion-palette-dark) .christianity-zone-pile:before,:host-context(body.dark) .christianity-zone-pile:before,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:before{border-color:#94a3b833;background:#e2e8f0eb;box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-offering-pile:after,:host-context(.ion-palette-dark) .christianity-offering-pile:after,:host-context(html.ion-palette-dark) .christianity-offering-pile:after,:host-context(body.dark) .christianity-offering-pile:after,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:after,:host-context(.dark) .christianity-zone-pile:after,:host-context(.ion-palette-dark) .christianity-zone-pile:after,:host-context(html.ion-palette-dark) .christianity-zone-pile:after,:host-context(body.dark) .christianity-zone-pile:after,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:after{border-color:#94a3b838;background:var(--christianity-card-back);box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-end-turn:disabled,:host-context(.ion-palette-dark) .christianity-end-turn:disabled,:host-context(html.ion-palette-dark) .christianity-end-turn:disabled,:host-context(body.dark) .christianity-end-turn:disabled,:host-context([data-theme=\"dark\"]) .christianity-end-turn:disabled{border-color:#94a3b829;background:#0f172a75;color:#e2e8f06b;opacity:1}:host-context(.dark) .christianity-history-drawer,:host-context(.ion-palette-dark) .christianity-history-drawer,:host-context(html.ion-palette-dark) .christianity-history-drawer,:host-context(body.dark) .christianity-history-drawer,:host-context([data-theme=\"dark\"]) .christianity-history-drawer,:host-context(.dark) .christianity-rule-note,:host-context(.ion-palette-dark) .christianity-rule-note,:host-context(html.ion-palette-dark) .christianity-rule-note,:host-context(body.dark) .christianity-rule-note,:host-context([data-theme=\"dark\"]) .christianity-rule-note,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note,:host-context(.dark) .christianity-preview-abilities,:host-context(.ion-palette-dark) .christianity-preview-abilities,:host-context(html.ion-palette-dark) .christianity-preview-abilities,:host-context(body.dark) .christianity-preview-abilities,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities{border-color:#94a3b82e;background:linear-gradient(180deg,#0f172af5,#111827f5),radial-gradient(circle at 8% 0%,rgba(96,165,250,.12),transparent 40%);box-shadow:0 1.5rem 4rem #0000006b}:host-context(.dark) .christianity-dialog-close,:host-context(.ion-palette-dark) .christianity-dialog-close,:host-context(html.ion-palette-dark) .christianity-dialog-close,:host-context(body.dark) .christianity-dialog-close,:host-context([data-theme=\"dark\"]) .christianity-dialog-close,:host-context(.dark) .christianity-floating-card-close,:host-context(.ion-palette-dark) .christianity-floating-card-close,:host-context(html.ion-palette-dark) .christianity-floating-card-close,:host-context(body.dark) .christianity-floating-card-close,:host-context([data-theme=\"dark\"]) .christianity-floating-card-close,:host-context(.dark) .christianity-preview-position,:host-context(.ion-palette-dark) .christianity-preview-position,:host-context(html.ion-palette-dark) .christianity-preview-position,:host-context(body.dark) .christianity-preview-position,:host-context([data-theme=\"dark\"]) .christianity-preview-position,:host-context(.dark) .christianity-preview-nav,:host-context(.ion-palette-dark) .christianity-preview-nav,:host-context(html.ion-palette-dark) .christianity-preview-nav,:host-context(body.dark) .christianity-preview-nav,:host-context([data-theme=\"dark\"]) .christianity-preview-nav,:host-context(.dark) .christianity-preview-ability-nav button,:host-context(.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(html.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(body.dark) .christianity-preview-ability-nav button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-nav button,:host-context(.dark) .christianity-preview-ability-tabs button,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(body.dark) .christianity-preview-ability-tabs button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button{border-color:#94a3b838;background:#0f172af0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #0000004d}:host-context(.dark) .christianity-preview-ability-tabs button.is-selected,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(body.dark) .christianity-preview-ability-tabs button.is-selected,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button.is-selected{border-color:#60a5fa61;background:#2563eb38;color:#dbeafef0}:host-context(.dark) .christianity-preview-use-ability:disabled,:host-context(.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(html.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(body.dark) .christianity-preview-use-ability:disabled,:host-context([data-theme=\"dark\"]) .christianity-preview-use-ability:disabled{background:#334155c7;color:#e2e8f07a}:host-context(.dark) .christianity-preview-ability-card,:host-context(.ion-palette-dark) .christianity-preview-ability-card,:host-context(html.ion-palette-dark) .christianity-preview-ability-card,:host-context(body.dark) .christianity-preview-ability-card,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card{border-color:#94a3b829;background:#0f172a6b}:host-context(.dark) .christianity-preview-ability-card strong,:host-context(.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(html.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(body.dark) .christianity-preview-ability-card strong,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card strong,:host-context(.dark) .christianity-preview-abilities-header span,:host-context(.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(html.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(body.dark) .christianity-preview-abilities-header span,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities-header span{color:#e2e8f0d1}:host-context(.dark) .christianity-history-drawer header span,:host-context(.ion-palette-dark) .christianity-history-drawer header span,:host-context(html.ion-palette-dark) .christianity-history-drawer header span,:host-context(body.dark) .christianity-history-drawer header span,:host-context([data-theme=\"dark\"]) .christianity-history-drawer header span,:host-context(.dark) .christianity-rule-note strong,:host-context(.ion-palette-dark) .christianity-rule-note strong,:host-context(html.ion-palette-dark) .christianity-rule-note strong,:host-context(body.dark) .christianity-rule-note strong,:host-context([data-theme=\"dark\"]) .christianity-rule-note strong{background:#1e293beb}:host-context(.dark) .christianity-rule-note small,:host-context(.ion-palette-dark) .christianity-rule-note small,:host-context(html.ion-palette-dark) .christianity-rule-note small,:host-context(body.dark) .christianity-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-rule-note small,:host-context(.dark) .christianity-preview-rule-note small,:host-context(.ion-palette-dark) .christianity-preview-rule-note small,:host-context(html.ion-palette-dark) .christianity-preview-rule-note small,:host-context(body.dark) .christianity-preview-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note small,:host-context(.dark) .christianity-preview-abilities small,:host-context(.ion-palette-dark) .christianity-preview-abilities small,:host-context(html.ion-palette-dark) .christianity-preview-abilities small,:host-context(body.dark) .christianity-preview-abilities small,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities small,:host-context(.dark) .christianity-gallery-drawer header p,:host-context(.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(html.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(body.dark) .christianity-gallery-drawer header p,:host-context([data-theme=\"dark\"]) .christianity-gallery-drawer header p,:host-context(.dark) .christianity-gallery-controls label,:host-context(.ion-palette-dark) .christianity-gallery-controls label,:host-context(html.ion-palette-dark) .christianity-gallery-controls label,:host-context(body.dark) .christianity-gallery-controls label,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls label{color:#e2e8f0ad}:host-context(.dark) .christianity-rule-note p,:host-context(.ion-palette-dark) .christianity-rule-note p,:host-context(html.ion-palette-dark) .christianity-rule-note p,:host-context(body.dark) .christianity-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-rule-note p,:host-context(.dark) .christianity-rule-note ul,:host-context(.ion-palette-dark) .christianity-rule-note ul,:host-context(html.ion-palette-dark) .christianity-rule-note ul,:host-context(body.dark) .christianity-rule-note ul,:host-context([data-theme=\"dark\"]) .christianity-rule-note ul,:host-context(.dark) .christianity-preview-rule-note p,:host-context(.ion-palette-dark) .christianity-preview-rule-note p,:host-context(html.ion-palette-dark) .christianity-preview-rule-note p,:host-context(body.dark) .christianity-preview-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note p,:host-context(.dark) .christianity-preview-abilities p,:host-context(.ion-palette-dark) .christianity-preview-abilities p,:host-context(html.ion-palette-dark) .christianity-preview-abilities p,:host-context(body.dark) .christianity-preview-abilities p,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities p,:host-context(.dark) .christianity-offerings-note p,:host-context(.ion-palette-dark) .christianity-offerings-note p,:host-context(html.ion-palette-dark) .christianity-offerings-note p,:host-context(body.dark) .christianity-offerings-note p,:host-context([data-theme=\"dark\"]) .christianity-offerings-note p{color:#e2e8f0cc}:host-context(.dark) .christianity-gallery-controls input,:host-context(.ion-palette-dark) .christianity-gallery-controls input,:host-context(html.ion-palette-dark) .christianity-gallery-controls input,:host-context(body.dark) .christianity-gallery-controls input,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls input,:host-context(.dark) .christianity-gallery-controls select,:host-context(.ion-palette-dark) .christianity-gallery-controls select,:host-context(html.ion-palette-dark) .christianity-gallery-controls select,:host-context(body.dark) .christianity-gallery-controls select,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls select,:host-context(.dark) .christianity-offering-row,:host-context(.ion-palette-dark) .christianity-offering-row,:host-context(html.ion-palette-dark) .christianity-offering-row,:host-context(body.dark) .christianity-offering-row,:host-context([data-theme=\"dark\"]) .christianity-offering-row,:host-context(.dark) .christianity-offerings-note,:host-context(.ion-palette-dark) .christianity-offerings-note,:host-context(html.ion-palette-dark) .christianity-offerings-note,:host-context(body.dark) .christianity-offerings-note,:host-context([data-theme=\"dark\"]) .christianity-offerings-note{border-color:#94a3b833;background:#0f172ac7;color:var(--christianity-theme-ink)}:host-context(.dark) .christianity-history-grid,:host-context(.ion-palette-dark) .christianity-history-grid,:host-context(html.ion-palette-dark) .christianity-history-grid,:host-context(body.dark) .christianity-history-grid,:host-context([data-theme=\"dark\"]) .christianity-history-grid,:host-context(.dark) .christianity-offering-list,:host-context(.ion-palette-dark) .christianity-offering-list,:host-context(html.ion-palette-dark) .christianity-offering-list,:host-context(body.dark) .christianity-offering-list,:host-context([data-theme=\"dark\"]) .christianity-offering-list,:host-context(.dark) .christianity-gallery-grid,:host-context(.ion-palette-dark) .christianity-gallery-grid,:host-context(html.ion-palette-dark) .christianity-gallery-grid,:host-context(body.dark) .christianity-gallery-grid,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note{scrollbar-color:rgba(148,163,184,.54) rgba(15,23,42,.86)}:host-context(.dark) .christianity-rule-note-icon,:host-context(.ion-palette-dark) .christianity-rule-note-icon,:host-context(html.ion-palette-dark) .christianity-rule-note-icon,:host-context(body.dark) .christianity-rule-note-icon,:host-context([data-theme=\"dark\"]) .christianity-rule-note-icon{background:#60a5fa29;color:#bfdbfe;box-shadow:inset 0 0 0 1px #93c5fd38}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-track{background:#0f172adb}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-thumb{border-color:#0f172adb;background:#94a3b88a}@media (max-width: 720px){:host{overflow-x:hidden}.christianity-shell{padding:0 0 10.4rem}.christianity-actions{position:fixed;right:max(.6rem,env(safe-area-inset-right));bottom:calc(max(.75rem,env(safe-area-inset-bottom)) + 9.7rem);z-index:80;display:block;width:auto;padding:0;background:transparent;pointer-events:none}.christianity-end-turn{position:fixed;bottom:calc(max(.75rem,env(safe-area-inset-bottom)) + 9.7rem);left:calc(max(.6rem,env(safe-area-inset-left)) + 5.95rem);z-index:80;min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-actions button{min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-header,.christianity-match-strip,.christianity-player__summary{box-sizing:border-box;width:100%;padding-right:max(.5rem,env(safe-area-inset-right));padding-left:max(.5rem,env(safe-area-inset-left))}.christianity-header,.christianity-player__summary,.christianity-shared-zone{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-turn-banner{grid-template-columns:minmax(0,1fr);gap:.45rem;padding:.55rem}.christianity-options-button{justify-self:start}.christianity-options-menu{right:auto;left:.55rem}.christianity-setup-panel,.christianity-result-panel{inset:.55rem;padding:.7rem}.christianity-leader-choice-grid{grid-template-columns:repeat(2,minmax(0,6rem));gap:.45rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-header-actions{align-items:flex-end;flex-direction:column}.christianity-start__cards,.christianity-start__hero{grid-template-columns:minmax(0,1fr)}.christianity-start__fan{min-height:10.5rem}.christianity-start__fan val-christianity-card{width:clamp(5.2rem,22vw,6.4rem)}.christianity-start__modes{grid-template-columns:repeat(2,minmax(0,1fr))}.christianity-splash{min-height:min(30rem,calc(100dvh - 7rem));padding-right:max(.65rem,env(safe-area-inset-right));padding-left:max(.65rem,env(safe-area-inset-left));border-right:0;border-left:0;border-radius:0}.christianity-start{min-height:min(30rem,calc(100dvh - 7rem));padding:0}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem;width:100%;max-width:100%;min-width:0;padding-right:.25rem;padding-left:.25rem;overflow-x:hidden}.christianity-player-side{width:100%;max-width:100%;min-width:0;padding:.3rem .25rem;overflow:hidden}.christianity-battle-zone{--christianity-battle-card-width: min(5.2rem, 100%);grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.25rem,1.5vw,.4rem);justify-content:stretch;min-height:8.75rem;padding-inline:.28rem;overflow-x:hidden}.christianity-battle-zone .christianity-card-preview-card--battle,.christianity-battle-zone .christianity-slot{width:min(100%,5.2rem)}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent){position:fixed;right:0;bottom:0;left:0;z-index:52;box-sizing:border-box;min-height:9.55rem;margin:0;padding:.7rem max(.35rem,env(safe-area-inset-right)) max(.55rem,env(safe-area-inset-bottom)) max(.35rem,env(safe-area-inset-left));background:linear-gradient(180deg,#eff6ff00,#dbeafef5 18%,#dbeafefa),radial-gradient(circle at 50% 0%,rgba(37,99,235,.14),transparent 58%);pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan,.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-card-wrap{pointer-events:auto}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-meter{top:.15rem;right:max(.55rem,env(safe-area-inset-right));pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan{min-height:8.85rem;padding:.25rem .25rem 1.1rem;overflow:visible}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-card-preview-card--hand{width:clamp(4.35rem,20vw,5.65rem)}.christianity-hand-shelf--opponent{min-height:6.65rem;margin-top:0;margin-bottom:0;padding-top:.4rem;padding-bottom:.85rem}.christianity-player-rack{grid-template-columns:minmax(0,5.55rem) minmax(0,1fr) minmax(0,5.45rem);gap:clamp(.35rem,2vw,.5rem)}.christianity-shared-zone{gap:.45rem;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.christianity-zone-card,.christianity-zone-pile{min-height:6.15rem;padding:.58rem .46rem .5rem;gap:.24rem}.christianity-zone-card val-christianity-card,.christianity-zone-pile val-christianity-card,.christianity-zone-pile:before,.christianity-zone-pile:after,.christianity-empty-card-slot{width:clamp(3rem,18vw,3.85rem)}.christianity-offering-pile{height:6.9rem;max-height:6.9rem;padding:.52rem .42rem .48rem;gap:.24rem}.christianity-offering-drop-target{width:min(100%,5.8rem);height:6.9rem;min-height:0;max-height:6.9rem}.christianity-offering-pile val-christianity-card,.christianity-offering-pile:before,.christianity-offering-pile:after{width:clamp(2.65rem,15vw,3.35rem)}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);height:auto;min-height:0}.christianity-leader-card{width:clamp(4.55rem,20vw,5.7rem);min-height:0}.christianity-offering-row{grid-template-columns:minmax(5rem,5.8rem) minmax(0,1fr);gap:.5rem}.christianity-gallery-controls{grid-template-columns:minmax(0,1fr);gap:.5rem}.christianity-gallery-drawer{gap:.6rem;padding:max(.72rem,env(safe-area-inset-top)) max(.72rem,env(safe-area-inset-right)) max(.72rem,env(safe-area-inset-bottom)) max(.72rem,env(safe-area-inset-left))}.christianity-gallery-drawer header{align-items:start}.christianity-gallery-drawer h2{font-size:1.2rem;line-height:1.05}.christianity-gallery-controls label{gap:.18rem;font-size:.7rem}.christianity-gallery-controls input,.christianity-gallery-controls select,.christianity-gallery-edition-strip button{min-height:2.05rem}.christianity-gallery-grid{grid-template-columns:repeat(3,minmax(0,5.55rem));justify-content:center;gap:.55rem;scrollbar-gutter:auto;padding:.4rem 0 .8rem}.christianity-gallery-grid .christianity-render-card-button{width:min(100%,5.55rem)}.christianity-offering-card{min-height:7.25rem;padding:.5rem}.christianity-hand-fan--opponent{min-height:5.75rem;padding-bottom:.7rem}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.35rem,15vw,4.25rem);margin-inline:-.72rem}}\n"] }]
|
|
3269
3670
|
}], ctorParameters: () => [] });
|
|
3270
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyaXN0aWFuaXR5LWdhbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9taW5pLWdhbWVzL2NocmlzdGlhbml0eS1nYW1lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxPQUFPLEVBQWUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRS9HLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUseUJBQXlCLEVBQTJELE1BQU0sK0JBQStCLENBQUM7QUFDbkksT0FBTyxFQUFFLHdCQUF3QixFQUEyQixNQUFNLCtCQUErQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSx5QkFBeUIsRUFBNEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RyxPQUFPLEVBRUwsV0FBVyxFQUNYLHFCQUFxQixJQUFJLGlDQUFpQyxFQUMxRCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixnQkFBZ0IsSUFBSSw0QkFBNEIsRUFDaEQsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLGNBQWMsR0FDZixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFzR3BELE1BQU0sbUJBQW1CLEdBQUcsc0RBQXNELENBQUM7QUFD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QUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFUyxXQUFXO1FBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFUyxjQUFjO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFUyxXQUFXO1FBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFUyxlQUFlLENBQUMsU0FBaUI7UUFDekMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDMUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxPQUFPO1FBQzdCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3RCxJQUFJLFlBQVksR0FBRyxDQUFDO1lBQUUsT0FBTztRQUM3QixNQUFNLFNBQVMsR0FBRyxDQUFDLFlBQVksR0FBRyxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0UsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hFLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sMkJBQTJCO1FBS2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdkQsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFdBQVcsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBa0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRixDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRU8sMkJBQTJCLENBQ2pDLEtBSUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1RixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ25DLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxLQUFLLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RILENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUYsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRVMsZ0JBQWdCLENBQUMsS0FBWTtRQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBRSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQVk7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUUsS0FBSyxDQUFDLE1BQTRCLENBQUMsS0FBc0MsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFUyxXQUFXLENBQUMsS0FBbUI7UUFDdkMsTUFBTSxNQUFNLEdBQUksS0FBSyxDQUFDLGFBQTZCLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM1RSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1FBQzdELE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDN0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDbkIsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNuQixPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVTLGNBQWMsQ0FBQyxNQUErQjtRQUN0RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLE9BQU87WUFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDbEIsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQy9CLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNiLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNiLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUNuQyxVQUFVLEVBQUUsSUFBSTtZQUNoQixPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTztZQUN2RCxRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUErQjtRQUNwRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUTtZQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN0RixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUTtZQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN0RixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssV0FBVztZQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN4RixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUTtZQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN0RixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUTtZQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN0RixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssV0FBVztZQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN6RixPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLFdBQVcsQ0FBQyxNQUErQjtRQUNqRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVTtZQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDcEUsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVPLGFBQWEsQ0FBQyxNQUErQjtRQUNuRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUFFLE9BQU8sYUFBYSxDQUFDO1FBQ25ELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQUUsT0FBTyxhQUFhLENBQUM7UUFDakQsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUEwQztRQUNoRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUUsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxNQUFrRDtRQUN6RSxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxTQUFzQztRQUNwRSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN2SSxDQUFDO0lBRU8sMEJBQTBCLENBQUMsU0FBc0M7UUFDdkUsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQzlELENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqSSxPQUFPLE1BQU0sRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxJQUFtQztRQUM1RCxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxrQkFBa0IsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3hFLENBQUM7SUFFUyx1QkFBdUIsQ0FBQyxJQUFtQztRQUNuRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekMsT0FBTyxTQUFTLEVBQUUsTUFBTSxLQUFLLFdBQVcsSUFBSSxTQUFTLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUM3RixDQUFDO0lBRVMsb0JBQW9CLENBQUMsSUFBc0I7UUFDbkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sU0FBUyxFQUFFLE1BQU0sS0FBSyxRQUFRLElBQUksU0FBUyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUM7SUFDekUsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFNBQXNDO1FBQ2pFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNsRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO1FBQ3pDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNSLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUM3QyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1FBQ3BDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxTQUFzQztRQUM5RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDekIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDakQsT0FBTztZQUNMLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUc7WUFDbkIsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRztZQUNuQixJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHO1lBQ2hCLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUc7WUFDaEIsTUFBTSxFQUFFLEdBQUcsTUFBTSxHQUFHO1lBQ3BCLEtBQUssRUFBRSxHQUFHLEtBQUssS0FBSztZQUNwQixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07U0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFTyxZQUFZLENBQUMsSUFBc0IsRUFBRSxNQUF5QztRQUNwRixJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNsQixJQUFJLE1BQU0sS0FBSyxRQUFRO2dCQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNqRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksTUFBTSxLQUFLLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDakQsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxJQUFJLENBQUMscUJBQXFCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0MsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLHFCQUFxQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFNBQVMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBQzVDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxhQUFhLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJO1lBQUUsT0FBTztRQUNsRyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1lBQzlCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzVCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLE1BQU0sT0FBTyxHQUErQyxFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLGFBQWEsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUk7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDMUUsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQzlDLE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMxQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLGFBQWEsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixDQUFDO1lBQ0QsZUFBZSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7WUFDaEQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLGFBQWEsRUFBRSxDQUFDO2dCQUNsQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RELENBQUM7WUFDRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDN0MsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sZ0JBQWdCLENBQ3RCLElBQTJCLEVBQzNCLEdBQWEsRUFDYixPQUFtRDtRQUVuRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM1QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUMvQixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsVUFBVTthQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2FBQ2pELElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDO1lBQy9DLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVU7YUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7YUFDbEMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0RyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDNUYsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDMUYsTUFBTSxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3BDLFFBQVEsQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNwQyxRQUFRLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUMzQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7WUFDckYsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQy9CLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM1QixPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakUsUUFBUSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0IsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRU8sWUFBWTtRQUNsQixPQUFPO1lBQ0wscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxtQ0FBbUMsQ0FBQztZQUNsRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDO1lBQzFELGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDO1lBQ3BELFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDO1lBQzFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDO1lBQzlDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO1lBQ3BDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO1lBQ3BDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO1NBQ2pELENBQUM7SUFDSixDQUFDO0lBRVMsYUFBYSxDQUFDLElBQXNCO1FBQzVDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzFGLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDO1lBQ3ZCLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1lBQ3hFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDO1lBQ3pDLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRTtZQUNoRCxJQUFJLEVBQUUsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDO1lBQzFILE1BQU0sRUFBRSxNQUFNLENBQUMsWUFBWTtZQUMzQixNQUFNLEVBQUUsT0FBTztTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsZUFBZSxDQUFDLFFBQXNDO1FBQzlELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDO1lBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNoQixPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztZQUMzQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDO1lBQ3BHLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztZQUNwRixNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07WUFDdkIsTUFBTSxFQUFFLFdBQVc7WUFDbkIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLO1lBQ3BCLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxVQUFVO1NBQ3hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxtQkFBbUIsQ0FBQyxRQUFzQztRQUNsRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMzRSxPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVTLHFCQUFxQixDQUFDLFFBQXNDLEVBQUUsSUFBc0I7UUFDNUYsSUFBSSxJQUFJLEtBQUssSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2hDLE9BQU8saUNBQWlDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVTLGtCQUFrQixDQUFDLFFBQXNDLEVBQUUsSUFBc0I7UUFDekYsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDO1lBQUUsT0FBTztRQUN4RCxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDckIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZFLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQ25DLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQ2pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksWUFBWSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM3RixDQUFDO1FBQ0QsSUFBSSxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2pHLENBQUM7SUFDSCxDQUFDO0lBRVMsb0JBQW9CLENBQUMsS0FBYTtRQUMxQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFUyxzQkFBc0IsQ0FBQyxTQUFpQjtRQUNoRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFDakMsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUMsQ0FBQztRQUMxRyxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUNoRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRVMseUJBQXlCO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUN0QixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6SCxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDSCxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0I7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMvRCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUMxSCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBYTtRQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxJQUFJLEtBQUssS0FBSyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRVMsV0FBVztRQUNuQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNyRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDO1lBQ3BCLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO1lBQ2pDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDO1lBQ3pDLElBQUksRUFBRSxHQUFHLGNBQWMsSUFBSSxjQUFjLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsRUFBRTtZQUM5SCxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQztZQUNwQyxLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztnQkFDbkMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUM7YUFDN0g7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsZ0JBQWdCO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1RixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDO1lBQ3BCLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1lBQ2xDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDO1lBQ3pDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1lBQ2pDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDO1lBQ3pDLEtBQUssRUFBRTtnQkFDTCxJQUFJLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDO2dCQUN2QyxJQUFJLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO2FBQ25DO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQztZQUNwQixLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQztZQUN0QyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQztZQUM3QyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztZQUN4QyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQztZQUMxQyxLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQzthQUN0QztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxlQUFlLENBQUMsTUFBYyxFQUFFLFFBQVEsR0FBRyxLQUFLO1FBQ3hELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUM7WUFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2hCLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDaEMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNyQyxNQUFNO1lBQ04sTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNO1NBQ25DLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxNQUFjO1FBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRVMsa0JBQWtCLENBQUMsTUFBYztRQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVPLGdCQUFnQixDQUFDLElBQW1DO1FBQzFELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUM7WUFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJO1lBQy9DLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDO1lBQzVDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN4QyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDO1lBQ3RHLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixNQUFNLEVBQUUsT0FBTztTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZSxDQUFDLElBQWdDO1FBQ3RELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVO1lBQUUsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMvRSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUFFLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDMUUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVc7WUFBRSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEksSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFBRSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqRixPQUFPLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUN6QyxDQUFDOytHQXh2RFUseUJBQXlCO21HQUF6Qix5QkFBeUIsaUZBdjFKMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVzQlQsay9vR0FodEJDLE9BQU8sd2NBQ1Asa0JBQWtCLDhGQUNsQixjQUFjLHVHQUNkLFdBQVcsOGZBQ1gsb0JBQW9CLDZEQUNwQix5QkFBeUIsK0ZBQ3pCLHdCQUF3QixxRkFDeEIseUJBQXlCOzs0RkF5MUpoQix5QkFBeUI7a0JBcDJKckMsU0FBUzsrQkFDRSx1QkFBdUIsY0FDckIsSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1Asa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3FCQUMxQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1c0JUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2RrRHJhZywgQ2RrRHJhZ0Ryb3AsIENka0RyYWdQbGFjZWhvbGRlciwgQ2RrRHJhZ1ByZXZpZXcsIENka0Ryb3BMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbmltcG9ydCB7IExpZ2h0UmlwcGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9saWdodC1yaXBwbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBDaHJpc3RpYW5pdHlDYXJkQ29tcG9uZW50LCBDaHJpc3RpYW5pdHlDYXJkUmVuZGVyTW9kZWwsIENocmlzdGlhbml0eUNhcmRSZW5kZXJUeXBlIH0gZnJvbSAnLi9jaHJpc3RpYW5pdHktY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWluaUdhbWVDYWxsb3V0Q29tcG9uZW50LCBNaW5pR2FtZUNhbGxvdXRNZXRhZGF0YSB9IGZyb20gJy4vbWluaS1nYW1lLWNhbGxvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE1pbmlHYW1lU2NvcmVQb3BDb21wb25lbnQsIE1pbmlHYW1lU2NvcmVQb3BNZXRhZGF0YSB9IGZyb20gJy4vbWluaS1nYW1lLXNjb3JlLXBvcC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ2hyaXN0aWFuaXR5UnVsZU1lc3NhZ2VzLFxuICBhZHZhbmNlVHVybixcbiAgY2FuVXNlT2ZmZXJpbmdBYmlsaXR5IGFzIGNhblVzZUNocmlzdGlhbml0eU9mZmVyaW5nQWJpbGl0eSxcbiAgY2FuUGxheUNhcmQsXG4gIGNsZWFudXBEZXN0cm95ZWQsXG4gIGV2YWx1YXRlVmljdG9yeSxcbiAgcGxheUNhcmRGcm9tSGFuZCBhcyBwbGF5Q2hyaXN0aWFuaXR5Q2FyZEZyb21IYW5kLFxuICByZWFkeU9mZmVyaW5ncyxcbiAgcmVzb2x2ZUF0dGFja0NoYXJhY3RlcixcbiAgcmVzb2x2ZUF0dGFja0xlYWRlcixcbiAgcmVzb2x2ZU9mZmVyaW5nQWJpbGl0eSxcbiAgdG90YWxPZmZlcmluZ3MsXG59IGZyb20gJy4vY2hyaXN0aWFuaXR5LXJ1bGVzJztcbmltcG9ydCB7IE1JTklfR0FNRVNfSTE4TiB9IGZyb20gJy4vbWluaS1nYW1lcy5pMThuJztcbmltcG9ydCB7XG4gIENocmlzdGlhbml0eUNhcmRCaWJsZVJlZmVyZW5jZSxcbiAgQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24sXG4gIENocmlzdGlhbml0eUNhcmRUcmFuc2xhdGlvbixcbiAgQ2hyaXN0aWFuaXR5Q2FyZFR5cGUsXG4gIENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlLFxuICBDaHJpc3RpYW5pdHlHYW1lU3RhdGUsXG4gIENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UsXG4gIENocmlzdGlhbml0eVBsYXllclN0YXRlLFxuICBDaHJpc3RpYW5pdHlTZWF0LFxufSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIENocmlzdGlhbml0eUNhcmRQcmV2aWV3IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgZXllYnJvdzogc3RyaW5nO1xuICBtZXRhOiBzdHJpbmc7XG4gIGJvZHk6IHN0cmluZztcbiAgY2FyZElkPzogc3RyaW5nO1xuICBzb3VyY2U/OiAnaGFuZCcgfCAnYm9hcmQnIHwgJ3BpbGUnIHwgJ2hpc3RvcnknIHwgJ29mZmVyaW5ncycgfCAnZ2FsbGVyeSc7XG4gIHNlYXQ/OiBDaHJpc3RpYW5pdHlTZWF0O1xuICBvZmZlcmluZ0luc3RhbmNlSWQ/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlJbmZvUGFuZWwge1xuICB0aXRsZTogc3RyaW5nO1xuICBleWVicm93OiBzdHJpbmc7XG4gIG1ldGE6IHN0cmluZztcbiAgYm9keTogc3RyaW5nO1xuICBmYWN0czogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlQcmV2aWV3UnVsZSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGJvZHk6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIENocmlzdGlhbml0eVByZXZpZXdBYmlsaXR5IHtcbiAgaW5kZXg6IG51bWJlcjtcbiAgdGl0bGU6IHN0cmluZztcbiAgYm9keTogc3RyaW5nO1xuICBjYW5Vc2U6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlQcmV2aWV3VGlsdCB7XG4gIHJvdGF0ZVg6IG51bWJlcjtcbiAgcm90YXRlWTogbnVtYmVyO1xuICBzaGlmdFg6IG51bWJlcjtcbiAgc2hpZnRZOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlJbXBhY3RFdmVudCB7XG4gIGlkOiBudW1iZXI7XG4gIHRleHQ6IHN0cmluZztcbiAgdG9uZTogJ2RhbWFnZScgfCAnaGVhbCcgfCAncmVzb3VyY2UnO1xuICBzZWF0OiBDaHJpc3RpYW5pdHlTZWF0O1xuICB0YXJnZXQ6ICdsZWFkZXInIHwgJ2JhdHRsZScgfCAnb2ZmZXJpbmdzJztcbn1cblxuaW50ZXJmYWNlIENocmlzdGlhbml0eUNvbWJhdFRyYWlsIHtcbiAgZnJvbVg6IHN0cmluZztcbiAgZnJvbVk6IHN0cmluZztcbiAgbWlkWDogc3RyaW5nO1xuICBtaWRZOiBzdHJpbmc7XG4gIGxlbmd0aDogc3RyaW5nO1xuICBhbmdsZTogc3RyaW5nO1xuICB0b25lOiAnYXR0YWNrJyB8ICdsZWFkZXInIHwgJ2NoYXJhY3Rlcic7XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlDb21iYXRBbmltYXRpb24ge1xuICBhdHRhY2tlckluc3RhbmNlSWQ6IHN0cmluZztcbiAgYXR0YWNrZXJTZWF0OiBDaHJpc3RpYW5pdHlTZWF0O1xuICB0YXJnZXRJbnN0YW5jZUlkPzogc3RyaW5nO1xuICB0YXJnZXRTZWF0OiBDaHJpc3RpYW5pdHlTZWF0O1xuICB0YXJnZXQ6ICdsZWFkZXInIHwgJ2NoYXJhY3Rlcic7XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlSZXNvbHZlZENhcmRUZXh0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBmdWxsTmFtZT86IHN0cmluZztcbiAgdmVyc2VUZXh0Pzogc3RyaW5nO1xuICBzY3JpcHR1cmU/OiBzdHJpbmc7XG4gIGFiaWxpdHlOYW1lPzogc3RyaW5nO1xuICBhYmlsaXR5VGV4dD86IHN0cmluZztcbiAgYWJpbGl0aWVzPzogQ2hyaXN0aWFuaXR5Q2FyZFRyYW5zbGF0aW9uWydhYmlsaXRpZXMnXTtcbn1cblxuaW50ZXJmYWNlIENocmlzdGlhbml0eUVkaXRpb25DYXRhbG9nIHtcbiAgZWRpdGlvbj86IHtcbiAgICBpZD86IHN0cmluZztcbiAgICBudW1iZXI/OiBudW1iZXI7XG4gICAgc2x1Zz86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGljb24/OiBzdHJpbmc7XG4gIH07XG4gIGNhcmRzPzogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXTtcbn1cblxudHlwZSBDaHJpc3RpYW5pdHlHYWxsZXJ5VHlwZUZpbHRlciA9ICdhbGwnIHwgQ2hyaXN0aWFuaXR5Q2FyZFR5cGU7XG50eXBlIENocmlzdGlhbml0eVNjcmVlbiA9ICdzcGxhc2gnIHwgJ2hvbWUnIHwgJ3RhYmxlJztcbnR5cGUgQ2hyaXN0aWFuaXR5Q2F0YWxvZ0xvYWRTdGF0ZSA9ICdsb2FkaW5nJyB8ICdyZWFkeScgfCAnZmFsbGJhY2snO1xuXG5jb25zdCBHRU5FU0lTX0NBVEFMT0dfVVJMID0gJ2Fzc2V0cy9nYW1lcy9jaHJpc3RpYW5pdHkvZGF0YS8wMS1nZW5lc2lzLmNhcmRzLmpzb24nO1xuY29uc3QgR0VORVNJU19JQ09OX1VSTCA9ICdhc3NldHMvZ2FtZXMvY2hyaXN0aWFuaXR5L2ljb25zLzEtaWNvbi5wbmcnO1xuY29uc3QgVFVUT1JJQUxfQ0hBUkFDVEVSX0xJTUlUID0gMTI7XG5jb25zdCBUVVRPUklBTF9PRkZFUklOR19MSU1JVCA9IDY7XG5jb25zdCBTUExBU0hfTUlOX0RVUkFUSU9OX01TID0gNzIwO1xuXG5jb25zdCBTVEFSVEVSX0NBUkRTOiBSZWNvcmQ8c3RyaW5nLCBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbj4gPSB7XG4gIG9fc2ltcGxlOiB7XG4gICAgaWQ6ICdvX3NpbXBsZScsXG4gICAgbmFtZTogJ09mcmVuZGEgc2ltcGxlJyxcbiAgICB0eXBlOiAnb2ZmZXJpbmcnLFxuICAgIGNvc3Q6IDAsXG4gICAgYXR0YWNrOiAwLFxuICAgIGxpZmU6IDEsXG4gICAgdmVyc2VUZXh0OiAnVW5hIG9mcmVuZGEgc2VuY2lsbGEgcXVlZGEgbGlzdGEgcGFyYSBzb3N0ZW5lciB0dXMgc2lndWllbnRlcyBqdWdhZGFzLicsXG4gICAgc2NyaXB0dXJlOiAnR2VuZXNpcyA0OjQnLFxuICAgIGVkaXRpb246ICdHRU4nLFxuICAgIGNvbGxlY3Rvck51bWJlcjogJzAwMS8wMjAnLFxuICAgIHllYXI6ICcyMDI2JyxcbiAgICBhdXRob3I6ICdNVlAnLFxuICAgIHJhcml0eTogJ25vcm1hbCcsXG4gIH0sXG4gIG9fZm9yYmlkZGVuOiB7XG4gICAgaWQ6ICdvX2ZvcmJpZGRlbicsXG4gICAgbmFtZTogJ0VsIGZydXRvIHByb2hpYmlkbycsXG4gICAgdHlwZTogJ29mZmVyaW5nJyxcbiAgICBjb3N0OiAwLFxuICAgIGF0dGFjazogMCxcbiAgICBsaWZlOiAyLFxuICAgIGFiaWxpdHlOYW1lOiAnQ29ub2NpbWllbnRvIGRlbCBiaWVuIHkgZGVsIG1hbCcsXG4gICAgYWJpbGl0eVRleHQ6ICdHZW5lcmEgZWwgdmFsb3IgZGUgMiBvZnJlbmRhcy4gQWwgdXNhcmxhLCBpbmZsaWdlIDEgcHVudG8gZGUgZGHDsW8gYWwgbMOtZGVyLicsXG4gICAgYWJpbGl0eUNvc3Q6IDAsXG4gICAgdmVyc2VUZXh0OiAnRGlvcyBlbCBTZcOxb3IgcHVzbyBhbCBob21icmUgZW4gZWwgamFyZMOtbiBkZSBFZMOpbiBwYXJhIHF1ZSBsbyBsYWJyYXJhIHkgbG8gY3VpZGFyYS4nLFxuICAgIHNjcmlwdHVyZTogJ0dlbmVzaXMgMjoxNyBOQlYnLFxuICAgIGVkaXRpb246ICdHRU4nLFxuICAgIGNvbGxlY3Rvck51bWJlcjogJzAxMi8xODAnLFxuICAgIHllYXI6ICcyMDI2JyxcbiAgICBhdXRob3I6ICdNVlAnLFxuICAgIHJhcml0eTogJ3VuY29tbW9uJyxcbiAgfSxcbiAgcF9zY291dDoge1xuICAgIGlkOiAncF9zY291dCcsXG4gICAgbmFtZTogJ1Njb3V0JyxcbiAgICB0eXBlOiAnY2hhcmFjdGVyJyxcbiAgICBjb3N0OiAxLFxuICAgIGF0dGFjazogMSxcbiAgICBsaWZlOiAxLFxuICAgIHZlcnNlVGV4dDogJ1VuIGV4cGxvcmFkb3IgaHVtaWxkZSBhYnJlIGNhbWlubyBhbnRlcyBkZSBxdWUgbGxlZ3VlIGxhIGJhdGFsbGEuJyxcbiAgICBzY3JpcHR1cmU6ICdHZW5lc2lzIDEzOjE3JyxcbiAgICBlZGl0aW9uOiAnR0VOJyxcbiAgICBjb2xsZWN0b3JOdW1iZXI6ICcwMDIvMDIwJyxcbiAgICB5ZWFyOiAnMjAyNicsXG4gICAgYXV0aG9yOiAnTVZQJyxcbiAgICByYXJpdHk6ICdub3JtYWwnLFxuICB9LFxuICBwX2d1YXJkOiB7IGlkOiAncF9ndWFyZCcsIG5hbWU6ICdHdWFyZCcsIHR5cGU6ICdjaGFyYWN0ZXInLCBjb3N0OiAyLCBhdHRhY2s6IDEsIGxpZmU6IDMsIGVkaXRpb246ICdHRU4nLCBjb2xsZWN0b3JOdW1iZXI6ICcwMDMvMDIwJywgeWVhcjogJzIwMjYnLCBhdXRob3I6ICdNVlAnLCByYXJpdHk6ICdub3JtYWwnIH0sXG4gIHBfd2FycmlvcjogeyBpZDogJ3Bfd2FycmlvcicsIG5hbWU6ICdXYXJyaW9yJywgdHlwZTogJ2NoYXJhY3RlcicsIGNvc3Q6IDIsIGF0dGFjazogMiwgbGlmZTogMiwgZWRpdGlvbjogJ0dFTicsIGNvbGxlY3Rvck51bWJlcjogJzAwNC8wMjAnLCB5ZWFyOiAnMjAyNicsIGF1dGhvcjogJ01WUCcsIHJhcml0eTogJ25vcm1hbCcgfSxcbiAgcF9lbGRlcjogeyBpZDogJ3BfZWxkZXInLCBuYW1lOiAnRWxkZXInLCB0eXBlOiAnY2hhcmFjdGVyJywgY29zdDogMywgYXR0YWNrOiAyLCBsaWZlOiA0LCBlZGl0aW9uOiAnR0VOJywgY29sbGVjdG9yTnVtYmVyOiAnMDA1LzAyMCcsIHllYXI6ICcyMDI2JywgYXV0aG9yOiAnTVZQJywgcmFyaXR5OiAndW5jb21tb24nIH0sXG4gIHBfY2hhbXBpb246IHsgaWQ6ICdwX2NoYW1waW9uJywgbmFtZTogJ0NoYW1waW9uJywgdHlwZTogJ2NoYXJhY3RlcicsIGNvc3Q6IDQsIGF0dGFjazogNCwgbGlmZTogNCwgZWRpdGlvbjogJ0dFTicsIGNvbGxlY3Rvck51bWJlcjogJzAwNi8wMjAnLCB5ZWFyOiAnMjAyNicsIGF1dGhvcjogJ01WUCcsIHJhcml0eTogJ3JhcmUnIH0sXG59O1xuXG5jb25zdCBTVEFSVElOR19TSEFSRURfREVDSyA9IFtcbiAgJ29fc2ltcGxlJyxcbiAgJ3Bfc2NvdXQnLFxuICAnb19mb3JiaWRkZW4nLFxuICAnb19zaW1wbGUnLFxuICAncF9ndWFyZCcsXG4gICdwX3dhcnJpb3InLFxuICAnb19zaW1wbGUnLFxuICAncF9lbGRlcicsXG4gICdwX3Njb3V0JyxcbiAgJ29fc2ltcGxlJyxcbiAgJ3BfY2hhbXBpb24nLFxuICAncF9ndWFyZCcsXG4gICdvX3NpbXBsZScsXG4gICdwX3dhcnJpb3InLFxuICAncF9zY291dCcsXG4gICdvX3NpbXBsZScsXG4gICdwX2VsZGVyJyxcbiAgJ3BfZ3VhcmQnLFxuICAnb19zaW1wbGUnLFxuXTtcblxuY29uc3QgU1RBUlRJTkdfR0FNRTogQ2hyaXN0aWFuaXR5R2FtZVN0YXRlID0ge1xuICBnYW1lSWQ6ICdtb2NrLWNocmlzdGlhbml0eScsXG4gIHN0YXR1czogJ2luX3Byb2dyZXNzJyxcbiAgbW9kZTogJ2xvY2FsX3Bhc3MnLFxuICB0dXJuT3duZXI6ICdQMScsXG4gIHJldmlzaW9uOiAwLFxuICB0dXJuQ291bnQ6IDEsXG4gIG1hdGNoU2NvcmU6IHsgUDE6IDAsIFAyOiAwIH0sXG4gIHNoYXJlZERlY2s6IFNUQVJUSU5HX1NIQVJFRF9ERUNLLFxuICBwbGFjZVpvbmU6IFtdLFxuICBoaXN0b3J5Wm9uZTogW10sXG4gIHBsYXllcnM6IHtcbiAgICBQMToge1xuICAgICAgc2VhdDogJ1AxJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnSnVnYWRvcicsXG4gICAgICBhdmF0YXI6ICdKJyxcbiAgICAgIGF2YXRhckNvbG9yOiAnIzI1NjNlYicsXG4gICAgICBsZWFkZXJOYW1lOiAnQWRhbScsXG4gICAgICBsZWFkZXJIcDogMTUsXG4gICAgICBsZWFkZXJNYXhIcDogMTUsXG4gICAgICBvZmZlcmluZ3M6IFtcbiAgICAgICAgeyBpbnN0YW5jZUlkOiAncDFfb2ZmZXJpbmdfMDAxJywgY2FyZElkOiAnb19zaW1wbGUnLCBuYW1lOiAnT2ZyZW5kYSBzaW1wbGUnLCBvd25lcjogJ1AxJywgcmVhZHk6IHRydWUsIHZhbHVlOiAxIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpbnN0YW5jZUlkOiAncDFfb2ZmZXJpbmdfMDAyJyxcbiAgICAgICAgICBjYXJkSWQ6ICdvX2ZvcmJpZGRlbicsXG4gICAgICAgICAgbmFtZTogJ0VsIGZydXRvIHByb2hpYmlkbycsXG4gICAgICAgICAgb3duZXI6ICdQMScsXG4gICAgICAgICAgcmVhZHk6IHRydWUsXG4gICAgICAgICAgdmFsdWU6IDIsXG4gICAgICAgICAgYWJpbGl0eU5hbWU6ICdDb25vY2ltaWVudG8gZGVsIGJpZW4geSBkZWwgbWFsJyxcbiAgICAgICAgICBhYmlsaXR5VGV4dDogJ0dlbmVyYSBlbCB2YWxvciBkZSAyIG9mcmVuZGFzLiBBbCB1c2FybGEsIGluZmxpZ2UgMSBwdW50byBkZSBkYcOxbyBhbCBsaWRlci4nLFxuICAgICAgICAgIGFiaWxpdHlDb3N0OiAwLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIG9mZmVyaW5nUGxheWVkVGhpc1R1cm46IGZhbHNlLFxuICAgICAgaGFuZDogWydvX3NpbXBsZScsICdwX3Njb3V0JywgJ3Bfd2FycmlvcicsICdwX2d1YXJkJ10sXG4gICAgICBiYXR0bGVab25lOiBbXSxcbiAgICB9LFxuICAgIFAyOiB7XG4gICAgICBzZWF0OiAnUDInLFxuICAgICAgZGlzcGxheU5hbWU6ICdSaXZhbCcsXG4gICAgICBhdmF0YXI6ICdSJyxcbiAgICAgIGF2YXRhckNvbG9yOiAnI2I0NTMwOScsXG4gICAgICBsZWFkZXJOYW1lOiAnTm9haCcsXG4gICAgICBsZWFkZXJIcDogMTUsXG4gICAgICBsZWFkZXJNYXhIcDogMTUsXG4gICAgICBvZmZlcmluZ3M6IFt7IGluc3RhbmNlSWQ6ICdwMl9vZmZlcmluZ18wMDEnLCBjYXJkSWQ6ICdvX3NpbXBsZScsIG5hbWU6ICdPZnJlbmRhIHNpbXBsZScsIG93bmVyOiAnUDInLCByZWFkeTogdHJ1ZSwgdmFsdWU6IDEgfV0sXG4gICAgICBvZmZlcmluZ1BsYXllZFRoaXNUdXJuOiBmYWxzZSxcbiAgICAgIGhhbmRDb3VudDogNCxcbiAgICAgIGJhdHRsZVpvbmU6IFtcbiAgICAgICAge1xuICAgICAgICAgIGluc3RhbmNlSWQ6ICdvcHBfMDAxJyxcbiAgICAgICAgICBjYXJkSWQ6ICdwX3Njb3V0JyxcbiAgICAgICAgICBuYW1lOiAnU2NvdXQnLFxuICAgICAgICAgIG93bmVyOiAnUDInLFxuICAgICAgICAgIGNvbnRyb2xsZXI6ICdQMicsXG4gICAgICAgICAgc2xvdDogMCxcbiAgICAgICAgICBhdHRhY2s6IDEsXG4gICAgICAgICAgY3VycmVudEhwOiAxLFxuICAgICAgICAgIG1heEhwOiAxLFxuICAgICAgICAgIGNhbkF0dGFjazogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIH0sXG4gIGxvZzogWydQYXJ0aWRhIGluaWNpYWRhLiddLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNocmlzdGlhbml0eS1nYW1lJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENka0RyYWcsXG4gICAgQ2RrRHJhZ1BsYWNlaG9sZGVyLFxuICAgIENka0RyYWdQcmV2aWV3LFxuICAgIENka0Ryb3BMaXN0LFxuICAgIExpZ2h0UmlwcGxlRGlyZWN0aXZlLFxuICAgIENocmlzdGlhbml0eUNhcmRDb21wb25lbnQsXG4gICAgTWluaUdhbWVDYWxsb3V0Q29tcG9uZW50LFxuICAgIE1pbmlHYW1lU2NvcmVQb3BDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG1haW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktc2hlbGxcIiBbY2xhc3MuaGFzLW1vZGFsLW9wZW5dPVwiaGFzTW9kYWxPdmVybGF5KClcIj5cbiAgICAgIEBpZiAoc2NyZWVuKCkgPT09ICdzcGxhc2gnKSB7XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNwbGFzaFwiIHJvbGU9XCJzdGF0dXNcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNwbGFzaF9fbWFya1wiPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlTcGxhc2hFeWVicm93JykgfX08L3NwYW4+XG4gICAgICAgICAgICA8aDI+e3sgdCgnY2hyaXN0aWFuaXR5U3BsYXNoVGl0bGUnKSB9fTwvaDI+XG4gICAgICAgICAgICA8cD57eyBzcGxhc2hTdGF0dXNUZXh0KCkgfX08L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH0gQGVsc2UgaWYgKHNjcmVlbigpID09PSAnaG9tZScpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktc3RhcnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXN0YXJ0X19oZXJvXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXN0YXJ0X19jb3B5XCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eUdlbmVzaXNFZGl0aW9uJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxoMj57eyB0KCdjaHJpc3RpYW5pdHlTdGFydFRpdGxlJykgfX08L2gyPlxuICAgICAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlTdGFydEJvZHknKSB9fTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1zdGFydF9fZmFuXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIEBmb3IgKGNhcmQgb2Ygc3RhcnRGZWF0dXJlZENhcmRzKCk7IHRyYWNrIGNhcmQuaWQpIHtcbiAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkXG4gICAgICAgICAgICAgICAgICBbY2FyZF09XCJkZWZpbml0aW9uVG9SZW5kZXJDYXJkKGNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJiYWJ5XCJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwic3RhcnRGZWF0dXJlZENhcmRUcmFuc2Zvcm0oJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkc1wiPlxuICAgICAgICAgICAgPGFydGljbGU+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgdCgnY2hyaXN0aWFuaXR5VHV0b3JpYWxNb2RlJykgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPHA+e3sgdCgnY2hyaXN0aWFuaXR5VHV0b3JpYWxNb2RlQm9keScpIH19PC9wPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmltYXJ5LWFjdGlvblwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJzdGFydFR1dG9yaWFsKClcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlTdGFydFR1dG9yaWFsJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgICA8YXJ0aWNsZT5cbiAgICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjaHJpc3RpYW5pdHlHYWxsZXJ5JykgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPHA+e3sgdCgnY2hyaXN0aWFuaXR5R2FsbGVyeU1vZGVCb2R5JykgfX08L3A+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb25cIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwib3BlbkdhbGxlcnkoKVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2NocmlzdGlhbml0eU9wZW5HYWxsZXJ5JykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgICA8YXJ0aWNsZT5cbiAgICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjaHJpc3RpYW5pdHlIb3dUb1BsYXknKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlIb3dUb1BsYXlCb2R5JykgfX08L3A+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb25cIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwiaW5zcGVjdEhvd1RvUGxheSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnbGVhcm5Nb3JlJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1zdGFydF9fc3RhdHVzXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlFZGl0aW9uU3RhdHVzJylcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IGdhbGxlcnlFZGl0aW9uTGFiZWwoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eVR1dG9yaWFsQWN0aXZlJykgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyBjYXRhbG9nU3RhdHVzTGFiZWwoKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1zdGFydF9fbW9kZXNcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eUZ1dHVyZU1vZGVzJylcIj5cbiAgICAgICAgICAgIEBmb3IgKG1vZGUgb2YgZnV0dXJlTW9kZXMoKTsgdHJhY2sgbW9kZS50aXRsZSkge1xuICAgICAgICAgICAgICA8YXJ0aWNsZT5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IG1vZGUudGl0bGUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8cD57eyBtb2RlLmJvZHkgfX08L3A+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgdCgnc29vblRpdGxlJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXBcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1tYXRjaC1zdHJpcFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5TWF0Y2hTY29yZScpXCI+XG4gICAgICAgIDxhcnRpY2xlIGNsYXNzPVwiY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWF2YXRhclwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cInBsYXllcigpLmF2YXRhckNvbG9yXCI+e3sgcGxheWVyKCkuYXZhdGFyIH19PC9zcGFuPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IHBsYXllcigpLmRpc3BsYXlOYW1lIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8c21hbGw+e3sgcGxheWVyTGVhZGVyRGlzcGxheU5hbWUocGxheWVyKCkpIH19IMK3IHt7IHBsYXllcigpLmxlYWRlckhwIH19L3t7IHBsYXllcigpLmxlYWRlck1heEhwIH19PC9zbWFsbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hcnRpY2xlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNjb3JlYm9hcmRcIj5cbiAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlNYXRjaCcpIH19PC9zcGFuPlxuICAgICAgICAgIDxzdHJvbmc+e3sgZ2FtZSgpLm1hdGNoU2NvcmUuUDEgfX0te3sgZ2FtZSgpLm1hdGNoU2NvcmUuUDIgfX08L3N0cm9uZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxhcnRpY2xlIGNsYXNzPVwiY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBjaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyLS1vcHBvbmVudFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWF2YXRhclwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIm9wcG9uZW50KCkuYXZhdGFyQ29sb3JcIj57eyBvcHBvbmVudCgpLmF2YXRhciB9fTwvc3Bhbj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHN0cm9uZz57eyBvcHBvbmVudCgpLmRpc3BsYXlOYW1lIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8c21hbGw+e3sgcGxheWVyTGVhZGVyRGlzcGxheU5hbWUob3Bwb25lbnQoKSkgfX0gwrcge3sgb3Bwb25lbnQoKS5sZWFkZXJIcCB9fS97eyBvcHBvbmVudCgpLmxlYWRlck1heEhwIH19PC9zbWFsbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hcnRpY2xlPlxuICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oYW5kLXNoZWxmIGNocmlzdGlhbml0eS1oYW5kLXNoZWxmLS1vcHBvbmVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXItLW9wcG9uZW50XCI+XG4gICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5SGFuZCcpIH19PC9zcGFuPlxuICAgICAgICAgIDxzdHJvbmc+e3sgb3Bwb25lbnRIYW5kQ291bnQoKSB9fTwvc3Ryb25nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktaGFuZC1mYW4gY2hyaXN0aWFuaXR5LWhhbmQtZmFuLS1vcHBvbmVudFwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LW9wcG9uZW50LWhhbmRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eU9wcG9uZW50SGFuZCcpXCI+XG4gICAgICAgICAgQGZvciAoXyBvZiBoaWRkZW5IYW5kQ2FyZHMob3Bwb25lbnRIYW5kQ291bnQoKSk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGlkZGVuLWNhcmQtYnV0dG9uIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIlxuICAgICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgICBbc3R5bGUudHJhbnNmb3JtXT1cImZhblRyYW5zZm9ybSgkaW5kZXgsIG9wcG9uZW50SGFuZENvdW50KCksIHRydWUpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlIaWRkZW5DYXJkJylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cImhpZGRlbkNhcmRSZW5kZXJDYXJkKClcIiB2YXJpYW50PVwiYmFja1wiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXRhYmxlXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktdGFibGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eVRhYmxlJylcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1pbXBhY3QtbGF5ZXJcIj5cbiAgICAgICAgICBAaWYgKGNvbWJhdFRyYWlsKCk7IGFzIHRyYWlsKSB7XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1jb21iYXQtdHJhaWxcIlxuICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXMtbGVhZGVyLXRhcmdldF09XCJ0cmFpbC50b25lID09PSAnbGVhZGVyJ1wiXG4gICAgICAgICAgICAgIFtjbGFzcy5pcy1jaGFyYWN0ZXItdGFyZ2V0XT1cInRyYWlsLnRvbmUgPT09ICdjaGFyYWN0ZXInXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC14XT1cInRyYWlsLmZyb21YXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC15XT1cInRyYWlsLmZyb21ZXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1taWQteF09XCJ0cmFpbC5taWRYXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1taWQteV09XCJ0cmFpbC5taWRZXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1sZW5ndGhdPVwidHJhaWwubGVuZ3RoXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1hbmdsZV09XCJ0cmFpbC5hbmdsZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGZvciAoaW1wYWN0IG9mIGltcGFjdEV2ZW50cygpOyB0cmFjayBpbXBhY3QuaWQpIHtcbiAgICAgICAgICAgIDx2YWwtbWluaS1nYW1lLXNjb3JlLXBvcCBbcHJvcHNdPVwiaW1wYWN0UG9wUHJvcHMoaW1wYWN0KVwiIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY29tYmF0Q2FsbG91dCgpOyBhcyBjYWxsb3V0KSB7XG4gICAgICAgICAgICA8dmFsLW1pbmktZ2FtZS1jYWxsb3V0IFtwcm9wc109XCJjYWxsb3V0XCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSBjaHJpc3RpYW5pdHktcGxheWVyLXNpZGUtLW9wcG9uZW50XCI+XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxheWVyLXJhY2sgY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrLS1vcHBvbmVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZ3Mtem9uZVwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLVAyXCIgW2NsYXNzLmlzLWVtcHR5LXpvbmVdPVwiIXRvcE9mZmVyaW5nKCdQMicpXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cIm9wZW5PZmZlcmluZ3MoJ1AyJylcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHRvcE9mZmVyaW5nKCdQMicpOyBhcyBvZmZlcmluZykge1xuICAgICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJvZmZlcmluZ1JlbmRlckNhcmQob2ZmZXJpbmcpXCIgdmFyaWFudD1cImJhYnlcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWVtcHR5LWNhcmQtc2xvdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdSZXNlcnZlJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyByZWFkeU9mZmVyaW5ncyhvcHBvbmVudCgpKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDxzbWFsbD57eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0Jhc2UnKSB9fSB7eyB0b3RhbE9mZmVyaW5ncyhvcHBvbmVudCgpKSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWF0dGFjay1kcm9wLXRhcmdldFwiXG4gICAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAgIGlkPVwiY2hyaXN0aWFuaXR5LW9wcG9uZW50LWxlYWRlci1kcm9wXCJcbiAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwib3duQXR0YWNrZXJEcm9wU291cmNlSWRzKClcIlxuICAgICAgICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJjYW5Ecm9wT25PcHBvbmVudExlYWRlclwiXG4gICAgICAgICAgICAgIFtjZGtEcm9wTGlzdFNvcnRpbmdEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wT25PcHBvbmVudExlYWRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIlxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWxlYWRlci1QMlwiXG4gICAgICAgICAgICAgICAgdmFsTGlnaHRSaXBwbGVcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXMtdGFyZ2V0XT1cImlzT3Bwb25lbnRMZWFkZXJUYXJnZXQoKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLXByb3RlY3RlZC10YXJnZXRdPVwic2VsZWN0ZWRBdHRhY2tlcigpICYmIGhhc09wcG9uZW50R3VhcmRzKClcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1jb21iYXQtdGFyZ2V0XT1cImlzQ29tYmF0TGVhZGVyVGFyZ2V0KCdQMicpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT3Bwb25lbnRMZWFkZXIoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJsZWFkZXJSZW5kZXJDYXJkKG9wcG9uZW50KCkpXCIgdmFyaWFudD1cImJhYnlcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXJhY2stc3BhY2VyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIGNocmlzdGlhbml0eS1iYXR0bGUtem9uZS0tb3Bwb25lbnRcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1iYXR0bGUtUDJcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eU9wcG9uZW50QmF0dGxlJylcIj5cbiAgICAgICAgICAgIEBmb3IgKHNsb3Qgb2YgYmF0dGxlU2xvdHMoJ1AyJyk7IHRyYWNrIHNsb3QudHJhY2tJZCkge1xuICAgICAgICAgICAgICBAaWYgKHNsb3QuY2FyZCkge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQgY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUgY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJiYXR0bGVDYXJkVGVzdElkKCdQMicsIHNsb3QuY2FyZClcIlxuICAgICAgICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICAgICAgIFtpZF09XCJvcHBvbmVudFRhcmdldERyb3BJZChzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIm93bkF0dGFja2VyRHJvcFNvdXJjZUlkcygpXCJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImNhbkRyb3BPbk9wcG9uZW50Q2hhcmFjdGVyXCJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdFNvcnRpbmdEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtdGFyZ2V0XT1cImlzT3Bwb25lbnRDaGFyYWN0ZXJUYXJnZXQoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtY29tYmF0LXRhcmdldF09XCJpc0NvbWJhdENoYXJhY3RlclRhcmdldChzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcE9uT3Bwb25lbnRDaGFyYWN0ZXIoJGV2ZW50LCBzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPcHBvbmVudENoYXJhY3RlcihzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cImNoYXJhY3RlclJlbmRlckNhcmQoc2xvdC5jYXJkKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNsb3RcIj48L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1zaGFyZWQtem9uZVwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlTaGFyZWRab25lJylcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS16b25lLXBpbGUgY2hyaXN0aWFuaXR5LXpvbmUtcGlsZS0taGlzdG9yeVwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWhpc3Rvcnktem9uZVwiIFtjbGFzcy5pcy1lbXB0eS16b25lXT1cIiF0b3BIaXN0b3J5Q2FyZCgpXCIgW2NsYXNzLmhhcy1uZXctY2FyZF09XCJoaXN0b3J5UHVsc2UoKVwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJvcGVuSGlzdG9yeSgpXCI+XG4gICAgICAgICAgICBAaWYgKHRvcEhpc3RvcnlDYXJkKCk7IGFzIGhpc3RvcnlDYXJkKSB7XG4gICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChoaXN0b3J5Q2FyZClcIiB2YXJpYW50PVwiYmFja1wiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWVtcHR5LWNhcmQtc2xvdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eUhpc3RvcnknKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgZ2FtZSgpLmhpc3Rvcnlab25lLmxlbmd0aCB9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSBjaHJpc3RpYW5pdHktem9uZS1waWxlLS1kZWNrXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktZGVjay16b25lXCIgdmFsTGlnaHRSaXBwbGUgYXJpYS1saXZlPVwicG9saXRlXCIgKGNsaWNrKT1cImluc3BlY3REZWNrKClcIj5cbiAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiaGlkZGVuQ2FyZFJlbmRlckNhcmQoKVwiIHZhcmlhbnQ9XCJiYWNrXCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlEZWNrJykgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IGdhbWUoKS5zaGFyZWREZWNrLmxlbmd0aCB9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktem9uZS1jYXJkIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIlxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktcGxhY2Utem9uZVwiXG4gICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgaWQ9XCJjaHJpc3RpYW5pdHktcGxhY2UtZHJvcFwiXG4gICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbJ2NocmlzdGlhbml0eS1oYW5kLXNvdXJjZSddXCJcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImNhbkRyb3BPblBsYWNlXCJcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdFNvcnRpbmdEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtjbGFzcy5pcy1lbXB0eS16b25lXT1cIiFhY3RpdmVQbGFjZUNhcmQoKVwiXG4gICAgICAgICAgICBbY2xhc3MuaXMtcGxheS10YXJnZXRdPVwiY2FuUGxhY2VTZWxlY3RlZFBsYWNlKCkgfHwgaXNEcmFnZ2luZ1BsYWNlKClcIlxuICAgICAgICAgICAgdmFsTGlnaHRSaXBwbGVcbiAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcE9uUGxhY2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAoY2xpY2spPVwicGxheVNlbGVjdGVkUGxhY2VPckluc3BlY3QoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChhY3RpdmVQbGFjZUNhcmQoKTsgYXMgcGxhY2VDYXJkKSB7XG4gICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChwbGFjZUNhcmQpXCIgdmFyaWFudD1cImJhYnlcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3RcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlQbGFjZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgPHN0cm9uZz57eyBhY3RpdmVQbGFjZUNhcmQoKSA/IHQoJ2NocmlzdGlhbml0eUFjdGl2ZScpIDogdCgnY2hyaXN0aWFuaXR5RW1wdHknKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgQGlmIChjYW5QbGFjZVNlbGVjdGVkUGxhY2UoKSB8fCBpc0RyYWdnaW5nUGxhY2UoKSkge1xuICAgICAgICAgICAgICA8ZW0+e3sgdCgnY2hyaXN0aWFuaXR5UGxheUhlcmUnKSB9fTwvZW0+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1wbGF5ZXItc2lkZVwiPlxuICAgICAgICAgIDxzZWN0aW9uXG4gICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1iYXR0bGUtem9uZVwiXG4gICAgICAgICAgICBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1iYXR0bGUtUDFcIlxuICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgIGlkPVwiY2hyaXN0aWFuaXR5LXBsYXllci1iYXR0bGUtc291cmNlXCJcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cImF0dGFja1RhcmdldERyb3BJZHMoKVwiXG4gICAgICAgICAgICBbY2RrRHJvcExpc3RTb3J0aW5nRGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbY2xhc3MuaXMtcGxhY2luZy1jYXJkXT1cImNhblBsYWNlU2VsZWN0ZWRDaGFyYWN0ZXIoKSB8fCBpc0RyYWdnaW5nQ2hhcmFjdGVyKClcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlZb3VyQmF0dGxlJylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKHNsb3Qgb2YgYmF0dGxlU2xvdHMoJ1AxJyk7IHRyYWNrIHNsb3QudHJhY2tJZCkge1xuICAgICAgICAgICAgICBAaWYgKHNsb3QuY2FyZCkge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQgY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUgY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJiYXR0bGVDYXJkVGVzdElkKCdQMScsIHNsb3QuY2FyZClcIlxuICAgICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICAgICAgW2Nka0RyYWdEYXRhXT1cInNsb3QuY2FyZC5pbnN0YW5jZUlkXCJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWNhbkRyYWdBdHRhY2tlcihzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwic2VsZWN0ZWRBdHRhY2tlcigpPy5pbnN0YW5jZUlkID09PSBzbG90LmNhcmQuaW5zdGFuY2VJZFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtZXhoYXVzdGVkXT1cIiFzbG90LmNhcmQuY2FuQXR0YWNrXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1yZWFkeS1hdHRhY2tlcl09XCJpc093blR1cm4oKSAmJiBzbG90LmNhcmQuY2FuQXR0YWNrXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1jb21iYXQtYXR0YWNrZXJdPVwiaXNDb21iYXRBdHRhY2tlcihzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJzdGFydERyYWdnaW5nQXR0YWNrZXIoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgICAoY2RrRHJhZ0VuZGVkKT1cImVuZERyYWdnaW5nQXR0YWNrZXIoKVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0QXR0YWNrZXIoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJjaGFyYWN0ZXJSZW5kZXJDYXJkKHNsb3QuY2FyZClcIiB2YXJpYW50PVwiYmFieVwiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGNka0RyYWdQcmV2aWV3PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtZHJhZy1wcmV2aWV3XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJjaGFyYWN0ZXJSZW5kZXJDYXJkKHNsb3QuY2FyZClcIiB2YXJpYW50PVwiYmFieVwiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgY2RrRHJhZ1BsYWNlaG9sZGVyPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtZHJhZy1wbGFjZWhvbGRlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1zbG90XCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cImJhdHRsZVNsb3RUZXN0SWQoJ1AxJywgJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAgICAgW2lkXT1cImJhdHRsZVNsb3REcm9wSWQoJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cIiRpbmRleFwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbJ2NocmlzdGlhbml0eS1oYW5kLXNvdXJjZSddXCJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImNhbkRyb3BPbkJhdHRsZVNsb3RcIlxuICAgICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldF09XCJjYW5QbGFjZVNlbGVjdGVkQ2hhcmFjdGVyKCkgfHwgaXNEcmFnZ2luZ0NoYXJhY3RlcigpXCJcbiAgICAgICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BPbkJhdHRsZVNsb3QoJGV2ZW50LCAkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwbGF5U2VsZWN0ZWRDYXJkKCRpbmRleClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEBpZiAoY2FuUGxhY2VTZWxlY3RlZENoYXJhY3RlcigpIHx8IGlzRHJhZ2dpbmdDaGFyYWN0ZXIoKSkge1xuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlQbGF5SGVyZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxheWVyLXJhY2tcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLXpvbmVcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWRyb3AtdGFyZ2V0XCJcbiAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAgIGlkPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1kcm9wXCJcbiAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbJ2NocmlzdGlhbml0eS1oYW5kLXNvdXJjZSddXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXMtcGxheS10YXJnZXRdPVwiY2FuUGxhY2VTZWxlY3RlZE9mZmVyaW5nKCkgfHwgaXNEcmFnZ2luZ09mZmVyaW5nKClcIlxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImNhbkRyb3BPbk9mZmVyaW5nc1wiXG4gICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcE9uT2ZmZXJpbmdzKCRldmVudClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlXCJcbiAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1QMVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtZW1wdHktem9uZV09XCIhdG9wT2ZmZXJpbmcoJ1AxJylcIlxuICAgICAgICAgICAgICAgICAgdmFsTGlnaHRSaXBwbGVcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPZmZlcmluZ1BpbGUoJ1AxJylcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEBpZiAodG9wT2ZmZXJpbmcoJ1AxJyk7IGFzIG9mZmVyaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwib2ZmZXJpbmdSZW5kZXJDYXJkKG9mZmVyaW5nKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktZW1wdHktY2FyZC1zbG90XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdSZXNlcnZlJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHJlYWR5T2ZmZXJpbmdzKHBsYXllcigpKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgPHNtYWxsPnt7IHQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQmFzZScpIH19IHt7IHRvdGFsT2ZmZXJpbmdzKHBsYXllcigpKSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1sZWFkZXItY2FyZCBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktbGVhZGVyLVAxXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cImluc3BlY3RMZWFkZXIoJ1AxJylcIj5cbiAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJsZWFkZXJSZW5kZXJDYXJkKHBsYXllcigpKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxheWVyLWNvbW1hbmRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1wbGF5ZXItYmFkZ2VcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1hdmF0YXJcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJwbGF5ZXIoKS5hdmF0YXJDb2xvclwiPnt7IHBsYXllcigpLmF2YXRhciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHBsYXllcigpLmRpc3BsYXlOYW1lIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktZW5kLXR1cm5cIlxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWVuZC10dXJuXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZW5kVHVybigpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2NocmlzdGlhbml0eUVuZFR1cm4nKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oYW5kLXNoZWxmXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGFuZC1tZXRlclwiPlxuICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eUhhbmQnKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3Ryb25nPnt7IHBsYXllcigpLmhhbmQ/Lmxlbmd0aCA/PyAwIH19PC9zdHJvbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2VjdGlvblxuICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhhbmQtZmFuXCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1oYW5kLVAxXCJcbiAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgIGlkPVwiY2hyaXN0aWFuaXR5LWhhbmQtc291cmNlXCJcbiAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJkcm9wVGFyZ2V0SWRzKClcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5WW91ckhhbmQnKVwiXG4gICAgICAgICAgKHBvaW50ZXJsZWF2ZSk9XCJjbGVhckhvdmVyZWRIYW5kSW5kZXgoKVwiXG4gICAgICAgID5cbiAgICAgICAgICBAZm9yIChjYXJkSWQgb2YgcGxheWVyKCkuaGFuZCA/PyBbXTsgdHJhY2sgY2FyZElkICsgJGluZGV4KSB7XG4gICAgICAgICAgICBAbGV0IGNhcmQgPSBjYXJkRGVmaW5pdGlvbihjYXJkSWQpO1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJzZWxlY3RlZEhhbmRDYXJkKCkgPT09IGNhcmRJZFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5pcy1kcmFnZ2luZ109XCJkcmFnZ2luZ0NhcmRJZCgpID09PSBjYXJkSWRcIlxuICAgICAgICAgICAgICBbc3R5bGUuei1pbmRleF09XCJoYW5kQ2FyZFpJbmRleCgkaW5kZXgpXCJcbiAgICAgICAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCJmYW5UcmFuc2Zvcm0oJGluZGV4LCBwbGF5ZXIoKS5oYW5kPy5sZW5ndGggPz8gMCwgZmFsc2UpXCJcbiAgICAgICAgICAgICAgKHBvaW50ZXJlbnRlcik9XCJzZXRIb3ZlcmVkSGFuZEluZGV4KCRpbmRleClcIlxuICAgICAgICAgICAgICAocG9pbnRlcmRvd24pPVwic2V0SG92ZXJlZEhhbmRJbmRleCgkaW5kZXgpXCJcbiAgICAgICAgICAgICAgKHBvaW50ZXJ1cCk9XCJyZWxlYXNlSG92ZXJlZEhhbmQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZCBjaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQgY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiaGFuZENhcmRUZXN0SWQoY2FyZElkLCAkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgICAgdmFsTGlnaHRSaXBwbGVcbiAgICAgICAgICAgICAgICBbY2RrRHJhZ0RhdGFdPVwiY2FyZElkXCJcbiAgICAgICAgICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFjYW5QbGF5KGNhcmQpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImhhbmRDYXJkQWN0aW9uTGFiZWwoY2FyZClcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJzZWxlY3RlZEhhbmRDYXJkKCkgPT09IGNhcmRJZFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLWRpc2FibGVkXT1cIiFjYW5QbGF5KGNhcmQpXCJcbiAgICAgICAgICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwic3RhcnREcmFnZ2luZ0NhcmQoY2FyZElkKVwiXG4gICAgICAgICAgICAgICAgKGNka0RyYWdFbmRlZCk9XCJlbmREcmFnZ2luZ0NhcmQoKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEhhbmRDYXJkKGNhcmRJZClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJkZWZpbml0aW9uVG9SZW5kZXJDYXJkKGNhcmQpXCIgdmFyaWFudD1cImJhYnlcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgY2RrRHJhZ1ByZXZpZXc+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtZHJhZy1wcmV2aWV3XCI+XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChjYXJkKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBjZGtEcmFnUGxhY2Vob2xkZXI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtZHJhZy1wbGFjZWhvbGRlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktY2FyZC1leWVcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5UHJldmlld0NhcmQnKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImluc3BlY3RIYW5kQ2FyZChjYXJkSWQsIHRydWUpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChzZWxlY3RlZFByZXZpZXcoKSkge1xuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWJhY2tkcm9wXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlDbG9zZVByZXZpZXcnKVwiIChjbGljayk9XCJjbG9zZVByZXZpZXcoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YXNpZGVcbiAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsXCJcbiAgICAgICAgICBbY2xhc3MuaXMtaGlzdG9yeS1wcmV2aWV3XT1cImNhbk5hdmlnYXRlUHJldmlldygpXCJcbiAgICAgICAgICBbY2xhc3MuaXMtZ2FsbGVyeS1wcmV2aWV3XT1cInNlbGVjdGVkUHJldmlldygpPy5zb3VyY2UgPT09ICdnYWxsZXJ5J1wiXG4gICAgICAgICAgW2NsYXNzLmlzLXNsaWRpbmctcHJldmlvdXNdPVwicHJldmlld1NsaWRlRGlyZWN0aW9uKCkgPT09IC0xXCJcbiAgICAgICAgICBbY2xhc3MuaXMtc2xpZGluZy1uZXh0XT1cInByZXZpZXdTbGlkZURpcmVjdGlvbigpID09PSAxXCJcbiAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LXRvcGJhclwiPlxuICAgICAgICAgICAgQGlmIChwcmV2aWV3UG9zaXRpb25MYWJlbCgpOyBhcyBwb3NpdGlvbkxhYmVsKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctcG9zaXRpb25cIj57eyBwb3NpdGlvbkxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VQcmV2aWV3KClcIj5cbiAgICAgICAgICAgICAge3sgdCgnY2xvc2UnKSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1zdGFnZVwiPlxuICAgICAgICAgICAgICBAaWYgKGNhbk5hdmlnYXRlUHJldmlldygpKSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LW5hdiBjaHJpc3RpYW5pdHktcHJldmlldy1uYXYtLXByZXZpb3VzXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5UHJldmlvdXNDYXJkJylcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlUHJldmlldygtMSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICZsdDtcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2IGNocmlzdGlhbml0eS1wcmV2aWV3LW5hdi0tbmV4dFwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eU5leHRDYXJkJylcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlUHJldmlldygxKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgJmd0O1xuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAoc2VsZWN0ZWRQcmV2aWV3TmVpZ2hib3JSZW5kZXJDYXJkKC0xKTsgYXMgcHJldmlvdXNDYXJkKSB7XG4gICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWdob3N0IGNocmlzdGlhbml0eS1wcmV2aWV3LWdob3N0LS1wcmV2aW91c1wiIFtjYXJkXT1cInByZXZpb3VzQ2FyZFwiIHZhcmlhbnQ9XCJmdWxsXCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmRcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXByZXZpZXctcm90YXRlLXhdPVwicHJldmlld1RpbHQoKS5yb3RhdGVYICsgJ2RlZydcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXByZXZpZXctcm90YXRlLXldPVwicHJldmlld1RpbHQoKS5yb3RhdGVZICsgJ2RlZydcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXByZXZpZXctc2hpZnQteF09XCJwcmV2aWV3VGlsdCgpLnNoaWZ0WCArICdweCdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXByZXZpZXctc2hpZnQteV09XCJwcmV2aWV3VGlsdCgpLnNoaWZ0WSArICdweCdcIlxuICAgICAgICAgICAgICAgIChwb2ludGVybW92ZSk9XCJ0aWx0UHJldmlldygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAocG9pbnRlcmxlYXZlKT1cInJlc2V0UHJldmlld1RpbHQoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKHNlbGVjdGVkUHJldmlld1JlbmRlckNhcmQoKTsgYXMgcHJldmlld0NhcmQpIHtcbiAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwicHJldmlld0NhcmRcIiB2YXJpYW50PVwiZnVsbFwiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIEBpZiAoc2VsZWN0ZWRQcmV2aWV3TmVpZ2hib3JSZW5kZXJDYXJkKDEpOyBhcyBuZXh0Q2FyZCkge1xuICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1naG9zdCBjaHJpc3RpYW5pdHktcHJldmlldy1naG9zdC0tbmV4dFwiIFtjYXJkXT1cIm5leHRDYXJkXCIgdmFyaWFudD1cImZ1bGxcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctc2lkZVwiPlxuICAgICAgICAgICAgICBAaWYgKHByZXZpZXdSdWxlKCk7IGFzIHJ1bGUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1ydWxlLW5vdGUtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPmk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c21hbGw+e3sgdCgnY2hyaXN0aWFuaXR5Q2FyZFJ1bGUnKSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgcnVsZS50aXRsZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8cD57eyBydWxlLmJvZHkgfX08L3A+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgQGlmIChzaG93UHJldmlld0FiaWxpdGllcygpKSB7XG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllc1wiPlxuICAgICAgICAgICAgICA8aGVhZGVyIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8c21hbGw+e3sgdCgnY2hyaXN0aWFuaXR5QWJpbGl0aWVzJykgfX08L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgQGlmIChzZWxlY3RlZFByZXZpZXdBYmlsaXR5UG9zaXRpb25MYWJlbCgpOyBhcyBhYmlsaXR5UG9zaXRpb25MYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBhYmlsaXR5UG9zaXRpb25MYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICBAaWYgKGNhbk5hdmlnYXRlUHJldmlld0FiaWxpdGllcygpKSB7XG4gICAgICAgICAgICAgICAgICA8bmF2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1uYXZcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eUFiaWxpdGllcycpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eVByZXZpb3VzQ2FyZCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVQcmV2aWV3QWJpbGl0eSgtMSlcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgJmx0O1xuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5TmV4dENhcmQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlUHJldmlld0FiaWxpdHkoMSlcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgJmd0O1xuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgICAgICAgIEBpZiAoc2hvd1ByZXZpZXdBYmlsaXR5VGFicygpKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFic1wiPlxuICAgICAgICAgICAgICAgICAgQGZvciAoYWJpbGl0eSBvZiBwcmV2aWV3QWJpbGl0aWVzKCk7IHRyYWNrIGFiaWxpdHkuaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJzZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXgoKSA9PT0gYWJpbGl0eS5pbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFByZXZpZXdBYmlsaXR5KGFiaWxpdHkuaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGFiaWxpdHkudGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChzZWxlY3RlZFByZXZpZXdBYmlsaXR5KCk7IGFzIGFiaWxpdHkpIHtcbiAgICAgICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBhYmlsaXR5LnRpdGxlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1zY3JvbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPHA+e3sgYWJpbGl0eS5ib2R5IH19PC9wPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9hcnRpY2xlPlxuICAgICAgICAgICAgICAgIDxmb290ZXIgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWZvb3RlclwiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy11c2UtYWJpbGl0eVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhYWJpbGl0eS5jYW5Vc2VcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXNlU2VsZWN0ZWRQcmV2aWV3QWJpbGl0eSgpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5VXNlQWJpbGl0eScpIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Zvb3Rlcj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9hc2lkZT5cbiAgICAgIH1cblxuICAgICAgQGlmIChzZWxlY3RlZEluZm8oKTsgYXMgaW5mbykge1xuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1pbmZvLWJhY2tkcm9wXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjbG9zZScpXCIgKGNsaWNrKT1cImNsb3NlSW5mbygpXCI+PC9idXR0b24+XG4gICAgICAgIDxhc2lkZSBjbGFzcz1cImNocmlzdGlhbml0eS1pbmZvLXBhbmVsXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWNsb3NlIGNocmlzdGlhbml0eS1pbmZvLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlSW5mbygpXCI+XG4gICAgICAgICAgICB7eyB0KCdjbG9zZScpIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1ydWxlLW5vdGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZS1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+aTwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxzbWFsbD57eyBpbmZvLmV5ZWJyb3cgfX08L3NtYWxsPlxuICAgICAgICAgICAgICA8aDI+e3sgaW5mby50aXRsZSB9fTwvaDI+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgaW5mby5tZXRhIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDxwPnt7IGluZm8uYm9keSB9fTwvcD5cbiAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgIEBmb3IgKGZhY3Qgb2YgaW5mby5mYWN0czsgdHJhY2sgZmFjdCkge1xuICAgICAgICAgICAgICAgICAgPGxpPnt7IGZhY3QgfX08L2xpPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2FzaWRlPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHNjcmVlbigpID09PSAndGFibGUnKSB7XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWFjdGlvbnNcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1hY3Rpb25zXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJjaHJpc3RpYW5pdHktc3Itb25seVwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LXN0YXR1c1wiPnt7IHN0YXR1c1RleHQoKSB9fTwvcD5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1wcmltYXJ5LWFjdGlvblwiIFtkaXNhYmxlZF09XCJzZWxlY3RlZEFjdGlvbkRpc2FibGVkKClcIiAoY2xpY2spPVwicGxheVNlbGVjdGVkQ2FyZCgpXCI+XG4gICAgICAgICAgICB7eyBzZWxlY3RlZEFjdGlvbkxhYmVsKCkgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHNob3dIaXN0b3J5KCkpIHtcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGlzdG9yeS1iYWNrZHJvcFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5Q2xvc2VIaXN0b3J5JylcIiAoY2xpY2spPVwiY2xvc2VIaXN0b3J5KClcIj48L2J1dHRvbj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXJcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlclwiPlxuICAgICAgICAgIDxoZWFkZXI+XG4gICAgICAgICAgICA8aDI+e3sgdCgnY2hyaXN0aWFuaXR5SGlzdG9yeScpIH19PC9oMj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZ2FtZSgpLmhpc3Rvcnlab25lLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlSGlzdG9yeSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2xvc2UnKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICAgIEBpZiAoZ2FtZSgpLmhpc3Rvcnlab25lLmxlbmd0aCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWRcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWRcIj5cbiAgICAgICAgICAgICAgQGZvciAoY2FyZElkIG9mIGdhbWUoKS5oaXN0b3J5Wm9uZTsgdHJhY2sgY2FyZElkICsgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgQGxldCBjYXJkID0gY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1nYWxsZXJ5LWNhcmQtYnV0dG9uIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIiBbYXR0ci5kYXRhLXRlc3RpZF09XCJoaXN0b3J5Q2FyZFRlc3RJZChjYXJkSWQsICRpbmRleClcIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwiaW5zcGVjdEhpc3RvcnlDYXJkKGNhcmRJZClcIj5cbiAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChjYXJkKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHA+e3sgdCgnY2hyaXN0aWFuaXR5SGlzdG9yeUVtcHR5JykgfX08L3A+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoc2hvd0dhbGxlcnkoKSkge1xuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWJhY2tkcm9wIGNocmlzdGlhbml0eS1nYWxsZXJ5LWJhY2tkcm9wXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlDbG9zZUdhbGxlcnknKVwiIChjbGljayk9XCJjbG9zZUdhbGxlcnkoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBjaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXJcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlclwiPlxuICAgICAgICAgIDxoZWFkZXI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8aDI+e3sgdCgnY2hyaXN0aWFuaXR5R2FsbGVyeScpIH19PC9oMj5cbiAgICAgICAgICAgICAgPHA+e3sgZ2FsbGVyeUVkaXRpb25MYWJlbCgpIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWRpYWxvZy1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGdhbGxlcnlDYXJkcygpLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlR2FsbGVyeSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2xvc2UnKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9sc1wiPlxuICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlHYWxsZXJ5U2VhcmNoJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwic2VhcmNoXCIgW3ZhbHVlXT1cImdhbGxlcnlTZWFyY2goKVwiIChpbnB1dCk9XCJzZXRHYWxsZXJ5U2VhcmNoKCRldmVudClcIiBbcGxhY2Vob2xkZXJdPVwidCgnY2hyaXN0aWFuaXR5R2FsbGVyeVNlYXJjaFBsYWNlaG9sZGVyJylcIiAvPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5R2FsbGVyeUZpbHRlcicpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c2VsZWN0IFt2YWx1ZV09XCJnYWxsZXJ5VHlwZSgpXCIgKGNoYW5nZSk9XCJzZXRHYWxsZXJ5VHlwZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIGdhbGxlcnlUeXBlT3B0aW9ucygpOyB0cmFjayBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImlzLWFjdGl2ZVwiIHZhbExpZ2h0UmlwcGxlPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiZ2FsbGVyeUVkaXRpb25JY29uKClcIiBhbHQ9XCJcIiAvPlxuICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlHZW5lc2lzRWRpdGlvbicpIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWRcIj5cbiAgICAgICAgICAgIEBmb3IgKGNhcmQgb2YgZ2FsbGVyeUNhcmRzKCk7IHRyYWNrIGNhcmQuaWQpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZ2FsbGVyeS1jYXJkLWJ1dHRvbiBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cImluc3BlY3RHYWxsZXJ5Q2FyZChjYXJkLmlkKVwiPlxuICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChjYXJkKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfSBAZW1wdHkge1xuICAgICAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlHYWxsZXJ5RW1wdHknKSB9fTwvcD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKG9mZmVyaW5nc1NlYXQoKSkge1xuICAgICAgICBAbGV0IG9mZmVyaW5nUGxheWVyID0gZ2FtZSgpLnBsYXllcnNbb2ZmZXJpbmdzU2VhdCgpIV07XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhpc3RvcnktYmFja2Ryb3BcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eUNsb3NlT2ZmZXJpbmdzJylcIiAoY2xpY2spPVwiY2xvc2VPZmZlcmluZ3MoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLWRyYXdlclwiIFthdHRyLmRhdGEtdGVzdGlkXT1cIm9mZmVyaW5nc0RyYXdlclRlc3RJZChvZmZlcmluZ3NTZWF0KCkhKVwiPlxuICAgICAgICAgIDxoZWFkZXI+XG4gICAgICAgICAgICA8aDI+e3sgdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdzJykgfX08L2gyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1kaWFsb2ctYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ1Jlc2VydmUnKSB9fSB7eyByZWFkeU9mZmVyaW5ncyhvZmZlcmluZ1BsYXllcikgfX0gwrcge3sgdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdCYXNlJykgfX0ge3sgdG90YWxPZmZlcmluZ3Mob2ZmZXJpbmdQbGF5ZXIpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VPZmZlcmluZ3MoKVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2Nsb3NlJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1ydWxlLW5vdGUtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPmk8L3NwYW4+XG4gICAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ3NSdWxlQm9keScpIH19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0XCIgW2F0dHIuZGF0YS10ZXN0aWRdPVwib2ZmZXJpbmdMaXN0VGVzdElkKG9mZmVyaW5nc1NlYXQoKSEpXCI+XG4gICAgICAgICAgICAgIEBmb3IgKG9mZmVyaW5nIG9mIG9mZmVyaW5nUGxheWVyLm9mZmVyaW5nczsgdHJhY2sgb2ZmZXJpbmcuaW5zdGFuY2VJZCkge1xuICAgICAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvd1wiIFtjbGFzcy5pcy1leGhhdXN0ZWRdPVwiIW9mZmVyaW5nLnJlYWR5XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCIgW2F0dHIuZGF0YS10ZXN0aWRdPVwib2ZmZXJpbmdDYXJkVGVzdElkKG9mZmVyaW5nKVwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJpbnNwZWN0T2ZmZXJpbmcob2ZmZXJpbmcpXCI+XG4gICAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cIm9mZmVyaW5nUmVuZGVyQ2FyZChvZmZlcmluZylcIiB2YXJpYW50PVwiYmFieVwiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IG9mZmVyaW5nLnJlYWR5ID8gdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdSZWFkeScpIDogdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdFeGhhdXN0ZWQnKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgPHA+e3sgb2ZmZXJpbmdBYmlsaXR5VGV4dChvZmZlcmluZykgfX08L3A+XG4gICAgICAgICAgICAgICAgICBAaWYgKG9mZmVyaW5nLmFiaWxpdHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJvZmZlcmluZ1VzZUJ1dHRvblRlc3RJZChvZmZlcmluZylcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY2FuVXNlT2ZmZXJpbmdBYmlsaXR5KG9mZmVyaW5nLCBvZmZlcmluZ3NTZWF0KCkhKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInVzZU9mZmVyaW5nQWJpbGl0eShvZmZlcmluZywgb2ZmZXJpbmdzU2VhdCgpISlcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5VXNlQWJpbGl0eScpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cbiAgICA8L21haW4+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rOiB2YXIoLS12YWwtdGV4dC1jb2xvciwgIzFmMjkzMyk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLXN1cmZhY2U6ICNmZmZmZmY7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLXBhcmNobWVudDogI2VmZjZmZjtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtb2xpdmU6ICMxZDRlZDg7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQ6ICMyNTYzZWI7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtc29mdDogcmdiYSgzNywgOTksIDIzNSwgMC4xNik7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtcmluZzogcmdiYSgzNywgOTksIDIzNSwgMC40NCk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdsb3c6IHJnYmEoMzcsIDk5LCAyMzUsIDAuMjQpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1czogIzI1NjNlYjtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93OiByZ2JhKDM3LCA5OSwgMjM1LCAwLjE1KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93LXN0cm9uZzogcmdiYSgzNywgOTksIDIzNSwgMC4yNik7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0OiA1IC8gNy40NTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTYsIDQyLCA2NywgMC4xNiksIHJnYmEoMTYsIDQyLCA2NywgMC4wMykpLFxuICAgICAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsICNkYmVhZmUgMCAwLjMzcmVtLCAjZmZmZmZmIDAuMzNyZW0gMC42NnJlbSk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNhcmQtYmFjay1zb2Z0OlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTYsIDQyLCA2NywgMC4xMSksIHJnYmEoMTYsIDQyLCA2NywgMC4wMikpLFxuICAgICAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsICNkYmVhZmUgMCAwLjMzcmVtLCAjZmZmZmZmIDAuMzNyZW0gMC42NnJlbSk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgb3ZlcmZsb3cteDogY2xpcDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1pbmspO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNoZWxsIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjY1cmVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGNsaXA7XG4gICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaGFzLW1vZGFsLW9wZW4ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDBkdmg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyLFxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyX19zdW1tYXJ5LFxuICAgICAgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAwLjc1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhlYWRlciBoMSxcbiAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzbWFsbCxcbiAgICAgIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5IGgyLFxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjM1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNyLW9ubHkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXItYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1vcGVuIHtcbiAgICAgICAgbWluLWhlaWdodDogMi4ycmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNzVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nb2xkLXJpbmcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDIzOSwgMjQ2LCAyNTUsIDAuOTgpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTgpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDIwJSAwJSwgdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtc29mdCksIHRyYW5zcGFyZW50IDQyJSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNTVyZW0gMS4ycmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoIHtcbiAgICAgICAgbWluLWhlaWdodDogbWluKDM0cmVtLCBjYWxjKDEwMGR2aCAtIDhyZW0pKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNywgOTksIDIzNSwgMC4xOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuOXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSAxOCUsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTYpLCB0cmFuc3BhcmVudCAyMnJlbSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyMzksIDI0NiwgMjU1LCAwLjkzKSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk3KSksXG4gICAgICAgICAgdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYmFjay1zb2Z0KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxLjJyZW0gMy4ycmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNwbGFzaCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxLjJyZW07XG4gICAgICAgIHBhZGRpbmc6IDIuNXJlbSAxLjI1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAwLjc0cmVtKTtcbiAgICAgICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgICAgICBnYXA6IDAuNTVyZW07XG4gICAgICAgIHdpZHRoOiA1LjhyZW07XG4gICAgICAgIGhlaWdodDogNS44cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgNTAlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjEyKSwgdHJhbnNwYXJlbnQgNTUlKSxcbiAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjIpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgMCAwIDAuNTVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpLFxuICAgICAgICAgIDAgMXJlbSAycmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNwbGFzaF9fbWFyazo6YmVmb3JlLFxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2hfX21hcms6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDAuNDJyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBhbmltYXRpb246IGNocmlzdGlhbml0eS1sb2FkZXItcmluZyAxODAwbXMgZWFzZS1vdXQgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrOjphZnRlciB7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogNDgwbXM7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrIHNwYW4ge1xuICAgICAgICB3aWR0aDogMC43NHJlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjc0cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWZvY3VzKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuODVyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4yMik7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LWxvYWRlci1kb3QgOTYwbXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrIHNwYW46bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxNDBtcztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2hfX21hcmsgc3BhbjpudGgtY2hpbGQoMykge1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDI4MG1zO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGNocmlzdGlhbml0eS1sb2FkZXItZG90IHtcbiAgICAgICAgMCUsXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDAuMzg7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDAuODIpO1xuICAgICAgICB9XG5cbiAgICAgICAgNDUlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC4yMnJlbSkgc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjaHJpc3RpYW5pdHktbG9hZGVyLXJpbmcge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMC40ODtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNzIpO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2ggc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NvcHkgc3BhbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtb2xpdmUpO1xuICAgICAgICBmb250LXNpemU6IDAuNzZyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoIGgyLFxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydCBoMixcbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnQgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2ggaDIge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS42NXJlbSwgN3Z3LCAyLjdyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2ggcCB7XG4gICAgICAgIG1heC13aWR0aDogMjZyZW07XG4gICAgICAgIG1hcmdpbjogMC41NXJlbSBhdXRvIDA7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjgpO1xuICAgICAgICBmb250LXNpemU6IDAuOTZyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGdhcDogMXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogbWluKDM0cmVtLCBjYWxjKDEwMGR2aCAtIDhyZW0pKTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9faGVybyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDEycmVtLCAxOHJlbSk7XG4gICAgICAgIGdhcDogMXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fY29weSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC40NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAzNnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydCBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS42cmVtLCA2dncsIDIuNXJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjAyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jb3B5IHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBwLFxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgcCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjgpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40MjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fZmFuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiAxM3JlbTtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2ZhbiB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiBjbGFtcCg1LjdyZW0sIDEydncsIDcuMnJlbSk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA5MiU7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxcmVtIDEuNXJlbSByZ2JhKDgyLCA2NCwgMjgsIDAuMTgpKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICAgIGdhcDogMC43NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgYXJ0aWNsZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuNjVyZW07XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAwLjk1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODIpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNzVyZW0gMS43cmVtIHJnYmEoODIsIDY0LCAyOCwgMC4wOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIGFydGljbGUge1xuICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgc3Ryb25nIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19zdGF0dXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogMC40NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fc3RhdHVzIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlID4gc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuODVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC42MnJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNywgOTksIDIzNSwgMC4yMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgMjQ2LCAyNTUsIDAuODgpO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjcyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODUwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAwLjU1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlIHtcbiAgICAgICAgbWluLWhlaWdodDogOC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuNzIpO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvcGFjaXR5OiAwLjgyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDAuOTJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByaW1hcnktYWN0aW9uLFxuICAgICAgLmNocmlzdGlhbml0eS1zZWNvbmRhcnktYWN0aW9uIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgICAgbWluLWhlaWdodDogMi41cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuOXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJpbWFyeS1hY3Rpb24ge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE2LCA0MiwgNjcsIDAuMTYpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTAyYTQzO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zZWNvbmRhcnktYWN0aW9uIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtcmluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1wYXJjaG1lbnQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LXR1cm4gc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpZGRlbi1oYW5kIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWRlY2sgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktcGxhY2Ugc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktcGlsZSBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjQpO1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktdHVybixcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZ3MsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpZGRlbi1oYW5kLFxuICAgICAgLmNocmlzdGlhbml0eS1waWxlLFxuICAgICAgLmNocmlzdGlhbml0eS1kZWNrLFxuICAgICAgLmNocmlzdGlhbml0eS1wbGFjZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4xNXJlbTtcbiAgICAgICAgbWluLXdpZHRoOiA1LjI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjU1cmVtIDAuNjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS10dXJuLmlzLW93bi10dXJuIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE4LCAxMjgsIDEwOCwgMC4zNSk7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlY2ZkZjU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXAge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIHBhZGRpbmc6IDAuNDVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyLS1vcHBvbmVudCB7XG4gICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllci0tb3Bwb25lbnQgZGl2IHtcbiAgICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBkaXYge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsLFxuICAgICAgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHNwYW4ge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjU4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjcycmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNjb3JlYm9hcmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogNC4ycmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNTVyZW07XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xKTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktdGFibGUge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC40NXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjQ1cmVtIDAuMzVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgNDQlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksIHRyYW5zcGFyZW50IDQ0JSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2M4ZGRmNywgI2I5ZDRmMSk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNCksXG4gICAgICAgICAgaW5zZXQgMCAxLjRyZW0gM3JlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xuICAgICAgICBvdmVyZmxvdy14OiBjbGlwO1xuICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWltcGFjdC1sYXllciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDMwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwteDogNTAlO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwteTogNzIlO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbWlkLXg6IDUwJTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLW1pZC15OiA1MCU7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1sZW5ndGg6IDM0JTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWFuZ2xlOiAtOTBkZWc7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk2KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWdsb3c6IHJnYmEoOTYsIDE2NSwgMjUwLCAwLjU2KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWhpdDogcmdiYSgyMjAsIDM4LCAzOCwgMC40Mik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLmlzLWxlYWRlci10YXJnZXQge1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45OCk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1nbG93OiByZ2JhKDI1MCwgMjA0LCAyMSwgMC41Mik7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1oaXQ6IHJnYmEoMjUwLCAyMDQsIDIxLCAwLjM4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwuaXMtY2hhcmFjdGVyLXRhcmdldCB7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1jb2xvcjogcmdiYSgyMTksIDIzNCwgMjU0LCAwLjk4KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWdsb3c6IHJnYmEoOTYsIDE2NSwgMjUwLCAwLjU4KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWhpdDogcmdiYSgyMjAsIDM4LCAzOCwgMC4zOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsOjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbWlkLXgpO1xuICAgICAgICB0b3A6IHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbWlkLXkpO1xuICAgICAgICB3aWR0aDogY2xhbXAoMi44cmVtLCA5dncsIDUuNHJlbSk7XG4gICAgICAgIGhlaWdodDogY2xhbXAoMi44cmVtLCA5dncsIDUuNHJlbSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43MiksIHRyYW5zcGFyZW50IDI4JSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1oaXQpLCB0cmFuc3BhcmVudCA2MiUpO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC41OCk7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LWNvbWJhdC1idXJzdCA4ODBtcyBlYXNlLW91dCBib3RoO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbCA+IHNwYW4ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwteCk7XG4gICAgICAgIHRvcDogdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC15KTtcbiAgICAgICAgd2lkdGg6IHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbGVuZ3RoKTtcbiAgICAgICAgaGVpZ2h0OiAwLjM2cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAgNSUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45MikgNDIlLCB2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWNvbG9yKSA3MiUsIHJnYmEoOTYsIDE2NSwgMjUwLCAwLjcyKSksXG4gICAgICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCAwLjdyZW0sIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NikgMC43cmVtIDAuOTJyZW0pO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMCAwLjcycmVtIHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtZ2xvdyksXG4gICAgICAgICAgMCAwIDEuNDVyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1nbG93KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSh2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWFuZ2xlKSkgc2NhbGVYKDApO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTtcbiAgICAgICAgYW5pbWF0aW9uOiBjaHJpc3RpYW5pdHktY29tYmF0LWFycm93LXRyYWlsIDg0MG1zIGVhc2Utb3V0IGJvdGg7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsID4gc3Bhbjo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICByaWdodDogLTAuMThyZW07XG4gICAgICAgIHdpZHRoOiAwLjk1cmVtO1xuICAgICAgICBoZWlnaHQ6IDAuOTVyZW07XG4gICAgICAgIGJvcmRlci10b3A6IDAuMjhyZW0gc29saWQgdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yaWdodDogMC4yOHJlbSBzb2xpZCB2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWNvbG9yKTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDAuNDVyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1nbG93KSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGNocmlzdGlhbml0eS1jb21iYXQtYXJyb3ctdHJhaWwge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtYW5nbGUpKSBzY2FsZVgoMCk7XG4gICAgICAgIH1cblxuICAgICAgICAyNCUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSh2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWFuZ2xlKSkgc2NhbGVYKDAuNTIpO1xuICAgICAgICB9XG5cbiAgICAgICAgNjYlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUodmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1hbmdsZSkpIHNjYWxlWCgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSh2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWFuZ2xlKSkgc2NhbGVYKDEuMDQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LWNvbWJhdC1idXJzdCB7XG4gICAgICAgIDAlLFxuICAgICAgICA0MiUge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC41OCkgcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgNTglIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDAuOTgpIHJvdGF0ZSg0ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS40Mikgcm90YXRlKDEyZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgICAuY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbCxcbiAgICAgICAgLmNocmlzdGlhbml0eS1jb21iYXQtdHJhaWw6OmJlZm9yZSxcbiAgICAgICAgLmNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwgPiBzcGFuLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtYXR0YWNrZXIgdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtdGFyZ2V0IHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLWNvbWJhdC10YXJnZXQgdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGwuaXMtc2xpZGluZy1wcmV2aW91cyAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbC5pcy1zbGlkaW5nLW5leHQgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LXNwbGFzaF9fbWFyazo6YmVmb3JlLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LXNwbGFzaF9fbWFyazo6YWZ0ZXIsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrIHNwYW4ge1xuICAgICAgICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLXNpZGUge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgcGFkZGluZzogMC4zNXJlbSAwLjNyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuN3JlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjgpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpKSxcbiAgICAgICAgICByZ2JhKDc0LCAxMjIsIDE4MCwgMC4wOCk7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KDdyZW0sIDFmcikgYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMTMuNzVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLXNpZGUtLW9wcG9uZW50IHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIG1pbm1heCg3cmVtLCAxZnIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSB7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWJhdHRsZS1jYXJkLXdpZHRoOiBjbGFtcCg0LjhyZW0sIDE1dncsIDYuNnJlbSk7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIHZhcigtLWNocmlzdGlhbml0eS1iYXR0bGUtY2FyZC13aWR0aCkpO1xuICAgICAgICBnYXA6IDAuNXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgbWluLWhlaWdodDogY2xhbXAoOS4xcmVtLCAyOXZ3LCAxMXJlbSk7XG4gICAgICAgIHBhZGRpbmc6IDAuNTVyZW0gMC40cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40MiksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNCkpLFxuICAgICAgICAgIHJnYmEoMzEsIDc5LCAxMzcsIDAuMDgpO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIGJhY2tncm91bmQgMTYwbXMgZWFzZSxcbiAgICAgICAgICBib3gtc2hhZG93IDE2MG1zIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYmF0dGxlLXpvbmUuaXMtcGxhY2luZy1jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjUwLCAyNDAsIDAuOTYpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODQpKSxcbiAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzYpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgMCAwIDAuMTRyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtc29mdCksXG4gICAgICAgICAgMCAwLjhyZW0gMS43cmVtIHJnYmEoOTUsIDExMSwgNDIsIDAuMTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lIHtcbiAgICAgICAgcGFkZGluZzogMC41NXJlbSAwLjRyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM0KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpKSxcbiAgICAgICAgICByZ2JhKDMxLCA3OSwgMTM3LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS1lbmQtdHVybixcbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyBidXR0b24sXG4gICAgICAuY2hyaXN0aWFuaXR5LXBpbGUsXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci0tdGFyZ2V0IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgbWluLWhlaWdodDogNS44cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC41cmVtIDEuMjVyZW0gcmdiYSgzNiwgNDgsIDY4LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkIHNwYW4ge1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQgc3Ryb25nIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gMC4zNXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlZGYyZjc7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQuaXMtc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nb2xkKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAwIDAgMCAwLjE4cmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nb2xkLXNvZnQpLFxuICAgICAgICAgIDAgMC44NXJlbSAxLjRyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXNoYWRvdyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC5pcy1kaXNhYmxlZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC5pcy1leGhhdXN0ZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQuaXMtdGFyZ2V0IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZGMyNjI2O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmRzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IDAuN3JlbTtcbiAgICAgICAgZ2FwOiAwLjE2cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogZW5kO1xuICAgICAgICBtaW4taGVpZ2h0OiAxLjA1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmRzIGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDAuNjVyZW07XG4gICAgICAgIGhlaWdodDogMC45NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNiwgNDIsIDY3LCAwLjIyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xOHJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkcyBpLmlzLXVzZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjY2JkNWUxO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zbG90IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgdmFyKC0tY2hyaXN0aWFuaXR5LWJhdHRsZS1jYXJkLXdpZHRoKSk7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCByZ2JhKDM2LCA0OCwgNjgsIDAuMjIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBvcGFjaXR5OiAwLjYyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nb2xkLXJpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTAsIDI0MCwgMC45MiksIHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC44MikpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgICAgICAgY29sb3I6ICM1ZDQzMDU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgaW5zZXQgMCAwIDAgMC4xMnJlbSByZ2JhKDIxNCwgMTYyLCAyOSwgMC4yKSxcbiAgICAgICAgICAwIDAuN3JlbSAxLjI1cmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3cpO1xuICAgICAgICBhbmltYXRpb246IGNocmlzdGlhbml0eS10YXJnZXQtcHVsc2UgMTQ1MG1zIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0OjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMC4zNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTQsIDE2MiwgMjksIDAuMjIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyMTQsIDE2MiwgMjksIDAuMSksIHRyYW5zcGFyZW50IDQ2JSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgNDIlLCB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ2xvdyksIHRyYW5zcGFyZW50IDU4JSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQgc3BhbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgcGFkZGluZzogMC4xNnJlbSAwLjQ0cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGNocmlzdGlhbml0eS10YXJnZXQtcHVsc2Uge1xuICAgICAgICAwJSxcbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgIGluc2V0IDAgMCAwIDAuMTJyZW0gcmdiYSgyMTQsIDE2MiwgMjksIDAuMiksXG4gICAgICAgICAgICAwIDAuN3JlbSAxLjI1cmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgNTAlIHtcbiAgICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgaW5zZXQgMCAwIDAgMC4xNnJlbSByZ2JhKDIxNCwgMTYyLCAyOSwgMC4zNCksXG4gICAgICAgICAgICAwIDAuOXJlbSAxLjY1cmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3ctc3Ryb25nKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLWF1dG8tY29sdW1uczogbWlubWF4KDZyZW0sIDhyZW0pO1xuICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNTVyZW07XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMge1xuICAgICAgICBwYWRkaW5nOiAwLjc1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMgYnV0dG9uLFxuICAgICAgLmNocmlzdGlhbml0eS1lbmQtdHVybiB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIuNHJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMgYnV0dG9uOm5vdCg6ZGlzYWJsZWQpLFxuICAgICAgLmNocmlzdGlhbml0eS1lbmQtdHVybiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMxMDJhNDM7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMgYnV0dG9uIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMC44cmVtIDEuNzVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjIyKSxcbiAgICAgICAgICBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMgYnV0dG9uOmRpc2FibGVkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1lbmQtdHVybiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMC44cmVtIDEuNzVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjIyKSxcbiAgICAgICAgICBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3Rvcnkge1xuICAgICAgICBwYWRkaW5nOiAwLjc1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtZmFuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogMTAuOHJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjI1cmVtIDIuMXJlbTtcbiAgICAgICAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICB6LWluZGV4OiAxMjtcbiAgICAgICAgbWluLWhlaWdodDogMTJyZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0xLjE1cmVtO1xuICAgICAgICBwYWRkaW5nOiAxLjQ1cmVtIDAuMjVyZW0gMXJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZi0tb3Bwb25lbnQge1xuICAgICAgICB6LWluZGV4OiA4O1xuICAgICAgICBtaW4taGVpZ2h0OiA2Ljg1cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjQ1cmVtIDAuMjVyZW0gMC44NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWZhbi0tb3Bwb25lbnQge1xuICAgICAgICBtaW4taGVpZ2h0OiA1LjlyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50IC5jaHJpc3RpYW5pdHktaGlkZGVuLWNhcmQtYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDMuN3JlbSwgMTJ2dywgNC45cmVtKTtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgICBtYXJnaW4taW5saW5lOiAtMC45cmVtO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTIwJTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWZhbi0tb3Bwb25lbnQgLmNocmlzdGlhbml0eS1oaWRkZW4tY2FyZC1idXR0b246Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWZhbi0tb3Bwb25lbnQgLmNocmlzdGlhbml0eS1oaWRkZW4tY2FyZC1idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1taW5pLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUsXG4gICAgICAuY2hyaXN0aWFuaXR5LWVuZC10dXJuIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvIGF1dG87XG4gICAgICAgIGdhcDogMC4yOHJlbTtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RyZXRjaDtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDQuOXJlbSwgMTd2dywgNy4xcmVtKTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIHBhZGRpbmc6IDAuNDhyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxMTUlO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIHRyYW5zZm9ybSAxNjBtcyBlYXNlLFxuICAgICAgICAgIGJveC1zaGFkb3cgMTYwbXMgZWFzZSxcbiAgICAgICAgICBib3JkZXItY29sb3IgMTYwbXMgZWFzZTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjVyZW0gMS4yNXJlbSByZ2JhKDM2LCA0OCwgNjgsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbiA+IHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY2FyZC1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA2LjhyZW0pO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0KTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY2FyZC1idXR0b24gPiB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24sXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24ge1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbjpob3ZlciB2YWwtY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtc2VsZWN0ZWQgdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtc2VsZWN0ZWQgdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtdGFyZ2V0IHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy10YXJnZXQgdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgZmlsdGVyOlxuICAgICAgICAgIGRyb3Atc2hhZG93KDAgMCAwLjQ1cmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuNDUpKVxuICAgICAgICAgIGRyb3Atc2hhZG93KDAgMC41NXJlbSAxcmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMjIpKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtcmVhZHktYXR0YWNrZXIgdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgZmlsdGVyOlxuICAgICAgICAgIGRyb3Atc2hhZG93KDAgMCAwLjI0cmVtIHJnYmEoMjIsIDE2MywgNzQsIDAuMzIpKVxuICAgICAgICAgIGRyb3Atc2hhZG93KDAgMC40NXJlbSAwLjhyZW0gcmdiYSgyMiwgMTYzLCA3NCwgMC4xNikpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1zZWxlY3RlZCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC4yOHJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXNlbGVjdGVkIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGZpbHRlcjpcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAgMC40cmVtIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjUyKSlcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAuNjVyZW0gMXJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjI0KSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLWNvbWJhdC1hdHRhY2tlciB7XG4gICAgICAgIHotaW5kZXg6IDg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtYXR0YWNrZXIgdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgYW5pbWF0aW9uOiBjaHJpc3RpYW5pdHktY29tYmF0LWx1bmdlIDk4MG1zIGN1YmljLWJlemllcigwLjIsIDAuNzgsIDAuMiwgMSkgYm90aDtcbiAgICAgICAgZmlsdGVyOlxuICAgICAgICAgIGRyb3Atc2hhZG93KDAgMCAwLjVyZW0gcmdiYSgyNTAsIDIwNCwgMjEsIDAuNzIpKVxuICAgICAgICAgIGRyb3Atc2hhZG93KDAgMXJlbSAxLjRyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjI4KSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLWNvbWJhdC10YXJnZXQgdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLWNvbWJhdC10YXJnZXQgdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgYW5pbWF0aW9uOiBjaHJpc3RpYW5pdHktY29tYmF0LWltcGFjdCA5ODBtcyBlYXNlLW91dCBib3RoO1xuICAgICAgICBmaWx0ZXI6XG4gICAgICAgICAgZHJvcC1zaGFkb3coMCAwIDAuNXJlbSByZ2JhKDIyMCwgMzgsIDM4LCAwLjQ4KSlcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAuNzVyZW0gMS4xcmVtIHJnYmEoMjIwLCAzOCwgMzgsIDAuMTgpKTtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjaHJpc3RpYW5pdHktY29tYmF0LWx1bmdlIHtcbiAgICAgICAgMCUge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgcm90YXRlKDBkZWcpIHNjYWxlKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgMjQlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xLjRyZW0sIDApIHJvdGF0ZSgtNGRlZykgc2NhbGUoMS4wOCk7XG4gICAgICAgIH1cblxuICAgICAgICA1MiUge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTQuOXJlbSwgMCkgcm90YXRlKDdkZWcpIHNjYWxlKDEuMTIpO1xuICAgICAgICB9XG5cbiAgICAgICAgNjglIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zLjZyZW0sIDApIHJvdGF0ZSgtM2RlZykgc2NhbGUoMS4wNCk7XG4gICAgICAgIH1cblxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGNocmlzdGlhbml0eS1jb21iYXQtaW1wYWN0IHtcbiAgICAgICAgMCUsXG4gICAgICAgIDQyJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZSgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDU0JSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLjE2cmVtLCAtMC4xMnJlbSwgMCkgcm90YXRlKDJkZWcpIHNjYWxlKDEuMDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgNjQlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0wLjE0cmVtLCAwLjFyZW0sIDApIHJvdGF0ZSgtMmRlZykgc2NhbGUoMC45OCk7XG4gICAgICAgIH1cblxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtcHJvdGVjdGVkLXRhcmdldCB7XG4gICAgICAgIG9wYWNpdHk6IDAuODI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1wcm90ZWN0ZWQtdGFyZ2V0IHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDAuMjIpIGRyb3Atc2hhZG93KDAgMCAwLjI4cmVtIHJnYmEoMTAwLCAxMTYsIDEzOSwgMC4yNikpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvIGF1dG87XG4gICAgICAgIGdhcDogMC4yOHJlbTtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RyZXRjaDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMC40OHJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTgpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTgpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDE1JSAwJSwgcmdiYSgyMTQsIDE2MiwgMjksIDAuMTIpLCB0cmFuc3BhcmVudCA0NCUpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMC41cmVtIDEuMjVyZW0gcmdiYSgzNiwgNDgsIDY4LCAwLjEpLFxuICAgICAgICAgIGluc2V0IDAgMCAwIDAuMThyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgYXV0bztcbiAgICAgICAgZ2FwOiAwLjE2cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzbWFsbCB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjQpO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDAuNTJyZW0sIDEuNXZ3LCAwLjY4cmVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtaGVhZGVyIHN0cm9uZyB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgICAgICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjgycmVtLCAyLjV2dywgMS4wNXJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjAyO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZCAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtaGVhZGVyIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZSAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtaGVhZGVyIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzdHJvbmcge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGNsaXA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZCAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtaGVhZGVyIHNtYWxsIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZCAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtYXJ0ID4gc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICBtYXgtd2lkdGg6IDg4JTtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGNsaXA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzcGFuIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgIGdyaWQtcm93OiAxIC8gc3BhbiAyO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDEuM3JlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjNyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC4yMnJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmQ5MWE7XG4gICAgICAgIGNvbG9yOiAjMjQzMDQ0O1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTAuMDhyZW0gMCByZ2JhKDgyLCA2NCwgMjgsIDAuMTgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtaGVhZGVyIHNwYW4uaXMtb2ZmZXJpbmctcGlwcyxcbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWNvc3QuaXMtb2ZmZXJpbmctcGlwcyxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBzcGFuLmlzLW9mZmVyaW5nLXBpcHMge1xuICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgICAgICBnYXA6IDAuMTRyZW07XG4gICAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICAgICAgcGFkZGluZzogMCAwLjI4cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtaGVhZGVyIHNwYW4uaXMtb2ZmZXJpbmctcGlwcyBpLFxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtY29zdC5pcy1vZmZlcmluZy1waXBzIGksXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgc3Bhbi5pcy1vZmZlcmluZy1waXBzIGksXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1waXBzIGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDAuNzJyZW07XG4gICAgICAgIGhlaWdodDogMC43MnJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzNCUgMjglLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkgMCAwLjEycmVtLCB0cmFuc3BhcmVudCAwLjEzcmVtKSxcbiAgICAgICAgICAjZmZkOTFhO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgLTAuMDhyZW0gMCByZ2JhKDgyLCA2NCwgMjgsIDAuMTgpLFxuICAgICAgICAgIDAgMC4xMnJlbSAwLjI0cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWFydCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4zNnJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDk1LCAxMTEsIDQyLCAwLjE4KSwgcmdiYSgyMTQsIDE2MiwgMjksIDAuMTQpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSAxOCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43MiksIHRyYW5zcGFyZW50IDQ4JSksXG4gICAgICAgICAgI2RiZTdlZjtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMzYsIDQ4LCA2OCwgMC4wOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1hcnQgPiBzcGFuIHtcbiAgICAgICAgbWF4LXdpZHRoOiA3OCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbG9yOiByZ2JhKDM2LCA0OCwgNjgsIDAuNDgpO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDAuODJyZW0sIDIuMnZ3LCAxLjA1cmVtKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1hcnQgc21hbGwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDAuMjhyZW07XG4gICAgICAgIG1heC13aWR0aDogNzglO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC4zNHJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHggMCAwIDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjYpO1xuICAgICAgICBmb250LXNpemU6IDAuNDhyZW07XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtZWZmZWN0IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICBnYXA6IDAuMXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMS40NXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNHJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4zNHJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSA3MCUsIHJnYmEoMzYsIDQ4LCA2OCwgMC4wNiksIHRyYW5zcGFyZW50IDQ0JSksXG4gICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg2KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWVmZmVjdCBzdHJvbmcge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgICAgICAgYWxpZ24tc2VsZjogZW5kO1xuICAgICAgICBwYWRkaW5nOiAwLjEycmVtIDAuMzJyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWRmMmY3O1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDAuNjZyZW0sIDJ2dywgMC44MnJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtZWZmZWN0IHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzIpO1xuICAgICAgICBmb250LXNpemU6IDAuNThyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDAuMjJyZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTIpO1xuICAgICAgICBmb250LXNpemU6IDAuNDZyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtLWJhdHRsZSB7XG4gICAgICAgIGdhcDogMC4yMnJlbTtcbiAgICAgICAgcGFkZGluZzogMC40MnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLS1iYXR0bGUgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWFydCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLS1sZWFkZXIgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWFydCB7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgzNywgOTksIDIzNSwgMC4xNCksIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjE2KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgMTglLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzgpLCB0cmFuc3BhcmVudCA0OCUpLFxuICAgICAgICAgICNlN2VlZjg7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS0tbGlzdCB7XG4gICAgICAgIHdpZHRoOiBjbGFtcCg0LjRyZW0sIDIydncsIDUuOHJlbSk7XG4gICAgICAgIHBhZGRpbmc6IDAuMzhyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS0tbGlzdCAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtYXJ0IHtcbiAgICAgICAgbWluLWhlaWdodDogMi41cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtYXJnaW4taW5saW5lOiAtMC40MnJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxMTUlO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIHRyYW5zZm9ybSAxNjBtcyBlYXNlLFxuICAgICAgICAgIGZpbHRlciAxNjBtcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwOmhvdmVyLFxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcC5pcy1zZWxlY3RlZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1jYXJkLXdyYXAuaXMtZHJhZ2dpbmcge1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwOmhvdmVyIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwLmlzLXNlbGVjdGVkIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwLmlzLWRyYWdnaW5nIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nb2xkKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAwIDAgMCAwLjEycmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nb2xkLXNvZnQpLFxuICAgICAgICAgIDAgMXJlbSAycmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3cpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNXJlbSkgc2NhbGUoMS4wNDUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kIHtcbiAgICAgICAgY3Vyc29yOiBncmFiO1xuICAgICAgICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQ6YWN0aXZlIHtcbiAgICAgICAgY3Vyc29yOiBncmFiYmluZztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZC5jZGstZHJhZy1kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1kcmFnLXByZXZpZXcsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLmNkay1kcmFnLXByZXZpZXcge1xuICAgICAgICB3aWR0aDogY2xhbXAoNC45cmVtLCAxN3Z3LCA3LjFyZW0pO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMCAwIDAuMTZyZW0gcmdiYSgyNTUsIDI0NCwgMTk0LCAwLjY4KSxcbiAgICAgICAgICAwIDEuNXJlbSAzcmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3ctc3Ryb25nKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMmRlZykgc2NhbGUoMS4wMyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1kcmFnLXByZXZpZXcgdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1kcmFnLXBsYWNlaG9sZGVyLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC5jZGstZHJhZy1wbGFjZWhvbGRlciB7XG4gICAgICAgIHdpZHRoOiBjbGFtcCg0LjlyZW0sIDE3dncsIDcuMXJlbSk7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4xMik7XG4gICAgICAgIG9wYWNpdHk6IDAuMjI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2xvdC5jZGstZHJvcC1saXN0LWRyYWdnaW5nLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1kcm9wLXRhcmdldC5jZGstZHJvcC1saXN0LWRyYWdnaW5nIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1yaW5nKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zbG90LmNkay1kcm9wLWxpc3QtcmVjZWl2aW5nLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1kcm9wLXRhcmdldC5jZGstZHJvcC1saXN0LXJlY2VpdmluZyB7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgaW5zZXQgMCAwIDAgMC4xOHJlbSByZ2JhKDIxNCwgMTYyLCAyOSwgMC4zNCksXG4gICAgICAgICAgMCAxcmVtIDEuOXJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93LXN0cm9uZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1leWUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgIGJvdHRvbTogMC4zOHJlbTtcbiAgICAgICAgd2lkdGg6IDIuMTVyZW07XG4gICAgICAgIGhlaWdodDogMS41NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cykgNTIlLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTQpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNTVyZW0gMS4xcmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xNCk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgLTAuMnJlbSkgc2NhbGUoMC45Mik7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgb3BhY2l0eSAxNDBtcyBlYXNlLFxuICAgICAgICAgIHRyYW5zZm9ybSAxNDBtcyBlYXNlLFxuICAgICAgICAgIGJvcmRlci1jb2xvciAxNDBtcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZXllOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB3aWR0aDogMS4xcmVtO1xuICAgICAgICBoZWlnaHQ6IDEuMXJlbTtcbiAgICAgICAgYm9yZGVyOiAwLjEycmVtIHNvbGlkIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDgyJSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTQpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZXllOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHdpZHRoOiAwLjQycmVtO1xuICAgICAgICBoZWlnaHQ6IDAuNDJyZW07XG4gICAgICAgIGJvcmRlcjogMC4wOXJlbSBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDM1JSAzMiUsICNmZmZmZmYgMCAwLjA2cmVtLCB0cmFuc3BhcmVudCAwLjA3cmVtKSxcbiAgICAgICAgICB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcDpob3ZlciAuY2hyaXN0aWFuaXR5LWNhcmQtZXllLFxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcC5pcy1zZWxlY3RlZCAuY2hyaXN0aWFuaXR5LWNhcmQtZXllLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWV5ZTpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAwKSBzY2FsZSgxKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1kcm9wLXRhcmdldCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNS45cmVtKTtcbiAgICAgICAgaGVpZ2h0OiA3LjFyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDcuMXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjRyZW07XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgYm9yZGVyLWNvbG9yIDE2MG1zIGVhc2UsXG4gICAgICAgICAgYm94LXNoYWRvdyAxNjBtcyBlYXNlLFxuICAgICAgICAgIGJhY2tncm91bmQgMTYwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1kcm9wLXRhcmdldC5pcy1wbGF5LXRhcmdldCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtcmluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1MCwgMjQwLCAwLjk2KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk0KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4MiUgMTQlLCByZ2JhKDI1MCwgMjA0LCAyMSwgMC4yOCkgMCAwLjdyZW0sIHRyYW5zcGFyZW50IDAuNzJyZW0pO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgMCAwIDAuMTJyZW0gcmdiYSgyMTQsIDE2MiwgMjksIDAuMjQpLFxuICAgICAgICAgIDAgMC44cmVtIDEuNTVyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXNoYWRvdyk7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LXRhcmdldC1wdWxzZSAxNDUwbXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctZHJvcC10YXJnZXQgPiAuY2RrLWRyYWctcGxhY2Vob2xkZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtLWJhY2ssXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYWNrIHtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDRyZW0sIDE0dncsIDUuN3JlbSk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0KTtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMC41NXJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjhyZW0gMS41NXJlbSByZ2JhKDM2LCA0OCwgNjgsIDAuMTQpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgLTE4JTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYmFjayk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS0tYmFjazo6YmVmb3JlLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmFjazo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNiwgNDIsIDY3LCAwLjEyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4zOHJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KSk7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDAuMTJyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgdmFyKC0tY2hyaXN0aWFuaXR5LWJhdHRsZS1jYXJkLXdpZHRoKSk7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0KTtcbiAgICAgICAgbWFyZ2luLWlubGluZTogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZCA+IHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtbWluaSA+IHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkID4gc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQgPiBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQgPiBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtbWluaSA+IHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCA+IHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQgPiBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCA+IHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlID4gc3Ryb25nIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgICAgICAgYWxpZ24tc2VsZjogZW5kO1xuICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIDAuMzVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWRmMmY3O1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItcmFjayB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDQuOHJlbSwgNi4ycmVtKSBtaW5tYXgoNXJlbSwgMWZyKSBtaW5tYXgoNC42cmVtLCA2LjJyZW0pO1xuICAgICAgICBnYXA6IDAuNjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBlbmQ7XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrLS1vcHBvbmVudCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwLjM1cmVtO1xuICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZ3JpZDtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjI1cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiAxLjdyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMThyZW0gMC40NnJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuOHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXItLW9wcG9uZW50IHtcbiAgICAgICAgdG9wOiAwLjE1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IDAuNjhyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDAuODZyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlLFxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItY29tbWFuZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlIHtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RhcnQ7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzYpO1xuICAgICAgICBmb250LXNpemU6IDAuNzRyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlLS1vcHBvbmVudCB7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItYmFkZ2Ugc3Ryb25nIHtcbiAgICAgICAgbWF4LXdpZHRoOiA2LjVyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWF2YXRhciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxLjg1cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuODVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgZm9udC1zaXplOiAwLjc2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC45cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xNik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLXpvbmUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIDYuMnJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1taW5pLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBtaW4taGVpZ2h0OiA0LjlyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNDhyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvIGF1dG87XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUge1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDIuNnJlbSwgMWZyKSBhdXRvO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoO1xuICAgICAgICBnYXA6IDAuMzJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1taW5pIHtcbiAgICAgICAgd2lkdGg6IDMuNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBpc29sYXRpb246IGlzb2xhdGU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNi4xNXJlbSk7XG4gICAgICAgIGhlaWdodDogNy4zNXJlbTtcbiAgICAgICAgbWF4LWhlaWdodDogNy4zNXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41NXJlbSAwLjQ4cmVtIDAuNDhyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZmZmZmZiwgI2Y4ZmFmYyksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyNTAsIDIwNCwgMjEsIDAuMTgpLCB0cmFuc3BhcmVudCA0MiUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWRyb3AtdGFyZ2V0IC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHNwYW46bm90KC5jaHJpc3RpYW5pdHktZW1wdHktY2FyZC1zbG90KSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgYWxpZ24tc2VsZjogZW5kO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMC4xMnJlbSAwLjI4cmVtIDA7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzIpO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDAuNzJyZW0sIDIuM3Z3LCAwLjg4cmVtKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHN0cm9uZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDAuNDJyZW07XG4gICAgICAgIGJvdHRvbTogMC40MnJlbTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgbWluLXdpZHRoOiAxLjdyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMTNyZW0gMC4zOHJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM3LCAyNDIsIDI0NywgMC45Mik7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTUwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC43NXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzbWFsbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwLjQ3cmVtO1xuICAgICAgICBsZWZ0OiAwLjQycmVtO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDIuN3JlbSk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IDAuNThyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4NTA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zbG90ID4gLmNkay1kcmFnLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxLjQycmVtO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHdpZHRoOiBjbGFtcCgyLjc1cmVtLCAxNHZ3LCAzLjU1cmVtKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSgtMmRlZyk7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwLjQycmVtIDAuOHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTQpKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjpiZWZvcmUsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGU6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxLjUycmVtO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIHdpZHRoOiBjbGFtcCgyLjc1cmVtLCAxNHZ3LCAzLjU1cmVtKTtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE2LCA0MiwgNjcsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjM1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTQpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNTAlICsgMC4yNHJlbSkpIHRyYW5zbGF0ZVkoMC4xcmVtKSByb3RhdGUoNGRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTUwJSAtIDAuMjRyZW0pKSB0cmFuc2xhdGVZKDAuMjJyZW0pIHJvdGF0ZSgtNGRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZS5pcy1lbXB0eS16b25lOjpiZWZvcmUsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUuaXMtZW1wdHktem9uZTo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkIHtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDQuNzVyZW0sIDE3dncsIDZyZW0pO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYXR0YWNrLWRyb3AtdGFyZ2V0IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcmFjay1zcGFjZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWluLWhlaWdodDogMXB4O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgdmFyKC0tY2hyaXN0aWFuaXR5LWJhdHRsZS1jYXJkLXdpZHRoKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoNC4zcmVtLCAxZnIpKTtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDYuNDVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuN3JlbSAwLjUycmVtIDAuNTVyZW07XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNiwgNDgsIDY4LCAwLjA4KTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuMzYpKSxcbiAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSB7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgaW5zZXQgMCAwIDAgOTk5cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KSxcbiAgICAgICAgICAwIDAuNDVyZW0gMXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMDYpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZC5pcy1wbGF5LXRhcmdldCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNywgOTksIDIzNSwgMC4zOCk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgaW5zZXQgMCAwIDAgOTk5cHggcmdiYSgzNywgOTksIDIzNSwgMC4wOCksXG4gICAgICAgICAgMCAwIDAgMC4xOHJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjEyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUtLWhpc3RvcnkuaGFzLW5ldy1jYXJkIHtcbiAgICAgICAgYW5pbWF0aW9uOiBjaHJpc3RpYW5pdHktaGlzdG9yeS1wdWxzZSA5MDBtcyBlYXNlLW91dCBib3RoO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGNocmlzdGlhbml0eS1oaXN0b3J5LXB1bHNlIHtcbiAgICAgICAgMCUge1xuICAgICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICBpbnNldCAwIDAgMCA5OTlweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpLFxuICAgICAgICAgICAgMCAwIDAgMCByZ2JhKDM3LCA5OSwgMjM1LCAwKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgMjglIHtcbiAgICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgaW5zZXQgMCAwIDAgOTk5cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KSxcbiAgICAgICAgICAgIDAgMCAwIDAuMjVyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4xOCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyNSk7XG4gICAgICAgIH1cblxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgaW5zZXQgMCAwIDAgOTk5cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSxcbiAgICAgICAgICAgIDAgMCAwIDAgcmdiYSgzNywgOTksIDIzNSwgMCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCB2YWwtY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMC42MnJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB3aWR0aDogY2xhbXAoMy4zcmVtLCAxNnZ3LCA0LjM1cmVtKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSgtMmRlZyk7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwLjM1cmVtIDAuNzVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjEyKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLS1kZWNrIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoM2RlZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Bhbjpub3QoLmNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3QpLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzcGFuOm5vdCguY2hyaXN0aWFuaXR5LWVtcHR5LWNhcmQtc2xvdCkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMS41NXJlbSk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuODQpO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDAuNzZyZW0sIDIuNXZ3LCAwLjkycmVtKTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzdHJvbmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwLjQ1cmVtO1xuICAgICAgICBib3R0b206IDAuNDVyZW07XG4gICAgICAgIHotaW5kZXg6IDQ7XG4gICAgICAgIG1pbi13aWR0aDogMS42NXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4xMnJlbSAwLjRyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzNywgMjQyLCAyNDcsIDAuOTIpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDk1MDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuNzVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjEyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBlbSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgcGFkZGluZzogMC4xMnJlbSAwLjM4cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNywgOTksIDIzNSwgMC4xMik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgICBmb250LXNpemU6IDAuNjhyZW07XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMC43MnJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IGNsYW1wKDMuM3JlbSwgMTZ2dywgNC4zNXJlbSk7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0KTtcbiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoMTYsIDQyLCA2NywgMC4yMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNik7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmJlZm9yZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMC44MnJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICB3aWR0aDogY2xhbXAoMy4zcmVtLCAxNnZ3LCA0LjM1cmVtKTtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE2LCA0MiwgNjcsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjM1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTQpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNTAlICsgMC4yMnJlbSkpIHJvdGF0ZSg0ZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYmFjayk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC01MCUgLSAwLjIycmVtKSkgdHJhbnNsYXRlWSgwLjE2cmVtKSByb3RhdGUoLTNkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZS5pcy1lbXB0eS16b25lOjpiZWZvcmUsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZS5pcy1lbXB0eS16b25lOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbCB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgei1pbmRleDogMTAwMjA7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICAgICAgICBnYXA6IDAuNTVyZW07XG4gICAgICAgIHdpZHRoOiBtaW4oNTZyZW0sIGNhbGMoMTAwdncgLSAxLjI1cmVtKSk7XG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwZHZoIC0gNC4yNXJlbSk7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICAgICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGw6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsLmlzLWhpc3RvcnktcHJldmlldyB7XG4gICAgICAgIHdpZHRoOiBtaW4oNTZyZW0sIGNhbGMoMTAwdncgLSAxLjI1cmVtKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy10b3BiYXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAwLjY1cmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAyLjA1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctcG9zaXRpb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgbWluLXdpZHRoOiAzLjE1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNjJyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzIpO1xuICAgICAgICBmb250LXNpemU6IDAuNzZyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC40NXJlbSAxcmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IG1pbigxNy41cmVtLCBjYWxjKDUyZHZoIC0gM3JlbSksIGNhbGMoMTAwdncgLSA3cmVtKSk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAyLjJyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdsb3cpO1xuICAgICAgICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTpcbiAgICAgICAgICB0cmFuc2xhdGUodmFyKC0tcHJldmlldy1zaGlmdC14LCAwcHgpLCB2YXIoLS1wcmV2aWV3LXNoaWZ0LXksIDBweCkpXG4gICAgICAgICAgcGVyc3BlY3RpdmUoNDhyZW0pXG4gICAgICAgICAgcm90YXRlWCh2YXIoLS1wcmV2aWV3LXJvdGF0ZS14LCA1ZGVnKSlcbiAgICAgICAgICByb3RhdGVZKHZhcigtLXByZXZpZXctcm90YXRlLXksIC01ZGVnKSk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA5MG1zIGVhc2Utb3V0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDEzcmVtLCAxN3JlbSk7XG4gICAgICAgIGdhcDogMXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXN0YWdlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCAzMXJlbSk7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IDQuNHJlbTtcbiAgICAgICAgcGVyc3BlY3RpdmU6IDUycmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctc3RhZ2U6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAxMCUgMi4zNXJlbTtcbiAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjYpLCB0cmFuc3BhcmVudCA1OCUpLFxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMSksIHRyYW5zcGFyZW50KTtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWdob3N0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB3aWR0aDogbWluKDEzcmVtLCBjYWxjKDQyZHZoIC0gM3JlbSksIDM0dncpO1xuICAgICAgICBvcGFjaXR5OiAwLjM0O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgZmlsdGVyOiBibHVyKDAuMDJyZW0pIHNhdHVyYXRlKDAuOSk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAzNjBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjg0LCAwLjIyLCAxKSwgb3BhY2l0eSAzNjBtcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctZ2hvc3QtLXByZXZpb3VzIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04NiUpIHJvdGF0ZVkoMjJkZWcpIHJvdGF0ZSgtNGRlZykgc2NhbGUoMC44KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWdob3N0LS1uZXh0IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDg2JSkgcm90YXRlWSgtMjJkZWcpIHJvdGF0ZSg0ZGVnKSBzY2FsZSgwLjgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGwuaXMtc2xpZGluZy1wcmV2aW91cyAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQge1xuICAgICAgICBhbmltYXRpb246IGNocmlzdGlhbml0eS1wcmV2aWV3LXNsaWRlLXByZXZpb3VzIDM2MG1zIGN1YmljLWJlemllcigwLjIsIDAuODQsIDAuMjIsIDEpIGJvdGg7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbC5pcy1zbGlkaW5nLW5leHQgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkIHtcbiAgICAgICAgYW5pbWF0aW9uOiBjaHJpc3RpYW5pdHktcHJldmlldy1zbGlkZS1uZXh0IDM2MG1zIGN1YmljLWJlemllcigwLjIsIDAuODQsIDAuMjIsIDEpIGJvdGg7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LXByZXZpZXctc2xpZGUtcHJldmlvdXMge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKHZhcigtLXByZXZpZXctc2hpZnQteCwgMHB4KSAtIDQuMnJlbSksIHZhcigtLXByZXZpZXctc2hpZnQteSwgMHB4KSkgcGVyc3BlY3RpdmUoNDhyZW0pIHJvdGF0ZVgodmFyKC0tcHJldmlldy1yb3RhdGUteCwgNWRlZykpIHJvdGF0ZVkoY2FsYyh2YXIoLS1wcmV2aWV3LXJvdGF0ZS15LCAtNWRlZykgKyAxNmRlZykpIHNjYWxlKDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICA1OCUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXByZXZpZXctc2hpZnQteCwgMHB4KSwgdmFyKC0tcHJldmlldy1zaGlmdC15LCAwcHgpKSBwZXJzcGVjdGl2ZSg0OHJlbSkgcm90YXRlWCh2YXIoLS1wcmV2aWV3LXJvdGF0ZS14LCA1ZGVnKSkgcm90YXRlWSh2YXIoLS1wcmV2aWV3LXJvdGF0ZS15LCAtNWRlZykpIHNjYWxlKDEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LXByZXZpZXctc2xpZGUtbmV4dCB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGModmFyKC0tcHJldmlldy1zaGlmdC14LCAwcHgpICsgNC4ycmVtKSwgdmFyKC0tcHJldmlldy1zaGlmdC15LCAwcHgpKSBwZXJzcGVjdGl2ZSg0OHJlbSkgcm90YXRlWCh2YXIoLS1wcmV2aWV3LXJvdGF0ZS14LCA1ZGVnKSkgcm90YXRlWShjYWxjKHZhcigtLXByZXZpZXctcm90YXRlLXksIC01ZGVnKSAtIDE2ZGVnKSkgc2NhbGUoMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgIDU4JSB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tcHJldmlldy1zaGlmdC14LCAwcHgpLCB2YXIoLS1wcmV2aWV3LXNoaWZ0LXksIDBweCkpIHBlcnNwZWN0aXZlKDQ4cmVtKSByb3RhdGVYKHZhcigtLXByZXZpZXctcm90YXRlLXgsIDVkZWcpKSByb3RhdGVZKHZhcigtLXByZXZpZXctcm90YXRlLXksIC01ZGVnKSkgc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXNpZGUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICAgICAgICBnYXA6IDAuNDJyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWhlYWRlciBzdHJvbmcge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogY2xpcDtcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuMjVyZW0sIDV2dywgMS44NXJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC10eXBlLWljb24sXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1jb3N0IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXR5cGUtaWNvbiB7XG4gICAgICAgIHdpZHRoOiAxLjZyZW07XG4gICAgICAgIGhlaWdodDogMS42cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDUwJSwgcmdiYSg5NSwgMTExLCA0MiwgMC43MikgMCAwLjIycmVtLCB0cmFuc3BhcmVudCAwLjI0cmVtKSxcbiAgICAgICAgICByZ2JhKDM2LCA0OCwgNjgsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXR5cGUtaWNvbiBpbWcge1xuICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1jb3N0IHtcbiAgICAgICAgbWluLXdpZHRoOiAyLjFyZW07XG4gICAgICAgIGhlaWdodDogMi4xcmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuMzZyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmQ5MWE7XG4gICAgICAgIGNvbG9yOiAjMjQzMDQ0O1xuICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMC4xMnJlbSAwIHJnYmEoODIsIDY0LCAyOCwgMC4xOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWFydCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogOXJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC40OHJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDk1LCAxMTEsIDQyLCAwLjIpLCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4xNikpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDI1JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc2KSwgdHJhbnNwYXJlbnQgNDIlKSxcbiAgICAgICAgICAjZGJlN2VmO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgzNiwgNDgsIDY4LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtYXJ0IGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1hcnQgPiBzcGFuIHtcbiAgICAgICAgbWF4LXdpZHRoOiA4MCU7XG4gICAgICAgIGNvbG9yOiByZ2JhKDM2LCA0OCwgNjgsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuMXJlbSwgNXZ3LCAxLjhyZW0pO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1hcnQgc21hbGwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDAuNTVyZW07XG4gICAgICAgIG1pbi13aWR0aDogNXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4xNnJlbSAwLjQ4cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweCAwIDAgOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjNyZW0gMC44cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xMik7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzQpO1xuICAgICAgICBmb250LXNpemU6IDAuNjhyZW07XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC12ZXJzZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4zMnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtdmVyc2UgcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtdmVyc2Uge1xuICAgICAgICBjb2xvcjogIzE3MTkyMztcbiAgICAgICAgZm9udC1mYW1pbHk6IEdlb3JnaWEsICdUaW1lcyBOZXcgUm9tYW4nLCBzZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjcycmVtLCAyLjd2dywgMC44NnJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXZlcnNlIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RhcnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDdyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNnJlbSAwLjdyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNDVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgNzIlLCByZ2JhKDM2LCA0OCwgNjgsIDAuMDcpLCB0cmFuc3BhcmVudCAzNCUpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXN0YXRzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAxLjM1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1zdGF0cyBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1zdGF0cyAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1waXBzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWdyaWQ7XG4gICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgICAgIGdhcDogMC4ycmVtO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtZWZmZWN0ID4gZGl2Omxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4xMnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtZWZmZWN0ID4gZGl2Omxhc3Qtb2YtdHlwZSBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCBwIHtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjc4cmVtLCAyLjl2dywgMC45MnJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXJhcml0eSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwLjYycmVtO1xuICAgICAgICByaWdodDogMC42MnJlbTtcbiAgICAgICAgd2lkdGg6IDAuNDZyZW07XG4gICAgICAgIGhlaWdodDogMC40NnJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMnJlbTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1yYXJpdHkuaXMtbm9ybWFsIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2QxZDVkYjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtcmFyaXR5LmlzLXVuY29tbW9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzIyYzU1ZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtcmFyaXR5LmlzLXJhcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjM2I4MmY2O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1yYXJpdHkuaXMtbGVnZW5kYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZDogI2VhYjMwODtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gbWlubWF4KDAsIDFmcikgYXV0bztcbiAgICAgICAgZ2FwOiAwLjM0cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjY4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjU4cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtZm9vdGVyIHNwYW4ge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtY2xvc2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC42cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc4KTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNDVyZW0gMXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB6LWluZGV4OiA3O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMi4zNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAyLjM1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjI2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDA7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjc1cmVtIDEuNHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTQpLFxuICAgICAgICAgIGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDQpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYtLXByZXZpb3VzIHtcbiAgICAgICAgbGVmdDogMC42cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2LS1uZXh0IHtcbiAgICAgICAgcmlnaHQ6IDAuNnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWJhY2tkcm9wLFxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWJhY2tkcm9wLFxuICAgICAgLmNocmlzdGlhbml0eS1pbmZvLWJhY2tkcm9wIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNjQpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYmFja2Ryb3Age1xuICAgICAgICB6LWluZGV4OiAxMDAxMDtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDAuMTJyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWluZm8tYmFja2Ryb3Age1xuICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1pbmZvLXBhbmVsIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiA1MTtcbiAgICAgICAgd2lkdGg6IG1pbigzMXJlbSwgY2FsYygxMDB2dyAtIDEuMjVyZW0pKTtcbiAgICAgICAgbWF4LWhlaWdodDogbWluKDM0cmVtLCBjYWxjKDEwMHZoIC0gMnJlbSkpO1xuICAgICAgICBwYWRkaW5nLXRvcDogMi4zNXJlbTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaW5mby1jbG9zZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMC4xNXJlbTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGdhcDogMC44NXJlbTtcbiAgICAgICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC45cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NyksIHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45NykpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgOCUgMCUsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMSksIHRyYW5zcGFyZW50IDM4JSk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAxLjJyZW0gMi42cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4yNCksXG4gICAgICAgICAgaW5zZXQgMCAwIDAgMC4yNXJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZS1pY29uIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDIuMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAyLjFyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWZvY3VzKSAxMiUsICNmZmZmZmYpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWZvY3VzKTtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cykgMjQlLCB0cmFuc3BhcmVudCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHNtYWxsLFxuICAgICAgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIGgyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzbWFsbCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjIpO1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIGgyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMC4xOHJlbTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjVyZW0sIDd2dywgMi4ycmVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHN0cm9uZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNTVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjJyZW0gMC41NXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlZGYyZjc7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45MnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNzVyZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzgpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgdWwge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuNDVyZW07XG4gICAgICAgIG1hcmdpbjogMC44cmVtIDAgMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjA1cmVtO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCA+IHNtYWxsLFxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkID4gc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjQpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQgPiBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuNTVyZW0sIDh2dywgMi4zNXJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQgPiBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDQ7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgZ2FwOiAwLjY1cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICAgIG1heC1oZWlnaHQ6IG1pbigxOHJlbSwgNTRkdmgpO1xuICAgICAgICBwYWRkaW5nOiAwLjY4cmVtIDAuNzZyZW07XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODgpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuODIpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDglIDAlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjA3KSwgdHJhbnNwYXJlbnQgNDQlKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjU1cmVtIDEuMnJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICAgICAgICBnYXA6IDAuNXJlbTtcbiAgICAgICAgbWF4LWhlaWdodDogbWluKDEzcmVtLCAzMGR2aCk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNzJyZW0gMC43OHJlbSAwLjc4cmVtO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTcpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTcpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDglIDAlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjEpLCB0cmFuc3BhcmVudCA0NCUpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNzVyZW0gMS42cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMtaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDAuN3JlbTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLWhlYWRlciA+IGRpdiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4xcmVtO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgc21hbGwsXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLWhlYWRlciBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktY2FyZCBzdHJvbmcge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgc21hbGwge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjU4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjY4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLWhlYWRlciBzcGFuIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktbmF2IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktbmF2IGJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxLjg1cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuODVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg4KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cyk7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDk1MDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjg1cmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTQpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAwLjM0cmVtO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnM6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyBidXR0b24ge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAxLjg1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNThyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzcsIDI0MiwgMjQ3LCAwLjgyKTtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43Nik7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLmlzLXNlbGVjdGVkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjMyKTtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cykgMTQlLCAjZmZmZmZmKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGdhcDogMC4zNHJlbTtcbiAgICAgICAgcGFkZGluZzogMC41NXJlbSAwLjYycmVtO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYycmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHN0cm9uZyB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuOSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDk1MDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXNjcm9sbCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgcCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzQpO1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWZvb3RlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXVzZS1hYmlsaXR5IHtcbiAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjcycmVtO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNTVyZW0gMS4xcmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMjIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctdXNlLWFiaWxpdHk6ZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzYpO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjUpO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHNtYWxsLFxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgc21hbGwge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjU4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjY4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHN0cm9uZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjA4cmVtO1xuICAgICAgICBmb250LXNpemU6IDAuOTJyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuMjJyZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzQpO1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjMyO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNTJyZW0pIHtcbiAgICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsIHtcbiAgICAgICAgICB3aWR0aDogbWluKDU4cmVtLCBjYWxjKDEwMHZ3IC0gM3JlbSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgd2lkdGg6IG1pbigyMnJlbSwgY2FsYyg2N2R2aCAtIDUuODVyZW0pLCAyNHJlbSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDUxLjk5cmVtKSB7XG4gICAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbCB7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgZ2FwOiAwLjRyZW07XG4gICAgICAgICAgd2lkdGg6IG1pbihjYWxjKDEwMHZ3IC0gMC45cmVtKSwgMjRyZW0pO1xuICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwZHZoIC0gMS4xNXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctY29udGVudCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1zaWRlIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXN0YWdlIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBwYWRkaW5nLWlubGluZTogMy41NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCB7XG4gICAgICAgICAgd2lkdGg6IG1pbigxNC40cmVtLCBjYWxjKDU4ZHZoIC0gOC4ycmVtKSwgY2FsYygxMDB2dyAtIDhyZW0pKTtcbiAgICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1naG9zdCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IG1pbig3LjFyZW0sIGNhbGMoMzBkdmggLSA0cmVtKSwgMjR2dyk7XG4gICAgICAgICAgb3BhY2l0eTogMC4yNDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1naG9zdC0tcHJldmlvdXMge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTE4JSkgcm90YXRlWSgyNGRlZykgcm90YXRlKC01ZGVnKSBzY2FsZSgwLjc4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1naG9zdC0tbmV4dCB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDExOCUpIHJvdGF0ZVkoLTI0ZGVnKSByb3RhdGUoNWRlZykgc2NhbGUoMC43OCk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtY2xvc2Uge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOXJlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwIDAuNThyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAwLjcycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdiB7XG4gICAgICAgICAgd2lkdGg6IDIuMnJlbTtcbiAgICAgICAgICBoZWlnaHQ6IDIuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYtLXByZXZpb3VzIHtcbiAgICAgICAgICBsZWZ0OiAwLjM1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdi0tbmV4dCB7XG4gICAgICAgICAgcmlnaHQ6IDAuMzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiBtaW4oOS42cmVtLCAyN2R2aCk7XG4gICAgICAgICAgcGFkZGluZzogMC42MnJlbSAwLjdyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIHtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4wMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQge1xuICAgICAgICAgIHBhZGRpbmc6IDAuNDhyZW0gMC41NHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgcCB7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXVzZS1hYmlsaXR5IHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxLjk1cmVtO1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwLjY4cmVtO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1iYWNrZHJvcCB7XG4gICAgICAgIHotaW5kZXg6IDQwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktYmFja2Ryb3Age1xuICAgICAgICB6LWluZGV4OiAxMDAwMDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjcyKTtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDAuMTRyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgYm90dG9tOiBtYXgoMC41cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHotaW5kZXg6IDQxO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGdhcDogMC43NXJlbTtcbiAgICAgICAgd2lkdGg6IG1pbihjYWxjKDEwMHZ3IC0gMXJlbSksIDQ0cmVtKTtcbiAgICAgICAgbWluLWhlaWdodDogbWluKDE4cmVtLCBjYWxjKDEwMGR2aCAtIDFyZW0pKTtcbiAgICAgICAgbWF4LWhlaWdodDogbWluKDMycmVtLCBjYWxjKDEwMGR2aCAtIDJyZW0pKTtcbiAgICAgICAgcGFkZGluZzogMC44cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTgpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDEuNXJlbSA0cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4yOCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBoZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogMC43NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBoMixcbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBoZWFkZXIgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMS44NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjg1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2VkZjJmNztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1kaWFsb2ctYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMC40NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2Uge1xuICAgICAgICBtaW4taGVpZ2h0OiAxLjg1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNjJyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc4KTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC44cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4wOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoNS40cmVtLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAwLjU1cmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIHNjcm9sbGJhci1jb2xvcjogcmdiYSgzNiwgNDgsIDY4LCAwLjMyKSByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNzIpO1xuICAgICAgICBzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGU7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjFyZW0gMC4yNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiAwLjY1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43Mik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBib3JkZXI6IDAuMTRyZW0gc29saWQgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzYsIDQ4LCA2OCwgMC4zMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLWRyYXdlciB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICB3aWR0aDogbWluKGNhbGMoMTAwdncgLSAxcmVtKSwgNDhyZW0pO1xuICAgICAgICBtaW4taGVpZ2h0OiBtaW4oMjByZW0sIGNhbGMoMTAwZHZoIC0gMXJlbSkpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBtaW4oMzRyZW0sIGNhbGMoMTAwZHZoIC0gMnJlbSkpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICBnYXA6IDAuNjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICAgICAgcGFkZGluZzogMC43MnJlbSAwLjhyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuN3JlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTYpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTYpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDglIDAlLCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4xMiksIHRyYW5zcGFyZW50IDQyJSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLW5vdGUgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43Nik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC42cmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIHNjcm9sbGJhci1jb2xvcjogcmdiYSgzNiwgNDgsIDY4LCAwLjMyKSByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNzIpO1xuICAgICAgICBzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGU7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCg1LjRyZW0sIDYuNXJlbSkgbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMC40NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cuaXMtZXhoYXVzdGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC42ODtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG8gYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwMDAxO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwZHZ3O1xuICAgICAgICBoZWlnaHQ6IDEwMGR2aDtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDBkdmg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMGR2aDtcbiAgICAgICAgcGFkZGluZzpcbiAgICAgICAgICBtYXgoMXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC10b3ApKVxuICAgICAgICAgIG1heCgxcmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSlcbiAgICAgICAgICBtYXgoMXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKVxuICAgICAgICAgIG1heCgxcmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45OSksIHJnYmEoMjM5LCAyNDYsIDI1NSwgMC45OSkpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMTYlIDAlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjEyKSwgdHJhbnNwYXJlbnQgNDIlKTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyIGhlYWRlciA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4xNXJlbTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyIGhlYWRlciBwIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoOC41cmVtLCAxM3JlbSk7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMjVyZW07XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGlucHV0LFxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIHNlbGVjdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIuMzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC43NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1pbmspO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWVkaXRpb24tc3RyaXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDAuNDVyZW07XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWVkaXRpb24tc3RyaXAgYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMC40NXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMi4zNXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjc1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4zOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtcGFyY2htZW50KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1pbmspO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwIGltZyB7XG4gICAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICAgIGhlaWdodDogMS4ycmVtO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDUuOXJlbSwgN3JlbSkpO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RhcnQ7XG4gICAgICAgIGdhcDogMC43MnJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBzY3JvbGxiYXItY29sb3I6IHJnYmEoMzYsIDQ4LCA2OCwgMC4zMikgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcyKTtcbiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlO1xuICAgICAgICBwYWRkaW5nOiAwLjM1cmVtIDAuMTVyZW0gMC42NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgd2lkdGg6IDAuNjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNzIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBib3JkZXI6IDAuMTRyZW0gc29saWQgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzYsIDQ4LCA2OCwgMC4zMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIG1pbm1heCgwLCAxZnIpIGF1dG87XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgICAgIGdhcDogMC4yNnJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDcuN3JlbTtcbiAgICAgICAgcGFkZGluZzogMC41OHJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTYpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTYpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDc4JSAxNCUsIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjc4KSAwIDAuNDJyZW0sIHRyYW5zcGFyZW50IDAuNDRyZW0pO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNDVyZW0gMXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBzbWFsbCB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC42MnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgc3Ryb25nIHtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIGFsaWduLXNlbGY6IHN0YXJ0O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuMXJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44OHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHNwYW4ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwLjQycmVtO1xuICAgICAgICBib3R0b206IDAuNDJyZW07XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMS41NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjU1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuMjhyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWRmMmY3O1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBlbSB7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAxLjlyZW0pO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjYyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjY0cmVtO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvdyBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgcCB7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42NCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgPiBkaXYge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvdyA+IGRpdiBwIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgPiBkaXYgYnV0dG9uIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgICAgbWluLWhlaWdodDogMi4ycmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuN3JlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNiwgNDIsIDY3LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTAyYTQzO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgPiBkaXYgYnV0dG9uOmRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2UyZThmMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41OCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkIC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNi40cmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQgLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24ge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA3cmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24ge1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIDUuOHJlbSk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgYnV0dG9uOmRpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgb3BhY2l0eTogMC41NTtcbiAgICAgIH1cblxuICAgICAgYnV0dG9uOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiAwLjE4NzVyZW0gc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cykgMjQlLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyayksXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkge1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1pbms6IHZhcigtLWlvbi10ZXh0LWNvbG9yLCAjZTVlZGY4KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtc3VyZmFjZTogIzExMTgyNztcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtcGFyY2htZW50OiAjMTMyMjNhO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1vbGl2ZTogIzkzYzVmZDtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZDogIzYwYTVmYTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1zb2Z0OiByZ2JhKDk2LCAxNjUsIDI1MCwgMC4xOCk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtcmluZzogcmdiYSgxNDcsIDE5NywgMjUzLCAwLjQyKTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZ2xvdzogcmdiYSg5NiwgMTY1LCAyNTAsIDAuMjQpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1czogIzkzYzVmZDtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMzQpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3ctc3Ryb25nOiByZ2JhKDAsIDAsIDAsIDAuNDgpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jYXJkLWJhY2s6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxNDcsIDE5NywgMjUzLCAwLjIpLCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpKSxcbiAgICAgICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMWUzYTVmIDAgMC4zM3JlbSwgIzBmMTcyYSAwLjMzcmVtIDAuNjZyZW0pO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jYXJkLWJhY2stc29mdDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDE0NywgMTk3LCAyNTMsIDAuMTUpLCByZ2JhKDE1LCAyMywgNDIsIDAuMDYpKSxcbiAgICAgICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMWUzYTVmIDAgMC4zM3JlbSwgIzBmMTcyYSAwLjMzcmVtIDAuNjZyZW0pO1xuICAgICAgICBjb2xvci1zY2hlbWU6IGRhcms7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1vcGVuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LW9wZW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LW9wZW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LW9wZW4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1vcGVuLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zZWNvbmRhcnktYWN0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zZWNvbmRhcnktYWN0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc2Vjb25kYXJ5LWFjdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb24sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc2Vjb25kYXJ5LWFjdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwIGJ1dHRvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwIGJ1dHRvbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZWRpdGlvbi1zdHJpcCBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWVkaXRpb24tc3RyaXAgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZWRpdGlvbi1zdHJpcCBidXR0b24ge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ3LCAxOTcsIDI1MywgMC4zNik7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgzMCwgNTgsIDk1LCAwLjgyKSwgcmdiYSgxNSwgMjMsIDQyLCAwLjg4KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAyMCUgMCUsIHJnYmEoOTYsIDE2NSwgMjUwLCAwLjE2KSwgdHJhbnNwYXJlbnQgNDIlKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1pbmspO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNTVyZW0gMS4ycmVtIHJnYmEoMCwgMCwgMCwgMC4yNCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc3BsYXNoLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zcGxhc2gsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zcGxhc2gsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zcGxhc2gsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc3BsYXNoIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0NywgMTk3LCAyNTMsIDAuMjIpO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDE4JSwgcmdiYSg5NiwgMTY1LCAyNTAsIDAuMTYpLCB0cmFuc3BhcmVudCAyMnJlbSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxNSwgMjMsIDQyLCAwLjg4KSwgcmdiYSg3LCAxNywgMzEsIDAuOTcpKSxcbiAgICAgICAgICB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrLXNvZnQpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDEuMnJlbSAzLjJyZW0gcmdiYSgwLCAwLCAwLCAwLjI4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIGFydGljbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBhcnRpY2xlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBhcnRpY2xlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fc3RhdHVzIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19zdGF0dXMgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19zdGF0dXMgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19zdGF0dXMgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1zdGFydF9fc3RhdHVzIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlID4gc3BhbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNjgpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNzVyZW0gMS43cmVtIHJnYmEoMCwgMCwgMCwgMC4yMik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc3BsYXNoIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNwbGFzaCBwLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3BsYXNoIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zcGxhc2ggcCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1zcGxhc2ggcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NvcHkgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NvcHkgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jb3B5IHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY29weSBwLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jb3B5IHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oZWFkZXIgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGVhZGVyIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGVhZGVyIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzcGFuIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43NCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktdHVybixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktdHVybixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXR1cm4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS10dXJuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXR1cm4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWxlYWRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktbGVhZGVyLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktbGVhZGVyLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktbGVhZGVyLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWxlYWRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3MsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3MsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3MsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oaWRkZW4taGFuZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlkZGVuLWhhbmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaWRkZW4taGFuZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpZGRlbi1oYW5kLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWhpZGRlbi1oYW5kLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXBpbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZGVjayxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZGVjayxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWRlY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1kZWNrLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWRlY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYWNlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wbGFjZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYWNlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcGxhY2UsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcGxhY2UsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWFjdGlvbnMsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWFjdGlvbnMsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1hY3Rpb25zLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktYWN0aW9ucyxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1hY3Rpb25zLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnksXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGlzdG9yeSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjE4KTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjgyKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS10dXJuLmlzLW93bi10dXJuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS10dXJuLmlzLW93bi10dXJuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktdHVybi5pcy1vd24tdHVybixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXR1cm4uaXMtb3duLXR1cm4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktdHVybi5pcy1vd24tdHVybiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg0NSwgMjEyLCAxOTEsIDAuMzYpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIwLCA4MywgNzYsIDAuMzYpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXRhYmxlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS10YWJsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXRhYmxlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktdGFibGUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktdGFibGUge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMTAyMzNkLCAjMGIxNzI4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcGxheWVyLXNpZGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYXllci1zaWRlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXBsYXllci1zaWRlIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjM0KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktYmF0dGxlLXpvbmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjU4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZS5pcy1wbGFjaW5nLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLmlzLXBsYWNpbmctY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLmlzLXBsYWNpbmctY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLmlzLXBsYWNpbmctY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZS5pcy1wbGFjaW5nLWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMzAsIDU4LCA5NSwgMC44MiksIHJnYmEoMTUsIDIzLCA0MiwgMC43MikpLFxuICAgICAgICAgIHJnYmEoMTUsIDIzLCA0MiwgMC41OCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zbG90LFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc2xvdCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1zbG90IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMjQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNTQpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0LFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQge1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgzNywgOTksIDIzNSwgMC4yNCksIHJnYmEoMTUsIDIzLCA0MiwgMC43OCkpLFxuICAgICAgICAgIHJnYmEoMTUsIDIzLCA0MiwgMC43NCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldCBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1jYXJkIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktY2FyZCBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktY2FyZCBzdHJvbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDMwLCA0MSwgNTksIDAuOTIpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjI0KTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE3LCAyNCwgMzksIDAuOTYpLCByZ2JhKDE1LCAyMywgNDIsIDAuOTQpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDE0JSAwJSwgcmdiYSg5NiwgMTY1LCAyNTAsIDAuMTIpLCB0cmFuc3BhcmVudCA0MiUpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjU1cmVtIDEuMjVyZW0gcmdiYSgwLCAwLCAwLCAwLjI4KSxcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjEycmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMyk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wbGF5ZXItYmFkZ2UsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wbGF5ZXItYmFkZ2Uge1xuICAgICAgICBjb2xvcjogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjc4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc21hbGwge1xuICAgICAgICBjb2xvcjogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjYyKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC44OCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuOHJlbSByZ2JhKDAsIDAsIDAsIDAuMjgpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNyk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YmVmb3JlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjpiZWZvcmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjpiZWZvcmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjpiZWZvcmUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YmVmb3JlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmJlZm9yZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjpiZWZvcmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmJlZm9yZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YmVmb3JlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC45Mik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjg1cmVtIHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YWZ0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGU6OmFmdGVyLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YWZ0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjphZnRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjphZnRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjphZnRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjphZnRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YWZ0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmFmdGVyLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4yMik7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWJhY2spO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC44NXJlbSByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWVuZC10dXJuOmRpc2FibGVkLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1lbmQtdHVybjpkaXNhYmxlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWVuZC10dXJuOmRpc2FibGVkLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZW5kLXR1cm46ZGlzYWJsZWQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZW5kLXR1cm46ZGlzYWJsZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4xNik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC40Nik7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNDIpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlcixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjE4KTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE1LCAyMywgNDIsIDAuOTYpLCByZ2JhKDE3LCAyNCwgMzksIDAuOTYpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDglIDAlLCByZ2JhKDk2LCAxNjUsIDI1MCwgMC4xMiksIHRyYW5zcGFyZW50IDQwJSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMS41cmVtIDRyZW0gcmdiYSgwLCAwLCAwLCAwLjQyKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWRpYWxvZy1jbG9zZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWRpYWxvZy1jbG9zZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWRpYWxvZy1jbG9zZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWNsb3NlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1jbG9zZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWNsb3NlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXBvc2l0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXBvc2l0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1wb3NpdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcG9zaXRpb24sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1wb3NpdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2LFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LW5hdiBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1uYXYgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LW5hdiBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktbmF2IGJ1dHRvbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktbmF2IGJ1dHRvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMjIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuOTQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjhyZW0gcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIGJ1dHRvbi5pcy1zZWxlY3RlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLmlzLXNlbGVjdGVkLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLmlzLXNlbGVjdGVkLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLmlzLXNlbGVjdGVkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIGJ1dHRvbi5pcy1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg5NiwgMTY1LCAyNTAsIDAuMzgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjIyKTtcbiAgICAgICAgY29sb3I6IHJnYmEoMjE5LCAyMzQsIDI1NCwgMC45NCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy11c2UtYWJpbGl0eTpkaXNhYmxlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy11c2UtYWJpbGl0eTpkaXNhYmxlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctdXNlLWFiaWxpdHk6ZGlzYWJsZWQsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXVzZS1hYmlsaXR5OmRpc2FibGVkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctdXNlLWFiaWxpdHk6ZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDUxLCA2NSwgODUsIDAuNzgpO1xuICAgICAgICBjb2xvcjogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjQ4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMTYpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNDIpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMtaGVhZGVyIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLWhlYWRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMtaGVhZGVyIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcy1oZWFkZXIgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcy1oZWFkZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuODIpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIGhlYWRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBoZWFkZXIgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIGhlYWRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgaGVhZGVyIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgaGVhZGVyIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc3Ryb25nIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzMCwgNDEsIDU5LCAwLjkyKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyIGhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciBoZWFkZXIgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyIGhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXIgaGVhZGVyIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXIgaGVhZGVyIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgbGFiZWwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgbGFiZWwsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGxhYmVsLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBsYWJlbCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGxhYmVsIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC42OCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHVsLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgdWwsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgdWwsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgdWwsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHVsLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyBwLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSBwIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC44KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGlucHV0LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGlucHV0LFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBpbnB1dCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgaW5wdXQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBpbnB1dCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBzZWxlY3QsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgc2VsZWN0LFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBzZWxlY3QsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIHNlbGVjdCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIHNlbGVjdCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3csXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3csXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3csXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93LFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC43OCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3QsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3QsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0LFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0LFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUge1xuICAgICAgICBzY3JvbGxiYXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC41NCkgcmdiYSgxNSwgMjMsIDQyLCAwLjg2KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUtaWNvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlLWljb24sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUtaWNvbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZS1pY29uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZS1pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg5NiwgMTY1LCAyNTAsIDAuMTYpO1xuICAgICAgICBjb2xvcjogI2JmZGJmZTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTQ3LCAxOTcsIDI1MywgMC4yMik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjg2KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTUsIDIzLCA0MiwgMC44Nik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC41NCk7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zaGVsbCB7XG4gICAgICAgICAgcGFkZGluZzogMCAwIDEwLjRyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMge1xuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICByaWdodDogbWF4KDAuNnJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgICAgIGJvdHRvbTogY2FsYyhtYXgoMC43NXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKSArIDkuN3JlbSk7XG4gICAgICAgICAgei1pbmRleDogODA7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZW5kLXR1cm4ge1xuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICBib3R0b206IGNhbGMobWF4KDAuNzVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSkgKyA5LjdyZW0pO1xuICAgICAgICAgIGxlZnQ6IGNhbGMobWF4KDAuNnJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSkgKyA1Ljk1cmVtKTtcbiAgICAgICAgICB6LWluZGV4OiA4MDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAyLjE1cmVtO1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwLjdyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMgYnV0dG9uIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAyLjE1cmVtO1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwLjdyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhlYWRlcixcbiAgICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCxcbiAgICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXJfX3N1bW1hcnkge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogbWF4KDAuNXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogbWF4KDAuNXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhlYWRlcixcbiAgICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXJfX3N1bW1hcnksXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgICAgZ2FwOiAwLjM1cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAuMzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciB7XG4gICAgICAgICAgZ2FwOiAwLjM1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIgc21hbGwge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhlYWRlci1hY3Rpb25zIHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9faGVybyB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2ZhbiB7XG4gICAgICAgICAgbWluLWhlaWdodDogMTAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2ZhbiB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICAgIHdpZHRoOiBjbGFtcCg1LjJyZW0sIDIydncsIDYuNHJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2gge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IG1pbigzMHJlbSwgY2FsYygxMDBkdmggLSA3cmVtKSk7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogbWF4KDAuNjVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1heCgwLjY1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnQge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IG1pbigzMHJlbSwgY2FsYygxMDBkdmggLSA3cmVtKSk7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCB7XG4gICAgICAgICAgbWluLXdpZHRoOiAzLjY1cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAgMC4zNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzdHJvbmcge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4wNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktdGFibGUge1xuICAgICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLXNpZGUge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgcGFkZGluZzogMC4zcmVtIDAuMjVyZW07XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktYmF0dGxlLXpvbmUge1xuICAgICAgICAgIC0tY2hyaXN0aWFuaXR5LWJhdHRsZS1jYXJkLXdpZHRoOiBtaW4oNS4ycmVtLCAxMDAlKTtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICAgICAgZ2FwOiBjbGFtcCgwLjI1cmVtLCAxLjV2dywgMC40cmVtKTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICBwYWRkaW5nLWlubGluZTogMC4yOHJlbTtcbiAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZSxcbiAgICAgICAgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSAuY2hyaXN0aWFuaXR5LXNsb3Qge1xuICAgICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNS4ycmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZjpub3QoLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmLS1vcHBvbmVudCkge1xuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB6LWluZGV4OiA1MjtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDkuNTVyZW07XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmc6XG4gICAgICAgICAgICAwLjdyZW0gbWF4KDAuMzVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKVxuICAgICAgICAgICAgbWF4KDAuNTVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSlcbiAgICAgICAgICAgIG1heCgwLjM1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyMzksIDI0NiwgMjU1LCAwKSwgcmdiYSgyMTksIDIzNCwgMjU0LCAwLjk2KSAxOCUsIHJnYmEoMjE5LCAyMzQsIDI1NCwgMC45OCkpLFxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgMCUsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTQpLCB0cmFuc3BhcmVudCA1OCUpO1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmOm5vdCguY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50KSAuY2hyaXN0aWFuaXR5LWhhbmQtZmFuLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGY6bm90KC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZi0tb3Bwb25lbnQpIC5jaHJpc3RpYW5pdHktaGFuZC1jYXJkLXdyYXAge1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmOm5vdCguY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50KSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIge1xuICAgICAgICAgIHRvcDogMC4xNXJlbTtcbiAgICAgICAgICByaWdodDogbWF4KDAuNTVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZjpub3QoLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmLS1vcHBvbmVudCkgLmNocmlzdGlhbml0eS1oYW5kLWZhbiB7XG4gICAgICAgICAgbWluLWhlaWdodDogOC44NXJlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuMjVyZW0gMS4xcmVtO1xuICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmOm5vdCguY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50KSAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kIHtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoNC4zNXJlbSwgMjB2dywgNS42NXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50IHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA2LjY1cmVtO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMC40cmVtO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjg1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItcmFjayB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgNS41NXJlbSkgbWlubWF4KDAsIDFmcikgbWlubWF4KDAsIDUuNDVyZW0pO1xuICAgICAgICAgIGdhcDogY2xhbXAoMC4zNXJlbSwgMnZ3LCAwLjVyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSB7XG4gICAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA2LjE1cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNThyZW0gMC40NnJlbSAwLjVyZW07XG4gICAgICAgICAgZ2FwOiAwLjI0cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQgdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSB2YWwtY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjpiZWZvcmUsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjphZnRlcixcbiAgICAgICAgLmNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3Qge1xuICAgICAgICAgIHdpZHRoOiBjbGFtcCgzcmVtLCAxOHZ3LCAzLjg1cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSB7XG4gICAgICAgICAgaGVpZ2h0OiA2LjlyZW07XG4gICAgICAgICAgbWF4LWhlaWdodDogNi45cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNTJyZW0gMC40MnJlbSAwLjQ4cmVtO1xuICAgICAgICAgIGdhcDogMC4yNHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctZHJvcC10YXJnZXQge1xuICAgICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNS44cmVtKTtcbiAgICAgICAgICBoZWlnaHQ6IDYuOXJlbTtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDYuOXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSB2YWwtY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YmVmb3JlLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGU6OmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoMi42NXJlbSwgMTV2dywgMy4zNXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkIHtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoNC4ycmVtLCAyMHZ3LCA1LjdyZW0pO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZCB7XG4gICAgICAgICAgd2lkdGg6IGNsYW1wKDQuNTVyZW0sIDIwdncsIDUuN3JlbSk7XG4gICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93IHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCg1cmVtLCA1LjhyZW0pIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciB7XG4gICAgICAgICAgZ2FwOiAwLjZyZW07XG4gICAgICAgICAgcGFkZGluZzpcbiAgICAgICAgICAgIG1heCgwLjcycmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCkpXG4gICAgICAgICAgICBtYXgoMC43MnJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpXG4gICAgICAgICAgICBtYXgoMC43MnJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKVxuICAgICAgICAgICAgbWF4KDAuNzJyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciBoZWFkZXIge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXIgaDIge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGxhYmVsIHtcbiAgICAgICAgICBnYXA6IDAuMThyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgaW5wdXQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBzZWxlY3QsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwIGJ1dHRvbiB7XG4gICAgICAgICAgbWluLWhlaWdodDogMi4wNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgNS41NXJlbSkpO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGdhcDogMC41NXJlbTtcbiAgICAgICAgICBzY3JvbGxiYXItZ3V0dGVyOiBhdXRvO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNHJlbSAwIDAuOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkIC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uIHtcbiAgICAgICAgICB3aWR0aDogbWluKDEwMCUsIDUuNTVyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA3LjI1cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50IHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA1Ljc1cmVtO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjdyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtZmFuLS1vcHBvbmVudCAuY2hyaXN0aWFuaXR5LWhpZGRlbi1jYXJkLWJ1dHRvbiB7XG4gICAgICAgICAgd2lkdGg6IGNsYW1wKDMuMzVyZW0sIDE1dncsIDQuMjVyZW0pO1xuICAgICAgICAgIG1hcmdpbi1pbmxpbmU6IC0wLjcycmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hyaXN0aWFuaXR5R2FtZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgYm9vdFN0YXJ0ZWRBdCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICBwcml2YXRlIGJvdFR1cm5UaW1lcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGltcGFjdEV2ZW50U2VxdWVuY2UgPSAwO1xuICBwcml2YXRlIHJlYWRvbmx5IGltcGFjdFRpbWVycyA9IG5ldyBTZXQ8bnVtYmVyPigpO1xuICBwcml2YXRlIGNvbWJhdFJlc29sdXRpb25UaW1lcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGNvbWJhdENsZWFyVGltZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBjb21iYXRUcmFpbENsZWFyVGltZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2FtZSA9IHNpZ25hbDxDaHJpc3RpYW5pdHlHYW1lU3RhdGU+KHN0cnVjdHVyZWRDbG9uZShTVEFSVElOR19HQU1FKSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzY3JlZW4gPSBzaWduYWw8Q2hyaXN0aWFuaXR5U2NyZWVuPignc3BsYXNoJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjYXRhbG9nTG9hZFN0YXRlID0gc2lnbmFsPENocmlzdGlhbml0eUNhdGFsb2dMb2FkU3RhdGU+KCdsb2FkaW5nJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZEhhbmRDYXJkID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRBdHRhY2tlciA9IHNpZ25hbDxDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRQcmV2aWV3ID0gc2lnbmFsPENocmlzdGlhbml0eUNhcmRQcmV2aWV3IHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZEluZm8gPSBzaWduYWw8Q2hyaXN0aWFuaXR5SW5mb1BhbmVsIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBwcmV2aWV3VGlsdCA9IHNpZ25hbDxDaHJpc3RpYW5pdHlQcmV2aWV3VGlsdD4oeyByb3RhdGVYOiA1LCByb3RhdGVZOiAtNSwgc2hpZnRYOiAwLCBzaGlmdFk6IDAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXggPSBzaWduYWwoMCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBwcmV2aWV3U2xpZGVEaXJlY3Rpb24gPSBzaWduYWw8MCB8IC0xIHwgMT4oMCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBob3ZlcmVkSGFuZEluZGV4ID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZHJhZ2dpbmdDYXJkSWQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkcmFnZ2luZ0F0dGFja2VySW5zdGFuY2VJZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhpc3RvcnlQdWxzZSA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93SGlzdG9yeSA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93R2FsbGVyeSA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBvZmZlcmluZ3NTZWF0ID0gc2lnbmFsPENocmlzdGlhbml0eVNlYXQgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGltcGFjdEV2ZW50cyA9IHNpZ25hbDxDaHJpc3RpYW5pdHlJbXBhY3RFdmVudFtdPihbXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb21iYXRBbmltYXRpb24gPSBzaWduYWw8Q2hyaXN0aWFuaXR5Q29tYmF0QW5pbWF0aW9uIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb21iYXRUcmFpbCA9IHNpZ25hbDxDaHJpc3RpYW5pdHlDb21iYXRUcmFpbCB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FyZENhdGFsb2cgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24+PihTVEFSVEVSX0NBUkRTKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFsbENhdGFsb2dDYXJkcyA9IHNpZ25hbDxDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbltdPihPYmplY3QudmFsdWVzKFNUQVJURVJfQ0FSRFMpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhdGFsb2dMb2FkZWQgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2FsbGVyeVNlYXJjaCA9IHNpZ25hbCgnJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBnYWxsZXJ5VHlwZSA9IHNpZ25hbDxDaHJpc3RpYW5pdHlHYWxsZXJ5VHlwZUZpbHRlcj4oJ2FsbCcpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5Ecm9wT25CYXR0bGVTbG90ID0gKGRyYWc6IENka0RyYWc8c3RyaW5nPik6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGRyYWcuZGF0YSk7XG4gICAgcmV0dXJuIGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicgJiYgdGhpcy5jYW5QbGF5KGNhcmQpO1xuICB9O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5Ecm9wT25PZmZlcmluZ3MgPSAoZHJhZzogQ2RrRHJhZzxzdHJpbmc+KTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oZHJhZy5kYXRhKTtcbiAgICByZXR1cm4gY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnICYmIHRoaXMuY2FuUGxheShjYXJkKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuRHJvcE9uUGxhY2UgPSAoZHJhZzogQ2RrRHJhZzxzdHJpbmc+KTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oZHJhZy5kYXRhKTtcbiAgICByZXR1cm4gY2FyZC50eXBlID09PSAncGxhY2UnICYmIHRoaXMuY2FuUGxheShjYXJkKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuRHJvcE9uT3Bwb25lbnRDaGFyYWN0ZXIgPSAoZHJhZzogQ2RrRHJhZzxzdHJpbmc+KTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEF0dGFja2VySW5zdGFuY2UoZHJhZy5kYXRhKSAmJiB0aGlzLm9wcG9uZW50KCkuYmF0dGxlWm9uZS5sZW5ndGggPiAwO1xuICB9O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5Ecm9wT25PcHBvbmVudExlYWRlciA9IChkcmFnOiBDZGtEcmFnPHN0cmluZz4pOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkQXR0YWNrZXJJbnN0YW5jZShkcmFnLmRhdGEpICYmICF0aGlzLmhhc09wcG9uZW50R3VhcmRzKCk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsYXllciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZ2FtZSgpLnBsYXllcnMuUDEpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3Bwb25lbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdhbWUoKS5wbGF5ZXJzLlAyKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGN1cnJlbnRQbGF5ZXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdhbWUoKS5wbGF5ZXJzW3RoaXMuZ2FtZSgpLnR1cm5Pd25lcl0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNPd25UdXJuID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5nYW1lKCkuc3RhdHVzID09PSAnaW5fcHJvZ3Jlc3MnICYmIHRoaXMuZ2FtZSgpLnR1cm5Pd25lciA9PT0gJ1AxJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSB3aW5uZXJTZWF0ID0gY29tcHV0ZWQ8Q2hyaXN0aWFuaXR5U2VhdCB8IG51bGw+KCgpID0+IHtcbiAgICBjb25zdCBnYW1lID0gdGhpcy5nYW1lKCk7XG4gICAgaWYgKGdhbWUuc3RhdHVzICE9PSAnZmluaXNoZWQnKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoZ2FtZS5wbGF5ZXJzLlAxLmxlYWRlckhwIDw9IDApIHJldHVybiAnUDInO1xuICAgIGlmIChnYW1lLnBsYXllcnMuUDIubGVhZGVySHAgPD0gMCkgcmV0dXJuICdQMSc7XG4gICAgcmV0dXJuIGdhbWUucGxheWVycy5QMS5sZWFkZXJIcCA+PSBnYW1lLnBsYXllcnMuUDIubGVhZGVySHAgPyAnUDEnIDogJ1AyJztcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBoYXNPcHBvbmVudEd1YXJkcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3Bwb25lbnQoKS5iYXR0bGVab25lLmxlbmd0aCA+IDApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3Bwb25lbnRIYW5kQ291bnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wcG9uZW50KCkuaGFuZENvdW50ID8/IHRoaXMub3Bwb25lbnQoKS5oYW5kPy5sZW5ndGggPz8gMCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBnYWxsZXJ5Q2FyZHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmdhbGxlcnlTZWFyY2goKS50cmltKCkudG9Mb3dlckNhc2UoKS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcbiAgICBjb25zdCB0eXBlID0gdGhpcy5nYWxsZXJ5VHlwZSgpO1xuICAgIHJldHVybiB0aGlzLmFsbENhdGFsb2dDYXJkcygpXG4gICAgICAuZmlsdGVyKGNhcmQgPT4gdHlwZSA9PT0gJ2FsbCcgfHwgY2FyZC50eXBlID09PSB0eXBlKVxuICAgICAgLmZpbHRlcihjYXJkID0+IHtcbiAgICAgICAgaWYgKCFxdWVyeSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGNvbnN0IHRleHQgPSB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKTtcbiAgICAgICAgY29uc3QgaGF5c3RhY2sgPSBbdGV4dC5uYW1lLCBjYXJkLnR5cGUsIHRleHQuc2NyaXB0dXJlLCB0ZXh0LmFiaWxpdHlOYW1lLCB0ZXh0LmFiaWxpdHlUZXh0LCB0ZXh0LnZlcnNlVGV4dF1cbiAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgLmpvaW4oJyAnKVxuICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpO1xuICAgICAgICByZXR1cm4gaGF5c3RhY2suaW5jbHVkZXMocXVlcnkpO1xuICAgICAgfSlcbiAgICAgIC5zb3J0KChsZWZ0LCByaWdodCkgPT4gdGhpcy5jYXJkU29ydEtleShsZWZ0KS5sb2NhbGVDb21wYXJlKHRoaXMuY2FyZFNvcnRLZXkocmlnaHQpLCAnZXMnKSk7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2FsbGVyeUVkaXRpb25MYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb3VudCA9IHRoaXMuYWxsQ2F0YWxvZ0NhcmRzKCkubGVuZ3RoO1xuICAgIHJldHVybiBgJHt0aGlzLnQoJ2NocmlzdGlhbml0eUdlbmVzaXNFZGl0aW9uJyl9IMK3ICR7Y291bnR9ICR7dGhpcy50KCdjaHJpc3RpYW5pdHlDYXJkcycpfWA7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2FsbGVyeUVkaXRpb25JY29uID0gY29tcHV0ZWQoKCkgPT4gR0VORVNJU19JQ09OX1VSTCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBnYWxsZXJ5VHlwZU9wdGlvbnMgPSBjb21wdXRlZDxBcnJheTx7IHZhbHVlOiBDaHJpc3RpYW5pdHlHYWxsZXJ5VHlwZUZpbHRlcjsgbGFiZWw6IHN0cmluZyB9Pj4oKCkgPT4gW1xuICAgIHsgdmFsdWU6ICdhbGwnLCBsYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlBbGxDYXJkcycpIH0sXG4gICAgeyB2YWx1ZTogJ2xlYWRlcicsIGxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSB9LFxuICAgIHsgdmFsdWU6ICdvZmZlcmluZycsIGxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQ2FyZCcpIH0sXG4gICAgeyB2YWx1ZTogJ2NoYXJhY3RlcicsIGxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlckNhcmQnKSB9LFxuICAgIHsgdmFsdWU6ICd3aXNkb20nLCBsYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlXaXNkb21DYXJkJykgfSxcbiAgICB7IHZhbHVlOiAnYWN0aW9uJywgbGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5QWN0aW9uQ2FyZCcpIH0sXG4gICAgeyB2YWx1ZTogJ3Rvb2wnLCBsYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlUb29sQ2FyZCcpIH0sXG4gICAgeyB2YWx1ZTogJ3BsYWNlJywgbGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VDYXJkJykgfSxcbiAgICB7IHZhbHVlOiAnZXZlbnQnLCBsYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlFdmVudENhcmQnKSB9LFxuICBdKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc01vZGFsT3ZlcmxheSA9IGNvbXB1dGVkKCgpID0+XG4gICAgISF0aGlzLnNlbGVjdGVkUHJldmlldygpXG4gICAgfHwgISF0aGlzLnNlbGVjdGVkSW5mbygpXG4gICAgfHwgdGhpcy5zaG93SGlzdG9yeSgpXG4gICAgfHwgdGhpcy5zaG93R2FsbGVyeSgpXG4gICAgfHwgISF0aGlzLm9mZmVyaW5nc1NlYXQoKVxuICApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJldmlld0Nhcm91c2VsSXRlbXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmN1cnJlbnRQcmV2aWV3Q2Fyb3VzZWxJdGVtcygpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbk5hdmlnYXRlUHJldmlldyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJldmlld0Nhcm91c2VsSXRlbXMoKS5sZW5ndGggPiAxKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByZXZpZXdQb3NpdGlvbkxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5wcmV2aWV3Q2Fyb3VzZWxJdGVtcygpO1xuICAgIGlmIChpdGVtcy5sZW5ndGggPCAyKSByZXR1cm4gJyc7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmN1cnJlbnRQcmV2aWV3Q2Fyb3VzZWxJbmRleChpdGVtcyk7XG4gICAgaWYgKGluZGV4IDwgMCkgcmV0dXJuICcnO1xuICAgIHJldHVybiBgJHtpbmRleCArIDF9LyR7aXRlbXMubGVuZ3RofWA7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJldmlld0FiaWxpdGllcyA9IGNvbXB1dGVkPENocmlzdGlhbml0eVByZXZpZXdBYmlsaXR5W10+KCgpID0+IHtcbiAgICBjb25zdCBwcmV2aWV3ID0gdGhpcy5zZWxlY3RlZFByZXZpZXcoKTtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5zZWxlY3RlZFByZXZpZXdDYXJkKCk7XG4gICAgaWYgKCFwcmV2aWV3IHx8ICFjYXJkKSByZXR1cm4gW107XG4gICAgY29uc3QgdGV4dCA9IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNhcmQpO1xuICAgIGNvbnN0IGFiaWxpdGllcyA9IHRleHQuYWJpbGl0aWVzPy5sZW5ndGhcbiAgICAgID8gdGV4dC5hYmlsaXRpZXMubWFwKChhYmlsaXR5LCBpbmRleCkgPT4gKHtcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIHRpdGxlOiBhYmlsaXR5Lm5hbWUgPz8gdGhpcy50KCdjaHJpc3RpYW5pdHlBYmlsaXR5JyksXG4gICAgICAgIGJvZHk6IGFiaWxpdHkudGV4dCA/PyB0aGlzLmRlZmF1bHRDYXJkQm9keShjYXJkLnR5cGUpLFxuICAgICAgICBjYW5Vc2U6IHRoaXMuY2FuVXNlUHJldmlld0FiaWxpdHkoaW5kZXgpLFxuICAgICAgfSkpXG4gICAgICA6IHRleHQuYWJpbGl0eU5hbWUgfHwgdGV4dC5hYmlsaXR5VGV4dFxuICAgICAgICA/IFt7XG4gICAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgICAgdGl0bGU6IHRleHQuYWJpbGl0eU5hbWUgPz8gdGhpcy50KCdjaHJpc3RpYW5pdHlBYmlsaXR5JyksXG4gICAgICAgICAgYm9keTogdGV4dC5hYmlsaXR5VGV4dCA/PyB0aGlzLmRlZmF1bHRDYXJkQm9keShjYXJkLnR5cGUpLFxuICAgICAgICAgIGNhblVzZTogdGhpcy5jYW5Vc2VQcmV2aWV3QWJpbGl0eSgwKSxcbiAgICAgICAgfV1cbiAgICAgICAgOiBbXTtcbiAgICByZXR1cm4gYWJpbGl0aWVzO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dQcmV2aWV3QWJpbGl0eVRhYnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYWJpbGl0aWVzID0gdGhpcy5wcmV2aWV3QWJpbGl0aWVzKCk7XG4gICAgcmV0dXJuIGFiaWxpdGllcy5sZW5ndGggPiAxIHx8IChhYmlsaXRpZXNbMF0/LnRpdGxlID8/ICcnKSAhPT0gdGhpcy50KCdjaHJpc3RpYW5pdHlBYmlsaXR5Jyk7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvd1ByZXZpZXdBYmlsaXRpZXMgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk/LnNvdXJjZSAhPT0gJ2dhbGxlcnknICYmIHRoaXMucHJldmlld0FiaWxpdGllcygpLmxlbmd0aCA+IDBcbiAgKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbk5hdmlnYXRlUHJldmlld0FiaWxpdGllcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJldmlld0FiaWxpdGllcygpLmxlbmd0aCA+IDEpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eVBvc2l0aW9uTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYWJpbGl0aWVzID0gdGhpcy5wcmV2aWV3QWJpbGl0aWVzKCk7XG4gICAgaWYgKGFiaWxpdGllcy5sZW5ndGggPCAyKSByZXR1cm4gJyc7XG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IGFiaWxpdGllcy5maW5kSW5kZXgoYWJpbGl0eSA9PiBhYmlsaXR5LmluZGV4ID09PSB0aGlzLnNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleCgpKTtcbiAgICByZXR1cm4gYCR7c2VsZWN0ZWRJbmRleCA+PSAwID8gc2VsZWN0ZWRJbmRleCArIDEgOiAxfS8ke2FiaWxpdGllcy5sZW5ndGh9YDtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZFByZXZpZXdBYmlsaXR5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGFiaWxpdGllcyA9IHRoaXMucHJldmlld0FiaWxpdGllcygpO1xuICAgIGlmICghYWJpbGl0aWVzLmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGFiaWxpdGllcy5maW5kKGFiaWxpdHkgPT4gYWJpbGl0eS5pbmRleCA9PT0gdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXgoKSkgPz8gYWJpbGl0aWVzWzBdO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbWJhdENhbGxvdXQgPSBjb21wdXRlZDxNaW5pR2FtZUNhbGxvdXRNZXRhZGF0YSB8IG51bGw+KCgpID0+IHtcbiAgICBjb25zdCBhbmltYXRpb24gPSB0aGlzLmNvbWJhdEFuaW1hdGlvbigpO1xuICAgIGlmICghYW5pbWF0aW9uKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBhdHRhY2tlciA9IHRoaXMuY29tYmF0QW5pbWF0aW9uQXR0YWNrZXIoYW5pbWF0aW9uKTtcbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmNvbWJhdEFuaW1hdGlvblRhcmdldExhYmVsKGFuaW1hdGlvbik7XG4gICAgY29uc3QgdGl0bGUgPSBhdHRhY2tlciA/IGF0dGFja2VyLm5hbWUgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUF0dGFjaycpO1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZSxcbiAgICAgIGJvZHk6IGAke3RoaXMudCgnY2hyaXN0aWFuaXR5QXR0YWNrJyl9ICR7dGFyZ2V0fWAsXG4gICAgICBpbXBhY3Q6IGFuaW1hdGlvbi50YXJnZXQgPT09ICdsZWFkZXInID8gdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlckNhcmQnKSxcbiAgICAgIGljb246ICc+JyxcbiAgICAgIHRvbmVSZ2I6IGFuaW1hdGlvbi50YXJnZXQgPT09ICdsZWFkZXInID8gJzI1MCwgMjA0LCAyMScgOiAnOTYsIDE2NSwgMjUwJyxcbiAgICAgIGR1cmF0aW9uTXM6IDk4MCxcbiAgICAgIHZhcmlhbnQ6IGFuaW1hdGlvbi50YXJnZXQgPT09ICdsZWFkZXInID8gJ3dhcm5pbmcnIDogJ2NhcHR1cmUnLFxuICAgIH07XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3BsYXNoU3RhdHVzVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuY2F0YWxvZ0xvYWRTdGF0ZSgpO1xuICAgIGlmIChzdGF0ZSA9PT0gJ3JlYWR5JykgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5U3BsYXNoUmVhZHknKTtcbiAgICBpZiAoc3RhdGUgPT09ICdmYWxsYmFjaycpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVNwbGFzaEZhbGxiYWNrJyk7XG4gICAgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5U3BsYXNoTG9hZGluZycpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0YXJ0RmVhdHVyZWRDYXJkcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjYXJkcyA9IHRoaXMuYWxsQ2F0YWxvZ0NhcmRzKCk7XG4gICAgY29uc3QgcHJlZmVycmVkID0gWydHRU4tMDA5JywgJ0dFTi0wMTMnLCAnR0VOLTAzMiddXG4gICAgICAubWFwKGlkID0+IHRoaXMuY2FyZENhdGFsb2coKVtpZF0pXG4gICAgICAuZmlsdGVyKChjYXJkKTogY2FyZCBpcyBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiA9PiAhIWNhcmQpO1xuICAgIHJldHVybiAocHJlZmVycmVkLmxlbmd0aCA/IHByZWZlcnJlZCA6IGNhcmRzLnNsaWNlKDAsIDMpKS5zbGljZSgwLCAzKTtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBmdXR1cmVNb2RlcyA9IGNvbXB1dGVkKCgpID0+IFtcbiAgICB7IHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eVNvbG9Cb3RNb2RlJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5U29sb0JvdE1vZGVCb2R5JykgfSxcbiAgICB7IHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eVR3b1BsYXllck1vZGUnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlUd29QbGF5ZXJNb2RlQm9keScpIH0sXG4gICAgeyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlPbmVEZXZpY2VNb2RlJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5T25lRGV2aWNlTW9kZUJvZHknKSB9LFxuICAgIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5U3BlY3RhdG9yTW9kZScpLCBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eVNwZWN0YXRvck1vZGVCb2R5JykgfSxcbiAgXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZENhcmREZWZpbml0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZEhhbmRDYXJkKCk7XG4gICAgcmV0dXJuIHNlbGVjdGVkID8gdGhpcy5jYXJkRGVmaW5pdGlvbihzZWxlY3RlZCkgOiBudWxsO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkUHJldmlld0NhcmQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY2FyZElkID0gdGhpcy5zZWxlY3RlZFByZXZpZXcoKT8uY2FyZElkO1xuICAgIHJldHVybiBjYXJkSWQgPyB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCkgOiBudWxsO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkUHJldmlld1JlbmRlckNhcmQgPSBjb21wdXRlZDxDaHJpc3RpYW5pdHlDYXJkUmVuZGVyTW9kZWwgfCBudWxsPigoKSA9PiB7XG4gICAgY29uc3QgcHJldmlldyA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk7XG4gICAgaWYgKCFwcmV2aWV3KSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5zZWxlY3RlZFByZXZpZXdDYXJkKCk7XG4gICAgaWYgKGNhcmQpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmluaXRpb25Ub1JlbmRlckNhcmQoY2FyZCwge1xuICAgICAgICBzdGF0dXNUZXh0OiBwcmV2aWV3LmJvZHksXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHByZXZpZXcuZXllYnJvdyA9PT0gdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJykpIHtcbiAgICAgIGNvbnN0IFtjdXJyZW50SHAsIG1heEhwXSA9IHByZXZpZXcubWV0YS5zcGxpdCgnLycpLm1hcCh2YWx1ZSA9PiBOdW1iZXIodmFsdWUpKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBgbGVhZGVyLSR7cHJldmlldy50aXRsZS50b0xvd2VyQ2FzZSgpfWAsXG4gICAgICAgIG5hbWU6IHByZXZpZXcudGl0bGUsXG4gICAgICAgIHR5cGU6ICdsZWFkZXInLFxuICAgICAgICB0eXBlTGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLFxuICAgICAgICBjdXJyZW50SHA6IE51bWJlci5pc0Zpbml0ZShjdXJyZW50SHApID8gY3VycmVudEhwIDogdW5kZWZpbmVkLFxuICAgICAgICBtYXhIcDogTnVtYmVyLmlzRmluaXRlKG1heEhwKSA/IG1heEhwIDogdW5kZWZpbmVkLFxuICAgICAgICBsaWZlOiBOdW1iZXIuaXNGaW5pdGUoY3VycmVudEhwKSA/IGN1cnJlbnRIcCA6IHVuZGVmaW5lZCxcbiAgICAgICAgYWJpbGl0eU5hbWU6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLFxuICAgICAgICBhYmlsaXR5VGV4dDogcHJldmlldy5ib2R5LFxuICAgICAgICB2ZXJzZVRleHQ6IHByZXZpZXcuYm9keSxcbiAgICAgICAgZWRpdGlvbjogJ01WUCcsXG4gICAgICAgIGNvbGxlY3Rvck51bWJlcjogJ0xJREVSJyxcbiAgICAgICAgeWVhcjogJzIwMjYnLFxuICAgICAgICBhdXRob3I6ICdNVlAnLFxuICAgICAgICByYXJpdHk6ICdsZWdlbmRhcnknLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBgcHJldmlldy0ke3ByZXZpZXcudGl0bGUudG9Mb3dlckNhc2UoKX1gLFxuICAgICAgbmFtZTogcHJldmlldy50aXRsZSxcbiAgICAgIHR5cGU6IHRoaXMucHJldmlld1JlbmRlclR5cGUocHJldmlldy5leWVicm93KSxcbiAgICAgIHR5cGVMYWJlbDogcHJldmlldy5leWVicm93LFxuICAgICAgYWJpbGl0eU5hbWU6IHByZXZpZXcuZXllYnJvdyxcbiAgICAgIGFiaWxpdHlUZXh0OiBwcmV2aWV3LmJvZHksXG4gICAgICB2ZXJzZVRleHQ6IHByZXZpZXcuYm9keSxcbiAgICAgIGVkaXRpb246ICdNVlAnLFxuICAgICAgY29sbGVjdG9yTnVtYmVyOiBwcmV2aWV3LmV5ZWJyb3csXG4gICAgICB5ZWFyOiAnMjAyNicsXG4gICAgICBhdXRob3I6ICdNVlAnLFxuICAgICAgcmFyaXR5OiAnbm9ybWFsJyxcbiAgICAgIHN0YXR1c1RleHQ6IHByZXZpZXcubWV0YSxcbiAgICB9O1xuICB9KTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkUHJldmlld05laWdoYm9yUmVuZGVyQ2FyZChkaXJlY3Rpb246IC0xIHwgMSk6IENocmlzdGlhbml0eUNhcmRSZW5kZXJNb2RlbCB8IG51bGwge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5wcmV2aWV3Q2Fyb3VzZWxJdGVtcygpO1xuICAgIGlmIChpdGVtcy5sZW5ndGggPCAyKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmN1cnJlbnRQcmV2aWV3Q2Fyb3VzZWxJbmRleChpdGVtcyk7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA8IDApIHJldHVybiBudWxsO1xuICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyBpdGVtcy5sZW5ndGgpICUgaXRlbXMubGVuZ3RoO1xuICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tuZXh0SW5kZXhdO1xuICAgIGlmIChpdGVtLmtpbmQgPT09ICdoaXN0b3J5Jykge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvblRvUmVuZGVyQ2FyZCh0aGlzLmNhcmREZWZpbml0aW9uKGl0ZW0uY2FyZElkKSwgeyBzdGF0dXNUZXh0OiB0aGlzLnQoJ2NocmlzdGlhbml0eUhpc3RvcnknKSB9KTtcbiAgICB9XG4gICAgaWYgKGl0ZW0ua2luZCA9PT0gJ2dhbGxlcnknKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9uVG9SZW5kZXJDYXJkKHRoaXMuY2FyZERlZmluaXRpb24oaXRlbS5jYXJkSWQpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMub2ZmZXJpbmdSZW5kZXJDYXJkKGl0ZW0ub2ZmZXJpbmcpO1xuICB9XG4gIHByb3RlY3RlZCByZWFkb25seSBwcmV2aWV3UnVsZSA9IGNvbXB1dGVkPENocmlzdGlhbml0eVByZXZpZXdSdWxlIHwgbnVsbD4oKCkgPT4ge1xuICAgIGNvbnN0IHByZXZpZXcgPSB0aGlzLnNlbGVjdGVkUHJldmlldygpO1xuICAgIGlmICghcHJldmlldykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3Q2FyZCgpO1xuICAgIGlmIChjYXJkPy50eXBlID09PSAnb2ZmZXJpbmcnKSB7XG4gICAgICByZXR1cm4geyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ1J1bGVCb2R5JykgfTtcbiAgICB9XG4gICAgaWYgKGNhcmQ/LnR5cGUgPT09ICdjaGFyYWN0ZXInKSB7XG4gICAgICByZXR1cm4geyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJDYXJkJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyUnVsZUJvZHknKSB9O1xuICAgIH1cbiAgICBpZiAoY2FyZD8udHlwZSA9PT0gJ3dpc2RvbScpIHtcbiAgICAgIHJldHVybiB7IHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eVdpc2RvbUNhcmQnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlXaXNkb21SdWxlQm9keScpIH07XG4gICAgfVxuICAgIGlmIChjYXJkPy50eXBlID09PSAnYWN0aW9uJykge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5QWN0aW9uQ2FyZCcpLCBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eUFjdGlvblJ1bGVCb2R5JykgfTtcbiAgICB9XG4gICAgaWYgKGNhcmQ/LnR5cGUgPT09ICd0b29sJykge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5VG9vbENhcmQnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlUb29sUnVsZUJvZHknKSB9O1xuICAgIH1cbiAgICBpZiAoY2FyZD8udHlwZSA9PT0gJ3BsYWNlJykge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VDYXJkJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VSdWxlQm9keScpIH07XG4gICAgfVxuICAgIGlmIChjYXJkPy50eXBlID09PSAnZXZlbnQnKSB7XG4gICAgICByZXR1cm4geyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlFdmVudENhcmQnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlFdmVudFJ1bGVCb2R5JykgfTtcbiAgICB9XG4gICAgaWYgKGNhcmQ/LnR5cGUgPT09ICdsZWFkZXInKSB7XG4gICAgICByZXR1cm4geyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyUnVsZUJvZHknKSB9O1xuICAgIH1cbiAgICBpZiAocHJldmlldy5leWVicm93ID09PSB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSkge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLCBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlclJ1bGVCb2R5JykgfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhdHVzVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB3aW5uZXIgPSB0aGlzLndpbm5lclNlYXQoKTtcbiAgICBpZiAod2lubmVyKSB7XG4gICAgICByZXR1cm4gd2lubmVyID09PSAnUDEnID8gdGhpcy50KCdjaHJpc3RpYW5pdHlZb3VXaW4nKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5T3Bwb25lbnRXaW5zJyk7XG4gICAgfVxuICAgIGNvbnN0IGF0dGFja2VyID0gdGhpcy5zZWxlY3RlZEF0dGFja2VyKCk7XG4gICAgY29uc3QgaGFuZENhcmQgPSB0aGlzLnNlbGVjdGVkQ2FyZERlZmluaXRpb24oKTtcbiAgICBpZiAoIXRoaXMuaXNPd25UdXJuKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVdhaXRUdXJuJyk7XG4gICAgfVxuICAgIGlmIChhdHRhY2tlcikge1xuICAgICAgcmV0dXJuIHRoaXMuaGFzT3Bwb25lbnRHdWFyZHMoKSA/IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hvb3NlQ2hhcmFjdGVyVGFyZ2V0JykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNob29zZVRhcmdldCcpO1xuICAgIH1cbiAgICBpZiAoaGFuZENhcmQpIHtcbiAgICAgIGlmICghdGhpcy5jYW5QbGF5KGhhbmRDYXJkKSkge1xuICAgICAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlOZWVkT2ZmZXJpbmdzJyk7XG4gICAgICB9XG4gICAgICBpZiAoaGFuZENhcmQudHlwZSA9PT0gJ3BsYWNlJykge1xuICAgICAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlDaG9vc2VQbGFjZVNsb3QnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYW5kQ2FyZC50eXBlID09PSAnb2ZmZXJpbmcnID8gdGhpcy50KCdjaHJpc3RpYW5pdHlQbGFjZU9mZmVyaW5nJykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNob29zZVNsb3QnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hvb3NlQ2FyZCcpO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnTWluaUdhbWVzJywgTUlOSV9HQU1FU19JMThOKTtcbiAgICBlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmhhc01vZGFsT3ZlcmxheSgpKSByZXR1cm47XG4gICAgICBjb25zdCBwcmV2aW91c092ZXJmbG93ID0gdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93O1xuICAgICAgY29uc3QgcHJldmlvdXNPdmVyc2Nyb2xsID0gdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvcjtcbiAgICAgIGNvbnN0IHByZXZpb3VzUG9zaXRpb24gPSB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucG9zaXRpb247XG4gICAgICBjb25zdCBwcmV2aW91c1RvcCA9IHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS50b3A7XG4gICAgICBjb25zdCBwcmV2aW91c1dpZHRoID0gdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoO1xuICAgICAgY29uc3Qgc2Nyb2xsWSA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yID0gJ2NvbnRhaW4nO1xuICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS50b3AgPSBgLSR7c2Nyb2xsWX1weGA7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgICBvbkNsZWFudXAoKCkgPT4ge1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSBwcmV2aW91c092ZXJmbG93O1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yID0gcHJldmlvdXNPdmVyc2Nyb2xsO1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucG9zaXRpb24gPSBwcmV2aW91c1Bvc2l0aW9uO1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUudG9wID0gcHJldmlvdXNUb3A7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9IHByZXZpb3VzV2lkdGg7XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogc2Nyb2xsWSwgbGVmdDogMCwgYmVoYXZpb3I6ICdhdXRvJyB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgZm9yIChjb25zdCB0aW1lciBvZiB0aGlzLmltcGFjdFRpbWVycykge1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW1wYWN0VGltZXJzLmNsZWFyKCk7XG4gICAgICB0aGlzLmNsZWFyQ29tYmF0VGltZXJzKCk7XG4gICAgfSk7XG4gICAgdm9pZCB0aGlzLmxvYWRHZW5lc2lzQ2F0YWxvZygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgJ01pbmlHYW1lcycpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkR2VuZXNpc0NhdGFsb2coKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgbGV0IGxvYWRlZCA9IGZhbHNlO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKEdFTkVTSVNfQ0FUQUxPR19VUkwpO1xuICAgICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGNvbnN0IGNhdGFsb2cgPSBhd2FpdCByZXNwb25zZS5qc29uKCkgYXMgQ2hyaXN0aWFuaXR5RWRpdGlvbkNhdGFsb2c7XG4gICAgICAgIGNvbnN0IGNhcmRzID0gKGNhdGFsb2cuY2FyZHMgPz8gW10pLm1hcChjYXJkID0+IHRoaXMubm9ybWFsaXplQ2F0YWxvZ0NhcmQoY2FyZCwgY2F0YWxvZykpO1xuICAgICAgICBpZiAoY2FyZHMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5jYXJkQ2F0YWxvZy5zZXQoT2JqZWN0LmZyb21FbnRyaWVzKGNhcmRzLm1hcChjYXJkID0+IFtjYXJkLmlkLCBjYXJkXSkpKTtcbiAgICAgICAgICB0aGlzLmFsbENhdGFsb2dDYXJkcy5zZXQoY2FyZHMpO1xuICAgICAgICAgIHRoaXMuY2F0YWxvZ0xvYWRlZC5zZXQodHJ1ZSk7XG4gICAgICAgICAgdGhpcy5nYW1lLnNldCh0aGlzLmNyZWF0ZVR1dG9yaWFsR2FtZShjYXJkcykpO1xuICAgICAgICAgIGxvYWRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKCdDaHJpc3RpYW5pdHkgY2F0YWxvZyBjb3VsZCBub3QgYmUgbG9hZGVkLiBGYWxsaW5nIGJhY2sgdG8gc3RhcnRlciBjYXJkcy4nLCBlcnJvcik7XG4gICAgfVxuICAgIHRoaXMuY2F0YWxvZ0xvYWRTdGF0ZS5zZXQobG9hZGVkID8gJ3JlYWR5JyA6ICdmYWxsYmFjaycpO1xuICAgIHRoaXMuZmluaXNoU3BsYXNoKCk7XG4gIH1cblxuICBwcml2YXRlIGZpbmlzaFNwbGFzaCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbGFwc2VkID0gcGVyZm9ybWFuY2Uubm93KCkgLSB0aGlzLmJvb3RTdGFydGVkQXQ7XG4gICAgY29uc3QgcmVtYWluaW5nID0gTWF0aC5tYXgoMCwgU1BMQVNIX01JTl9EVVJBVElPTl9NUyAtIGVsYXBzZWQpO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnNjcmVlbigpID09PSAnc3BsYXNoJykge1xuICAgICAgICB0aGlzLnNjcmVlbi5zZXQoJ2hvbWUnKTtcbiAgICAgIH1cbiAgICB9LCByZW1haW5pbmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVDYXRhbG9nQ2FyZChjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiwgY2F0YWxvZzogQ2hyaXN0aWFuaXR5RWRpdGlvbkNhdGFsb2cpOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZWRpdGlvbkljb24gPSBjYXJkLmVkaXRpb25JY29uID8/IGNhdGFsb2cuZWRpdGlvbj8uaWNvbiA/PyBHRU5FU0lTX0lDT05fVVJMO1xuICAgIGNvbnN0IHZlcnNlVGV4dCA9IGNhcmQudmVyc2VUZXh0ID8/IGNhcmQuYmlibGU/LnRleHQ7XG4gICAgY29uc3Qgc2NyaXB0dXJlID0gY2FyZC5zY3JpcHR1cmUgPz8gdGhpcy5mb3JtYXRTY3JpcHR1cmUoY2FyZC5iaWJsZSk7XG4gICAgY29uc3Qgb2ZmZXJpbmdWYWx1ZSA9IGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyA/IGNhcmQub2ZmZXJpbmdWYWx1ZSA/PyBjYXJkLmxpZmUgPz8gY2FyZC5jb3N0ID8/IDEgOiBjYXJkLm9mZmVyaW5nVmFsdWU7XG4gICAgY29uc3QgbGlmZSA9IGNhcmQudHlwZSA9PT0gJ2xlYWRlcidcbiAgICAgID8gY2FyZC5sZWFkZXJMaWZlID8/IGNhcmQubGlmZSA/PyAxMFxuICAgICAgOiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZydcbiAgICAgICAgPyBvZmZlcmluZ1ZhbHVlXG4gICAgICAgIDogY2FyZC5saWZlID8/IDA7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNhcmQsXG4gICAgICBjb3N0OiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgPyAwIDogY2FyZC5jb3N0ID8/IDAsXG4gICAgICBvZmZlcmluZ1ZhbHVlLFxuICAgICAgbGlmZSxcbiAgICAgIGxlYWRlckxpZmU6IGNhcmQudHlwZSA9PT0gJ2xlYWRlcicgPyBjYXJkLmxlYWRlckxpZmUgPz8gbGlmZSA6IGNhcmQubGVhZGVyTGlmZSxcbiAgICAgIGF0dGFjazogY2FyZC50eXBlID09PSAnY2hhcmFjdGVyJyA/IGNhcmQuYXR0YWNrID8/IDAgOiBjYXJkLmF0dGFjayxcbiAgICAgIGFiaWxpdHlOYW1lOiBjYXJkLmFiaWxpdHlOYW1lID8/IGNhcmQuYWJpbGl0aWVzPy5bMF0/Lm5hbWUsXG4gICAgICBhYmlsaXR5VGV4dDogY2FyZC5hYmlsaXR5VGV4dCA/PyBjYXJkLmFiaWxpdGllcz8uWzBdPy50ZXh0LFxuICAgICAgdmVyc2VUZXh0LFxuICAgICAgc2NyaXB0dXJlLFxuICAgICAgZWRpdGlvbjogY2FyZC5lZGl0aW9uID8/IGNhdGFsb2cuZWRpdGlvbj8uaWQgPz8gJ0dFTicsXG4gICAgICBlZGl0aW9uTnVtYmVyOiBjYXJkLmVkaXRpb25OdW1iZXIgPz8gY2F0YWxvZy5lZGl0aW9uPy5udW1iZXIsXG4gICAgICBlZGl0aW9uSWNvbixcbiAgICAgIGltYWdlVXJsOiBjYXJkLmltYWdlVXJsID8/IGNhcmQuYXJ0Py5pbWFnZVVybCxcbiAgICAgIGF1dGhvcjogY2FyZC5hdXRob3IgPz8gY2FyZC5hcnQ/LmFydGlzdENyZWRpdCxcbiAgICAgIHllYXI6IGNhcmQueWVhciA/PyAnMjAyNicsXG4gICAgICBmcm9udFRlbXBsYXRlOiBjYXJkLmZyb250VGVtcGxhdGUgPz8gJ2dlbmVzaXMtY2xhc3NpYycsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0U2NyaXB0dXJlKGJpYmxlPzogQ2hyaXN0aWFuaXR5Q2FyZEJpYmxlUmVmZXJlbmNlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIWJpYmxlPy5ib29rIHx8ICFiaWJsZS5yZWZlcmVuY2UpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGAke2JpYmxlLmJvb2t9ICR7YmlibGUucmVmZXJlbmNlfSR7YmlibGUudmVyc2lvbiA/IGAgJHtiaWJsZS52ZXJzaW9ufWAgOiAnJ31gO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUdXRvcmlhbEdhbWUoY2FyZHM6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uW10pOiBDaHJpc3RpYW5pdHlHYW1lU3RhdGUge1xuICAgIGNvbnN0IGxlYWRlcnMgPSBjYXJkcy5maWx0ZXIoY2FyZCA9PiBjYXJkLnR5cGUgPT09ICdsZWFkZXInKTtcbiAgICBjb25zdCBwbGF5ZXJMZWFkZXIgPSB0aGlzLmZpbmRDYXJkKGxlYWRlcnMsICdBZMOhbicpID8/IGxlYWRlcnNbMF07XG4gICAgY29uc3Qgb3Bwb25lbnRMZWFkZXIgPSB0aGlzLmZpbmRDYXJkKGxlYWRlcnMsICdOb8OpJykgPz8gbGVhZGVyc1sxXSA/PyBsZWFkZXJzWzBdO1xuICAgIGNvbnN0IG9mZmVyaW5ncyA9IGNhcmRzLmZpbHRlcihjYXJkID0+IGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJykuc2xpY2UoMCwgVFVUT1JJQUxfT0ZGRVJJTkdfTElNSVQpO1xuICAgIGNvbnN0IHBsYWNlcyA9IGNhcmRzLmZpbHRlcihjYXJkID0+IGNhcmQudHlwZSA9PT0gJ3BsYWNlJyk7XG4gICAgY29uc3QgY2hhcmFjdGVycyA9IGNhcmRzXG4gICAgICAuZmlsdGVyKGNhcmQgPT4gY2FyZC50eXBlID09PSAnY2hhcmFjdGVyJyAmJiAoY2FyZC5jb3N0ID8/IDApIDw9IDQgJiYgKGNhcmQuYXR0YWNrID8/IDApID49IDAgJiYgKGNhcmQubGlmZSA/PyAwKSA+IDApXG4gICAgICAuc2xpY2UoMCwgVFVUT1JJQUxfQ0hBUkFDVEVSX0xJTUlUKTtcbiAgICBjb25zdCBzdGFydGluZ09mZmVyaW5nID0gb2ZmZXJpbmdzWzBdID8/IFNUQVJURVJfQ0FSRFNbJ29fc2ltcGxlJ107XG4gICAgY29uc3QgdHV0b3JpYWxEZWNrID0gW1xuICAgICAgLi4ub2ZmZXJpbmdzLnNsaWNlKDEpLFxuICAgICAgLi4uY2hhcmFjdGVycyxcbiAgICAgIC4uLm9mZmVyaW5ncy5zbGljZSgwLCAxKSxcbiAgICBdLnNsaWNlKDAsIDIwKTtcbiAgICBjb25zdCBwbGF5ZXJIYW5kID0gdHV0b3JpYWxEZWNrLnNsaWNlKDAsIDQpLm1hcChjYXJkID0+IGNhcmQuaWQpO1xuICAgIGNvbnN0IG9wcG9uZW50QmF0dGxlQ2FyZCA9IGNoYXJhY3RlcnNbMF07XG4gICAgY29uc3Qgc2hhcmVkRGVjayA9IHR1dG9yaWFsRGVjay5zbGljZSg0KS5tYXAoY2FyZCA9PiBjYXJkLmlkKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdHJ1Y3R1cmVkQ2xvbmUoU1RBUlRJTkdfR0FNRSksXG4gICAgICBzdGF0dXM6ICdpbl9wcm9ncmVzcycsXG4gICAgICB0dXJuT3duZXI6ICdQMScsXG4gICAgICB0dXJuQ291bnQ6IDEsXG4gICAgICBtYXRjaFNjb3JlOiB7IFAxOiAwLCBQMjogMCB9LFxuICAgICAgc2hhcmVkRGVjayxcbiAgICAgIHBsYWNlWm9uZTogcGxhY2VzWzBdID8gW3BsYWNlc1swXS5pZF0gOiBbXSxcbiAgICAgIGhpc3Rvcnlab25lOiBbXSxcbiAgICAgIHBsYXllcnM6IHtcbiAgICAgICAgUDE6IHRoaXMuY3JlYXRlVHV0b3JpYWxQbGF5ZXIoJ1AxJywgcGxheWVyTGVhZGVyLCBzdGFydGluZ09mZmVyaW5nLCBwbGF5ZXJIYW5kLCBbXSksXG4gICAgICAgIFAyOiB0aGlzLmNyZWF0ZVR1dG9yaWFsUGxheWVyKFxuICAgICAgICAgICdQMicsXG4gICAgICAgICAgb3Bwb25lbnRMZWFkZXIsXG4gICAgICAgICAgc3RhcnRpbmdPZmZlcmluZyxcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgb3Bwb25lbnRCYXR0bGVDYXJkID8gW3RoaXMuY3JlYXRlQ2hhcmFjdGVySW5zdGFuY2Uob3Bwb25lbnRCYXR0bGVDYXJkLCAnUDInLCAwLCAnb3BwXzAwMScpXSA6IFtdLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIGxvZzogW3RoaXMudCgnY2hyaXN0aWFuaXR5VHV0b3JpYWxMb2FkZWQnKV0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVHV0b3JpYWxQbGF5ZXIoXG4gICAgc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCxcbiAgICBsZWFkZXI6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uIHwgdW5kZWZpbmVkLFxuICAgIHN0YXJ0aW5nT2ZmZXJpbmc6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uLFxuICAgIGhhbmQ6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICAgIGJhdHRsZVpvbmU6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlW10sXG4gICk6IENocmlzdGlhbml0eVBsYXllclN0YXRlIHtcbiAgICBjb25zdCBiYXNlID0gU1RBUlRJTkdfR0FNRS5wbGF5ZXJzW3NlYXRdO1xuICAgIGNvbnN0IGxlYWRlckxpZmUgPSBsZWFkZXI/LmxlYWRlckxpZmUgPz8gbGVhZGVyPy5saWZlID8/IGJhc2UubGVhZGVyTWF4SHA7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0cnVjdHVyZWRDbG9uZShiYXNlKSxcbiAgICAgIGxlYWRlckNhcmRJZDogbGVhZGVyPy5pZCxcbiAgICAgIGxlYWRlck5hbWU6IGxlYWRlciA/IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGxlYWRlcikubmFtZSA6IGJhc2UubGVhZGVyTmFtZSxcbiAgICAgIGxlYWRlckhwOiBsZWFkZXJMaWZlLFxuICAgICAgbGVhZGVyTWF4SHA6IGxlYWRlckxpZmUsXG4gICAgICBvZmZlcmluZ3M6IFt0aGlzLmNyZWF0ZU9mZmVyaW5nSW5zdGFuY2Uoc3RhcnRpbmdPZmZlcmluZywgc2VhdCwgYCR7c2VhdC50b0xvd2VyQ2FzZSgpfV9vZmZlcmluZ18wMDFgKV0sXG4gICAgICBvZmZlcmluZ1BsYXllZFRoaXNUdXJuOiBmYWxzZSxcbiAgICAgIGhhbmQsXG4gICAgICBoYW5kQ291bnQ6IGhhbmQgPyB1bmRlZmluZWQgOiA0LFxuICAgICAgYmF0dGxlWm9uZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVPZmZlcmluZ0luc3RhbmNlKGNhcmQ6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uLCBzZWF0OiBDaHJpc3RpYW5pdHlTZWF0LCBpbnN0YW5jZUlkOiBzdHJpbmcpOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlIHtcbiAgICBjb25zdCB2YWx1ZSA9IGNhcmQub2ZmZXJpbmdWYWx1ZSA/PyBjYXJkLmxpZmUgPz8gMTtcbiAgICByZXR1cm4ge1xuICAgICAgaW5zdGFuY2VJZCxcbiAgICAgIGNhcmRJZDogY2FyZC5pZCxcbiAgICAgIG5hbWU6IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNhcmQpLm5hbWUsXG4gICAgICBvd25lcjogc2VhdCxcbiAgICAgIHJlYWR5OiB0cnVlLFxuICAgICAgdmFsdWUsXG4gICAgICBhYmlsaXR5TmFtZTogY2FyZC5hYmlsaXR5TmFtZSxcbiAgICAgIGFiaWxpdHlUZXh0OiBjYXJkLmFiaWxpdHlUZXh0LFxuICAgICAgYWJpbGl0eUNvc3Q6IGNhcmQuYWJpbGl0eUNvc3QsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2hhcmFjdGVySW5zdGFuY2UoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24sIHNlYXQ6IENocmlzdGlhbml0eVNlYXQsIHNsb3Q6IG51bWJlciwgaW5zdGFuY2VJZDogc3RyaW5nKTogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2Uge1xuICAgIGNvbnN0IGxpZmUgPSBjYXJkLmxpZmUgPz8gMTtcbiAgICByZXR1cm4ge1xuICAgICAgaW5zdGFuY2VJZCxcbiAgICAgIGNhcmRJZDogY2FyZC5pZCxcbiAgICAgIG5hbWU6IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNhcmQpLm5hbWUsXG4gICAgICBvd25lcjogc2VhdCxcbiAgICAgIGNvbnRyb2xsZXI6IHNlYXQsXG4gICAgICBzbG90LFxuICAgICAgYXR0YWNrOiBjYXJkLmF0dGFjayA/PyAwLFxuICAgICAgY3VycmVudEhwOiBsaWZlLFxuICAgICAgbWF4SHA6IGxpZmUsXG4gICAgICBjYW5BdHRhY2s6IGZhbHNlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGZpbmRDYXJkKGNhcmRzOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbltdLCBuYW1lUGFydDogc3RyaW5nKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBjYXJkcy5maW5kKGNhcmQgPT4gdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoY2FyZCkubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKG5hbWVQYXJ0LnRvTG93ZXJDYXNlKCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FyZFNvcnRLZXkoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbGxlY3RvciA9IGNhcmQuY29sbGVjdG9yTnVtYmVyID8/IGNhcmQuaWQ7XG4gICAgcmV0dXJuIGAke2NhcmQuZWRpdGlvbiA/PyAnJ30tJHtjb2xsZWN0b3IucGFkU3RhcnQoOCwgJzAnKX0tJHt0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKS5uYW1lfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FyZERlZmluaXRpb24oY2FyZElkOiBzdHJpbmcpOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuY2FyZENhdGFsb2coKVtjYXJkSWRdID8/IFNUQVJURVJfQ0FSRFNbY2FyZElkXSA/PyBTVEFSVEVSX0NBUkRTWydwX3Njb3V0J107XG4gIH1cblxuICBwcml2YXRlIHRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbik6IENocmlzdGlhbml0eVJlc29sdmVkQ2FyZFRleHQge1xuICAgIGNvbnN0IGxhbmcgPSB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gY2FyZC5pMThuPy5bbGFuZ10gPz8gY2FyZC5pMThuPy5bJ2VzJ107XG4gICAgY29uc3QgcHJpbWFyeUFiaWxpdHkgPSB0cmFuc2xhdGlvbj8uYWJpbGl0aWVzPy5bMF0gPz8gY2FyZC5hYmlsaXRpZXM/LlswXTtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdHJhbnNsYXRpb24/Lm5hbWUgPz8gY2FyZC5uYW1lLFxuICAgICAgZnVsbE5hbWU6IHRyYW5zbGF0aW9uPy5mdWxsTmFtZSA/PyBjYXJkLmZ1bGxOYW1lLFxuICAgICAgdmVyc2VUZXh0OiB0cmFuc2xhdGlvbj8udmVyc2VUZXh0ID8/IGNhcmQudmVyc2VUZXh0LFxuICAgICAgc2NyaXB0dXJlOiB0cmFuc2xhdGlvbj8uc2NyaXB0dXJlID8/IGNhcmQuc2NyaXB0dXJlLFxuICAgICAgYWJpbGl0eU5hbWU6IHRyYW5zbGF0aW9uPy5hYmlsaXR5TmFtZSA/PyBwcmltYXJ5QWJpbGl0eT8ubmFtZSA/PyBjYXJkLmFiaWxpdHlOYW1lLFxuICAgICAgYWJpbGl0eVRleHQ6IHRyYW5zbGF0aW9uPy5hYmlsaXR5VGV4dCA/PyBwcmltYXJ5QWJpbGl0eT8udGV4dCA/PyBjYXJkLmFiaWxpdHlUZXh0LFxuICAgICAgYWJpbGl0aWVzOiB0cmFuc2xhdGlvbj8uYWJpbGl0aWVzID8/IGNhcmQuYWJpbGl0aWVzLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FyZERpc3BsYXlOYW1lKGNhcmRJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQodGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpKS5uYW1lO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBsYXllckxlYWRlckRpc3BsYXlOYW1lKHBsYXllcjogQ2hyaXN0aWFuaXR5UGxheWVyU3RhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBwbGF5ZXIubGVhZGVyQ2FyZElkID8gdGhpcy5jYXJkRGlzcGxheU5hbWUocGxheWVyLmxlYWRlckNhcmRJZCkgOiBwbGF5ZXIubGVhZGVyTmFtZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYXRhbG9nU3RhdHVzTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuY2F0YWxvZ0xvYWRTdGF0ZSgpO1xuICAgIGlmIChzdGF0ZSA9PT0gJ3JlYWR5JykgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5Q2F0YWxvZ1JlYWR5Jyk7XG4gICAgaWYgKHN0YXRlID09PSAnZmFsbGJhY2snKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlDYXRhbG9nRmFsbGJhY2snKTtcbiAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlDYXRhbG9nTG9hZGluZycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN0YXJ0RmVhdHVyZWRDYXJkVHJhbnNmb3JtKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRyYW5zZm9ybXMgPSBbXG4gICAgICAndHJhbnNsYXRlWCgtMS40cmVtKSByb3RhdGUoLTlkZWcpJyxcbiAgICAgICd0cmFuc2xhdGVZKC0wLjU1cmVtKSByb3RhdGUoMmRlZyknLFxuICAgICAgJ3RyYW5zbGF0ZVgoMS40cmVtKSByb3RhdGUoMTBkZWcpJyxcbiAgICBdO1xuICAgIHJldHVybiB0cmFuc2Zvcm1zW2luZGV4XSA/PyAnbm9uZSc7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FyZFR5cGVMYWJlbChjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbik6IHN0cmluZyB7XG4gICAgY29uc3QgbGFiZWxzOiBSZWNvcmQ8Q2hyaXN0aWFuaXR5Q2FyZFR5cGUsIHN0cmluZz4gPSB7XG4gICAgICBhY3Rpb246IHRoaXMudCgnY2hyaXN0aWFuaXR5QWN0aW9uQ2FyZCcpLFxuICAgICAgY2hhcmFjdGVyOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlckNhcmQnKSxcbiAgICAgIGV2ZW50OiB0aGlzLnQoJ2NocmlzdGlhbml0eUV2ZW50Q2FyZCcpLFxuICAgICAgbGVhZGVyOiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSxcbiAgICAgIG9mZmVyaW5nOiB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQ2FyZCcpLFxuICAgICAgcGxhY2U6IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VDYXJkJyksXG4gICAgICB0b29sOiB0aGlzLnQoJ2NocmlzdGlhbml0eVRvb2xDYXJkJyksXG4gICAgICB3aXNkb206IHRoaXMudCgnY2hyaXN0aWFuaXR5V2lzZG9tQ2FyZCcpLFxuICAgIH07XG4gICAgcmV0dXJuIGxhYmVsc1tjYXJkLnR5cGVdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRlZmluaXRpb25Ub1JlbmRlckNhcmQoXG4gICAgY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24sXG4gICAgb3ZlcnJpZGVzOiBQYXJ0aWFsPENocmlzdGlhbml0eUNhcmRSZW5kZXJNb2RlbD4gPSB7fSxcbiAgKTogQ2hyaXN0aWFuaXR5Q2FyZFJlbmRlck1vZGVsIHtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoY2FyZCk7XG4gICAgY29uc3QgYmFzZTogQ2hyaXN0aWFuaXR5Q2FyZFJlbmRlck1vZGVsID0ge1xuICAgICAgaWQ6IGNhcmQuaWQsXG4gICAgICBuYW1lOiB0ZXh0Lm5hbWUsXG4gICAgICB0eXBlOiBjYXJkLnR5cGUsXG4gICAgICB0eXBlTGFiZWw6IHRoaXMuY2FyZFR5cGVMYWJlbChjYXJkKSxcbiAgICAgIGNvc3Q6IGNhcmQuY29zdCxcbiAgICAgIG9mZmVyaW5nVmFsdWU6IGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyA/IGNhcmQub2ZmZXJpbmdWYWx1ZSA/PyBjYXJkLmxpZmUgOiB1bmRlZmluZWQsXG4gICAgICBhdHRhY2s6IGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicgPyBjYXJkLmF0dGFjayA6IHVuZGVmaW5lZCxcbiAgICAgIGxpZmU6IGNhcmQubGlmZSxcbiAgICAgIGN1cnJlbnRIcDogY2FyZC5saWZlLFxuICAgICAgbWF4SHA6IGNhcmQubGlmZSxcbiAgICAgIGFiaWxpdHlOYW1lOiB0ZXh0LmFiaWxpdHlOYW1lLFxuICAgICAgYWJpbGl0eVRleHQ6IHRleHQuYWJpbGl0eVRleHQgfHwgdGhpcy5kZWZhdWx0Q2FyZEJvZHkoY2FyZC50eXBlKSxcbiAgICAgIHZlcnNlVGV4dDogdGV4dC52ZXJzZVRleHQsXG4gICAgICBzY3JpcHR1cmU6IHRleHQuc2NyaXB0dXJlLFxuICAgICAgZWRpdGlvbjogY2FyZC5lZGl0aW9uLFxuICAgICAgY29sbGVjdG9yTnVtYmVyOiBjYXJkLmNvbGxlY3Rvck51bWJlcixcbiAgICAgIGVkaXRpb25JY29uOiBjYXJkLmVkaXRpb25JY29uID8/IChjYXJkLmVkaXRpb24gPT09ICdHRU4nID8gR0VORVNJU19JQ09OX1VSTCA6IHVuZGVmaW5lZCksXG4gICAgICB5ZWFyOiBjYXJkLnllYXIsXG4gICAgICBhdXRob3I6IGNhcmQuYXV0aG9yLFxuICAgICAgcmFyaXR5OiBjYXJkLnJhcml0eSxcbiAgICAgIGltYWdlVXJsOiBjYXJkLmltYWdlVXJsLFxuICAgICAgZnJvbnRUZW1wbGF0ZTogY2FyZC5mcm9udFRlbXBsYXRlID8/IChjYXJkLmVkaXRpb24gPT09ICdHRU4nID8gJ2dlbmVzaXMtY2xhc3NpYycgOiB1bmRlZmluZWQpLFxuICAgIH07XG4gICAgcmV0dXJuIHsgLi4uYmFzZSwgLi4ub3ZlcnJpZGVzIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgaGlkZGVuQ2FyZFJlbmRlckNhcmQoKTogQ2hyaXN0aWFuaXR5Q2FyZFJlbmRlck1vZGVsIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6ICdjaHJpc3RpYW5pdHktaGlkZGVuLWNhcmQnLFxuICAgICAgbmFtZTogdGhpcy50KCdjaHJpc3RpYW5pdHlIaWRkZW5DYXJkJyksXG4gICAgICB0eXBlOiAnZXZlbnQnLFxuICAgICAgdHlwZUxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eUhpZGRlbkNhcmQnKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0Q2FyZEJvZHkodHlwZTogQ2hyaXN0aWFuaXR5Q2FyZFR5cGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJvZGllczogUmVjb3JkPENocmlzdGlhbml0eUNhcmRUeXBlLCBzdHJpbmc+ID0ge1xuICAgICAgYWN0aW9uOiB0aGlzLnQoJ2NocmlzdGlhbml0eUFjdGlvblJ1bGVCb2R5JyksXG4gICAgICBjaGFyYWN0ZXI6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyQm9keScpLFxuICAgICAgZXZlbnQ6IHRoaXMudCgnY2hyaXN0aWFuaXR5RXZlbnRSdWxlQm9keScpLFxuICAgICAgbGVhZGVyOiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckJvZHknKSxcbiAgICAgIG9mZmVyaW5nOiB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQm9keScpLFxuICAgICAgcGxhY2U6IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VSdWxlQm9keScpLFxuICAgICAgdG9vbDogdGhpcy50KCdjaHJpc3RpYW5pdHlUb29sUnVsZUJvZHknKSxcbiAgICAgIHdpc2RvbTogdGhpcy50KCdjaHJpc3RpYW5pdHlXaXNkb21SdWxlQm9keScpLFxuICAgIH07XG4gICAgcmV0dXJuIGJvZGllc1t0eXBlXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGFyYWN0ZXJSZW5kZXJDYXJkKGNhcmQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogQ2hyaXN0aWFuaXR5Q2FyZFJlbmRlck1vZGVsIHtcbiAgICBjb25zdCBkZWZpbml0aW9uID0gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkLmNhcmRJZCk7XG4gICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChkZWZpbml0aW9uLCB7XG4gICAgICBpZDogY2FyZC5pbnN0YW5jZUlkLFxuICAgICAgYXR0YWNrOiBjYXJkLmF0dGFjayxcbiAgICAgIGxpZmU6IGNhcmQubWF4SHAsXG4gICAgICBjdXJyZW50SHA6IGNhcmQuY3VycmVudEhwLFxuICAgICAgbWF4SHA6IGNhcmQubWF4SHAsXG4gICAgICBzdGF0dXNUZXh0OiBjYXJkLmNhbkF0dGFjayA/IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyUmVhZHknKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyRXhoYXVzdGVkJyksXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbGVhZGVyUmVuZGVyQ2FyZChwbGF5ZXI6IENocmlzdGlhbml0eVBsYXllclN0YXRlKTogQ2hyaXN0aWFuaXR5Q2FyZFJlbmRlck1vZGVsIHtcbiAgICBpZiAocGxheWVyLmxlYWRlckNhcmRJZCkge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXMuY2FyZERlZmluaXRpb24ocGxheWVyLmxlYWRlckNhcmRJZCk7XG4gICAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9uVG9SZW5kZXJDYXJkKGRlZmluaXRpb24sIHtcbiAgICAgICAgaWQ6IGAke3BsYXllci5zZWF0fS1sZWFkZXJgLFxuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChkZWZpbml0aW9uKS5uYW1lLFxuICAgICAgICB0eXBlOiAnbGVhZGVyJyxcbiAgICAgICAgdHlwZUxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSxcbiAgICAgICAgbGlmZTogcGxheWVyLmxlYWRlckhwLFxuICAgICAgICBjdXJyZW50SHA6IHBsYXllci5sZWFkZXJIcCxcbiAgICAgICAgbWF4SHA6IHBsYXllci5sZWFkZXJNYXhIcCxcbiAgICAgICAgc3RhdHVzVGV4dDogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJCb2R5JyksXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBgJHtwbGF5ZXIuc2VhdH0tbGVhZGVyYCxcbiAgICAgIG5hbWU6IHBsYXllci5sZWFkZXJOYW1lLFxuICAgICAgdHlwZTogJ2xlYWRlcicsXG4gICAgICB0eXBlTGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLFxuICAgICAgbGlmZTogcGxheWVyLmxlYWRlckhwLFxuICAgICAgY3VycmVudEhwOiBwbGF5ZXIubGVhZGVySHAsXG4gICAgICBtYXhIcDogcGxheWVyLmxlYWRlck1heEhwLFxuICAgICAgYWJpbGl0eU5hbWU6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLFxuICAgICAgYWJpbGl0eVRleHQ6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQm9keScpLFxuICAgICAgdmVyc2VUZXh0OiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckJvZHknKSxcbiAgICAgIGVkaXRpb246ICdNVlAnLFxuICAgICAgY29sbGVjdG9yTnVtYmVyOiAnTElERVInLFxuICAgICAgZWRpdGlvbkljb246IEdFTkVTSVNfSUNPTl9VUkwsXG4gICAgICB5ZWFyOiAnMjAyNicsXG4gICAgICBhdXRob3I6ICdNVlAnLFxuICAgICAgcmFyaXR5OiAnbGVnZW5kYXJ5JyxcbiAgICAgIGZyb250VGVtcGxhdGU6ICdnZW5lc2lzLWNsYXNzaWMnLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdSZW5kZXJDYXJkKG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlKTogQ2hyaXN0aWFuaXR5Q2FyZFJlbmRlck1vZGVsIHtcbiAgICBjb25zdCBkZWZpbml0aW9uID0gdGhpcy5jYXJkRGVmaW5pdGlvbihvZmZlcmluZy5jYXJkSWQpO1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChkZWZpbml0aW9uKTtcbiAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9uVG9SZW5kZXJDYXJkKGRlZmluaXRpb24sIHtcbiAgICAgIGlkOiBvZmZlcmluZy5pbnN0YW5jZUlkLFxuICAgICAgbmFtZTogdGV4dC5uYW1lLFxuICAgICAgdHlwZTogJ29mZmVyaW5nJyxcbiAgICAgIHR5cGVMYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSxcbiAgICAgIG9mZmVyaW5nVmFsdWU6IG9mZmVyaW5nLnZhbHVlLFxuICAgICAgbGlmZTogb2ZmZXJpbmcudmFsdWUsXG4gICAgICBjdXJyZW50SHA6IG9mZmVyaW5nLnZhbHVlLFxuICAgICAgbWF4SHA6IG9mZmVyaW5nLnZhbHVlLFxuICAgICAgYWJpbGl0eU5hbWU6IHRleHQuYWJpbGl0eU5hbWUgPz8gb2ZmZXJpbmcuYWJpbGl0eU5hbWUsXG4gICAgICBhYmlsaXR5VGV4dDogdGV4dC5hYmlsaXR5VGV4dCA/PyBvZmZlcmluZy5hYmlsaXR5VGV4dCA/PyB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nTm9BYmlsaXR5JyksXG4gICAgICBzdGF0dXNUZXh0OiBvZmZlcmluZy5yZWFkeSA/IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdSZWFkeScpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0V4aGF1c3RlZCcpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmV2aWV3UmVuZGVyVHlwZSh0eXBlTGFiZWw6IHN0cmluZyk6IENocmlzdGlhbml0eUNhcmRSZW5kZXJUeXBlIHtcbiAgICBpZiAodHlwZUxhYmVsID09PSB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSkgcmV0dXJuICdsZWFkZXInO1xuICAgIGlmICh0eXBlTGFiZWwgPT09IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdDYXJkJykpIHJldHVybiAnb2ZmZXJpbmcnO1xuICAgIHJldHVybiAnY2hhcmFjdGVyJztcbiAgfVxuXG4gIHByb3RlY3RlZCBjYXJkVHlwZUljb25VcmwoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNhcmRUeXBlSWNvblVybEZvclR5cGUoY2FyZC50eXBlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwcmV2aWV3VHlwZUljb25VcmwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmV2aWV3ID0gdGhpcy5zZWxlY3RlZFByZXZpZXcoKTtcbiAgICBpZiAocHJldmlldz8uZXllYnJvdyA9PT0gdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJykpIHJldHVybiB0aGlzLmNhcmRUeXBlSWNvblVybEZvclR5cGUoJ2xlYWRlcicpO1xuICAgIGlmIChwcmV2aWV3Py5leWVicm93ID09PSB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQ2FyZCcpKSByZXR1cm4gdGhpcy5jYXJkVHlwZUljb25VcmxGb3JUeXBlKCdvZmZlcmluZycpO1xuICAgIHJldHVybiB0aGlzLmNhcmRUeXBlSWNvblVybEZvclR5cGUoJ2NoYXJhY3RlcicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhcmRUeXBlSWNvblVybEZvclR5cGUodHlwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gdHlwZS50b0xvd2VyQ2FzZSgpLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpO1xuICAgIGNvbnN0IGljb24gPSBub3JtYWxpemVkID09PSAnbGlkZXInID8gJ2xlYWRlcicgOiBub3JtYWxpemVkID09PSAncGVyc29uYWplJyA/ICdjaGFyYWN0ZXInIDogbm9ybWFsaXplZCA9PT0gJ29mcmVuZGEnID8gJ29mZmVyaW5nJyA6IG5vcm1hbGl6ZWQ7XG4gICAgcmV0dXJuIGBhc3NldHMvZ2FtZXMvY2hyaXN0aWFuaXR5L2ljb25zLyR7aWNvbn0ucG5nYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvZmZlcmluZ1BpcHModmFsdWU6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCk6IHVua25vd25bXSB7XG4gICAgY29uc3QgY291bnQgPSBOdW1iZXIodmFsdWUpO1xuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKGNvdW50KSB8fCBjb3VudCA8PSAwKSByZXR1cm4gW107XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IE1hdGgubWluKE1hdGguZmxvb3IoY291bnQpLCA1KSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBiYXR0bGVTbG90cyhzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogQXJyYXk8eyB0cmFja0lkOiBzdHJpbmc7IGNhcmQ/OiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSB9PiB7XG4gICAgY29uc3QgY2FyZHMgPSB0aGlzLmdhbWUoKS5wbGF5ZXJzW3NlYXRdLmJhdHRsZVpvbmU7XG4gICAgY29uc3QgcG9zaXRpb25lZENhcmRzID0gbmV3IE1hcDxudW1iZXIsIENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlPigpO1xuICAgIGNhcmRzLmZvckVhY2goKGNhcmQsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBzbG90ID0gTnVtYmVyLmlzSW50ZWdlcihjYXJkLnNsb3QpID8gY2FyZC5zbG90ID8/IGluZGV4IDogaW5kZXg7XG4gICAgICBpZiAoc2xvdCA+PSAwICYmIHNsb3QgPCA0ICYmICFwb3NpdGlvbmVkQ2FyZHMuaGFzKHNsb3QpKSB7XG4gICAgICAgIHBvc2l0aW9uZWRDYXJkcy5zZXQoc2xvdCwgY2FyZCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IDQgfSwgKF8sIGluZGV4KSA9PiAoe1xuICAgICAgdHJhY2tJZDogcG9zaXRpb25lZENhcmRzLmdldChpbmRleCk/Lmluc3RhbmNlSWQgPz8gYCR7c2VhdH0tZW1wdHktJHtpbmRleH1gLFxuICAgICAgY2FyZDogcG9zaXRpb25lZENhcmRzLmdldChpbmRleCksXG4gICAgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJhdHRsZVNsb3REcm9wSWQoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjaHJpc3RpYW5pdHktYmF0dGxlLXNsb3QtJHtpbmRleH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3BUYXJnZXRJZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbJ2NocmlzdGlhbml0eS1vZmZlcmluZ3MtZHJvcCcsICdjaHJpc3RpYW5pdHktcGxhY2UtZHJvcCcsIC4uLnRoaXMuYmF0dGxlU2xvdHMoJ1AxJykubWFwKChfLCBpbmRleCkgPT4gdGhpcy5iYXR0bGVTbG90RHJvcElkKGluZGV4KSldO1xuICB9XG5cbiAgcHJvdGVjdGVkIG93bkF0dGFja2VyRHJvcFNvdXJjZUlkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsnY2hyaXN0aWFuaXR5LXBsYXllci1iYXR0bGUtc291cmNlJ107XG4gIH1cblxuICBwcm90ZWN0ZWQgYXR0YWNrVGFyZ2V0RHJvcElkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsnY2hyaXN0aWFuaXR5LW9wcG9uZW50LWxlYWRlci1kcm9wJywgLi4udGhpcy5vcHBvbmVudCgpLmJhdHRsZVpvbmUubWFwKGNhcmQgPT4gdGhpcy5vcHBvbmVudFRhcmdldERyb3BJZChjYXJkKSldO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9wcG9uZW50VGFyZ2V0RHJvcElkKGNhcmQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNocmlzdGlhbml0eS1vcHBvbmVudC10YXJnZXQtJHtjYXJkLmluc3RhbmNlSWR9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b3BIaXN0b3J5Q2FyZCgpOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiB8IG51bGwge1xuICAgIGNvbnN0IGNhcmRJZCA9IHRoaXMuZ2FtZSgpLmhpc3Rvcnlab25lLmF0KC0xKTtcbiAgICByZXR1cm4gY2FyZElkID8gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpIDogbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b3BPZmZlcmluZyhzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmdhbWUoKS5wbGF5ZXJzW3NlYXRdLm9mZmVyaW5ncy5hdCgtMSkgPz8gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY3RpdmVQbGFjZUNhcmQoKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24gfCBudWxsIHtcbiAgICBjb25zdCBjYXJkSWQgPSB0aGlzLmdhbWUoKS5wbGFjZVpvbmVbMF07XG4gICAgcmV0dXJuIGNhcmRJZCA/IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKSA6IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNPcHBvbmVudExlYWRlclRhcmdldCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnNlbGVjdGVkQXR0YWNrZXIoKSAmJiAhdGhpcy5oYXNPcHBvbmVudEd1YXJkcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzT3Bwb25lbnRDaGFyYWN0ZXJUYXJnZXQoY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFjYXJkICYmICEhdGhpcy5zZWxlY3RlZEF0dGFja2VyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGlkZGVuSGFuZENhcmRzKGNvdW50OiBudW1iZXIpOiB1bmtub3duW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBjb3VudCB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmYW5UcmFuc2Zvcm0oaW5kZXg6IG51bWJlciwgdG90YWw6IG51bWJlciwgb3Bwb25lbnQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIGlmICh0b3RhbCA8PSAxKSByZXR1cm4gJ25vbmUnO1xuICAgIGNvbnN0IGNlbnRlciA9ICh0b3RhbCAtIDEpIC8gMjtcbiAgICBjb25zdCBvZmZzZXQgPSBpbmRleCAtIGNlbnRlcjtcbiAgICBjb25zdCByb3RhdGUgPSBvZmZzZXQgKiAob3Bwb25lbnQgPyA2IDogNSk7XG4gICAgY29uc3QgbGlmdCA9IE1hdGguYWJzKG9mZnNldCkgKiAwLjI1O1xuICAgIGNvbnN0IGhvdmVyTGlmdCA9IG9wcG9uZW50ID8gMCA6IHRoaXMuaGFuZFdhdmVMaWZ0KGluZGV4KTtcbiAgICBjb25zdCBzY2FsZSA9IG9wcG9uZW50ID8gMSA6IHRoaXMuaGFuZFdhdmVTY2FsZShpbmRleCk7XG4gICAgY29uc3QgZmFuTGlmdCA9IG9wcG9uZW50ID8gTWF0aC5hYnMob2Zmc2V0KSAqIDAuMjIgOiBsaWZ0ICsgaG92ZXJMaWZ0O1xuICAgIGNvbnN0IGZhblNwcmVhZCA9IG9wcG9uZW50ID8gb2Zmc2V0ICogMC4wMiA6IDA7XG4gICAgcmV0dXJuIGB0cmFuc2xhdGUoJHtmYW5TcHJlYWR9cmVtLCAke2ZhbkxpZnR9cmVtKSByb3RhdGUoJHtyb3RhdGV9ZGVnKSBzY2FsZSgke3NjYWxlfSlgO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRDYXJkWkluZGV4KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGhvdmVyZWQgPSB0aGlzLmhvdmVyZWRIYW5kSW5kZXgoKTtcbiAgICBpZiAoaG92ZXJlZCA9PT0gbnVsbCkgcmV0dXJuIDI7XG4gICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLmFicyhpbmRleCAtIGhvdmVyZWQpO1xuICAgIHJldHVybiBNYXRoLm1heCgyLCA4IC0gZGlzdGFuY2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEhvdmVyZWRIYW5kSW5kZXgoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuaG92ZXJlZEhhbmRJbmRleC5zZXQoaW5kZXgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFySG92ZXJlZEhhbmRJbmRleCgpOiB2b2lkIHtcbiAgICB0aGlzLmhvdmVyZWRIYW5kSW5kZXguc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbGVhc2VIb3ZlcmVkSGFuZChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LnBvaW50ZXJUeXBlICE9PSAnbW91c2UnKSB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsZWFySG92ZXJlZEhhbmRJbmRleCgpLCAxODApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZFdhdmVMaWZ0KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGhvdmVyZWQgPSB0aGlzLmhvdmVyZWRIYW5kSW5kZXgoKTtcbiAgICBpZiAoaG92ZXJlZCA9PT0gbnVsbCkgcmV0dXJuIDA7XG4gICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLmFicyhpbmRleCAtIGhvdmVyZWQpO1xuICAgIGlmIChkaXN0YW5jZSA9PT0gMCkgcmV0dXJuIC0xLjE1O1xuICAgIGlmIChkaXN0YW5jZSA9PT0gMSkgcmV0dXJuIC0wLjU4O1xuICAgIGlmIChkaXN0YW5jZSA9PT0gMikgcmV0dXJuIC0wLjIyO1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kV2F2ZVNjYWxlKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGhvdmVyZWQgPSB0aGlzLmhvdmVyZWRIYW5kSW5kZXgoKTtcbiAgICBpZiAoaG92ZXJlZCA9PT0gbnVsbCkgcmV0dXJuIDE7XG4gICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLmFicyhpbmRleCAtIGhvdmVyZWQpO1xuICAgIGlmIChkaXN0YW5jZSA9PT0gMCkgcmV0dXJuIDEuMDY7XG4gICAgaWYgKGRpc3RhbmNlID09PSAxKSByZXR1cm4gMS4wMztcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkeU9mZmVyaW5ncyhwbGF5ZXI6IENocmlzdGlhbml0eVBsYXllclN0YXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gcmVhZHlPZmZlcmluZ3MocGxheWVyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b3RhbE9mZmVyaW5ncyhwbGF5ZXI6IENocmlzdGlhbml0eVBsYXllclN0YXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdG90YWxPZmZlcmluZ3MocGxheWVyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYW5QbGF5KGNhcmQ6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNhblBsYXlDYXJkKHRoaXMuZ2FtZSgpLCAnUDEnLCBjYXJkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kQ2FyZEFjdGlvbkxhYmVsKGNhcmQ6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy50KCdjaHJpc3RpYW5pdHlTZWxlY3RDYXJkJyl9OiAke3RoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNhcmQpLm5hbWV9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kQ2FyZFRlc3RJZChjYXJkSWQ6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjaHJpc3RpYW5pdHktaGFuZC1jYXJkLSR7aW5kZXh9LSR7dGhpcy50ZXN0SWRQYXJ0KGNhcmRJZCl9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBiYXR0bGVDYXJkVGVzdElkKHNlYXQ6IENocmlzdGlhbml0eVNlYXQsIGNhcmQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNocmlzdGlhbml0eS1iYXR0bGUtY2FyZC0ke3NlYXR9LSR7dGhpcy50ZXN0SWRQYXJ0KGNhcmQuaW5zdGFuY2VJZCl9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBiYXR0bGVTbG90VGVzdElkKHNlYXQ6IENocmlzdGlhbml0eVNlYXQsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LWJhdHRsZS1zbG90LSR7c2VhdH0tJHtpbmRleH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhpc3RvcnlDYXJkVGVzdElkKGNhcmRJZDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNocmlzdGlhbml0eS1oaXN0b3J5LWNhcmQtJHtpbmRleH0tJHt0aGlzLnRlc3RJZFBhcnQoY2FyZElkKX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9mZmVyaW5nc0RyYXdlclRlc3RJZChzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNocmlzdGlhbml0eS1vZmZlcmluZ3MtZHJhd2VyLSR7c2VhdH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9mZmVyaW5nTGlzdFRlc3RJZChzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0LSR7c2VhdH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9mZmVyaW5nQ2FyZFRlc3RJZChvZmZlcmluZzogQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZC0ke29mZmVyaW5nLm93bmVyfS0ke3RoaXMudGVzdElkUGFydChvZmZlcmluZy5pbnN0YW5jZUlkKX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9mZmVyaW5nVXNlQnV0dG9uVGVzdElkKG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNocmlzdGlhbml0eS11c2Utb2ZmZXJpbmctJHtvZmZlcmluZy5vd25lcn0tJHt0aGlzLnRlc3RJZFBhcnQob2ZmZXJpbmcuaW5zdGFuY2VJZCl9YDtcbiAgfVxuXG4gIHByaXZhdGUgdGVzdElkUGFydCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtejAtOV0rL2csICctJykucmVwbGFjZSgvXi18LSQvZywgJycpLnNsaWNlKDAsIDQ4KSB8fCAnaXRlbSc7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuUGxheVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZEhhbmRDYXJkKCk7XG4gICAgcmV0dXJuICEhc2VsZWN0ZWQgJiYgdGhpcy5jYW5QbGF5KHRoaXMuY2FyZERlZmluaXRpb24oc2VsZWN0ZWQpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RlZEFjdGlvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkQ2FyZERlZmluaXRpb24oKTtcbiAgICBpZiAoIXNlbGVjdGVkKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlQbGF5Q2FyZCcpO1xuICAgIGlmIChzZWxlY3RlZC50eXBlID09PSAnb2ZmZXJpbmcnKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlQbGF5T2ZmZXJpbmcnKTtcbiAgICBpZiAoc2VsZWN0ZWQudHlwZSA9PT0gJ2NoYXJhY3RlcicpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYXlDaGFyYWN0ZXInKTtcbiAgICBpZiAoc2VsZWN0ZWQudHlwZSA9PT0gJ3BsYWNlJykgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5UGxheVBsYWNlJyk7XG4gICAgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5UGxheUNhcmQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RlZEFjdGlvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZENhcmREZWZpbml0aW9uKCk7XG4gICAgcmV0dXJuICFzZWxlY3RlZCB8fCAhdGhpcy5jYW5QbGF5KHNlbGVjdGVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYW5QbGFjZVNlbGVjdGVkQ2hhcmFjdGVyKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZENhcmREZWZpbml0aW9uKCk7XG4gICAgcmV0dXJuICEhc2VsZWN0ZWQgJiYgc2VsZWN0ZWQudHlwZSA9PT0gJ2NoYXJhY3RlcicgJiYgdGhpcy5jYW5QbGF5KHNlbGVjdGVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYW5QbGFjZVNlbGVjdGVkT2ZmZXJpbmcoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkQ2FyZERlZmluaXRpb24oKTtcbiAgICByZXR1cm4gISFzZWxlY3RlZCAmJiBzZWxlY3RlZC50eXBlID09PSAnb2ZmZXJpbmcnICYmIHRoaXMuY2FuUGxheShzZWxlY3RlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuUGxhY2VTZWxlY3RlZFBsYWNlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZENhcmREZWZpbml0aW9uKCk7XG4gICAgcmV0dXJuICEhc2VsZWN0ZWQgJiYgc2VsZWN0ZWQudHlwZSA9PT0gJ3BsYWNlJyAmJiB0aGlzLmNhblBsYXkoc2VsZWN0ZWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRHJhZ2dpbmdDaGFyYWN0ZXIoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2FyZElkID0gdGhpcy5kcmFnZ2luZ0NhcmRJZCgpO1xuICAgIGlmICghY2FyZElkKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICByZXR1cm4gY2FyZC50eXBlID09PSAnY2hhcmFjdGVyJyAmJiB0aGlzLmNhblBsYXkoY2FyZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNEcmFnZ2luZ09mZmVyaW5nKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNhcmRJZCA9IHRoaXMuZHJhZ2dpbmdDYXJkSWQoKTtcbiAgICBpZiAoIWNhcmRJZCkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCk7XG4gICAgcmV0dXJuIGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyAmJiB0aGlzLmNhblBsYXkoY2FyZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNEcmFnZ2luZ1BsYWNlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNhcmRJZCA9IHRoaXMuZHJhZ2dpbmdDYXJkSWQoKTtcbiAgICBpZiAoIWNhcmRJZCkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCk7XG4gICAgcmV0dXJuIGNhcmQudHlwZSA9PT0gJ3BsYWNlJyAmJiB0aGlzLmNhblBsYXkoY2FyZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RhcnREcmFnZ2luZ0NhcmQoY2FyZElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQoY2FyZElkKTtcbiAgICB0aGlzLmRyYWdnaW5nQ2FyZElkLnNldChjYXJkSWQpO1xuICAgIHRoaXMuY2xvc2VQcmV2aWV3KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW5kRHJhZ2dpbmdDYXJkKCk6IHZvaWQge1xuICAgIHRoaXMuZHJhZ2dpbmdDYXJkSWQuc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhbkRyYWdBdHRhY2tlcihjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdhbWUoKS5zdGF0dXMgPT09ICdpbl9wcm9ncmVzcycgJiYgdGhpcy5pc093blR1cm4oKSAmJiBjYXJkLmNhbkF0dGFjayAmJiAhdGhpcy5jb21iYXRBbmltYXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydERyYWdnaW5nQXR0YWNrZXIoY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2FuRHJhZ0F0dGFja2VyKGNhcmQpKSByZXR1cm47XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICB0aGlzLmNsb3NlUHJldmlldygpO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQoY2FyZCk7XG4gICAgdGhpcy5kcmFnZ2luZ0F0dGFja2VySW5zdGFuY2VJZC5zZXQoY2FyZC5pbnN0YW5jZUlkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBlbmREcmFnZ2luZ0F0dGFja2VyKCk6IHZvaWQge1xuICAgIHRoaXMuZHJhZ2dpbmdBdHRhY2tlckluc3RhbmNlSWQuc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3BPbkJhdHRsZVNsb3QoZXZlbnQ6IENka0RyYWdEcm9wPG51bWJlciwgdW5rbm93biwgc3RyaW5nPiwgc2xvdEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihldmVudC5pdGVtLmRhdGEpO1xuICAgIGlmIChjYXJkLnR5cGUgIT09ICdjaGFyYWN0ZXInKSByZXR1cm47XG4gICAgdGhpcy5wbGF5Q2FyZEZyb21IYW5kKGV2ZW50Lml0ZW0uZGF0YSwgc2xvdEluZGV4KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkcm9wT25PZmZlcmluZ3MoZXZlbnQ6IENka0RyYWdEcm9wPHVua25vd24sIHVua25vd24sIHN0cmluZz4pOiB2b2lkIHtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihldmVudC5pdGVtLmRhdGEpO1xuICAgIGlmIChjYXJkLnR5cGUgIT09ICdvZmZlcmluZycpIHJldHVybjtcbiAgICB0aGlzLnBsYXlDYXJkRnJvbUhhbmQoZXZlbnQuaXRlbS5kYXRhKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkcm9wT25QbGFjZShldmVudDogQ2RrRHJhZ0Ryb3A8dW5rbm93biwgdW5rbm93biwgc3RyaW5nPik6IHZvaWQge1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGV2ZW50Lml0ZW0uZGF0YSk7XG4gICAgaWYgKGNhcmQudHlwZSAhPT0gJ3BsYWNlJykgcmV0dXJuO1xuICAgIHRoaXMucGxheUNhcmRGcm9tSGFuZChldmVudC5pdGVtLmRhdGEpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBsYXlTZWxlY3RlZFBsYWNlT3JJbnNwZWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhblBsYWNlU2VsZWN0ZWRQbGFjZSgpKSB7XG4gICAgICB0aGlzLnBsYXlTZWxlY3RlZENhcmQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnNwZWN0UGxhY2Vab25lKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZHJvcE9uT3Bwb25lbnRDaGFyYWN0ZXIoZXZlbnQ6IENka0RyYWdEcm9wPHVua25vd24sIHVua25vd24sIHN0cmluZz4sIHRhcmdldDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZEF0dGFja2VySW5zdGFuY2UoZXZlbnQuaXRlbS5kYXRhKSkgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQodGhpcy5wbGF5ZXIoKS5iYXR0bGVab25lLmZpbmQoY2FyZCA9PiBjYXJkLmluc3RhbmNlSWQgPT09IGV2ZW50Lml0ZW0uZGF0YSkgPz8gbnVsbCk7XG4gICAgdGhpcy5hdHRhY2tDaGFyYWN0ZXIodGFyZ2V0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkcm9wT25PcHBvbmVudExlYWRlcihldmVudDogQ2RrRHJhZ0Ryb3A8dW5rbm93biwgdW5rbm93biwgc3RyaW5nPik6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkQXR0YWNrZXJJbnN0YW5jZShldmVudC5pdGVtLmRhdGEpIHx8IHRoaXMuaGFzT3Bwb25lbnRHdWFyZHMoKSkgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQodGhpcy5wbGF5ZXIoKS5iYXR0bGVab25lLmZpbmQoY2FyZCA9PiBjYXJkLmluc3RhbmNlSWQgPT09IGV2ZW50Lml0ZW0uZGF0YSkgPz8gbnVsbCk7XG4gICAgdGhpcy5hdHRhY2tMZWFkZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNWYWxpZEF0dGFja2VySW5zdGFuY2UoaW5zdGFuY2VJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2FtZSgpLnN0YXR1cyA9PT0gJ2luX3Byb2dyZXNzJ1xuICAgICAgJiYgdGhpcy5pc093blR1cm4oKVxuICAgICAgJiYgIXRoaXMuY29tYmF0QW5pbWF0aW9uKClcbiAgICAgICYmIHRoaXMucGxheWVyKCkuYmF0dGxlWm9uZS5zb21lKGNhcmQgPT4gY2FyZC5pbnN0YW5jZUlkID09PSBpbnN0YW5jZUlkICYmIGNhcmQuY2FuQXR0YWNrKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RIYW5kQ2FyZChjYXJkSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHdhc1NlbGVjdGVkID0gdGhpcy5zZWxlY3RlZEhhbmRDYXJkKCkgPT09IGNhcmRJZDtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQod2FzU2VsZWN0ZWQgPyBudWxsIDogY2FyZElkKTtcbiAgICB0aGlzLmNsb3NlUHJldmlldygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBsYXlTZWxlY3RlZENhcmQoc2xvdEluZGV4PzogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY2FyZElkID0gdGhpcy5zZWxlY3RlZEhhbmRDYXJkKCk7XG4gICAgaWYgKCFjYXJkSWQpIHJldHVybjtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpO1xuICAgIGNvbnN0IHJlc29sdmVkU2xvdEluZGV4ID0gY2FyZC50eXBlID09PSAnY2hhcmFjdGVyJyAmJiBzbG90SW5kZXggPT09IHVuZGVmaW5lZFxuICAgICAgPyB0aGlzLmZpcnN0QXZhaWxhYmxlQmF0dGxlU2xvdEluZGV4KClcbiAgICAgIDogc2xvdEluZGV4O1xuICAgIHRoaXMucGxheUNhcmRGcm9tSGFuZChjYXJkSWQsIHJlc29sdmVkU2xvdEluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgZmlyc3RBdmFpbGFibGVCYXR0bGVTbG90SW5kZXgoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuYmF0dGxlU2xvdHMoJ1AxJykuZmluZEluZGV4KHNsb3QgPT4gIXNsb3QuY2FyZCk7XG4gICAgcmV0dXJuIGluZGV4ID49IDAgPyBpbmRleCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBwbGF5Q2FyZEZyb21IYW5kKGNhcmRJZDogc3RyaW5nLCBzbG90SW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpO1xuICAgIGlmICghdGhpcy5jYW5QbGF5KGNhcmQpKSByZXR1cm47XG4gICAgbGV0IHBsYXllZE9mZmVyaW5nVmFsdWUgPSAwO1xuICAgIGxldCBzcGVudE9mZmVyaW5ncyA9IDA7XG5cbiAgICB0aGlzLmdhbWUudXBkYXRlKGdhbWUgPT4ge1xuICAgICAgY29uc3QgaGlzdG9yeUJlZm9yZSA9IGdhbWUuaGlzdG9yeVpvbmUubGVuZ3RoO1xuICAgICAgY29uc3QgcmVzdWx0ID0gcGxheUNocmlzdGlhbml0eUNhcmRGcm9tSGFuZChnYW1lLCAnUDEnLCBjYXJkLCB7XG4gICAgICAgIHNsb3RJbmRleCxcbiAgICAgICAgZGlzcGxheU5hbWU6IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNhcmQpLm5hbWUsXG4gICAgICB9KTtcbiAgICAgIHBsYXllZE9mZmVyaW5nVmFsdWUgPSByZXN1bHQucGxheWVkT2ZmZXJpbmdWYWx1ZTtcbiAgICAgIHNwZW50T2ZmZXJpbmdzID0gcmVzdWx0LnNwZW50T2ZmZXJpbmdzO1xuICAgICAgaWYgKHJlc3VsdC5nYW1lLmhpc3Rvcnlab25lLmxlbmd0aCA+IGhpc3RvcnlCZWZvcmUpIHtcbiAgICAgICAgdGhpcy50cmlnZ2VySGlzdG9yeVB1bHNlKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0LmdhbWU7XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICB0aGlzLmRyYWdnaW5nQ2FyZElkLnNldChudWxsKTtcbiAgICB0aGlzLmNsb3NlUHJldmlldygpO1xuICAgIGlmIChwbGF5ZWRPZmZlcmluZ1ZhbHVlID4gMCkge1xuICAgICAgdGhpcy5wdXNoSW1wYWN0RXZlbnQoeyB0ZXh0OiBgKyR7cGxheWVkT2ZmZXJpbmdWYWx1ZX1gLCB0b25lOiAncmVzb3VyY2UnLCBzZWF0OiAnUDEnLCB0YXJnZXQ6ICdvZmZlcmluZ3MnIH0pO1xuICAgIH0gZWxzZSBpZiAoc3BlbnRPZmZlcmluZ3MgPiAwKSB7XG4gICAgICB0aGlzLnB1c2hJbXBhY3RFdmVudCh7IHRleHQ6IGAtJHtzcGVudE9mZmVyaW5nc31gLCB0b25lOiAncmVzb3VyY2UnLCBzZWF0OiAnUDEnLCB0YXJnZXQ6ICdvZmZlcmluZ3MnIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVPZmZlcmluZ1BpbGUoc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IHZvaWQge1xuICAgIHRoaXMub3Blbk9mZmVyaW5ncyhzZWF0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RBdHRhY2tlcihjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQobnVsbCk7XG4gICAgaWYgKHRoaXMuZ2FtZSgpLnN0YXR1cyAhPT0gJ2luX3Byb2dyZXNzJyB8fCAhdGhpcy5pc093blR1cm4oKSB8fCAhY2FyZC5jYW5BdHRhY2spIHtcbiAgICAgIHRoaXMuaW5zcGVjdENoYXJhY3RlcihjYXJkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KHRoaXMuc2VsZWN0ZWRBdHRhY2tlcigpPy5pbnN0YW5jZUlkID09PSBjYXJkLmluc3RhbmNlSWQgPyBudWxsIDogY2FyZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT3Bwb25lbnRDaGFyYWN0ZXIoY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEF0dGFja2VyKCkpIHtcbiAgICAgIHRoaXMuYXR0YWNrQ2hhcmFjdGVyKGNhcmQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmluc3BlY3RDaGFyYWN0ZXIoY2FyZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT3Bwb25lbnRMZWFkZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRBdHRhY2tlcigpICYmICF0aGlzLmhhc09wcG9uZW50R3VhcmRzKCkpIHtcbiAgICAgIHRoaXMuYXR0YWNrTGVhZGVyKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5zcGVjdExlYWRlcignUDInKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhdHRhY2tMZWFkZXIoKTogdm9pZCB7XG4gICAgY29uc3QgYXR0YWNrZXIgPSB0aGlzLnNlbGVjdGVkQXR0YWNrZXIoKTtcbiAgICBpZiAoIWF0dGFja2VyKSByZXR1cm47XG4gICAgaWYgKHRoaXMuZ2FtZSgpLnN0YXR1cyAhPT0gJ2luX3Byb2dyZXNzJyB8fCB0aGlzLmNvbWJhdEFuaW1hdGlvbigpKSByZXR1cm47XG4gICAgaWYgKHRoaXMuaGFzT3Bwb25lbnRHdWFyZHMoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KHtcbiAgICAgICAgdGl0bGU6IHRoaXMub3Bwb25lbnQoKS5sZWFkZXJOYW1lLFxuICAgICAgICBleWVicm93OiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSxcbiAgICAgICAgbWV0YTogYCR7dGhpcy5vcHBvbmVudCgpLmxlYWRlckhwfS8ke3RoaXMub3Bwb25lbnQoKS5sZWFkZXJNYXhIcH1gLFxuICAgICAgICBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlclByb3RlY3RlZCcpLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc3RhcnRDb21iYXRBbmltYXRpb24oeyBhdHRhY2tlckluc3RhbmNlSWQ6IGF0dGFja2VyLmluc3RhbmNlSWQsIGF0dGFja2VyU2VhdDogJ1AxJywgdGFyZ2V0U2VhdDogJ1AyJywgdGFyZ2V0OiAnbGVhZGVyJyB9KTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuY29tYmF0UmVzb2x1dGlvblRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgbGV0IGRhbWFnZSA9IDA7XG4gICAgICB0aGlzLmdhbWUudXBkYXRlKGdhbWUgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSByZXNvbHZlQXR0YWNrTGVhZGVyKGdhbWUsICdQMScsIGF0dGFja2VyLmluc3RhbmNlSWQsIHRoaXMucnVsZU1lc3NhZ2VzKCkpO1xuICAgICAgICBkYW1hZ2UgPSByZXN1bHQudGFyZ2V0RGFtYWdlO1xuICAgICAgICByZXR1cm4gcmVzdWx0LmdhbWU7XG4gICAgICB9KTtcbiAgICAgIGlmIChkYW1hZ2UgPiAwKSB7XG4gICAgICAgIHRoaXMucHVzaEltcGFjdEV2ZW50KHsgdGV4dDogYC0ke2RhbWFnZX1gLCB0b25lOiAnZGFtYWdlJywgc2VhdDogJ1AyJywgdGFyZ2V0OiAnbGVhZGVyJyB9KTtcbiAgICAgIH1cbiAgICB9LCA1MjApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGF0dGFja0NoYXJhY3Rlcih0YXJnZXQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogdm9pZCB7XG4gICAgY29uc3QgYXR0YWNrZXIgPSB0aGlzLnNlbGVjdGVkQXR0YWNrZXIoKTtcbiAgICBpZiAoIWF0dGFja2VyKSByZXR1cm47XG4gICAgaWYgKHRoaXMuZ2FtZSgpLnN0YXR1cyAhPT0gJ2luX3Byb2dyZXNzJyB8fCB0aGlzLmNvbWJhdEFuaW1hdGlvbigpKSByZXR1cm47XG4gICAgdGhpcy5zdGFydENvbWJhdEFuaW1hdGlvbih7XG4gICAgICBhdHRhY2tlckluc3RhbmNlSWQ6IGF0dGFja2VyLmluc3RhbmNlSWQsXG4gICAgICBhdHRhY2tlclNlYXQ6ICdQMScsXG4gICAgICB0YXJnZXRJbnN0YW5jZUlkOiB0YXJnZXQuaW5zdGFuY2VJZCxcbiAgICAgIHRhcmdldFNlYXQ6ICdQMicsXG4gICAgICB0YXJnZXQ6ICdjaGFyYWN0ZXInLFxuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgdGhpcy5jb21iYXRSZXNvbHV0aW9uVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBsZXQgYXR0YWNrZXJEYW1hZ2UgPSAwO1xuICAgICAgbGV0IHRhcmdldERhbWFnZSA9IDA7XG4gICAgICB0aGlzLmdhbWUudXBkYXRlKGdhbWUgPT4ge1xuICAgICAgICBjb25zdCBoaXN0b3J5QmVmb3JlID0gZ2FtZS5oaXN0b3J5Wm9uZS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc29sdmVBdHRhY2tDaGFyYWN0ZXIoZ2FtZSwgJ1AxJywgYXR0YWNrZXIuaW5zdGFuY2VJZCwgdGFyZ2V0Lmluc3RhbmNlSWQsIHRoaXMucnVsZU1lc3NhZ2VzKCkpO1xuICAgICAgICBhdHRhY2tlckRhbWFnZSA9IHJlc3VsdC5hdHRhY2tlckRhbWFnZTtcbiAgICAgICAgdGFyZ2V0RGFtYWdlID0gcmVzdWx0LnRhcmdldERhbWFnZTtcbiAgICAgICAgaWYgKHJlc3VsdC5nYW1lLmhpc3Rvcnlab25lLmxlbmd0aCA+IGhpc3RvcnlCZWZvcmUpIHtcbiAgICAgICAgICB0aGlzLnRyaWdnZXJIaXN0b3J5UHVsc2UoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0LmdhbWU7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGltcGFjdHM6IEFycmF5PE9taXQ8Q2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQsICdpZCc+PiA9IFtdO1xuICAgICAgaWYgKHRhcmdldERhbWFnZSA+IDApIGltcGFjdHMucHVzaCh7IHRleHQ6IGAtJHt0YXJnZXREYW1hZ2V9YCwgdG9uZTogJ2RhbWFnZScsIHNlYXQ6ICdQMicsIHRhcmdldDogJ2JhdHRsZScgfSk7XG4gICAgICBpZiAoYXR0YWNrZXJEYW1hZ2UgPiAwKSBpbXBhY3RzLnB1c2goeyB0ZXh0OiBgLSR7YXR0YWNrZXJEYW1hZ2V9YCwgdG9uZTogJ2RhbWFnZScsIHNlYXQ6ICdQMScsIHRhcmdldDogJ2JhdHRsZScgfSk7XG4gICAgICB0aGlzLnB1c2hJbXBhY3RFdmVudHMoaW1wYWN0cyk7XG4gICAgfSwgNTIwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBlbmRUdXJuKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmdhbWUoKS5zdGF0dXMgIT09ICdpbl9wcm9ncmVzcycpIHJldHVybjtcbiAgICBpZiAodGhpcy5jb21iYXRBbmltYXRpb24oKSkgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KG51bGwpO1xuICAgIHRoaXMuZ2FtZS51cGRhdGUoZ2FtZSA9PiB7XG4gICAgICBjb25zdCBuZXh0ID0gc3RydWN0dXJlZENsb25lKGdhbWUpO1xuICAgICAgY29uc3QgbG9nID0gYWR2YW5jZVR1cm4obmV4dCwgdGhpcy5ydWxlTWVzc2FnZXMoKSk7XG4gICAgICBuZXh0LnJldmlzaW9uKys7XG4gICAgICBuZXh0LmxvZyA9IFsuLi5sb2csIC4uLm5leHQubG9nXS5zbGljZSgwLCA0KTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pO1xuICAgIHRoaXMuc2NoZWR1bGVCb3RUdXJuSWZOZWVkZWQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNldE1vY2soKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckJvdFR1cm4oKTtcbiAgICB0aGlzLmNsZWFyQ29tYmF0VGltZXJzKCk7XG4gICAgdGhpcy5jb21iYXRBbmltYXRpb24uc2V0KG51bGwpO1xuICAgIHRoaXMuY29tYmF0VHJhaWwuc2V0KG51bGwpO1xuICAgIHRoaXMuZ2FtZS5zZXQodGhpcy5jYXRhbG9nTG9hZGVkKCkgPyB0aGlzLmNyZWF0ZVR1dG9yaWFsR2FtZSh0aGlzLmFsbENhdGFsb2dDYXJkcygpKSA6IHN0cnVjdHVyZWRDbG9uZShTVEFSVElOR19HQU1FKSk7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5zaG93SGlzdG9yeS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2hvd0dhbGxlcnkuc2V0KGZhbHNlKTtcbiAgICB0aGlzLm9mZmVyaW5nc1NlYXQuc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN0YXJ0VHV0b3JpYWwoKTogdm9pZCB7XG4gICAgdGhpcy5yZXNldE1vY2soKTtcbiAgICB0aGlzLnNjcmVlbi5zZXQoJ3RhYmxlJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xvc2VQcmV2aWV3KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleC5zZXQoMCk7XG4gICAgdGhpcy5yZXNldFByZXZpZXdUaWx0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xvc2VJbmZvKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvcGVuT2ZmZXJpbmdzKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KG51bGwpO1xuICAgIHRoaXMuc2hvd0hpc3Rvcnkuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNob3dHYWxsZXJ5LnNldChmYWxzZSk7XG4gICAgdGhpcy5vZmZlcmluZ3NTZWF0LnNldChzZWF0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvcGVuSGlzdG9yeSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KG51bGwpO1xuICAgIHRoaXMub2ZmZXJpbmdzU2VhdC5zZXQobnVsbCk7XG4gICAgdGhpcy5zaG93R2FsbGVyeS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2hvd0hpc3Rvcnkuc2V0KHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlSGlzdG9yeSgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dIaXN0b3J5LnNldChmYWxzZSk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk/LnNvdXJjZSA9PT0gJ2hpc3RvcnknKSB7XG4gICAgICB0aGlzLmNsb3NlUHJldmlldygpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9zZU9mZmVyaW5ncygpOiB2b2lkIHtcbiAgICB0aGlzLm9mZmVyaW5nc1NlYXQuc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9wZW5HYWxsZXJ5KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5vZmZlcmluZ3NTZWF0LnNldChudWxsKTtcbiAgICB0aGlzLnNob3dIaXN0b3J5LnNldChmYWxzZSk7XG4gICAgdGhpcy5zaG93R2FsbGVyeS5zZXQodHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xvc2VHYWxsZXJ5KCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0dhbGxlcnkuc2V0KGZhbHNlKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFByZXZpZXcoKT8uc291cmNlID09PSAnZ2FsbGVyeScpIHtcbiAgICAgIHRoaXMuY2xvc2VQcmV2aWV3KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG5hdmlnYXRlUHJldmlldyhkaXJlY3Rpb246IC0xIHwgMSk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5wcmV2aWV3Q2Fyb3VzZWxJdGVtcygpO1xuICAgIGlmIChpdGVtcy5sZW5ndGggPCAyKSByZXR1cm47XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5jdXJyZW50UHJldmlld0Nhcm91c2VsSW5kZXgoaXRlbXMpO1xuICAgIGlmIChjdXJyZW50SW5kZXggPCAwKSByZXR1cm47XG4gICAgY29uc3QgbmV4dEluZGV4ID0gKGN1cnJlbnRJbmRleCArIGRpcmVjdGlvbiArIGl0ZW1zLmxlbmd0aCkgJSBpdGVtcy5sZW5ndGg7XG4gICAgY29uc3QgbmV4dEl0ZW0gPSBpdGVtc1tuZXh0SW5kZXhdO1xuICAgIHRoaXMucHJldmlld1NsaWRlRGlyZWN0aW9uLnNldChkaXJlY3Rpb24pO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMucHJldmlld1NsaWRlRGlyZWN0aW9uLnNldCgwKSwgMzYwKTtcbiAgICBpZiAobmV4dEl0ZW0ua2luZCA9PT0gJ2hpc3RvcnknKSB7XG4gICAgICB0aGlzLmluc3BlY3RIaXN0b3J5Q2FyZChuZXh0SXRlbS5jYXJkSWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAobmV4dEl0ZW0ua2luZCA9PT0gJ2dhbGxlcnknKSB7XG4gICAgICB0aGlzLmluc3BlY3RHYWxsZXJ5Q2FyZChuZXh0SXRlbS5jYXJkSWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmluc3BlY3RPZmZlcmluZyhuZXh0SXRlbS5vZmZlcmluZyk7XG4gIH1cblxuICBwcml2YXRlIGN1cnJlbnRQcmV2aWV3Q2Fyb3VzZWxJdGVtcygpOiBBcnJheTxcbiAgICB7IGtpbmQ6ICdoaXN0b3J5JzsgY2FyZElkOiBzdHJpbmcgfVxuICAgIHwgeyBraW5kOiAnb2ZmZXJpbmcnOyBvZmZlcmluZzogQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSB9XG4gICAgfCB7IGtpbmQ6ICdnYWxsZXJ5JzsgY2FyZElkOiBzdHJpbmcgfVxuICA+IHtcbiAgICBjb25zdCBwcmV2aWV3ID0gdGhpcy5zZWxlY3RlZFByZXZpZXcoKTtcbiAgICBpZiAoIXByZXZpZXcpIHJldHVybiBbXTtcbiAgICBpZiAocHJldmlldy5zb3VyY2UgPT09ICdoaXN0b3J5JyAmJiB0aGlzLnNob3dIaXN0b3J5KCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdhbWUoKS5oaXN0b3J5Wm9uZS5tYXAoY2FyZElkID0+ICh7IGtpbmQ6ICdoaXN0b3J5JywgY2FyZElkIH0pKTtcbiAgICB9XG4gICAgaWYgKHByZXZpZXcuc291cmNlID09PSAnb2ZmZXJpbmdzJyAmJiBwcmV2aWV3LnNlYXQpIHtcbiAgICAgIHJldHVybiB0aGlzLmdhbWUoKS5wbGF5ZXJzW3ByZXZpZXcuc2VhdF0ub2ZmZXJpbmdzLm1hcChvZmZlcmluZyA9PiAoeyBraW5kOiAnb2ZmZXJpbmcnLCBvZmZlcmluZyB9KSk7XG4gICAgfVxuICAgIGlmIChwcmV2aWV3LnNvdXJjZSA9PT0gJ2dhbGxlcnknICYmIHRoaXMuc2hvd0dhbGxlcnkoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2FsbGVyeUNhcmRzKCkubWFwKGNhcmQgPT4gKHsga2luZDogJ2dhbGxlcnknIGFzIGNvbnN0LCBjYXJkSWQ6IGNhcmQuaWQgfSkpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIGN1cnJlbnRQcmV2aWV3Q2Fyb3VzZWxJbmRleChcbiAgICBpdGVtczogQXJyYXk8XG4gICAgICB7IGtpbmQ6ICdoaXN0b3J5JzsgY2FyZElkOiBzdHJpbmcgfVxuICAgICAgfCB7IGtpbmQ6ICdvZmZlcmluZyc7IG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlIH1cbiAgICAgIHwgeyBraW5kOiAnZ2FsbGVyeSc7IGNhcmRJZDogc3RyaW5nIH1cbiAgICA+LFxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IHByZXZpZXcgPSB0aGlzLnNlbGVjdGVkUHJldmlldygpO1xuICAgIGlmICghcHJldmlldykgcmV0dXJuIC0xO1xuICAgIGlmIChwcmV2aWV3LnNvdXJjZSA9PT0gJ2hpc3RvcnknKSB7XG4gICAgICByZXR1cm4gaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5raW5kID09PSAnaGlzdG9yeScgJiYgaXRlbS5jYXJkSWQgPT09IHByZXZpZXcuY2FyZElkKTtcbiAgICB9XG4gICAgaWYgKHByZXZpZXcuc291cmNlID09PSAnb2ZmZXJpbmdzJykge1xuICAgICAgcmV0dXJuIGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0ua2luZCA9PT0gJ29mZmVyaW5nJyAmJiBpdGVtLm9mZmVyaW5nLmluc3RhbmNlSWQgPT09IHByZXZpZXcub2ZmZXJpbmdJbnN0YW5jZUlkKTtcbiAgICB9XG4gICAgaWYgKHByZXZpZXcuc291cmNlID09PSAnZ2FsbGVyeScpIHtcbiAgICAgIHJldHVybiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmtpbmQgPT09ICdnYWxsZXJ5JyAmJiBpdGVtLmNhcmRJZCA9PT0gcHJldmlldy5jYXJkSWQpO1xuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0R2FsbGVyeVNlYXJjaChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmdhbGxlcnlTZWFyY2guc2V0KChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEdhbGxlcnlUeXBlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZ2FsbGVyeVR5cGUuc2V0KChldmVudC50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQpLnZhbHVlIGFzIENocmlzdGlhbml0eUdhbGxlcnlUeXBlRmlsdGVyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0aWx0UHJldmlldyhldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgYm91bmRzID0gKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHggPSAoZXZlbnQuY2xpZW50WCAtIGJvdW5kcy5sZWZ0KSAvIGJvdW5kcy53aWR0aCAtIDAuNTtcbiAgICBjb25zdCB5ID0gKGV2ZW50LmNsaWVudFkgLSBib3VuZHMudG9wKSAvIGJvdW5kcy5oZWlnaHQgLSAwLjU7XG4gICAgdGhpcy5wcmV2aWV3VGlsdC5zZXQoe1xuICAgICAgcm90YXRlWDogNSAtIHkgKiAxOCxcbiAgICAgIHJvdGF0ZVk6IC01ICsgeCAqIDE4LFxuICAgICAgc2hpZnRYOiB4ICogMTAsXG4gICAgICBzaGlmdFk6IHkgKiAxMCxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNldFByZXZpZXdUaWx0KCk6IHZvaWQge1xuICAgIHRoaXMucHJldmlld1RpbHQuc2V0KHsgcm90YXRlWDogNSwgcm90YXRlWTogLTUsIHNoaWZ0WDogMCwgc2hpZnRZOiAwIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGltcGFjdFBvcFByb3BzKGltcGFjdDogQ2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQpOiBNaW5pR2FtZVNjb3JlUG9wTWV0YWRhdGEge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5pbXBhY3RQb3NpdGlvbihpbXBhY3QpO1xuICAgIHJldHVybiB7XG4gICAgICBzY29yZTogaW1wYWN0LnRleHQsXG4gICAgICBsYWJlbDogdGhpcy5pbXBhY3RMYWJlbChpbXBhY3QpLFxuICAgICAgeDogcG9zaXRpb24ueCxcbiAgICAgIHk6IHBvc2l0aW9uLnksXG4gICAgICB0b25lUmdiOiB0aGlzLmltcGFjdFRvbmVSZ2IoaW1wYWN0KSxcbiAgICAgIGR1cmF0aW9uTXM6IDExMjAsXG4gICAgICB2YXJpYW50OiBpbXBhY3QudG9uZSA9PT0gJ2RhbWFnZScgPyAncGVuYWx0eScgOiAnYm9udXMnLFxuICAgICAgYXJpYUxpdmU6ICdwb2xpdGUnLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGltcGFjdFBvc2l0aW9uKGltcGFjdDogQ2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQpOiB7IHg6IHN0cmluZzsgeTogc3RyaW5nIH0ge1xuICAgIGlmIChpbXBhY3Quc2VhdCA9PT0gJ1AyJyAmJiBpbXBhY3QudGFyZ2V0ID09PSAnbGVhZGVyJykgcmV0dXJuIHsgeDogJzUwJScsIHk6ICcxMCUnIH07XG4gICAgaWYgKGltcGFjdC5zZWF0ID09PSAnUDInICYmIGltcGFjdC50YXJnZXQgPT09ICdiYXR0bGUnKSByZXR1cm4geyB4OiAnNTAlJywgeTogJzI3JScgfTtcbiAgICBpZiAoaW1wYWN0LnNlYXQgPT09ICdQMicgJiYgaW1wYWN0LnRhcmdldCA9PT0gJ29mZmVyaW5ncycpIHJldHVybiB7IHg6ICcxMSUnLCB5OiAnOCUnIH07XG4gICAgaWYgKGltcGFjdC5zZWF0ID09PSAnUDEnICYmIGltcGFjdC50YXJnZXQgPT09ICdiYXR0bGUnKSByZXR1cm4geyB4OiAnNTAlJywgeTogJzY3JScgfTtcbiAgICBpZiAoaW1wYWN0LnNlYXQgPT09ICdQMScgJiYgaW1wYWN0LnRhcmdldCA9PT0gJ2xlYWRlcicpIHJldHVybiB7IHg6ICc1MCUnLCB5OiAnODQlJyB9O1xuICAgIGlmIChpbXBhY3Quc2VhdCA9PT0gJ1AxJyAmJiBpbXBhY3QudGFyZ2V0ID09PSAnb2ZmZXJpbmdzJykgcmV0dXJuIHsgeDogJzEwJScsIHk6ICc4NCUnIH07XG4gICAgcmV0dXJuIHsgeDogJzUwJScsIHk6ICc1MCUnIH07XG4gIH1cblxuICBwcml2YXRlIGltcGFjdExhYmVsKGltcGFjdDogQ2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQpOiBzdHJpbmcge1xuICAgIGlmIChpbXBhY3QudG9uZSA9PT0gJ3Jlc291cmNlJykgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdzJyk7XG4gICAgaWYgKGltcGFjdC50b25lID09PSAnaGVhbCcpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKTtcbiAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlEYW1hZ2UnKTtcbiAgfVxuXG4gIHByaXZhdGUgaW1wYWN0VG9uZVJnYihpbXBhY3Q6IENocmlzdGlhbml0eUltcGFjdEV2ZW50KTogc3RyaW5nIHtcbiAgICBpZiAoaW1wYWN0LnRvbmUgPT09ICdkYW1hZ2UnKSByZXR1cm4gJzIyMCwgMzgsIDM4JztcbiAgICBpZiAoaW1wYWN0LnRvbmUgPT09ICdoZWFsJykgcmV0dXJuICcyMiwgMTYzLCA3NCc7XG4gICAgcmV0dXJuICczNywgOTksIDIzNSc7XG4gIH1cblxuICBwcml2YXRlIHB1c2hJbXBhY3RFdmVudChldmVudDogT21pdDxDaHJpc3RpYW5pdHlJbXBhY3RFdmVudCwgJ2lkJz4pOiB2b2lkIHtcbiAgICBjb25zdCBpZCA9ICsrdGhpcy5pbXBhY3RFdmVudFNlcXVlbmNlO1xuICAgIHRoaXMuaW1wYWN0RXZlbnRzLnVwZGF0ZShldmVudHMgPT4gWy4uLmV2ZW50cywgeyAuLi5ldmVudCwgaWQgfV0uc2xpY2UoLTYpKTtcbiAgICBjb25zdCB0aW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaW1wYWN0VGltZXJzLmRlbGV0ZSh0aW1lcik7XG4gICAgICB0aGlzLmltcGFjdEV2ZW50cy51cGRhdGUoZXZlbnRzID0+IGV2ZW50cy5maWx0ZXIoaW1wYWN0ID0+IGltcGFjdC5pZCAhPT0gaWQpKTtcbiAgICB9LCAxMTIwKTtcbiAgICB0aGlzLmltcGFjdFRpbWVycy5hZGQodGltZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBwdXNoSW1wYWN0RXZlbnRzKGV2ZW50czogQXJyYXk8T21pdDxDaHJpc3RpYW5pdHlJbXBhY3RFdmVudCwgJ2lkJz4+KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHMpIHtcbiAgICAgIHRoaXMucHVzaEltcGFjdEV2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbWJhdEFuaW1hdGlvbkF0dGFja2VyKGFuaW1hdGlvbjogQ2hyaXN0aWFuaXR5Q29tYmF0QW5pbWF0aW9uKTogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5nYW1lKCkucGxheWVyc1thbmltYXRpb24uYXR0YWNrZXJTZWF0XS5iYXR0bGVab25lLmZpbmQoY2FyZCA9PiBjYXJkLmluc3RhbmNlSWQgPT09IGFuaW1hdGlvbi5hdHRhY2tlckluc3RhbmNlSWQpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGNvbWJhdEFuaW1hdGlvblRhcmdldExhYmVsKGFuaW1hdGlvbjogQ2hyaXN0aWFuaXR5Q29tYmF0QW5pbWF0aW9uKTogc3RyaW5nIHtcbiAgICBpZiAoYW5pbWF0aW9uLnRhcmdldCA9PT0gJ2xlYWRlcicpIHtcbiAgICAgIHJldHVybiB0aGlzLmdhbWUoKS5wbGF5ZXJzW2FuaW1hdGlvbi50YXJnZXRTZWF0XS5sZWFkZXJOYW1lO1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmdhbWUoKS5wbGF5ZXJzW2FuaW1hdGlvbi50YXJnZXRTZWF0XS5iYXR0bGVab25lLmZpbmQoY2FyZCA9PiBjYXJkLmluc3RhbmNlSWQgPT09IGFuaW1hdGlvbi50YXJnZXRJbnN0YW5jZUlkKTtcbiAgICByZXR1cm4gdGFyZ2V0Py5uYW1lID8/IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyQ2FyZCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzQ29tYmF0QXR0YWNrZXIoY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb21iYXRBbmltYXRpb24oKT8uYXR0YWNrZXJJbnN0YW5jZUlkID09PSBjYXJkLmluc3RhbmNlSWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNDb21iYXRDaGFyYWN0ZXJUYXJnZXQoY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiBib29sZWFuIHtcbiAgICBjb25zdCBhbmltYXRpb24gPSB0aGlzLmNvbWJhdEFuaW1hdGlvbigpO1xuICAgIHJldHVybiBhbmltYXRpb24/LnRhcmdldCA9PT0gJ2NoYXJhY3RlcicgJiYgYW5pbWF0aW9uLnRhcmdldEluc3RhbmNlSWQgPT09IGNhcmQuaW5zdGFuY2VJZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0NvbWJhdExlYWRlclRhcmdldChzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogYm9vbGVhbiB7XG4gICAgY29uc3QgYW5pbWF0aW9uID0gdGhpcy5jb21iYXRBbmltYXRpb24oKTtcbiAgICByZXR1cm4gYW5pbWF0aW9uPy50YXJnZXQgPT09ICdsZWFkZXInICYmIGFuaW1hdGlvbi50YXJnZXRTZWF0ID09PSBzZWF0O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydENvbWJhdEFuaW1hdGlvbihhbmltYXRpb246IENocmlzdGlhbml0eUNvbWJhdEFuaW1hdGlvbik6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJDb21iYXRUaW1lcnMoKTtcbiAgICB0aGlzLmNvbWJhdEFuaW1hdGlvbi5zZXQoYW5pbWF0aW9uKTtcbiAgICB0aGlzLmNvbWJhdFRyYWlsLnNldCh0aGlzLmNyZWF0ZUNvbWJhdFRyYWlsKGFuaW1hdGlvbikpO1xuICAgIHRoaXMuY29tYmF0VHJhaWxDbGVhclRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jb21iYXRUcmFpbC5zZXQobnVsbCk7XG4gICAgICB0aGlzLmNvbWJhdFRyYWlsQ2xlYXJUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9LCA4ODApO1xuICAgIHRoaXMuY29tYmF0Q2xlYXJUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY29tYmF0QW5pbWF0aW9uLnNldChudWxsKTtcbiAgICAgIHRoaXMuY29tYmF0Q2xlYXJUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9LCA5ODApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb21iYXRUcmFpbChhbmltYXRpb246IENocmlzdGlhbml0eUNvbWJhdEFuaW1hdGlvbik6IENocmlzdGlhbml0eUNvbWJhdFRyYWlsIHtcbiAgICBjb25zdCBmcm9tID0gdGhpcy5jb21iYXRBbmNob3IoYW5pbWF0aW9uLmF0dGFja2VyU2VhdCwgJ2JhdHRsZScpO1xuICAgIGNvbnN0IHRvID0gdGhpcy5jb21iYXRBbmNob3IoYW5pbWF0aW9uLnRhcmdldFNlYXQsIGFuaW1hdGlvbi50YXJnZXQpO1xuICAgIGNvbnN0IGR4ID0gdG8ueCAtIGZyb20ueDtcbiAgICBjb25zdCBkeSA9IHRvLnkgLSBmcm9tLnk7XG4gICAgY29uc3QgbGVuZ3RoID0gTWF0aC5tYXgoMTIsIE1hdGguaHlwb3QoZHgsIGR5KSk7XG4gICAgY29uc3QgYW5nbGUgPSBNYXRoLmF0YW4yKGR5LCBkeCkgKiAxODAgLyBNYXRoLlBJO1xuICAgIHJldHVybiB7XG4gICAgICBmcm9tWDogYCR7ZnJvbS54fSVgLFxuICAgICAgZnJvbVk6IGAke2Zyb20ueX0lYCxcbiAgICAgIG1pZFg6IGAke3RvLnh9JWAsXG4gICAgICBtaWRZOiBgJHt0by55fSVgLFxuICAgICAgbGVuZ3RoOiBgJHtsZW5ndGh9JWAsXG4gICAgICBhbmdsZTogYCR7YW5nbGV9ZGVnYCxcbiAgICAgIHRvbmU6IGFuaW1hdGlvbi50YXJnZXQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY29tYmF0QW5jaG9yKHNlYXQ6IENocmlzdGlhbml0eVNlYXQsIHRhcmdldDogJ2xlYWRlcicgfCAnY2hhcmFjdGVyJyB8ICdiYXR0bGUnKTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9IHtcbiAgICBpZiAoc2VhdCA9PT0gJ1AyJykge1xuICAgICAgaWYgKHRhcmdldCA9PT0gJ2xlYWRlcicpIHJldHVybiB7IHg6IDUwLCB5OiAxMCB9O1xuICAgICAgcmV0dXJuIHsgeDogNTAsIHk6IDI4IH07XG4gICAgfVxuICAgIGlmICh0YXJnZXQgPT09ICdsZWFkZXInKSByZXR1cm4geyB4OiA1MCwgeTogODQgfTtcbiAgICByZXR1cm4geyB4OiA1MCwgeTogNjggfTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJDb21iYXRUaW1lcnMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tYmF0UmVzb2x1dGlvblRpbWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5jb21iYXRSZXNvbHV0aW9uVGltZXIpO1xuICAgICAgdGhpcy5jb21iYXRSZXNvbHV0aW9uVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbWJhdENsZWFyVGltZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLmNvbWJhdENsZWFyVGltZXIpO1xuICAgICAgdGhpcy5jb21iYXRDbGVhclRpbWVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb21iYXRUcmFpbENsZWFyVGltZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLmNvbWJhdFRyYWlsQ2xlYXJUaW1lcik7XG4gICAgICB0aGlzLmNvbWJhdFRyYWlsQ2xlYXJUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5jb21iYXRUcmFpbC5zZXQobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIHRyaWdnZXJIaXN0b3J5UHVsc2UoKTogdm9pZCB7XG4gICAgdGhpcy5oaXN0b3J5UHVsc2Uuc2V0KGZhbHNlKTtcbiAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmhpc3RvcnlQdWxzZS5zZXQodHJ1ZSksIDApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuaGlzdG9yeVB1bHNlLnNldChmYWxzZSksIDkwMCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyQm90VHVybigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ib3RUdXJuVGltZXIgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5ib3RUdXJuVGltZXIpO1xuICAgIHRoaXMuYm90VHVyblRpbWVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzY2hlZHVsZUJvdFR1cm5JZk5lZWRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQm90VHVybigpO1xuICAgIGNvbnN0IGdhbWUgPSB0aGlzLmdhbWUoKTtcbiAgICBpZiAodGhpcy5zY3JlZW4oKSAhPT0gJ3RhYmxlJyB8fCBnYW1lLnN0YXR1cyAhPT0gJ2luX3Byb2dyZXNzJyB8fCBnYW1lLnR1cm5Pd25lciAhPT0gJ1AyJykgcmV0dXJuO1xuICAgIHRoaXMuYm90VHVyblRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5ib3RUdXJuVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnJ1blR1dG9yaWFsQm90VHVybigpO1xuICAgIH0sIDUyMCk7XG4gIH1cblxuICBwcml2YXRlIHJ1blR1dG9yaWFsQm90VHVybigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgICBjb25zdCBpbXBhY3RzOiBBcnJheTxPbWl0PENocmlzdGlhbml0eUltcGFjdEV2ZW50LCAnaWQnPj4gPSBbXTtcbiAgICB0aGlzLmdhbWUudXBkYXRlKGdhbWUgPT4ge1xuICAgICAgaWYgKGdhbWUuc3RhdHVzICE9PSAnaW5fcHJvZ3Jlc3MnIHx8IGdhbWUudHVybk93bmVyICE9PSAnUDInKSByZXR1cm4gZ2FtZTtcbiAgICAgIGNvbnN0IG5leHQgPSBzdHJ1Y3R1cmVkQ2xvbmUoZ2FtZSk7XG4gICAgICBjb25zdCBoaXN0b3J5QmVmb3JlID0gbmV4dC5oaXN0b3J5Wm9uZS5sZW5ndGg7XG4gICAgICBjb25zdCBsb2c6IHN0cmluZ1tdID0gW107XG4gICAgICB0aGlzLnJlc29sdmVCb3RBdHRhY2sobmV4dCwgbG9nLCBpbXBhY3RzKTtcbiAgICAgIGlmIChuZXh0Lmhpc3Rvcnlab25lLmxlbmd0aCA+IGhpc3RvcnlCZWZvcmUpIHtcbiAgICAgICAgdGhpcy50cmlnZ2VySGlzdG9yeVB1bHNlKCk7XG4gICAgICB9XG4gICAgICBldmFsdWF0ZVZpY3RvcnkobmV4dCwgbG9nLCB0aGlzLnJ1bGVNZXNzYWdlcygpKTtcbiAgICAgIGlmIChuZXh0LnN0YXR1cyA9PT0gJ2luX3Byb2dyZXNzJykge1xuICAgICAgICBsb2cucHVzaCguLi5hZHZhbmNlVHVybihuZXh0LCB0aGlzLnJ1bGVNZXNzYWdlcygpKSk7XG4gICAgICB9XG4gICAgICBuZXh0LnJldmlzaW9uKys7XG4gICAgICBuZXh0LmxvZyA9IFsuLi5sb2csIC4uLm5leHQubG9nXS5zbGljZSgwLCA0KTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pO1xuICAgIHRoaXMucHVzaEltcGFjdEV2ZW50cyhpbXBhY3RzKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUJvdEF0dGFjayhcbiAgICBnYW1lOiBDaHJpc3RpYW5pdHlHYW1lU3RhdGUsXG4gICAgbG9nOiBzdHJpbmdbXSxcbiAgICBpbXBhY3RzOiBBcnJheTxPbWl0PENocmlzdGlhbml0eUltcGFjdEV2ZW50LCAnaWQnPj5cbiAgKTogdm9pZCB7XG4gICAgY29uc3QgYm90ID0gZ2FtZS5wbGF5ZXJzLlAyO1xuICAgIGNvbnN0IHBsYXllciA9IGdhbWUucGxheWVycy5QMTtcbiAgICBjb25zdCBhdHRhY2tlciA9IGJvdC5iYXR0bGVab25lXG4gICAgICAuZmlsdGVyKGNhcmQgPT4gY2FyZC5jYW5BdHRhY2sgJiYgY2FyZC5hdHRhY2sgPiAwKVxuICAgICAgLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiAobGVmdC5zbG90ID8/IDApIC0gKHJpZ2h0LnNsb3QgPz8gMCkpWzBdO1xuXG4gICAgaWYgKCFhdHRhY2tlcikge1xuICAgICAgbG9nLnB1c2godGhpcy50KCdjaHJpc3RpYW5pdHlCb3ROb0F0dGFja2VycycpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXQgPSBwbGF5ZXIuYmF0dGxlWm9uZVxuICAgICAgLmZpbHRlcihjYXJkID0+IGNhcmQuY3VycmVudEhwID4gMClcbiAgICAgIC5zb3J0KChsZWZ0LCByaWdodCkgPT4gbGVmdC5jdXJyZW50SHAgLSByaWdodC5jdXJyZW50SHAgfHwgKGxlZnQuc2xvdCA/PyAwKSAtIChyaWdodC5zbG90ID8/IDApKVswXTtcblxuICAgIGlmICh0YXJnZXQpIHtcbiAgICAgIGltcGFjdHMucHVzaCh7IHRleHQ6IGAtJHthdHRhY2tlci5hdHRhY2t9YCwgdG9uZTogJ2RhbWFnZScsIHNlYXQ6ICdQMScsIHRhcmdldDogJ2JhdHRsZScgfSk7XG4gICAgICBpbXBhY3RzLnB1c2goeyB0ZXh0OiBgLSR7dGFyZ2V0LmF0dGFja31gLCB0b25lOiAnZGFtYWdlJywgc2VhdDogJ1AyJywgdGFyZ2V0OiAnYmF0dGxlJyB9KTtcbiAgICAgIHRhcmdldC5jdXJyZW50SHAgLT0gYXR0YWNrZXIuYXR0YWNrO1xuICAgICAgYXR0YWNrZXIuY3VycmVudEhwIC09IHRhcmdldC5hdHRhY2s7XG4gICAgICBhdHRhY2tlci5jYW5BdHRhY2sgPSBmYWxzZTtcbiAgICAgIGxvZy5wdXNoKGAke2F0dGFja2VyLm5hbWV9ICR7dGhpcy50KCdjaHJpc3RpYW5pdHlDb21iYXRzQWdhaW5zdCcpfSAke3RhcmdldC5uYW1lfS5gKTtcbiAgICAgIGNsZWFudXBEZXN0cm95ZWQocGxheWVyLCBnYW1lKTtcbiAgICAgIGNsZWFudXBEZXN0cm95ZWQoYm90LCBnYW1lKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpbXBhY3RzLnB1c2goeyB0ZXh0OiBgLSR7YXR0YWNrZXIuYXR0YWNrfWAsIHRvbmU6ICdkYW1hZ2UnLCBzZWF0OiAnUDEnLCB0YXJnZXQ6ICdsZWFkZXInIH0pO1xuICAgIHBsYXllci5sZWFkZXJIcCA9IE1hdGgubWF4KDAsIHBsYXllci5sZWFkZXJIcCAtIGF0dGFja2VyLmF0dGFjayk7XG4gICAgYXR0YWNrZXIuY2FuQXR0YWNrID0gZmFsc2U7XG4gICAgbG9nLnB1c2goYCR7YXR0YWNrZXIubmFtZX0gJHt0aGlzLnQoJ2NocmlzdGlhbml0eUF0dGFja3NZb3VyTGVhZGVyJyl9YCk7XG4gIH1cblxuICBwcml2YXRlIHJ1bGVNZXNzYWdlcygpOiBDaHJpc3RpYW5pdHlSdWxlTWVzc2FnZXMge1xuICAgIHJldHVybiB7XG4gICAgICBhdHRhY2tzT3Bwb25lbnRMZWFkZXI6IHRoaXMudCgnY2hyaXN0aWFuaXR5QXR0YWNrc09wcG9uZW50TGVhZGVyJyksXG4gICAgICBhdHRhY2tzWW91ckxlYWRlcjogdGhpcy50KCdjaHJpc3RpYW5pdHlBdHRhY2tzWW91ckxlYWRlcicpLFxuICAgICAgY29tYmF0c0FnYWluc3Q6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q29tYmF0c0FnYWluc3QnKSxcbiAgICAgIGRyYXdzQ2FyZDogdGhpcy50KCdjaHJpc3RpYW5pdHlEcmF3c0NhcmQnKSxcbiAgICAgIGRlY2tJc0VtcHR5OiB0aGlzLnQoJ2NocmlzdGlhbml0eURlY2tJc0VtcHR5JyksXG4gICAgICB0dXJuT2Y6IHRoaXMudCgnY2hyaXN0aWFuaXR5VHVybk9mJyksXG4gICAgICB5b3VXaW46IHRoaXMudCgnY2hyaXN0aWFuaXR5WW91V2luJyksXG4gICAgICBvcHBvbmVudFdpbnM6IHRoaXMudCgnY2hyaXN0aWFuaXR5T3Bwb25lbnRXaW5zJyksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0TGVhZGVyKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXguc2V0KDApO1xuICAgIGNvbnN0IHBsYXllciA9IHRoaXMuZ2FtZSgpLnBsYXllcnNbc2VhdF07XG4gICAgY29uc3QgbGVhZGVyID0gcGxheWVyLmxlYWRlckNhcmRJZCA/IHRoaXMuY2FyZERlZmluaXRpb24ocGxheWVyLmxlYWRlckNhcmRJZCkgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KHtcbiAgICAgIHRpdGxlOiBsZWFkZXIgPyB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChsZWFkZXIpLm5hbWUgOiBwbGF5ZXIubGVhZGVyTmFtZSxcbiAgICAgIGV5ZWJyb3c6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLFxuICAgICAgbWV0YTogYCR7cGxheWVyLmxlYWRlckhwfS8ke3BsYXllci5sZWFkZXJNYXhIcH1gLFxuICAgICAgYm9keTogc2VhdCA9PT0gJ1AyJyAmJiB0aGlzLmhhc09wcG9uZW50R3VhcmRzKCkgPyB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlclByb3RlY3RlZCcpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJCb2R5JyksXG4gICAgICBjYXJkSWQ6IHBsYXllci5sZWFkZXJDYXJkSWQsXG4gICAgICBzb3VyY2U6ICdib2FyZCcsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdE9mZmVyaW5nKG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eUluZGV4LnNldCgwKTtcbiAgICBjb25zdCBkZWZpbml0aW9uID0gdGhpcy5jYXJkRGVmaW5pdGlvbihvZmZlcmluZy5jYXJkSWQpO1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChkZWZpbml0aW9uKTtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQoe1xuICAgICAgdGl0bGU6IHRleHQubmFtZSxcbiAgICAgIGV5ZWJyb3c6IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdDYXJkJyksXG4gICAgICBtZXRhOiBvZmZlcmluZy5yZWFkeSA/IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdSZWFkeScpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0V4aGF1c3RlZCcpLFxuICAgICAgYm9keTogdGV4dC5hYmlsaXR5VGV4dCA/PyBvZmZlcmluZy5hYmlsaXR5VGV4dCA/PyB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQm9keScpLFxuICAgICAgY2FyZElkOiBvZmZlcmluZy5jYXJkSWQsXG4gICAgICBzb3VyY2U6ICdvZmZlcmluZ3MnLFxuICAgICAgc2VhdDogb2ZmZXJpbmcub3duZXIsXG4gICAgICBvZmZlcmluZ0luc3RhbmNlSWQ6IG9mZmVyaW5nLmluc3RhbmNlSWQsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdBYmlsaXR5VGV4dChvZmZlcmluZzogQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KHRoaXMuY2FyZERlZmluaXRpb24ob2ZmZXJpbmcuY2FyZElkKSk7XG4gICAgcmV0dXJuIHRleHQuYWJpbGl0eVRleHQgPz8gb2ZmZXJpbmcuYWJpbGl0eVRleHQgPz8gdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ05vQWJpbGl0eScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhblVzZU9mZmVyaW5nQWJpbGl0eShvZmZlcmluZzogQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSwgc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IGJvb2xlYW4ge1xuICAgIGlmIChzZWF0ICE9PSAnUDEnKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGNhblVzZUNocmlzdGlhbml0eU9mZmVyaW5nQWJpbGl0eSh0aGlzLmdhbWUoKSwgc2VhdCwgb2ZmZXJpbmcuaW5zdGFuY2VJZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXNlT2ZmZXJpbmdBYmlsaXR5KG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlLCBzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhblVzZU9mZmVyaW5nQWJpbGl0eShvZmZlcmluZywgc2VhdCkpIHJldHVybjtcbiAgICBsZXQgbGVhZGVyRGFtYWdlID0gMDtcbiAgICBsZXQgcmVzZXJ2ZUdhaW4gPSAwO1xuICAgIHRoaXMuZ2FtZS51cGRhdGUoZ2FtZSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSByZXNvbHZlT2ZmZXJpbmdBYmlsaXR5KGdhbWUsIHNlYXQsIG9mZmVyaW5nLmluc3RhbmNlSWQpO1xuICAgICAgbGVhZGVyRGFtYWdlID0gcmVzdWx0LmxlYWRlckRhbWFnZTtcbiAgICAgIHJlc2VydmVHYWluID0gcmVzdWx0LnJlc2VydmVHYWluO1xuICAgICAgcmV0dXJuIHJlc3VsdC5nYW1lO1xuICAgIH0pO1xuICAgIGlmIChsZWFkZXJEYW1hZ2UgPiAwKSB7XG4gICAgICB0aGlzLnB1c2hJbXBhY3RFdmVudCh7IHRleHQ6IGAtJHtsZWFkZXJEYW1hZ2V9YCwgdG9uZTogJ2RhbWFnZScsIHNlYXQsIHRhcmdldDogJ2xlYWRlcicgfSk7XG4gICAgfVxuICAgIGlmIChyZXNlcnZlR2FpbiA+IDApIHtcbiAgICAgIHRoaXMucHVzaEltcGFjdEV2ZW50KHsgdGV4dDogYCske3Jlc2VydmVHYWlufWAsIHRvbmU6ICdyZXNvdXJjZScsIHNlYXQsIHRhcmdldDogJ29mZmVyaW5ncycgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdFByZXZpZXdBYmlsaXR5KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleC5zZXQoaW5kZXgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5hdmlnYXRlUHJldmlld0FiaWxpdHkoZGlyZWN0aW9uOiAtMSB8IDEpOiB2b2lkIHtcbiAgICBjb25zdCBhYmlsaXRpZXMgPSB0aGlzLnByZXZpZXdBYmlsaXRpZXMoKTtcbiAgICBpZiAoYWJpbGl0aWVzLmxlbmd0aCA8IDIpIHJldHVybjtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSBhYmlsaXRpZXMuZmluZEluZGV4KGFiaWxpdHkgPT4gYWJpbGl0eS5pbmRleCA9PT0gdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXgoKSk7XG4gICAgY29uc3QgbmV4dEluZGV4ID0gKE1hdGgubWF4KGN1cnJlbnRJbmRleCwgMCkgKyBkaXJlY3Rpb24gKyBhYmlsaXRpZXMubGVuZ3RoKSAlIGFiaWxpdGllcy5sZW5ndGg7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXguc2V0KGFiaWxpdGllc1tuZXh0SW5kZXhdLmluZGV4KTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1c2VTZWxlY3RlZFByZXZpZXdBYmlsaXR5KCk6IHZvaWQge1xuICAgIGNvbnN0IG9mZmVyaW5nID0gdGhpcy5zZWxlY3RlZFByZXZpZXdPZmZlcmluZygpO1xuICAgIGlmICghb2ZmZXJpbmcpIHJldHVybjtcbiAgICBjb25zdCBzZWxlY3RlZEFiaWxpdHlJbmRleCA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eUluZGV4KCk7XG4gICAgdGhpcy51c2VPZmZlcmluZ0FiaWxpdHkob2ZmZXJpbmcsIG9mZmVyaW5nLm93bmVyKTtcbiAgICBjb25zdCBsaXZlT2ZmZXJpbmcgPSB0aGlzLmdhbWUoKS5wbGF5ZXJzW29mZmVyaW5nLm93bmVyXS5vZmZlcmluZ3MuZmluZChjYXJkID0+IGNhcmQuaW5zdGFuY2VJZCA9PT0gb2ZmZXJpbmcuaW5zdGFuY2VJZCk7XG4gICAgaWYgKGxpdmVPZmZlcmluZykge1xuICAgICAgdGhpcy5pbnNwZWN0T2ZmZXJpbmcobGl2ZU9mZmVyaW5nKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eUluZGV4LnNldChzZWxlY3RlZEFiaWxpdHlJbmRleCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZFByZXZpZXdPZmZlcmluZygpOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlIHwgbnVsbCB7XG4gICAgY29uc3QgcHJldmlldyA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk7XG4gICAgaWYgKCFwcmV2aWV3Py5zZWF0IHx8ICFwcmV2aWV3Lm9mZmVyaW5nSW5zdGFuY2VJZCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMuZ2FtZSgpLnBsYXllcnNbcHJldmlldy5zZWF0XS5vZmZlcmluZ3MuZmluZChjYXJkID0+IGNhcmQuaW5zdGFuY2VJZCA9PT0gcHJldmlldy5vZmZlcmluZ0luc3RhbmNlSWQpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGNhblVzZVByZXZpZXdBYmlsaXR5KGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBjb25zdCBvZmZlcmluZyA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3T2ZmZXJpbmcoKTtcbiAgICBpZiAoIW9mZmVyaW5nIHx8IGluZGV4ICE9PSAwKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMuY2FuVXNlT2ZmZXJpbmdBYmlsaXR5KG9mZmVyaW5nLCBvZmZlcmluZy5vd25lcik7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdERlY2soKTogdm9pZCB7XG4gICAgY29uc3QgcmVtYWluaW5nQ2FyZHMgPSB0aGlzLmdhbWUoKS5zaGFyZWREZWNrLmxlbmd0aDtcbiAgICBjb25zdCBuZXh0Q2FyZCA9IHRoaXMuZ2FtZSgpLnNoYXJlZERlY2tbMF07XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldCh7XG4gICAgICB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlEZWNrJyksXG4gICAgICBleWVicm93OiB0aGlzLnQoJ2NocmlzdGlhbml0eVNoYXJlZFpvbmUnKSxcbiAgICAgIG1ldGE6IGAke3JlbWFpbmluZ0NhcmRzfSAke3JlbWFpbmluZ0NhcmRzID09PSAxID8gdGhpcy50KCdjaHJpc3RpYW5pdHlDYXJkUmVtYWluaW5nJykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNhcmRzUmVtYWluaW5nJyl9YCxcbiAgICAgIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5RGVja0JvZHknKSxcbiAgICAgIGZhY3RzOiBbXG4gICAgICAgIHRoaXMudCgnY2hyaXN0aWFuaXR5RGVja1J1bGVTaGFyZWQnKSxcbiAgICAgICAgdGhpcy50KCdjaHJpc3RpYW5pdHlEZWNrUnVsZURyYXcnKSxcbiAgICAgICAgdGhpcy50KCdjaHJpc3RpYW5pdHlEZWNrUnVsZUVtcHR5JyksXG4gICAgICAgIG5leHRDYXJkID8gYCR7dGhpcy50KCdjaHJpc3RpYW5pdHlEZWNrTmV4dENhcmQnKX06ICR7dGhpcy5jYXJkRGlzcGxheU5hbWUobmV4dENhcmQpfWAgOiB0aGlzLnQoJ2NocmlzdGlhbml0eURlY2tOb05leHRDYXJkJyksXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluc3BlY3RQbGFjZVpvbmUoKTogdm9pZCB7XG4gICAgY29uc3QgcGxhY2UgPSB0aGlzLmFjdGl2ZVBsYWNlQ2FyZCgpO1xuICAgIGlmIChwbGFjZSkge1xuICAgICAgdGhpcy5pbnNwZWN0SGFuZENhcmQocGxhY2UuaWQpO1xuICAgICAgdGhpcy5zZWxlY3RlZFByZXZpZXcudXBkYXRlKHByZXZpZXcgPT4gcHJldmlldyA/IHsgLi4ucHJldmlldywgc291cmNlOiAnYm9hcmQnIH0gOiBwcmV2aWV3KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldCh7XG4gICAgICB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlQbGFjZScpLFxuICAgICAgZXllYnJvdzogdGhpcy50KCdjaHJpc3RpYW5pdHlTaGFyZWRab25lJyksXG4gICAgICBtZXRhOiB0aGlzLnQoJ2NocmlzdGlhbml0eUVtcHR5JyksXG4gICAgICBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYWNlUnVsZUJvZHknKSxcbiAgICAgIGZhY3RzOiBbXG4gICAgICAgIHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VTbG90UGxheWFibGUnKSxcbiAgICAgICAgdGhpcy50KCdjaHJpc3RpYW5pdHlQbGFjZU9ubHlPbmUnKSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdEhvd1RvUGxheSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KHtcbiAgICAgIHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eUhvd1RvUGxheScpLFxuICAgICAgZXllYnJvdzogdGhpcy50KCdjaHJpc3RpYW5pdHlHZW5lc2lzRWRpdGlvbicpLFxuICAgICAgbWV0YTogdGhpcy50KCdjaHJpc3RpYW5pdHlUdXRvcmlhbE1vZGUnKSxcbiAgICAgIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5SG93VG9QbGF5SW50cm8nKSxcbiAgICAgIGZhY3RzOiBbXG4gICAgICAgIHRoaXMudCgnY2hyaXN0aWFuaXR5SG93VG9QbGF5R29hbCcpLFxuICAgICAgICB0aGlzLnQoJ2NocmlzdGlhbml0eUhvd1RvUGxheVR1cm4nKSxcbiAgICAgICAgdGhpcy50KCdjaHJpc3RpYW5pdHlIb3dUb1BsYXlPZmZlcmluZ3MnKSxcbiAgICAgICAgdGhpcy50KCdjaHJpc3RpYW5pdHlIb3dUb1BsYXlCYXR0bGUnKSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdEhhbmRDYXJkKGNhcmRJZDogc3RyaW5nLCBmcm9tSGFuZCA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eUluZGV4LnNldCgwKTtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpO1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKTtcbiAgICBpZiAoZnJvbUhhbmQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KGNhcmRJZCk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldCh7XG4gICAgICB0aXRsZTogdGV4dC5uYW1lLFxuICAgICAgZXllYnJvdzogdGhpcy5jYXJkVHlwZUxhYmVsKGNhcmQpLFxuICAgICAgbWV0YTogdGhpcy5jYXJkUHJldmlld01ldGEoY2FyZCksXG4gICAgICBib2R5OiB0aGlzLmRlZmF1bHRDYXJkQm9keShjYXJkLnR5cGUpLFxuICAgICAgY2FyZElkLFxuICAgICAgc291cmNlOiBmcm9tSGFuZCA/ICdoYW5kJyA6ICdwaWxlJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0R2FsbGVyeUNhcmQoY2FyZElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmluc3BlY3RIYW5kQ2FyZChjYXJkSWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnVwZGF0ZShwcmV2aWV3ID0+IHByZXZpZXcgPyB7IC4uLnByZXZpZXcsIHNvdXJjZTogJ2dhbGxlcnknIH0gOiBwcmV2aWV3KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0SGlzdG9yeUNhcmQoY2FyZElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmluc3BlY3RIYW5kQ2FyZChjYXJkSWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnVwZGF0ZShwcmV2aWV3ID0+IHByZXZpZXcgPyB7IC4uLnByZXZpZXcsIHNvdXJjZTogJ2hpc3RvcnknIH0gOiBwcmV2aWV3KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5zcGVjdENoYXJhY3RlcihjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleC5zZXQoMCk7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZC5jYXJkSWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldCh7XG4gICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoZGVmaW5pdGlvbikubmFtZSxcbiAgICAgIGV5ZWJyb3c6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyQ2FyZCcpLFxuICAgICAgbWV0YTogYCR7Y2FyZC5hdHRhY2t9LyR7Y2FyZC5jdXJyZW50SHB9YCxcbiAgICAgIGJvZHk6IGNhcmQuY2FuQXR0YWNrID8gdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJSZWFkeScpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJFeGhhdXN0ZWQnKSxcbiAgICAgIGNhcmRJZDogY2FyZC5jYXJkSWQsXG4gICAgICBzb3VyY2U6ICdib2FyZCcsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNhcmRQcmV2aWV3TWV0YShjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbik6IHN0cmluZyB7XG4gICAgaWYgKGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJykgcmV0dXJuIGAke2NhcmQub2ZmZXJpbmdWYWx1ZSA/PyBjYXJkLmxpZmUgPz8gMX1gO1xuICAgIGlmIChjYXJkLnR5cGUgPT09ICdsZWFkZXInKSByZXR1cm4gYCR7Y2FyZC5sZWFkZXJMaWZlID8/IGNhcmQubGlmZSA/PyAwfWA7XG4gICAgaWYgKGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicpIHJldHVybiBgJHt0aGlzLnQoJ2NocmlzdGlhbml0eUNvc3QnKX0gJHtjYXJkLmNvc3QgPz8gMH0gwrcgJHtjYXJkLmF0dGFjayA/PyAwfS8ke2NhcmQubGlmZSA/PyAwfWA7XG4gICAgaWYgKGNhcmQuY29zdCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gYCR7dGhpcy50KCdjaHJpc3RpYW5pdHlDb3N0Jyl9ICR7Y2FyZC5jb3N0fWA7XG4gICAgcmV0dXJuIGNhcmQuY29sbGVjdG9yTnVtYmVyID8/IGNhcmQuaWQ7XG4gIH1cblxufVxuIl19
|
|
3671
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyaXN0aWFuaXR5LWdhbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9taW5pLWdhbWVzL2NocmlzdGlhbml0eS1nYW1lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxPQUFPLEVBQWUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRS9HLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUseUJBQXlCLEVBQTJELE1BQU0sK0JBQStCLENBQUM7QUFDbkksT0FBTyxFQUFFLHdCQUF3QixFQUEyQixNQUFNLCtCQUErQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSx5QkFBeUIsRUFBNEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RyxPQUFPLEVBRUwsV0FBVyxFQUNYLHFCQUFxQixJQUFJLGlDQUFpQyxFQUMxRCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixnQkFBZ0IsSUFBSSw0QkFBNEIsRUFDaEQsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLGNBQWMsR0FDZixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFnSHBELE1BQU0sbUJBQW1CLEdBQUcsc0RBQXNELENBQUM7QUFD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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4d0JUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2RrRHJhZywgQ2RrRHJhZ0Ryb3AsIENka0RyYWdQbGFjZWhvbGRlciwgQ2RrRHJhZ1ByZXZpZXcsIENka0Ryb3BMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbmltcG9ydCB7IExpZ2h0UmlwcGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9saWdodC1yaXBwbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBDaHJpc3RpYW5pdHlDYXJkQ29tcG9uZW50LCBDaHJpc3RpYW5pdHlDYXJkUmVuZGVyTW9kZWwsIENocmlzdGlhbml0eUNhcmRSZW5kZXJUeXBlIH0gZnJvbSAnLi9jaHJpc3RpYW5pdHktY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWluaUdhbWVDYWxsb3V0Q29tcG9uZW50LCBNaW5pR2FtZUNhbGxvdXRNZXRhZGF0YSB9IGZyb20gJy4vbWluaS1nYW1lLWNhbGxvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE1pbmlHYW1lU2NvcmVQb3BDb21wb25lbnQsIE1pbmlHYW1lU2NvcmVQb3BNZXRhZGF0YSB9IGZyb20gJy4vbWluaS1nYW1lLXNjb3JlLXBvcC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ2hyaXN0aWFuaXR5UnVsZU1lc3NhZ2VzLFxuICBhZHZhbmNlVHVybixcbiAgY2FuVXNlT2ZmZXJpbmdBYmlsaXR5IGFzIGNhblVzZUNocmlzdGlhbml0eU9mZmVyaW5nQWJpbGl0eSxcbiAgY2FuUGxheUNhcmQsXG4gIGNsZWFudXBEZXN0cm95ZWQsXG4gIGV2YWx1YXRlVmljdG9yeSxcbiAgcGxheUNhcmRGcm9tSGFuZCBhcyBwbGF5Q2hyaXN0aWFuaXR5Q2FyZEZyb21IYW5kLFxuICByZWFkeU9mZmVyaW5ncyxcbiAgcmVzb2x2ZUF0dGFja0NoYXJhY3RlcixcbiAgcmVzb2x2ZUF0dGFja0xlYWRlcixcbiAgcmVzb2x2ZU9mZmVyaW5nQWJpbGl0eSxcbiAgdG90YWxPZmZlcmluZ3MsXG59IGZyb20gJy4vY2hyaXN0aWFuaXR5LXJ1bGVzJztcbmltcG9ydCB7IE1JTklfR0FNRVNfSTE4TiB9IGZyb20gJy4vbWluaS1nYW1lcy5pMThuJztcbmltcG9ydCB7XG4gIENocmlzdGlhbml0eUNhcmRCaWJsZVJlZmVyZW5jZSxcbiAgQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24sXG4gIENocmlzdGlhbml0eUNhcmRUcmFuc2xhdGlvbixcbiAgQ2hyaXN0aWFuaXR5Q2FyZFR5cGUsXG4gIENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlLFxuICBDaHJpc3RpYW5pdHlHYW1lU3RhdGUsXG4gIENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UsXG4gIENocmlzdGlhbml0eVBsYXllclN0YXRlLFxuICBDaHJpc3RpYW5pdHlTZWF0LFxufSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIENocmlzdGlhbml0eUNhcmRQcmV2aWV3IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgZXllYnJvdzogc3RyaW5nO1xuICBtZXRhOiBzdHJpbmc7XG4gIGJvZHk6IHN0cmluZztcbiAgY2FyZElkPzogc3RyaW5nO1xuICBzb3VyY2U/OiAnaGFuZCcgfCAnYm9hcmQnIHwgJ3BpbGUnIHwgJ2hpc3RvcnknIHwgJ29mZmVyaW5ncycgfCAnZ2FsbGVyeSc7XG4gIHNlYXQ/OiBDaHJpc3RpYW5pdHlTZWF0O1xuICBvZmZlcmluZ0luc3RhbmNlSWQ/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlJbmZvUGFuZWwge1xuICB0aXRsZTogc3RyaW5nO1xuICBleWVicm93OiBzdHJpbmc7XG4gIG1ldGE6IHN0cmluZztcbiAgYm9keTogc3RyaW5nO1xuICBmYWN0czogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlQcmV2aWV3UnVsZSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGJvZHk6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIENocmlzdGlhbml0eVByZXZpZXdBYmlsaXR5IHtcbiAgaW5kZXg6IG51bWJlcjtcbiAgdGl0bGU6IHN0cmluZztcbiAgYm9keTogc3RyaW5nO1xuICBjYW5Vc2U6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlQcmV2aWV3VGlsdCB7XG4gIHJvdGF0ZVg6IG51bWJlcjtcbiAgcm90YXRlWTogbnVtYmVyO1xuICBzaGlmdFg6IG51bWJlcjtcbiAgc2hpZnRZOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlJbXBhY3RFdmVudCB7XG4gIGlkOiBudW1iZXI7XG4gIHRleHQ6IHN0cmluZztcbiAgdG9uZTogJ2RhbWFnZScgfCAnaGVhbCcgfCAncmVzb3VyY2UnO1xuICBzZWF0OiBDaHJpc3RpYW5pdHlTZWF0O1xuICB0YXJnZXQ6ICdsZWFkZXInIHwgJ2JhdHRsZScgfCAnb2ZmZXJpbmdzJztcbn1cblxuaW50ZXJmYWNlIENocmlzdGlhbml0eUNvbWJhdFRyYWlsIHtcbiAgZnJvbVg6IHN0cmluZztcbiAgZnJvbVk6IHN0cmluZztcbiAgbWlkWDogc3RyaW5nO1xuICBtaWRZOiBzdHJpbmc7XG4gIGxlbmd0aDogc3RyaW5nO1xuICBhbmdsZTogc3RyaW5nO1xuICB0b25lOiAnYXR0YWNrJyB8ICdsZWFkZXInIHwgJ2NoYXJhY3Rlcic7XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlDb21iYXRBbmltYXRpb24ge1xuICBhdHRhY2tlckluc3RhbmNlSWQ6IHN0cmluZztcbiAgYXR0YWNrZXJTZWF0OiBDaHJpc3RpYW5pdHlTZWF0O1xuICB0YXJnZXRJbnN0YW5jZUlkPzogc3RyaW5nO1xuICB0YXJnZXRTZWF0OiBDaHJpc3RpYW5pdHlTZWF0O1xuICB0YXJnZXQ6ICdsZWFkZXInIHwgJ2NoYXJhY3Rlcic7XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlSZXNvbHZlZENhcmRUZXh0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBmdWxsTmFtZT86IHN0cmluZztcbiAgdmVyc2VUZXh0Pzogc3RyaW5nO1xuICBzY3JpcHR1cmU/OiBzdHJpbmc7XG4gIGFiaWxpdHlOYW1lPzogc3RyaW5nO1xuICBhYmlsaXR5VGV4dD86IHN0cmluZztcbiAgYWJpbGl0aWVzPzogQ2hyaXN0aWFuaXR5Q2FyZFRyYW5zbGF0aW9uWydhYmlsaXRpZXMnXTtcbn1cblxuaW50ZXJmYWNlIENocmlzdGlhbml0eUVkaXRpb25DYXRhbG9nIHtcbiAgZWRpdGlvbj86IHtcbiAgICBpZD86IHN0cmluZztcbiAgICBudW1iZXI/OiBudW1iZXI7XG4gICAgc2x1Zz86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGljb24/OiBzdHJpbmc7XG4gIH07XG4gIGNhcmRzPzogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXTtcbn1cblxudHlwZSBDaHJpc3RpYW5pdHlHYWxsZXJ5VHlwZUZpbHRlciA9ICdhbGwnIHwgQ2hyaXN0aWFuaXR5Q2FyZFR5cGU7XG50eXBlIENocmlzdGlhbml0eVNjcmVlbiA9ICdzcGxhc2gnIHwgJ2hvbWUnIHwgJ3RhYmxlJztcbnR5cGUgQ2hyaXN0aWFuaXR5Q2F0YWxvZ0xvYWRTdGF0ZSA9ICdsb2FkaW5nJyB8ICdyZWFkeScgfCAnZmFsbGJhY2snO1xudHlwZSBDaHJpc3RpYW5pdHlUdXRvcmlhbFBoYXNlID0gJ2NvaW4nIHwgJ2xlYWRlcl9waWNrJyB8ICdpbl9wcm9ncmVzcycgfCAnZmluaXNoZWQnO1xuXG5pbnRlcmZhY2UgQ2hyaXN0aWFuaXR5VHV0b3JpYWxTZXR1cCB7XG4gIGNvaW5XaW5uZXI6IENocmlzdGlhbml0eVNlYXQ7XG4gIGxlYWRlclBpY2tlcjogQ2hyaXN0aWFuaXR5U2VhdDtcbiAgZmlyc3RQbGF5ZXI6IENocmlzdGlhbml0eVNlYXQ7XG4gIGF2YWlsYWJsZUxlYWRlcnM6IHN0cmluZ1tdO1xuICBwbGF5ZXJMZWFkZXJJZD86IHN0cmluZztcbiAgb3Bwb25lbnRMZWFkZXJJZD86IHN0cmluZztcbn1cblxuY29uc3QgR0VORVNJU19DQVRBTE9HX1VSTCA9ICdhc3NldHMvZ2FtZXMvY2hyaXN0aWFuaXR5L2RhdGEvMDEtZ2VuZXNpcy5jYXJkcy5qc29uJztcbmNvbnN0IEdFTkVTSVNfSUNPTl9VUkwgPSAnYXNzZXRzL2dhbWVzL2NocmlzdGlhbml0eS9pY29ucy8xLWljb24ucG5nJztcbmNvbnN0IFRVVE9SSUFMX0NIQVJBQ1RFUl9MSU1JVCA9IDEyO1xuY29uc3QgVFVUT1JJQUxfT0ZGRVJJTkdfTElNSVQgPSA2O1xuY29uc3QgVFVUT1JJQUxfT1BFTklOR19IQU5EX1NJWkUgPSA1O1xuY29uc3QgVFVUT1JJQUxfU0VFRCA9IDIwMjYwNzI4O1xuY29uc3QgU1BMQVNIX01JTl9EVVJBVElPTl9NUyA9IDcyMDtcbmNvbnN0IENIUklTVElBTklUWV9QUkVWSUVXX05FVVRSQUxfVElMVDogQ2hyaXN0aWFuaXR5UHJldmlld1RpbHQgPSB7IHJvdGF0ZVg6IDAsIHJvdGF0ZVk6IDAsIHNoaWZ0WDogMCwgc2hpZnRZOiAwIH07XG5cbmNvbnN0IFNUQVJURVJfQ0FSRFM6IFJlY29yZDxzdHJpbmcsIENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uPiA9IHtcbiAgb19zaW1wbGU6IHtcbiAgICBpZDogJ29fc2ltcGxlJyxcbiAgICBuYW1lOiAnT2ZyZW5kYSBzaW1wbGUnLFxuICAgIHR5cGU6ICdvZmZlcmluZycsXG4gICAgY29zdDogMCxcbiAgICBhdHRhY2s6IDAsXG4gICAgbGlmZTogMSxcbiAgICB2ZXJzZVRleHQ6ICdVbmEgb2ZyZW5kYSBzZW5jaWxsYSBxdWVkYSBsaXN0YSBwYXJhIHNvc3RlbmVyIHR1cyBzaWd1aWVudGVzIGp1Z2FkYXMuJyxcbiAgICBzY3JpcHR1cmU6ICdHZW5lc2lzIDQ6NCcsXG4gICAgZWRpdGlvbjogJ0dFTicsXG4gICAgY29sbGVjdG9yTnVtYmVyOiAnMDAxLzAyMCcsXG4gICAgeWVhcjogJzIwMjYnLFxuICAgIGF1dGhvcjogJ01WUCcsXG4gICAgcmFyaXR5OiAnbm9ybWFsJyxcbiAgfSxcbiAgb19mb3JiaWRkZW46IHtcbiAgICBpZDogJ29fZm9yYmlkZGVuJyxcbiAgICBuYW1lOiAnRWwgZnJ1dG8gcHJvaGliaWRvJyxcbiAgICB0eXBlOiAnb2ZmZXJpbmcnLFxuICAgIGNvc3Q6IDAsXG4gICAgYXR0YWNrOiAwLFxuICAgIGxpZmU6IDIsXG4gICAgYWJpbGl0eU5hbWU6ICdDb25vY2ltaWVudG8gZGVsIGJpZW4geSBkZWwgbWFsJyxcbiAgICBhYmlsaXR5VGV4dDogJ0dlbmVyYSBlbCB2YWxvciBkZSAyIG9mcmVuZGFzLiBBbCB1c2FybGEsIGluZmxpZ2UgMSBwdW50byBkZSBkYcOxbyBhbCBsw61kZXIuJyxcbiAgICBhYmlsaXR5Q29zdDogMCxcbiAgICB2ZXJzZVRleHQ6ICdEaW9zIGVsIFNlw7FvciBwdXNvIGFsIGhvbWJyZSBlbiBlbCBqYXJkw61uIGRlIEVkw6luIHBhcmEgcXVlIGxvIGxhYnJhcmEgeSBsbyBjdWlkYXJhLicsXG4gICAgc2NyaXB0dXJlOiAnR2VuZXNpcyAyOjE3IE5CVicsXG4gICAgZWRpdGlvbjogJ0dFTicsXG4gICAgY29sbGVjdG9yTnVtYmVyOiAnMDEyLzE4MCcsXG4gICAgeWVhcjogJzIwMjYnLFxuICAgIGF1dGhvcjogJ01WUCcsXG4gICAgcmFyaXR5OiAndW5jb21tb24nLFxuICB9LFxuICBwX3Njb3V0OiB7XG4gICAgaWQ6ICdwX3Njb3V0JyxcbiAgICBuYW1lOiAnU2NvdXQnLFxuICAgIHR5cGU6ICdjaGFyYWN0ZXInLFxuICAgIGNvc3Q6IDEsXG4gICAgYXR0YWNrOiAxLFxuICAgIGxpZmU6IDEsXG4gICAgdmVyc2VUZXh0OiAnVW4gZXhwbG9yYWRvciBodW1pbGRlIGFicmUgY2FtaW5vIGFudGVzIGRlIHF1ZSBsbGVndWUgbGEgYmF0YWxsYS4nLFxuICAgIHNjcmlwdHVyZTogJ0dlbmVzaXMgMTM6MTcnLFxuICAgIGVkaXRpb246ICdHRU4nLFxuICAgIGNvbGxlY3Rvck51bWJlcjogJzAwMi8wMjAnLFxuICAgIHllYXI6ICcyMDI2JyxcbiAgICBhdXRob3I6ICdNVlAnLFxuICAgIHJhcml0eTogJ25vcm1hbCcsXG4gIH0sXG4gIHBfZ3VhcmQ6IHsgaWQ6ICdwX2d1YXJkJywgbmFtZTogJ0d1YXJkJywgdHlwZTogJ2NoYXJhY3RlcicsIGNvc3Q6IDIsIGF0dGFjazogMSwgbGlmZTogMywgZWRpdGlvbjogJ0dFTicsIGNvbGxlY3Rvck51bWJlcjogJzAwMy8wMjAnLCB5ZWFyOiAnMjAyNicsIGF1dGhvcjogJ01WUCcsIHJhcml0eTogJ25vcm1hbCcgfSxcbiAgcF93YXJyaW9yOiB7IGlkOiAncF93YXJyaW9yJywgbmFtZTogJ1dhcnJpb3InLCB0eXBlOiAnY2hhcmFjdGVyJywgY29zdDogMiwgYXR0YWNrOiAyLCBsaWZlOiAyLCBlZGl0aW9uOiAnR0VOJywgY29sbGVjdG9yTnVtYmVyOiAnMDA0LzAyMCcsIHllYXI6ICcyMDI2JywgYXV0aG9yOiAnTVZQJywgcmFyaXR5OiAnbm9ybWFsJyB9LFxuICBwX2VsZGVyOiB7IGlkOiAncF9lbGRlcicsIG5hbWU6ICdFbGRlcicsIHR5cGU6ICdjaGFyYWN0ZXInLCBjb3N0OiAzLCBhdHRhY2s6IDIsIGxpZmU6IDQsIGVkaXRpb246ICdHRU4nLCBjb2xsZWN0b3JOdW1iZXI6ICcwMDUvMDIwJywgeWVhcjogJzIwMjYnLCBhdXRob3I6ICdNVlAnLCByYXJpdHk6ICd1bmNvbW1vbicgfSxcbiAgcF9jaGFtcGlvbjogeyBpZDogJ3BfY2hhbXBpb24nLCBuYW1lOiAnQ2hhbXBpb24nLCB0eXBlOiAnY2hhcmFjdGVyJywgY29zdDogNCwgYXR0YWNrOiA0LCBsaWZlOiA0LCBlZGl0aW9uOiAnR0VOJywgY29sbGVjdG9yTnVtYmVyOiAnMDA2LzAyMCcsIHllYXI6ICcyMDI2JywgYXV0aG9yOiAnTVZQJywgcmFyaXR5OiAncmFyZScgfSxcbn07XG5cbmNvbnN0IFNUQVJUSU5HX1NIQVJFRF9ERUNLID0gW1xuICAnb19zaW1wbGUnLFxuICAncF9zY291dCcsXG4gICdvX2ZvcmJpZGRlbicsXG4gICdvX3NpbXBsZScsXG4gICdwX2d1YXJkJyxcbiAgJ3Bfd2FycmlvcicsXG4gICdvX3NpbXBsZScsXG4gICdwX2VsZGVyJyxcbiAgJ3Bfc2NvdXQnLFxuICAnb19zaW1wbGUnLFxuICAncF9jaGFtcGlvbicsXG4gICdwX2d1YXJkJyxcbiAgJ29fc2ltcGxlJyxcbiAgJ3Bfd2FycmlvcicsXG4gICdwX3Njb3V0JyxcbiAgJ29fc2ltcGxlJyxcbiAgJ3BfZWxkZXInLFxuICAncF9ndWFyZCcsXG4gICdvX3NpbXBsZScsXG5dO1xuXG5jb25zdCBTVEFSVElOR19HQU1FOiBDaHJpc3RpYW5pdHlHYW1lU3RhdGUgPSB7XG4gIGdhbWVJZDogJ21vY2stY2hyaXN0aWFuaXR5JyxcbiAgc3RhdHVzOiAnaW5fcHJvZ3Jlc3MnLFxuICBtb2RlOiAnbG9jYWxfcGFzcycsXG4gIHR1cm5Pd25lcjogJ1AxJyxcbiAgcmV2aXNpb246IDAsXG4gIHR1cm5Db3VudDogMSxcbiAgbWF0Y2hTY29yZTogeyBQMTogMCwgUDI6IDAgfSxcbiAgc2hhcmVkRGVjazogU1RBUlRJTkdfU0hBUkVEX0RFQ0ssXG4gIHBsYWNlWm9uZTogW10sXG4gIGhpc3Rvcnlab25lOiBbXSxcbiAgcGxheWVyczoge1xuICAgIFAxOiB7XG4gICAgICBzZWF0OiAnUDEnLFxuICAgICAgZGlzcGxheU5hbWU6ICdKdWdhZG9yJyxcbiAgICAgIGF2YXRhcjogJ0onLFxuICAgICAgYXZhdGFyQ29sb3I6ICcjMjU2M2ViJyxcbiAgICAgIGxlYWRlck5hbWU6ICdBZGFtJyxcbiAgICAgIGxlYWRlckhwOiAxNSxcbiAgICAgIGxlYWRlck1heEhwOiAxNSxcbiAgICAgIG9mZmVyaW5nczogW1xuICAgICAgICB7IGluc3RhbmNlSWQ6ICdwMV9vZmZlcmluZ18wMDEnLCBjYXJkSWQ6ICdvX3NpbXBsZScsIG5hbWU6ICdPZnJlbmRhIHNpbXBsZScsIG93bmVyOiAnUDEnLCByZWFkeTogdHJ1ZSwgdmFsdWU6IDEgfSxcbiAgICAgICAge1xuICAgICAgICAgIGluc3RhbmNlSWQ6ICdwMV9vZmZlcmluZ18wMDInLFxuICAgICAgICAgIGNhcmRJZDogJ29fZm9yYmlkZGVuJyxcbiAgICAgICAgICBuYW1lOiAnRWwgZnJ1dG8gcHJvaGliaWRvJyxcbiAgICAgICAgICBvd25lcjogJ1AxJyxcbiAgICAgICAgICByZWFkeTogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogMixcbiAgICAgICAgICBhYmlsaXR5TmFtZTogJ0Nvbm9jaW1pZW50byBkZWwgYmllbiB5IGRlbCBtYWwnLFxuICAgICAgICAgIGFiaWxpdHlUZXh0OiAnR2VuZXJhIGVsIHZhbG9yIGRlIDIgb2ZyZW5kYXMuIEFsIHVzYXJsYSwgaW5mbGlnZSAxIHB1bnRvIGRlIGRhw7FvIGFsIGxpZGVyLicsXG4gICAgICAgICAgYWJpbGl0eUNvc3Q6IDAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgb2ZmZXJpbmdQbGF5ZWRUaGlzVHVybjogZmFsc2UsXG4gICAgICBoYW5kOiBbJ29fc2ltcGxlJywgJ3Bfc2NvdXQnLCAncF93YXJyaW9yJywgJ3BfZ3VhcmQnXSxcbiAgICAgIGJhdHRsZVpvbmU6IFtdLFxuICAgIH0sXG4gICAgUDI6IHtcbiAgICAgIHNlYXQ6ICdQMicsXG4gICAgICBkaXNwbGF5TmFtZTogJ1JpdmFsJyxcbiAgICAgIGF2YXRhcjogJ1InLFxuICAgICAgYXZhdGFyQ29sb3I6ICcjYjQ1MzA5JyxcbiAgICAgIGxlYWRlck5hbWU6ICdOb2FoJyxcbiAgICAgIGxlYWRlckhwOiAxNSxcbiAgICAgIGxlYWRlck1heEhwOiAxNSxcbiAgICAgIG9mZmVyaW5nczogW3sgaW5zdGFuY2VJZDogJ3AyX29mZmVyaW5nXzAwMScsIGNhcmRJZDogJ29fc2ltcGxlJywgbmFtZTogJ09mcmVuZGEgc2ltcGxlJywgb3duZXI6ICdQMicsIHJlYWR5OiB0cnVlLCB2YWx1ZTogMSB9XSxcbiAgICAgIG9mZmVyaW5nUGxheWVkVGhpc1R1cm46IGZhbHNlLFxuICAgICAgaGFuZENvdW50OiA0LFxuICAgICAgYmF0dGxlWm9uZTogW1xuICAgICAgICB7XG4gICAgICAgICAgaW5zdGFuY2VJZDogJ29wcF8wMDEnLFxuICAgICAgICAgIGNhcmRJZDogJ3Bfc2NvdXQnLFxuICAgICAgICAgIG5hbWU6ICdTY291dCcsXG4gICAgICAgICAgb3duZXI6ICdQMicsXG4gICAgICAgICAgY29udHJvbGxlcjogJ1AyJyxcbiAgICAgICAgICBzbG90OiAwLFxuICAgICAgICAgIGF0dGFjazogMSxcbiAgICAgICAgICBjdXJyZW50SHA6IDEsXG4gICAgICAgICAgbWF4SHA6IDEsXG4gICAgICAgICAgY2FuQXR0YWNrOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAgbG9nOiBbJ1BhcnRpZGEgaW5pY2lhZGEuJ10sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY2hyaXN0aWFuaXR5LWdhbWUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ2RrRHJhZyxcbiAgICBDZGtEcmFnUGxhY2Vob2xkZXIsXG4gICAgQ2RrRHJhZ1ByZXZpZXcsXG4gICAgQ2RrRHJvcExpc3QsXG4gICAgTGlnaHRSaXBwbGVEaXJlY3RpdmUsXG4gICAgQ2hyaXN0aWFuaXR5Q2FyZENvbXBvbmVudCxcbiAgICBNaW5pR2FtZUNhbGxvdXRDb21wb25lbnQsXG4gICAgTWluaUdhbWVTY29yZVBvcENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bWFpbiBjbGFzcz1cImNocmlzdGlhbml0eS1zaGVsbFwiIFtjbGFzcy5oYXMtbW9kYWwtb3Blbl09XCJoYXNNb2RhbE92ZXJsYXkoKVwiPlxuICAgICAgQGlmIChzY3JlZW4oKSA9PT0gJ3NwbGFzaCcpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktc3BsYXNoXCIgcm9sZT1cInN0YXR1c1wiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrXCI+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eVNwbGFzaEV5ZWJyb3cnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxoMj57eyB0KCdjaHJpc3RpYW5pdHlTcGxhc2hUaXRsZScpIH19PC9oMj5cbiAgICAgICAgICAgIDxwPnt7IHNwbGFzaFN0YXR1c1RleHQoKSB9fTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfSBAZWxzZSBpZiAoc2NyZWVuKCkgPT09ICdob21lJykge1xuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1zdGFydFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktc3RhcnRfX2hlcm9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktc3RhcnRfX2NvcHlcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5R2VuZXNpc0VkaXRpb24nKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGgyPnt7IHQoJ2NocmlzdGlhbml0eVN0YXJ0VGl0bGUnKSB9fTwvaDI+XG4gICAgICAgICAgICAgIDxwPnt7IHQoJ2NocmlzdGlhbml0eVN0YXJ0Qm9keScpIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXN0YXJ0X19mYW5cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgQGZvciAoY2FyZCBvZiBzdGFydEZlYXR1cmVkQ2FyZHMoKTsgdHJhY2sgY2FyZC5pZCkge1xuICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmRcbiAgICAgICAgICAgICAgICAgIFtjYXJkXT1cImRlZmluaXRpb25Ub1JlbmRlckNhcmQoY2FyZClcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJhYnlcIlxuICAgICAgICAgICAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCJzdGFydEZlYXR1cmVkQ2FyZFRyYW5zZm9ybSgkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICA+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzXCI+XG4gICAgICAgICAgICA8YXJ0aWNsZT5cbiAgICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjaHJpc3RpYW5pdHlUdXRvcmlhbE1vZGUnKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlUdXRvcmlhbE1vZGVCb2R5JykgfX08L3A+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByaW1hcnktYWN0aW9uXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cInN0YXJ0VHV0b3JpYWwoKVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2NocmlzdGlhbml0eVN0YXJ0VHV0b3JpYWwnKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICAgIDxhcnRpY2xlPlxuICAgICAgICAgICAgICA8c3Ryb25nPnt7IHQoJ2NocmlzdGlhbml0eUdhbGxlcnknKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlHYWxsZXJ5TW9kZUJvZHknKSB9fTwvcD5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktc2Vjb25kYXJ5LWFjdGlvblwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJvcGVuR2FsbGVyeSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5T3BlbkdhbGxlcnknKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICAgIDxhcnRpY2xlPlxuICAgICAgICAgICAgICA8c3Ryb25nPnt7IHQoJ2NocmlzdGlhbml0eUhvd1RvUGxheScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDxwPnt7IHQoJ2NocmlzdGlhbml0eUhvd1RvUGxheUJvZHknKSB9fTwvcD5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktc2Vjb25kYXJ5LWFjdGlvblwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJpbnNwZWN0SG93VG9QbGF5KClcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdsZWFybk1vcmUnKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXN0YXJ0X19zdGF0dXNcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eUVkaXRpb25TdGF0dXMnKVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgZ2FsbGVyeUVkaXRpb25MYWJlbCgpIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5VHV0b3JpYWxBY3RpdmUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IGNhdGFsb2dTdGF0dXNMYWJlbCgpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2Rlc1wiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5RnV0dXJlTW9kZXMnKVwiPlxuICAgICAgICAgICAgQGZvciAobW9kZSBvZiBmdXR1cmVNb2RlcygpOyB0cmFjayBtb2RlLnRpdGxlKSB7XG4gICAgICAgICAgICAgIDxhcnRpY2xlPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgbW9kZS50aXRsZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDxwPnt7IG1vZGUuYm9keSB9fTwvcD5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdzb29uVGl0bGUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9hcnRpY2xlPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1tYXRjaC1zdHJpcFwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlNYXRjaFNjb3JlJylcIj5cbiAgICAgICAgPGFydGljbGUgY2xhc3M9XCJjaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktYXZhdGFyXCIgW3N0eWxlLmJhY2tncm91bmRdPVwicGxheWVyKCkuYXZhdGFyQ29sb3JcIj57eyBwbGF5ZXIoKS5hdmF0YXIgfX08L3NwYW4+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgcGxheWVyKCkuZGlzcGxheU5hbWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDxzbWFsbD57eyBwbGF5ZXJMZWFkZXJEaXNwbGF5TmFtZShwbGF5ZXIoKSkgfX0gwrcge3sgcGxheWVyKCkubGVhZGVySHAgfX0ve3sgcGxheWVyKCkubGVhZGVyTWF4SHAgfX08L3NtYWxsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2FydGljbGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktc2NvcmVib2FyZFwiPlxuICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eU1hdGNoJykgfX08L3NwYW4+XG4gICAgICAgICAgPHN0cm9uZz57eyBnYW1lKCkubWF0Y2hTY29yZS5QMSB9fS17eyBnYW1lKCkubWF0Y2hTY29yZS5QMiB9fTwvc3Ryb25nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGFydGljbGUgY2xhc3M9XCJjaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIGNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXItLW9wcG9uZW50XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktYXZhdGFyXCIgW3N0eWxlLmJhY2tncm91bmRdPVwib3Bwb25lbnQoKS5hdmF0YXJDb2xvclwiPnt7IG9wcG9uZW50KCkuYXZhdGFyIH19PC9zcGFuPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IG9wcG9uZW50KCkuZGlzcGxheU5hbWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDxzbWFsbD57eyBwbGF5ZXJMZWFkZXJEaXNwbGF5TmFtZShvcHBvbmVudCgpKSB9fSDCtyB7eyBvcHBvbmVudCgpLmxlYWRlckhwIH19L3t7IG9wcG9uZW50KCkubGVhZGVyTWF4SHAgfX08L3NtYWxsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2FydGljbGU+XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIDxzZWN0aW9uXG4gICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXR1cm4tYmFubmVyXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktdHVybi1iYW5uZXJcIlxuICAgICAgICBbY2xhc3MuaXMtb3duLXR1cm5dPVwiaXNPd25UdXJuKClcIlxuICAgICAgICBbY2xhc3MuaXMtcml2YWwtdHVybl09XCIhaXNPd25UdXJuKCkgJiYgZ2FtZSgpLnN0YXR1cyA9PT0gJ2luX3Byb2dyZXNzJ1wiXG4gICAgICAgIFtjbGFzcy5pcy1maW5pc2hlZF09XCJnYW1lKCkuc3RhdHVzID09PSAnZmluaXNoZWQnXCJcbiAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgID5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlUdXJuJykgfX0ge3sgZ2FtZSgpLnR1cm5Db3VudCB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3Ryb25nPnt7IHR1cm5CYW5uZXJUaXRsZSgpIH19PC9zdHJvbmc+XG4gICAgICAgICAgPHA+e3sgdHVybkJhbm5lckJvZHkoKSB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9wdGlvbnMtYnV0dG9uXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktb3B0aW9ucy1idXR0b25cIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwidG9nZ2xlT3B0aW9ucygpXCI+XG4gICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5T3B0aW9ucycpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICBAaWYgKHNob3dPcHRpb25zKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9wdGlvbnMtbWVudVwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LW9wdGlvbnMtbWVudVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlc3RhcnRUdXRvcmlhbCgpXCI+e3sgdCgnY2hyaXN0aWFuaXR5UmVzdGFydCcpIH19PC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwiZ2FtZSgpLnN0YXR1cyA9PT0gJ2ZpbmlzaGVkJ1wiIChjbGljayk9XCJyZXNpZ25UdXRvcmlhbCgpXCI+e3sgdCgnY2hyaXN0aWFuaXR5UmVzaWduJykgfX08L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJyZXR1cm5Ub0NocmlzdGlhbml0eUhvbWUoKVwiPnt7IHQoJ2NocmlzdGlhbml0eUJhY2tUb01lbnUnKSB9fTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYgY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGFuZC1tZXRlciBjaHJpc3RpYW5pdHktaGFuZC1tZXRlci0tb3Bwb25lbnRcIj5cbiAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlIYW5kJykgfX08L3NwYW4+XG4gICAgICAgICAgPHN0cm9uZz57eyBvcHBvbmVudEhhbmRDb3VudCgpIH19PC9zdHJvbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oYW5kLWZhbiBjaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50XCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktb3Bwb25lbnQtaGFuZFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5T3Bwb25lbnRIYW5kJylcIj5cbiAgICAgICAgICBAZm9yIChfIG9mIGhpZGRlbkhhbmRDYXJkcyhvcHBvbmVudEhhbmRDb3VudCgpKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1oaWRkZW4tY2FyZC1idXR0b24gY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvblwiXG4gICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwiZmFuVHJhbnNmb3JtKCRpbmRleCwgb3Bwb25lbnRIYW5kQ291bnQoKSwgdHJ1ZSlcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eUhpZGRlbkNhcmQnKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiaGlkZGVuQ2FyZFJlbmRlckNhcmQoKVwiIHZhcmlhbnQ9XCJiYWNrXCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktdGFibGVcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS10YWJsZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5VGFibGUnKVwiPlxuICAgICAgICBAaWYgKHR1dG9yaWFsUGhhc2UoKSAhPT0gJ2luX3Byb2dyZXNzJyAmJiB0dXRvcmlhbFBoYXNlKCkgIT09ICdmaW5pc2hlZCcpIHtcbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1zZXR1cC1wYW5lbFwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LXNldHVwLXBhbmVsXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlNYXRjaFNldHVwJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxoMj57eyBzZXR1cFRpdGxlKCkgfX08L2gyPlxuICAgICAgICAgICAgICA8cD57eyBzZXR1cEJvZHkoKSB9fTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGlmICh0dXRvcmlhbFBoYXNlKCkgPT09ICdjb2luJykge1xuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmltYXJ5LWFjdGlvblwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWNvbnRpbnVlLXNldHVwXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cImNvbnRpbnVlQWZ0ZXJDb2luKClcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlDb250aW51ZScpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICh0dXRvcmlhbFBoYXNlKCkgPT09ICdsZWFkZXJfcGljaycpIHtcbiAgICAgICAgICAgICAgQGlmICh0dXRvcmlhbFNldHVwKCk/LmxlYWRlclBpY2tlciA9PT0gJ1AxJyAmJiAodHV0b3JpYWxTZXR1cCgpPy5hdmFpbGFibGVMZWFkZXJzPy5sZW5ndGggPz8gMCkgPiAxKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1sZWFkZXItY2hvaWNlLWdyaWRcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1sZWFkZXItY2hvaWNlLWdyaWRcIj5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKGxlYWRlcklkIG9mIHR1dG9yaWFsU2V0dXAoKT8uYXZhaWxhYmxlTGVhZGVycyA/PyBbXTsgdHJhY2sgbGVhZGVySWQpIHtcbiAgICAgICAgICAgICAgICAgICAgQGxldCBsZWFkZXIgPSBjYXJkRGVmaW5pdGlvbihsZWFkZXJJZCk7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2UtY2FyZCBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cImNob29zZVR1dG9yaWFsTGVhZGVyKGxlYWRlcklkKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChsZWFkZXIpXCIgdmFyaWFudD1cImJhYnlcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByaW1hcnktYWN0aW9uXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktY29udGludWUtc2V0dXBcIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwiY29udGludWVBZnRlckNvaW4oKVwiPlxuICAgICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5Q29udGludWUnKSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoZ2FtZSgpLnN0YXR1cyA9PT0gJ2ZpbmlzaGVkJykge1xuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXJlc3VsdC1wYW5lbFwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LXJlc3VsdC1wYW5lbFwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5R2FtZU92ZXInKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxoMj57eyByZXN1bHRUaXRsZSgpIH19PC9oMj5cbiAgICAgICAgICAgIDxwPnt7IHJlc3VsdEJvZHkoKSB9fTwvcD5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByaW1hcnktYWN0aW9uXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktcGxheS1hZ2FpblwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJyZXN0YXJ0VHV0b3JpYWwoKVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2NocmlzdGlhbml0eVBsYXlBZ2FpbicpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1zZWNvbmRhcnktYWN0aW9uXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cInJldHVyblRvQ2hyaXN0aWFuaXR5SG9tZSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5QmFja1RvTWVudScpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICB9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktaW1wYWN0LWxheWVyXCI+XG4gICAgICAgICAgQGlmIChjb21iYXRUcmFpbCgpOyBhcyB0cmFpbCkge1xuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsXCJcbiAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmlzLWxlYWRlci10YXJnZXRdPVwidHJhaWwudG9uZSA9PT0gJ2xlYWRlcidcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXMtY2hhcmFjdGVyLXRhcmdldF09XCJ0cmFpbC50b25lID09PSAnY2hhcmFjdGVyJ1wiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwteF09XCJ0cmFpbC5mcm9tWFwiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwteV09XCJ0cmFpbC5mcm9tWVwiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbWlkLXhdPVwidHJhaWwubWlkWFwiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbWlkLXldPVwidHJhaWwubWlkWVwiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbGVuZ3RoXT1cInRyYWlsLmxlbmd0aFwiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtYW5nbGVdPVwidHJhaWwuYW5nbGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBmb3IgKGltcGFjdCBvZiBpbXBhY3RFdmVudHMoKTsgdHJhY2sgaW1wYWN0LmlkKSB7XG4gICAgICAgICAgICA8dmFsLW1pbmktZ2FtZS1zY29yZS1wb3AgW3Byb3BzXT1cImltcGFjdFBvcFByb3BzKGltcGFjdClcIiAvPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKGNvbWJhdENhbGxvdXQoKTsgYXMgY2FsbG91dCkge1xuICAgICAgICAgICAgPHZhbC1taW5pLWdhbWUtY2FsbG91dCBbcHJvcHNdPVwiY2FsbG91dFwiIC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxheWVyLXNpZGUgY2hyaXN0aWFuaXR5LXBsYXllci1zaWRlLS1vcHBvbmVudFwiPlxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrIGNocmlzdGlhbml0eS1wbGF5ZXItcmFjay0tb3Bwb25lbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLXpvbmVcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZVwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1QMlwiIFtjbGFzcy5pcy1lbXB0eS16b25lXT1cIiF0b3BPZmZlcmluZygnUDInKVwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJvcGVuT2ZmZXJpbmdzKCdQMicpXCI+XG4gICAgICAgICAgICAgICAgQGlmICh0b3BPZmZlcmluZygnUDInKTsgYXMgb2ZmZXJpbmcpIHtcbiAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwib2ZmZXJpbmdSZW5kZXJDYXJkKG9mZmVyaW5nKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3RcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eU9mZmVyaW5nUmVzZXJ2ZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgcmVhZHlPZmZlcmluZ3Mob3Bwb25lbnQoKSkgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8c21hbGw+e3sgdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdCYXNlJykgfX0ge3sgdG90YWxPZmZlcmluZ3Mob3Bwb25lbnQoKSkgfX08L3NtYWxsPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1hdHRhY2stZHJvcC10YXJnZXRcIlxuICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICBpZD1cImNocmlzdGlhbml0eS1vcHBvbmVudC1sZWFkZXItZHJvcFwiXG4gICAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIm93bkF0dGFja2VyRHJvcFNvdXJjZUlkcygpXCJcbiAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwiY2FuRHJvcE9uT3Bwb25lbnRMZWFkZXJcIlxuICAgICAgICAgICAgICBbY2RrRHJvcExpc3RTb3J0aW5nRGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcE9uT3Bwb25lbnRMZWFkZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1sZWFkZXItY2FyZCBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1sZWFkZXItUDJcIlxuICAgICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLXRhcmdldF09XCJpc09wcG9uZW50TGVhZGVyVGFyZ2V0KClcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1wcm90ZWN0ZWQtdGFyZ2V0XT1cInNlbGVjdGVkQXR0YWNrZXIoKSAmJiBoYXNPcHBvbmVudEd1YXJkcygpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXMtY29tYmF0LXRhcmdldF09XCJpc0NvbWJhdExlYWRlclRhcmdldCgnUDInKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU9wcG9uZW50TGVhZGVyKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwibGVhZGVyUmVuZGVyQ2FyZChvcHBvbmVudCgpKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1yYWNrLXNwYWNlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1iYXR0bGUtem9uZSBjaHJpc3RpYW5pdHktYmF0dGxlLXpvbmUtLW9wcG9uZW50XCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktYmF0dGxlLVAyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlPcHBvbmVudEJhdHRsZScpXCI+XG4gICAgICAgICAgICBAZm9yIChzbG90IG9mIGJhdHRsZVNsb3RzKCdQMicpOyB0cmFjayBzbG90LnRyYWNrSWQpIHtcbiAgICAgICAgICAgICAgQGlmIChzbG90LmNhcmQpIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkIGNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiYmF0dGxlQ2FyZFRlc3RJZCgnUDInLCBzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAgICAgICBbaWRdPVwib3Bwb25lbnRUYXJnZXREcm9wSWQoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJvd25BdHRhY2tlckRyb3BTb3VyY2VJZHMoKVwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJjYW5Ecm9wT25PcHBvbmVudENoYXJhY3RlclwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RTb3J0aW5nRGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLXRhcmdldF09XCJpc09wcG9uZW50Q2hhcmFjdGVyVGFyZ2V0KHNsb3QuY2FyZClcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWNvbWJhdC10YXJnZXRdPVwiaXNDb21iYXRDaGFyYWN0ZXJUYXJnZXQoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BPbk9wcG9uZW50Q2hhcmFjdGVyKCRldmVudCwgc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT3Bwb25lbnRDaGFyYWN0ZXIoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJjaGFyYWN0ZXJSZW5kZXJDYXJkKHNsb3QuY2FyZClcIiB2YXJpYW50PVwiYmFieVwiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1zbG90XCI+PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktc2hhcmVkLXpvbmVcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1zaGFyZWQtem9uZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5U2hhcmVkWm9uZScpXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktem9uZS1waWxlIGNocmlzdGlhbml0eS16b25lLXBpbGUtLWhpc3RvcnlcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1oaXN0b3J5LXpvbmVcIiBbY2xhc3MuaXMtZW1wdHktem9uZV09XCIhdG9wSGlzdG9yeUNhcmQoKVwiIFtjbGFzcy5oYXMtbmV3LWNhcmRdPVwiaGlzdG9yeVB1bHNlKClcIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwib3Blbkhpc3RvcnkoKVwiPlxuICAgICAgICAgICAgQGlmICh0b3BIaXN0b3J5Q2FyZCgpOyBhcyBoaXN0b3J5Q2FyZCkge1xuICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cImRlZmluaXRpb25Ub1JlbmRlckNhcmQoaGlzdG9yeUNhcmQpXCIgdmFyaWFudD1cImJhY2tcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3RcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlIaXN0b3J5JykgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IGdhbWUoKS5oaXN0b3J5Wm9uZS5sZW5ndGggfX08L3N0cm9uZz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS16b25lLXBpbGUgY2hyaXN0aWFuaXR5LXpvbmUtcGlsZS0tZGVja1wiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWRlY2stem9uZVwiIHZhbExpZ2h0UmlwcGxlIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIChjbGljayk9XCJpbnNwZWN0RGVjaygpXCI+XG4gICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cImhpZGRlbkNhcmRSZW5kZXJDYXJkKClcIiB2YXJpYW50PVwiYmFja1wiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5RGVjaycpIH19PC9zcGFuPlxuICAgICAgICAgICAgPHN0cm9uZz57eyBnYW1lKCkuc2hhcmVkRGVjay5sZW5ndGggfX08L3N0cm9uZz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCJcbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LXBsYWNlLXpvbmVcIlxuICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgIGlkPVwiY2hyaXN0aWFuaXR5LXBsYWNlLWRyb3BcIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiWydjaHJpc3RpYW5pdHktaGFuZC1zb3VyY2UnXVwiXG4gICAgICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJjYW5Ecm9wT25QbGFjZVwiXG4gICAgICAgICAgICBbY2RrRHJvcExpc3RTb3J0aW5nRGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbY2xhc3MuaXMtZW1wdHktem9uZV09XCIhYWN0aXZlUGxhY2VDYXJkKClcIlxuICAgICAgICAgICAgW2NsYXNzLmlzLXBsYXktdGFyZ2V0XT1cImNhblBsYWNlU2VsZWN0ZWRQbGFjZSgpIHx8IGlzRHJhZ2dpbmdQbGFjZSgpXCJcbiAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BPblBsYWNlKCRldmVudClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInBsYXlTZWxlY3RlZFBsYWNlT3JJbnNwZWN0KClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoYWN0aXZlUGxhY2VDYXJkKCk7IGFzIHBsYWNlQ2FyZCkge1xuICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cImRlZmluaXRpb25Ub1JlbmRlckNhcmQocGxhY2VDYXJkKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktZW1wdHktY2FyZC1zbG90XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5UGxhY2UnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgYWN0aXZlUGxhY2VDYXJkKCkgPyB0KCdjaHJpc3RpYW5pdHlBY3RpdmUnKSA6IHQoJ2NocmlzdGlhbml0eUVtcHR5JykgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIEBpZiAoY2FuUGxhY2VTZWxlY3RlZFBsYWNlKCkgfHwgaXNEcmFnZ2luZ1BsYWNlKCkpIHtcbiAgICAgICAgICAgICAgPGVtPnt7IHQoJ2NocmlzdGlhbml0eVBsYXlIZXJlJykgfX08L2VtPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxheWVyLXNpZGVcIj5cbiAgICAgICAgICA8c2VjdGlvblxuICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktYmF0dGxlLXpvbmVcIlxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktYmF0dGxlLVAxXCJcbiAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICBpZD1cImNocmlzdGlhbml0eS1wbGF5ZXItYmF0dGxlLXNvdXJjZVwiXG4gICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJhdHRhY2tUYXJnZXREcm9wSWRzKClcIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW2NsYXNzLmlzLXBsYWNpbmctY2FyZF09XCJjYW5QbGFjZVNlbGVjdGVkQ2hhcmFjdGVyKCkgfHwgaXNEcmFnZ2luZ0NoYXJhY3RlcigpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5WW91ckJhdHRsZScpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAZm9yIChzbG90IG9mIGJhdHRsZVNsb3RzKCdQMScpOyB0cmFjayBzbG90LnRyYWNrSWQpIHtcbiAgICAgICAgICAgICAgQGlmIChzbG90LmNhcmQpIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkIGNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiYmF0dGxlQ2FyZFRlc3RJZCgnUDEnLCBzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgICAgIFtjZGtEcmFnRGF0YV09XCJzbG90LmNhcmQuaW5zdGFuY2VJZFwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFjYW5EcmFnQXR0YWNrZXIoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cInNlbGVjdGVkQXR0YWNrZXIoKT8uaW5zdGFuY2VJZCA9PT0gc2xvdC5jYXJkLmluc3RhbmNlSWRcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWV4aGF1c3RlZF09XCIhc2xvdC5jYXJkLmNhbkF0dGFja1wiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtcmVhZHktYXR0YWNrZXJdPVwiaXNPd25UdXJuKCkgJiYgc2xvdC5jYXJkLmNhbkF0dGFja1wiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtY29tYmF0LWF0dGFja2VyXT1cImlzQ29tYmF0QXR0YWNrZXIoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwic3RhcnREcmFnZ2luZ0F0dGFja2VyKHNsb3QuY2FyZClcIlxuICAgICAgICAgICAgICAgICAgKGNka0RyYWdFbmRlZCk9XCJlbmREcmFnZ2luZ0F0dGFja2VyKClcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEF0dGFja2VyKHNsb3QuY2FyZClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiY2hhcmFjdGVyUmVuZGVyQ2FyZChzbG90LmNhcmQpXCIgdmFyaWFudD1cImJhYnlcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBjZGtEcmFnUHJldmlldz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1jYXJkLWRyYWctcHJldmlld1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiY2hhcmFjdGVyUmVuZGVyQ2FyZChzbG90LmNhcmQpXCIgdmFyaWFudD1cImJhYnlcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGNka0RyYWdQbGFjZWhvbGRlcj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1jYXJkLWRyYWctcGxhY2Vob2xkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktc2xvdFwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJiYXR0bGVTbG90VGVzdElkKCdQMScsICRpbmRleClcIlxuICAgICAgICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICAgICAgIFtpZF09XCJiYXR0bGVTbG90RHJvcElkKCRpbmRleClcIlxuICAgICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCIkaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiWydjaHJpc3RpYW5pdHktaGFuZC1zb3VyY2UnXVwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJjYW5Ecm9wT25CYXR0bGVTbG90XCJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdFNvcnRpbmdEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXRdPVwiY2FuUGxhY2VTZWxlY3RlZENoYXJhY3RlcigpIHx8IGlzRHJhZ2dpbmdDaGFyYWN0ZXIoKVwiXG4gICAgICAgICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wT25CYXR0bGVTbG90KCRldmVudCwgJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwicGxheVNlbGVjdGVkQ2FyZCgkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBAaWYgKGNhblBsYWNlU2VsZWN0ZWRDaGFyYWN0ZXIoKSB8fCBpc0RyYWdnaW5nQ2hhcmFjdGVyKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5UGxheUhlcmUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy16b25lXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZy1kcm9wLXRhcmdldFwiXG4gICAgICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICAgICBpZD1cImNocmlzdGlhbml0eS1vZmZlcmluZ3MtZHJvcFwiXG4gICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiWydjaHJpc3RpYW5pdHktaGFuZC1zb3VyY2UnXVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLXBsYXktdGFyZ2V0XT1cImNhblBsYWNlU2VsZWN0ZWRPZmZlcmluZygpIHx8IGlzRHJhZ2dpbmdPZmZlcmluZygpXCJcbiAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJjYW5Ecm9wT25PZmZlcmluZ3NcIlxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdFNvcnRpbmdEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BPbk9mZmVyaW5ncygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZVwiXG4gICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1vZmZlcmluZ3MtUDFcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWVtcHR5LXpvbmVdPVwiIXRvcE9mZmVyaW5nKCdQMScpXCJcbiAgICAgICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT2ZmZXJpbmdQaWxlKCdQMScpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBAaWYgKHRvcE9mZmVyaW5nKCdQMScpOyBhcyBvZmZlcmluZykge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cIm9mZmVyaW5nUmVuZGVyQ2FyZChvZmZlcmluZylcIiB2YXJpYW50PVwiYmFieVwiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWVtcHR5LWNhcmQtc2xvdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eU9mZmVyaW5nUmVzZXJ2ZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyByZWFkeU9mZmVyaW5ncyhwbGF5ZXIoKSkgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbD57eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0Jhc2UnKSB9fSB7eyB0b3RhbE9mZmVyaW5ncyhwbGF5ZXIoKSkgfX08L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQgY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvblwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWxlYWRlci1QMVwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJpbnNwZWN0TGVhZGVyKCdQMScpXCI+XG4gICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwibGVhZGVyUmVuZGVyQ2FyZChwbGF5ZXIoKSlcIiB2YXJpYW50PVwiYmFieVwiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXBsYXllci1jb21tYW5kXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktYXZhdGFyXCIgW3N0eWxlLmJhY2tncm91bmRdPVwicGxheWVyKCkuYXZhdGFyQ29sb3JcIj57eyBwbGF5ZXIoKS5hdmF0YXIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyBwbGF5ZXIoKS5kaXNwbGF5TmFtZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWVuZC10dXJuXCJcbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1lbmQtdHVyblwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc093blR1cm4oKSB8fCB0dXRvcmlhbFBoYXNlKCkgIT09ICdpbl9wcm9ncmVzcycgfHwgISFjb21iYXRBbmltYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImVuZFR1cm4oKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlFbmRUdXJuJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktaGFuZC1zaGVsZlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXJcIj5cbiAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlIYW5kJykgfX08L3NwYW4+XG4gICAgICAgICAgPHN0cm9uZz57eyBwbGF5ZXIoKS5oYW5kPy5sZW5ndGggPz8gMCB9fTwvc3Ryb25nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNlY3Rpb25cbiAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1oYW5kLWZhblwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktaGFuZC1QMVwiXG4gICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICBpZD1cImNocmlzdGlhbml0eS1oYW5kLXNvdXJjZVwiXG4gICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiZHJvcFRhcmdldElkcygpXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eVlvdXJIYW5kJylcIlxuICAgICAgICAgIChwb2ludGVybGVhdmUpPVwiY2xlYXJIb3ZlcmVkSGFuZEluZGV4KClcIlxuICAgICAgICA+XG4gICAgICAgICAgQGZvciAoY2FyZElkIG9mIHBsYXllcigpLmhhbmQgPz8gW107IHRyYWNrIGNhcmRJZCArICRpbmRleCkge1xuICAgICAgICAgICAgQGxldCBjYXJkID0gY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGFuZC1jYXJkLXdyYXBcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwic2VsZWN0ZWRIYW5kQ2FyZCgpID09PSBjYXJkSWRcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXMtZHJhZ2dpbmddPVwiZHJhZ2dpbmdDYXJkSWQoKSA9PT0gY2FyZElkXCJcbiAgICAgICAgICAgICAgW3N0eWxlLnotaW5kZXhdPVwiaGFuZENhcmRaSW5kZXgoJGluZGV4KVwiXG4gICAgICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwiZmFuVHJhbnNmb3JtKCRpbmRleCwgcGxheWVyKCkuaGFuZD8ubGVuZ3RoID8/IDAsIGZhbHNlKVwiXG4gICAgICAgICAgICAgIChwb2ludGVyZW50ZXIpPVwic2V0SG92ZXJlZEhhbmRJbmRleCgkaW5kZXgpXCJcbiAgICAgICAgICAgICAgKHBvaW50ZXJkb3duKT1cInNldEhvdmVyZWRIYW5kSW5kZXgoJGluZGV4KVwiXG4gICAgICAgICAgICAgIChwb2ludGVydXApPVwicmVsZWFzZUhvdmVyZWRIYW5kKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQgY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cImhhbmRDYXJkVGVzdElkKGNhcmRJZCwgJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgICAgW2Nka0RyYWdEYXRhXT1cImNhcmRJZFwiXG4gICAgICAgICAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhY2FuUGxheShjYXJkKVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJoYW5kQ2FyZEFjdGlvbkxhYmVsKGNhcmQpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwic2VsZWN0ZWRIYW5kQ2FyZCgpID09PSBjYXJkSWRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1kaXNhYmxlZF09XCIhY2FuUGxheShjYXJkKVwiXG4gICAgICAgICAgICAgICAgKGNka0RyYWdTdGFydGVkKT1cInN0YXJ0RHJhZ2dpbmdDYXJkKGNhcmRJZClcIlxuICAgICAgICAgICAgICAgIChjZGtEcmFnRW5kZWQpPVwiZW5kRHJhZ2dpbmdDYXJkKClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RIYW5kQ2FyZChjYXJkSWQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChjYXJkKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGNka0RyYWdQcmV2aWV3PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1jYXJkLWRyYWctcHJldmlld1wiPlxuICAgICAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cImRlZmluaXRpb25Ub1JlbmRlckNhcmQoY2FyZClcIiB2YXJpYW50PVwiYmFieVwiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgY2RrRHJhZ1BsYWNlaG9sZGVyPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1jYXJkLWRyYWctcGxhY2Vob2xkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtZXllXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eVByZXZpZXdDYXJkJylcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnNwZWN0SGFuZENhcmQoY2FyZElkLCB0cnVlKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoc2VsZWN0ZWRQcmV2aWV3KCkpIHtcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1iYWNrZHJvcFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5Q2xvc2VQcmV2aWV3JylcIiAoY2xpY2spPVwiY2xvc2VQcmV2aWV3KClcIj48L2J1dHRvbj5cbiAgICAgICAgPGFzaWRlXG4gICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbFwiXG4gICAgICAgICAgW2NsYXNzLmlzLWhpc3RvcnktcHJldmlld109XCJjYW5OYXZpZ2F0ZVByZXZpZXcoKVwiXG4gICAgICAgICAgW2NsYXNzLmlzLWdhbGxlcnktcHJldmlld109XCJzZWxlY3RlZFByZXZpZXcoKT8uc291cmNlID09PSAnZ2FsbGVyeSdcIlxuICAgICAgICAgIFtjbGFzcy5pcy1zbGlkaW5nLXByZXZpb3VzXT1cInByZXZpZXdTbGlkZURpcmVjdGlvbigpID09PSAtMVwiXG4gICAgICAgICAgW2NsYXNzLmlzLXNsaWRpbmctbmV4dF09XCJwcmV2aWV3U2xpZGVEaXJlY3Rpb24oKSA9PT0gMVwiXG4gICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy10b3BiYXJcIj5cbiAgICAgICAgICAgIEBpZiAocHJldmlld1Bvc2l0aW9uTGFiZWwoKTsgYXMgcG9zaXRpb25MYWJlbCkge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LXBvc2l0aW9uXCI+e3sgcG9zaXRpb25MYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlUHJldmlldygpXCI+XG4gICAgICAgICAgICAgIHt7IHQoJ2Nsb3NlJykgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctc3RhZ2VcIj5cbiAgICAgICAgICAgICAgQGlmIChjYW5OYXZpZ2F0ZVByZXZpZXcoKSkge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1uYXYgY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2LS1wcmV2aW91c1wiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eVByZXZpb3VzQ2FyZCcpXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVByZXZpZXcoLTEpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAmbHQ7XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LW5hdiBjaHJpc3RpYW5pdHktcHJldmlldy1uYXYtLW5leHRcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlOZXh0Q2FyZCcpXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVByZXZpZXcoMSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICZndDtcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKHNlbGVjdGVkUHJldmlld05laWdoYm9yUmVuZGVyQ2FyZCgtMSk7IGFzIHByZXZpb3VzQ2FyZCkge1xuICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1naG9zdCBjaHJpc3RpYW5pdHktcHJldmlldy1naG9zdC0tcHJldmlvdXNcIiBbY2FyZF09XCJwcmV2aW91c0NhcmRcIiB2YXJpYW50PVwiZnVsbFwiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuLS1wcmV2aWV3LXJvdGF0ZS14XT1cInByZXZpZXdUaWx0KCkucm90YXRlWCArICdkZWcnXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuLS1wcmV2aWV3LXJvdGF0ZS15XT1cInByZXZpZXdUaWx0KCkucm90YXRlWSArICdkZWcnXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuLS1wcmV2aWV3LXNoaWZ0LXhdPVwicHJldmlld1RpbHQoKS5zaGlmdFggKyAncHgnXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuLS1wcmV2aWV3LXNoaWZ0LXldPVwicHJldmlld1RpbHQoKS5zaGlmdFkgKyAncHgnXCJcbiAgICAgICAgICAgICAgICAocG9pbnRlcm1vdmUpPVwidGlsdFByZXZpZXcoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHBvaW50ZXJsZWF2ZSk9XCJyZXNldFByZXZpZXdUaWx0KClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChzZWxlY3RlZFByZXZpZXdSZW5kZXJDYXJkKCk7IGFzIHByZXZpZXdDYXJkKSB7XG4gICAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cInByZXZpZXdDYXJkXCIgdmFyaWFudD1cImZ1bGxcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICBAaWYgKHNlbGVjdGVkUHJldmlld05laWdoYm9yUmVuZGVyQ2FyZCgxKTsgYXMgbmV4dENhcmQpIHtcbiAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctZ2hvc3QgY2hyaXN0aWFuaXR5LXByZXZpZXctZ2hvc3QtLW5leHRcIiBbY2FyZF09XCJuZXh0Q2FyZFwiIHZhcmlhbnQ9XCJmdWxsXCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LXNpZGVcIj5cbiAgICAgICAgICAgICAgQGlmIChwcmV2aWV3UnVsZSgpOyBhcyBydWxlKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktcnVsZS1ub3RlLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5pPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsPnt7IHQoJ2NocmlzdGlhbml0eUNhcmRSdWxlJykgfX08L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHJ1bGUudGl0bGUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPHA+e3sgcnVsZS5ib2R5IH19PC9wPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIEBpZiAoc2hvd1ByZXZpZXdBYmlsaXRpZXMoKSkge1xuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXNcIj5cbiAgICAgICAgICAgICAgPGhlYWRlciBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcy1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPHNtYWxsPnt7IHQoJ2NocmlzdGlhbml0eUFiaWxpdGllcycpIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgIEBpZiAoc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eVBvc2l0aW9uTGFiZWwoKTsgYXMgYWJpbGl0eVBvc2l0aW9uTGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYWJpbGl0eVBvc2l0aW9uTGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgQGlmIChjYW5OYXZpZ2F0ZVByZXZpZXdBYmlsaXRpZXMoKSkge1xuICAgICAgICAgICAgICAgICAgPG5hdiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktbmF2XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlBYmlsaXRpZXMnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlQcmV2aW91c0NhcmQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlUHJldmlld0FiaWxpdHkoLTEpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICZsdDtcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eU5leHRDYXJkJylcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVByZXZpZXdBYmlsaXR5KDEpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICZndDtcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICAgICAgICBAaWYgKHNob3dQcmV2aWV3QWJpbGl0eVRhYnMoKSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnNcIj5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKGFiaWxpdHkgb2YgcHJldmlld0FiaWxpdGllcygpOyB0cmFjayBhYmlsaXR5LmluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwic2VsZWN0ZWRQcmV2aWV3QWJpbGl0eUluZGV4KCkgPT09IGFiaWxpdHkuaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQcmV2aWV3QWJpbGl0eShhYmlsaXR5LmluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBhYmlsaXR5LnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAoc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eSgpOyBhcyBhYmlsaXR5KSB7XG4gICAgICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgYWJpbGl0eS50aXRsZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktc2Nyb2xsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwPnt7IGFiaWxpdHkuYm9keSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICAgICAgICA8Zm9vdGVyIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1mb290ZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctdXNlLWFiaWxpdHlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWFiaWxpdHkuY2FuVXNlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInVzZVNlbGVjdGVkUHJldmlld0FiaWxpdHkoKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ2NocmlzdGlhbml0eVVzZUFiaWxpdHknKSB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9mb290ZXI+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvYXNpZGU+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoc2VsZWN0ZWRJbmZvKCk7IGFzIGluZm8pIHtcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktaW5mby1iYWNrZHJvcFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2xvc2UnKVwiIChjbGljayk9XCJjbG9zZUluZm8oKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YXNpZGUgY2xhc3M9XCJjaHJpc3RpYW5pdHktaW5mby1wYW5lbFwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWRpYWxvZy1jbG9zZSBjaHJpc3RpYW5pdHktaW5mby1jbG9zZVwiIChjbGljayk9XCJjbG9zZUluZm8oKVwiPlxuICAgICAgICAgICAge3sgdCgnY2xvc2UnKSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcnVsZS1ub3RlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1ydWxlLW5vdGUtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPmk8L3NwYW4+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8c21hbGw+e3sgaW5mby5leWVicm93IH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgPGgyPnt7IGluZm8udGl0bGUgfX08L2gyPlxuICAgICAgICAgICAgICA8c3Ryb25nPnt7IGluZm8ubWV0YSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8cD57eyBpbmZvLmJvZHkgfX08L3A+XG4gICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICBAZm9yIChmYWN0IG9mIGluZm8uZmFjdHM7IHRyYWNrIGZhY3QpIHtcbiAgICAgICAgICAgICAgICAgIDxsaT57eyBmYWN0IH19PC9saT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hc2lkZT5cbiAgICAgIH1cblxuICAgICAgQGlmIChzY3JlZW4oKSA9PT0gJ3RhYmxlJykge1xuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1hY3Rpb25zXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktYWN0aW9uc1wiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICAgIDxwIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNyLW9ubHlcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1zdGF0dXNcIj57eyBzdGF0dXNUZXh0KCkgfX08L3A+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktcHJpbWFyeS1hY3Rpb25cIiBbZGlzYWJsZWRdPVwidHV0b3JpYWxQaGFzZSgpICE9PSAnaW5fcHJvZ3Jlc3MnIHx8IHNlbGVjdGVkQWN0aW9uRGlzYWJsZWQoKVwiIChjbGljayk9XCJwbGF5U2VsZWN0ZWRDYXJkKClcIj5cbiAgICAgICAgICAgIHt7IHNlbGVjdGVkQWN0aW9uTGFiZWwoKSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoc2hvd0hpc3RvcnkoKSkge1xuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWJhY2tkcm9wXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlDbG9zZUhpc3RvcnknKVwiIChjbGljayk9XCJjbG9zZUhpc3RvcnkoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlclwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyXCI+XG4gICAgICAgICAgPGhlYWRlcj5cbiAgICAgICAgICAgIDxoMj57eyB0KCdjaHJpc3RpYW5pdHlIaXN0b3J5JykgfX08L2gyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1kaWFsb2ctYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBnYW1lKCkuaGlzdG9yeVpvbmUubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VIaXN0b3J5KClcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdjbG9zZScpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgICAgQGlmIChnYW1lKCkuaGlzdG9yeVpvbmUubGVuZ3RoKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZFwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZFwiPlxuICAgICAgICAgICAgICBAZm9yIChjYXJkSWQgb2YgZ2FtZSgpLmhpc3Rvcnlab25lOyB0cmFjayBjYXJkSWQgKyAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBAbGV0IGNhcmQgPSBjYXJkRGVmaW5pdGlvbihjYXJkSWQpO1xuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWdhbGxlcnktY2FyZC1idXR0b24gY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvblwiIFthdHRyLmRhdGEtdGVzdGlkXT1cImhpc3RvcnlDYXJkVGVzdElkKGNhcmRJZCwgJGluZGV4KVwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJpbnNwZWN0SGlzdG9yeUNhcmQoY2FyZElkKVwiPlxuICAgICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJkZWZpbml0aW9uVG9SZW5kZXJDYXJkKGNhcmQpXCIgdmFyaWFudD1cImJhYnlcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlIaXN0b3J5RW1wdHknKSB9fTwvcD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChzaG93R2FsbGVyeSgpKSB7XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhpc3RvcnktYmFja2Ryb3AgY2hyaXN0aWFuaXR5LWdhbGxlcnktYmFja2Ryb3BcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eUNsb3NlR2FsbGVyeScpXCIgKGNsaWNrKT1cImNsb3NlR2FsbGVyeSgpXCI+PC9idXR0b24+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIGNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlclwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyXCI+XG4gICAgICAgICAgPGhlYWRlcj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxoMj57eyB0KCdjaHJpc3RpYW5pdHlHYWxsZXJ5JykgfX08L2gyPlxuICAgICAgICAgICAgICA8cD57eyBnYWxsZXJ5RWRpdGlvbkxhYmVsKCkgfX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZ2FsbGVyeUNhcmRzKCkubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VHYWxsZXJ5KClcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdjbG9zZScpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzXCI+XG4gICAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eUdhbGxlcnlTZWFyY2gnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJzZWFyY2hcIiBbdmFsdWVdPVwiZ2FsbGVyeVNlYXJjaCgpXCIgKGlucHV0KT1cInNldEdhbGxlcnlTZWFyY2goJGV2ZW50KVwiIFtwbGFjZWhvbGRlcl09XCJ0KCdjaHJpc3RpYW5pdHlHYWxsZXJ5U2VhcmNoUGxhY2Vob2xkZXInKVwiIC8+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlHYWxsZXJ5RmlsdGVyJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzZWxlY3QgW3ZhbHVlXT1cImdhbGxlcnlUeXBlKClcIiAoY2hhbmdlKT1cInNldEdhbGxlcnlUeXBlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChvcHRpb24gb2YgZ2FsbGVyeVR5cGVPcHRpb25zKCk7IHRyYWNrIG9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+e3sgb3B0aW9uLmxhYmVsIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1nYWxsZXJ5LWVkaXRpb24tc3RyaXBcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaXMtYWN0aXZlXCIgdmFsTGlnaHRSaXBwbGU+XG4gICAgICAgICAgICAgIDxpbWcgW3NyY109XCJnYWxsZXJ5RWRpdGlvbkljb24oKVwiIGFsdD1cIlwiIC8+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eUdlbmVzaXNFZGl0aW9uJykgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZFwiPlxuICAgICAgICAgICAgQGZvciAoY2FyZCBvZiBnYWxsZXJ5Q2FyZHMoKTsgdHJhY2sgY2FyZC5pZCkge1xuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1nYWxsZXJ5LWNhcmQtYnV0dG9uIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwiaW5zcGVjdEdhbGxlcnlDYXJkKGNhcmQuaWQpXCI+XG4gICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJkZWZpbml0aW9uVG9SZW5kZXJDYXJkKGNhcmQpXCIgdmFyaWFudD1cImJhYnlcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9IEBlbXB0eSB7XG4gICAgICAgICAgICAgIDxwPnt7IHQoJ2NocmlzdGlhbml0eUdhbGxlcnlFbXB0eScpIH19PC9wPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAob2ZmZXJpbmdzU2VhdCgpKSB7XG4gICAgICAgIEBsZXQgb2ZmZXJpbmdQbGF5ZXIgPSBnYW1lKCkucGxheWVyc1tvZmZlcmluZ3NTZWF0KCkhXTtcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGlzdG9yeS1iYWNrZHJvcFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5Q2xvc2VPZmZlcmluZ3MnKVwiIChjbGljayk9XCJjbG9zZU9mZmVyaW5ncygpXCI+PC9idXR0b24+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIGNocmlzdGlhbml0eS1vZmZlcmluZ3MtZHJhd2VyXCIgW2F0dHIuZGF0YS10ZXN0aWRdPVwib2ZmZXJpbmdzRHJhd2VyVGVzdElkKG9mZmVyaW5nc1NlYXQoKSEpXCI+XG4gICAgICAgICAgPGhlYWRlcj5cbiAgICAgICAgICAgIDxoMj57eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ3MnKSB9fTwvaDI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWRpYWxvZy1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eU9mZmVyaW5nUmVzZXJ2ZScpIH19IHt7IHJlYWR5T2ZmZXJpbmdzKG9mZmVyaW5nUGxheWVyKSB9fSDCtyB7eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0Jhc2UnKSB9fSB7eyB0b3RhbE9mZmVyaW5ncyhvZmZlcmluZ1BsYXllcikgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWRpYWxvZy1jbG9zZVwiIChjbGljayk9XCJjbG9zZU9mZmVyaW5ncygpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2xvc2UnKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLW5vdGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZS1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+aTwvc3Bhbj5cbiAgICAgICAgICAgIDxwPnt7IHQoJ2NocmlzdGlhbml0eU9mZmVyaW5nc1J1bGVCb2R5JykgfX08L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3RcIiBbYXR0ci5kYXRhLXRlc3RpZF09XCJvZmZlcmluZ0xpc3RUZXN0SWQob2ZmZXJpbmdzU2VhdCgpISlcIj5cbiAgICAgICAgICAgICAgQGZvciAob2ZmZXJpbmcgb2Ygb2ZmZXJpbmdQbGF5ZXIub2ZmZXJpbmdzOyB0cmFjayBvZmZlcmluZy5pbnN0YW5jZUlkKSB7XG4gICAgICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93XCIgW2NsYXNzLmlzLWV4aGF1c3RlZF09XCIhb2ZmZXJpbmcucmVhZHlcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIiBbYXR0ci5kYXRhLXRlc3RpZF09XCJvZmZlcmluZ0NhcmRUZXN0SWQob2ZmZXJpbmcpXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cImluc3BlY3RPZmZlcmluZyhvZmZlcmluZylcIj5cbiAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwib2ZmZXJpbmdSZW5kZXJDYXJkKG9mZmVyaW5nKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgb2ZmZXJpbmcucmVhZHkgPyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ1JlYWR5JykgOiB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0V4aGF1c3RlZCcpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICA8cD57eyBvZmZlcmluZ0FiaWxpdHlUZXh0KG9mZmVyaW5nKSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgIEBpZiAob2ZmZXJpbmcuYWJpbGl0eU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cIm9mZmVyaW5nVXNlQnV0dG9uVGVzdElkKG9mZmVyaW5nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Vc2VPZmZlcmluZ0FiaWxpdHkob2ZmZXJpbmcsIG9mZmVyaW5nc1NlYXQoKSEpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXNlT2ZmZXJpbmdBYmlsaXR5KG9mZmVyaW5nLCBvZmZlcmluZ3NTZWF0KCkhKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlVc2VBYmlsaXR5JykgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuICAgIDwvbWFpbj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1pbms6IHZhcigtLXZhbC10ZXh0LWNvbG9yLCAjMWYyOTMzKTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtc3VyZmFjZTogI2ZmZmZmZjtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtcGFyY2htZW50OiAjZWZmNmZmO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1vbGl2ZTogIzFkNGVkODtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZDogIzI1NjNlYjtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1zb2Z0OiByZ2JhKDM3LCA5OSwgMjM1LCAwLjE2KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1yaW5nOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjQ0KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZ2xvdzogcmdiYSgzNywgOTksIDIzNSwgMC4yNCk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWZvY3VzOiAjMjU2M2ViO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3c6IHJnYmEoMzcsIDk5LCAyMzUsIDAuMTUpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3ctc3Ryb25nOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjI2KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3Q6IDUgLyA3LjQ1O1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jYXJkLWJhY2s6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxNiwgNDIsIDY3LCAwLjE2KSwgcmdiYSgxNiwgNDIsIDY3LCAwLjAzKSksXG4gICAgICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg0NWRlZywgI2RiZWFmZSAwIDAuMzNyZW0sICNmZmZmZmYgMC4zM3JlbSAwLjY2cmVtKTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrLXNvZnQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxNiwgNDIsIDY3LCAwLjExKSwgcmdiYSgxNiwgNDIsIDY3LCAwLjAyKSksXG4gICAgICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg0NWRlZywgI2RiZWFmZSAwIDAuMzNyZW0sICNmZmZmZmYgMC4zM3JlbSAwLjY2cmVtKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBvdmVyZmxvdy14OiBjbGlwO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuNjVyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgb3ZlcmZsb3cteDogY2xpcDtcbiAgICAgICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zaGVsbC5oYXMtbW9kYWwtb3BlbiB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMGR2aDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXIsXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwLFxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXJfX3N1bW1hcnksXG4gICAgICAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lLFxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDAuNzVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyIGgxLFxuICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXIgcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsLFxuICAgICAgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnkgaDIsXG4gICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXIgaDEge1xuICAgICAgICBmb250LXNpemU6IDEuMzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3Itb25seSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhlYWRlci1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LW9wZW4ge1xuICAgICAgICBtaW4taGVpZ2h0OiAyLjJyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC43NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtcmluZyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjM5LCAyNDYsIDI1NSwgMC45OCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45OCkpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMjAlIDAlLCB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1zb2Z0KSwgdHJhbnNwYXJlbnQgNDIlKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1pbmspO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC41NXJlbSAxLjJyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4xKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2gge1xuICAgICAgICBtaW4taGVpZ2h0OiBtaW4oMzRyZW0sIGNhbGMoMTAwZHZoIC0gOHJlbSkpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC45cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDE4JSwgcmdiYSgzNywgOTksIDIzNSwgMC4xNiksIHRyYW5zcGFyZW50IDIycmVtKSxcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDIzOSwgMjQ2LCAyNTUsIDAuOTMpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTcpKSxcbiAgICAgICAgICB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrLXNvZnQpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDEuMnJlbSAzLjJyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4xMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICBnYXA6IDEuMnJlbTtcbiAgICAgICAgcGFkZGluZzogMi41cmVtIDEuMjVyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2hfX21hcmsge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDAuNzRyZW0pO1xuICAgICAgICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGdhcDogMC41NXJlbTtcbiAgICAgICAgd2lkdGg6IDUuOHJlbTtcbiAgICAgICAgaGVpZ2h0OiA1LjhyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSA1MCUsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTIpLCB0cmFuc3BhcmVudCA1NSUpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42Mik7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgaW5zZXQgMCAwIDAgMC41NXJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCksXG4gICAgICAgICAgMCAxcmVtIDJyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4xMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrOjpiZWZvcmUsXG4gICAgICAuY2hyaXN0aWFuaXR5LXNwbGFzaF9fbWFyazo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMC40MnJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNywgOTksIDIzNSwgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LWxvYWRlci1yaW5nIDE4MDBtcyBlYXNlLW91dCBpbmZpbml0ZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2hfX21hcms6OmFmdGVyIHtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiA0ODBtcztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2hfX21hcmsgc3BhbiB7XG4gICAgICAgIHdpZHRoOiAwLjc0cmVtO1xuICAgICAgICBoZWlnaHQ6IDAuNzRyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC44NXJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjIyKTtcbiAgICAgICAgYW5pbWF0aW9uOiBjaHJpc3RpYW5pdHktbG9hZGVyLWRvdCA5NjBtcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2hfX21hcmsgc3BhbjpudGgtY2hpbGQoMikge1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDE0MG1zO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNwbGFzaF9fbWFyayBzcGFuOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMjgwbXM7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LWxvYWRlci1kb3Qge1xuICAgICAgICAwJSxcbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMC4zODtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMC44Mik7XG4gICAgICAgIH1cblxuICAgICAgICA0NSUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjIycmVtKSBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGNocmlzdGlhbml0eS1sb2FkZXItcmluZyB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAwLjQ4O1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43Mik7XG4gICAgICAgIH1cblxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNwbGFzaCBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fY29weSBzcGFuIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1vbGl2ZSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2ggaDIsXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0IGgyLFxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydCBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNwbGFzaCBoMiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjY1cmVtLCA3dncsIDIuN3JlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNwbGFzaCBwIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNnJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjU1cmVtIGF1dG8gMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiBtaW4oMzRyZW0sIGNhbGMoMTAwZHZoIC0gOHJlbSkpO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19oZXJvIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMTJyZW0sIDE4cmVtKTtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jb3B5IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDM2cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0IGgyIHtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjZyZW0sIDZ2dywgMi41cmVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NvcHkgcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBwIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42OCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19mYW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEzcmVtO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fZmFuIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDUuN3JlbSwgMTJ2dywgNy4ycmVtKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDkyJTtcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDFyZW0gMS41cmVtIHJnYmEoODIsIDY0LCAyOCwgMC4xOCkpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAwLjc1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBhcnRpY2xlLFxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgYXJ0aWNsZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDAuOTVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Mik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC43NXJlbSAxLjdyZW0gcmdiYSg4MiwgNjQsIDI4LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgYXJ0aWNsZSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDEuMDVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX3N0YXR1cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19zdGF0dXMgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUgPiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgbWluLWhlaWdodDogMS44NXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjYycmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjIyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCAyNDYsIDI1NSwgMC44OCk7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzIpO1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4NTA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpO1xuICAgICAgICBnYXA6IDAuNTVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUge1xuICAgICAgICBtaW4taGVpZ2h0OiA4LjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC43Mik7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDAuODI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45MnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJpbWFyeS1hY3Rpb24sXG4gICAgICAuY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb24ge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgICAgICBtaW4taGVpZ2h0OiAyLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC45cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmltYXJ5LWFjdGlvbiB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYsIDQyLCA2NywgMC4xNik7XG4gICAgICAgIGJhY2tncm91bmQ6ICMxMDJhNDM7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb24ge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1yaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXBhcmNobWVudCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXIgcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktdHVybiBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktaGlkZGVuLWhhbmQgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktZGVjayBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1wbGFjZSBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1waWxlIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlciBzcGFuIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42NCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS10dXJuLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXIsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncyxcbiAgICAgIC5jaHJpc3RpYW5pdHktaGlkZGVuLWhhbmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXBpbGUsXG4gICAgICAuY2hyaXN0aWFuaXR5LWRlY2ssXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYWNlIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjE1cmVtO1xuICAgICAgICBtaW4td2lkdGg6IDUuMjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNTVyZW0gMC42NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXR1cm4uaXMtb3duLXR1cm4ge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTgsIDEyOCwgMTA4LCAwLjM1KTtcbiAgICAgICAgYmFja2dyb3VuZDogI2VjZmRmNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgcGFkZGluZzogMC40NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXItLW9wcG9uZW50IHtcbiAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyLS1vcHBvbmVudCBkaXYge1xuICAgICAgICBkaXJlY3Rpb246IGx0cjtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIGRpdiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIgc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIgc21hbGwge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIgc21hbGwsXG4gICAgICAuY2hyaXN0aWFuaXR5LXNjb3JlYm9hcmQgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IDAuNzJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiA0LjJyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC41NXJlbTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEpO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS10dXJuLWJhbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICAgICAgICBnYXA6IDAuN3JlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMC41OHJlbSAwLjcycmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NCksIHJnYmEoMjM5LCAyNDYsIDI1NSwgMC44MikpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjY1cmVtIDEuMjVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS10dXJuLWJhbm5lci5pcy1vd24tdHVybiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNywgOTksIDIzNSwgMC4yOCk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjc1cmVtIDEuNDVyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4xMiksXG4gICAgICAgICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMzcsIDk5LCAyMzUsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXR1cm4tYmFubmVyLmlzLXJpdmFsLXR1cm4ge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTgwLCA4MywgOSwgMC4yNCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktdHVybi1iYW5uZXIuaXMtZmluaXNoZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjIsIDE2MywgNzQsIDAuMyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktdHVybi1iYW5uZXIgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjU2KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjY4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXR1cm4tYmFubmVyIHN0cm9uZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMXJlbSwgMS41dncsIDEuMjVyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS10dXJuLWJhbm5lciBwIHtcbiAgICAgICAgbWFyZ2luOiAwLjEycmVtIDAgMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb3B0aW9ucy1idXR0b24sXG4gICAgICAuY2hyaXN0aWFuaXR5LW9wdGlvbnMtbWVudSBidXR0b24ge1xuICAgICAgICBtaW4taGVpZ2h0OiAyLjE1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1pbmspO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb3B0aW9ucy1idXR0b24ge1xuICAgICAgICBwYWRkaW5nOiAwIDAuNzhyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb3B0aW9ucy1tZW51IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMC41NXJlbTtcbiAgICAgICAgdG9wOiBjYWxjKDEwMCUgKyAwLjM1cmVtKTtcbiAgICAgICAgei1pbmRleDogMTg7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgICAgbWluLXdpZHRoOiA5LjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNDVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45OCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXJlbSAycmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb3B0aW9ucy1tZW51IGJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNTVyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb3B0aW9ucy1tZW51IGJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNDU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktdGFibGUge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC40NXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjQ1cmVtIDAuMzVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgNDQlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksIHRyYW5zcGFyZW50IDQ0JSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2M4ZGRmNywgI2I5ZDRmMSk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNCksXG4gICAgICAgICAgaW5zZXQgMCAxLjRyZW0gM3JlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xuICAgICAgICBvdmVyZmxvdy14OiBjbGlwO1xuICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLXBhbmVsLFxuICAgICAgLmNocmlzdGlhbml0eS1yZXN1bHQtcGFuZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwLjhyZW07XG4gICAgICAgIHotaW5kZXg6IDE0O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAwLjg1cmVtO1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC45cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45NiksIHJnYmEoMjM5LCAyNDYsIDI1NSwgMC45NCkpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMS4yNXJlbSAyLjRyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjE4KTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLXBhbmVsIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LXJlc3VsdC1wYW5lbCBzcGFuIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzcsIDk5LCAyMzUsIDAuNzYpO1xuICAgICAgICBmb250LXNpemU6IDAuNzJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAxMDAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLXBhbmVsIGgyLFxuICAgICAgLmNocmlzdGlhbml0eS1yZXN1bHQtcGFuZWwgaDIge1xuICAgICAgICBtYXJnaW46IDAuMThyZW0gMCAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS40NXJlbSwgM3Z3LCAyLjM1cmVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2V0dXAtcGFuZWwgcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktcmVzdWx0LXBhbmVsIHAge1xuICAgICAgICBtYXgtd2lkdGg6IDMxcmVtO1xuICAgICAgICBtYXJnaW46IDAuMzVyZW0gYXV0byAwO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjY4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1yZXN1bHQtcGFuZWwgPiBkaXY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGdhcDogMC41NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2hvaWNlLWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgNy4ycmVtKSk7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgMzJyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2UtY2FyZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2hvaWNlLWNhcmQ6aG92ZXIgdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjI1cmVtKTtcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAuNzVyZW0gMS4yNXJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjIyKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaW1wYWN0LWxheWVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgei1pbmRleDogMzA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC14OiA1MCU7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC15OiA3MiU7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1taWQteDogNTAlO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbWlkLXk6IDUwJTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWxlbmd0aDogMzQlO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtYW5nbGU6IC05MGRlZztcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTYpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtZ2xvdzogcmdiYSg5NiwgMTY1LCAyNTAsIDAuNTYpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtaGl0OiByZ2JhKDIyMCwgMzgsIDM4LCAwLjQyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwuaXMtbGVhZGVyLXRhcmdldCB7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWdsb3c6IHJnYmEoMjUwLCAyMDQsIDIxLCAwLjUyKTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWhpdDogcmdiYSgyNTAsIDIwNCwgMjEsIDAuMzgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC5pcy1jaGFyYWN0ZXItdGFyZ2V0IHtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWNvbG9yOiByZ2JhKDIxOSwgMjM0LCAyNTQsIDAuOTgpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtZ2xvdzogcmdiYSg5NiwgMTY1LCAyNTAsIDAuNTgpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtaGl0OiByZ2JhKDIyMCwgMzgsIDM4LCAwLjM4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jb21iYXQtdHJhaWw6OmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1taWQteCk7XG4gICAgICAgIHRvcDogdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1taWQteSk7XG4gICAgICAgIHdpZHRoOiBjbGFtcCgyLjhyZW0sIDl2dywgNS40cmVtKTtcbiAgICAgICAgaGVpZ2h0OiBjbGFtcCgyLjhyZW0sIDl2dywgNS40cmVtKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcyKSwgdHJhbnNwYXJlbnQgMjglKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWhpdCksIHRyYW5zcGFyZW50IDYyJSk7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgwLjU4KTtcbiAgICAgICAgYW5pbWF0aW9uOiBjaHJpc3RpYW5pdHktY29tYmF0LWJ1cnN0IDg4MG1zIGVhc2Utb3V0IGJvdGg7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsID4gc3BhbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC14KTtcbiAgICAgICAgdG9wOiB2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLXkpO1xuICAgICAgICB3aWR0aDogdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1sZW5ndGgpO1xuICAgICAgICBoZWlnaHQ6IDAuMzZyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCA1JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyKSA0MiUsIHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtY29sb3IpIDcyJSwgcmdiYSg5NiwgMTY1LCAyNTAsIDAuNzIpKSxcbiAgICAgICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwIDAuN3JlbSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY2KSAwLjdyZW0gMC45MnJlbSk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwIDAuNzJyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1nbG93KSxcbiAgICAgICAgICAwIDAgMS40NXJlbSB2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWdsb3cpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtYW5nbGUpKSBzY2FsZVgoMCk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgNTAlO1xuICAgICAgICBhbmltYXRpb246IGNocmlzdGlhbml0eS1jb21iYXQtYXJyb3ctdHJhaWwgODQwbXMgZWFzZS1vdXQgYm90aDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwgPiBzcGFuOjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHJpZ2h0OiAtMC4xOHJlbTtcbiAgICAgICAgd2lkdGg6IDAuOTVyZW07XG4gICAgICAgIGhlaWdodDogMC45NXJlbTtcbiAgICAgICAgYm9yZGVyLXRvcDogMC4yOHJlbSBzb2xpZCB2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwLjI4cmVtIHNvbGlkIHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtY29sb3IpO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMC40NXJlbSB2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWdsb3cpKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LWNvbWJhdC1hcnJvdy10cmFpbCB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUodmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1hbmdsZSkpIHNjYWxlWCgwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDI0JSB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtYW5nbGUpKSBzY2FsZVgoMC41Mik7XG4gICAgICAgIH1cblxuICAgICAgICA2NiUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSh2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWFuZ2xlKSkgc2NhbGVYKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtYW5nbGUpKSBzY2FsZVgoMS4wNCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjaHJpc3RpYW5pdHktY29tYmF0LWJ1cnN0IHtcbiAgICAgICAgMCUsXG4gICAgICAgIDQyJSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgwLjU4KSByb3RhdGUoMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICA1OCUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC45OCkgcm90YXRlKDRkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxLjQyKSByb3RhdGUoMTJkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgICAgIC5jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbDo6YmVmb3JlLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbCA+IHNwYW4sXG4gICAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLWNvbWJhdC1hdHRhY2tlciB2YWwtY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLWNvbWJhdC10YXJnZXQgdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtY29tYmF0LXRhcmdldCB2YWwtY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbC5pcy1zbGlkaW5nLXByZXZpb3VzIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCxcbiAgICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsLmlzLXNsaWRpbmctbmV4dCAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrOjpiZWZvcmUsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrOjphZnRlcixcbiAgICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2hfX21hcmsgc3BhbiB7XG4gICAgICAgICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjM1cmVtIDAuM3JlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yOCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCkpLFxuICAgICAgICAgIHJnYmEoNzQsIDEyMiwgMTgwLCAwLjA4KTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoN3JlbSwgMWZyKSBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMy43NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZS0tb3Bwb25lbnQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDdyZW0sIDFmcik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjY1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIHtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktYmF0dGxlLWNhcmQtd2lkdGg6IGNsYW1wKDUuMzVyZW0sIDEwLjV2dywgNy43NXJlbSk7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIHZhcigtLWNocmlzdGlhbml0eS1iYXR0bGUtY2FyZC13aWR0aCkpO1xuICAgICAgICBnYXA6IDAuNXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgbWluLWhlaWdodDogY2xhbXAoMTByZW0sIDE5dncsIDEyLjRyZW0pO1xuICAgICAgICBwYWRkaW5nOiAwLjU1cmVtIDAuNHJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDIpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpKSxcbiAgICAgICAgICByZ2JhKDMxLCA3OSwgMTM3LCAwLjA4KTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBiYWNrZ3JvdW5kIDE2MG1zIGVhc2UsXG4gICAgICAgICAgYm94LXNoYWRvdyAxNjBtcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLmlzLXBsYWNpbmctY2FyZCB7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1MCwgMjQwLCAwLjk2KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg0KSksXG4gICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc2KTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjE0cmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nb2xkLXNvZnQpLFxuICAgICAgICAgIDAgMC44cmVtIDEuN3JlbSByZ2JhKDk1LCAxMTEsIDQyLCAwLjEyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNTVyZW0gMC40cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSksXG4gICAgICAgICAgcmdiYSgzMSwgNzksIDEzNywgMC4wOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktZW5kLXR1cm4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMgYnV0dG9uLFxuICAgICAgLmNocmlzdGlhbml0eS1waWxlLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItLXRhcmdldCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUuOHJlbTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNXJlbSAxLjI1cmVtIHJnYmEoMzYsIDQ4LCA2OCwgMC4wOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZCBzcGFuIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkIHN0cm9uZyB7XG4gICAgICAgIGp1c3RpZnktc2VsZjogZW5kO1xuICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIDAuMzVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWRmMmY3O1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLmlzLXNlbGVjdGVkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZCk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwIDAgMC4xOHJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1zb2Z0KSxcbiAgICAgICAgICAwIDAuODVyZW0gMS40cmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3cpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQuaXMtZGlzYWJsZWQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQuaXMtZXhoYXVzdGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC41NTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLmlzLXRhcmdldCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2RjMjYyNjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkcyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgICAgIGdyaWQtYXV0by1jb2x1bW5zOiAwLjdyZW07XG4gICAgICAgIGdhcDogMC4xNnJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGVuZDtcbiAgICAgICAgbWluLWhlaWdodDogMS4wNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkcyBpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAwLjY1cmVtO1xuICAgICAgICBoZWlnaHQ6IDAuOTVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYsIDQyLCA2NywgMC4yMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMThyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZHMgaS5pcy11c2VkIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2NiZDVlMTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2xvdCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIHZhcigtLWNocmlzdGlhbml0eS1iYXR0bGUtY2FyZC13aWR0aCkpO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgICBib3JkZXI6IDFweCBkYXNoZWQgcmdiYSgzNiwgNDgsIDY4LCAwLjIyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgb3BhY2l0eTogMC42MjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1yaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjUwLCAyNDAsIDAuOTIpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuODIpKSxcbiAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gICAgICAgIGNvbG9yOiAjNWQ0MzA1O1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgMCAwIDAuMTJyZW0gcmdiYSgyMTQsIDE2MiwgMjksIDAuMiksXG4gICAgICAgICAgMCAwLjdyZW0gMS4yNXJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93KTtcbiAgICAgICAgYW5pbWF0aW9uOiBjaHJpc3RpYW5pdHktdGFyZ2V0LXB1bHNlIDE0NTBtcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldDo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDAuMzVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjIyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjEpLCB0cmFuc3BhcmVudCA0NiUpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDQyJSwgdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdsb3cpLCB0cmFuc3BhcmVudCA1OCUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0IHNwYW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHBhZGRpbmc6IDAuMTZyZW0gMC40NHJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjaHJpc3RpYW5pdHktdGFyZ2V0LXB1bHNlIHtcbiAgICAgICAgMCUsXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICBpbnNldCAwIDAgMCAwLjEycmVtIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjIpLFxuICAgICAgICAgICAgMCAwLjdyZW0gMS4yNXJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgIDUwJSB7XG4gICAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgIGluc2V0IDAgMCAwIDAuMTZyZW0gcmdiYSgyMTQsIDE2MiwgMjksIDAuMzQpLFxuICAgICAgICAgICAgMCAwLjlyZW0gMS42NXJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93LXN0cm9uZyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IG1pbm1heCg2cmVtLCA4cmVtKTtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjU1cmVtO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIHtcbiAgICAgICAgcGFkZGluZzogMC43NXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIGJ1dHRvbixcbiAgICAgIC5jaHJpc3RpYW5pdHktZW5kLXR1cm4ge1xuICAgICAgICBtaW4taGVpZ2h0OiAyLjRyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC43NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIGJ1dHRvbjpub3QoOmRpc2FibGVkKSxcbiAgICAgIC5jaHJpc3RpYW5pdHktZW5kLXR1cm4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTAyYTQzO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIGJ1dHRvbiB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAwIDAuOHJlbSAxLjc1cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4yMiksXG4gICAgICAgICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIGJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZW5kLXR1cm4ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAwIDAuOHJlbSAxLjc1cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4yMiksXG4gICAgICAgICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5IHtcbiAgICAgICAgcGFkZGluZzogMC43NXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWZhbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwLjhyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC4yNXJlbSAyLjFyZW07XG4gICAgICAgIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgei1pbmRleDogMTI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEycmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMS4xNXJlbTtcbiAgICAgICAgcGFkZGluZzogMS40NXJlbSAwLjI1cmVtIDFyZW07XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50IHtcbiAgICAgICAgei1pbmRleDogODtcbiAgICAgICAgbWluLWhlaWdodDogNi44NXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZzogMC40NXJlbSAwLjI1cmVtIDAuODVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50IHtcbiAgICAgICAgbWluLWhlaWdodDogNS45cmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC43NXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtZmFuLS1vcHBvbmVudCAuY2hyaXN0aWFuaXR5LWhpZGRlbi1jYXJkLWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiBjbGFtcCgzLjdyZW0sIDEydncsIDQuOXJlbSk7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0KTtcbiAgICAgICAgbWFyZ2luLWlubGluZTogLTAuOXJlbTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEyMCU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50IC5jaHJpc3RpYW5pdHktaGlkZGVuLWNhcmQtYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50IC5jaHJpc3RpYW5pdHktaGlkZGVuLWNhcmQtYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtbWluaSxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLFxuICAgICAgLmNocmlzdGlhbml0eS1lbmQtdHVybiB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDAsIDFmcikgYXV0byBhdXRvO1xuICAgICAgICBnYXA6IDAuMjhyZW07XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgICAgIHdpZHRoOiBjbGFtcCg0LjlyZW0sIDE3dncsIDcuMXJlbSk7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgICBwYWRkaW5nOiAwLjQ4cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTE1JTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICB0cmFuc2Zvcm0gMTYwbXMgZWFzZSxcbiAgICAgICAgICBib3gtc2hhZG93IDE2MG1zIGVhc2UsXG4gICAgICAgICAgYm9yZGVyLWNvbG9yIDE2MG1zIGVhc2U7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC41cmVtIDEuMjVyZW0gcmdiYSgzNiwgNDgsIDY4LCAwLjEpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24gPiB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNhcmQtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNi44cmVtKTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNhcmQtYnV0dG9uID4gdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbixcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uIHtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b246aG92ZXIgdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXNlbGVjdGVkIHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXNlbGVjdGVkIHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXRhcmdldCB2YWwtY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtdGFyZ2V0IHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGZpbHRlcjpcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAgMC40NXJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjQ1KSlcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAuNTVyZW0gMXJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjIyKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXJlYWR5LWF0dGFja2VyIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGZpbHRlcjpcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAgMC4yNHJlbSByZ2JhKDIyLCAxNjMsIDc0LCAwLjMyKSlcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAuNDVyZW0gMC44cmVtIHJnYmEoMjIsIDE2MywgNzQsIDAuMTYpKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtc2VsZWN0ZWQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuMjhyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1zZWxlY3RlZCB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBmaWx0ZXI6XG4gICAgICAgICAgZHJvcC1zaGFkb3coMCAwIDAuNHJlbSByZ2JhKDI1MCwgMjA0LCAyMSwgMC41MikpXG4gICAgICAgICAgZHJvcC1zaGFkb3coMCAwLjY1cmVtIDFyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4yNCkpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtYXR0YWNrZXIge1xuICAgICAgICB6LWluZGV4OiA4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtY29tYmF0LWF0dGFja2VyIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LWNvbWJhdC1sdW5nZSA5ODBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjc4LCAwLjIsIDEpIGJvdGg7XG4gICAgICAgIGZpbHRlcjpcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAgMC41cmVtIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjcyKSlcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDFyZW0gMS40cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4yOCkpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtdGFyZ2V0IHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtdGFyZ2V0IHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LWNvbWJhdC1pbXBhY3QgOTgwbXMgZWFzZS1vdXQgYm90aDtcbiAgICAgICAgZmlsdGVyOlxuICAgICAgICAgIGRyb3Atc2hhZG93KDAgMCAwLjVyZW0gcmdiYSgyMjAsIDM4LCAzOCwgMC40OCkpXG4gICAgICAgICAgZHJvcC1zaGFkb3coMCAwLjc1cmVtIDEuMXJlbSByZ2JhKDIyMCwgMzgsIDM4LCAwLjE4KSk7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LWNvbWJhdC1sdW5nZSB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDI0JSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMS40cmVtLCAwKSByb3RhdGUoLTRkZWcpIHNjYWxlKDEuMDgpO1xuICAgICAgICB9XG5cbiAgICAgICAgNTIlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC00LjlyZW0sIDApIHJvdGF0ZSg3ZGVnKSBzY2FsZSgxLjEyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDY4JSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMy42cmVtLCAwKSByb3RhdGUoLTNkZWcpIHNjYWxlKDEuMDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSByb3RhdGUoMGRlZykgc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjaHJpc3RpYW5pdHktY29tYmF0LWltcGFjdCB7XG4gICAgICAgIDAlLFxuICAgICAgICA0MiUge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2NhbGUoMSk7XG4gICAgICAgIH1cblxuICAgICAgICA1NCUge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMC4xNnJlbSwgLTAuMTJyZW0sIDApIHJvdGF0ZSgyZGVnKSBzY2FsZSgxLjA0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIDY0JSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMC4xNHJlbSwgMC4xcmVtLCAwKSByb3RhdGUoLTJkZWcpIHNjYWxlKDAuOTgpO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSByb3RhdGUoMGRlZykgc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXByb3RlY3RlZC10YXJnZXQge1xuICAgICAgICBvcGFjaXR5OiAwLjgyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtcHJvdGVjdGVkLXRhcmdldCB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwLjIyKSBkcm9wLXNoYWRvdygwIDAgMC4yOHJlbSByZ2JhKDEwMCwgMTE2LCAxMzksIDAuMjYpKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDAsIDFmcikgYXV0byBhdXRvO1xuICAgICAgICBnYXA6IDAuMjhyZW07XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDAuNDhyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk4KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAxNSUgMCUsIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjEyKSwgdHJhbnNwYXJlbnQgNDQlKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAwIDAuNXJlbSAxLjI1cmVtIHJnYmEoMzYsIDQ4LCA2OCwgMC4xKSxcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjE4cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42Mik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGF1dG87XG4gICAgICAgIGdhcDogMC4xNnJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1oZWFkZXIgc21hbGwge1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjY0KTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjUycmVtLCAxLjV2dywgMC42OHJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzdHJvbmcge1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgICAgYWxpZ24tc2VsZjogc3RhcnQ7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMC44MnJlbSwgMi41dncsIDEuMDVyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wMjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1oZWFkZXIgc3Ryb25nIHtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBjbGlwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzbWFsbCB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWFydCA+IHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgbWF4LXdpZHRoOiA4OCU7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBjbGlwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1oZWFkZXIgc3BhbiB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBncmlkLXJvdzogMSAvIHNwYW4gMjtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiAxLjNyZW07XG4gICAgICAgIGhlaWdodDogMS4zcmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuMjJyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZkOTFhO1xuICAgICAgICBjb2xvcjogIzI0MzA0NDtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIC0wLjA4cmVtIDAgcmdiYSg4MiwgNjQsIDI4LCAwLjE4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzcGFuLmlzLW9mZmVyaW5nLXBpcHMsXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1jb3N0LmlzLW9mZmVyaW5nLXBpcHMsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgc3Bhbi5pcy1vZmZlcmluZy1waXBzIHtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjE0cmVtO1xuICAgICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDAgMC4yOHJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzcGFuLmlzLW9mZmVyaW5nLXBpcHMgaSxcbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWNvc3QuaXMtb2ZmZXJpbmctcGlwcyBpLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHNwYW4uaXMtb2ZmZXJpbmctcGlwcyBpLFxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtcGlwcyBpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAwLjcycmVtO1xuICAgICAgICBoZWlnaHQ6IDAuNzJyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzQlIDI4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpIDAgMC4xMnJlbSwgdHJhbnNwYXJlbnQgMC4xM3JlbSksXG4gICAgICAgICAgI2ZmZDkxYTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIC0wLjA4cmVtIDAgcmdiYSg4MiwgNjQsIDI4LCAwLjE4KSxcbiAgICAgICAgICAwIDAuMTJyZW0gMC4yNHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1hcnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzZyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg5NSwgMTExLCA0MiwgMC4xOCksIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjE0KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgMTglLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzIpLCB0cmFuc3BhcmVudCA0OCUpLFxuICAgICAgICAgICNkYmU3ZWY7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDM2LCA0OCwgNjgsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtYXJ0ID4gc3BhbiB7XG4gICAgICAgIG1heC13aWR0aDogNzglO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogcmdiYSgzNiwgNDgsIDY4LCAwLjQ4KTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjgycmVtLCAyLjJ2dywgMS4wNXJlbSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjAyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtYXJ0IHNtYWxsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwLjI4cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDc4JTtcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuMzRyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4IDAgMCA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjY2KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjQ4cmVtO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWVmZmVjdCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAwLjFyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuNDVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjRyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzRyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgNzAlLCByZ2JhKDM2LCA0OCwgNjgsIDAuMDYpLCB0cmFuc3BhcmVudCA0NCUpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1lZmZlY3Qgc3Ryb25nIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgcGFkZGluZzogMC4xMnJlbSAwLjMycmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2VkZjJmNztcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjY2cmVtLCAydncsIDAuODJyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWVmZmVjdCBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjcyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjU4cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWZvb3RlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAwLjIycmVtO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjUyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjQ2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLS1iYXR0bGUge1xuICAgICAgICBnYXA6IDAuMjJyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNDJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS0tYmF0dGxlIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1hcnQge1xuICAgICAgICBtaW4taGVpZ2h0OiAyLjZyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS0tbGVhZGVyIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1hcnQge1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTQpLCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4xNikpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDE4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc4KSwgdHJhbnNwYXJlbnQgNDglKSxcbiAgICAgICAgICAjZTdlZWY4O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtLWxpc3Qge1xuICAgICAgICB3aWR0aDogY2xhbXAoNC40cmVtLCAyMnZ3LCA1LjhyZW0pO1xuICAgICAgICBwYWRkaW5nOiAwLjM4cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtLWxpc3QgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWFydCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIuNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWFyZ2luLWlubGluZTogLTAuNDJyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTE1JTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICB0cmFuc2Zvcm0gMTYwbXMgZWFzZSxcbiAgICAgICAgICBmaWx0ZXIgMTYwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcDpob3ZlcixcbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1jYXJkLXdyYXAuaXMtc2VsZWN0ZWQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwLmlzLWRyYWdnaW5nIHtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcDpob3ZlciAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kLFxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcC5pcy1zZWxlY3RlZCAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kLFxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcC5pcy1kcmFnZ2luZyAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZCk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwIDAgMC4xMnJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1zb2Z0KSxcbiAgICAgICAgICAwIDFyZW0gMnJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjVyZW0pIHNjYWxlKDEuMDQ1KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZCB7XG4gICAgICAgIGN1cnNvcjogZ3JhYjtcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kOmFjdGl2ZSB7XG4gICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQuY2RrLWRyYWctZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZHJhZy1wcmV2aWV3LFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC5jZGstZHJhZy1wcmV2aWV3IHtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDQuOXJlbSwgMTd2dywgNy4xcmVtKTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAwIDAgMCAwLjE2cmVtIHJnYmEoMjU1LCAyNDQsIDE5NCwgMC42OCksXG4gICAgICAgICAgMCAxLjVyZW0gM3JlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93LXN0cm9uZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDJkZWcpIHNjYWxlKDEuMDMpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZHJhZy1wcmV2aWV3IHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZHJhZy1wbGFjZWhvbGRlcixcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQuY2RrLWRyYWctcGxhY2Vob2xkZXIge1xuICAgICAgICB3aWR0aDogY2xhbXAoNC45cmVtLCAxN3Z3LCA3LjFyZW0pO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMTIpO1xuICAgICAgICBvcGFjaXR5OiAwLjIyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNsb3QuY2RrLWRyb3AtbGlzdC1kcmFnZ2luZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctZHJvcC10YXJnZXQuY2RrLWRyb3AtbGlzdC1kcmFnZ2luZyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtcmluZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2xvdC5jZGstZHJvcC1saXN0LXJlY2VpdmluZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctZHJvcC10YXJnZXQuY2RrLWRyb3AtbGlzdC1yZWNlaXZpbmcge1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgMCAwIDAuMThyZW0gcmdiYSgyMTQsIDE2MiwgMjksIDAuMzQpLFxuICAgICAgICAgIDAgMXJlbSAxLjlyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXNoYWRvdy1zdHJvbmcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZXllIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogNTAlO1xuICAgICAgICBib3R0b206IDAuMzhyZW07XG4gICAgICAgIHdpZHRoOiAyLjE1cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuNTVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpIDUyJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk0KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjU1cmVtIDEuMXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTQpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIC0wLjJyZW0pIHNjYWxlKDAuOTIpO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG9wYWNpdHkgMTQwbXMgZWFzZSxcbiAgICAgICAgICB0cmFuc2Zvcm0gMTQwbXMgZWFzZSxcbiAgICAgICAgICBib3JkZXItY29sb3IgMTQwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWV5ZTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgd2lkdGg6IDEuMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjFyZW07XG4gICAgICAgIGJvcmRlcjogMC4xMnJlbSBzb2xpZCB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4MiUgMDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk0KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWV5ZTo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB3aWR0aDogMC40MnJlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjQycmVtO1xuICAgICAgICBib3JkZXI6IDAuMDlyZW0gc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzNSUgMzIlLCAjZmZmZmZmIDAgMC4wNnJlbSwgdHJhbnNwYXJlbnQgMC4wN3JlbSksXG4gICAgICAgICAgdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWZvY3VzKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1jYXJkLXdyYXA6aG92ZXIgLmNocmlzdGlhbml0eS1jYXJkLWV5ZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1jYXJkLXdyYXAuaXMtc2VsZWN0ZWQgLmNocmlzdGlhbml0eS1jYXJkLWV5ZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1leWU6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgMCkgc2NhbGUoMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctZHJvcC10YXJnZXQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIDYuNDVyZW0pO1xuICAgICAgICBoZWlnaHQ6IDguMDVyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDguMDVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjY0cmVtO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIGJvcmRlci1jb2xvciAxNjBtcyBlYXNlLFxuICAgICAgICAgIGJveC1zaGFkb3cgMTYwbXMgZWFzZSxcbiAgICAgICAgICBiYWNrZ3JvdW5kIDE2MG1zIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctZHJvcC10YXJnZXQuaXMtcGxheS10YXJnZXQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nb2xkLXJpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTAsIDI0MCwgMC45NiksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NCkpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgODIlIDE0JSwgcmdiYSgyNTAsIDIwNCwgMjEsIDAuMjgpIDAgMC43cmVtLCB0cmFuc3BhcmVudCAwLjcycmVtKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjEycmVtIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjI0KSxcbiAgICAgICAgICAwIDAuOHJlbSAxLjU1cmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3cpO1xuICAgICAgICBhbmltYXRpb246IGNocmlzdGlhbml0eS10YXJnZXQtcHVsc2UgMTQ1MG1zIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWRyb3AtdGFyZ2V0ID4gLmNkay1kcmFnLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLS1iYWNrLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmFjayB7XG4gICAgICAgIHdpZHRoOiBjbGFtcCg0cmVtLCAxNHZ3LCA1LjdyZW0pO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDAuNTVyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC44cmVtIDEuNTVyZW0gcmdiYSgzNiwgNDgsIDY4LCAwLjE0KTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIC0xOCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWJhY2spO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtLWJhY2s6OmJlZm9yZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhY2s6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYsIDQyLCA2NywgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzhyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCkpO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAwLjEycmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZSB7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIHZhcigtLWNocmlzdGlhbml0eS1iYXR0bGUtY2FyZC13aWR0aCkpO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQgPiBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLW1pbmkgPiBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCA+IHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkID4gc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlID4gc3BhbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgYWxpZ24tc2VsZjogc3RhcnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkID4gc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLW1pbmkgPiBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgPiBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkID4gc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHN0cm9uZyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgcGFkZGluZzogMC4xNXJlbSAwLjM1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2VkZjJmNztcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLXJhY2sge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCg1LjNyZW0sIDYuOXJlbSkgbWlubWF4KDVyZW0sIDFmcikgbWlubWF4KDQuOXJlbSwgNi41cmVtKTtcbiAgICAgICAgZ2FwOiAwLjY1cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogZW5kO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItcmFjay0tb3Bwb25lbnQge1xuICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMC4zNXJlbTtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWdyaWQ7XG4gICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgICAgIGdhcDogMC4yNXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogMS43cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjE4cmVtIDAuNDZyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjhyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyLS1vcHBvbmVudCB7XG4gICAgICAgIHRvcDogMC4xNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyIHNwYW4ge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjU4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjY4cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgc3Ryb25nIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg2cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLWNvbW1hbmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZSB7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0YXJ0O1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc2KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjc0cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZS0tb3Bwb25lbnQge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlIHN0cm9uZyB7XG4gICAgICAgIG1heC13aWR0aDogNi41cmVtO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1hdmF0YXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMS44NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjg1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuOXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTYpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy16b25lIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA2LjlyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtbWluaSxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgbWluLWhlaWdodDogNC45cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjQ4cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDAsIDFmcikgYXV0byBhdXRvO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIG1pbm1heCgyLjZyZW0sIDFmcikgYXV0bztcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RyZXRjaDtcbiAgICAgICAgZ2FwOiAwLjMycmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtbWluaSB7XG4gICAgICAgIHdpZHRoOiAzLjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIDYuNzVyZW0pO1xuICAgICAgICBoZWlnaHQ6IDguMTVyZW07XG4gICAgICAgIG1heC1oZWlnaHQ6IDguMTVyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNzJyZW0gMC42NHJlbSAwLjYycmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmZmZmZmYsICNmOGZhZmMpLFxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjE4KSwgdHJhbnNwYXJlbnQgNDIlKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1kcm9wLXRhcmdldCAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzcGFuOm5vdCguY2hyaXN0aWFuaXR5LWVtcHR5LWNhcmQtc2xvdCkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdHJldGNoO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDAuMTJyZW0gMC4yOHJlbSAwO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjcyKTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjcycmVtLCAyLjN2dywgMC44OHJlbSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzdHJvbmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICBtaW4td2lkdGg6IDEuN3JlbTtcbiAgICAgICAgcGFkZGluZzogMC4xM3JlbSAwLjM4cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzcsIDI0MiwgMjQ3LCAwLjkyKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5NTA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjc1cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHNtYWxsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDAuNTZyZW07XG4gICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyLjdyZW0pO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjU4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjU4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODUwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2xvdCA+IC5jZGstZHJhZy1wbGFjZWhvbGRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMS43MnJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB3aWR0aDogY2xhbXAoM3JlbSwgMTB2dywgMy45NXJlbSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoLTJkZWcpO1xuICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMC40MnJlbSAwLjhyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjE0KSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YmVmb3JlLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMS44MnJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICB3aWR0aDogY2xhbXAoM3JlbSwgMTB2dywgMy45NXJlbSk7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNiwgNDIsIDY3LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4zNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk0KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTUwJSArIDAuMjRyZW0pKSB0cmFuc2xhdGVZKDAuMXJlbSkgcm90YXRlKDRkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGU6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYmFjayk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC01MCUgLSAwLjI0cmVtKSkgdHJhbnNsYXRlWSgwLjIycmVtKSByb3RhdGUoLTRkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUuaXMtZW1wdHktem9uZTo6YmVmb3JlLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLmlzLWVtcHR5LXpvbmU6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZCB7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBjbGFtcCg1LjI1cmVtLCA5dncsIDdyZW0pO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYXR0YWNrLWRyb3AtdGFyZ2V0IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcmFjay1zcGFjZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWluLWhlaWdodDogMXB4O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgdmFyKC0tY2hyaXN0aWFuaXR5LWJhdHRsZS1jYXJkLXdpZHRoKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoNC4zcmVtLCAxZnIpKTtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDcuNjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNzhyZW0gMC42MnJlbSAwLjYycmVtO1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzYsIDQ4LCA2OCwgMC4wOCk7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU0KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjM2KSksXG4gICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUge1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgMCAwIDk5OXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCksXG4gICAgICAgICAgMCAwLjQ1cmVtIDFyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjA2KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQuaXMtcGxheS10YXJnZXQge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzcsIDk5LCAyMzUsIDAuMzgpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgMCAwIDk5OXB4IHJnYmEoMzcsIDk5LCAyMzUsIDAuMDgpLFxuICAgICAgICAgIDAgMCAwIDAuMThyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4xMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLS1oaXN0b3J5Lmhhcy1uZXctY2FyZCB7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LWhpc3RvcnktcHVsc2UgOTAwbXMgZWFzZS1vdXQgYm90aDtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjaHJpc3RpYW5pdHktaGlzdG9yeS1wdWxzZSB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgaW5zZXQgMCAwIDAgOTk5cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSxcbiAgICAgICAgICAgIDAgMCAwIDAgcmdiYSgzNywgOTksIDIzNSwgMCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDI4JSB7XG4gICAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgIGluc2V0IDAgMCAwIDk5OXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNiksXG4gICAgICAgICAgICAwIDAgMCAwLjI1cmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTgpO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgIGluc2V0IDAgMCAwIDk5OXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMiksXG4gICAgICAgICAgICAwIDAgMCAwIHJnYmEoMzcsIDk5LCAyMzUsIDApO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQgdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUgdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDAuNjJyZW07XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDRyZW0sIDl2dywgNS40cmVtKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSgtMmRlZyk7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwLjM1cmVtIDAuNzVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjEyKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLS1kZWNrIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoM2RlZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Bhbjpub3QoLmNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3QpLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzcGFuOm5vdCguY2hyaXN0aWFuaXR5LWVtcHR5LWNhcmQtc2xvdCkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMS41NXJlbSk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuODQpO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDAuNzZyZW0sIDIuNXZ3LCAwLjkycmVtKTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzdHJvbmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwLjQ1cmVtO1xuICAgICAgICBib3R0b206IDAuNDVyZW07XG4gICAgICAgIHotaW5kZXg6IDQ7XG4gICAgICAgIG1pbi13aWR0aDogMS42NXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4xMnJlbSAwLjRyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzNywgMjQyLCAyNDcsIDAuOTIpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDk1MDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuNzVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjEyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBlbSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgcGFkZGluZzogMC4xMnJlbSAwLjM4cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNywgOTksIDIzNSwgMC4xMik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgICBmb250LXNpemU6IDAuNjhyZW07XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMC43MnJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IGNsYW1wKDRyZW0sIDl2dywgNS40cmVtKTtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgICBib3JkZXI6IDFweCBkYXNoZWQgcmdiYSgxNiwgNDIsIDY3LCAwLjIyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4zNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM2KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YmVmb3JlLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwLjgycmVtO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIHdpZHRoOiBjbGFtcCgzLjNyZW0sIDE2dncsIDQuMzVyZW0pO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYsIDQyLCA2NywgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45NCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC01MCUgKyAwLjIycmVtKSkgcm90YXRlKDRkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTUwJSAtIDAuMjJyZW0pKSB0cmFuc2xhdGVZKDAuMTZyZW0pIHJvdGF0ZSgtM2RlZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLmlzLWVtcHR5LXpvbmU6OmJlZm9yZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLmlzLWVtcHR5LXpvbmU6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAxMDAyMDtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIG1pbm1heCgwLCAxZnIpIGF1dG87XG4gICAgICAgIGdhcDogMC41NXJlbTtcbiAgICAgICAgd2lkdGg6IG1pbig1NnJlbSwgY2FsYygxMDB2dyAtIDEuMjVyZW0pKTtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDBkdmggLSA0LjI1cmVtKTtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGwuaXMtaGlzdG9yeS1wcmV2aWV3IHtcbiAgICAgICAgd2lkdGg6IG1pbig1NnJlbSwgY2FsYygxMDB2dyAtIDEuMjVyZW0pKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXRvcGJhciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogODtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDAuNjVyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIuMDVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1wb3NpdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICBtaW4td2lkdGg6IDMuMTVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC42MnJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjQ1cmVtIDFyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjEpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogbWluKDE3LjVyZW0sIGNhbGMoNTJkdmggLSAzcmVtKSwgY2FsYygxMDB2dyAtIDdyZW0pKTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDIuMnJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ2xvdyk7XG4gICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgIHRyYW5zbGF0ZSh2YXIoLS1wcmV2aWV3LXNoaWZ0LXgsIDBweCksIHZhcigtLXByZXZpZXctc2hpZnQteSwgMHB4KSlcbiAgICAgICAgICBwZXJzcGVjdGl2ZSg0OHJlbSlcbiAgICAgICAgICByb3RhdGVYKHZhcigtLXByZXZpZXctcm90YXRlLXgsIDBkZWcpKVxuICAgICAgICAgIHJvdGF0ZVkodmFyKC0tcHJldmlldy1yb3RhdGUteSwgMGRlZykpO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTQwbXMgZWFzZS1vdXQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMTNyZW0sIDE3cmVtKTtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctc3RhZ2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIDMxcmVtKTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWlubGluZTogNC40cmVtO1xuICAgICAgICBwZXJzcGVjdGl2ZTogNTJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1zdGFnZTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDEwJSAyLjM1cmVtO1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNiksIHRyYW5zcGFyZW50IDU4JSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgzNywgOTksIDIzNSwgMC4xKSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctZ2hvc3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHdpZHRoOiBtaW4oMTNyZW0sIGNhbGMoNDJkdmggLSAzcmVtKSwgMzR2dyk7XG4gICAgICAgIG9wYWNpdHk6IDAuMzQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBmaWx0ZXI6IGJsdXIoMC4wMnJlbSkgc2F0dXJhdGUoMC45KTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDM2MG1zIGN1YmljLWJlemllcigwLjIsIDAuODQsIDAuMjIsIDEpLCBvcGFjaXR5IDM2MG1zIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1naG9zdC0tcHJldmlvdXMge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTg2JSkgcm90YXRlWSgyMmRlZykgcm90YXRlKC00ZGVnKSBzY2FsZSgwLjgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctZ2hvc3QtLW5leHQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoODYlKSByb3RhdGVZKC0yMmRlZykgcm90YXRlKDRkZWcpIHNjYWxlKDAuOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbC5pcy1zbGlkaW5nLXByZXZpb3VzIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCB7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LXByZXZpZXctc2xpZGUtcHJldmlvdXMgMzYwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC44NCwgMC4yMiwgMSkgYm90aDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsLmlzLXNsaWRpbmctbmV4dCAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQge1xuICAgICAgICBhbmltYXRpb246IGNocmlzdGlhbml0eS1wcmV2aWV3LXNsaWRlLW5leHQgMzYwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC44NCwgMC4yMiwgMSkgYm90aDtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjaHJpc3RpYW5pdHktcHJldmlldy1zbGlkZS1wcmV2aW91cyB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGModmFyKC0tcHJldmlldy1zaGlmdC14LCAwcHgpIC0gNC4ycmVtKSwgdmFyKC0tcHJldmlldy1zaGlmdC15LCAwcHgpKSBwZXJzcGVjdGl2ZSg0OHJlbSkgcm90YXRlWCh2YXIoLS1wcmV2aWV3LXJvdGF0ZS14LCAwZGVnKSkgcm90YXRlWShjYWxjKHZhcigtLXByZXZpZXctcm90YXRlLXksIDBkZWcpICsgMTBkZWcpKSBzY2FsZSgwLjkyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDU4JSB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tcHJldmlldy1zaGlmdC14LCAwcHgpLCB2YXIoLS1wcmV2aWV3LXNoaWZ0LXksIDBweCkpIHBlcnNwZWN0aXZlKDQ4cmVtKSByb3RhdGVYKHZhcigtLXByZXZpZXctcm90YXRlLXgsIDBkZWcpKSByb3RhdGVZKHZhcigtLXByZXZpZXctcm90YXRlLXksIDBkZWcpKSBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGNocmlzdGlhbml0eS1wcmV2aWV3LXNsaWRlLW5leHQge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKHZhcigtLXByZXZpZXctc2hpZnQteCwgMHB4KSArIDQuMnJlbSksIHZhcigtLXByZXZpZXctc2hpZnQteSwgMHB4KSkgcGVyc3BlY3RpdmUoNDhyZW0pIHJvdGF0ZVgodmFyKC0tcHJldmlldy1yb3RhdGUteCwgMGRlZykpIHJvdGF0ZVkoY2FsYyh2YXIoLS1wcmV2aWV3LXJvdGF0ZS15LCAwZGVnKSAtIDEwZGVnKSkgc2NhbGUoMC45Mik7XG4gICAgICAgIH1cblxuICAgICAgICA1OCUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXByZXZpZXctc2hpZnQteCwgMHB4KSwgdmFyKC0tcHJldmlldy1zaGlmdC15LCAwcHgpKSBwZXJzcGVjdGl2ZSg0OHJlbSkgcm90YXRlWCh2YXIoLS1wcmV2aWV3LXJvdGF0ZS14LCAwZGVnKSkgcm90YXRlWSh2YXIoLS1wcmV2aWV3LXJvdGF0ZS15LCAwZGVnKSkgc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXNpZGUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICAgICAgICBnYXA6IDAuNDJyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWhlYWRlciBzdHJvbmcge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogY2xpcDtcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuMjVyZW0sIDV2dywgMS44NXJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC10eXBlLWljb24sXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1jb3N0IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXR5cGUtaWNvbiB7XG4gICAgICAgIHdpZHRoOiAxLjZyZW07XG4gICAgICAgIGhlaWdodDogMS42cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDUwJSwgcmdiYSg5NSwgMTExLCA0MiwgMC43MikgMCAwLjIycmVtLCB0cmFuc3BhcmVudCAwLjI0cmVtKSxcbiAgICAgICAgICByZ2JhKDM2LCA0OCwgNjgsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXR5cGUtaWNvbiBpbWcge1xuICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1jb3N0IHtcbiAgICAgICAgbWluLXdpZHRoOiAyLjFyZW07XG4gICAgICAgIGhlaWdodDogMi4xcmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuMzZyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmQ5MWE7XG4gICAgICAgIGNvbG9yOiAjMjQzMDQ0O1xuICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMC4xMnJlbSAwIHJnYmEoODIsIDY0LCAyOCwgMC4xOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWFydCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogOXJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC40OHJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDk1LCAxMTEsIDQyLCAwLjIpLCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4xNikpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDI1JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc2KSwgdHJhbnNwYXJlbnQgNDIlKSxcbiAgICAgICAgICAjZGJlN2VmO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgzNiwgNDgsIDY4LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtYXJ0IGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1hcnQgPiBzcGFuIHtcbiAgICAgICAgbWF4LXdpZHRoOiA4MCU7XG4gICAgICAgIGNvbG9yOiByZ2JhKDM2LCA0OCwgNjgsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuMXJlbSwgNXZ3LCAxLjhyZW0pO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1hcnQgc21hbGwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDAuNTVyZW07XG4gICAgICAgIG1pbi13aWR0aDogNXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4xNnJlbSAwLjQ4cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweCAwIDAgOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjNyZW0gMC44cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xMik7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzQpO1xuICAgICAgICBmb250LXNpemU6IDAuNjhyZW07XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC12ZXJzZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4zMnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtdmVyc2UgcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtdmVyc2Uge1xuICAgICAgICBjb2xvcjogIzE3MTkyMztcbiAgICAgICAgZm9udC1mYW1pbHk6IEdlb3JnaWEsICdUaW1lcyBOZXcgUm9tYW4nLCBzZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjcycmVtLCAyLjd2dywgMC44NnJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXZlcnNlIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RhcnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDdyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNnJlbSAwLjdyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNDVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgNzIlLCByZ2JhKDM2LCA0OCwgNjgsIDAuMDcpLCB0cmFuc3BhcmVudCAzNCUpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXN0YXRzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAxLjM1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1zdGF0cyBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1zdGF0cyAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1waXBzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWdyaWQ7XG4gICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgICAgIGdhcDogMC4ycmVtO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtZWZmZWN0ID4gZGl2Omxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4xMnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtZWZmZWN0ID4gZGl2Omxhc3Qtb2YtdHlwZSBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCBwIHtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjc4cmVtLCAyLjl2dywgMC45MnJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXJhcml0eSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwLjYycmVtO1xuICAgICAgICByaWdodDogMC42MnJlbTtcbiAgICAgICAgd2lkdGg6IDAuNDZyZW07XG4gICAgICAgIGhlaWdodDogMC40NnJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMnJlbTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1yYXJpdHkuaXMtbm9ybWFsIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2QxZDVkYjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtcmFyaXR5LmlzLXVuY29tbW9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzIyYzU1ZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtcmFyaXR5LmlzLXJhcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjM2I4MmY2O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1yYXJpdHkuaXMtbGVnZW5kYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZDogI2VhYjMwODtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gbWlubWF4KDAsIDFmcikgYXV0bztcbiAgICAgICAgZ2FwOiAwLjM0cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjY4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjU4cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtZm9vdGVyIHNwYW4ge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtY2xvc2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC42cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc4KTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNDVyZW0gMXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB6LWluZGV4OiA3O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMi41NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAyLjU1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjI4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KSwgcmdiYSgyMzksIDI0NiwgMjU1LCAwLjk0KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzNSUgMjAlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE4KSwgdHJhbnNwYXJlbnQgNTIlKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cyk7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICBmb250LXdlaWdodDogMTAwMDtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAwIDAuNzVyZW0gMS40cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xNCksXG4gICAgICAgICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNywgOTksIDIzNSwgMC40Mik7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjk1cmVtIDEuNjVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjE4KSxcbiAgICAgICAgICAwIDAgMCAwLjE2cmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMDgpLFxuICAgICAgICAgIGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2LS1wcmV2aW91cyB7XG4gICAgICAgIGxlZnQ6IDAuNnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdi0tbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAwLjZyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1iYWNrZHJvcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1iYWNrZHJvcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktaW5mby1iYWNrZHJvcCB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjY0KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWJhY2tkcm9wIHtcbiAgICAgICAgei1pbmRleDogMTAwMTA7XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigwLjEycmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1pbmZvLWJhY2tkcm9wIHtcbiAgICAgICAgei1pbmRleDogNTA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaW5mby1wYW5lbCB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgei1pbmRleDogNTE7XG4gICAgICAgIHdpZHRoOiBtaW4oMzFyZW0sIGNhbGMoMTAwdncgLSAxLjI1cmVtKSk7XG4gICAgICAgIG1heC1oZWlnaHQ6IG1pbigzNHJlbSwgY2FsYygxMDB2aCAtIDJyZW0pKTtcbiAgICAgICAgcGFkZGluZy10b3A6IDIuMzVyZW07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWluZm8tY2xvc2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDAuMTVyZW07XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICBnYXA6IDAuODVyZW07XG4gICAgICAgIG1heC1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuOXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTcpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTcpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDglIDAlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjEpLCB0cmFuc3BhcmVudCAzOCUpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMS4ycmVtIDIuNnJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMjQpLFxuICAgICAgICAgIGluc2V0IDAgMCAwIDAuMjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUtaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAyLjFyZW07XG4gICAgICAgIGhlaWdodDogMi4xcmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cykgMTIlLCAjZmZmZmZmKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpIDI0JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBoMiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc21hbGwge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjYyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBoMiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuMThyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCA3dncsIDIuMnJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzdHJvbmcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjU1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjIycmVtIDAuNTVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWRmMmY3O1xuICAgICAgICBmb250LXNpemU6IDAuOTJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHAge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHVsIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgICBtYXJnaW46IDAuOHJlbSAwIDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS4wNXJlbTtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43OCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQgPiBzbWFsbCxcbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCA+IHNwYW4ge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjY0KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkID4gc3Ryb25nIHtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjU1cmVtLCA4dncsIDIuMzVyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkID4gcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYWxpZ24tc2VsZjogZW5kO1xuICAgICAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgICAgICBtYXgtaGVpZ2h0OiBtaW4oMThyZW0sIDU0ZHZoKTtcbiAgICAgICAgcGFkZGluZzogMC42OHJlbSAwLjc2cmVtO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg4KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjgyKSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4JSAwJSwgcmdiYSgzNywgOTksIDIzNSwgMC4wNyksIHRyYW5zcGFyZW50IDQ0JSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC41NXJlbSAxLjJyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG8gbWlubWF4KDAsIDFmcikgYXV0bztcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIG1heC1oZWlnaHQ6IG1pbigxM3JlbSwgMzBkdmgpO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjcycmVtIDAuNzhyZW0gMC43OHJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNywgOTksIDIzNSwgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk3KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk3KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4JSAwJSwgcmdiYSgzNywgOTksIDIzNSwgMC4xKSwgdHJhbnNwYXJlbnQgNDQlKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjc1cmVtIDEuNnJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAwLjdyZW07XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcy1oZWFkZXIgPiBkaXYge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMXJlbTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHNtYWxsLFxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyBwLFxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcy1oZWFkZXIgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQgc3Ryb25nIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHNtYWxsIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC42OHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcy1oZWFkZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTIpO1xuICAgICAgICBmb250LXNpemU6IDAuNzJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LW5hdiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LW5hdiBidXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMS44NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjg1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44OCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5NTA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC44NXJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjE0KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogMC4zNHJlbTtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogMS44NXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjU4cmVtO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM3LCAyNDIsIDI0NywgMC44Mik7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzYpO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuNzRyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIGJ1dHRvbi5pcy1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNywgOTksIDIzNSwgMC4zMik7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpIDE0JSwgI2ZmZmZmZik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBnYXA6IDAuMzRyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNTVyZW0gMC42MnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MnJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktY2FyZCBzdHJvbmcge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjkpO1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5NTA7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1zY3JvbGwge1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHAge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc0KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjMyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1mb290ZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy11c2UtYWJpbGl0eSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC43MnJlbTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWZvY3VzKTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjU1cmVtIDEuMXJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjIyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXVzZS1hYmlsaXR5OmRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjM2KTtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41KTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHNtYWxsIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC42OHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBzdHJvbmcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMC4wOHJlbTtcbiAgICAgICAgZm9udC1zaXplOiAwLjkycmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHAge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjIycmVtO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc0KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zMjtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDUycmVtKSB7XG4gICAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbCB7XG4gICAgICAgICAgd2lkdGg6IG1pbig1OHJlbSwgY2FsYygxMDB2dyAtIDNyZW0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCB7XG4gICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIHdpZHRoOiBtaW4oMjJyZW0sIGNhbGMoNjdkdmggLSA1Ljg1cmVtKSwgMjRyZW0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1MS45OXJlbSkge1xuICAgICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGwge1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIGdhcDogMC40cmVtO1xuICAgICAgICAgIHdpZHRoOiBtaW4oY2FsYygxMDB2dyAtIDAuOXJlbSksIDI0cmVtKTtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDEuMTVyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWNvbnRlbnQge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctc2lkZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1zdGFnZSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDMuNTVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQge1xuICAgICAgICAgIHdpZHRoOiBtaW4oMTQuNHJlbSwgY2FsYyg1OGR2aCAtIDguMnJlbSksIGNhbGMoMTAwdncgLSA4cmVtKSk7XG4gICAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctZ2hvc3Qge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiBtaW4oNy4xcmVtLCBjYWxjKDMwZHZoIC0gNHJlbSksIDI0dncpO1xuICAgICAgICAgIG9wYWNpdHk6IDAuMjQ7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctZ2hvc3QtLXByZXZpb3VzIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTExOCUpIHJvdGF0ZVkoMjRkZWcpIHJvdGF0ZSgtNWRlZykgc2NhbGUoMC43OCk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctZ2hvc3QtLW5leHQge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMTglKSByb3RhdGVZKC0yNGRlZykgcm90YXRlKDVkZWcpIHNjYWxlKDAuNzgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWNsb3NlIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxLjlyZW07XG4gICAgICAgICAgcGFkZGluZzogMCAwLjU4cmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYge1xuICAgICAgICAgIHdpZHRoOiAyLjJyZW07XG4gICAgICAgICAgaGVpZ2h0OiAyLjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2LS1wcmV2aW91cyB7XG4gICAgICAgICAgbGVmdDogMC4zNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYtLW5leHQge1xuICAgICAgICAgIHJpZ2h0OiAwLjM1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyB7XG4gICAgICAgICAgbWF4LWhlaWdodDogbWluKDkuNnJlbSwgMjdkdmgpO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNjJyZW0gMC43cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyB7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHtcbiAgICAgICAgICBwYWRkaW5nOiAwLjQ4cmVtIDAuNTRyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHAge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4yNDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy11c2UtYWJpbGl0eSB7XG4gICAgICAgICAgbWluLWhlaWdodDogMS45NXJlbTtcbiAgICAgICAgICBwYWRkaW5nLWlubGluZTogMC42OHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktYmFja2Ryb3Age1xuICAgICAgICB6LWluZGV4OiA0MDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWJhY2tkcm9wIHtcbiAgICAgICAgei1pbmRleDogMTAwMDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC43Mik7XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigwLjE0cmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGJvdHRvbTogbWF4KDAuNXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiA0MTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICBnYXA6IDAuNzVyZW07XG4gICAgICAgIHdpZHRoOiBtaW4oY2FsYygxMDB2dyAtIDFyZW0pLCA0NHJlbSk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IG1pbigxOHJlbSwgY2FsYygxMDBkdmggLSAxcmVtKSk7XG4gICAgICAgIG1heC1oZWlnaHQ6IG1pbigzMnJlbSwgY2FsYygxMDBkdmggLSAycmVtKSk7XG4gICAgICAgIHBhZGRpbmc6IDAuOHJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxLjVyZW0gNHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMjgpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDAuNzVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgaDIsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgaGVhZGVyIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDEuODVyZW07XG4gICAgICAgIGhlaWdodDogMS44NXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlZGYyZjc7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZGlhbG9nLWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDAuNDVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZGlhbG9nLWNsb3NlIHtcbiAgICAgICAgbWluLWhlaWdodDogMS44NXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjYycmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43OCk7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuOHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDUuNHJlbSwgMWZyKSk7XG4gICAgICAgIGdhcDogMC41NXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgICBzY3JvbGxiYXItY29sb3I6IHJnYmEoMzYsIDQ4LCA2OCwgMC4zMikgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcyKTtcbiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC4xcmVtIDAuMjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhcixcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICB3aWR0aDogMC42NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNzIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYm9yZGVyOiAwLjE0cmVtIHNvbGlkIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43Mik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM2LCA0OCwgNjgsIDAuMzIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1kcmF3ZXIge1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgd2lkdGg6IG1pbihjYWxjKDEwMHZ3IC0gMXJlbSksIDQ4cmVtKTtcbiAgICAgICAgbWluLWhlaWdodDogbWluKDIwcmVtLCBjYWxjKDEwMGR2aCAtIDFyZW0pKTtcbiAgICAgICAgbWF4LWhlaWdodDogbWluKDM0cmVtLCBjYWxjKDEwMGR2aCAtIDJyZW0pKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgZ2FwOiAwLjY1cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDAuNzJyZW0gMC44cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjdyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk2KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk2KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4JSAwJSwgcmdiYSgyMTQsIDE2MiwgMjksIDAuMTIpLCB0cmFuc3BhcmVudCA0MiUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzYpO1xuICAgICAgICBmb250LXNpemU6IDAuODZyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuNnJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgICBzY3JvbGxiYXItY29sb3I6IHJnYmEoMzYsIDQ4LCA2OCwgMC4zMikgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcyKTtcbiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoNS40cmVtLCA2LjVyZW0pIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICBnYXA6IDAuNjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDAuNDVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93LmlzLWV4aGF1c3RlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjg7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXIge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvIGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICB6LWluZGV4OiAxMDAwMTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgd2lkdGg6IDEwMGR2dztcbiAgICAgICAgaGVpZ2h0OiAxMDBkdmg7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgbWluLWhlaWdodDogMTAwZHZoO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDBkdmg7XG4gICAgICAgIHBhZGRpbmc6XG4gICAgICAgICAgbWF4KDFyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSlcbiAgICAgICAgICBtYXgoMXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpXG4gICAgICAgICAgbWF4KDFyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSlcbiAgICAgICAgICBtYXgoMXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTkpLCByZ2JhKDIzOSwgMjQ2LCAyNTUsIDAuOTkpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDE2JSAwJSwgcmdiYSgzNywgOTksIDIzNSwgMC4xMiksIHRyYW5zcGFyZW50IDQyJSk7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciBoZWFkZXIgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMTVyZW07XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciBoZWFkZXIgcCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDguNXJlbSwgMTNyZW0pO1xuICAgICAgICBnYXA6IDAuNjVyZW07XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjI1cmVtO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjIpO1xuICAgICAgICBmb250LXNpemU6IDAuNzRyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBpbnB1dCxcbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBzZWxlY3Qge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAyLjM1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNzVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwIGJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDAuNDVyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIuMzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC43NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTQsIDE2MiwgMjksIDAuMzgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXBhcmNobWVudCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZWRpdGlvbi1zdHJpcCBpbWcge1xuICAgICAgICB3aWR0aDogMS4ycmVtO1xuICAgICAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCg3LjZyZW0sIDguN3JlbSkpO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RhcnQ7XG4gICAgICAgIGdhcDogMC44NXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBzY3JvbGxiYXItY29sb3I6IHJnYmEoMzYsIDQ4LCA2OCwgMC4zMikgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcyKTtcbiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlO1xuICAgICAgICBwYWRkaW5nOiAwLjM1cmVtIDAuMTVyZW0gMC42NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgd2lkdGg6IDAuNjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNzIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBib3JkZXI6IDAuMTRyZW0gc29saWQgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzYsIDQ4LCA2OCwgMC4zMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIG1pbm1heCgwLCAxZnIpIGF1dG87XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgICAgIGdhcDogMC4yNnJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDcuN3JlbTtcbiAgICAgICAgcGFkZGluZzogMC41OHJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTYpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTYpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDc4JSAxNCUsIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjc4KSAwIDAuNDJyZW0sIHRyYW5zcGFyZW50IDAuNDRyZW0pO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNDVyZW0gMXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBzbWFsbCB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC42MnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgc3Ryb25nIHtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIGFsaWduLXNlbGY6IHN0YXJ0O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuMXJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44OHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHNwYW4ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwLjQycmVtO1xuICAgICAgICBib3R0b206IDAuNDJyZW07XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMS41NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjU1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuMjhyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWRmMmY3O1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBlbSB7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAxLjlyZW0pO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjYyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjY0cmVtO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvdyBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgcCB7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42NCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgPiBkaXYge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvdyA+IGRpdiBwIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgPiBkaXYgYnV0dG9uIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgICAgbWluLWhlaWdodDogMi4ycmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuN3JlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNiwgNDIsIDY3LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTAyYTQzO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgPiBkaXYgYnV0dG9uOmRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2UyZThmMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41OCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkIC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNi40cmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQgLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24ge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA4LjdyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtaGVhZGVyIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMC43NHJlbSwgMC44NXZ3LCAwLjlyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtaGVhZGVyIHNtYWxsLFxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWZvb3RlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC40NHJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24ge1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIDUuOHJlbSk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgYnV0dG9uOmRpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgb3BhY2l0eTogMC41NTtcbiAgICAgIH1cblxuICAgICAgYnV0dG9uOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiAwLjE4NzVyZW0gc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cykgMjQlLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyayksXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkge1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1pbms6IHZhcigtLWlvbi10ZXh0LWNvbG9yLCAjZTVlZGY4KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtc3VyZmFjZTogIzExMTgyNztcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtcGFyY2htZW50OiAjMTMyMjNhO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1vbGl2ZTogIzkzYzVmZDtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZDogIzYwYTVmYTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1zb2Z0OiByZ2JhKDk2LCAxNjUsIDI1MCwgMC4xOCk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtcmluZzogcmdiYSgxNDcsIDE5NywgMjUzLCAwLjQyKTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZ2xvdzogcmdiYSg5NiwgMTY1LCAyNTAsIDAuMjQpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1czogIzkzYzVmZDtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMzQpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3ctc3Ryb25nOiByZ2JhKDAsIDAsIDAsIDAuNDgpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jYXJkLWJhY2s6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxNDcsIDE5NywgMjUzLCAwLjIpLCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpKSxcbiAgICAgICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMWUzYTVmIDAgMC4zM3JlbSwgIzBmMTcyYSAwLjMzcmVtIDAuNjZyZW0pO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jYXJkLWJhY2stc29mdDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDE0NywgMTk3LCAyNTMsIDAuMTUpLCByZ2JhKDE1LCAyMywgNDIsIDAuMDYpKSxcbiAgICAgICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMWUzYTVmIDAgMC4zM3JlbSwgIzBmMTcyYSAwLjMzcmVtIDAuNjZyZW0pO1xuICAgICAgICBjb2xvci1zY2hlbWU6IGRhcms7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1vcGVuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LW9wZW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LW9wZW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LW9wZW4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1vcGVuLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zZWNvbmRhcnktYWN0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zZWNvbmRhcnktYWN0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc2Vjb25kYXJ5LWFjdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb24sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc2Vjb25kYXJ5LWFjdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwIGJ1dHRvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwIGJ1dHRvbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZWRpdGlvbi1zdHJpcCBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWVkaXRpb24tc3RyaXAgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZWRpdGlvbi1zdHJpcCBidXR0b24ge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ3LCAxOTcsIDI1MywgMC4zNik7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgzMCwgNTgsIDk1LCAwLjgyKSwgcmdiYSgxNSwgMjMsIDQyLCAwLjg4KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAyMCUgMCUsIHJnYmEoOTYsIDE2NSwgMjUwLCAwLjE2KSwgdHJhbnNwYXJlbnQgNDIlKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1pbmspO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNTVyZW0gMS4ycmVtIHJnYmEoMCwgMCwgMCwgMC4yNCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc3BsYXNoLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zcGxhc2gsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zcGxhc2gsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zcGxhc2gsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc3BsYXNoIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0NywgMTk3LCAyNTMsIDAuMjIpO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDE4JSwgcmdiYSg5NiwgMTY1LCAyNTAsIDAuMTYpLCB0cmFuc3BhcmVudCAyMnJlbSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxNSwgMjMsIDQyLCAwLjg4KSwgcmdiYSg3LCAxNywgMzEsIDAuOTcpKSxcbiAgICAgICAgICB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrLXNvZnQpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDEuMnJlbSAzLjJyZW0gcmdiYSgwLCAwLCAwLCAwLjI4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIGFydGljbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBhcnRpY2xlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBhcnRpY2xlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fc3RhdHVzIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19zdGF0dXMgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19zdGF0dXMgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19zdGF0dXMgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1zdGFydF9fc3RhdHVzIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlID4gc3BhbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNjgpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNzVyZW0gMS43cmVtIHJnYmEoMCwgMCwgMCwgMC4yMik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc3BsYXNoIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNwbGFzaCBwLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3BsYXNoIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zcGxhc2ggcCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1zcGxhc2ggcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NvcHkgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NvcHkgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jb3B5IHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY29weSBwLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jb3B5IHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oZWFkZXIgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGVhZGVyIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGVhZGVyIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzcGFuIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43NCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktdHVybixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktdHVybixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXR1cm4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS10dXJuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXR1cm4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWxlYWRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktbGVhZGVyLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktbGVhZGVyLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktbGVhZGVyLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWxlYWRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3MsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3MsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3MsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oaWRkZW4taGFuZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlkZGVuLWhhbmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaWRkZW4taGFuZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpZGRlbi1oYW5kLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWhpZGRlbi1oYW5kLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXBpbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZGVjayxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZGVjayxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWRlY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1kZWNrLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWRlY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYWNlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wbGFjZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYWNlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcGxhY2UsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcGxhY2UsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWFjdGlvbnMsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWFjdGlvbnMsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1hY3Rpb25zLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktYWN0aW9ucyxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1hY3Rpb25zLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnksXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGlzdG9yeSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjE4KTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjgyKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS10dXJuLmlzLW93bi10dXJuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS10dXJuLmlzLW93bi10dXJuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktdHVybi5pcy1vd24tdHVybixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXR1cm4uaXMtb3duLXR1cm4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktdHVybi5pcy1vd24tdHVybiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg0NSwgMjEyLCAxOTEsIDAuMzYpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIwLCA4MywgNzYsIDAuMzYpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXRhYmxlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS10YWJsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXRhYmxlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktdGFibGUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktdGFibGUge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMTAyMzNkLCAjMGIxNzI4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcGxheWVyLXNpZGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYXllci1zaWRlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXBsYXllci1zaWRlIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjM0KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktYmF0dGxlLXpvbmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjU4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZS5pcy1wbGFjaW5nLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLmlzLXBsYWNpbmctY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLmlzLXBsYWNpbmctY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLmlzLXBsYWNpbmctY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZS5pcy1wbGFjaW5nLWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMzAsIDU4LCA5NSwgMC44MiksIHJnYmEoMTUsIDIzLCA0MiwgMC43MikpLFxuICAgICAgICAgIHJnYmEoMTUsIDIzLCA0MiwgMC41OCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zbG90LFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc2xvdCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1zbG90IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMjQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNTQpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0LFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQge1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgzNywgOTksIDIzNSwgMC4yNCksIHJnYmEoMTUsIDIzLCA0MiwgMC43OCkpLFxuICAgICAgICAgIHJnYmEoMTUsIDIzLCA0MiwgMC43NCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldCBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1jYXJkIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktY2FyZCBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktY2FyZCBzdHJvbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDMwLCA0MSwgNTksIDAuOTIpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjI0KTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE3LCAyNCwgMzksIDAuOTYpLCByZ2JhKDE1LCAyMywgNDIsIDAuOTQpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDE0JSAwJSwgcmdiYSg5NiwgMTY1LCAyNTAsIDAuMTIpLCB0cmFuc3BhcmVudCA0MiUpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjU1cmVtIDEuMjVyZW0gcmdiYSgwLCAwLCAwLCAwLjI4KSxcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjEycmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMyk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wbGF5ZXItYmFkZ2UsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wbGF5ZXItYmFkZ2Uge1xuICAgICAgICBjb2xvcjogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjc4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc21hbGwge1xuICAgICAgICBjb2xvcjogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjYyKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC44OCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuOHJlbSByZ2JhKDAsIDAsIDAsIDAuMjgpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNyk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YmVmb3JlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjpiZWZvcmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjpiZWZvcmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjpiZWZvcmUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YmVmb3JlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmJlZm9yZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjpiZWZvcmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmJlZm9yZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YmVmb3JlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC45Mik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjg1cmVtIHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YWZ0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGU6OmFmdGVyLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YWZ0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjphZnRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjphZnRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjphZnRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjphZnRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YWZ0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmFmdGVyLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4yMik7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWJhY2spO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC44NXJlbSByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWVuZC10dXJuOmRpc2FibGVkLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1lbmQtdHVybjpkaXNhYmxlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWVuZC10dXJuOmRpc2FibGVkLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZW5kLXR1cm46ZGlzYWJsZWQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZW5kLXR1cm46ZGlzYWJsZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4xNik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC40Nik7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNDIpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlcixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjE4KTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE1LCAyMywgNDIsIDAuOTYpLCByZ2JhKDE3LCAyNCwgMzksIDAuOTYpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDglIDAlLCByZ2JhKDk2LCAxNjUsIDI1MCwgMC4xMiksIHRyYW5zcGFyZW50IDQwJSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMS41cmVtIDRyZW0gcmdiYSgwLCAwLCAwLCAwLjQyKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWRpYWxvZy1jbG9zZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWRpYWxvZy1jbG9zZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWRpYWxvZy1jbG9zZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWNsb3NlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1jbG9zZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWNsb3NlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXBvc2l0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXBvc2l0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1wb3NpdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcG9zaXRpb24sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1wb3NpdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2LFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LW5hdiBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1uYXYgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LW5hdiBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktbmF2IGJ1dHRvbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktbmF2IGJ1dHRvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMjIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuOTQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjhyZW0gcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIGJ1dHRvbi5pcy1zZWxlY3RlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLmlzLXNlbGVjdGVkLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLmlzLXNlbGVjdGVkLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLmlzLXNlbGVjdGVkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIGJ1dHRvbi5pcy1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg5NiwgMTY1LCAyNTAsIDAuMzgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjIyKTtcbiAgICAgICAgY29sb3I6IHJnYmEoMjE5LCAyMzQsIDI1NCwgMC45NCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy11c2UtYWJpbGl0eTpkaXNhYmxlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy11c2UtYWJpbGl0eTpkaXNhYmxlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctdXNlLWFiaWxpdHk6ZGlzYWJsZWQsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXVzZS1hYmlsaXR5OmRpc2FibGVkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctdXNlLWFiaWxpdHk6ZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDUxLCA2NSwgODUsIDAuNzgpO1xuICAgICAgICBjb2xvcjogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjQ4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMTYpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNDIpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMtaGVhZGVyIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLWhlYWRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMtaGVhZGVyIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcy1oZWFkZXIgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcy1oZWFkZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuODIpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIGhlYWRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBoZWFkZXIgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIGhlYWRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgaGVhZGVyIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgaGVhZGVyIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc3Ryb25nIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzMCwgNDEsIDU5LCAwLjkyKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyIGhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciBoZWFkZXIgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyIGhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXIgaGVhZGVyIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXIgaGVhZGVyIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgbGFiZWwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgbGFiZWwsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGxhYmVsLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBsYWJlbCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGxhYmVsIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC42OCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHVsLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgdWwsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgdWwsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgdWwsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHVsLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyBwLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSBwIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC44KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGlucHV0LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGlucHV0LFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBpbnB1dCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgaW5wdXQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBpbnB1dCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBzZWxlY3QsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgc2VsZWN0LFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBzZWxlY3QsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIHNlbGVjdCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIHNlbGVjdCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3csXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3csXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3csXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93LFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC43OCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3QsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3QsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0LFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0LFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUge1xuICAgICAgICBzY3JvbGxiYXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC41NCkgcmdiYSgxNSwgMjMsIDQyLCAwLjg2KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUtaWNvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlLWljb24sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUtaWNvbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZS1pY29uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZS1pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg5NiwgMTY1LCAyNTAsIDAuMTYpO1xuICAgICAgICBjb2xvcjogI2JmZGJmZTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTQ3LCAxOTcsIDI1MywgMC4yMik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjg2KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTUsIDIzLCA0MiwgMC44Nik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC41NCk7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zaGVsbCB7XG4gICAgICAgICAgcGFkZGluZzogMCAwIDEwLjRyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMge1xuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICByaWdodDogbWF4KDAuNnJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgICAgIGJvdHRvbTogY2FsYyhtYXgoMC43NXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKSArIDkuN3JlbSk7XG4gICAgICAgICAgei1pbmRleDogODA7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZW5kLXR1cm4ge1xuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICBib3R0b206IGNhbGMobWF4KDAuNzVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSkgKyA5LjdyZW0pO1xuICAgICAgICAgIGxlZnQ6IGNhbGMobWF4KDAuNnJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSkgKyA1Ljk1cmVtKTtcbiAgICAgICAgICB6LWluZGV4OiA4MDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAyLjE1cmVtO1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwLjdyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMgYnV0dG9uIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAyLjE1cmVtO1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwLjdyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhlYWRlcixcbiAgICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCxcbiAgICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXJfX3N1bW1hcnkge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogbWF4KDAuNXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogbWF4KDAuNXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhlYWRlcixcbiAgICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXJfX3N1bW1hcnksXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgICAgZ2FwOiAwLjM1cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAuMzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXR1cm4tYmFubmVyIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgICAgICAgIGdhcDogMC40NXJlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwLjU1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1vcHRpb25zLWJ1dHRvbiB7XG4gICAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktb3B0aW9ucy1tZW51IHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAwLjU1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zZXR1cC1wYW5lbCxcbiAgICAgICAgLmNocmlzdGlhbml0eS1yZXN1bHQtcGFuZWwge1xuICAgICAgICAgIGluc2V0OiAwLjU1cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAuN3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1ncmlkIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgNnJlbSkpO1xuICAgICAgICAgIGdhcDogMC40NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHtcbiAgICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzbWFsbCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyLWFjdGlvbnMge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19oZXJvIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fZmFuIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fZmFuIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgICAgd2lkdGg6IGNsYW1wKDUuMnJlbSwgMjJ2dywgNi40cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXNwbGFzaCB7XG4gICAgICAgICAgbWluLWhlaWdodDogbWluKDMwcmVtLCBjYWxjKDEwMGR2aCAtIDdyZW0pKTtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXgoMC42NXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogbWF4KDAuNjVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zdGFydCB7XG4gICAgICAgICAgbWluLWhlaWdodDogbWluKDMwcmVtLCBjYWxjKDEwMGR2aCAtIDdyZW0pKTtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHtcbiAgICAgICAgICBtaW4td2lkdGg6IDMuNjVyZW07XG4gICAgICAgICAgcGFkZGluZzogMCAwLjM1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHN0cm9uZyB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS10YWJsZSB7XG4gICAgICAgICAgZ2FwOiAwLjM1cmVtO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICBwYWRkaW5nOiAwLjNyZW0gMC4yNXJlbTtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSB7XG4gICAgICAgICAgLS1jaHJpc3RpYW5pdHktYmF0dGxlLWNhcmQtd2lkdGg6IG1pbig1LjJyZW0sIDEwMCUpO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgICBnYXA6IGNsYW1wKDAuMjVyZW0sIDEuNXZ3LCAwLjRyZW0pO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwLjI4cmVtO1xuICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktYmF0dGxlLXpvbmUgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIC5jaHJpc3RpYW5pdHktc2xvdCB7XG4gICAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA1LjJyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmOm5vdCguY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50KSB7XG4gICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIHotaW5kZXg6IDUyO1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgbWluLWhlaWdodDogOS41NXJlbTtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcGFkZGluZzpcbiAgICAgICAgICAgIDAuN3JlbSBtYXgoMC4zNXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpXG4gICAgICAgICAgICBtYXgoMC41NXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKVxuICAgICAgICAgICAgbWF4KDAuMzVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuICAgICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDIzOSwgMjQ2LCAyNTUsIDApLCByZ2JhKDIxOSwgMjM0LCAyNTQsIDAuOTYpIDE4JSwgcmdiYSgyMTksIDIzNCwgMjU0LCAwLjk4KSksXG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSAwJSwgcmdiYSgzNywgOTksIDIzNSwgMC4xNCksIHRyYW5zcGFyZW50IDU4JSk7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGY6bm90KC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZi0tb3Bwb25lbnQpIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4sXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZjpub3QoLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmLS1vcHBvbmVudCkgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcCB7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGY6bm90KC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZi0tb3Bwb25lbnQpIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciB7XG4gICAgICAgICAgdG9wOiAwLjE1cmVtO1xuICAgICAgICAgIHJpZ2h0OiBtYXgoMC41NXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmOm5vdCguY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50KSAuY2hyaXN0aWFuaXR5LWhhbmQtZmFuIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljg1cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC4yNXJlbSAxLjFyZW07XG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGY6bm90KC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZi0tb3Bwb25lbnQpIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQge1xuICAgICAgICAgIHdpZHRoOiBjbGFtcCg0LjM1cmVtLCAyMHZ3LCA1LjY1cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZi0tb3Bwb25lbnQge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDYuNjVyZW07XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjRyZW07XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuODVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCA1LjU1cmVtKSBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMCwgNS40NXJlbSk7XG4gICAgICAgICAgZ2FwOiBjbGFtcCgwLjM1cmVtLCAydncsIDAuNXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lIHtcbiAgICAgICAgICBnYXA6IDAuNDVyZW07XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDYuMTVyZW07XG4gICAgICAgICAgcGFkZGluZzogMC41OHJlbSAwLjQ2cmVtIDAuNXJlbTtcbiAgICAgICAgICBnYXA6IDAuMjRyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCB2YWwtY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmJlZm9yZSxcbiAgICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmFmdGVyLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWVtcHR5LWNhcmQtc2xvdCB7XG4gICAgICAgICAgd2lkdGg6IGNsYW1wKDNyZW0sIDE4dncsIDMuODVyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlIHtcbiAgICAgICAgICBoZWlnaHQ6IDYuOXJlbTtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiA2LjlyZW07XG4gICAgICAgICAgcGFkZGluZzogMC41MnJlbSAwLjQycmVtIDAuNDhyZW07XG4gICAgICAgICAgZ2FwOiAwLjI0cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1kcm9wLXRhcmdldCB7XG4gICAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA1LjhyZW0pO1xuICAgICAgICAgIGhlaWdodDogNi45cmVtO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgICAgbWF4LWhlaWdodDogNi45cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlIHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjpiZWZvcmUsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YWZ0ZXIge1xuICAgICAgICAgIHdpZHRoOiBjbGFtcCgyLjY1cmVtLCAxNXZ3LCAzLjM1cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQge1xuICAgICAgICAgIHdpZHRoOiBjbGFtcCg0LjJyZW0sIDIwdncsIDUuN3JlbSk7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkIHtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoNC41NXJlbSwgMjB2dywgNS43cmVtKTtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDVyZW0sIDUuOHJlbSkgbWlubWF4KDAsIDFmcik7XG4gICAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gICAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyIHtcbiAgICAgICAgICBnYXA6IDAuNnJlbTtcbiAgICAgICAgICBwYWRkaW5nOlxuICAgICAgICAgICAgbWF4KDAuNzJyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSlcbiAgICAgICAgICAgIG1heCgwLjcycmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSlcbiAgICAgICAgICAgIG1heCgwLjcycmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpXG4gICAgICAgICAgICBtYXgoMC43MnJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyIGhlYWRlciB7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciBoMiB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgbGFiZWwge1xuICAgICAgICAgIGdhcDogMC4xOHJlbTtcbiAgICAgICAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBpbnB1dCxcbiAgICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIHNlbGVjdCxcbiAgICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWVkaXRpb24tc3RyaXAgYnV0dG9uIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAyLjA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCA1LjU1cmVtKSk7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgZ2FwOiAwLjU1cmVtO1xuICAgICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IGF1dG87XG4gICAgICAgICAgcGFkZGluZzogMC40cmVtIDAgMC44cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQgLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24ge1xuICAgICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNS41NXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDcuMjVyZW07XG4gICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWZhbi0tb3Bwb25lbnQge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDUuNzVyZW07XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuN3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50IC5jaHJpc3RpYW5pdHktaGlkZGVuLWNhcmQtYnV0dG9uIHtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoMy4zNXJlbSwgMTV2dywgNC4yNXJlbSk7XG4gICAgICAgICAgbWFyZ2luLWlubGluZTogLTAuNzJyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDaHJpc3RpYW5pdHlHYW1lQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBib290U3RhcnRlZEF0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gIHByaXZhdGUgYm90VHVyblRpbWVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaW1wYWN0RXZlbnRTZXF1ZW5jZSA9IDA7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW1wYWN0VGltZXJzID0gbmV3IFNldDxudW1iZXI+KCk7XG4gIHByaXZhdGUgY29tYmF0UmVzb2x1dGlvblRpbWVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgY29tYmF0Q2xlYXJUaW1lcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGNvbWJhdFRyYWlsQ2xlYXJUaW1lcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBnYW1lID0gc2lnbmFsPENocmlzdGlhbml0eUdhbWVTdGF0ZT4oc3RydWN0dXJlZENsb25lKFNUQVJUSU5HX0dBTUUpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNjcmVlbiA9IHNpZ25hbDxDaHJpc3RpYW5pdHlTY3JlZW4+KCdzcGxhc2gnKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHR1dG9yaWFsUGhhc2UgPSBzaWduYWw8Q2hyaXN0aWFuaXR5VHV0b3JpYWxQaGFzZT4oJ2NvaW4nKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHR1dG9yaWFsU2V0dXAgPSBzaWduYWw8Q2hyaXN0aWFuaXR5VHV0b3JpYWxTZXR1cCB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvd09wdGlvbnMgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2F0YWxvZ0xvYWRTdGF0ZSA9IHNpZ25hbDxDaHJpc3RpYW5pdHlDYXRhbG9nTG9hZFN0YXRlPignbG9hZGluZycpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRIYW5kQ2FyZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkQXR0YWNrZXIgPSBzaWduYWw8Q2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkUHJldmlldyA9IHNpZ25hbDxDaHJpc3RpYW5pdHlDYXJkUHJldmlldyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRJbmZvID0gc2lnbmFsPENocmlzdGlhbml0eUluZm9QYW5lbCB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJldmlld1RpbHQgPSBzaWduYWw8Q2hyaXN0aWFuaXR5UHJldmlld1RpbHQ+KENIUklTVElBTklUWV9QUkVWSUVXX05FVVRSQUxfVElMVCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXggPSBzaWduYWwoMCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBwcmV2aWV3U2xpZGVEaXJlY3Rpb24gPSBzaWduYWw8MCB8IC0xIHwgMT4oMCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBob3ZlcmVkSGFuZEluZGV4ID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZHJhZ2dpbmdDYXJkSWQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkcmFnZ2luZ0F0dGFja2VySW5zdGFuY2VJZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhpc3RvcnlQdWxzZSA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93SGlzdG9yeSA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93R2FsbGVyeSA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBvZmZlcmluZ3NTZWF0ID0gc2lnbmFsPENocmlzdGlhbml0eVNlYXQgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGltcGFjdEV2ZW50cyA9IHNpZ25hbDxDaHJpc3RpYW5pdHlJbXBhY3RFdmVudFtdPihbXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb21iYXRBbmltYXRpb24gPSBzaWduYWw8Q2hyaXN0aWFuaXR5Q29tYmF0QW5pbWF0aW9uIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb21iYXRUcmFpbCA9IHNpZ25hbDxDaHJpc3RpYW5pdHlDb21iYXRUcmFpbCB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FyZENhdGFsb2cgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24+PihTVEFSVEVSX0NBUkRTKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFsbENhdGFsb2dDYXJkcyA9IHNpZ25hbDxDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbltdPihPYmplY3QudmFsdWVzKFNUQVJURVJfQ0FSRFMpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhdGFsb2dMb2FkZWQgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2FsbGVyeVNlYXJjaCA9IHNpZ25hbCgnJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBnYWxsZXJ5VHlwZSA9IHNpZ25hbDxDaHJpc3RpYW5pdHlHYWxsZXJ5VHlwZUZpbHRlcj4oJ2FsbCcpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5Ecm9wT25CYXR0bGVTbG90ID0gKGRyYWc6IENka0RyYWc8c3RyaW5nPik6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGRyYWcuZGF0YSk7XG4gICAgcmV0dXJuIGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicgJiYgdGhpcy5jYW5QbGF5KGNhcmQpO1xuICB9O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5Ecm9wT25PZmZlcmluZ3MgPSAoZHJhZzogQ2RrRHJhZzxzdHJpbmc+KTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oZHJhZy5kYXRhKTtcbiAgICByZXR1cm4gY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnICYmIHRoaXMuY2FuUGxheShjYXJkKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuRHJvcE9uUGxhY2UgPSAoZHJhZzogQ2RrRHJhZzxzdHJpbmc+KTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oZHJhZy5kYXRhKTtcbiAgICByZXR1cm4gY2FyZC50eXBlID09PSAncGxhY2UnICYmIHRoaXMuY2FuUGxheShjYXJkKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuRHJvcE9uT3Bwb25lbnRDaGFyYWN0ZXIgPSAoZHJhZzogQ2RrRHJhZzxzdHJpbmc+KTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEF0dGFja2VySW5zdGFuY2UoZHJhZy5kYXRhKSAmJiB0aGlzLm9wcG9uZW50KCkuYmF0dGxlWm9uZS5sZW5ndGggPiAwO1xuICB9O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5Ecm9wT25PcHBvbmVudExlYWRlciA9IChkcmFnOiBDZGtEcmFnPHN0cmluZz4pOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkQXR0YWNrZXJJbnN0YW5jZShkcmFnLmRhdGEpICYmICF0aGlzLmhhc09wcG9uZW50R3VhcmRzKCk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsYXllciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZ2FtZSgpLnBsYXllcnMuUDEpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3Bwb25lbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdhbWUoKS5wbGF5ZXJzLlAyKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGN1cnJlbnRQbGF5ZXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdhbWUoKS5wbGF5ZXJzW3RoaXMuZ2FtZSgpLnR1cm5Pd25lcl0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNPd25UdXJuID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5nYW1lKCkuc3RhdHVzID09PSAnaW5fcHJvZ3Jlc3MnICYmIHRoaXMuZ2FtZSgpLnR1cm5Pd25lciA9PT0gJ1AxJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0dXJuQmFubmVyVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZ2FtZSgpLnN0YXR1cyA9PT0gJ2ZpbmlzaGVkJykgcmV0dXJuIHRoaXMucmVzdWx0VGl0bGUoKTtcbiAgICByZXR1cm4gdGhpcy5pc093blR1cm4oKSA/IHRoaXMudCgnY2hyaXN0aWFuaXR5WW91clR1cm4nKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5Uml2YWxUdXJuJyk7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHVybkJhbm5lckJvZHkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZ2FtZSgpLnN0YXR1cyA9PT0gJ2ZpbmlzaGVkJykgcmV0dXJuIHRoaXMucmVzdWx0Qm9keSgpO1xuICAgIHJldHVybiB0aGlzLmlzT3duVHVybigpID8gdGhpcy50KCdjaHJpc3RpYW5pdHlZb3VyVHVybkJvZHknKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5Uml2YWxUdXJuQm9keScpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlc3VsdFRpdGxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHdpbm5lciA9IHRoaXMud2lubmVyU2VhdCgpO1xuICAgIGlmICghd2lubmVyKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlHYW1lRmluaXNoZWQnKTtcbiAgICByZXR1cm4gd2lubmVyID09PSAnUDEnID8gdGhpcy50KCdjaHJpc3RpYW5pdHlWaWN0b3J5VGl0bGUnKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5RGVmZWF0VGl0bGUnKTtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSByZXN1bHRCb2R5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHdpbm5lciA9IHRoaXMud2lubmVyU2VhdCgpO1xuICAgIGlmICghd2lubmVyKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlHYW1lRmluaXNoZWRCb2R5Jyk7XG4gICAgcmV0dXJuIHdpbm5lciA9PT0gJ1AxJyA/IHRoaXMudCgnY2hyaXN0aWFuaXR5VmljdG9yeUJvZHknKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5RGVmZWF0Qm9keScpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNldHVwVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2V0dXAgPSB0aGlzLnR1dG9yaWFsU2V0dXAoKTtcbiAgICBpZiAoIXNldHVwKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlQcmVwYXJpbmdNYXRjaCcpO1xuICAgIGlmICh0aGlzLnR1dG9yaWFsUGhhc2UoKSA9PT0gJ2NvaW4nKSB7XG4gICAgICByZXR1cm4gc2V0dXAuY29pbldpbm5lciA9PT0gJ1AxJyA/IHRoaXMudCgnY2hyaXN0aWFuaXR5Q29pbllvdVdvbicpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlDb2luUml2YWxXb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHNldHVwLmxlYWRlclBpY2tlciA9PT0gJ1AxJyA/IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hvb3NlTGVhZGVyVGl0bGUnKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5Uml2YWxDaG9vc2VzTGVhZGVyVGl0bGUnKTtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZXR1cEJvZHkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2V0dXAgPSB0aGlzLnR1dG9yaWFsU2V0dXAoKTtcbiAgICBpZiAoIXNldHVwKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlQcmVwYXJpbmdNYXRjaEJvZHknKTtcbiAgICBjb25zdCBmaXJzdFBsYXllck5hbWUgPSBzZXR1cC5maXJzdFBsYXllciA9PT0gJ1AxJyA/IHRoaXMucGxheWVyKCkuZGlzcGxheU5hbWUgOiB0aGlzLm9wcG9uZW50KCkuZGlzcGxheU5hbWU7XG4gICAgaWYgKHRoaXMudHV0b3JpYWxQaGFzZSgpID09PSAnY29pbicpIHtcbiAgICAgIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eUNvaW5SZXN1bHRCb2R5JykucmVwbGFjZSgne3BsYXllcn0nLCBmaXJzdFBsYXllck5hbWUpO1xuICAgIH1cbiAgICBpZiAoc2V0dXAubGVhZGVyUGlja2VyID09PSAnUDEnKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlDaG9vc2VMZWFkZXJCb2R5Jyk7XG4gICAgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5Uml2YWxDaG9vc2VzTGVhZGVyQm9keScpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpbm5lclNlYXQgPSBjb21wdXRlZDxDaHJpc3RpYW5pdHlTZWF0IHwgbnVsbD4oKCkgPT4ge1xuICAgIGNvbnN0IGdhbWUgPSB0aGlzLmdhbWUoKTtcbiAgICBpZiAoZ2FtZS5zdGF0dXMgIT09ICdmaW5pc2hlZCcpIHJldHVybiBudWxsO1xuICAgIGlmIChnYW1lLnBsYXllcnMuUDEubGVhZGVySHAgPD0gMCkgcmV0dXJuICdQMic7XG4gICAgaWYgKGdhbWUucGxheWVycy5QMi5sZWFkZXJIcCA8PSAwKSByZXR1cm4gJ1AxJztcbiAgICByZXR1cm4gZ2FtZS5wbGF5ZXJzLlAxLmxlYWRlckhwID49IGdhbWUucGxheWVycy5QMi5sZWFkZXJIcCA/ICdQMScgOiAnUDInO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc09wcG9uZW50R3VhcmRzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHBvbmVudCgpLmJhdHRsZVpvbmUubGVuZ3RoID4gMCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBvcHBvbmVudEhhbmRDb3VudCA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3Bwb25lbnQoKS5oYW5kQ291bnQgPz8gdGhpcy5vcHBvbmVudCgpLmhhbmQ/Lmxlbmd0aCA/PyAwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGdhbGxlcnlDYXJkcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZ2FsbGVyeVNlYXJjaCgpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpO1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmdhbGxlcnlUeXBlKCk7XG4gICAgcmV0dXJuIHRoaXMuYWxsQ2F0YWxvZ0NhcmRzKClcbiAgICAgIC5maWx0ZXIoY2FyZCA9PiB0aGlzLmlzQ2xhc3NpY0dhbGxlcnlDYXJkKGNhcmQpKVxuICAgICAgLmZpbHRlcihjYXJkID0+IHR5cGUgPT09ICdhbGwnIHx8IGNhcmQudHlwZSA9PT0gdHlwZSlcbiAgICAgIC5maWx0ZXIoY2FyZCA9PiB7XG4gICAgICAgIGlmICghcXVlcnkpIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCB0ZXh0ID0gdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoY2FyZCk7XG4gICAgICAgIGNvbnN0IGhheXN0YWNrID0gW3RleHQubmFtZSwgY2FyZC50eXBlLCB0ZXh0LnNjcmlwdHVyZSwgdGV4dC5hYmlsaXR5TmFtZSwgdGV4dC5hYmlsaXR5VGV4dCwgdGV4dC52ZXJzZVRleHRdXG4gICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgIC5ub3JtYWxpemUoJ05GRCcpXG4gICAgICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcbiAgICAgICAgcmV0dXJuIGhheXN0YWNrLmluY2x1ZGVzKHF1ZXJ5KTtcbiAgICAgIH0pXG4gICAgICAuc29ydCgobGVmdCwgcmlnaHQpID0+IHRoaXMuY2FyZFNvcnRLZXkobGVmdCkubG9jYWxlQ29tcGFyZSh0aGlzLmNhcmRTb3J0S2V5KHJpZ2h0KSwgJ2VzJykpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGdhbGxlcnlFZGl0aW9uTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY291bnQgPSB0aGlzLmFsbENhdGFsb2dDYXJkcygpLmZpbHRlcihjYXJkID0+IHRoaXMuaXNDbGFzc2ljR2FsbGVyeUNhcmQoY2FyZCkpLmxlbmd0aDtcbiAgICByZXR1cm4gYCR7dGhpcy50KCdjaHJpc3RpYW5pdHlHZW5lc2lzRWRpdGlvbicpfSDCtyAke2NvdW50fSAke3RoaXMudCgnY2hyaXN0aWFuaXR5Q2FyZHMnKX1gO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGdhbGxlcnlFZGl0aW9uSWNvbiA9IGNvbXB1dGVkKCgpID0+IEdFTkVTSVNfSUNPTl9VUkwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2FsbGVyeVR5cGVPcHRpb25zID0gY29tcHV0ZWQ8QXJyYXk8eyB2YWx1ZTogQ2hyaXN0aWFuaXR5R2FsbGVyeVR5cGVGaWx0ZXI7IGxhYmVsOiBzdHJpbmcgfT4+KCgpID0+IFtcbiAgICB7IHZhbHVlOiAnYWxsJywgbGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5QWxsQ2FyZHMnKSB9LFxuICAgIHsgdmFsdWU6ICdsZWFkZXInLCBsYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJykgfSxcbiAgICB7IHZhbHVlOiAnb2ZmZXJpbmcnLCBsYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSB9LFxuICAgIHsgdmFsdWU6ICdjaGFyYWN0ZXInLCBsYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJDYXJkJykgfSxcbiAgICB7IHZhbHVlOiAnd2lzZG9tJywgbGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5V2lzZG9tQ2FyZCcpIH0sXG4gICAgeyB2YWx1ZTogJ2FjdGlvbicsIGxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eUFjdGlvbkNhcmQnKSB9LFxuICAgIHsgdmFsdWU6ICd0b29sJywgbGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5VG9vbENhcmQnKSB9LFxuICAgIHsgdmFsdWU6ICdwbGFjZScsIGxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYWNlQ2FyZCcpIH0sXG4gICAgeyB2YWx1ZTogJ2V2ZW50JywgbGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5RXZlbnRDYXJkJykgfSxcbiAgXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBoYXNNb2RhbE92ZXJsYXkgPSBjb21wdXRlZCgoKSA9PlxuICAgICEhdGhpcy5zZWxlY3RlZFByZXZpZXcoKVxuICAgIHx8ICEhdGhpcy5zZWxlY3RlZEluZm8oKVxuICAgIHx8IHRoaXMuc2hvd0hpc3RvcnkoKVxuICAgIHx8IHRoaXMuc2hvd0dhbGxlcnkoKVxuICAgIHx8ICEhdGhpcy5vZmZlcmluZ3NTZWF0KClcbiAgKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByZXZpZXdDYXJvdXNlbEl0ZW1zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jdXJyZW50UHJldmlld0Nhcm91c2VsSXRlbXMoKSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5OYXZpZ2F0ZVByZXZpZXcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByZXZpZXdDYXJvdXNlbEl0ZW1zKCkubGVuZ3RoID4gMSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBwcmV2aWV3UG9zaXRpb25MYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMucHJldmlld0Nhcm91c2VsSXRlbXMoKTtcbiAgICBpZiAoaXRlbXMubGVuZ3RoIDwgMikgcmV0dXJuICcnO1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jdXJyZW50UHJldmlld0Nhcm91c2VsSW5kZXgoaXRlbXMpO1xuICAgIGlmIChpbmRleCA8IDApIHJldHVybiAnJztcbiAgICByZXR1cm4gYCR7aW5kZXggKyAxfS8ke2l0ZW1zLmxlbmd0aH1gO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByZXZpZXdBYmlsaXRpZXMgPSBjb21wdXRlZDxDaHJpc3RpYW5pdHlQcmV2aWV3QWJpbGl0eVtdPigoKSA9PiB7XG4gICAgY29uc3QgcHJldmlldyA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3Q2FyZCgpO1xuICAgIGlmICghcHJldmlldyB8fCAhY2FyZCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKTtcbiAgICBjb25zdCBhYmlsaXRpZXMgPSB0ZXh0LmFiaWxpdGllcz8ubGVuZ3RoXG4gICAgICA/IHRleHQuYWJpbGl0aWVzLm1hcCgoYWJpbGl0eSwgaW5kZXgpID0+ICh7XG4gICAgICAgIGluZGV4LFxuICAgICAgICB0aXRsZTogYWJpbGl0eS5uYW1lID8/IHRoaXMudCgnY2hyaXN0aWFuaXR5QWJpbGl0eScpLFxuICAgICAgICBib2R5OiBhYmlsaXR5LnRleHQgPz8gdGhpcy5kZWZhdWx0Q2FyZEJvZHkoY2FyZC50eXBlKSxcbiAgICAgICAgY2FuVXNlOiB0aGlzLmNhblVzZVByZXZpZXdBYmlsaXR5KGluZGV4KSxcbiAgICAgIH0pKVxuICAgICAgOiB0ZXh0LmFiaWxpdHlOYW1lIHx8IHRleHQuYWJpbGl0eVRleHRcbiAgICAgICAgPyBbe1xuICAgICAgICAgIGluZGV4OiAwLFxuICAgICAgICAgIHRpdGxlOiB0ZXh0LmFiaWxpdHlOYW1lID8/IHRoaXMudCgnY2hyaXN0aWFuaXR5QWJpbGl0eScpLFxuICAgICAgICAgIGJvZHk6IHRleHQuYWJpbGl0eVRleHQgPz8gdGhpcy5kZWZhdWx0Q2FyZEJvZHkoY2FyZC50eXBlKSxcbiAgICAgICAgICBjYW5Vc2U6IHRoaXMuY2FuVXNlUHJldmlld0FiaWxpdHkoMCksXG4gICAgICAgIH1dXG4gICAgICAgIDogW107XG4gICAgcmV0dXJuIGFiaWxpdGllcztcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93UHJldmlld0FiaWxpdHlUYWJzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGFiaWxpdGllcyA9IHRoaXMucHJldmlld0FiaWxpdGllcygpO1xuICAgIHJldHVybiBhYmlsaXRpZXMubGVuZ3RoID4gMSB8fCAoYWJpbGl0aWVzWzBdPy50aXRsZSA/PyAnJykgIT09IHRoaXMudCgnY2hyaXN0aWFuaXR5QWJpbGl0eScpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dQcmV2aWV3QWJpbGl0aWVzID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldygpPy5zb3VyY2UgIT09ICdnYWxsZXJ5JyAmJiB0aGlzLnByZXZpZXdBYmlsaXRpZXMoKS5sZW5ndGggPiAwXG4gICk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5OYXZpZ2F0ZVByZXZpZXdBYmlsaXRpZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByZXZpZXdBYmlsaXRpZXMoKS5sZW5ndGggPiAxKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkUHJldmlld0FiaWxpdHlQb3NpdGlvbkxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGFiaWxpdGllcyA9IHRoaXMucHJldmlld0FiaWxpdGllcygpO1xuICAgIGlmIChhYmlsaXRpZXMubGVuZ3RoIDwgMikgcmV0dXJuICcnO1xuICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSBhYmlsaXRpZXMuZmluZEluZGV4KGFiaWxpdHkgPT4gYWJpbGl0eS5pbmRleCA9PT0gdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXgoKSk7XG4gICAgcmV0dXJuIGAke3NlbGVjdGVkSW5kZXggPj0gMCA/IHNlbGVjdGVkSW5kZXggKyAxIDogMX0vJHthYmlsaXRpZXMubGVuZ3RofWA7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBhYmlsaXRpZXMgPSB0aGlzLnByZXZpZXdBYmlsaXRpZXMoKTtcbiAgICBpZiAoIWFiaWxpdGllcy5sZW5ndGgpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBhYmlsaXRpZXMuZmluZChhYmlsaXR5ID0+IGFiaWxpdHkuaW5kZXggPT09IHRoaXMuc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eUluZGV4KCkpID8/IGFiaWxpdGllc1swXTtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb21iYXRDYWxsb3V0ID0gY29tcHV0ZWQ8TWluaUdhbWVDYWxsb3V0TWV0YWRhdGEgfCBudWxsPigoKSA9PiB7XG4gICAgY29uc3QgYW5pbWF0aW9uID0gdGhpcy5jb21iYXRBbmltYXRpb24oKTtcbiAgICBpZiAoIWFuaW1hdGlvbikgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgYXR0YWNrZXIgPSB0aGlzLmNvbWJhdEFuaW1hdGlvbkF0dGFja2VyKGFuaW1hdGlvbik7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5jb21iYXRBbmltYXRpb25UYXJnZXRMYWJlbChhbmltYXRpb24pO1xuICAgIGNvbnN0IHRpdGxlID0gYXR0YWNrZXIgPyBhdHRhY2tlci5uYW1lIDogdGhpcy50KCdjaHJpc3RpYW5pdHlBdHRhY2snKTtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGUsXG4gICAgICBib2R5OiBgJHt0aGlzLnQoJ2NocmlzdGlhbml0eUF0dGFjaycpfSAke3RhcmdldH1gLFxuICAgICAgaW1wYWN0OiBhbmltYXRpb24udGFyZ2V0ID09PSAnbGVhZGVyJyA/IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJDYXJkJyksXG4gICAgICBpY29uOiAnPicsXG4gICAgICB0b25lUmdiOiBhbmltYXRpb24udGFyZ2V0ID09PSAnbGVhZGVyJyA/ICcyNTAsIDIwNCwgMjEnIDogJzk2LCAxNjUsIDI1MCcsXG4gICAgICBkdXJhdGlvbk1zOiA5ODAsXG4gICAgICB2YXJpYW50OiBhbmltYXRpb24udGFyZ2V0ID09PSAnbGVhZGVyJyA/ICd3YXJuaW5nJyA6ICdjYXB0dXJlJyxcbiAgICB9O1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNwbGFzaFN0YXR1c1RleHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmNhdGFsb2dMb2FkU3RhdGUoKTtcbiAgICBpZiAoc3RhdGUgPT09ICdyZWFkeScpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVNwbGFzaFJlYWR5Jyk7XG4gICAgaWYgKHN0YXRlID09PSAnZmFsbGJhY2snKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlTcGxhc2hGYWxsYmFjaycpO1xuICAgIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVNwbGFzaExvYWRpbmcnKTtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzdGFydEZlYXR1cmVkQ2FyZHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY2FyZHMgPSB0aGlzLmFsbENhdGFsb2dDYXJkcygpO1xuICAgIGNvbnN0IHByZWZlcnJlZCA9IFsnR0VOLTAwOScsICdHRU4tMDEzJywgJ0dFTi0wMzInXVxuICAgICAgLm1hcChpZCA9PiB0aGlzLmNhcmRDYXRhbG9nKClbaWRdKVxuICAgICAgLmZpbHRlcigoY2FyZCk6IGNhcmQgaXMgQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24gPT4gISFjYXJkKTtcbiAgICByZXR1cm4gKHByZWZlcnJlZC5sZW5ndGggPyBwcmVmZXJyZWQgOiBjYXJkcy5zbGljZSgwLCAzKSkuc2xpY2UoMCwgMyk7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZnV0dXJlTW9kZXMgPSBjb21wdXRlZCgoKSA9PiBbXG4gICAgeyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlTb2xvQm90TW9kZScpLCBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eVNvbG9Cb3RNb2RlQm9keScpIH0sXG4gICAgeyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlUd29QbGF5ZXJNb2RlJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5VHdvUGxheWVyTW9kZUJvZHknKSB9LFxuICAgIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5T25lRGV2aWNlTW9kZScpLCBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eU9uZURldmljZU1vZGVCb2R5JykgfSxcbiAgICB7IHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eVNwZWN0YXRvck1vZGUnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlTcGVjdGF0b3JNb2RlQm9keScpIH0sXG4gIF0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRDYXJkRGVmaW5pdGlvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZCgpO1xuICAgIHJldHVybiBzZWxlY3RlZCA/IHRoaXMuY2FyZERlZmluaXRpb24oc2VsZWN0ZWQpIDogbnVsbDtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZFByZXZpZXdDYXJkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNhcmRJZCA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk/LmNhcmRJZDtcbiAgICByZXR1cm4gY2FyZElkID8gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpIDogbnVsbDtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZFByZXZpZXdSZW5kZXJDYXJkID0gY29tcHV0ZWQ8Q2hyaXN0aWFuaXR5Q2FyZFJlbmRlck1vZGVsIHwgbnVsbD4oKCkgPT4ge1xuICAgIGNvbnN0IHByZXZpZXcgPSB0aGlzLnNlbGVjdGVkUHJldmlldygpO1xuICAgIGlmICghcHJldmlldykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3Q2FyZCgpO1xuICAgIGlmIChjYXJkKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9uVG9SZW5kZXJDYXJkKGNhcmQsIHtcbiAgICAgICAgc3RhdHVzVGV4dDogcHJldmlldy5ib2R5LFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChwcmV2aWV3LmV5ZWJyb3cgPT09IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpKSB7XG4gICAgICBjb25zdCBbY3VycmVudEhwLCBtYXhIcF0gPSBwcmV2aWV3Lm1ldGEuc3BsaXQoJy8nKS5tYXAodmFsdWUgPT4gTnVtYmVyKHZhbHVlKSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogYGxlYWRlci0ke3ByZXZpZXcudGl0bGUudG9Mb3dlckNhc2UoKX1gLFxuICAgICAgICBuYW1lOiBwcmV2aWV3LnRpdGxlLFxuICAgICAgICB0eXBlOiAnbGVhZGVyJyxcbiAgICAgICAgdHlwZUxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSxcbiAgICAgICAgY3VycmVudEhwOiBOdW1iZXIuaXNGaW5pdGUoY3VycmVudEhwKSA/IGN1cnJlbnRIcCA6IHVuZGVmaW5lZCxcbiAgICAgICAgbWF4SHA6IE51bWJlci5pc0Zpbml0ZShtYXhIcCkgPyBtYXhIcCA6IHVuZGVmaW5lZCxcbiAgICAgICAgbGlmZTogTnVtYmVyLmlzRmluaXRlKGN1cnJlbnRIcCkgPyBjdXJyZW50SHAgOiB1bmRlZmluZWQsXG4gICAgICAgIGFiaWxpdHlOYW1lOiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSxcbiAgICAgICAgYWJpbGl0eVRleHQ6IHByZXZpZXcuYm9keSxcbiAgICAgICAgdmVyc2VUZXh0OiBwcmV2aWV3LmJvZHksXG4gICAgICAgIGVkaXRpb246ICdNVlAnLFxuICAgICAgICBjb2xsZWN0b3JOdW1iZXI6ICdMSURFUicsXG4gICAgICAgIHllYXI6ICcyMDI2JyxcbiAgICAgICAgYXV0aG9yOiAnTVZQJyxcbiAgICAgICAgcmFyaXR5OiAnbGVnZW5kYXJ5JyxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpZDogYHByZXZpZXctJHtwcmV2aWV3LnRpdGxlLnRvTG93ZXJDYXNlKCl9YCxcbiAgICAgIG5hbWU6IHByZXZpZXcudGl0bGUsXG4gICAgICB0eXBlOiB0aGlzLnByZXZpZXdSZW5kZXJUeXBlKHByZXZpZXcuZXllYnJvdyksXG4gICAgICB0eXBlTGFiZWw6IHByZXZpZXcuZXllYnJvdyxcbiAgICAgIGFiaWxpdHlOYW1lOiBwcmV2aWV3LmV5ZWJyb3csXG4gICAgICBhYmlsaXR5VGV4dDogcHJldmlldy5ib2R5LFxuICAgICAgdmVyc2VUZXh0OiBwcmV2aWV3LmJvZHksXG4gICAgICBlZGl0aW9uOiAnTVZQJyxcbiAgICAgIGNvbGxlY3Rvck51bWJlcjogcHJldmlldy5leWVicm93LFxuICAgICAgeWVhcjogJzIwMjYnLFxuICAgICAgYXV0aG9yOiAnTVZQJyxcbiAgICAgIHJhcml0eTogJ25vcm1hbCcsXG4gICAgICBzdGF0dXNUZXh0OiBwcmV2aWV3Lm1ldGEsXG4gICAgfTtcbiAgfSk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFByZXZpZXdOZWlnaGJvclJlbmRlckNhcmQoZGlyZWN0aW9uOiAtMSB8IDEpOiBDaHJpc3RpYW5pdHlDYXJkUmVuZGVyTW9kZWwgfCBudWxsIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMucHJldmlld0Nhcm91c2VsSXRlbXMoKTtcbiAgICBpZiAoaXRlbXMubGVuZ3RoIDwgMikgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5jdXJyZW50UHJldmlld0Nhcm91c2VsSW5kZXgoaXRlbXMpO1xuICAgIGlmIChjdXJyZW50SW5kZXggPCAwKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBuZXh0SW5kZXggPSAoY3VycmVudEluZGV4ICsgZGlyZWN0aW9uICsgaXRlbXMubGVuZ3RoKSAlIGl0ZW1zLmxlbmd0aDtcbiAgICBjb25zdCBpdGVtID0gaXRlbXNbbmV4dEluZGV4XTtcbiAgICBpZiAoaXRlbS5raW5kID09PSAnaGlzdG9yeScpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmluaXRpb25Ub1JlbmRlckNhcmQodGhpcy5jYXJkRGVmaW5pdGlvbihpdGVtLmNhcmRJZCksIHsgc3RhdHVzVGV4dDogdGhpcy50KCdjaHJpc3RpYW5pdHlIaXN0b3J5JykgfSk7XG4gICAgfVxuICAgIGlmIChpdGVtLmtpbmQgPT09ICdnYWxsZXJ5Jykge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvblRvUmVuZGVyQ2FyZCh0aGlzLmNhcmREZWZpbml0aW9uKGl0ZW0uY2FyZElkKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm9mZmVyaW5nUmVuZGVyQ2FyZChpdGVtLm9mZmVyaW5nKTtcbiAgfVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJldmlld1J1bGUgPSBjb21wdXRlZDxDaHJpc3RpYW5pdHlQcmV2aWV3UnVsZSB8IG51bGw+KCgpID0+IHtcbiAgICBjb25zdCBwcmV2aWV3ID0gdGhpcy5zZWxlY3RlZFByZXZpZXcoKTtcbiAgICBpZiAoIXByZXZpZXcpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLnNlbGVjdGVkUHJldmlld0NhcmQoKTtcbiAgICBpZiAoY2FyZD8udHlwZSA9PT0gJ29mZmVyaW5nJykge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdDYXJkJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdSdWxlQm9keScpIH07XG4gICAgfVxuICAgIGlmIChjYXJkPy50eXBlID09PSAnY2hhcmFjdGVyJykge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyQ2FyZCcpLCBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlclJ1bGVCb2R5JykgfTtcbiAgICB9XG4gICAgaWYgKGNhcmQ/LnR5cGUgPT09ICd3aXNkb20nKSB7XG4gICAgICByZXR1cm4geyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlXaXNkb21DYXJkJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5V2lzZG9tUnVsZUJvZHknKSB9O1xuICAgIH1cbiAgICBpZiAoY2FyZD8udHlwZSA9PT0gJ2FjdGlvbicpIHtcbiAgICAgIHJldHVybiB7IHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eUFjdGlvbkNhcmQnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlBY3Rpb25SdWxlQm9keScpIH07XG4gICAgfVxuICAgIGlmIChjYXJkPy50eXBlID09PSAndG9vbCcpIHtcbiAgICAgIHJldHVybiB7IHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eVRvb2xDYXJkJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5VG9vbFJ1bGVCb2R5JykgfTtcbiAgICB9XG4gICAgaWYgKGNhcmQ/LnR5cGUgPT09ICdwbGFjZScpIHtcbiAgICAgIHJldHVybiB7IHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYWNlQ2FyZCcpLCBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYWNlUnVsZUJvZHknKSB9O1xuICAgIH1cbiAgICBpZiAoY2FyZD8udHlwZSA9PT0gJ2V2ZW50Jykge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5RXZlbnRDYXJkJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5RXZlbnRSdWxlQm9keScpIH07XG4gICAgfVxuICAgIGlmIChjYXJkPy50eXBlID09PSAnbGVhZGVyJykge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLCBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlclJ1bGVCb2R5JykgfTtcbiAgICB9XG4gICAgaWYgKHByZXZpZXcuZXllYnJvdyA9PT0gdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJykpIHtcbiAgICAgIHJldHVybiB7IHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJSdWxlQm9keScpIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0YXR1c1RleHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMudHV0b3JpYWxQaGFzZSgpID09PSAnY29pbicgfHwgdGhpcy50dXRvcmlhbFBoYXNlKCkgPT09ICdsZWFkZXJfcGljaycpIHtcbiAgICAgIHJldHVybiB0aGlzLnNldHVwVGl0bGUoKTtcbiAgICB9XG4gICAgY29uc3Qgd2lubmVyID0gdGhpcy53aW5uZXJTZWF0KCk7XG4gICAgaWYgKHdpbm5lcikge1xuICAgICAgcmV0dXJuIHdpbm5lciA9PT0gJ1AxJyA/IHRoaXMudCgnY2hyaXN0aWFuaXR5WW91V2luJykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eU9wcG9uZW50V2lucycpO1xuICAgIH1cbiAgICBjb25zdCBhdHRhY2tlciA9IHRoaXMuc2VsZWN0ZWRBdHRhY2tlcigpO1xuICAgIGNvbnN0IGhhbmRDYXJkID0gdGhpcy5zZWxlY3RlZENhcmREZWZpbml0aW9uKCk7XG4gICAgaWYgKCF0aGlzLmlzT3duVHVybigpKSB7XG4gICAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlXYWl0VHVybicpO1xuICAgIH1cbiAgICBpZiAoYXR0YWNrZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmhhc09wcG9uZW50R3VhcmRzKCkgPyB0aGlzLnQoJ2NocmlzdGlhbml0eUNob29zZUNoYXJhY3RlclRhcmdldCcpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlDaG9vc2VUYXJnZXQnKTtcbiAgICB9XG4gICAgaWYgKGhhbmRDYXJkKSB7XG4gICAgICBpZiAoIXRoaXMuY2FuUGxheShoYW5kQ2FyZCkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5TmVlZE9mZmVyaW5ncycpO1xuICAgICAgfVxuICAgICAgaWYgKGhhbmRDYXJkLnR5cGUgPT09ICdwbGFjZScpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hvb3NlUGxhY2VTbG90Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFuZENhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyA/IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VPZmZlcmluZycpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlDaG9vc2VTbG90Jyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eUNob29zZUNhcmQnKTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoJ01pbmlHYW1lcycsIE1JTklfR0FNRVNfSTE4Tik7XG4gICAgZWZmZWN0KChvbkNsZWFudXApID0+IHtcbiAgICAgIGlmICghdGhpcy5oYXNNb2RhbE92ZXJsYXkoKSkgcmV0dXJuO1xuICAgICAgY29uc3QgcHJldmlvdXNPdmVyZmxvdyA9IHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdztcbiAgICAgIGNvbnN0IHByZXZpb3VzT3ZlcnNjcm9sbCA9IHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3I7XG4gICAgICBjb25zdCBwcmV2aW91c1Bvc2l0aW9uID0gdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLnBvc2l0aW9uO1xuICAgICAgY29uc3QgcHJldmlvdXNUb3AgPSB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUudG9wO1xuICAgICAgY29uc3QgcHJldmlvdXNXaWR0aCA9IHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aDtcbiAgICAgIGNvbnN0IHNjcm9sbFkgPSB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgIGNvbnN0IHNjcm9sbEhvc3QgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcubWluaS1nYW1lLXBhZ2Utc2hlbGwnKTtcbiAgICAgIGNvbnN0IHNjcm9sbEhvc3RUb3AgPSBzY3JvbGxIb3N0Py5zY3JvbGxUb3AgPz8gMDtcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvciA9ICdjb250YWluJztcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUudG9wID0gYC0ke3Njcm9sbFl9cHhgO1xuICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgICAgb25DbGVhbnVwKCgpID0+IHtcbiAgICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gcHJldmlvdXNPdmVyZmxvdztcbiAgICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvciA9IHByZXZpb3VzT3ZlcnNjcm9sbDtcbiAgICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLnBvc2l0aW9uID0gcHJldmlvdXNQb3NpdGlvbjtcbiAgICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLnRvcCA9IHByZXZpb3VzVG9wO1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSBwcmV2aW91c1dpZHRoO1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IHNjcm9sbFksIGxlZnQ6IDAsIGJlaGF2aW9yOiAnYXV0bycgfSk7XG4gICAgICAgIGlmIChzY3JvbGxIb3N0KSB7XG4gICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBzY3JvbGxIb3N0LnNjcm9sbFRvKHsgdG9wOiBzY3JvbGxIb3N0VG9wLCBsZWZ0OiAwLCBiZWhhdmlvcjogJ2F1dG8nIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc2NyZWVuKCkgPT09ICd0YWJsZScgJiYgdGhpcy5nYW1lKCkuc3RhdHVzID09PSAnZmluaXNoZWQnKSB7XG4gICAgICAgIHRoaXMudHV0b3JpYWxQaGFzZS5zZXQoJ2ZpbmlzaGVkJyk7XG4gICAgICAgIHRoaXMuY2xlYXJCb3RUdXJuKCk7XG4gICAgICB9XG4gICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgdGltZXIgb2YgdGhpcy5pbXBhY3RUaW1lcnMpIHtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICB9XG4gICAgICB0aGlzLmltcGFjdFRpbWVycy5jbGVhcigpO1xuICAgICAgdGhpcy5jbGVhckNvbWJhdFRpbWVycygpO1xuICAgIH0pO1xuICAgIHZvaWQgdGhpcy5sb2FkR2VuZXNpc0NhdGFsb2coKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdNaW5pR2FtZXMnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZEdlbmVzaXNDYXRhbG9nKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGxldCBsb2FkZWQgPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChHRU5FU0lTX0NBVEFMT0dfVVJMKTtcbiAgICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICBjb25zdCBjYXRhbG9nID0gYXdhaXQgcmVzcG9uc2UuanNvbigpIGFzIENocmlzdGlhbml0eUVkaXRpb25DYXRhbG9nO1xuICAgICAgICBjb25zdCBjYXJkcyA9IChjYXRhbG9nLmNhcmRzID8/IFtdKS5tYXAoY2FyZCA9PiB0aGlzLm5vcm1hbGl6ZUNhdGFsb2dDYXJkKGNhcmQsIGNhdGFsb2cpKTtcbiAgICAgICAgaWYgKGNhcmRzLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuY2FyZENhdGFsb2cuc2V0KE9iamVjdC5mcm9tRW50cmllcyhjYXJkcy5tYXAoY2FyZCA9PiBbY2FyZC5pZCwgY2FyZF0pKSk7XG4gICAgICAgICAgdGhpcy5hbGxDYXRhbG9nQ2FyZHMuc2V0KGNhcmRzKTtcbiAgICAgICAgICB0aGlzLmNhdGFsb2dMb2FkZWQuc2V0KHRydWUpO1xuICAgICAgICAgIHRoaXMuZ2FtZS5zZXQodGhpcy5jcmVhdGVUdXRvcmlhbEdhbWUoY2FyZHMpKTtcbiAgICAgICAgICBsb2FkZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybignQ2hyaXN0aWFuaXR5IGNhdGFsb2cgY291bGQgbm90IGJlIGxvYWRlZC4gRmFsbGluZyBiYWNrIHRvIHN0YXJ0ZXIgY2FyZHMuJywgZXJyb3IpO1xuICAgIH1cbiAgICB0aGlzLmNhdGFsb2dMb2FkU3RhdGUuc2V0KGxvYWRlZCA/ICdyZWFkeScgOiAnZmFsbGJhY2snKTtcbiAgICB0aGlzLmZpbmlzaFNwbGFzaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5pc2hTcGxhc2goKTogdm9pZCB7XG4gICAgY29uc3QgZWxhcHNlZCA9IHBlcmZvcm1hbmNlLm5vdygpIC0gdGhpcy5ib290U3RhcnRlZEF0O1xuICAgIGNvbnN0IHJlbWFpbmluZyA9IE1hdGgubWF4KDAsIFNQTEFTSF9NSU5fRFVSQVRJT05fTVMgLSBlbGFwc2VkKTtcbiAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zY3JlZW4oKSA9PT0gJ3NwbGFzaCcpIHtcbiAgICAgICAgdGhpcy5zY3JlZW4uc2V0KCdob21lJyk7XG4gICAgICB9XG4gICAgfSwgcmVtYWluaW5nKTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplQ2F0YWxvZ0NhcmQoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24sIGNhdGFsb2c6IENocmlzdGlhbml0eUVkaXRpb25DYXRhbG9nKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24ge1xuICAgIGNvbnN0IGVkaXRpb25JY29uID0gY2FyZC5lZGl0aW9uSWNvbiA/PyBjYXRhbG9nLmVkaXRpb24/Lmljb24gPz8gR0VORVNJU19JQ09OX1VSTDtcbiAgICBjb25zdCB2ZXJzZVRleHQgPSBjYXJkLnZlcnNlVGV4dCA/PyBjYXJkLmJpYmxlPy50ZXh0O1xuICAgIGNvbnN0IHNjcmlwdHVyZSA9IGNhcmQuc2NyaXB0dXJlID8/IHRoaXMuZm9ybWF0U2NyaXB0dXJlKGNhcmQuYmlibGUpO1xuICAgIGNvbnN0IG9mZmVyaW5nVmFsdWUgPSBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgPyBjYXJkLm9mZmVyaW5nVmFsdWUgPz8gY2FyZC5saWZlID8/IGNhcmQuY29zdCA/PyAxIDogY2FyZC5vZmZlcmluZ1ZhbHVlO1xuICAgIGNvbnN0IGxpZmUgPSBjYXJkLnR5cGUgPT09ICdsZWFkZXInXG4gICAgICA/IGNhcmQubGVhZGVyTGlmZSA/PyBjYXJkLmxpZmUgPz8gMTBcbiAgICAgIDogY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnXG4gICAgICAgID8gb2ZmZXJpbmdWYWx1ZVxuICAgICAgICA6IGNhcmQubGlmZSA/PyAwO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jYXJkLFxuICAgICAgY29zdDogY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnID8gMCA6IGNhcmQuY29zdCA/PyAwLFxuICAgICAgb2ZmZXJpbmdWYWx1ZSxcbiAgICAgIGxpZmUsXG4gICAgICBsZWFkZXJMaWZlOiBjYXJkLnR5cGUgPT09ICdsZWFkZXInID8gY2FyZC5sZWFkZXJMaWZlID8/IGxpZmUgOiBjYXJkLmxlYWRlckxpZmUsXG4gICAgICBhdHRhY2s6IGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicgPyBjYXJkLmF0dGFjayA/PyAwIDogY2FyZC5hdHRhY2ssXG4gICAgICBhYmlsaXR5TmFtZTogY2FyZC5hYmlsaXR5TmFtZSA/PyBjYXJkLmFiaWxpdGllcz8uWzBdPy5uYW1lLFxuICAgICAgYWJpbGl0eVRleHQ6IGNhcmQuYWJpbGl0eVRleHQgPz8gY2FyZC5hYmlsaXRpZXM/LlswXT8udGV4dCxcbiAgICAgIHZlcnNlVGV4dCxcbiAgICAgIHNjcmlwdHVyZSxcbiAgICAgIGVkaXRpb246IGNhcmQuZWRpdGlvbiA/PyBjYXRhbG9nLmVkaXRpb24/LmlkID8/ICdHRU4nLFxuICAgICAgZWRpdGlvbk51bWJlcjogY2FyZC5lZGl0aW9uTnVtYmVyID8/IGNhdGFsb2cuZWRpdGlvbj8ubnVtYmVyLFxuICAgICAgZWRpdGlvbkljb24sXG4gICAgICBpbWFnZVVybDogY2FyZC5pbWFnZVVybCA/PyBjYXJkLmFydD8uaW1hZ2VVcmwsXG4gICAgICBhdXRob3I6IGNhcmQuYXV0aG9yID8/IGNhcmQuYXJ0Py5hcnRpc3RDcmVkaXQsXG4gICAgICB5ZWFyOiBjYXJkLnllYXIgPz8gJzIwMjYnLFxuICAgICAgZnJvbnRUZW1wbGF0ZTogY2FyZC5mcm9udFRlbXBsYXRlID8/ICdnZW5lc2lzLWNsYXNzaWMnLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFNjcmlwdHVyZShiaWJsZT86IENocmlzdGlhbml0eUNhcmRCaWJsZVJlZmVyZW5jZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFiaWJsZT8uYm9vayB8fCAhYmlibGUucmVmZXJlbmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBgJHtiaWJsZS5ib29rfSAke2JpYmxlLnJlZmVyZW5jZX0ke2JpYmxlLnZlcnNpb24gPyBgICR7YmlibGUudmVyc2lvbn1gIDogJyd9YDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVHV0b3JpYWxHYW1lKFxuICAgIGNhcmRzOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbltdLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIHBsYXllckxlYWRlcklkPzogc3RyaW5nO1xuICAgICAgb3Bwb25lbnRMZWFkZXJJZD86IHN0cmluZztcbiAgICAgIGZpcnN0UGxheWVyPzogQ2hyaXN0aWFuaXR5U2VhdDtcbiAgICAgIHNlZWQ/OiBudW1iZXI7XG4gICAgfSA9IHt9LFxuICApOiBDaHJpc3RpYW5pdHlHYW1lU3RhdGUge1xuICAgIGNvbnN0IGxlYWRlcnMgPSB0aGlzLnR1dG9yaWFsTGVhZGVyQ2FyZHMoY2FyZHMpO1xuICAgIGNvbnN0IHBsYXllckxlYWRlciA9IHRoaXMuY2FyZEJ5SWQob3B0aW9ucy5wbGF5ZXJMZWFkZXJJZCkgPz8gdGhpcy5maW5kQ2FyZChsZWFkZXJzLCAnQWTDoW4nKSA/PyBsZWFkZXJzWzBdO1xuICAgIGNvbnN0IG9wcG9uZW50TGVhZGVyID0gdGhpcy5jYXJkQnlJZChvcHRpb25zLm9wcG9uZW50TGVhZGVySWQpID8/IHRoaXMuZmluZENhcmQobGVhZGVycywgJ05vw6knKSA/PyBsZWFkZXJzLmZpbmQoY2FyZCA9PiBjYXJkLmlkICE9PSBwbGF5ZXJMZWFkZXI/LmlkKSA/PyBsZWFkZXJzWzBdO1xuICAgIGNvbnN0IG9mZmVyaW5ncyA9IGNhcmRzLmZpbHRlcihjYXJkID0+IGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyAmJiB0aGlzLmlzQ2xhc3NpY0dhbGxlcnlDYXJkKGNhcmQpKS5zbGljZSgwLCBUVVRPUklBTF9PRkZFUklOR19MSU1JVCk7XG4gICAgY29uc3QgcGxhY2VzID0gY2FyZHMuZmlsdGVyKGNhcmQgPT4gY2FyZC50eXBlID09PSAncGxhY2UnKTtcbiAgICBjb25zdCBjaGFyYWN0ZXJzID0gY2FyZHNcbiAgICAgIC5maWx0ZXIoY2FyZCA9PiBjYXJkLnR5cGUgPT09ICdjaGFyYWN0ZXInICYmIHRoaXMuaXNDbGFzc2ljR2FsbGVyeUNhcmQoY2FyZCkgJiYgKGNhcmQuY29zdCA/PyAwKSA8PSA0ICYmIChjYXJkLmF0dGFjayA/PyAwKSA+PSAwICYmIChjYXJkLmxpZmUgPz8gMCkgPiAwKVxuICAgICAgLnNsaWNlKDAsIFRVVE9SSUFMX0NIQVJBQ1RFUl9MSU1JVCk7XG4gICAgY29uc3QgdHV0b3JpYWxEZWNrID0gW1xuICAgICAgLi4ub2ZmZXJpbmdzLFxuICAgICAgLi4uY2hhcmFjdGVycyxcbiAgICAgIC4uLm9mZmVyaW5ncyxcbiAgICAgIC4uLmNoYXJhY3RlcnMuc2xpY2UoMCwgNiksXG4gICAgXS5zbGljZSgwLCAyOCk7XG4gICAgY29uc3Qgc2h1ZmZsZWREZWNrID0gdGhpcy5wcmVwYXJlVHV0b3JpYWxPcGVuaW5nRGVjayh0aGlzLnNodWZmbGVDYXJkcyh0dXRvcmlhbERlY2ssIG9wdGlvbnMuc2VlZCA/PyBUVVRPUklBTF9TRUVEKSk7XG4gICAgY29uc3QgcGxheWVySGFuZCA9IHNodWZmbGVkRGVjay5zbGljZSgwLCBUVVRPUklBTF9PUEVOSU5HX0hBTkRfU0laRSkubWFwKGNhcmQgPT4gY2FyZC5pZCk7XG4gICAgY29uc3Qgb3Bwb25lbnRIYW5kID0gc2h1ZmZsZWREZWNrLnNsaWNlKFRVVE9SSUFMX09QRU5JTkdfSEFORF9TSVpFLCBUVVRPUklBTF9PUEVOSU5HX0hBTkRfU0laRSAqIDIpLm1hcChjYXJkID0+IGNhcmQuaWQpO1xuICAgIGNvbnN0IHNoYXJlZERlY2sgPSBzaHVmZmxlZERlY2suc2xpY2UoVFVUT1JJQUxfT1BFTklOR19IQU5EX1NJWkUgKiAyKS5tYXAoY2FyZCA9PiBjYXJkLmlkKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdHJ1Y3R1cmVkQ2xvbmUoU1RBUlRJTkdfR0FNRSksXG4gICAgICBzdGF0dXM6ICdpbl9wcm9ncmVzcycsXG4gICAgICB0dXJuT3duZXI6IG9wdGlvbnMuZmlyc3RQbGF5ZXIgPz8gJ1AxJyxcbiAgICAgIHR1cm5Db3VudDogMSxcbiAgICAgIG1hdGNoU2NvcmU6IHsgUDE6IDAsIFAyOiAwIH0sXG4gICAgICBzaGFyZWREZWNrLFxuICAgICAgcGxhY2Vab25lOiBwbGFjZXNbMF0gPyBbcGxhY2VzWzBdLmlkXSA6IFtdLFxuICAgICAgaGlzdG9yeVpvbmU6IFtdLFxuICAgICAgcGxheWVyczoge1xuICAgICAgICBQMTogdGhpcy5jcmVhdGVUdXRvcmlhbFBsYXllcignUDEnLCBwbGF5ZXJMZWFkZXIsIHBsYXllckhhbmQsIFtdKSxcbiAgICAgICAgUDI6IHRoaXMuY3JlYXRlVHV0b3JpYWxQbGF5ZXIoJ1AyJywgb3Bwb25lbnRMZWFkZXIsIG9wcG9uZW50SGFuZCwgW10pLFxuICAgICAgfSxcbiAgICAgIGxvZzogW1xuICAgICAgICBgJHt0aGlzLnQoJ2NocmlzdGlhbml0eVR1cm5PZicpfSAkeyhvcHRpb25zLmZpcnN0UGxheWVyID8/ICdQMScpID09PSAnUDEnID8gU1RBUlRJTkdfR0FNRS5wbGF5ZXJzLlAxLmRpc3BsYXlOYW1lIDogU1RBUlRJTkdfR0FNRS5wbGF5ZXJzLlAyLmRpc3BsYXlOYW1lfS5gLFxuICAgICAgICB0aGlzLnQoJ2NocmlzdGlhbml0eVR1dG9yaWFsTG9hZGVkJyksXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVR1dG9yaWFsUGxheWVyKFxuICAgIHNlYXQ6IENocmlzdGlhbml0eVNlYXQsXG4gICAgbGVhZGVyOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCxcbiAgICBoYW5kOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgICBiYXR0bGVab25lOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZVtdLFxuICApOiBDaHJpc3RpYW5pdHlQbGF5ZXJTdGF0ZSB7XG4gICAgY29uc3QgYmFzZSA9IFNUQVJUSU5HX0dBTUUucGxheWVyc1tzZWF0XTtcbiAgICBjb25zdCBsZWFkZXJMaWZlID0gbGVhZGVyPy5sZWFkZXJMaWZlID8/IGxlYWRlcj8ubGlmZSA/PyBiYXNlLmxlYWRlck1heEhwO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdHJ1Y3R1cmVkQ2xvbmUoYmFzZSksXG4gICAgICBsZWFkZXJDYXJkSWQ6IGxlYWRlcj8uaWQsXG4gICAgICBsZWFkZXJOYW1lOiBsZWFkZXIgPyB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChsZWFkZXIpLm5hbWUgOiBiYXNlLmxlYWRlck5hbWUsXG4gICAgICBsZWFkZXJIcDogbGVhZGVyTGlmZSxcbiAgICAgIGxlYWRlck1heEhwOiBsZWFkZXJMaWZlLFxuICAgICAgb2ZmZXJpbmdzOiBbXSxcbiAgICAgIG9mZmVyaW5nUGxheWVkVGhpc1R1cm46IGZhbHNlLFxuICAgICAgaGFuZCxcbiAgICAgIGhhbmRDb3VudDogaGFuZCA/IHVuZGVmaW5lZCA6IDQsXG4gICAgICBiYXR0bGVab25lLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU9mZmVyaW5nSW5zdGFuY2UoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24sIHNlYXQ6IENocmlzdGlhbml0eVNlYXQsIGluc3RhbmNlSWQ6IHN0cmluZyk6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2Uge1xuICAgIGNvbnN0IHZhbHVlID0gY2FyZC5vZmZlcmluZ1ZhbHVlID8/IGNhcmQubGlmZSA/PyAxO1xuICAgIHJldHVybiB7XG4gICAgICBpbnN0YW5jZUlkLFxuICAgICAgY2FyZElkOiBjYXJkLmlkLFxuICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoY2FyZCkubmFtZSxcbiAgICAgIG93bmVyOiBzZWF0LFxuICAgICAgcmVhZHk6IHRydWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIGFiaWxpdHlOYW1lOiBjYXJkLmFiaWxpdHlOYW1lLFxuICAgICAgYWJpbGl0eVRleHQ6IGNhcmQuYWJpbGl0eVRleHQsXG4gICAgICBhYmlsaXR5Q29zdDogY2FyZC5hYmlsaXR5Q29zdCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDaGFyYWN0ZXJJbnN0YW5jZShjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiwgc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCwgc2xvdDogbnVtYmVyLCBpbnN0YW5jZUlkOiBzdHJpbmcpOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSB7XG4gICAgY29uc3QgbGlmZSA9IGNhcmQubGlmZSA/PyAxO1xuICAgIHJldHVybiB7XG4gICAgICBpbnN0YW5jZUlkLFxuICAgICAgY2FyZElkOiBjYXJkLmlkLFxuICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoY2FyZCkubmFtZSxcbiAgICAgIG93bmVyOiBzZWF0LFxuICAgICAgY29udHJvbGxlcjogc2VhdCxcbiAgICAgIHNsb3QsXG4gICAgICBhdHRhY2s6IGNhcmQuYXR0YWNrID8/IDAsXG4gICAgICBjdXJyZW50SHA6IGxpZmUsXG4gICAgICBtYXhIcDogbGlmZSxcbiAgICAgIGNhbkF0dGFjazogZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZENhcmQoY2FyZHM6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uW10sIG5hbWVQYXJ0OiBzdHJpbmcpOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGNhcmRzLmZpbmQoY2FyZCA9PiB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobmFtZVBhcnQudG9Mb3dlckNhc2UoKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYXJkQnlJZChjYXJkSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gY2FyZElkID8gdGhpcy5jYXJkQ2F0YWxvZygpW2NhcmRJZF0gPz8gU1RBUlRFUl9DQVJEU1tjYXJkSWRdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSB0dXRvcmlhbExlYWRlckNhcmRzKGNhcmRzOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbltdKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXSB7XG4gICAgY29uc3QgbGVhZGVycyA9IGNhcmRzXG4gICAgICAuZmlsdGVyKGNhcmQgPT4gY2FyZC50eXBlID09PSAnbGVhZGVyJyAmJiB0aGlzLmlzQ2xhc3NpY0dhbGxlcnlDYXJkKGNhcmQpKVxuICAgICAgLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiB0aGlzLmNhcmRTb3J0S2V5KGxlZnQpLmxvY2FsZUNvbXBhcmUodGhpcy5jYXJkU29ydEtleShyaWdodCksICdlcycpKTtcbiAgICBpZiAobGVhZGVycy5sZW5ndGggPj0gMikgcmV0dXJuIGxlYWRlcnMuc2xpY2UoMCwgNCk7XG4gICAgcmV0dXJuIGNhcmRzLmZpbHRlcihjYXJkID0+IGNhcmQudHlwZSA9PT0gJ2xlYWRlcicpLnNsaWNlKDAsIDQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaHVmZmxlQ2FyZHMoY2FyZHM6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uW10sIHNlZWQ6IG51bWJlcik6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uW10ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFsuLi5jYXJkc107XG4gICAgbGV0IHN0YXRlID0gc2VlZCA+Pj4gMDtcbiAgICBmb3IgKGxldCBpbmRleCA9IHJlc3VsdC5sZW5ndGggLSAxOyBpbmRleCA+IDA7IGluZGV4LS0pIHtcbiAgICAgIHN0YXRlID0gKHN0YXRlICogMTY2NDUyNSArIDEwMTM5MDQyMjMpID4+PiAwO1xuICAgICAgY29uc3Qgc3dhcEluZGV4ID0gc3RhdGUgJSAoaW5kZXggKyAxKTtcbiAgICAgIFtyZXN1bHRbaW5kZXhdLCByZXN1bHRbc3dhcEluZGV4XV0gPSBbcmVzdWx0W3N3YXBJbmRleF0sIHJlc3VsdFtpbmRleF1dO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlVHV0b3JpYWxPcGVuaW5nRGVjayhjYXJkczogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXSk6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uW10ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFsuLi5jYXJkc107XG4gICAgdGhpcy5lbnN1cmVPcGVuaW5nT2ZmZXJpbmcocmVzdWx0LCAwLCBUVVRPUklBTF9PUEVOSU5HX0hBTkRfU0laRSk7XG4gICAgdGhpcy5lbnN1cmVPcGVuaW5nT2ZmZXJpbmcocmVzdWx0LCBUVVRPUklBTF9PUEVOSU5HX0hBTkRfU0laRSwgVFVUT1JJQUxfT1BFTklOR19IQU5EX1NJWkUpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZU9wZW5pbmdPZmZlcmluZyhjYXJkczogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXSwgc3RhcnQ6IG51bWJlciwgc2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgaGFuZCA9IGNhcmRzLnNsaWNlKHN0YXJ0LCBzdGFydCArIHNpemUpO1xuICAgIGlmIChoYW5kLnNvbWUoY2FyZCA9PiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycpKSByZXR1cm47XG4gICAgY29uc3Qgb2ZmZXJpbmdJbmRleCA9IGNhcmRzLmZpbmRJbmRleCgoY2FyZCwgaW5kZXgpID0+IGluZGV4ID49IHN0YXJ0ICsgc2l6ZSAmJiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycpO1xuICAgIGlmIChvZmZlcmluZ0luZGV4IDwgMCkgcmV0dXJuO1xuICAgIFtjYXJkc1tzdGFydF0sIGNhcmRzW29mZmVyaW5nSW5kZXhdXSA9IFtjYXJkc1tvZmZlcmluZ0luZGV4XSwgY2FyZHNbc3RhcnRdXTtcbiAgfVxuXG4gIHByaXZhdGUgY2FyZFNvcnRLZXkoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbGxlY3RvciA9IGNhcmQuY29sbGVjdG9yTnVtYmVyID8/IGNhcmQuaWQ7XG4gICAgcmV0dXJuIGAke2NhcmQuZWRpdGlvbiA/PyAnJ30tJHtjb2xsZWN0b3IucGFkU3RhcnQoOCwgJzAnKX0tJHt0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKS5uYW1lfWA7XG4gIH1cblxuICBwcml2YXRlIGlzQ2xhc3NpY0dhbGxlcnlDYXJkKGNhcmQ6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChjYXJkLmZyb250VGVtcGxhdGUgPz8gJ2dlbmVzaXMtY2xhc3NpYycpID09PSAnZ2VuZXNpcy1jbGFzc2ljJztcbiAgfVxuXG4gIHByb3RlY3RlZCBjYXJkRGVmaW5pdGlvbihjYXJkSWQ6IHN0cmluZyk6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5jYXJkQ2F0YWxvZygpW2NhcmRJZF0gPz8gU1RBUlRFUl9DQVJEU1tjYXJkSWRdID8/IFNUQVJURVJfQ0FSRFNbJ3Bfc2NvdXQnXTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNsYXRlZENhcmRUZXh0KGNhcmQ6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uKTogQ2hyaXN0aWFuaXR5UmVzb2x2ZWRDYXJkVGV4dCB7XG4gICAgY29uc3QgbGFuZyA9IHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3QgdHJhbnNsYXRpb24gPSBjYXJkLmkxOG4/LltsYW5nXSA/PyBjYXJkLmkxOG4/LlsnZXMnXTtcbiAgICBjb25zdCBwcmltYXJ5QWJpbGl0eSA9IHRyYW5zbGF0aW9uPy5hYmlsaXRpZXM/LlswXSA/PyBjYXJkLmFiaWxpdGllcz8uWzBdO1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0cmFuc2xhdGlvbj8ubmFtZSA/PyBjYXJkLm5hbWUsXG4gICAgICBmdWxsTmFtZTogdHJhbnNsYXRpb24/LmZ1bGxOYW1lID8/IGNhcmQuZnVsbE5hbWUsXG4gICAgICB2ZXJzZVRleHQ6IHRyYW5zbGF0aW9uPy52ZXJzZVRleHQgPz8gY2FyZC52ZXJzZVRleHQsXG4gICAgICBzY3JpcHR1cmU6IHRyYW5zbGF0aW9uPy5zY3JpcHR1cmUgPz8gY2FyZC5zY3JpcHR1cmUsXG4gICAgICBhYmlsaXR5TmFtZTogdHJhbnNsYXRpb24/LmFiaWxpdHlOYW1lID8/IHByaW1hcnlBYmlsaXR5Py5uYW1lID8/IGNhcmQuYWJpbGl0eU5hbWUsXG4gICAgICBhYmlsaXR5VGV4dDogdHJhbnNsYXRpb24/LmFiaWxpdHlUZXh0ID8/IHByaW1hcnlBYmlsaXR5Py50ZXh0ID8/IGNhcmQuYWJpbGl0eVRleHQsXG4gICAgICBhYmlsaXRpZXM6IHRyYW5zbGF0aW9uPy5hYmlsaXRpZXMgPz8gY2FyZC5hYmlsaXRpZXMsXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYXJkRGlzcGxheU5hbWUoY2FyZElkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dCh0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCkpLm5hbWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGxheWVyTGVhZGVyRGlzcGxheU5hbWUocGxheWVyOiBDaHJpc3RpYW5pdHlQbGF5ZXJTdGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBsYXllci5sZWFkZXJDYXJkSWQgPyB0aGlzLmNhcmREaXNwbGF5TmFtZShwbGF5ZXIubGVhZGVyQ2FyZElkKSA6IHBsYXllci5sZWFkZXJOYW1lO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhdGFsb2dTdGF0dXNMYWJlbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5jYXRhbG9nTG9hZFN0YXRlKCk7XG4gICAgaWYgKHN0YXRlID09PSAncmVhZHknKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlDYXRhbG9nUmVhZHknKTtcbiAgICBpZiAoc3RhdGUgPT09ICdmYWxsYmFjaycpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eUNhdGFsb2dGYWxsYmFjaycpO1xuICAgIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eUNhdGFsb2dMb2FkaW5nJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RhcnRGZWF0dXJlZENhcmRUcmFuc2Zvcm0oaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgdHJhbnNmb3JtcyA9IFtcbiAgICAgICd0cmFuc2xhdGVYKC0xLjRyZW0pIHJvdGF0ZSgtOWRlZyknLFxuICAgICAgJ3RyYW5zbGF0ZVkoLTAuNTVyZW0pIHJvdGF0ZSgyZGVnKScsXG4gICAgICAndHJhbnNsYXRlWCgxLjRyZW0pIHJvdGF0ZSgxMGRlZyknLFxuICAgIF07XG4gICAgcmV0dXJuIHRyYW5zZm9ybXNbaW5kZXhdID8/ICdub25lJztcbiAgfVxuXG4gIHByb3RlY3RlZCBjYXJkVHlwZUxhYmVsKGNhcmQ6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICBjb25zdCBsYWJlbHM6IFJlY29yZDxDaHJpc3RpYW5pdHlDYXJkVHlwZSwgc3RyaW5nPiA9IHtcbiAgICAgIGFjdGlvbjogdGhpcy50KCdjaHJpc3RpYW5pdHlBY3Rpb25DYXJkJyksXG4gICAgICBjaGFyYWN0ZXI6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyQ2FyZCcpLFxuICAgICAgZXZlbnQ6IHRoaXMudCgnY2hyaXN0aWFuaXR5RXZlbnRDYXJkJyksXG4gICAgICBsZWFkZXI6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLFxuICAgICAgb2ZmZXJpbmc6IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdDYXJkJyksXG4gICAgICBwbGFjZTogdGhpcy50KCdjaHJpc3RpYW5pdHlQbGFjZUNhcmQnKSxcbiAgICAgIHRvb2w6IHRoaXMudCgnY2hyaXN0aWFuaXR5VG9vbENhcmQnKSxcbiAgICAgIHdpc2RvbTogdGhpcy50KCdjaHJpc3RpYW5pdHlXaXNkb21DYXJkJyksXG4gICAgfTtcbiAgICByZXR1cm4gbGFiZWxzW2NhcmQudHlwZV07XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChcbiAgICBjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbixcbiAgICBvdmVycmlkZXM6IFBhcnRpYWw8Q2hyaXN0aWFuaXR5Q2FyZFJlbmRlck1vZGVsPiA9IHt9LFxuICApOiBDaHJpc3RpYW5pdHlDYXJkUmVuZGVyTW9kZWwge1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKTtcbiAgICBjb25zdCBiYXNlOiBDaHJpc3RpYW5pdHlDYXJkUmVuZGVyTW9kZWwgPSB7XG4gICAgICBpZDogY2FyZC5pZCxcbiAgICAgIG5hbWU6IHRleHQubmFtZSxcbiAgICAgIHR5cGU6IGNhcmQudHlwZSxcbiAgICAgIHR5cGVMYWJlbDogdGhpcy5jYXJkVHlwZUxhYmVsKGNhcmQpLFxuICAgICAgY29zdDogY2FyZC5jb3N0LFxuICAgICAgb2ZmZXJpbmdWYWx1ZTogY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnID8gY2FyZC5vZmZlcmluZ1ZhbHVlID8/IGNhcmQubGlmZSA6IHVuZGVmaW5lZCxcbiAgICAgIGF0dGFjazogY2FyZC50eXBlID09PSAnY2hhcmFjdGVyJyA/IGNhcmQuYXR0YWNrIDogdW5kZWZpbmVkLFxuICAgICAgbGlmZTogY2FyZC5saWZlLFxuICAgICAgY3VycmVudEhwOiBjYXJkLmxpZmUsXG4gICAgICBtYXhIcDogY2FyZC5saWZlLFxuICAgICAgYWJpbGl0eU5hbWU6IHRleHQuYWJpbGl0eU5hbWUsXG4gICAgICBhYmlsaXR5VGV4dDogdGV4dC5hYmlsaXR5VGV4dCB8fCB0aGlzLmRlZmF1bHRDYXJkQm9keShjYXJkLnR5cGUpLFxuICAgICAgdmVyc2VUZXh0OiB0ZXh0LnZlcnNlVGV4dCxcbiAgICAgIHNjcmlwdHVyZTogdGV4dC5zY3JpcHR1cmUsXG4gICAgICBlZGl0aW9uOiBjYXJkLmVkaXRpb24sXG4gICAgICBjb2xsZWN0b3JOdW1iZXI6IGNhcmQuY29sbGVjdG9yTnVtYmVyLFxuICAgICAgZWRpdGlvbkljb246IGNhcmQuZWRpdGlvbkljb24gPz8gKGNhcmQuZWRpdGlvbiA9PT0gJ0dFTicgPyBHRU5FU0lTX0lDT05fVVJMIDogdW5kZWZpbmVkKSxcbiAgICAgIHllYXI6IGNhcmQueWVhcixcbiAgICAgIGF1dGhvcjogY2FyZC5hdXRob3IsXG4gICAgICByYXJpdHk6IGNhcmQucmFyaXR5LFxuICAgICAgaW1hZ2VVcmw6IGNhcmQuaW1hZ2VVcmwsXG4gICAgICBmcm9udFRlbXBsYXRlOiBjYXJkLmZyb250VGVtcGxhdGUgPz8gKGNhcmQuZWRpdGlvbiA9PT0gJ0dFTicgPyAnZ2VuZXNpcy1jbGFzc2ljJyA6IHVuZGVmaW5lZCksXG4gICAgfTtcbiAgICByZXR1cm4geyAuLi5iYXNlLCAuLi5vdmVycmlkZXMgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoaWRkZW5DYXJkUmVuZGVyQ2FyZCgpOiBDaHJpc3RpYW5pdHlDYXJkUmVuZGVyTW9kZWwge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogJ2NocmlzdGlhbml0eS1oaWRkZW4tY2FyZCcsXG4gICAgICBuYW1lOiB0aGlzLnQoJ2NocmlzdGlhbml0eUhpZGRlbkNhcmQnKSxcbiAgICAgIHR5cGU6ICdldmVudCcsXG4gICAgICB0eXBlTGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5SGlkZGVuQ2FyZCcpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGRlZmF1bHRDYXJkQm9keSh0eXBlOiBDaHJpc3RpYW5pdHlDYXJkVHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3QgYm9kaWVzOiBSZWNvcmQ8Q2hyaXN0aWFuaXR5Q2FyZFR5cGUsIHN0cmluZz4gPSB7XG4gICAgICBhY3Rpb246IHRoaXMudCgnY2hyaXN0aWFuaXR5QWN0aW9uUnVsZUJvZHknKSxcbiAgICAgIGNoYXJhY3RlcjogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJCb2R5JyksXG4gICAgICBldmVudDogdGhpcy50KCdjaHJpc3RpYW5pdHlFdmVudFJ1bGVCb2R5JyksXG4gICAgICBsZWFkZXI6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQm9keScpLFxuICAgICAgb2ZmZXJpbmc6IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdCb2R5JyksXG4gICAgICBwbGFjZTogdGhpcy50KCdjaHJpc3RpYW5pdHlQbGFjZVJ1bGVCb2R5JyksXG4gICAgICB0b29sOiB0aGlzLnQoJ2NocmlzdGlhbml0eVRvb2xSdWxlQm9keScpLFxuICAgICAgd2lzZG9tOiB0aGlzLnQoJ2NocmlzdGlhbml0eVdpc2RvbVJ1bGVCb2R5JyksXG4gICAgfTtcbiAgICByZXR1cm4gYm9kaWVzW3R5cGVdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNoYXJhY3RlclJlbmRlckNhcmQoY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiBDaHJpc3RpYW5pdHlDYXJkUmVuZGVyTW9kZWwge1xuICAgIGNvbnN0IGRlZmluaXRpb24gPSB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmQuY2FyZElkKTtcbiAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9uVG9SZW5kZXJDYXJkKGRlZmluaXRpb24sIHtcbiAgICAgIGlkOiBjYXJkLmluc3RhbmNlSWQsXG4gICAgICBhdHRhY2s6IGNhcmQuYXR0YWNrLFxuICAgICAgbGlmZTogY2FyZC5tYXhIcCxcbiAgICAgIGN1cnJlbnRIcDogY2FyZC5jdXJyZW50SHAsXG4gICAgICBtYXhIcDogY2FyZC5tYXhIcCxcbiAgICAgIHN0YXR1c1RleHQ6IGNhcmQuY2FuQXR0YWNrID8gdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJSZWFkeScpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJFeGhhdXN0ZWQnKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBsZWFkZXJSZW5kZXJDYXJkKHBsYXllcjogQ2hyaXN0aWFuaXR5UGxheWVyU3RhdGUpOiBDaHJpc3RpYW5pdHlDYXJkUmVuZGVyTW9kZWwge1xuICAgIGlmIChwbGF5ZXIubGVhZGVyQ2FyZElkKSB7XG4gICAgICBjb25zdCBkZWZpbml0aW9uID0gdGhpcy5jYXJkRGVmaW5pdGlvbihwbGF5ZXIubGVhZGVyQ2FyZElkKTtcbiAgICAgIHJldHVybiB0aGlzLmRlZmluaXRpb25Ub1JlbmRlckNhcmQoZGVmaW5pdGlvbiwge1xuICAgICAgICBpZDogYCR7cGxheWVyLnNlYXR9LWxlYWRlcmAsXG4gICAgICAgIG5hbWU6IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGRlZmluaXRpb24pLm5hbWUsXG4gICAgICAgIHR5cGU6ICdsZWFkZXInLFxuICAgICAgICB0eXBlTGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLFxuICAgICAgICBsaWZlOiBwbGF5ZXIubGVhZGVySHAsXG4gICAgICAgIGN1cnJlbnRIcDogcGxheWVyLmxlYWRlckhwLFxuICAgICAgICBtYXhIcDogcGxheWVyLmxlYWRlck1heEhwLFxuICAgICAgICBzdGF0dXNUZXh0OiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckJvZHknKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGAke3BsYXllci5zZWF0fS1sZWFkZXJgLFxuICAgICAgbmFtZTogcGxheWVyLmxlYWRlck5hbWUsXG4gICAgICB0eXBlOiAnbGVhZGVyJyxcbiAgICAgIHR5cGVMYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksXG4gICAgICBsaWZlOiBwbGF5ZXIubGVhZGVySHAsXG4gICAgICBjdXJyZW50SHA6IHBsYXllci5sZWFkZXJIcCxcbiAgICAgIG1heEhwOiBwbGF5ZXIubGVhZGVyTWF4SHAsXG4gICAgICBhYmlsaXR5TmFtZTogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksXG4gICAgICBhYmlsaXR5VGV4dDogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJCb2R5JyksXG4gICAgICB2ZXJzZVRleHQ6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQm9keScpLFxuICAgICAgZWRpdGlvbjogJ01WUCcsXG4gICAgICBjb2xsZWN0b3JOdW1iZXI6ICdMSURFUicsXG4gICAgICBlZGl0aW9uSWNvbjogR0VORVNJU19JQ09OX1VSTCxcbiAgICAgIHllYXI6ICcyMDI2JyxcbiAgICAgIGF1dGhvcjogJ01WUCcsXG4gICAgICByYXJpdHk6ICdsZWdlbmRhcnknLFxuICAgICAgZnJvbnRUZW1wbGF0ZTogJ2dlbmVzaXMtY2xhc3NpYycsXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvZmZlcmluZ1JlbmRlckNhcmQob2ZmZXJpbmc6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UpOiBDaHJpc3RpYW5pdHlDYXJkUmVuZGVyTW9kZWwge1xuICAgIGNvbnN0IGRlZmluaXRpb24gPSB0aGlzLmNhcmREZWZpbml0aW9uKG9mZmVyaW5nLmNhcmRJZCk7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGRlZmluaXRpb24pO1xuICAgIHJldHVybiB0aGlzLmRlZmluaXRpb25Ub1JlbmRlckNhcmQoZGVmaW5pdGlvbiwge1xuICAgICAgaWQ6IG9mZmVyaW5nLmluc3RhbmNlSWQsXG4gICAgICBuYW1lOiB0ZXh0Lm5hbWUsXG4gICAgICB0eXBlOiAnb2ZmZXJpbmcnLFxuICAgICAgdHlwZUxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQ2FyZCcpLFxuICAgICAgb2ZmZXJpbmdWYWx1ZTogb2ZmZXJpbmcudmFsdWUsXG4gICAgICBsaWZlOiBvZmZlcmluZy52YWx1ZSxcbiAgICAgIGN1cnJlbnRIcDogb2ZmZXJpbmcudmFsdWUsXG4gICAgICBtYXhIcDogb2ZmZXJpbmcudmFsdWUsXG4gICAgICBhYmlsaXR5TmFtZTogdGV4dC5hYmlsaXR5TmFtZSA/PyBvZmZlcmluZy5hYmlsaXR5TmFtZSxcbiAgICAgIGFiaWxpdHlUZXh0OiB0ZXh0LmFiaWxpdHlUZXh0ID8/IG9mZmVyaW5nLmFiaWxpdHlUZXh0ID8/IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdOb0FiaWxpdHknKSxcbiAgICAgIHN0YXR1c1RleHQ6IG9mZmVyaW5nLnJlYWR5ID8gdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ1JlYWR5JykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nRXhoYXVzdGVkJyksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHByZXZpZXdSZW5kZXJUeXBlKHR5cGVMYWJlbDogc3RyaW5nKTogQ2hyaXN0aWFuaXR5Q2FyZFJlbmRlclR5cGUge1xuICAgIGlmICh0eXBlTGFiZWwgPT09IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpKSByZXR1cm4gJ2xlYWRlcic7XG4gICAgaWYgKHR5cGVMYWJlbCA9PT0gdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSkgcmV0dXJuICdvZmZlcmluZyc7XG4gICAgcmV0dXJuICdjaGFyYWN0ZXInO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhcmRUeXBlSWNvblVybChjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2FyZFR5cGVJY29uVXJsRm9yVHlwZShjYXJkLnR5cGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByZXZpZXdUeXBlSWNvblVybCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHByZXZpZXcgPSB0aGlzLnNlbGVjdGVkUHJldmlldygpO1xuICAgIGlmIChwcmV2aWV3Py5leWVicm93ID09PSB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSkgcmV0dXJuIHRoaXMuY2FyZFR5cGVJY29uVXJsRm9yVHlwZSgnbGVhZGVyJyk7XG4gICAgaWYgKHByZXZpZXc/LmV5ZWJyb3cgPT09IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdDYXJkJykpIHJldHVybiB0aGlzLmNhcmRUeXBlSWNvblVybEZvclR5cGUoJ29mZmVyaW5nJyk7XG4gICAgcmV0dXJuIHRoaXMuY2FyZFR5cGVJY29uVXJsRm9yVHlwZSgnY2hhcmFjdGVyJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FyZFR5cGVJY29uVXJsRm9yVHlwZSh0eXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB0eXBlLnRvTG93ZXJDYXNlKCkubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJyk7XG4gICAgY29uc3QgaWNvbiA9IG5vcm1hbGl6ZWQgPT09ICdsaWRlcicgPyAnbGVhZGVyJyA6IG5vcm1hbGl6ZWQgPT09ICdwZXJzb25hamUnID8gJ2NoYXJhY3RlcicgOiBub3JtYWxpemVkID09PSAnb2ZyZW5kYScgPyAnb2ZmZXJpbmcnIDogbm9ybWFsaXplZDtcbiAgICByZXR1cm4gYGFzc2V0cy9nYW1lcy9jaHJpc3RpYW5pdHkvaWNvbnMvJHtpY29ufS5wbmdgO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9mZmVyaW5nUGlwcyh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogdW5rbm93bltdIHtcbiAgICBjb25zdCBjb3VudCA9IE51bWJlcih2YWx1ZSk7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoY291bnQpIHx8IGNvdW50IDw9IDApIHJldHVybiBbXTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogTWF0aC5taW4oTWF0aC5mbG9vcihjb3VudCksIDUpIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJhdHRsZVNsb3RzKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiBBcnJheTx7IHRyYWNrSWQ6IHN0cmluZzsgY2FyZD86IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlIH0+IHtcbiAgICBjb25zdCBjYXJkcyA9IHRoaXMuZ2FtZSgpLnBsYXllcnNbc2VhdF0uYmF0dGxlWm9uZTtcbiAgICBjb25zdCBwb3NpdGlvbmVkQ2FyZHMgPSBuZXcgTWFwPG51bWJlciwgQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2U+KCk7XG4gICAgY2FyZHMuZm9yRWFjaCgoY2FyZCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHNsb3QgPSBOdW1iZXIuaXNJbnRlZ2VyKGNhcmQuc2xvdCkgPyBjYXJkLnNsb3QgPz8gaW5kZXggOiBpbmRleDtcbiAgICAgIGlmIChzbG90ID49IDAgJiYgc2xvdCA8IDQgJiYgIXBvc2l0aW9uZWRDYXJkcy5oYXMoc2xvdCkpIHtcbiAgICAgICAgcG9zaXRpb25lZENhcmRzLnNldChzbG90LCBjYXJkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogNCB9LCAoXywgaW5kZXgpID0+ICh7XG4gICAgICB0cmFja0lkOiBwb3NpdGlvbmVkQ2FyZHMuZ2V0KGluZGV4KT8uaW5zdGFuY2VJZCA/PyBgJHtzZWF0fS1lbXB0eS0ke2luZGV4fWAsXG4gICAgICBjYXJkOiBwb3NpdGlvbmVkQ2FyZHMuZ2V0KGluZGV4KSxcbiAgICB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYmF0dGxlU2xvdERyb3BJZChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNocmlzdGlhbml0eS1iYXR0bGUtc2xvdC0ke2luZGV4fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgZHJvcFRhcmdldElkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsnY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1kcm9wJywgJ2NocmlzdGlhbml0eS1wbGFjZS1kcm9wJywgLi4udGhpcy5iYXR0bGVTbG90cygnUDEnKS5tYXAoKF8sIGluZGV4KSA9PiB0aGlzLmJhdHRsZVNsb3REcm9wSWQoaW5kZXgpKV07XG4gIH1cblxuICBwcm90ZWN0ZWQgb3duQXR0YWNrZXJEcm9wU291cmNlSWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWydjaHJpc3RpYW5pdHktcGxheWVyLWJhdHRsZS1zb3VyY2UnXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhdHRhY2tUYXJnZXREcm9wSWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWydjaHJpc3RpYW5pdHktb3Bwb25lbnQtbGVhZGVyLWRyb3AnLCAuLi50aGlzLm9wcG9uZW50KCkuYmF0dGxlWm9uZS5tYXAoY2FyZCA9PiB0aGlzLm9wcG9uZW50VGFyZ2V0RHJvcElkKGNhcmQpKV07XG4gIH1cblxuICBwcm90ZWN0ZWQgb3Bwb25lbnRUYXJnZXREcm9wSWQoY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LW9wcG9uZW50LXRhcmdldC0ke2NhcmQuaW5zdGFuY2VJZH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvcEhpc3RvcnlDYXJkKCk6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uIHwgbnVsbCB7XG4gICAgY29uc3QgY2FyZElkID0gdGhpcy5nYW1lKCkuaGlzdG9yeVpvbmUuYXQoLTEpO1xuICAgIHJldHVybiBjYXJkSWQgPyB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCkgOiBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvcE9mZmVyaW5nKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZ2FtZSgpLnBsYXllcnNbc2VhdF0ub2ZmZXJpbmdzLmF0KC0xKSA/PyBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjdGl2ZVBsYWNlQ2FyZCgpOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiB8IG51bGwge1xuICAgIGNvbnN0IGNhcmRJZCA9IHRoaXMuZ2FtZSgpLnBsYWNlWm9uZVswXTtcbiAgICByZXR1cm4gY2FyZElkID8gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpIDogbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc09wcG9uZW50TGVhZGVyVGFyZ2V0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuc2VsZWN0ZWRBdHRhY2tlcigpICYmICF0aGlzLmhhc09wcG9uZW50R3VhcmRzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNPcHBvbmVudENoYXJhY3RlclRhcmdldChjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIWNhcmQgJiYgISF0aGlzLnNlbGVjdGVkQXR0YWNrZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoaWRkZW5IYW5kQ2FyZHMoY291bnQ6IG51bWJlcik6IHVua25vd25bXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IGNvdW50IH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZhblRyYW5zZm9ybShpbmRleDogbnVtYmVyLCB0b3RhbDogbnVtYmVyLCBvcHBvbmVudDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgaWYgKHRvdGFsIDw9IDEpIHJldHVybiAnbm9uZSc7XG4gICAgY29uc3QgY2VudGVyID0gKHRvdGFsIC0gMSkgLyAyO1xuICAgIGNvbnN0IG9mZnNldCA9IGluZGV4IC0gY2VudGVyO1xuICAgIGNvbnN0IHJvdGF0ZSA9IG9mZnNldCAqIChvcHBvbmVudCA/IDYgOiA1KTtcbiAgICBjb25zdCBsaWZ0ID0gTWF0aC5hYnMob2Zmc2V0KSAqIDAuMjU7XG4gICAgY29uc3QgaG92ZXJMaWZ0ID0gb3Bwb25lbnQgPyAwIDogdGhpcy5oYW5kV2F2ZUxpZnQoaW5kZXgpO1xuICAgIGNvbnN0IHNjYWxlID0gb3Bwb25lbnQgPyAxIDogdGhpcy5oYW5kV2F2ZVNjYWxlKGluZGV4KTtcbiAgICBjb25zdCBmYW5MaWZ0ID0gb3Bwb25lbnQgPyBNYXRoLmFicyhvZmZzZXQpICogMC4yMiA6IGxpZnQgKyBob3ZlckxpZnQ7XG4gICAgY29uc3QgZmFuU3ByZWFkID0gb3Bwb25lbnQgPyBvZmZzZXQgKiAwLjAyIDogMDtcbiAgICByZXR1cm4gYHRyYW5zbGF0ZSgke2ZhblNwcmVhZH1yZW0sICR7ZmFuTGlmdH1yZW0pIHJvdGF0ZSgke3JvdGF0ZX1kZWcpIHNjYWxlKCR7c2NhbGV9KWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZENhcmRaSW5kZXgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaG92ZXJlZCA9IHRoaXMuaG92ZXJlZEhhbmRJbmRleCgpO1xuICAgIGlmIChob3ZlcmVkID09PSBudWxsKSByZXR1cm4gMjtcbiAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKGluZGV4IC0gaG92ZXJlZCk7XG4gICAgcmV0dXJuIE1hdGgubWF4KDIsIDggLSBkaXN0YW5jZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0SG92ZXJlZEhhbmRJbmRleChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5ob3ZlcmVkSGFuZEluZGV4LnNldChpbmRleCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYXJIb3ZlcmVkSGFuZEluZGV4KCk6IHZvaWQge1xuICAgIHRoaXMuaG92ZXJlZEhhbmRJbmRleC5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVsZWFzZUhvdmVyZWRIYW5kKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgIT09ICdtb3VzZScpIHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xlYXJIb3ZlcmVkSGFuZEluZGV4KCksIDE4MCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kV2F2ZUxpZnQoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaG92ZXJlZCA9IHRoaXMuaG92ZXJlZEhhbmRJbmRleCgpO1xuICAgIGlmIChob3ZlcmVkID09PSBudWxsKSByZXR1cm4gMDtcbiAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKGluZGV4IC0gaG92ZXJlZCk7XG4gICAgaWYgKGRpc3RhbmNlID09PSAwKSByZXR1cm4gLTEuMTU7XG4gICAgaWYgKGRpc3RhbmNlID09PSAxKSByZXR1cm4gLTAuNTg7XG4gICAgaWYgKGRpc3RhbmNlID09PSAyKSByZXR1cm4gLTAuMjI7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBwcml2YXRlIGhhbmRXYXZlU2NhbGUoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaG92ZXJlZCA9IHRoaXMuaG92ZXJlZEhhbmRJbmRleCgpO1xuICAgIGlmIChob3ZlcmVkID09PSBudWxsKSByZXR1cm4gMTtcbiAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKGluZGV4IC0gaG92ZXJlZCk7XG4gICAgaWYgKGRpc3RhbmNlID09PSAwKSByZXR1cm4gMS4wNjtcbiAgICBpZiAoZGlzdGFuY2UgPT09IDEpIHJldHVybiAxLjAzO1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWR5T2ZmZXJpbmdzKHBsYXllcjogQ2hyaXN0aWFuaXR5UGxheWVyU3RhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiByZWFkeU9mZmVyaW5ncyhwbGF5ZXIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvdGFsT2ZmZXJpbmdzKHBsYXllcjogQ2hyaXN0aWFuaXR5UGxheWVyU3RhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiB0b3RhbE9mZmVyaW5ncyhwbGF5ZXIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhblBsYXkoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy50dXRvcmlhbFBoYXNlKCkgIT09ICdpbl9wcm9ncmVzcycpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gY2FuUGxheUNhcmQodGhpcy5nYW1lKCksICdQMScsIGNhcmQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRDYXJkQWN0aW9uTGFiZWwoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLnQoJ2NocmlzdGlhbml0eVNlbGVjdENhcmQnKX06ICR7dGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoY2FyZCkubmFtZX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRDYXJkVGVzdElkKGNhcmRJZDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNocmlzdGlhbml0eS1oYW5kLWNhcmQtJHtpbmRleH0tJHt0aGlzLnRlc3RJZFBhcnQoY2FyZElkKX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJhdHRsZUNhcmRUZXN0SWQoc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCwgY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LWJhdHRsZS1jYXJkLSR7c2VhdH0tJHt0aGlzLnRlc3RJZFBhcnQoY2FyZC5pbnN0YW5jZUlkKX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJhdHRsZVNsb3RUZXN0SWQoc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjaHJpc3RpYW5pdHktYmF0dGxlLXNsb3QtJHtzZWF0fS0ke2luZGV4fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGlzdG9yeUNhcmRUZXN0SWQoY2FyZElkOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LWhpc3RvcnktY2FyZC0ke2luZGV4fS0ke3RoaXMudGVzdElkUGFydChjYXJkSWQpfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdzRHJhd2VyVGVzdElkKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1kcmF3ZXItJHtzZWF0fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdMaXN0VGVzdElkKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3QtJHtzZWF0fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdDYXJkVGVzdElkKG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkLSR7b2ZmZXJpbmcub3duZXJ9LSR7dGhpcy50ZXN0SWRQYXJ0KG9mZmVyaW5nLmluc3RhbmNlSWQpfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdVc2VCdXR0b25UZXN0SWQob2ZmZXJpbmc6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LXVzZS1vZmZlcmluZy0ke29mZmVyaW5nLm93bmVyfS0ke3RoaXMudGVzdElkUGFydChvZmZlcmluZy5pbnN0YW5jZUlkKX1gO1xuICB9XG5cbiAgcHJpdmF0ZSB0ZXN0SWRQYXJ0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05XSsvZywgJy0nKS5yZXBsYWNlKC9eLXwtJC9nLCAnJykuc2xpY2UoMCwgNDgpIHx8ICdpdGVtJztcbiAgfVxuXG4gIHByb3RlY3RlZCBjYW5QbGF5U2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkSGFuZENhcmQoKTtcbiAgICByZXR1cm4gISFzZWxlY3RlZCAmJiB0aGlzLmNhblBsYXkodGhpcy5jYXJkRGVmaW5pdGlvbihzZWxlY3RlZCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkQWN0aW9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRDYXJkRGVmaW5pdGlvbigpO1xuICAgIGlmICghc2VsZWN0ZWQpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYXlDYXJkJyk7XG4gICAgaWYgKHNlbGVjdGVkLnR5cGUgPT09ICdvZmZlcmluZycpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYXlPZmZlcmluZycpO1xuICAgIGlmIChzZWxlY3RlZC50eXBlID09PSAnY2hhcmFjdGVyJykgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5UGxheUNoYXJhY3RlcicpO1xuICAgIGlmIChzZWxlY3RlZC50eXBlID09PSAncGxhY2UnKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlQbGF5UGxhY2UnKTtcbiAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlQbGF5Q2FyZCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkQWN0aW9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkQ2FyZERlZmluaXRpb24oKTtcbiAgICByZXR1cm4gIXNlbGVjdGVkIHx8ICF0aGlzLmNhblBsYXkoc2VsZWN0ZWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhblBsYWNlU2VsZWN0ZWRDaGFyYWN0ZXIoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkQ2FyZERlZmluaXRpb24oKTtcbiAgICByZXR1cm4gISFzZWxlY3RlZCAmJiBzZWxlY3RlZC50eXBlID09PSAnY2hhcmFjdGVyJyAmJiB0aGlzLmNhblBsYXkoc2VsZWN0ZWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhblBsYWNlU2VsZWN0ZWRPZmZlcmluZygpOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRDYXJkRGVmaW5pdGlvbigpO1xuICAgIHJldHVybiAhIXNlbGVjdGVkICYmIHNlbGVjdGVkLnR5cGUgPT09ICdvZmZlcmluZycgJiYgdGhpcy5jYW5QbGF5KHNlbGVjdGVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYW5QbGFjZVNlbGVjdGVkUGxhY2UoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkQ2FyZERlZmluaXRpb24oKTtcbiAgICByZXR1cm4gISFzZWxlY3RlZCAmJiBzZWxlY3RlZC50eXBlID09PSAncGxhY2UnICYmIHRoaXMuY2FuUGxheShzZWxlY3RlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNEcmFnZ2luZ0NoYXJhY3RlcigpOiBib29sZWFuIHtcbiAgICBjb25zdCBjYXJkSWQgPSB0aGlzLmRyYWdnaW5nQ2FyZElkKCk7XG4gICAgaWYgKCFjYXJkSWQpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpO1xuICAgIHJldHVybiBjYXJkLnR5cGUgPT09ICdjaGFyYWN0ZXInICYmIHRoaXMuY2FuUGxheShjYXJkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0RyYWdnaW5nT2ZmZXJpbmcoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2FyZElkID0gdGhpcy5kcmFnZ2luZ0NhcmRJZCgpO1xuICAgIGlmICghY2FyZElkKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICByZXR1cm4gY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnICYmIHRoaXMuY2FuUGxheShjYXJkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0RyYWdnaW5nUGxhY2UoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2FyZElkID0gdGhpcy5kcmFnZ2luZ0NhcmRJZCgpO1xuICAgIGlmICghY2FyZElkKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICByZXR1cm4gY2FyZC50eXBlID09PSAncGxhY2UnICYmIHRoaXMuY2FuUGxheShjYXJkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydERyYWdnaW5nQ2FyZChjYXJkSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChjYXJkSWQpO1xuICAgIHRoaXMuZHJhZ2dpbmdDYXJkSWQuc2V0KGNhcmRJZCk7XG4gICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBlbmREcmFnZ2luZ0NhcmQoKTogdm9pZCB7XG4gICAgdGhpcy5kcmFnZ2luZ0NhcmRJZC5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuRHJhZ0F0dGFja2VyKGNhcmQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2FtZSgpLnN0YXR1cyA9PT0gJ2luX3Byb2dyZXNzJyAmJiB0aGlzLmlzT3duVHVybigpICYmIGNhcmQuY2FuQXR0YWNrICYmICF0aGlzLmNvbWJhdEFuaW1hdGlvbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN0YXJ0RHJhZ2dpbmdBdHRhY2tlcihjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jYW5EcmFnQXR0YWNrZXIoY2FyZCkpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KG51bGwpO1xuICAgIHRoaXMuY2xvc2VQcmV2aWV3KCk7XG4gICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldChjYXJkKTtcbiAgICB0aGlzLmRyYWdnaW5nQXR0YWNrZXJJbnN0YW5jZUlkLnNldChjYXJkLmluc3RhbmNlSWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVuZERyYWdnaW5nQXR0YWNrZXIoKTogdm9pZCB7XG4gICAgdGhpcy5kcmFnZ2luZ0F0dGFja2VySW5zdGFuY2VJZC5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZHJvcE9uQmF0dGxlU2xvdChldmVudDogQ2RrRHJhZ0Ryb3A8bnVtYmVyLCB1bmtub3duLCBzdHJpbmc+LCBzbG90SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGV2ZW50Lml0ZW0uZGF0YSk7XG4gICAgaWYgKGNhcmQudHlwZSAhPT0gJ2NoYXJhY3RlcicpIHJldHVybjtcbiAgICB0aGlzLnBsYXlDYXJkRnJvbUhhbmQoZXZlbnQuaXRlbS5kYXRhLCBzbG90SW5kZXgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3BPbk9mZmVyaW5ncyhldmVudDogQ2RrRHJhZ0Ryb3A8dW5rbm93biwgdW5rbm93biwgc3RyaW5nPik6IHZvaWQge1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGV2ZW50Lml0ZW0uZGF0YSk7XG4gICAgaWYgKGNhcmQudHlwZSAhPT0gJ29mZmVyaW5nJykgcmV0dXJuO1xuICAgIHRoaXMucGxheUNhcmRGcm9tSGFuZChldmVudC5pdGVtLmRhdGEpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3BPblBsYWNlKGV2ZW50OiBDZGtEcmFnRHJvcDx1bmtub3duLCB1bmtub3duLCBzdHJpbmc+KTogdm9pZCB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oZXZlbnQuaXRlbS5kYXRhKTtcbiAgICBpZiAoY2FyZC50eXBlICE9PSAncGxhY2UnKSByZXR1cm47XG4gICAgdGhpcy5wbGF5Q2FyZEZyb21IYW5kKGV2ZW50Lml0ZW0uZGF0YSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGxheVNlbGVjdGVkUGxhY2VPckluc3BlY3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FuUGxhY2VTZWxlY3RlZFBsYWNlKCkpIHtcbiAgICAgIHRoaXMucGxheVNlbGVjdGVkQ2FyZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmluc3BlY3RQbGFjZVpvbmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkcm9wT25PcHBvbmVudENoYXJhY3RlcihldmVudDogQ2RrRHJhZ0Ryb3A8dW5rbm93biwgdW5rbm93biwgc3RyaW5nPiwgdGFyZ2V0OiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkQXR0YWNrZXJJbnN0YW5jZShldmVudC5pdGVtLmRhdGEpKSByZXR1cm47XG4gICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldCh0aGlzLnBsYXllcigpLmJhdHRsZVpvbmUuZmluZChjYXJkID0+IGNhcmQuaW5zdGFuY2VJZCA9PT0gZXZlbnQuaXRlbS5kYXRhKSA/PyBudWxsKTtcbiAgICB0aGlzLmF0dGFja0NoYXJhY3Rlcih0YXJnZXQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3BPbk9wcG9uZW50TGVhZGVyKGV2ZW50OiBDZGtEcmFnRHJvcDx1bmtub3duLCB1bmtub3duLCBzdHJpbmc+KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWRBdHRhY2tlckluc3RhbmNlKGV2ZW50Lml0ZW0uZGF0YSkgfHwgdGhpcy5oYXNPcHBvbmVudEd1YXJkcygpKSByZXR1cm47XG4gICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldCh0aGlzLnBsYXllcigpLmJhdHRsZVpvbmUuZmluZChjYXJkID0+IGNhcmQuaW5zdGFuY2VJZCA9PT0gZXZlbnQuaXRlbS5kYXRhKSA/PyBudWxsKTtcbiAgICB0aGlzLmF0dGFja0xlYWRlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkQXR0YWNrZXJJbnN0YW5jZShpbnN0YW5jZUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nYW1lKCkuc3RhdHVzID09PSAnaW5fcHJvZ3Jlc3MnXG4gICAgICAmJiB0aGlzLmlzT3duVHVybigpXG4gICAgICAmJiAhdGhpcy5jb21iYXRBbmltYXRpb24oKVxuICAgICAgJiYgdGhpcy5wbGF5ZXIoKS5iYXR0bGVab25lLnNvbWUoY2FyZCA9PiBjYXJkLmluc3RhbmNlSWQgPT09IGluc3RhbmNlSWQgJiYgY2FyZC5jYW5BdHRhY2spO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdEhhbmRDYXJkKGNhcmRJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgd2FzU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkSGFuZENhcmQoKSA9PT0gY2FyZElkO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldCh3YXNTZWxlY3RlZCA/IG51bGwgOiBjYXJkSWQpO1xuICAgIHRoaXMuY2xvc2VQcmV2aWV3KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGxheVNlbGVjdGVkQ2FyZChzbG90SW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBjYXJkSWQgPSB0aGlzLnNlbGVjdGVkSGFuZENhcmQoKTtcbiAgICBpZiAoIWNhcmRJZCkgcmV0dXJuO1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCk7XG4gICAgY29uc3QgcmVzb2x2ZWRTbG90SW5kZXggPSBjYXJkLnR5cGUgPT09ICdjaGFyYWN0ZXInICYmIHNsb3RJbmRleCA9PT0gdW5kZWZpbmVkXG4gICAgICA/IHRoaXMuZmlyc3RBdmFpbGFibGVCYXR0bGVTbG90SW5kZXgoKVxuICAgICAgOiBzbG90SW5kZXg7XG4gICAgdGhpcy5wbGF5Q2FyZEZyb21IYW5kKGNhcmRJZCwgcmVzb2x2ZWRTbG90SW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaXJzdEF2YWlsYWJsZUJhdHRsZVNsb3RJbmRleCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5iYXR0bGVTbG90cygnUDEnKS5maW5kSW5kZXgoc2xvdCA9PiAhc2xvdC5jYXJkKTtcbiAgICByZXR1cm4gaW5kZXggPj0gMCA/IGluZGV4IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBsYXlDYXJkRnJvbUhhbmQoY2FyZElkOiBzdHJpbmcsIHNsb3RJbmRleD86IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCk7XG4gICAgaWYgKCF0aGlzLmNhblBsYXkoY2FyZCkpIHJldHVybjtcbiAgICBsZXQgcGxheWVkT2ZmZXJpbmdWYWx1ZSA9IDA7XG4gICAgbGV0IHNwZW50T2ZmZXJpbmdzID0gMDtcblxuICAgIHRoaXMuZ2FtZS51cGRhdGUoZ2FtZSA9PiB7XG4gICAgICBjb25zdCBoaXN0b3J5QmVmb3JlID0gZ2FtZS5oaXN0b3J5Wm9uZS5sZW5ndGg7XG4gICAgICBjb25zdCByZXN1bHQgPSBwbGF5Q2hyaXN0aWFuaXR5Q2FyZEZyb21IYW5kKGdhbWUsICdQMScsIGNhcmQsIHtcbiAgICAgICAgc2xvdEluZGV4LFxuICAgICAgICBkaXNwbGF5TmFtZTogdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoY2FyZCkubmFtZSxcbiAgICAgIH0pO1xuICAgICAgcGxheWVkT2ZmZXJpbmdWYWx1ZSA9IHJlc3VsdC5wbGF5ZWRPZmZlcmluZ1ZhbHVlO1xuICAgICAgc3BlbnRPZmZlcmluZ3MgPSByZXN1bHQuc3BlbnRPZmZlcmluZ3M7XG4gICAgICBpZiAocmVzdWx0LmdhbWUuaGlzdG9yeVpvbmUubGVuZ3RoID4gaGlzdG9yeUJlZm9yZSkge1xuICAgICAgICB0aGlzLnRyaWdnZXJIaXN0b3J5UHVsc2UoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQuZ2FtZTtcbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KG51bGwpO1xuICAgIHRoaXMuZHJhZ2dpbmdDYXJkSWQuc2V0KG51bGwpO1xuICAgIHRoaXMuY2xvc2VQcmV2aWV3KCk7XG4gICAgaWYgKHBsYXllZE9mZmVyaW5nVmFsdWUgPiAwKSB7XG4gICAgICB0aGlzLnB1c2hJbXBhY3RFdmVudCh7IHRleHQ6IGArJHtwbGF5ZWRPZmZlcmluZ1ZhbHVlfWAsIHRvbmU6ICdyZXNvdXJjZScsIHNlYXQ6ICdQMScsIHRhcmdldDogJ29mZmVyaW5ncycgfSk7XG4gICAgfSBlbHNlIGlmIChzcGVudE9mZmVyaW5ncyA+IDApIHtcbiAgICAgIHRoaXMucHVzaEltcGFjdEV2ZW50KHsgdGV4dDogYC0ke3NwZW50T2ZmZXJpbmdzfWAsIHRvbmU6ICdyZXNvdXJjZScsIHNlYXQ6ICdQMScsIHRhcmdldDogJ29mZmVyaW5ncycgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9mZmVyaW5nUGlsZShzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogdm9pZCB7XG4gICAgdGhpcy5vcGVuT2ZmZXJpbmdzKHNlYXQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdEF0dGFja2VyKGNhcmQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICBpZiAodGhpcy5nYW1lKCkuc3RhdHVzICE9PSAnaW5fcHJvZ3Jlc3MnIHx8ICF0aGlzLmlzT3duVHVybigpIHx8ICFjYXJkLmNhbkF0dGFjaykge1xuICAgICAgdGhpcy5pbnNwZWN0Q2hhcmFjdGVyKGNhcmQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNsb3NlUHJldmlldygpO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQodGhpcy5zZWxlY3RlZEF0dGFja2VyKCk/Lmluc3RhbmNlSWQgPT09IGNhcmQuaW5zdGFuY2VJZCA/IG51bGwgOiBjYXJkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVPcHBvbmVudENoYXJhY3RlcihjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQXR0YWNrZXIoKSkge1xuICAgICAgdGhpcy5hdHRhY2tDaGFyYWN0ZXIoY2FyZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5zcGVjdENoYXJhY3RlcihjYXJkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVPcHBvbmVudExlYWRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEF0dGFja2VyKCkgJiYgIXRoaXMuaGFzT3Bwb25lbnRHdWFyZHMoKSkge1xuICAgICAgdGhpcy5hdHRhY2tMZWFkZXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnNwZWN0TGVhZGVyKCdQMicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGF0dGFja0xlYWRlcigpOiB2b2lkIHtcbiAgICBjb25zdCBhdHRhY2tlciA9IHRoaXMuc2VsZWN0ZWRBdHRhY2tlcigpO1xuICAgIGlmICghYXR0YWNrZXIpIHJldHVybjtcbiAgICBpZiAodGhpcy5nYW1lKCkuc3RhdHVzICE9PSAnaW5fcHJvZ3Jlc3MnIHx8IHRoaXMuY29tYmF0QW5pbWF0aW9uKCkpIHJldHVybjtcbiAgICBpZiAodGhpcy5oYXNPcHBvbmVudEd1YXJkcygpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQoe1xuICAgICAgICB0aXRsZTogdGhpcy5vcHBvbmVudCgpLmxlYWRlck5hbWUsXG4gICAgICAgIGV5ZWJyb3c6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLFxuICAgICAgICBtZXRhOiBgJHt0aGlzLm9wcG9uZW50KCkubGVhZGVySHB9LyR7dGhpcy5vcHBvbmVudCgpLmxlYWRlck1heEhwfWAsXG4gICAgICAgIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyUHJvdGVjdGVkJyksXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdGFydENvbWJhdEFuaW1hdGlvbih7IGF0dGFja2VySW5zdGFuY2VJZDogYXR0YWNrZXIuaW5zdGFuY2VJZCwgYXR0YWNrZXJTZWF0OiAnUDEnLCB0YXJnZXRTZWF0OiAnUDInLCB0YXJnZXQ6ICdsZWFkZXInIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgdGhpcy5jb21iYXRSZXNvbHV0aW9uVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBsZXQgZGFtYWdlID0gMDtcbiAgICAgIHRoaXMuZ2FtZS51cGRhdGUoZ2FtZSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc29sdmVBdHRhY2tMZWFkZXIoZ2FtZSwgJ1AxJywgYXR0YWNrZXIuaW5zdGFuY2VJZCwgdGhpcy5ydWxlTWVzc2FnZXMoKSk7XG4gICAgICAgIGRhbWFnZSA9IHJlc3VsdC50YXJnZXREYW1hZ2U7XG4gICAgICAgIHJldHVybiByZXN1bHQuZ2FtZTtcbiAgICAgIH0pO1xuICAgICAgaWYgKGRhbWFnZSA+IDApIHtcbiAgICAgICAgdGhpcy5wdXNoSW1wYWN0RXZlbnQoeyB0ZXh0OiBgLSR7ZGFtYWdlfWAsIHRvbmU6ICdkYW1hZ2UnLCBzZWF0OiAnUDInLCB0YXJnZXQ6ICdsZWFkZXInIH0pO1xuICAgICAgfVxuICAgIH0sIDUyMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXR0YWNrQ2hhcmFjdGVyKHRhcmdldDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiB2b2lkIHtcbiAgICBjb25zdCBhdHRhY2tlciA9IHRoaXMuc2VsZWN0ZWRBdHRhY2tlcigpO1xuICAgIGlmICghYXR0YWNrZXIpIHJldHVybjtcbiAgICBpZiAodGhpcy5nYW1lKCkuc3RhdHVzICE9PSAnaW5fcHJvZ3Jlc3MnIHx8IHRoaXMuY29tYmF0QW5pbWF0aW9uKCkpIHJldHVybjtcbiAgICB0aGlzLnN0YXJ0Q29tYmF0QW5pbWF0aW9uKHtcbiAgICAgIGF0dGFja2VySW5zdGFuY2VJZDogYXR0YWNrZXIuaW5zdGFuY2VJZCxcbiAgICAgIGF0dGFja2VyU2VhdDogJ1AxJyxcbiAgICAgIHRhcmdldEluc3RhbmNlSWQ6IHRhcmdldC5pbnN0YW5jZUlkLFxuICAgICAgdGFyZ2V0U2VhdDogJ1AyJyxcbiAgICAgIHRhcmdldDogJ2NoYXJhY3RlcicsXG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldChudWxsKTtcbiAgICB0aGlzLmNvbWJhdFJlc29sdXRpb25UaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxldCBhdHRhY2tlckRhbWFnZSA9IDA7XG4gICAgICBsZXQgdGFyZ2V0RGFtYWdlID0gMDtcbiAgICAgIHRoaXMuZ2FtZS51cGRhdGUoZ2FtZSA9PiB7XG4gICAgICAgIGNvbnN0IGhpc3RvcnlCZWZvcmUgPSBnYW1lLmhpc3Rvcnlab25lLmxlbmd0aDtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVzb2x2ZUF0dGFja0NoYXJhY3RlcihnYW1lLCAnUDEnLCBhdHRhY2tlci5pbnN0YW5jZUlkLCB0YXJnZXQuaW5zdGFuY2VJZCwgdGhpcy5ydWxlTWVzc2FnZXMoKSk7XG4gICAgICAgIGF0dGFja2VyRGFtYWdlID0gcmVzdWx0LmF0dGFja2VyRGFtYWdlO1xuICAgICAgICB0YXJnZXREYW1hZ2UgPSByZXN1bHQudGFyZ2V0RGFtYWdlO1xuICAgICAgICBpZiAocmVzdWx0LmdhbWUuaGlzdG9yeVpvbmUubGVuZ3RoID4gaGlzdG9yeUJlZm9yZSkge1xuICAgICAgICAgIHRoaXMudHJpZ2dlckhpc3RvcnlQdWxzZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQuZ2FtZTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgaW1wYWN0czogQXJyYXk8T21pdDxDaHJpc3RpYW5pdHlJbXBhY3RFdmVudCwgJ2lkJz4+ID0gW107XG4gICAgICBpZiAodGFyZ2V0RGFtYWdlID4gMCkgaW1wYWN0cy5wdXNoKHsgdGV4dDogYC0ke3RhcmdldERhbWFnZX1gLCB0b25lOiAnZGFtYWdlJywgc2VhdDogJ1AyJywgdGFyZ2V0OiAnYmF0dGxlJyB9KTtcbiAgICAgIGlmIChhdHRhY2tlckRhbWFnZSA+IDApIGltcGFjdHMucHVzaCh7IHRleHQ6IGAtJHthdHRhY2tlckRhbWFnZX1gLCB0b25lOiAnZGFtYWdlJywgc2VhdDogJ1AxJywgdGFyZ2V0OiAnYmF0dGxlJyB9KTtcbiAgICAgIHRoaXMucHVzaEltcGFjdEV2ZW50cyhpbXBhY3RzKTtcbiAgICB9LCA1MjApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVuZFR1cm4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ2FtZSgpLnN0YXR1cyAhPT0gJ2luX3Byb2dyZXNzJykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmNvbWJhdEFuaW1hdGlvbigpKSByZXR1cm47XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5nYW1lLnVwZGF0ZShnYW1lID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBzdHJ1Y3R1cmVkQ2xvbmUoZ2FtZSk7XG4gICAgICBjb25zdCBsb2cgPSBhZHZhbmNlVHVybihuZXh0LCB0aGlzLnJ1bGVNZXNzYWdlcygpKTtcbiAgICAgIG5leHQucmV2aXNpb24rKztcbiAgICAgIG5leHQubG9nID0gWy4uLmxvZywgLi4ubmV4dC5sb2ddLnNsaWNlKDAsIDQpO1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfSk7XG4gICAgdGhpcy5zY2hlZHVsZUJvdFR1cm5JZk5lZWRlZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0TW9jaygpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQm90VHVybigpO1xuICAgIHRoaXMuY2xlYXJDb21iYXRUaW1lcnMoKTtcbiAgICB0aGlzLmNvbWJhdEFuaW1hdGlvbi5zZXQobnVsbCk7XG4gICAgdGhpcy5jb21iYXRUcmFpbC5zZXQobnVsbCk7XG4gICAgdGhpcy5nYW1lLnNldCh0aGlzLmNhdGFsb2dMb2FkZWQoKSA/IHRoaXMuY3JlYXRlVHV0b3JpYWxHYW1lKHRoaXMuYWxsQ2F0YWxvZ0NhcmRzKCkpIDogc3RydWN0dXJlZENsb25lKFNUQVJUSU5HX0dBTUUpKTtcbiAgICB0aGlzLnR1dG9yaWFsUGhhc2Uuc2V0KCdjb2luJyk7XG4gICAgdGhpcy50dXRvcmlhbFNldHVwLnNldChudWxsKTtcbiAgICB0aGlzLnNob3dPcHRpb25zLnNldChmYWxzZSk7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5zaG93SGlzdG9yeS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2hvd0dhbGxlcnkuc2V0KGZhbHNlKTtcbiAgICB0aGlzLm9mZmVyaW5nc1NlYXQuc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN0YXJ0VHV0b3JpYWwoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckJvdFR1cm4oKTtcbiAgICB0aGlzLmNsZWFyQ29tYmF0VGltZXJzKCk7XG4gICAgdGhpcy5yZXNldFRyYW5zaWVudFRhYmxlU3RhdGUoKTtcbiAgICB0aGlzLnR1dG9yaWFsU2V0dXAuc2V0KHRoaXMuY3JlYXRlVHV0b3JpYWxTZXR1cCgpKTtcbiAgICB0aGlzLnR1dG9yaWFsUGhhc2Uuc2V0KCdjb2luJyk7XG4gICAgdGhpcy5zY3JlZW4uc2V0KCd0YWJsZScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnRpbnVlQWZ0ZXJDb2luKCk6IHZvaWQge1xuICAgIGNvbnN0IHNldHVwID0gdGhpcy50dXRvcmlhbFNldHVwKCk7XG4gICAgaWYgKCFzZXR1cCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnR1dG9yaWFsUGhhc2UoKSA9PT0gJ2NvaW4nKSB7XG4gICAgICB0aGlzLnR1dG9yaWFsUGhhc2Uuc2V0KCdsZWFkZXJfcGljaycpO1xuICAgICAgaWYgKHNldHVwLmF2YWlsYWJsZUxlYWRlcnMubGVuZ3RoIDwgMikge1xuICAgICAgICB0aGlzLnN0YXJ0VHV0b3JpYWxNYXRjaChzZXR1cCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChzZXR1cC5sZWFkZXJQaWNrZXIgPT09ICdQMicpIHtcbiAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaG9vc2VSaXZhbFR1dG9yaWFsTGVhZGVyKCksIDUyMCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnR1dG9yaWFsUGhhc2UoKSA9PT0gJ2xlYWRlcl9waWNrJyAmJiBzZXR1cC5sZWFkZXJQaWNrZXIgPT09ICdQMicpIHtcbiAgICAgIHRoaXMuY2hvb3NlUml2YWxUdXRvcmlhbExlYWRlcigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy50dXRvcmlhbFBoYXNlKCkgPT09ICdsZWFkZXJfcGljaycgJiYgc2V0dXAuYXZhaWxhYmxlTGVhZGVycy5sZW5ndGggPCAyKSB7XG4gICAgICB0aGlzLnN0YXJ0VHV0b3JpYWxNYXRjaChzZXR1cCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNob29zZVR1dG9yaWFsTGVhZGVyKGxlYWRlcklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBzZXR1cCA9IHRoaXMudHV0b3JpYWxTZXR1cCgpO1xuICAgIGlmICghc2V0dXAgfHwgc2V0dXAubGVhZGVyUGlja2VyICE9PSAnUDEnKSByZXR1cm47XG4gICAgY29uc3Qgb3Bwb25lbnRMZWFkZXJJZCA9IHNldHVwLmF2YWlsYWJsZUxlYWRlcnMuZmluZChjYW5kaWRhdGUgPT4gY2FuZGlkYXRlICE9PSBsZWFkZXJJZCkgPz8gc2V0dXAuYXZhaWxhYmxlTGVhZGVyc1swXTtcbiAgICB0aGlzLnN0YXJ0VHV0b3JpYWxNYXRjaCh7XG4gICAgICAuLi5zZXR1cCxcbiAgICAgIHBsYXllckxlYWRlcklkOiBsZWFkZXJJZCxcbiAgICAgIG9wcG9uZW50TGVhZGVySWQsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlT3B0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dPcHRpb25zLnVwZGF0ZSh2YWx1ZSA9PiAhdmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc3RhcnRUdXRvcmlhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0VHV0b3JpYWwoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNpZ25UdXRvcmlhbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5nYW1lKCkuc3RhdHVzID09PSAnZmluaXNoZWQnKSByZXR1cm47XG4gICAgdGhpcy5jbGVhckJvdFR1cm4oKTtcbiAgICB0aGlzLmNsZWFyQ29tYmF0VGltZXJzKCk7XG4gICAgdGhpcy50dXRvcmlhbFBoYXNlLnNldCgnZmluaXNoZWQnKTtcbiAgICB0aGlzLnNob3dPcHRpb25zLnNldChmYWxzZSk7XG4gICAgdGhpcy5nYW1lLnVwZGF0ZShnYW1lID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBzdHJ1Y3R1cmVkQ2xvbmUoZ2FtZSk7XG4gICAgICBuZXh0LnN0YXR1cyA9ICdmaW5pc2hlZCc7XG4gICAgICBuZXh0LnBsYXllcnMuUDEubGVhZGVySHAgPSAwO1xuICAgICAgbmV4dC5tYXRjaFNjb3JlLlAyICs9IDE7XG4gICAgICBuZXh0LnJldmlzaW9uKys7XG4gICAgICBuZXh0LmxvZyA9IFt0aGlzLnQoJ2NocmlzdGlhbml0eVJlc2lnbmVkTG9nJyksIC4uLm5leHQubG9nXS5zbGljZSgwLCA0KTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJldHVyblRvQ2hyaXN0aWFuaXR5SG9tZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQm90VHVybigpO1xuICAgIHRoaXMuY2xlYXJDb21iYXRUaW1lcnMoKTtcbiAgICB0aGlzLnJlc2V0VHJhbnNpZW50VGFibGVTdGF0ZSgpO1xuICAgIHRoaXMuc2hvd09wdGlvbnMuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNjcmVlbi5zZXQoJ2hvbWUnKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVHV0b3JpYWxTZXR1cCgpOiBDaHJpc3RpYW5pdHlUdXRvcmlhbFNldHVwIHtcbiAgICBjb25zdCBsZWFkZXJzID0gdGhpcy50dXRvcmlhbExlYWRlckNhcmRzKHRoaXMuYWxsQ2F0YWxvZ0NhcmRzKCkpO1xuICAgIGNvbnN0IGNvaW5XaW5uZXI6IENocmlzdGlhbml0eVNlYXQgPSBUVVRPUklBTF9TRUVEICUgMiA9PT0gMCA/ICdQMScgOiAnUDInO1xuICAgIGNvbnN0IGZpcnN0UGxheWVyOiBDaHJpc3RpYW5pdHlTZWF0ID0gY29pbldpbm5lciA9PT0gJ1AxJyA/ICdQMicgOiAnUDEnO1xuICAgIHJldHVybiB7XG4gICAgICBjb2luV2lubmVyLFxuICAgICAgbGVhZGVyUGlja2VyOiBjb2luV2lubmVyLFxuICAgICAgZmlyc3RQbGF5ZXIsXG4gICAgICBhdmFpbGFibGVMZWFkZXJzOiBsZWFkZXJzLm1hcChjYXJkID0+IGNhcmQuaWQpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNob29zZVJpdmFsVHV0b3JpYWxMZWFkZXIoKTogdm9pZCB7XG4gICAgY29uc3Qgc2V0dXAgPSB0aGlzLnR1dG9yaWFsU2V0dXAoKTtcbiAgICBpZiAoIXNldHVwIHx8IHNldHVwLmxlYWRlclBpY2tlciAhPT0gJ1AyJykgcmV0dXJuO1xuICAgIGNvbnN0IG9wcG9uZW50TGVhZGVySWQgPSB0aGlzLmZpbmRDYXJkKHNldHVwLmF2YWlsYWJsZUxlYWRlcnMubWFwKGlkID0+IHRoaXMuY2FyZERlZmluaXRpb24oaWQpKSwgJ05vw6knKT8uaWQgPz8gc2V0dXAuYXZhaWxhYmxlTGVhZGVyc1swXTtcbiAgICBjb25zdCBwbGF5ZXJMZWFkZXJJZCA9IHNldHVwLmF2YWlsYWJsZUxlYWRlcnMuZmluZChjYW5kaWRhdGUgPT4gY2FuZGlkYXRlICE9PSBvcHBvbmVudExlYWRlcklkKSA/PyBzZXR1cC5hdmFpbGFibGVMZWFkZXJzWzBdO1xuICAgIHRoaXMuc3RhcnRUdXRvcmlhbE1hdGNoKHtcbiAgICAgIC4uLnNldHVwLFxuICAgICAgcGxheWVyTGVhZGVySWQsXG4gICAgICBvcHBvbmVudExlYWRlcklkLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFR1dG9yaWFsTWF0Y2goc2V0dXA6IENocmlzdGlhbml0eVR1dG9yaWFsU2V0dXApOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0VHJhbnNpZW50VGFibGVTdGF0ZSgpO1xuICAgIHRoaXMudHV0b3JpYWxTZXR1cC5zZXQoc2V0dXApO1xuICAgIHRoaXMudHV0b3JpYWxQaGFzZS5zZXQoJ2luX3Byb2dyZXNzJyk7XG4gICAgdGhpcy5nYW1lLnNldCh0aGlzLmNyZWF0ZVR1dG9yaWFsR2FtZSh0aGlzLmFsbENhdGFsb2dDYXJkcygpLCB7XG4gICAgICBwbGF5ZXJMZWFkZXJJZDogc2V0dXAucGxheWVyTGVhZGVySWQsXG4gICAgICBvcHBvbmVudExlYWRlcklkOiBzZXR1cC5vcHBvbmVudExlYWRlcklkLFxuICAgICAgZmlyc3RQbGF5ZXI6IHNldHVwLmZpcnN0UGxheWVyLFxuICAgICAgc2VlZDogVFVUT1JJQUxfU0VFRCxcbiAgICB9KSk7XG4gICAgdGhpcy5zY2hlZHVsZUJvdFR1cm5JZk5lZWRlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldFRyYW5zaWVudFRhYmxlU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5zaG93SGlzdG9yeS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2hvd0dhbGxlcnkuc2V0KGZhbHNlKTtcbiAgICB0aGlzLm9mZmVyaW5nc1NlYXQuc2V0KG51bGwpO1xuICAgIHRoaXMuaW1wYWN0RXZlbnRzLnNldChbXSk7XG4gICAgdGhpcy5jb21iYXRBbmltYXRpb24uc2V0KG51bGwpO1xuICAgIHRoaXMuY29tYmF0VHJhaWwuc2V0KG51bGwpO1xuICAgIHRoaXMuZHJhZ2dpbmdDYXJkSWQuc2V0KG51bGwpO1xuICAgIHRoaXMuZHJhZ2dpbmdBdHRhY2tlckluc3RhbmNlSWQuc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlUHJldmlldygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXguc2V0KDApO1xuICAgIHRoaXMucmVzZXRQcmV2aWV3VGlsdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlSW5mbygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3Blbk9mZmVyaW5ncyhzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgICB0aGlzLnNob3dIaXN0b3J5LnNldChmYWxzZSk7XG4gICAgdGhpcy5zaG93R2FsbGVyeS5zZXQoZmFsc2UpO1xuICAgIHRoaXMub2ZmZXJpbmdzU2VhdC5zZXQoc2VhdCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3Blbkhpc3RvcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgICB0aGlzLm9mZmVyaW5nc1NlYXQuc2V0KG51bGwpO1xuICAgIHRoaXMuc2hvd0dhbGxlcnkuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNob3dIaXN0b3J5LnNldCh0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9zZUhpc3RvcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93SGlzdG9yeS5zZXQoZmFsc2UpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUHJldmlldygpPy5zb3VyY2UgPT09ICdoaXN0b3J5Jykge1xuICAgICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xvc2VPZmZlcmluZ3MoKTogdm9pZCB7XG4gICAgdGhpcy5vZmZlcmluZ3NTZWF0LnNldChudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvcGVuR2FsbGVyeSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KG51bGwpO1xuICAgIHRoaXMub2ZmZXJpbmdzU2VhdC5zZXQobnVsbCk7XG4gICAgdGhpcy5zaG93SGlzdG9yeS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2hvd0dhbGxlcnkuc2V0KHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlR2FsbGVyeSgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dHYWxsZXJ5LnNldChmYWxzZSk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk/LnNvdXJjZSA9PT0gJ2dhbGxlcnknKSB7XG4gICAgICB0aGlzLmNsb3NlUHJldmlldygpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBuYXZpZ2F0ZVByZXZpZXcoZGlyZWN0aW9uOiAtMSB8IDEpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMucHJldmlld0Nhcm91c2VsSXRlbXMoKTtcbiAgICBpZiAoaXRlbXMubGVuZ3RoIDwgMikgcmV0dXJuO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuY3VycmVudFByZXZpZXdDYXJvdXNlbEluZGV4KGl0ZW1zKTtcbiAgICBpZiAoY3VycmVudEluZGV4IDwgMCkgcmV0dXJuO1xuICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyBpdGVtcy5sZW5ndGgpICUgaXRlbXMubGVuZ3RoO1xuICAgIGNvbnN0IG5leHRJdGVtID0gaXRlbXNbbmV4dEluZGV4XTtcbiAgICB0aGlzLnByZXZpZXdTbGlkZURpcmVjdGlvbi5zZXQoZGlyZWN0aW9uKTtcbiAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLnByZXZpZXdTbGlkZURpcmVjdGlvbi5zZXQoMCksIDM2MCk7XG4gICAgaWYgKG5leHRJdGVtLmtpbmQgPT09ICdoaXN0b3J5Jykge1xuICAgICAgdGhpcy5pbnNwZWN0SGlzdG9yeUNhcmQobmV4dEl0ZW0uY2FyZElkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG5leHRJdGVtLmtpbmQgPT09ICdnYWxsZXJ5Jykge1xuICAgICAgdGhpcy5pbnNwZWN0R2FsbGVyeUNhcmQobmV4dEl0ZW0uY2FyZElkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnNwZWN0T2ZmZXJpbmcobmV4dEl0ZW0ub2ZmZXJpbmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBjdXJyZW50UHJldmlld0Nhcm91c2VsSXRlbXMoKTogQXJyYXk8XG4gICAgeyBraW5kOiAnaGlzdG9yeSc7IGNhcmRJZDogc3RyaW5nIH1cbiAgICB8IHsga2luZDogJ29mZmVyaW5nJzsgb2ZmZXJpbmc6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UgfVxuICAgIHwgeyBraW5kOiAnZ2FsbGVyeSc7IGNhcmRJZDogc3RyaW5nIH1cbiAgPiB7XG4gICAgY29uc3QgcHJldmlldyA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk7XG4gICAgaWYgKCFwcmV2aWV3KSByZXR1cm4gW107XG4gICAgaWYgKHByZXZpZXcuc291cmNlID09PSAnaGlzdG9yeScgJiYgdGhpcy5zaG93SGlzdG9yeSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nYW1lKCkuaGlzdG9yeVpvbmUubWFwKGNhcmRJZCA9PiAoeyBraW5kOiAnaGlzdG9yeScsIGNhcmRJZCB9KSk7XG4gICAgfVxuICAgIGlmIChwcmV2aWV3LnNvdXJjZSA9PT0gJ29mZmVyaW5ncycgJiYgcHJldmlldy5zZWF0KSB7XG4gICAgICByZXR1cm4gdGhpcy5nYW1lKCkucGxheWVyc1twcmV2aWV3LnNlYXRdLm9mZmVyaW5ncy5tYXAob2ZmZXJpbmcgPT4gKHsga2luZDogJ29mZmVyaW5nJywgb2ZmZXJpbmcgfSkpO1xuICAgIH1cbiAgICBpZiAocHJldmlldy5zb3VyY2UgPT09ICdnYWxsZXJ5JyAmJiB0aGlzLnNob3dHYWxsZXJ5KCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdhbGxlcnlDYXJkcygpLm1hcChjYXJkID0+ICh7IGtpbmQ6ICdnYWxsZXJ5JyBhcyBjb25zdCwgY2FyZElkOiBjYXJkLmlkIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBjdXJyZW50UHJldmlld0Nhcm91c2VsSW5kZXgoXG4gICAgaXRlbXM6IEFycmF5PFxuICAgICAgeyBraW5kOiAnaGlzdG9yeSc7IGNhcmRJZDogc3RyaW5nIH1cbiAgICAgIHwgeyBraW5kOiAnb2ZmZXJpbmcnOyBvZmZlcmluZzogQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSB9XG4gICAgICB8IHsga2luZDogJ2dhbGxlcnknOyBjYXJkSWQ6IHN0cmluZyB9XG4gICAgPixcbiAgKTogbnVtYmVyIHtcbiAgICBjb25zdCBwcmV2aWV3ID0gdGhpcy5zZWxlY3RlZFByZXZpZXcoKTtcbiAgICBpZiAoIXByZXZpZXcpIHJldHVybiAtMTtcbiAgICBpZiAocHJldmlldy5zb3VyY2UgPT09ICdoaXN0b3J5Jykge1xuICAgICAgcmV0dXJuIGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0ua2luZCA9PT0gJ2hpc3RvcnknICYmIGl0ZW0uY2FyZElkID09PSBwcmV2aWV3LmNhcmRJZCk7XG4gICAgfVxuICAgIGlmIChwcmV2aWV3LnNvdXJjZSA9PT0gJ29mZmVyaW5ncycpIHtcbiAgICAgIHJldHVybiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmtpbmQgPT09ICdvZmZlcmluZycgJiYgaXRlbS5vZmZlcmluZy5pbnN0YW5jZUlkID09PSBwcmV2aWV3Lm9mZmVyaW5nSW5zdGFuY2VJZCk7XG4gICAgfVxuICAgIGlmIChwcmV2aWV3LnNvdXJjZSA9PT0gJ2dhbGxlcnknKSB7XG4gICAgICByZXR1cm4gaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5raW5kID09PSAnZ2FsbGVyeScgJiYgaXRlbS5jYXJkSWQgPT09IHByZXZpZXcuY2FyZElkKTtcbiAgICB9XG4gICAgcmV0dXJuIC0xO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEdhbGxlcnlTZWFyY2goZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5nYWxsZXJ5U2VhcmNoLnNldCgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRHYWxsZXJ5VHlwZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmdhbGxlcnlUeXBlLnNldCgoZXZlbnQudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50KS52YWx1ZSBhcyBDaHJpc3RpYW5pdHlHYWxsZXJ5VHlwZUZpbHRlcik7XG4gIH1cblxuICBwcm90ZWN0ZWQgdGlsdFByZXZpZXcoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGJvdW5kcyA9IChldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB4ID0gKGV2ZW50LmNsaWVudFggLSBib3VuZHMubGVmdCkgLyBib3VuZHMud2lkdGggLSAwLjU7XG4gICAgY29uc3QgeSA9IChldmVudC5jbGllbnRZIC0gYm91bmRzLnRvcCkgLyBib3VuZHMuaGVpZ2h0IC0gMC41O1xuICAgIHRoaXMucHJldmlld1RpbHQuc2V0KHtcbiAgICAgIHJvdGF0ZVg6IC15ICogNyxcbiAgICAgIHJvdGF0ZVk6IHggKiA3LFxuICAgICAgc2hpZnRYOiB4ICogNCxcbiAgICAgIHNoaWZ0WTogeSAqIDQsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzZXRQcmV2aWV3VGlsdCgpOiB2b2lkIHtcbiAgICB0aGlzLnByZXZpZXdUaWx0LnNldChDSFJJU1RJQU5JVFlfUFJFVklFV19ORVVUUkFMX1RJTFQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGltcGFjdFBvcFByb3BzKGltcGFjdDogQ2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQpOiBNaW5pR2FtZVNjb3JlUG9wTWV0YWRhdGEge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5pbXBhY3RQb3NpdGlvbihpbXBhY3QpO1xuICAgIHJldHVybiB7XG4gICAgICBzY29yZTogaW1wYWN0LnRleHQsXG4gICAgICBsYWJlbDogdGhpcy5pbXBhY3RMYWJlbChpbXBhY3QpLFxuICAgICAgeDogcG9zaXRpb24ueCxcbiAgICAgIHk6IHBvc2l0aW9uLnksXG4gICAgICB0b25lUmdiOiB0aGlzLmltcGFjdFRvbmVSZ2IoaW1wYWN0KSxcbiAgICAgIGR1cmF0aW9uTXM6IDExMjAsXG4gICAgICB2YXJpYW50OiBpbXBhY3QudG9uZSA9PT0gJ2RhbWFnZScgPyAncGVuYWx0eScgOiAnYm9udXMnLFxuICAgICAgYXJpYUxpdmU6ICdwb2xpdGUnLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGltcGFjdFBvc2l0aW9uKGltcGFjdDogQ2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQpOiB7IHg6IHN0cmluZzsgeTogc3RyaW5nIH0ge1xuICAgIGlmIChpbXBhY3Quc2VhdCA9PT0gJ1AyJyAmJiBpbXBhY3QudGFyZ2V0ID09PSAnbGVhZGVyJykgcmV0dXJuIHsgeDogJzUwJScsIHk6ICcxMCUnIH07XG4gICAgaWYgKGltcGFjdC5zZWF0ID09PSAnUDInICYmIGltcGFjdC50YXJnZXQgPT09ICdiYXR0bGUnKSByZXR1cm4geyB4OiAnNTAlJywgeTogJzI3JScgfTtcbiAgICBpZiAoaW1wYWN0LnNlYXQgPT09ICdQMicgJiYgaW1wYWN0LnRhcmdldCA9PT0gJ29mZmVyaW5ncycpIHJldHVybiB7IHg6ICcxMSUnLCB5OiAnOCUnIH07XG4gICAgaWYgKGltcGFjdC5zZWF0ID09PSAnUDEnICYmIGltcGFjdC50YXJnZXQgPT09ICdiYXR0bGUnKSByZXR1cm4geyB4OiAnNTAlJywgeTogJzY3JScgfTtcbiAgICBpZiAoaW1wYWN0LnNlYXQgPT09ICdQMScgJiYgaW1wYWN0LnRhcmdldCA9PT0gJ2xlYWRlcicpIHJldHVybiB7IHg6ICc1MCUnLCB5OiAnODQlJyB9O1xuICAgIGlmIChpbXBhY3Quc2VhdCA9PT0gJ1AxJyAmJiBpbXBhY3QudGFyZ2V0ID09PSAnb2ZmZXJpbmdzJykgcmV0dXJuIHsgeDogJzEwJScsIHk6ICc4NCUnIH07XG4gICAgcmV0dXJuIHsgeDogJzUwJScsIHk6ICc1MCUnIH07XG4gIH1cblxuICBwcml2YXRlIGltcGFjdExhYmVsKGltcGFjdDogQ2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQpOiBzdHJpbmcge1xuICAgIGlmIChpbXBhY3QudG9uZSA9PT0gJ3Jlc291cmNlJykgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdzJyk7XG4gICAgaWYgKGltcGFjdC50b25lID09PSAnaGVhbCcpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKTtcbiAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlEYW1hZ2UnKTtcbiAgfVxuXG4gIHByaXZhdGUgaW1wYWN0VG9uZVJnYihpbXBhY3Q6IENocmlzdGlhbml0eUltcGFjdEV2ZW50KTogc3RyaW5nIHtcbiAgICBpZiAoaW1wYWN0LnRvbmUgPT09ICdkYW1hZ2UnKSByZXR1cm4gJzIyMCwgMzgsIDM4JztcbiAgICBpZiAoaW1wYWN0LnRvbmUgPT09ICdoZWFsJykgcmV0dXJuICcyMiwgMTYzLCA3NCc7XG4gICAgcmV0dXJuICczNywgOTksIDIzNSc7XG4gIH1cblxuICBwcml2YXRlIHB1c2hJbXBhY3RFdmVudChldmVudDogT21pdDxDaHJpc3RpYW5pdHlJbXBhY3RFdmVudCwgJ2lkJz4pOiB2b2lkIHtcbiAgICBjb25zdCBpZCA9ICsrdGhpcy5pbXBhY3RFdmVudFNlcXVlbmNlO1xuICAgIHRoaXMuaW1wYWN0RXZlbnRzLnVwZGF0ZShldmVudHMgPT4gWy4uLmV2ZW50cywgeyAuLi5ldmVudCwgaWQgfV0uc2xpY2UoLTYpKTtcbiAgICBjb25zdCB0aW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaW1wYWN0VGltZXJzLmRlbGV0ZSh0aW1lcik7XG4gICAgICB0aGlzLmltcGFjdEV2ZW50cy51cGRhdGUoZXZlbnRzID0+IGV2ZW50cy5maWx0ZXIoaW1wYWN0ID0+IGltcGFjdC5pZCAhPT0gaWQpKTtcbiAgICB9LCAxMTIwKTtcbiAgICB0aGlzLmltcGFjdFRpbWVycy5hZGQodGltZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBwdXNoSW1wYWN0RXZlbnRzKGV2ZW50czogQXJyYXk8T21pdDxDaHJpc3RpYW5pdHlJbXBhY3RFdmVudCwgJ2lkJz4+KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHMpIHtcbiAgICAgIHRoaXMucHVzaEltcGFjdEV2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbWJhdEFuaW1hdGlvbkF0dGFja2VyKGFuaW1hdGlvbjogQ2hyaXN0aWFuaXR5Q29tYmF0QW5pbWF0aW9uKTogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5nYW1lKCkucGxheWVyc1thbmltYXRpb24uYXR0YWNrZXJTZWF0XS5iYXR0bGVab25lLmZpbmQoY2FyZCA9PiBjYXJkLmluc3RhbmNlSWQgPT09IGFuaW1hdGlvbi5hdHRhY2tlckluc3RhbmNlSWQpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGNvbWJhdEFuaW1hdGlvblRhcmdldExhYmVsKGFuaW1hdGlvbjogQ2hyaXN0aWFuaXR5Q29tYmF0QW5pbWF0aW9uKTogc3RyaW5nIHtcbiAgICBpZiAoYW5pbWF0aW9uLnRhcmdldCA9PT0gJ2xlYWRlcicpIHtcbiAgICAgIHJldHVybiB0aGlzLmdhbWUoKS5wbGF5ZXJzW2FuaW1hdGlvbi50YXJnZXRTZWF0XS5sZWFkZXJOYW1lO1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmdhbWUoKS5wbGF5ZXJzW2FuaW1hdGlvbi50YXJnZXRTZWF0XS5iYXR0bGVab25lLmZpbmQoY2FyZCA9PiBjYXJkLmluc3RhbmNlSWQgPT09IGFuaW1hdGlvbi50YXJnZXRJbnN0YW5jZUlkKTtcbiAgICByZXR1cm4gdGFyZ2V0Py5uYW1lID8/IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyQ2FyZCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzQ29tYmF0QXR0YWNrZXIoY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb21iYXRBbmltYXRpb24oKT8uYXR0YWNrZXJJbnN0YW5jZUlkID09PSBjYXJkLmluc3RhbmNlSWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNDb21iYXRDaGFyYWN0ZXJUYXJnZXQoY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiBib29sZWFuIHtcbiAgICBjb25zdCBhbmltYXRpb24gPSB0aGlzLmNvbWJhdEFuaW1hdGlvbigpO1xuICAgIHJldHVybiBhbmltYXRpb24/LnRhcmdldCA9PT0gJ2NoYXJhY3RlcicgJiYgYW5pbWF0aW9uLnRhcmdldEluc3RhbmNlSWQgPT09IGNhcmQuaW5zdGFuY2VJZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0NvbWJhdExlYWRlclRhcmdldChzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogYm9vbGVhbiB7XG4gICAgY29uc3QgYW5pbWF0aW9uID0gdGhpcy5jb21iYXRBbmltYXRpb24oKTtcbiAgICByZXR1cm4gYW5pbWF0aW9uPy50YXJnZXQgPT09ICdsZWFkZXInICYmIGFuaW1hdGlvbi50YXJnZXRTZWF0ID09PSBzZWF0O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydENvbWJhdEFuaW1hdGlvbihhbmltYXRpb246IENocmlzdGlhbml0eUNvbWJhdEFuaW1hdGlvbik6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJDb21iYXRUaW1lcnMoKTtcbiAgICB0aGlzLmNvbWJhdEFuaW1hdGlvbi5zZXQoYW5pbWF0aW9uKTtcbiAgICB0aGlzLmNvbWJhdFRyYWlsLnNldCh0aGlzLmNyZWF0ZUNvbWJhdFRyYWlsKGFuaW1hdGlvbikpO1xuICAgIHRoaXMuY29tYmF0VHJhaWxDbGVhclRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jb21iYXRUcmFpbC5zZXQobnVsbCk7XG4gICAgICB0aGlzLmNvbWJhdFRyYWlsQ2xlYXJUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9LCA4ODApO1xuICAgIHRoaXMuY29tYmF0Q2xlYXJUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY29tYmF0QW5pbWF0aW9uLnNldChudWxsKTtcbiAgICAgIHRoaXMuY29tYmF0Q2xlYXJUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9LCA5ODApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb21iYXRUcmFpbChhbmltYXRpb246IENocmlzdGlhbml0eUNvbWJhdEFuaW1hdGlvbik6IENocmlzdGlhbml0eUNvbWJhdFRyYWlsIHtcbiAgICBjb25zdCBmcm9tID0gdGhpcy5jb21iYXRBbmNob3IoYW5pbWF0aW9uLmF0dGFja2VyU2VhdCwgJ2JhdHRsZScpO1xuICAgIGNvbnN0IHRvID0gdGhpcy5jb21iYXRBbmNob3IoYW5pbWF0aW9uLnRhcmdldFNlYXQsIGFuaW1hdGlvbi50YXJnZXQpO1xuICAgIGNvbnN0IGR4ID0gdG8ueCAtIGZyb20ueDtcbiAgICBjb25zdCBkeSA9IHRvLnkgLSBmcm9tLnk7XG4gICAgY29uc3QgbGVuZ3RoID0gTWF0aC5tYXgoMTIsIE1hdGguaHlwb3QoZHgsIGR5KSk7XG4gICAgY29uc3QgYW5nbGUgPSBNYXRoLmF0YW4yKGR5LCBkeCkgKiAxODAgLyBNYXRoLlBJO1xuICAgIHJldHVybiB7XG4gICAgICBmcm9tWDogYCR7ZnJvbS54fSVgLFxuICAgICAgZnJvbVk6IGAke2Zyb20ueX0lYCxcbiAgICAgIG1pZFg6IGAke3RvLnh9JWAsXG4gICAgICBtaWRZOiBgJHt0by55fSVgLFxuICAgICAgbGVuZ3RoOiBgJHtsZW5ndGh9JWAsXG4gICAgICBhbmdsZTogYCR7YW5nbGV9ZGVnYCxcbiAgICAgIHRvbmU6IGFuaW1hdGlvbi50YXJnZXQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY29tYmF0QW5jaG9yKHNlYXQ6IENocmlzdGlhbml0eVNlYXQsIHRhcmdldDogJ2xlYWRlcicgfCAnY2hhcmFjdGVyJyB8ICdiYXR0bGUnKTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9IHtcbiAgICBpZiAoc2VhdCA9PT0gJ1AyJykge1xuICAgICAgaWYgKHRhcmdldCA9PT0gJ2xlYWRlcicpIHJldHVybiB7IHg6IDUwLCB5OiAxMCB9O1xuICAgICAgcmV0dXJuIHsgeDogNTAsIHk6IDI4IH07XG4gICAgfVxuICAgIGlmICh0YXJnZXQgPT09ICdsZWFkZXInKSByZXR1cm4geyB4OiA1MCwgeTogODQgfTtcbiAgICByZXR1cm4geyB4OiA1MCwgeTogNjggfTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJDb21iYXRUaW1lcnMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tYmF0UmVzb2x1dGlvblRpbWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5jb21iYXRSZXNvbHV0aW9uVGltZXIpO1xuICAgICAgdGhpcy5jb21iYXRSZXNvbHV0aW9uVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbWJhdENsZWFyVGltZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLmNvbWJhdENsZWFyVGltZXIpO1xuICAgICAgdGhpcy5jb21iYXRDbGVhclRpbWVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb21iYXRUcmFpbENsZWFyVGltZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLmNvbWJhdFRyYWlsQ2xlYXJUaW1lcik7XG4gICAgICB0aGlzLmNvbWJhdFRyYWlsQ2xlYXJUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5jb21iYXRUcmFpbC5zZXQobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIHRyaWdnZXJIaXN0b3J5UHVsc2UoKTogdm9pZCB7XG4gICAgdGhpcy5oaXN0b3J5UHVsc2Uuc2V0KGZhbHNlKTtcbiAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmhpc3RvcnlQdWxzZS5zZXQodHJ1ZSksIDApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuaGlzdG9yeVB1bHNlLnNldChmYWxzZSksIDkwMCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyQm90VHVybigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ib3RUdXJuVGltZXIgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5ib3RUdXJuVGltZXIpO1xuICAgIHRoaXMuYm90VHVyblRpbWVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzY2hlZHVsZUJvdFR1cm5JZk5lZWRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQm90VHVybigpO1xuICAgIGNvbnN0IGdhbWUgPSB0aGlzLmdhbWUoKTtcbiAgICBpZiAodGhpcy5zY3JlZW4oKSAhPT0gJ3RhYmxlJyB8fCBnYW1lLnN0YXR1cyAhPT0gJ2luX3Byb2dyZXNzJyB8fCBnYW1lLnR1cm5Pd25lciAhPT0gJ1AyJykgcmV0dXJuO1xuICAgIHRoaXMuYm90VHVyblRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5ib3RUdXJuVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnJ1blR1dG9yaWFsQm90VHVybigpO1xuICAgIH0sIDUyMCk7XG4gIH1cblxuICBwcml2YXRlIHJ1blR1dG9yaWFsQm90VHVybigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgICBjb25zdCBpbXBhY3RzOiBBcnJheTxPbWl0PENocmlzdGlhbml0eUltcGFjdEV2ZW50LCAnaWQnPj4gPSBbXTtcbiAgICB0aGlzLmdhbWUudXBkYXRlKGdhbWUgPT4ge1xuICAgICAgaWYgKGdhbWUuc3RhdHVzICE9PSAnaW5fcHJvZ3Jlc3MnIHx8IGdhbWUudHVybk93bmVyICE9PSAnUDInKSByZXR1cm4gZ2FtZTtcbiAgICAgIGNvbnN0IG5leHQgPSBzdHJ1Y3R1cmVkQ2xvbmUoZ2FtZSk7XG4gICAgICBjb25zdCBoaXN0b3J5QmVmb3JlID0gbmV4dC5oaXN0b3J5Wm9uZS5sZW5ndGg7XG4gICAgICBjb25zdCBsb2c6IHN0cmluZ1tdID0gW107XG4gICAgICB0aGlzLnJlc29sdmVCb3RQbGF5cyhuZXh0LCBsb2cpO1xuICAgICAgdGhpcy5yZXNvbHZlQm90QXR0YWNrKG5leHQsIGxvZywgaW1wYWN0cyk7XG4gICAgICBpZiAobmV4dC5oaXN0b3J5Wm9uZS5sZW5ndGggPiBoaXN0b3J5QmVmb3JlKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckhpc3RvcnlQdWxzZSgpO1xuICAgICAgfVxuICAgICAgZXZhbHVhdGVWaWN0b3J5KG5leHQsIGxvZywgdGhpcy5ydWxlTWVzc2FnZXMoKSk7XG4gICAgICBpZiAobmV4dC5zdGF0dXMgPT09ICdpbl9wcm9ncmVzcycpIHtcbiAgICAgICAgbG9nLnB1c2goLi4uYWR2YW5jZVR1cm4obmV4dCwgdGhpcy5ydWxlTWVzc2FnZXMoKSkpO1xuICAgICAgfVxuICAgICAgbmV4dC5yZXZpc2lvbisrO1xuICAgICAgbmV4dC5sb2cgPSBbLi4ubG9nLCAuLi5uZXh0LmxvZ10uc2xpY2UoMCwgNCk7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9KTtcbiAgICB0aGlzLnB1c2hJbXBhY3RFdmVudHMoaW1wYWN0cyk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVCb3RQbGF5cyhnYW1lOiBDaHJpc3RpYW5pdHlHYW1lU3RhdGUsIGxvZzogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBjb25zdCBib3QgPSBnYW1lLnBsYXllcnMuUDI7XG4gICAgY29uc3QgaGFuZCA9IFsuLi4oYm90LmhhbmQgPz8gW10pXTtcbiAgICBjb25zdCBvZmZlcmluZ0lkID0gaGFuZC5maW5kKGNhcmRJZCA9PiB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCkudHlwZSA9PT0gJ29mZmVyaW5nJyAmJiBjYW5QbGF5Q2FyZChnYW1lLCAnUDInLCB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCkpKTtcbiAgICBpZiAob2ZmZXJpbmdJZCkge1xuICAgICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24ob2ZmZXJpbmdJZCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBwbGF5Q2hyaXN0aWFuaXR5Q2FyZEZyb21IYW5kKGdhbWUsICdQMicsIGNhcmQsIHsgZGlzcGxheU5hbWU6IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNhcmQpLm5hbWUgfSk7XG4gICAgICBpZiAocmVzdWx0LnBsYXllZCkge1xuICAgICAgICBPYmplY3QuYXNzaWduKGdhbWUsIHJlc3VsdC5nYW1lKTtcbiAgICAgICAgbG9nLnB1c2goLi4ucmVzdWx0LmxvZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGxheWFibGVDaGFyYWN0ZXJzID0gWy4uLihnYW1lLnBsYXllcnMuUDIuaGFuZCA/PyBbXSldXG4gICAgICAubWFwKGNhcmRJZCA9PiB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCkpXG4gICAgICAuZmlsdGVyKGNhcmQgPT4gY2FyZC50eXBlID09PSAnY2hhcmFjdGVyJyAmJiBjYW5QbGF5Q2FyZChnYW1lLCAnUDInLCBjYXJkKSlcbiAgICAgIC5zb3J0KChsZWZ0LCByaWdodCkgPT4gKHJpZ2h0LmF0dGFjayA/PyAwKSAtIChsZWZ0LmF0dGFjayA/PyAwKSB8fCAocmlnaHQubGlmZSA/PyAwKSAtIChsZWZ0LmxpZmUgPz8gMCkpO1xuICAgIGNvbnN0IGNoYXJhY3RlciA9IHBsYXlhYmxlQ2hhcmFjdGVyc1swXTtcbiAgICBpZiAoY2hhcmFjdGVyKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBwbGF5Q2hyaXN0aWFuaXR5Q2FyZEZyb21IYW5kKGdhbWUsICdQMicsIGNoYXJhY3Rlciwge1xuICAgICAgICBkaXNwbGF5TmFtZTogdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoY2hhcmFjdGVyKS5uYW1lLFxuICAgICAgfSk7XG4gICAgICBpZiAocmVzdWx0LnBsYXllZCkge1xuICAgICAgICBPYmplY3QuYXNzaWduKGdhbWUsIHJlc3VsdC5nYW1lKTtcbiAgICAgICAgbG9nLnB1c2goLi4ucmVzdWx0LmxvZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlQm90QXR0YWNrKFxuICAgIGdhbWU6IENocmlzdGlhbml0eUdhbWVTdGF0ZSxcbiAgICBsb2c6IHN0cmluZ1tdLFxuICAgIGltcGFjdHM6IEFycmF5PE9taXQ8Q2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQsICdpZCc+PlxuICApOiB2b2lkIHtcbiAgICBjb25zdCBib3QgPSBnYW1lLnBsYXllcnMuUDI7XG4gICAgY29uc3QgcGxheWVyID0gZ2FtZS5wbGF5ZXJzLlAxO1xuICAgIGNvbnN0IGF0dGFja2VyID0gYm90LmJhdHRsZVpvbmVcbiAgICAgIC5maWx0ZXIoY2FyZCA9PiBjYXJkLmNhbkF0dGFjayAmJiBjYXJkLmF0dGFjayA+IDApXG4gICAgICAuc29ydCgobGVmdCwgcmlnaHQpID0+IChsZWZ0LnNsb3QgPz8gMCkgLSAocmlnaHQuc2xvdCA/PyAwKSlbMF07XG5cbiAgICBpZiAoIWF0dGFja2VyKSB7XG4gICAgICBsb2cucHVzaCh0aGlzLnQoJ2NocmlzdGlhbml0eUJvdE5vQXR0YWNrZXJzJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldCA9IHBsYXllci5iYXR0bGVab25lXG4gICAgICAuZmlsdGVyKGNhcmQgPT4gY2FyZC5jdXJyZW50SHAgPiAwKVxuICAgICAgLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiBsZWZ0LmN1cnJlbnRIcCAtIHJpZ2h0LmN1cnJlbnRIcCB8fCAobGVmdC5zbG90ID8/IDApIC0gKHJpZ2h0LnNsb3QgPz8gMCkpWzBdO1xuXG4gICAgaWYgKHRhcmdldCkge1xuICAgICAgaW1wYWN0cy5wdXNoKHsgdGV4dDogYC0ke2F0dGFja2VyLmF0dGFja31gLCB0b25lOiAnZGFtYWdlJywgc2VhdDogJ1AxJywgdGFyZ2V0OiAnYmF0dGxlJyB9KTtcbiAgICAgIGltcGFjdHMucHVzaCh7IHRleHQ6IGAtJHt0YXJnZXQuYXR0YWNrfWAsIHRvbmU6ICdkYW1hZ2UnLCBzZWF0OiAnUDInLCB0YXJnZXQ6ICdiYXR0bGUnIH0pO1xuICAgICAgdGFyZ2V0LmN1cnJlbnRIcCAtPSBhdHRhY2tlci5hdHRhY2s7XG4gICAgICBhdHRhY2tlci5jdXJyZW50SHAgLT0gdGFyZ2V0LmF0dGFjaztcbiAgICAgIGF0dGFja2VyLmNhbkF0dGFjayA9IGZhbHNlO1xuICAgICAgbG9nLnB1c2goYCR7YXR0YWNrZXIubmFtZX0gJHt0aGlzLnQoJ2NocmlzdGlhbml0eUNvbWJhdHNBZ2FpbnN0Jyl9ICR7dGFyZ2V0Lm5hbWV9LmApO1xuICAgICAgY2xlYW51cERlc3Ryb3llZChwbGF5ZXIsIGdhbWUpO1xuICAgICAgY2xlYW51cERlc3Ryb3llZChib3QsIGdhbWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGltcGFjdHMucHVzaCh7IHRleHQ6IGAtJHthdHRhY2tlci5hdHRhY2t9YCwgdG9uZTogJ2RhbWFnZScsIHNlYXQ6ICdQMScsIHRhcmdldDogJ2xlYWRlcicgfSk7XG4gICAgcGxheWVyLmxlYWRlckhwID0gTWF0aC5tYXgoMCwgcGxheWVyLmxlYWRlckhwIC0gYXR0YWNrZXIuYXR0YWNrKTtcbiAgICBhdHRhY2tlci5jYW5BdHRhY2sgPSBmYWxzZTtcbiAgICBsb2cucHVzaChgJHthdHRhY2tlci5uYW1lfSAke3RoaXMudCgnY2hyaXN0aWFuaXR5QXR0YWNrc1lvdXJMZWFkZXInKX1gKTtcbiAgfVxuXG4gIHByaXZhdGUgcnVsZU1lc3NhZ2VzKCk6IENocmlzdGlhbml0eVJ1bGVNZXNzYWdlcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF0dGFja3NPcHBvbmVudExlYWRlcjogdGhpcy50KCdjaHJpc3RpYW5pdHlBdHRhY2tzT3Bwb25lbnRMZWFkZXInKSxcbiAgICAgIGF0dGFja3NZb3VyTGVhZGVyOiB0aGlzLnQoJ2NocmlzdGlhbml0eUF0dGFja3NZb3VyTGVhZGVyJyksXG4gICAgICBjb21iYXRzQWdhaW5zdDogdGhpcy50KCdjaHJpc3RpYW5pdHlDb21iYXRzQWdhaW5zdCcpLFxuICAgICAgZHJhd3NDYXJkOiB0aGlzLnQoJ2NocmlzdGlhbml0eURyYXdzQ2FyZCcpLFxuICAgICAgZGVja0lzRW1wdHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5RGVja0lzRW1wdHknKSxcbiAgICAgIHR1cm5PZjogdGhpcy50KCdjaHJpc3RpYW5pdHlUdXJuT2YnKSxcbiAgICAgIHlvdVdpbjogdGhpcy50KCdjaHJpc3RpYW5pdHlZb3VXaW4nKSxcbiAgICAgIG9wcG9uZW50V2luczogdGhpcy50KCdjaHJpc3RpYW5pdHlPcHBvbmVudFdpbnMnKSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGluc3BlY3RMZWFkZXIoc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleC5zZXQoMCk7XG4gICAgY29uc3QgcGxheWVyID0gdGhpcy5nYW1lKCkucGxheWVyc1tzZWF0XTtcbiAgICBjb25zdCBsZWFkZXIgPSBwbGF5ZXIubGVhZGVyQ2FyZElkID8gdGhpcy5jYXJkRGVmaW5pdGlvbihwbGF5ZXIubGVhZGVyQ2FyZElkKSA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQoe1xuICAgICAgdGl0bGU6IGxlYWRlciA/IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGxlYWRlcikubmFtZSA6IHBsYXllci5sZWFkZXJOYW1lLFxuICAgICAgZXllYnJvdzogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksXG4gICAgICBtZXRhOiBgJHtwbGF5ZXIubGVhZGVySHB9LyR7cGxheWVyLmxlYWRlck1heEhwfWAsXG4gICAgICBib2R5OiBzZWF0ID09PSAnUDInICYmIHRoaXMuaGFzT3Bwb25lbnRHdWFyZHMoKSA/IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyUHJvdGVjdGVkJykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckJvZHknKSxcbiAgICAgIGNhcmRJZDogcGxheWVyLmxlYWRlckNhcmRJZCxcbiAgICAgIHNvdXJjZTogJ2JvYXJkJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0T2ZmZXJpbmcob2ZmZXJpbmc6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXguc2V0KDApO1xuICAgIGNvbnN0IGRlZmluaXRpb24gPSB0aGlzLmNhcmREZWZpbml0aW9uKG9mZmVyaW5nLmNhcmRJZCk7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGRlZmluaXRpb24pO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldCh7XG4gICAgICB0aXRsZTogdGV4dC5uYW1lLFxuICAgICAgZXllYnJvdzogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSxcbiAgICAgIG1ldGE6IG9mZmVyaW5nLnJlYWR5ID8gdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ1JlYWR5JykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nRXhoYXVzdGVkJyksXG4gICAgICBib2R5OiB0ZXh0LmFiaWxpdHlUZXh0ID8/IG9mZmVyaW5nLmFiaWxpdHlUZXh0ID8/IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdCb2R5JyksXG4gICAgICBjYXJkSWQ6IG9mZmVyaW5nLmNhcmRJZCxcbiAgICAgIHNvdXJjZTogJ29mZmVyaW5ncycsXG4gICAgICBzZWF0OiBvZmZlcmluZy5vd25lcixcbiAgICAgIG9mZmVyaW5nSW5zdGFuY2VJZDogb2ZmZXJpbmcuaW5zdGFuY2VJZCxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvZmZlcmluZ0FiaWxpdHlUZXh0KG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlKTogc3RyaW5nIHtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQodGhpcy5jYXJkRGVmaW5pdGlvbihvZmZlcmluZy5jYXJkSWQpKTtcbiAgICByZXR1cm4gdGV4dC5hYmlsaXR5VGV4dCA/PyBvZmZlcmluZy5hYmlsaXR5VGV4dCA/PyB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nTm9BYmlsaXR5Jyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuVXNlT2ZmZXJpbmdBYmlsaXR5KG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlLCBzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogYm9vbGVhbiB7XG4gICAgaWYgKHNlYXQgIT09ICdQMScpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gY2FuVXNlQ2hyaXN0aWFuaXR5T2ZmZXJpbmdBYmlsaXR5KHRoaXMuZ2FtZSgpLCBzZWF0LCBvZmZlcmluZy5pbnN0YW5jZUlkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1c2VPZmZlcmluZ0FiaWxpdHkob2ZmZXJpbmc6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UsIHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2FuVXNlT2ZmZXJpbmdBYmlsaXR5KG9mZmVyaW5nLCBzZWF0KSkgcmV0dXJuO1xuICAgIGxldCBsZWFkZXJEYW1hZ2UgPSAwO1xuICAgIGxldCByZXNlcnZlR2FpbiA9IDA7XG4gICAgdGhpcy5nYW1lLnVwZGF0ZShnYW1lID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc29sdmVPZmZlcmluZ0FiaWxpdHkoZ2FtZSwgc2VhdCwgb2ZmZXJpbmcuaW5zdGFuY2VJZCwgdGhpcy5ydWxlTWVzc2FnZXMoKSk7XG4gICAgICBsZWFkZXJEYW1hZ2UgPSByZXN1bHQubGVhZGVyRGFtYWdlO1xuICAgICAgcmVzZXJ2ZUdhaW4gPSByZXN1bHQucmVzZXJ2ZUdhaW47XG4gICAgICByZXR1cm4gcmVzdWx0LmdhbWU7XG4gICAgfSk7XG4gICAgaWYgKGxlYWRlckRhbWFnZSA+IDApIHtcbiAgICAgIHRoaXMucHVzaEltcGFjdEV2ZW50KHsgdGV4dDogYC0ke2xlYWRlckRhbWFnZX1gLCB0b25lOiAnZGFtYWdlJywgc2VhdCwgdGFyZ2V0OiAnbGVhZGVyJyB9KTtcbiAgICB9XG4gICAgaWYgKHJlc2VydmVHYWluID4gMCkge1xuICAgICAgdGhpcy5wdXNoSW1wYWN0RXZlbnQoeyB0ZXh0OiBgKyR7cmVzZXJ2ZUdhaW59YCwgdG9uZTogJ3Jlc291cmNlJywgc2VhdCwgdGFyZ2V0OiAnb2ZmZXJpbmdzJyB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0UHJldmlld0FiaWxpdHkoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eUluZGV4LnNldChpbmRleCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmF2aWdhdGVQcmV2aWV3QWJpbGl0eShkaXJlY3Rpb246IC0xIHwgMSk6IHZvaWQge1xuICAgIGNvbnN0IGFiaWxpdGllcyA9IHRoaXMucHJldmlld0FiaWxpdGllcygpO1xuICAgIGlmIChhYmlsaXRpZXMubGVuZ3RoIDwgMikgcmV0dXJuO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGFiaWxpdGllcy5maW5kSW5kZXgoYWJpbGl0eSA9PiBhYmlsaXR5LmluZGV4ID09PSB0aGlzLnNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleCgpKTtcbiAgICBjb25zdCBuZXh0SW5kZXggPSAoTWF0aC5tYXgoY3VycmVudEluZGV4LCAwKSArIGRpcmVjdGlvbiArIGFiaWxpdGllcy5sZW5ndGgpICUgYWJpbGl0aWVzLmxlbmd0aDtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleC5zZXQoYWJpbGl0aWVzW25leHRJbmRleF0uaW5kZXgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVzZVNlbGVjdGVkUHJldmlld0FiaWxpdHkoKTogdm9pZCB7XG4gICAgY29uc3Qgb2ZmZXJpbmcgPSB0aGlzLnNlbGVjdGVkUHJldmlld09mZmVyaW5nKCk7XG4gICAgaWYgKCFvZmZlcmluZykgcmV0dXJuO1xuICAgIGNvbnN0IHNlbGVjdGVkQWJpbGl0eUluZGV4ID0gdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXgoKTtcbiAgICB0aGlzLnVzZU9mZmVyaW5nQWJpbGl0eShvZmZlcmluZywgb2ZmZXJpbmcub3duZXIpO1xuICAgIGNvbnN0IGxpdmVPZmZlcmluZyA9IHRoaXMuZ2FtZSgpLnBsYXllcnNbb2ZmZXJpbmcub3duZXJdLm9mZmVyaW5ncy5maW5kKGNhcmQgPT4gY2FyZC5pbnN0YW5jZUlkID09PSBvZmZlcmluZy5pbnN0YW5jZUlkKTtcbiAgICBpZiAobGl2ZU9mZmVyaW5nKSB7XG4gICAgICB0aGlzLmluc3BlY3RPZmZlcmluZyhsaXZlT2ZmZXJpbmcpO1xuICAgICAgdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXguc2V0KHNlbGVjdGVkQWJpbGl0eUluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdGVkUHJldmlld09mZmVyaW5nKCk6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UgfCBudWxsIHtcbiAgICBjb25zdCBwcmV2aWV3ID0gdGhpcy5zZWxlY3RlZFByZXZpZXcoKTtcbiAgICBpZiAoIXByZXZpZXc/LnNlYXQgfHwgIXByZXZpZXcub2ZmZXJpbmdJbnN0YW5jZUlkKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5nYW1lKCkucGxheWVyc1twcmV2aWV3LnNlYXRdLm9mZmVyaW5ncy5maW5kKGNhcmQgPT4gY2FyZC5pbnN0YW5jZUlkID09PSBwcmV2aWV3Lm9mZmVyaW5nSW5zdGFuY2VJZCkgPz8gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgY2FuVXNlUHJldmlld0FiaWxpdHkoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG9mZmVyaW5nID0gdGhpcy5zZWxlY3RlZFByZXZpZXdPZmZlcmluZygpO1xuICAgIGlmICghb2ZmZXJpbmcgfHwgaW5kZXggIT09IDApIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5jYW5Vc2VPZmZlcmluZ0FiaWxpdHkob2ZmZXJpbmcsIG9mZmVyaW5nLm93bmVyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0RGVjaygpOiB2b2lkIHtcbiAgICBjb25zdCByZW1haW5pbmdDYXJkcyA9IHRoaXMuZ2FtZSgpLnNoYXJlZERlY2subGVuZ3RoO1xuICAgIGNvbnN0IG5leHRDYXJkID0gdGhpcy5nYW1lKCkuc2hhcmVkRGVja1swXTtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KHtcbiAgICAgIHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eURlY2snKSxcbiAgICAgIGV5ZWJyb3c6IHRoaXMudCgnY2hyaXN0aWFuaXR5U2hhcmVkWm9uZScpLFxuICAgICAgbWV0YTogYCR7cmVtYWluaW5nQ2FyZHN9ICR7cmVtYWluaW5nQ2FyZHMgPT09IDEgPyB0aGlzLnQoJ2NocmlzdGlhbml0eUNhcmRSZW1haW5pbmcnKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2FyZHNSZW1haW5pbmcnKX1gLFxuICAgICAgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlEZWNrQm9keScpLFxuICAgICAgZmFjdHM6IFtcbiAgICAgICAgdGhpcy50KCdjaHJpc3RpYW5pdHlEZWNrUnVsZVNoYXJlZCcpLFxuICAgICAgICB0aGlzLnQoJ2NocmlzdGlhbml0eURlY2tSdWxlRHJhdycpLFxuICAgICAgICB0aGlzLnQoJ2NocmlzdGlhbml0eURlY2tSdWxlRW1wdHknKSxcbiAgICAgICAgbmV4dENhcmQgPyBgJHt0aGlzLnQoJ2NocmlzdGlhbml0eURlY2tOZXh0Q2FyZCcpfTogJHt0aGlzLmNhcmREaXNwbGF5TmFtZShuZXh0Q2FyZCl9YCA6IHRoaXMudCgnY2hyaXN0aWFuaXR5RGVja05vTmV4dENhcmQnKSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdFBsYWNlWm9uZSgpOiB2b2lkIHtcbiAgICBjb25zdCBwbGFjZSA9IHRoaXMuYWN0aXZlUGxhY2VDYXJkKCk7XG4gICAgaWYgKHBsYWNlKSB7XG4gICAgICB0aGlzLmluc3BlY3RIYW5kQ2FyZChwbGFjZS5pZCk7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJldmlldy51cGRhdGUocHJldmlldyA9PiBwcmV2aWV3ID8geyAuLi5wcmV2aWV3LCBzb3VyY2U6ICdib2FyZCcgfSA6IHByZXZpZXcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KHtcbiAgICAgIHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYWNlJyksXG4gICAgICBleWVicm93OiB0aGlzLnQoJ2NocmlzdGlhbml0eVNoYXJlZFpvbmUnKSxcbiAgICAgIG1ldGE6IHRoaXMudCgnY2hyaXN0aWFuaXR5RW1wdHknKSxcbiAgICAgIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VSdWxlQm9keScpLFxuICAgICAgZmFjdHM6IFtcbiAgICAgICAgdGhpcy50KCdjaHJpc3RpYW5pdHlQbGFjZVNsb3RQbGF5YWJsZScpLFxuICAgICAgICB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYWNlT25seU9uZScpLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0SG93VG9QbGF5KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQoe1xuICAgICAgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5SG93VG9QbGF5JyksXG4gICAgICBleWVicm93OiB0aGlzLnQoJ2NocmlzdGlhbml0eUdlbmVzaXNFZGl0aW9uJyksXG4gICAgICBtZXRhOiB0aGlzLnQoJ2NocmlzdGlhbml0eVR1dG9yaWFsTW9kZScpLFxuICAgICAgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlIb3dUb1BsYXlJbnRybycpLFxuICAgICAgZmFjdHM6IFtcbiAgICAgICAgdGhpcy50KCdjaHJpc3RpYW5pdHlIb3dUb1BsYXlHb2FsJyksXG4gICAgICAgIHRoaXMudCgnY2hyaXN0aWFuaXR5SG93VG9QbGF5VHVybicpLFxuICAgICAgICB0aGlzLnQoJ2NocmlzdGlhbml0eUhvd1RvUGxheU9mZmVyaW5ncycpLFxuICAgICAgICB0aGlzLnQoJ2NocmlzdGlhbml0eUhvd1RvUGxheUJhdHRsZScpLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0SGFuZENhcmQoY2FyZElkOiBzdHJpbmcsIGZyb21IYW5kID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXguc2V0KDApO1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCk7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNhcmQpO1xuICAgIGlmIChmcm9tSGFuZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldChudWxsKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQoY2FyZElkKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KHtcbiAgICAgIHRpdGxlOiB0ZXh0Lm5hbWUsXG4gICAgICBleWVicm93OiB0aGlzLmNhcmRUeXBlTGFiZWwoY2FyZCksXG4gICAgICBtZXRhOiB0aGlzLmNhcmRQcmV2aWV3TWV0YShjYXJkKSxcbiAgICAgIGJvZHk6IHRoaXMuZGVmYXVsdENhcmRCb2R5KGNhcmQudHlwZSksXG4gICAgICBjYXJkSWQsXG4gICAgICBzb3VyY2U6IGZyb21IYW5kID8gJ2hhbmQnIDogJ3BpbGUnLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluc3BlY3RHYWxsZXJ5Q2FyZChjYXJkSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaW5zcGVjdEhhbmRDYXJkKGNhcmRJZCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcudXBkYXRlKHByZXZpZXcgPT4gcHJldmlldyA/IHsgLi4ucHJldmlldywgc291cmNlOiAnZ2FsbGVyeScgfSA6IHByZXZpZXcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluc3BlY3RIaXN0b3J5Q2FyZChjYXJkSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaW5zcGVjdEhhbmRDYXJkKGNhcmRJZCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcudXBkYXRlKHByZXZpZXcgPT4gcHJldmlldyA/IHsgLi4ucHJldmlldywgc291cmNlOiAnaGlzdG9yeScgfSA6IHByZXZpZXcpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnNwZWN0Q2hhcmFjdGVyKGNhcmQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eUluZGV4LnNldCgwKTtcbiAgICBjb25zdCBkZWZpbml0aW9uID0gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkLmNhcmRJZCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KHtcbiAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChkZWZpbml0aW9uKS5uYW1lLFxuICAgICAgZXllYnJvdzogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJDYXJkJyksXG4gICAgICBtZXRhOiBgJHtjYXJkLmF0dGFja30vJHtjYXJkLmN1cnJlbnRIcH1gLFxuICAgICAgYm9keTogY2FyZC5jYW5BdHRhY2sgPyB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlclJlYWR5JykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlckV4aGF1c3RlZCcpLFxuICAgICAgY2FyZElkOiBjYXJkLmNhcmRJZCxcbiAgICAgIHNvdXJjZTogJ2JvYXJkJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2FyZFByZXZpZXdNZXRhKGNhcmQ6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICBpZiAoY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnKSByZXR1cm4gYCR7Y2FyZC5vZmZlcmluZ1ZhbHVlID8/IGNhcmQubGlmZSA/PyAxfWA7XG4gICAgaWYgKGNhcmQudHlwZSA9PT0gJ2xlYWRlcicpIHJldHVybiBgJHtjYXJkLmxlYWRlckxpZmUgPz8gY2FyZC5saWZlID8/IDB9YDtcbiAgICBpZiAoY2FyZC50eXBlID09PSAnY2hhcmFjdGVyJykgcmV0dXJuIGAke3RoaXMudCgnY2hyaXN0aWFuaXR5Q29zdCcpfSAke2NhcmQuY29zdCA/PyAwfSDCtyAke2NhcmQuYXR0YWNrID8/IDB9LyR7Y2FyZC5saWZlID8/IDB9YDtcbiAgICBpZiAoY2FyZC5jb3N0ICE9PSB1bmRlZmluZWQpIHJldHVybiBgJHt0aGlzLnQoJ2NocmlzdGlhbml0eUNvc3QnKX0gJHtjYXJkLmNvc3R9YDtcbiAgICByZXR1cm4gY2FyZC5jb2xsZWN0b3JOdW1iZXIgPz8gY2FyZC5pZDtcbiAgfVxuXG59XG4iXX0=
|