@kando-env/kando-ui 1.2.30 → 1.2.32

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/lib/i18n/en.json CHANGED
@@ -2987,7 +2987,11 @@
2987
2987
  "damage_type_filter_item": "Damage Type",
2988
2988
  "sampling_filter_item": "Sampling",
2989
2989
  "area_filter_item": "Area",
2990
- "sector_filter_item": "Sector"
2990
+ "sector_filter_item": "Sector",
2991
+ "sampling_status_filter_item": "Status",
2992
+ "sampling_id_filter_item": "ID",
2993
+ "site_filter_item": "Site",
2994
+ "lab_filter_item": "Lab"
2991
2995
  },
2992
2996
  "filter": "Filter",
2993
2997
  "apply": "Apply",
@@ -3009,6 +3013,14 @@
3009
3013
  "ended": "Ended",
3010
3014
  "discharging": "Discharging"
3011
3015
  },
3016
+ "samplings_status": {
3017
+ "planned": "Planned",
3018
+ "canceled": "Canceled",
3019
+ "taken": "Taken",
3020
+ "lab_result": "Lab result",
3021
+ "sampler_finished": "Sampler finished",
3022
+ "sampler_started": "Sampler started"
3023
+ },
3012
3024
  "samplings_options": {
3013
3025
  "with": "With",
3014
3026
  "without": "Without"
@@ -3604,6 +3616,7 @@
3604
3616
  "create_button": "Create",
3605
3617
  "add_new_sampling": "Add New Sampling",
3606
3618
  "site_placeholder": "Select or type...",
3619
+ "no_data": "No data available",
3607
3620
  "manhole_navigation": {
3608
3621
  "waze": "Waze",
3609
3622
  "google_maps": "Google Maps",
package/lib/i18n/he.json CHANGED
@@ -2949,7 +2949,11 @@
2949
2949
  "damage_type_filter_item": "סוג נזק",
2950
2950
  "sampling_filter_item": "דגימות",
2951
2951
  "area_filter_item": "איזור",
2952
- "sector_filter_item": "סקטור"
2952
+ "sector_filter_item": "סקטור",
2953
+ "sampling_status_filter_item": "סטטוס",
2954
+ "sampling_id_filter_item": "ID",
2955
+ "site_filter_item": "שם אתר",
2956
+ "lab_filter_item": "מעבדה"
2953
2957
  },
2954
2958
  "filter": "סינון",
2955
2959
  "apply": "סנן",
@@ -3511,6 +3515,7 @@
3511
3515
  "sampling_not_created": "יצירת דיגום חדש נכשלה",
3512
3516
  "date_required": "יש למלא תאריך דיגום",
3513
3517
  "site_required": "יש למלא שם אתר",
3518
+ "no_data": "לא נמצאו נתונים",
3514
3519
  "samplings_table_cols": {
3515
3520
  "sampling_date": "תאריך דגימה",
3516
3521
  "sampling_id": "מס׳ דגימה",
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var packageJsonVersion = "1.2.30";
3
+ var packageJsonVersion = "1.2.32";
4
4
 
5
5
  if (typeof packageJsonVersion === 'string') {
6
6
  // eslint-disable-next-line no-console
@@ -484,287 +484,6 @@
484
484
  }
485
485
  }
486
486
 
487
- .filter-container {
488
- z-index: 9;
489
- position: absolute;
490
- top: 0;
491
- left: 100%;
492
- min-height: 7em;
493
- width: calc(100vw - 480px);
494
- background: white;
495
- box-shadow: 0px 2px 27px rgba(0, 0, 0, 0.2);
496
- padding: 1em;
497
-
498
- &--hidden {
499
- display: none;
500
- }
501
-
502
- [dir='rtl'] & {
503
- right: 100%;
504
- left: unset;
505
- padding: 2em;
506
- }
507
-
508
- .preset-icon,
509
- .save-icon {
510
- margin: 0 5px;
511
- vertical-align: baseline;
512
- }
513
-
514
- &::before {
515
- content: '◀';
516
- display: none;
517
- position: absolute;
518
- top: 18px;
519
- color: white;
520
-
521
- .rtl & {
522
- right: -10px;
523
- transform: rotate(180deg);
524
- }
525
-
526
- .ltr & {
527
- left: -10px;
528
- }
529
- }
530
-
531
- .apply-button-container {
532
- cursor: pointer;
533
-
534
- .apply-button {
535
- background-color: #f6004f;
536
- border: 1px solid #f6004f;
537
- padding: 6px 29px;
538
- font-size: 14px;
539
-
540
- border-radius: 12px;
541
- color: white;
542
- text-decoration: none;
543
- }
544
- }
545
-
546
- #dropdown-basic {
547
- background: white;
548
- color: black;
549
- font-size: 1em;
550
- border: none;
551
- padding: 0;
552
-
553
- &:focus {
554
- box-shadow: none !important;
555
- border: none !important;
556
- }
557
- }
558
-
559
- .dropdown-menu.show {
560
- width: max-content;
561
-
562
- .filter-dropdown-item {
563
- display: flex;
564
- justify-content: space-between;
565
- padding: 0 20px;
566
-
567
- &:hover {
568
- .filter-actions {
569
- opacity: 1;
570
- transition: ease-in 0.1s;
571
- }
572
- }
573
-
574
- .filter-actions {
575
- font-size: 0.7em;
576
- display: flex;
577
- align-items: center;
578
- opacity: 0;
579
- }
580
- }
581
- }
582
-
583
- &__content {
584
- &__header {
585
- display: flex;
586
- justify-content: space-between;
587
-
588
- .title {
589
- h4 {
590
- margin: 0;
591
- font-size: 18px;
592
- font-weight: 700;
593
- }
594
- }
595
-
596
- .actions {
597
- display: flex;
598
-
599
- .action {
600
- padding: 0 5px;
601
- cursor: pointer;
602
- color: black;
603
- margin: 0 3px;
604
- text-decoration: none;
605
-
606
- .dropdown-item {
607
- color: black;
608
- a {
609
- color: black;
610
- }
611
- }
612
-
613
- .dropdown-item.disabled {
614
- color: #6c757d !important;
615
- }
616
-
617
- &--save {
618
- margin: 0;
619
- padding: 0.25rem 1.5rem;
620
-
621
- &:hover {
622
- text-decoration: none;
623
- background-color: #f8f9fa;
624
- }
625
- }
626
-
627
- span {
628
- padding: 0 6px;
629
- min-width: 6em;
630
- }
631
-
632
- .new-filter-popup {
633
- text-align: center;
634
- padding: 15px;
635
- cursor: text;
636
-
637
- button {
638
- width: 100%;
639
- }
640
- }
641
- }
642
- }
643
- }
644
-
645
- &__body {
646
- display: flex;
647
- align-items: center;
648
-
649
- .input-group {
650
- width: 15em;
651
- position: absolute;
652
- z-index: 9;
653
- top: 0.5em;
654
- background: white;
655
-
656
- .rtl & {
657
- left: 5em;
658
- }
659
-
660
- .ltr & {
661
- right: 6em;
662
- }
663
- }
664
-
665
- .filter {
666
- display: flex;
667
- align-items: center;
668
-
669
- .custom-dropdown {
670
- display: flex;
671
- flex-direction: column;
672
- position: relative;
673
- background: #ffffff;
674
- border: 1px solid #dddddd;
675
- color: #666666;
676
- width: 13.2em;
677
- &.custom-container {
678
- width: 29rem;
679
- padding: 23px;
680
- }
681
- overflow: hidden;
682
- padding: 10px;
683
-
684
- .option {
685
- margin: 5px 0;
686
-
687
- input {
688
- margin: 0 3px;
689
- cursor: pointer !important;
690
- }
691
-
692
- label {
693
- cursor: pointer !important;
694
- }
695
- }
696
- }
697
- }
698
-
699
- .filter_items {
700
- display: flex;
701
- flex-wrap: wrap;
702
- margin: 12px 0;
703
-
704
- .fixed-action {
705
- padding: 12px;
706
- .plus-icon {
707
- margin: 0 5px;
708
- vertical-align: baseline;
709
- }
710
- }
711
-
712
- .filter_item {
713
- padding: 6px 12px;
714
- background: rgba(0, 0, 0, 0.1);
715
- border-radius: 12px;
716
- margin: 6px 12px;
717
- display: flex;
718
- justify-content: space-between;
719
- align-items: center;
720
- position: relative;
721
- min-height: 33px;
722
- cursor: pointer;
723
- margin-left: 0;
724
-
725
- &__content {
726
- display: flex;
727
- align-items: center;
728
-
729
- &__selections {
730
- display: flex;
731
- flex-wrap: wrap;
732
-
733
- &__selection {
734
- margin: 0 5px;
735
- font-weight: bold;
736
- }
737
- }
738
- }
739
-
740
- a {
741
- cursor: pointer;
742
- .rtl & {
743
- margin-right: 15px;
744
- }
745
-
746
- .ltr & {
747
- margin-left: 15px;
748
- }
749
- }
750
-
751
- .filter-items-options-popup-container {
752
- position: absolute;
753
- bottom: 0;
754
- transform: translateY(100%);
755
- left: 0;
756
- z-index: 9;
757
-
758
- .filter-items-options-popup {
759
- width: 200px;
760
- }
761
- }
762
- }
763
- }
764
- }
765
- }
766
- }
767
-
768
487
  .sort {
769
488
  display: flex;
770
489
  align-items: center;
@@ -325,7 +325,8 @@ var EventsList = function EventsList(_ref) {
325
325
  height: "17px",
326
326
  fill: "#f6004f"
327
327
  })))), points_data.items.length !== 0 && /*#__PURE__*/_react.default.createElement(_FilterContainer.default, {
328
- filterPopupOpen: filterPopupOpen
328
+ filterPopupOpen: filterPopupOpen,
329
+ fetchType: 'EventFilter'
329
330
  })), /*#__PURE__*/_react.default.createElement("div", {
330
331
  className: "events-container scrollbar "
331
332
  }, loader(), !isFetching && items.length === 0 && !points_data.isFetching && !edges_data.isFetching && /*#__PURE__*/_react.default.createElement("div", {
@@ -359,4 +360,4 @@ var connector = (0, _reactRedux.connect)(mapStateToProps);
359
360
  var _default = connector(EventsList);
360
361
 
361
362
  exports.default = _default;
362
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9FdmVudHNMaXN0LnRzeCJdLCJuYW1lcyI6WyJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJlZGdlc19kYXRhIiwicG9pbnRzX2RhdGEiLCJhcmVhc19kYXRhIiwibmF2X2NvbnRleHRfZGF0YSIsIkV2ZW50c0xpc3QiLCJzaWRlbmF2RXhwYW5kZWQiLCJkaXNwYXRjaCIsIml0ZW1zIiwiaXNGZXRjaGluZyIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsImhvdmVyZWRFdmVudFBhdGhzIiwid2F0ZXJBdXRob3JpdHlJZCIsIm1hcCIsImZpbHRlclBvcHVwT3BlbiIsInNldEZpbHRlclBvcHVwT3BlbiIsImxhc3RWaXNpdGVkIiwidXNlUXVlcnkiLCJVUkxTZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJoaXN0b3J5IiwicXVlcnkiLCJnZXRLUUxWYWx1ZXNGcm9tVVJMIiwiZ2V0IiwiZ2V0RXZlbnRJZEZyb21VUkwiLCJsb2FkZXIiLCJsZW5ndGgiLCJuZXdBcmVhcyIsImhhbmRsZUV4cGFuc2lvblRvZ2dsZSIsImFwcGx5RGVmYXVsdEZpbHRlciIsInB1c2giLCJuYXZDb250ZXh0IiwibmFtZSIsImxvY2FsZSIsInZhbGlkYXRlRXZlbnQiLCJldmVudCIsImludmFsaWRPYnNlcnZhdGlvbnNNZXNzYWdlcyIsIm9ic2VydmF0aW9ucyIsImZvckVhY2giLCJvYnNlcnZhdGlvbiIsInBvaW50X2lzX3Jvb3QiLCJlZGdlIiwiZmluZCIsInNvdXJjZV9wb2ludF9pZCIsInBvaW50X2lkIiwidW5kZWZpbmVkIiwicG9pbnRfbmFtZSIsImFsZXJ0IiwiaW52YWxpZFBhdGhNZXNzYWdlcyIsInBhdGgiLCJpZCIsImVkZ2VfaWQiLCJjb25zb2xlIiwiZXJyb3IiLCJsYXN0X29ic2VydmF0aW9uX2lkIiwibGFzdE9ic2VydmF0aW9uUG9pbnQiLCJoYW5kbGVFdmVudEl0ZW1DbGljayIsInJlZiIsIm9uTW91c2VMZWF2ZUV2ZW50IiwiZXZlbnRGaWx0ZXJQYXJhbSIsIm9uTW91c2VFbnRlckV2ZW50IiwicmVtb3ZlTGF5ZXIiLCJsYXllcnMiLCJfbGF5ZXJzIiwicHJvcGVydHkiLCJrYW5kb19vYmplY3QiLCJpbmNsdWRlcyIsInNldEZvY3VzZWRFdmVudElmRm91bmRJblBhcmFtcyIsImUiLCJwYXJzZUludCIsInRyaWdnZXJTb3J0Iiwic29ydCIsImFjdGl2ZUZpbHRlciIsIktRTCIsIlVSTCIsIm1vcmVJbmZvIiwiYWN0aXZlIiwiZmFDYXJldExlZnQiLCJmYUNhcmV0UmlnaHQiLCJmYUFycm93TGVmdCIsImkxOG4iLCJ0IiwiTGVmdEFycm93SWNvbiIsIk5vRXZlbnRzSW1hZ2UiLCJjb25uZWN0b3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFDQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFJQTs7QUFFQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBOUJBO0FBZ0NBLFNBQVNBLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQTJDO0FBQ3pDLE1BQ0VDLFdBREYsR0FPSUQsS0FQSixDQUNFQyxXQURGO0FBQUEsTUFFRUMsV0FGRixHQU9JRixLQVBKLENBRUVFLFdBRkY7QUFBQSxNQUdFQyxVQUhGLEdBT0lILEtBUEosQ0FHRUcsVUFIRjtBQUFBLE1BSUVDLFdBSkYsR0FPSUosS0FQSixDQUlFSSxXQUpGO0FBQUEsTUFLRUMsVUFMRixHQU9JTCxLQVBKLENBS0VLLFVBTEY7QUFBQSxNQU1FQyxnQkFORixHQU9JTixLQVBKLENBTUVNLGdCQU5GO0FBU0EsU0FBTztBQUNMTCxJQUFBQSxXQUFXLEVBQVhBLFdBREs7QUFFTEMsSUFBQUEsV0FBVyxFQUFYQSxXQUZLO0FBR0xDLElBQUFBLFVBQVUsRUFBVkEsVUFISztBQUlMQyxJQUFBQSxX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VixDQURILENBdEJOLENBbkZGLENBREY7QUEwSEQsQ0FyVUQ7O0FBdVVBLElBQU0wQixTQUFTLEdBQUcseUJBQVF4RixlQUFSLENBQWxCOztlQUNld0YsU0FBUyxDQUFDaEYsVUFBRCxDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgZXRjL25vLWNvbW1lbnRlZC1vdXQtY29kZSAqL1xuaW1wb3J0IHtcbiAgZmFBcnJvd0xlZnQsXG4gIGZhQ2FyZXRMZWZ0LFxuICBmYUNhcmV0UmlnaHQsXG59IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBGb250QXdlc29tZUljb24gfSBmcm9tICdAZm9ydGF3ZXNvbWUvcmVhY3QtZm9udGF3ZXNvbWUnO1xuaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IExpbmssIHVzZUhpc3RvcnksIHVzZUxvY2F0aW9uIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTGVmdEFycm93SWNvbiBmcm9tICdzcmMvYXNzZXRzL2ljb25zL2Fycm93LWxlZnQuc3ZnJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIEZpbHRlckljb24gfSBmcm9tICdzcmMvYXNzZXRzL2ljb25zL2Z1bm5lbC5zdmcnO1xuaW1wb3J0IE5vRXZlbnRzSW1hZ2UgZnJvbSAnc3JjL2Fzc2V0cy9ub19ldmVudHMuc3ZnJztcbmltcG9ydCB7IFNldmVyZUV2ZW50IH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvU2V2ZXJlRXZlbnQvU2V2ZXJlRXZlbnQnO1xuaW1wb3J0IHsgSUFwcFN0YXRlIH0gZnJvbSAnc3JjL21vZGVscy9JQXBwU3RhdGUnO1xuaW1wb3J0IHsgdXNlTGFzdFZpc2l0ZWQgfSBmcm9tICdzcmMvcHJvdmlkZXJzL1VybEhpc3RvcnknO1xuaW1wb3J0IHtcbiAgZmV0Y2hFdmVudHMsXG4gIHNldEZvY3VzZWRFdmVudCxcbiAgc2V0SG92ZXJlZEV2ZW50LFxuICBzZXRIb3ZlcmVkRXZlbnRQYXRocyxcbn0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBzZXRFdmVudEZpbHRlclBhcmFtLCBzaWRlTmF2RXhwYW5kZWQgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IGJ1aWxkS1FMUXVlcnkgfSBmcm9tICdzcmMvdXRpbGl0aWVzL2txbCc7XG5pbXBvcnQgJy4uL0V2ZW50c1N0eWxlLnNjc3MnO1xuaW1wb3J0IEV2ZW50SW5mbyBmcm9tICcuLi9ldmVudF9pbmZvL0V2ZW50SW5mbyc7XG5pbXBvcnQgTW9yZUluZm8gZnJvbSAnLi4vTW9yZUluZm8nO1xuaW1wb3J0IEZpbHRlckNvbnRhaW5lciBmcm9tICcuL0ZpbHRlci9GaWx0ZXJDb250YWluZXInO1xuaW1wb3J0IFNvcnQgZnJvbSAnLi9Tb3J0JztcblxuZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlOiBJQXBwU3RhdGUpIHtcbiAgY29uc3Qge1xuICAgIGV2ZW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICAgIGVkZ2VzX2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gICAgYXJlYXNfZGF0YSxcbiAgICBuYXZfY29udGV4dF9kYXRhLFxuICB9ID0gc3RhdGU7XG5cbiAgcmV0dXJuIHtcbiAgICBldmVudHNfZGF0YSxcbiAgICBnbG9iYWxfZGF0YSxcbiAgICBlZGdlc19kYXRhLFxuICAgIHBvaW50c19kYXRhLFxuICAgIGFyZWFzX2RhdGEsXG4gICAgbmF2X2NvbnRleHRfZGF0YSxcbiAgfTtcbn1cblxudHlwZSBJUHJvcHMgPSBDb25uZWN0ZWRQcm9wczx0eXBlb2YgY29ubmVjdG9yPiAmIHtcbiAgc2lkZW5hdkV4cGFuZGVkOiBib29sZWFuO1xufTtcblxuY29uc3QgRXZlbnRzTGlzdDogUmVhY3QuRkM8SVByb3BzPiA9ICh7XG4gIGFyZWFzX2RhdGEsXG4gIHBvaW50c19kYXRhLFxuICBlZGdlc19kYXRhLFxuICBnbG9iYWxfZGF0YSxcbiAgc2lkZW5hdkV4cGFuZGVkLFxuICBldmVudHNfZGF0YSxcbiAgbmF2X2NvbnRleHRfZGF0YSxcbn0pID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCB7IGl0ZW1zLCBpc0ZldGNoaW5nLCBmb2N1c2VkRXZlbnQsIGhvdmVyZWRFdmVudCwgaG92ZXJlZEV2ZW50UGF0aHMgfSA9XG4gICAgZXZlbnRzX2RhdGE7XG4gIGNvbnN0IHsgd2F0ZXJBdXRob3JpdHlJZCwgbWFwIH0gPSBnbG9iYWxfZGF0YTtcbiAgY29uc3QgW2ZpbHRlclBvcHVwT3Blbiwgc2V0RmlsdGVyUG9wdXBPcGVuXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBsYXN0VmlzaXRlZCA9IHVzZUxhc3RWaXNpdGVkKCk7XG5cbiAgY29uc3QgdXNlUXVlcnkgPSAoKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXModXNlTG9jYXRpb24oKS5zZWFyY2gpO1xuICB9O1xuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpO1xuICBjb25zdCBxdWVyeSA9IHVzZVF1ZXJ5KCk7XG4gIGNvbnN0IGdldEtRTFZhbHVlc0Zyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgndmFsdWVzRnJvbUtRTCcpO1xuICB9O1xuICBjb25zdCBnZXRFdmVudElkRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCdldmVudElkJyk7XG4gIH07XG5cbiAgY29uc3QgbG9hZGVyID0gKCkgPT4ge1xuICAgIGlmIChcbiAgICAgIChpc0ZldGNoaW5nICYmIGl0ZW1zLmxlbmd0aCA9PT0gMCkgfHxcbiAgICAgIGFyZWFzX2RhdGEubmV3QXJlYXMubGVuZ3RoID09PSAwIHx8XG4gICAgICBwb2ludHNfZGF0YS5pc0ZldGNoaW5nIHx8XG4gICAgICBlZGdlc19kYXRhLmlzRmV0Y2hpbmdcbiAgICApIHtcbiAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17J2xvYWRlcid9PjwvZGl2PjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvblRvZ2dsZSA9ICgpID0+IHtcbiAgICBkaXNwYXRjaChzaWRlTmF2RXhwYW5kZWQoIXNpZGVuYXZFeHBhbmRlZCkpO1xuICB9O1xuXG4gIGNvbnN0IGFwcGx5RGVmYXVsdEZpbHRlciA9ICgpID0+IHtcbiAgICBoaXN0b3J5LnB1c2goXG4gICAgICBgLyR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWV9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWR9JmxvY2FsZT0ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGV9JnZhbHVlc0Zyb21LUUw9YCxcbiAgICApO1xuICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oJycpKTtcbiAgfTtcblxuICBjb25zdCB2YWxpZGF0ZUV2ZW50ID0gKGV2ZW50OiBJRXZlbnQpID0+IHtcbiAgICAvLyBjaGVjayB0aGF0IGFsbCBvYnNlcnZhdGlvbnMnIGVkZ2VzIGV4aXN0cy4gSWYgdGhleSBhcmUgbm90IGV4aXN0cyBpdCdzIGluZGljYXRlcyB0aGF0IHRoZWlyIHBvaW50cyBhcmVcbiAgICAvLyBub3QgaW4gdGhlIGhpZXJhcmNoeSBvciBkb2Vzbid0IGhhdmUgbGF0L2xuZy5cbiAgICBsZXQgaW52YWxpZE9ic2VydmF0aW9uc01lc3NhZ2VzOiBhbnkgPSBbXTtcbiAgICBldmVudC5vYnNlcnZhdGlvbnMuZm9yRWFjaCgob2JzZXJ2YXRpb246IGFueSkgPT4ge1xuICAgICAgLy8gaWYgb2JzZXJ2YXRpb24gaXMgcm9vdCAoZXguIFdXVFApIHRoZXJlIGlzIG5vIGVkZ2UgdGhhdCBpdHMgYSBzb3VyY2UuIHNvIHdlIGNhbiBza2lwIHRoaXMgY2hlY2tcbiAgICAgIGlmICghb2JzZXJ2YXRpb24ucG9pbnRfaXNfcm9vdCkge1xuICAgICAgICBsZXQgZWRnZSA9IGVkZ2VzX2RhdGEuaXRlbXMuZmluZChcbiAgICAgICAgICAoZWRnZSkgPT4gZWRnZS5zb3VyY2VfcG9pbnRfaWQgPT09IG9ic2VydmF0aW9uLnBvaW50X2lkLFxuICAgICAgICApO1xuICAgICAgICBpZiAoZWRnZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaW52YWxpZE9ic2VydmF0aW9uc01lc3NhZ2VzLnB1c2goXG4gICAgICAgICAgICBgJHtvYnNlcnZhdGlvbi5wb2ludF9uYW1lfSAoJHtvYnNlcnZhdGlvbi5wb2ludF9pZH0pYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW52YWxpZE9ic2VydmF0aW9uc01lc3NhZ2VzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgYWxlcnQoXG4gICAgICAgIGBQbGVhc2UgbWFrZSBzdXJlIHRoYXQgdGhlIGZvbGxvd2luZyBzaXRlcyBhcmUgaW4gdGhlIGhpZXJhcmNoeSBhbmQgdGhlaXIgbGF0ICYgbG5nIGNvb3JkaW5hdGVzIGV4aXN0IFxcbiAke2ludmFsaWRPYnNlcnZhdGlvbnNNZXNzYWdlc31gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBzYW1lIGNoZWNrIGFzIGFib3ZlIGJ1dCB0aGlzIHRpbWUgZm9yIHRoZSBldmVudCBwYXRoLiBJZiBlZGdlIGRvZXNuJ3QgZXhpc3QsIGl0J3MgaW5kaWNhdGVzIHRoYXQgb25lIG9mIHRoZVxuICAgIC8vIHBvaW50cyBkb3duc3RyZWFtIGRvZXNuJ3QgaGF2ZSBsYXQvbG5nLlxuICAgIGxldCBpbnZhbGlkUGF0aE1lc3NhZ2VzOiBhbnkgPSBbXTtcbiAgICBldmVudC5wYXRoLmZvckVhY2goKHBhdGg6IGFueSkgPT4ge1xuICAgICAgbGV0IGVkZ2UgPSBlZGdlc19kYXRhLml0ZW1zLmZpbmQoKGVkZ2UpID0+IGVkZ2UuaWQgPT09IHBhdGguZWRnZV9pZCk7XG4gICAgICBpZiAoZWRnZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYGVkZ2UgJHtwYXRoLmVkZ2VfaWR9IGNhbiBub3QgYmUgZm91bmRgKTtcbiAgICAgICAgbGV0IG9ic2VydmF0aW9uID0gZXZlbnQub2JzZXJ2YXRpb25zLmZpbmQoXG4gICAgICAgICAgKG9ic2VydmF0aW9uKSA9PiBvYnNlcnZhdGlvbi5pZCA9PT0gcGF0aC5sYXN0X29ic2VydmF0aW9uX2lkLFxuICAgICAgICApO1xuICAgICAgICBsZXQgbGFzdE9ic2VydmF0aW9uUG9pbnQgPSAnTm90IGZvdW5kJztcbiAgICAgICAgaWYgKG9ic2VydmF0aW9uKSB7XG4gICAgICAgICAgbGFzdE9ic2VydmF0aW9uUG9pbnQgPSBvYnNlcnZhdGlvbi5wb2ludF9uYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgaW52YWxpZFBhdGhNZXNzYWdlcy5wdXNoKGAke2xhc3RPYnNlcnZhdGlvblBvaW50fSBgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChpbnZhbGlkUGF0aE1lc3NhZ2VzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgYWxlcnQoXG4gICAgICAgIGBQbGVhc2UgbWFrZSBzdXJlIHRoYXQgdGhlIGZvbGxvd2luZyBzaXRlcyBhbmQgdGhlaXIgZG93bnN0cmVhbSBzaXRlcyBhbGwgaGF2ZSBsYXQgJiBsbmcgY29vcmRpbmF0ZXMgXFxuICR7aW52YWxpZFBhdGhNZXNzYWdlc31gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVFdmVudEl0ZW1DbGljayA9IChldmVudDogSUV2ZW50LCByZWY6IFJlZk9iamVjdDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICBvbk1vdXNlTGVhdmVFdmVudCgpO1xuICAgIC8vIGlmIChob3ZlcmVkRXZlbnRQYXRocyAmJiBtYXApIHtcbiAgICAvLyAgICAgaG92ZXJlZEV2ZW50UGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgIC8vICAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBhdGgpO1xuICAgIC8vICAgICB9KTtcbiAgICAvLyB9XG4gICAgLy8gZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50UGF0aHMoW10pKTtcbiAgICAvLyBkaXNwYXRjaChzZXRIb3ZlckV2ZW50SW5kaWNhdG9yKG51bGwpKTtcbiAgICBpZiAodmFsaWRhdGVFdmVudChldmVudCkpIHtcbiAgICAgIGRpc3BhdGNoKHNldEZvY3VzZWRFdmVudChldmVudCkpO1xuICAgICAgc2V0RmlsdGVyUG9wdXBPcGVuKGZhbHNlKTtcbiAgICAgIGhpc3RvcnkucHVzaChcbiAgICAgICAgYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfSZsb2NhbGU9JHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubG9jYWxlfSZldmVudElkPSR7ZXZlbnQuaWR9JnZhbHVlc0Zyb21LUUw9JHtnbG9iYWxfZGF0YS5ldmVudEZpbHRlclBhcmFtfWAsXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbk1vdXNlRW50ZXJFdmVudCA9IChldmVudCkgPT4ge1xuICAgIGlmICghZm9jdXNlZEV2ZW50ICYmICFob3ZlcmVkRXZlbnQgJiYgdmFsaWRhdGVFdmVudChldmVudCkpIHtcbiAgICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudChldmVudCkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbk1vdXNlTGVhdmVFdmVudCA9ICgpID0+IHtcbiAgICBpZiAoaG92ZXJlZEV2ZW50ICYmIGhvdmVyZWRFdmVudFBhdGhzICYmIG1hcCkge1xuICAgICAgaG92ZXJlZEV2ZW50UGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIocGF0aCk7XG4gICAgICB9KTtcblxuICAgICAgbGV0IGxheWVycyA9IG1hcC5fbGF5ZXJzO1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBsYXllcnMpIHtcbiAgICAgICAgY29uc3Qga2FuZG9fb2JqZWN0ID0gbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3Q7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBrYW5kb19vYmplY3Q/LmluY2x1ZGVzKCdFdmVudEJvZHknKSB8fFxuICAgICAgICAgIFsnRXZlbnRUYWlsJywgJ1NhbXBsaW5nUG9pbnQnLCAnRGVjb3JhdG9yJ10uaW5jbHVkZXMoa2FuZG9fb2JqZWN0KVxuICAgICAgICApIHtcbiAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXJzW3Byb3BlcnR5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50KG51bGwpKTtcbiAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRXZlbnRQYXRocyhbXSkpO1xuICAgIC8vIGRpc3BhdGNoKHNldEhvdmVyRXZlbnRJbmRpY2F0b3IobnVsbCkpO1xuICB9O1xuXG4gIGNvbnN0IHNldEZvY3VzZWRFdmVudElmRm91bmRJblBhcmFtcyA9ICgpID0+IHtcbiAgICBpZiAoXG4gICAgICBnZXRFdmVudElkRnJvbVVSTCgpICE9PSBudWxsICYmXG4gICAgICBnZXRFdmVudElkRnJvbVVSTCgpICE9PSAnbnVsbCcgJiZcbiAgICAgIGZvY3VzZWRFdmVudCA9PT0gbnVsbCAmJlxuICAgICAgaXRlbXMubGVuZ3RoICE9PSAwICYmXG4gICAgICAhaXNGZXRjaGluZyAmJlxuICAgICAgIWFyZWFzX2RhdGEuaXNGZXRjaGluZyAmJlxuICAgICAgIXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICFlZGdlc19kYXRhLmlzRmV0Y2hpbmdcbiAgICApIHtcbiAgICAgIGxldCBldmVudCA9IGV2ZW50c19kYXRhLml0ZW1zLmZpbmQoXG4gICAgICAgIChlOiBJRXZlbnQpID0+IGUuaWQgPT09IHBhcnNlSW50KGdldEV2ZW50SWRGcm9tVVJMKCkhKSxcbiAgICAgICk7XG4gICAgICBpZiAoZXZlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkaXNwYXRjaChzZXRGb2N1c2VkRXZlbnQoZXZlbnQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdHJpZ2dlclNvcnQgPSAoc29ydDogbnVtYmVyKSA9PiB7XG4gICAgaWYgKGdsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlciAhPT0gbnVsbCkge1xuICAgICAgbGV0IEtRTDtcbiAgICAgIGxldCBVUkw7XG4gICAgICBzd2l0Y2ggKHNvcnQpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIEtRTCA9IGAke2J1aWxkS1FMUXVlcnkoZ2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyLCAnbmV3ZXN0Jyl9YDtcbiAgICAgICAgICBVUkwgPSBgLyR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWV9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWR9JmxvY2FsZT0ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGV9JnZhbHVlc0Zyb21LUUw9JHtLUUx9YDtcbiAgICAgICAgICBoaXN0b3J5LnB1c2goVVJMKTtcbiAgICAgICAgICBkaXNwYXRjaChzZXRFdmVudEZpbHRlclBhcmFtKEtRTCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgS1FMID0gYCR7YnVpbGRLUUxRdWVyeShnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXIsICdvbGRlc3QnKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mdmFsdWVzRnJvbUtRTD0ke0tRTH1gO1xuICAgICAgICAgIGhpc3RvcnkucHVzaChVUkwpO1xuICAgICAgICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oS1FMKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBLUUwgPSBgJHtidWlsZEtRTFF1ZXJ5KGdsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlciwgJ3NldmVyaXR5Jyl9YDtcbiAgICAgICAgICBVUkwgPSBgLyR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWV9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWR9JmxvY2FsZT0ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGV9JnZhbHVlc0Zyb21LUUw9JHtLUUx9YDtcbiAgICAgICAgICBoaXN0b3J5LnB1c2goVVJMKTtcbiAgICAgICAgICBkaXNwYXRjaChzZXRFdmVudEZpbHRlclBhcmFtKEtRTCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoRXZlbnRzKHdhdGVyQXV0aG9yaXR5SWQsIGdldEtRTFZhbHVlc0Zyb21VUkwoKSB8fCAnREVGQVVMVCcpKTtcbiAgfSwgW2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1dKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXsnc2lkZW5hdiAnICsgKHNpZGVuYXZFeHBhbmRlZCA/ICcnIDogJ3NpZGVuYXYtLWNvbGxhcHNlZCcpfT5cbiAgICAgIHtzZXRGb2N1c2VkRXZlbnRJZkZvdW5kSW5QYXJhbXMoKX1cbiAgICAgIHtnbG9iYWxfZGF0YS5tb3JlSW5mbyAhPT0gdW5kZWZpbmVkICYmIGdsb2JhbF9kYXRhLm1vcmVJbmZvLmFjdGl2ZSAmJiAoXG4gICAgICAgIDxNb3JlSW5mbyAvPlxuICAgICAgKX1cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICdldmVudC1pbmZvICcgK1xuICAgICAgICAgICghaG92ZXJlZEV2ZW50ICYmIGZvY3VzZWRFdmVudCAhPT0gbnVsbFxuICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgOiAnZXZlbnQtaW5mby0tY29sbGFwc2VkJylcbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICB7IWhvdmVyZWRFdmVudCAmJiBmb2N1c2VkRXZlbnQgIT09IG51bGwgJiYgKFxuICAgICAgICAgIDxFdmVudEluZm9cbiAgICAgICAgICAgIGV2ZW50PXtmb2N1c2VkRXZlbnR9XG4gICAgICAgICAgICByZU9wZW5GaWx0ZXI9eygpID0+IHNldEZpbHRlclBvcHVwT3Blbih0cnVlKX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInRvZ2dsZS1leHBhbnNpb24tYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGhhbmRsZUV4cGFuc2lvblRvZ2dsZSgpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5hdi1leHBhbnNpb24taWNvblwiPlxuICAgICAgICAgIDxGb250QXdlc29tZUljb25cbiAgICAgICAgICAgIGljb249e3NpZGVuYXZFeHBhbmRlZCA/IGZhQ2FyZXRMZWZ0IDogZmFDYXJldFJpZ2h0fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17J3RvZ2dsZS1leHBhbnNpb24tYnV0dG9uLW1vYmlsZSd9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBoYW5kbGVFeHBhbnNpb25Ub2dnbGUoKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGEgaHJlZj1cIiNcIj5cbiAgICAgICAgICA8Rm9udEF3ZXNvbWVJY29uIGljb249e2ZhQXJyb3dMZWZ0fSAvPlxuICAgICAgICAgIDxzcGFuPiB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuYmFja190b19kZXRhaWxzJyl9PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXZlbnRzLWhlYWRlclwiPlxuICAgICAgICB7bGFzdFZpc2l0ZWQgJiYgIWlzRmV0Y2hpbmcgJiYgKFxuICAgICAgICAgIDxMaW5rIGNsYXNzTmFtZT1cImJhY2tcIiB0bz17bGFzdFZpc2l0ZWR9PlxuICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgc3JjPXtMZWZ0QXJyb3dJY29ufVxuICAgICAgICAgICAgICBoZWlnaHQ9XCIxMHB4XCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxMnB4XCJcbiAgICAgICAgICAgICAgYWx0PVwiYmFja1wiXG4gICAgICAgICAgICAvPnsnICd9XG4gICAgICAgICAgICB7aTE4bi50KCdhcmVhX3NjcmVlbi5iYWNrJyl9XG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICApfVxuICAgICAgICA8aDQ+XG4gICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmV2ZW50c19saXN0Jyl9ICh7ZXZlbnRzX2RhdGEuaXRlbXMubGVuZ3RofSlcbiAgICAgICAgPC9oND5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXJpbmdcIj5cbiAgICAgICAgICB7ZXZlbnRzX2RhdGEuaXRlbXMubGVuZ3RoICE9PSAwICYmIChcbiAgICAgICAgICAgIDxTb3J0XG4gICAgICAgICAgICAgIHRyaWdnZXJTb3J0PXt0cmlnZ2VyU29ydH1cbiAgICAgICAgICAgICAgZXZlbnRzPXtldmVudHNfZGF0YS5pdGVtc31cbiAgICAgICAgICAgICAgZXZlbnRzRmV0Y2hpbmc9e2V2ZW50c19kYXRhLmlzRmV0Y2hpbmd9XG4gICAgICAgICAgICAgIGFjdGl2ZUZpbHRlcj17Z2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaWNvbnNcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmlsdGVyXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0RmlsdGVyUG9wdXBPcGVuKCFmaWx0ZXJQb3B1cE9wZW4pfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RmlsdGVySWNvbiB3aWR0aD1cIjE3cHhcIiBoZWlnaHQ9XCIxN3B4XCIgZmlsbD1cIiNmNjAwNGZcIiAvPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIHtwb2ludHNfZGF0YS5pdGVtcy5sZW5ndGggIT09IDAgJiYgKFxuICAgICAgICAgIDxGaWx0ZXJDb250YWluZXIgZmlsdGVyUG9wdXBPcGVuPXtmaWx0ZXJQb3B1cE9wZW59IC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXZlbnRzLWNvbnRhaW5lciBzY3JvbGxiYXIgXCI+XG4gICAgICAgIHtsb2FkZXIoKX1cbiAgICAgICAgeyFpc0ZldGNoaW5nICYmXG4gICAgICAgICAgaXRlbXMubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgIXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZXZlbnRzX19ibGFua3NsYXRlJ30+XG4gICAgICAgICAgICAgIDxpbWcgc3JjPXtOb0V2ZW50c0ltYWdlfSBhbHQ9XCJOb0V2ZW50c0ljb25cIiAvPlxuICAgICAgICAgICAgICA8aDI+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5ibGFua3NsYXRlLmhlYWRlcicpfTwvaDI+XG4gICAgICAgICAgICAgIDxwPntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuYmxhbmtzbGF0ZS5ib2R5Jyl9PC9wPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J2FwcGx5X2RlZmF1bHRfZmlsdGVyX2J1dHRvbid9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gYXBwbHlEZWZhdWx0RmlsdGVyKCl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmJsYW5rc2xhdGUuYnV0dG9uJyl9XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIHtpdGVtcy5sZW5ndGggIT09IDAgJiZcbiAgICAgICAgICAhYXJlYXNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAgICAgIXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nICYmIChcbiAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJldmVudHMgXCI+XG4gICAgICAgICAgICAgIHtpdGVtcy5tYXAoKGV2ZW50OiBhbnkpID0+IChcbiAgICAgICAgICAgICAgICA8bGkga2V5PXtldmVudC5pZH0gY2xhc3NOYW1lPVwiZXZlbnRcIiBkYXRhLWV2ZW50LWlkPXtldmVudC5pZH0+XG4gICAgICAgICAgICAgICAgICA8U2V2ZXJlRXZlbnRcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ9e2V2ZW50fVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbGljaz17aGFuZGxlRXZlbnRJdGVtQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlckV2ZW50PXtvbk1vdXNlRW50ZXJFdmVudH1cbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlRXZlbnQ9e29uTW91c2VMZWF2ZUV2ZW50fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgY29ubmVjdG9yID0gY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpO1xuZXhwb3J0IGRlZmF1bHQgY29ubmVjdG9yKEV2ZW50c0xpc3QpO1xuIl19
363
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9FdmVudHNMaXN0LnRzeCJdLCJuYW1lcyI6WyJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJlZGdlc19kYXRhIiwicG9pbnRzX2RhdGEiLCJhcmVhc19kYXRhIiwibmF2X2NvbnRleHRfZGF0YSIsIkV2ZW50c0xpc3QiLCJzaWRlbmF2RXhwYW5kZWQiLCJkaXNwYXRjaCIsIml0ZW1zIiwiaXNGZXRjaGluZyIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsImhvdmVyZWRFdmVudFBhdGhzIiwid2F0ZXJBdXRob3JpdHlJZCIsIm1hcCIsImZpbHRlclBvcHVwT3BlbiIsInNldEZpbHRlclBvcHVwT3BlbiIsImxhc3RWaXNpdGVkIiwidXNlUXVlcnkiLCJVUkxTZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJoaXN0b3J5IiwicXVlcnkiLCJnZXRLUUxWYWx1ZXNGcm9tVVJMIiwiZ2V0IiwiZ2V0RXZlbnRJZEZyb21VUkwiLCJsb2FkZXIiLCJsZW5ndGgiLCJuZXdBcmVhcyIsImhhbmRsZUV4cGFuc2lvblRvZ2dsZSIsImFwcGx5RGVmYXVsdEZpbHRlciIsInB1c2giLCJuYXZDb250ZXh0IiwibmFtZSIsImxvY2FsZSIsInZhbGlkYXRlRXZlbnQiLCJldmVudCIsImludmFsaWRPYnNlcnZhdGlvbnNNZXNzYWdlcyIsIm9ic2VydmF0aW9ucyIsImZvckVhY2giLCJvYnNlcnZhdGlvbiIsInBvaW50X2lzX3Jvb3QiLCJlZGdlIiwiZmluZCIsInNvdXJjZV9wb2ludF9pZCIsInBvaW50X2lkIiwidW5kZWZpbmVkIiwicG9pbnRfbmFtZSIsImFsZXJ0IiwiaW52YWxpZFBhdGhNZXNzYWdlcyIsInBhdGgiLCJpZCIsImVkZ2VfaWQiLCJjb25zb2xlIiwiZXJyb3IiLCJsYXN0X29ic2VydmF0aW9uX2lkIiwibGFzdE9ic2VydmF0aW9uUG9pbnQiLCJoYW5kbGVFdmVudEl0ZW1DbGljayIsInJlZiIsIm9uTW91c2VMZWF2ZUV2ZW50IiwiZXZlbnRGaWx0ZXJQYXJhbSIsIm9uTW91c2VFbnRlckV2ZW50IiwicmVtb3ZlTGF5ZXIiLCJsYXllcnMiLCJfbGF5ZXJzIiwicHJvcGVydHkiLCJrYW5kb19vYmplY3QiLCJpbmNsdWRlcyIsInNldEZvY3VzZWRFdmVudElmRm91bmRJblBhcmFtcyIsImUiLCJwYXJzZUludCIsInRyaWdnZXJTb3J0Iiwic29ydCIsImFjdGl2ZUZpbHRlciIsIktRTCIsIlVSTCIsIm1vcmVJbmZvIiwiYWN0aXZlIiwiZmFDYXJldExlZnQiLCJmYUNhcmV0UmlnaHQiLCJmYUFycm93TGVmdCIsImkxOG4iLCJ0IiwiTGVmdEFycm93SWNvbiIsIk5vRXZlbnRzSW1hZ2UiLCJjb25uZWN0b3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFDQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFJQTs7QUFFQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBOUJBO0FBZ0NBLFNBQVNBLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQTJDO0FBQ3pDLE1BQ0VDLFdBREYsR0FPSUQsS0FQSixDQUNFQyxXQURGO0FBQUEsTUFFRUMsV0FGRixHQU9JRixLQVBKLENBRUVFLFdBRkY7QUFBQSxNQUdFQyxVQUhGLEdBT0lILEtBUEosQ0FHRUcsVUFIRjtBQUFBLE1BSUVDLFdBSkYsR0FPSUosS0FQSixDQUlFSSxXQUpGO0FBQUEsTUFLRUMsVUFMRixHQU9JTCxLQVBKLENBS0VLLFVBTEY7QUFBQSxNQU1FQyxnQkFORixHQU9JTixLQVBKLENBTUVNLGdCQU5GO0FBU0EsU0FBTztBQUNMTCxJQUFBQSxXQUFXLEVBQVhBLFdBREs7QUFFTEMsSUFBQUEsV0FBVyxFQUFYQSxXQUZLO0FBR0xDLElBQUFBLFVBQVUsRUFBVkEsVUFISztBQUlMQyxJQUFBQSxX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QUFKckIsTUFERixDQURTO0FBQUEsR0FBVixDQURILENBdEJOLENBdEZGLENBREY7QUE2SEQsQ0F4VUQ7O0FBMFVBLElBQU0wQixTQUFTLEdBQUcseUJBQVF4RixlQUFSLENBQWxCOztlQUNld0YsU0FBUyxDQUFDaEYsVUFBRCxDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgZXRjL25vLWNvbW1lbnRlZC1vdXQtY29kZSAqL1xuaW1wb3J0IHtcbiAgZmFBcnJvd0xlZnQsXG4gIGZhQ2FyZXRMZWZ0LFxuICBmYUNhcmV0UmlnaHQsXG59IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBGb250QXdlc29tZUljb24gfSBmcm9tICdAZm9ydGF3ZXNvbWUvcmVhY3QtZm9udGF3ZXNvbWUnO1xuaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IExpbmssIHVzZUhpc3RvcnksIHVzZUxvY2F0aW9uIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTGVmdEFycm93SWNvbiBmcm9tICdzcmMvYXNzZXRzL2ljb25zL2Fycm93LWxlZnQuc3ZnJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIEZpbHRlckljb24gfSBmcm9tICdzcmMvYXNzZXRzL2ljb25zL2Z1bm5lbC5zdmcnO1xuaW1wb3J0IE5vRXZlbnRzSW1hZ2UgZnJvbSAnc3JjL2Fzc2V0cy9ub19ldmVudHMuc3ZnJztcbmltcG9ydCB7IFNldmVyZUV2ZW50IH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvU2V2ZXJlRXZlbnQvU2V2ZXJlRXZlbnQnO1xuaW1wb3J0IHsgSUFwcFN0YXRlIH0gZnJvbSAnc3JjL21vZGVscy9JQXBwU3RhdGUnO1xuaW1wb3J0IHsgdXNlTGFzdFZpc2l0ZWQgfSBmcm9tICdzcmMvcHJvdmlkZXJzL1VybEhpc3RvcnknO1xuaW1wb3J0IHtcbiAgZmV0Y2hFdmVudHMsXG4gIHNldEZvY3VzZWRFdmVudCxcbiAgc2V0SG92ZXJlZEV2ZW50LFxuICBzZXRIb3ZlcmVkRXZlbnRQYXRocyxcbn0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBzZXRFdmVudEZpbHRlclBhcmFtLCBzaWRlTmF2RXhwYW5kZWQgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IGJ1aWxkS1FMUXVlcnkgfSBmcm9tICdzcmMvdXRpbGl0aWVzL2txbCc7XG5pbXBvcnQgJy4uL0V2ZW50c1N0eWxlLnNjc3MnO1xuaW1wb3J0IEV2ZW50SW5mbyBmcm9tICcuLi9ldmVudF9pbmZvL0V2ZW50SW5mbyc7XG5pbXBvcnQgTW9yZUluZm8gZnJvbSAnLi4vTW9yZUluZm8nO1xuaW1wb3J0IEZpbHRlckNvbnRhaW5lciBmcm9tICcuL0ZpbHRlci9GaWx0ZXJDb250YWluZXInO1xuaW1wb3J0IFNvcnQgZnJvbSAnLi9Tb3J0JztcblxuZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlOiBJQXBwU3RhdGUpIHtcbiAgY29uc3Qge1xuICAgIGV2ZW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICAgIGVkZ2VzX2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gICAgYXJlYXNfZGF0YSxcbiAgICBuYXZfY29udGV4dF9kYXRhLFxuICB9ID0gc3RhdGU7XG5cbiAgcmV0dXJuIHtcbiAgICBldmVudHNfZGF0YSxcbiAgICBnbG9iYWxfZGF0YSxcbiAgICBlZGdlc19kYXRhLFxuICAgIHBvaW50c19kYXRhLFxuICAgIGFyZWFzX2RhdGEsXG4gICAgbmF2X2NvbnRleHRfZGF0YSxcbiAgfTtcbn1cblxudHlwZSBJUHJvcHMgPSBDb25uZWN0ZWRQcm9wczx0eXBlb2YgY29ubmVjdG9yPiAmIHtcbiAgc2lkZW5hdkV4cGFuZGVkOiBib29sZWFuO1xufTtcblxuY29uc3QgRXZlbnRzTGlzdDogUmVhY3QuRkM8SVByb3BzPiA9ICh7XG4gIGFyZWFzX2RhdGEsXG4gIHBvaW50c19kYXRhLFxuICBlZGdlc19kYXRhLFxuICBnbG9iYWxfZGF0YSxcbiAgc2lkZW5hdkV4cGFuZGVkLFxuICBldmVudHNfZGF0YSxcbiAgbmF2X2NvbnRleHRfZGF0YSxcbn0pID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCB7IGl0ZW1zLCBpc0ZldGNoaW5nLCBmb2N1c2VkRXZlbnQsIGhvdmVyZWRFdmVudCwgaG92ZXJlZEV2ZW50UGF0aHMgfSA9XG4gICAgZXZlbnRzX2RhdGE7XG4gIGNvbnN0IHsgd2F0ZXJBdXRob3JpdHlJZCwgbWFwIH0gPSBnbG9iYWxfZGF0YTtcbiAgY29uc3QgW2ZpbHRlclBvcHVwT3Blbiwgc2V0RmlsdGVyUG9wdXBPcGVuXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBsYXN0VmlzaXRlZCA9IHVzZUxhc3RWaXNpdGVkKCk7XG5cbiAgY29uc3QgdXNlUXVlcnkgPSAoKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXModXNlTG9jYXRpb24oKS5zZWFyY2gpO1xuICB9O1xuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpO1xuICBjb25zdCBxdWVyeSA9IHVzZVF1ZXJ5KCk7XG4gIGNvbnN0IGdldEtRTFZhbHVlc0Zyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgndmFsdWVzRnJvbUtRTCcpO1xuICB9O1xuICBjb25zdCBnZXRFdmVudElkRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCdldmVudElkJyk7XG4gIH07XG5cbiAgY29uc3QgbG9hZGVyID0gKCkgPT4ge1xuICAgIGlmIChcbiAgICAgIChpc0ZldGNoaW5nICYmIGl0ZW1zLmxlbmd0aCA9PT0gMCkgfHxcbiAgICAgIGFyZWFzX2RhdGEubmV3QXJlYXMubGVuZ3RoID09PSAwIHx8XG4gICAgICBwb2ludHNfZGF0YS5pc0ZldGNoaW5nIHx8XG4gICAgICBlZGdlc19kYXRhLmlzRmV0Y2hpbmdcbiAgICApIHtcbiAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17J2xvYWRlcid9PjwvZGl2PjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvblRvZ2dsZSA9ICgpID0+IHtcbiAgICBkaXNwYXRjaChzaWRlTmF2RXhwYW5kZWQoIXNpZGVuYXZFeHBhbmRlZCkpO1xuICB9O1xuXG4gIGNvbnN0IGFwcGx5RGVmYXVsdEZpbHRlciA9ICgpID0+IHtcbiAgICBoaXN0b3J5LnB1c2goXG4gICAgICBgLyR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWV9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWR9JmxvY2FsZT0ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGV9JnZhbHVlc0Zyb21LUUw9YCxcbiAgICApO1xuICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oJycpKTtcbiAgfTtcblxuICBjb25zdCB2YWxpZGF0ZUV2ZW50ID0gKGV2ZW50OiBJRXZlbnQpID0+IHtcbiAgICAvLyBjaGVjayB0aGF0IGFsbCBvYnNlcnZhdGlvbnMnIGVkZ2VzIGV4aXN0cy4gSWYgdGhleSBhcmUgbm90IGV4aXN0cyBpdCdzIGluZGljYXRlcyB0aGF0IHRoZWlyIHBvaW50cyBhcmVcbiAgICAvLyBub3QgaW4gdGhlIGhpZXJhcmNoeSBvciBkb2Vzbid0IGhhdmUgbGF0L2xuZy5cbiAgICBsZXQgaW52YWxpZE9ic2VydmF0aW9uc01lc3NhZ2VzOiBhbnkgPSBbXTtcbiAgICBldmVudC5vYnNlcnZhdGlvbnMuZm9yRWFjaCgob2JzZXJ2YXRpb246IGFueSkgPT4ge1xuICAgICAgLy8gaWYgb2JzZXJ2YXRpb24gaXMgcm9vdCAoZXguIFdXVFApIHRoZXJlIGlzIG5vIGVkZ2UgdGhhdCBpdHMgYSBzb3VyY2UuIHNvIHdlIGNhbiBza2lwIHRoaXMgY2hlY2tcbiAgICAgIGlmICghb2JzZXJ2YXRpb24ucG9pbnRfaXNfcm9vdCkge1xuICAgICAgICBsZXQgZWRnZSA9IGVkZ2VzX2RhdGEuaXRlbXMuZmluZChcbiAgICAgICAgICAoZWRnZSkgPT4gZWRnZS5zb3VyY2VfcG9pbnRfaWQgPT09IG9ic2VydmF0aW9uLnBvaW50X2lkLFxuICAgICAgICApO1xuICAgICAgICBpZiAoZWRnZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaW52YWxpZE9ic2VydmF0aW9uc01lc3NhZ2VzLnB1c2goXG4gICAgICAgICAgICBgJHtvYnNlcnZhdGlvbi5wb2ludF9uYW1lfSAoJHtvYnNlcnZhdGlvbi5wb2ludF9pZH0pYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW52YWxpZE9ic2VydmF0aW9uc01lc3NhZ2VzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgYWxlcnQoXG4gICAgICAgIGBQbGVhc2UgbWFrZSBzdXJlIHRoYXQgdGhlIGZvbGxvd2luZyBzaXRlcyBhcmUgaW4gdGhlIGhpZXJhcmNoeSBhbmQgdGhlaXIgbGF0ICYgbG5nIGNvb3JkaW5hdGVzIGV4aXN0IFxcbiAke2ludmFsaWRPYnNlcnZhdGlvbnNNZXNzYWdlc31gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBzYW1lIGNoZWNrIGFzIGFib3ZlIGJ1dCB0aGlzIHRpbWUgZm9yIHRoZSBldmVudCBwYXRoLiBJZiBlZGdlIGRvZXNuJ3QgZXhpc3QsIGl0J3MgaW5kaWNhdGVzIHRoYXQgb25lIG9mIHRoZVxuICAgIC8vIHBvaW50cyBkb3duc3RyZWFtIGRvZXNuJ3QgaGF2ZSBsYXQvbG5nLlxuICAgIGxldCBpbnZhbGlkUGF0aE1lc3NhZ2VzOiBhbnkgPSBbXTtcbiAgICBldmVudC5wYXRoLmZvckVhY2goKHBhdGg6IGFueSkgPT4ge1xuICAgICAgbGV0IGVkZ2UgPSBlZGdlc19kYXRhLml0ZW1zLmZpbmQoKGVkZ2UpID0+IGVkZ2UuaWQgPT09IHBhdGguZWRnZV9pZCk7XG4gICAgICBpZiAoZWRnZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYGVkZ2UgJHtwYXRoLmVkZ2VfaWR9IGNhbiBub3QgYmUgZm91bmRgKTtcbiAgICAgICAgbGV0IG9ic2VydmF0aW9uID0gZXZlbnQub2JzZXJ2YXRpb25zLmZpbmQoXG4gICAgICAgICAgKG9ic2VydmF0aW9uKSA9PiBvYnNlcnZhdGlvbi5pZCA9PT0gcGF0aC5sYXN0X29ic2VydmF0aW9uX2lkLFxuICAgICAgICApO1xuICAgICAgICBsZXQgbGFzdE9ic2VydmF0aW9uUG9pbnQgPSAnTm90IGZvdW5kJztcbiAgICAgICAgaWYgKG9ic2VydmF0aW9uKSB7XG4gICAgICAgICAgbGFzdE9ic2VydmF0aW9uUG9pbnQgPSBvYnNlcnZhdGlvbi5wb2ludF9uYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgaW52YWxpZFBhdGhNZXNzYWdlcy5wdXNoKGAke2xhc3RPYnNlcnZhdGlvblBvaW50fSBgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChpbnZhbGlkUGF0aE1lc3NhZ2VzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgYWxlcnQoXG4gICAgICAgIGBQbGVhc2UgbWFrZSBzdXJlIHRoYXQgdGhlIGZvbGxvd2luZyBzaXRlcyBhbmQgdGhlaXIgZG93bnN0cmVhbSBzaXRlcyBhbGwgaGF2ZSBsYXQgJiBsbmcgY29vcmRpbmF0ZXMgXFxuICR7aW52YWxpZFBhdGhNZXNzYWdlc31gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVFdmVudEl0ZW1DbGljayA9IChldmVudDogSUV2ZW50LCByZWY6IFJlZk9iamVjdDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICBvbk1vdXNlTGVhdmVFdmVudCgpO1xuICAgIC8vIGlmIChob3ZlcmVkRXZlbnRQYXRocyAmJiBtYXApIHtcbiAgICAvLyAgICAgaG92ZXJlZEV2ZW50UGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgIC8vICAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBhdGgpO1xuICAgIC8vICAgICB9KTtcbiAgICAvLyB9XG4gICAgLy8gZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50UGF0aHMoW10pKTtcbiAgICAvLyBkaXNwYXRjaChzZXRIb3ZlckV2ZW50SW5kaWNhdG9yKG51bGwpKTtcbiAgICBpZiAodmFsaWRhdGVFdmVudChldmVudCkpIHtcbiAgICAgIGRpc3BhdGNoKHNldEZvY3VzZWRFdmVudChldmVudCkpO1xuICAgICAgc2V0RmlsdGVyUG9wdXBPcGVuKGZhbHNlKTtcbiAgICAgIGhpc3RvcnkucHVzaChcbiAgICAgICAgYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfSZsb2NhbGU9JHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubG9jYWxlfSZldmVudElkPSR7ZXZlbnQuaWR9JnZhbHVlc0Zyb21LUUw9JHtnbG9iYWxfZGF0YS5ldmVudEZpbHRlclBhcmFtfWAsXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbk1vdXNlRW50ZXJFdmVudCA9IChldmVudCkgPT4ge1xuICAgIGlmICghZm9jdXNlZEV2ZW50ICYmICFob3ZlcmVkRXZlbnQgJiYgdmFsaWRhdGVFdmVudChldmVudCkpIHtcbiAgICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudChldmVudCkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbk1vdXNlTGVhdmVFdmVudCA9ICgpID0+IHtcbiAgICBpZiAoaG92ZXJlZEV2ZW50ICYmIGhvdmVyZWRFdmVudFBhdGhzICYmIG1hcCkge1xuICAgICAgaG92ZXJlZEV2ZW50UGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIocGF0aCk7XG4gICAgICB9KTtcblxuICAgICAgbGV0IGxheWVycyA9IG1hcC5fbGF5ZXJzO1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBsYXllcnMpIHtcbiAgICAgICAgY29uc3Qga2FuZG9fb2JqZWN0ID0gbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3Q7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBrYW5kb19vYmplY3Q/LmluY2x1ZGVzKCdFdmVudEJvZHknKSB8fFxuICAgICAgICAgIFsnRXZlbnRUYWlsJywgJ1NhbXBsaW5nUG9pbnQnLCAnRGVjb3JhdG9yJ10uaW5jbHVkZXMoa2FuZG9fb2JqZWN0KVxuICAgICAgICApIHtcbiAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXJzW3Byb3BlcnR5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50KG51bGwpKTtcbiAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRXZlbnRQYXRocyhbXSkpO1xuICAgIC8vIGRpc3BhdGNoKHNldEhvdmVyRXZlbnRJbmRpY2F0b3IobnVsbCkpO1xuICB9O1xuXG4gIGNvbnN0IHNldEZvY3VzZWRFdmVudElmRm91bmRJblBhcmFtcyA9ICgpID0+IHtcbiAgICBpZiAoXG4gICAgICBnZXRFdmVudElkRnJvbVVSTCgpICE9PSBudWxsICYmXG4gICAgICBnZXRFdmVudElkRnJvbVVSTCgpICE9PSAnbnVsbCcgJiZcbiAgICAgIGZvY3VzZWRFdmVudCA9PT0gbnVsbCAmJlxuICAgICAgaXRlbXMubGVuZ3RoICE9PSAwICYmXG4gICAgICAhaXNGZXRjaGluZyAmJlxuICAgICAgIWFyZWFzX2RhdGEuaXNGZXRjaGluZyAmJlxuICAgICAgIXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICFlZGdlc19kYXRhLmlzRmV0Y2hpbmdcbiAgICApIHtcbiAgICAgIGxldCBldmVudCA9IGV2ZW50c19kYXRhLml0ZW1zLmZpbmQoXG4gICAgICAgIChlOiBJRXZlbnQpID0+IGUuaWQgPT09IHBhcnNlSW50KGdldEV2ZW50SWRGcm9tVVJMKCkhKSxcbiAgICAgICk7XG4gICAgICBpZiAoZXZlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkaXNwYXRjaChzZXRGb2N1c2VkRXZlbnQoZXZlbnQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdHJpZ2dlclNvcnQgPSAoc29ydDogbnVtYmVyKSA9PiB7XG4gICAgaWYgKGdsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlciAhPT0gbnVsbCkge1xuICAgICAgbGV0IEtRTDtcbiAgICAgIGxldCBVUkw7XG4gICAgICBzd2l0Y2ggKHNvcnQpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIEtRTCA9IGAke2J1aWxkS1FMUXVlcnkoZ2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyLCAnbmV3ZXN0Jyl9YDtcbiAgICAgICAgICBVUkwgPSBgLyR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWV9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWR9JmxvY2FsZT0ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGV9JnZhbHVlc0Zyb21LUUw9JHtLUUx9YDtcbiAgICAgICAgICBoaXN0b3J5LnB1c2goVVJMKTtcbiAgICAgICAgICBkaXNwYXRjaChzZXRFdmVudEZpbHRlclBhcmFtKEtRTCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgS1FMID0gYCR7YnVpbGRLUUxRdWVyeShnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXIsICdvbGRlc3QnKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mdmFsdWVzRnJvbUtRTD0ke0tRTH1gO1xuICAgICAgICAgIGhpc3RvcnkucHVzaChVUkwpO1xuICAgICAgICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oS1FMKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBLUUwgPSBgJHtidWlsZEtRTFF1ZXJ5KGdsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlciwgJ3NldmVyaXR5Jyl9YDtcbiAgICAgICAgICBVUkwgPSBgLyR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWV9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWR9JmxvY2FsZT0ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGV9JnZhbHVlc0Zyb21LUUw9JHtLUUx9YDtcbiAgICAgICAgICBoaXN0b3J5LnB1c2goVVJMKTtcbiAgICAgICAgICBkaXNwYXRjaChzZXRFdmVudEZpbHRlclBhcmFtKEtRTCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoRXZlbnRzKHdhdGVyQXV0aG9yaXR5SWQsIGdldEtRTFZhbHVlc0Zyb21VUkwoKSB8fCAnREVGQVVMVCcpKTtcbiAgfSwgW2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1dKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXsnc2lkZW5hdiAnICsgKHNpZGVuYXZFeHBhbmRlZCA/ICcnIDogJ3NpZGVuYXYtLWNvbGxhcHNlZCcpfT5cbiAgICAgIHtzZXRGb2N1c2VkRXZlbnRJZkZvdW5kSW5QYXJhbXMoKX1cbiAgICAgIHtnbG9iYWxfZGF0YS5tb3JlSW5mbyAhPT0gdW5kZWZpbmVkICYmIGdsb2JhbF9kYXRhLm1vcmVJbmZvLmFjdGl2ZSAmJiAoXG4gICAgICAgIDxNb3JlSW5mbyAvPlxuICAgICAgKX1cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICdldmVudC1pbmZvICcgK1xuICAgICAgICAgICghaG92ZXJlZEV2ZW50ICYmIGZvY3VzZWRFdmVudCAhPT0gbnVsbFxuICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgOiAnZXZlbnQtaW5mby0tY29sbGFwc2VkJylcbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICB7IWhvdmVyZWRFdmVudCAmJiBmb2N1c2VkRXZlbnQgIT09IG51bGwgJiYgKFxuICAgICAgICAgIDxFdmVudEluZm9cbiAgICAgICAgICAgIGV2ZW50PXtmb2N1c2VkRXZlbnR9XG4gICAgICAgICAgICByZU9wZW5GaWx0ZXI9eygpID0+IHNldEZpbHRlclBvcHVwT3Blbih0cnVlKX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInRvZ2dsZS1leHBhbnNpb24tYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGhhbmRsZUV4cGFuc2lvblRvZ2dsZSgpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5hdi1leHBhbnNpb24taWNvblwiPlxuICAgICAgICAgIDxGb250QXdlc29tZUljb25cbiAgICAgICAgICAgIGljb249e3NpZGVuYXZFeHBhbmRlZCA/IGZhQ2FyZXRMZWZ0IDogZmFDYXJldFJpZ2h0fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17J3RvZ2dsZS1leHBhbnNpb24tYnV0dG9uLW1vYmlsZSd9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBoYW5kbGVFeHBhbnNpb25Ub2dnbGUoKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGEgaHJlZj1cIiNcIj5cbiAgICAgICAgICA8Rm9udEF3ZXNvbWVJY29uIGljb249e2ZhQXJyb3dMZWZ0fSAvPlxuICAgICAgICAgIDxzcGFuPiB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuYmFja190b19kZXRhaWxzJyl9PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXZlbnRzLWhlYWRlclwiPlxuICAgICAgICB7bGFzdFZpc2l0ZWQgJiYgIWlzRmV0Y2hpbmcgJiYgKFxuICAgICAgICAgIDxMaW5rIGNsYXNzTmFtZT1cImJhY2tcIiB0bz17bGFzdFZpc2l0ZWR9PlxuICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgc3JjPXtMZWZ0QXJyb3dJY29ufVxuICAgICAgICAgICAgICBoZWlnaHQ9XCIxMHB4XCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxMnB4XCJcbiAgICAgICAgICAgICAgYWx0PVwiYmFja1wiXG4gICAgICAgICAgICAvPnsnICd9XG4gICAgICAgICAgICB7aTE4bi50KCdhcmVhX3NjcmVlbi5iYWNrJyl9XG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICApfVxuICAgICAgICA8aDQ+XG4gICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmV2ZW50c19saXN0Jyl9ICh7ZXZlbnRzX2RhdGEuaXRlbXMubGVuZ3RofSlcbiAgICAgICAgPC9oND5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXJpbmdcIj5cbiAgICAgICAgICB7ZXZlbnRzX2RhdGEuaXRlbXMubGVuZ3RoICE9PSAwICYmIChcbiAgICAgICAgICAgIDxTb3J0XG4gICAgICAgICAgICAgIHRyaWdnZXJTb3J0PXt0cmlnZ2VyU29ydH1cbiAgICAgICAgICAgICAgZXZlbnRzPXtldmVudHNfZGF0YS5pdGVtc31cbiAgICAgICAgICAgICAgZXZlbnRzRmV0Y2hpbmc9e2V2ZW50c19kYXRhLmlzRmV0Y2hpbmd9XG4gICAgICAgICAgICAgIGFjdGl2ZUZpbHRlcj17Z2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaWNvbnNcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmlsdGVyXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0RmlsdGVyUG9wdXBPcGVuKCFmaWx0ZXJQb3B1cE9wZW4pfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RmlsdGVySWNvbiB3aWR0aD1cIjE3cHhcIiBoZWlnaHQ9XCIxN3B4XCIgZmlsbD1cIiNmNjAwNGZcIiAvPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIHtwb2ludHNfZGF0YS5pdGVtcy5sZW5ndGggIT09IDAgJiYgKFxuICAgICAgICAgIDxGaWx0ZXJDb250YWluZXJcbiAgICAgICAgICAgIGZpbHRlclBvcHVwT3Blbj17ZmlsdGVyUG9wdXBPcGVufVxuICAgICAgICAgICAgZmV0Y2hUeXBlPXsnRXZlbnRGaWx0ZXInfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXZlbnRzLWNvbnRhaW5lciBzY3JvbGxiYXIgXCI+XG4gICAgICAgIHtsb2FkZXIoKX1cbiAgICAgICAgeyFpc0ZldGNoaW5nICYmXG4gICAgICAgICAgaXRlbXMubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgIXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZXZlbnRzX19ibGFua3NsYXRlJ30+XG4gICAgICAgICAgICAgIDxpbWcgc3JjPXtOb0V2ZW50c0ltYWdlfSBhbHQ9XCJOb0V2ZW50c0ljb25cIiAvPlxuICAgICAgICAgICAgICA8aDI+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5ibGFua3NsYXRlLmhlYWRlcicpfTwvaDI+XG4gICAgICAgICAgICAgIDxwPntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuYmxhbmtzbGF0ZS5ib2R5Jyl9PC9wPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J2FwcGx5X2RlZmF1bHRfZmlsdGVyX2J1dHRvbid9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gYXBwbHlEZWZhdWx0RmlsdGVyKCl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmJsYW5rc2xhdGUuYnV0dG9uJyl9XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIHtpdGVtcy5sZW5ndGggIT09IDAgJiZcbiAgICAgICAgICAhYXJlYXNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAgICAgIXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nICYmIChcbiAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJldmVudHMgXCI+XG4gICAgICAgICAgICAgIHtpdGVtcy5tYXAoKGV2ZW50OiBhbnkpID0+IChcbiAgICAgICAgICAgICAgICA8bGkga2V5PXtldmVudC5pZH0gY2xhc3NOYW1lPVwiZXZlbnRcIiBkYXRhLWV2ZW50LWlkPXtldmVudC5pZH0+XG4gICAgICAgICAgICAgICAgICA8U2V2ZXJlRXZlbnRcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ9e2V2ZW50fVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbGljaz17aGFuZGxlRXZlbnRJdGVtQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlckV2ZW50PXtvbk1vdXNlRW50ZXJFdmVudH1cbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlRXZlbnQ9e29uTW91c2VMZWF2ZUV2ZW50fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgY29ubmVjdG9yID0gY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpO1xuZXhwb3J0IGRlZmF1bHQgY29ubmVjdG9yKEV2ZW50c0xpc3QpO1xuIl19
@@ -90,11 +90,13 @@ var Filter = function Filter(props) {
90
90
  });
91
91
  };
92
92
 
93
- (0, _react.useEffect)(function () {}, []);
93
+ (0, _react.useEffect)(function () {
94
+ applyFilter();
95
+ }, []);
94
96
  return /*#__PURE__*/_react.default.createElement("div", {
95
97
  className: 'filter'
96
98
  }, /*#__PURE__*/_react.default.createElement("ul", {
97
- className: 'filter_items'
99
+ className: "filter_items ".concat(activeFilterCopy.filter_items.length === availableFilterItems.length ? 'filter_items--disabled' : '')
98
100
  }, activeFilterCopy !== undefined && activeFilterCopy.filter_items !== undefined && activeFilterCopy.filter_items.length !== 0 && activeFilterCopy.filter_items.map(function (filter_item) {
99
101
  return /*#__PURE__*/_react.default.createElement("li", {
100
102
  className: 'filter_item',
@@ -135,4 +137,4 @@ var Filter = function Filter(props) {
135
137
 
136
138
  var _default = Filter;
137
139
  exports.default = _default;
138
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9GaWx0ZXIvRmlsdGVyLnRzeCJdLCJuYW1lcyI6WyJGaWx0ZXIiLCJwcm9wcyIsImFjdGl2ZUZpbHRlckNvcHkiLCJzZXRBY3RpdmVGaWx0ZXJDb3B5IiwicGFyc2VTZWxlY3RlZEl0ZW1zIiwiYXZhaWxhYmxlRmlsdGVySXRlbXMiLCJhcHBseUZpbHRlciIsImZpbHRlckl0ZW1JZCIsInNob3ciLCJzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCIsInNldFNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwIiwiY2FtZWxUb1NuYWtlQ2FzZSIsInN0ciIsInRvTG93ZXJDYXNlIiwic2xpY2UiLCJsZW5ndGgiLCJyZXBsYWNlIiwibGV0dGVyIiwidHJhbnNsYXRlRmlsdGVySXRlbVR5cGUiLCJmaWx0ZXJJdGVtVHlwZSIsImkxOG4iLCJ0IiwiYnVpbGRVbnNlbGVjdGVkSXRlbXMiLCJmaWx0ZXJfaXRlbSIsImZpbHRlcl9pdGVtcyIsInVuZGVmaW5lZCIsImZpbmQiLCJzZWxlY3RlZF9pdGVtIiwidHlwZSIsImFkZEZpbHRlckl0ZW0iLCJmaWx0ZXJJdGVtIiwicHVzaCIsImlkIiwiZmlsdGVyX2lkIiwiYXZhaWxhYmxlX29wdGlvbnMiLCJvcHRpb25zIiwic2VsZWN0ZWRfb3B0aW9ucyIsImFjdGl2ZUZpbHRlckR1cGxpY2F0ZSIsIk9iamVjdCIsImFzc2lnbiIsImhhbmRsZUFwcGx5RmlsdGVyIiwibWFwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7QUFHQTs7QUFDQTs7QUFDQTs7Ozs7O0FBVUEsSUFBTUEsTUFBd0IsR0FBRyxTQUEzQkEsTUFBMkIsQ0FBQ0MsS0FBRCxFQUFXO0FBQzFDLE1BQ0VDLGdCQURGLEdBTUlELEtBTkosQ0FDRUMsZ0JBREY7QUFBQSxNQUVFQyxtQkFGRixHQU1JRixLQU5KLENBRUVFLG1C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QXJCLEtBQWdDLENBQWhDLElBQ0NWLG9CQUFvQixDQUFDb0MsR0FBckIsQ0FBeUIsVUFBQ2xCLFdBQUQ7QUFBQSxXQUN2QkQsb0JBQW9CLENBQUNDLFdBQUQsQ0FERztBQUFBLEdBQXpCLENBRkosQ0FERixDQVJGLENBREYsQ0FqQkYsZUFvQ0U7QUFBSSxJQUFBLFNBQVMsRUFBRTtBQUFmLGtCQUNFO0FBQUssSUFBQSxTQUFTLEVBQUU7QUFBaEIsa0JBQ0U7QUFDRSxJQUFBLFNBQVMsRUFBRSxjQURiO0FBRUUsSUFBQSxPQUFPLEVBQUUsbUJBQU07QUFDYmlCLE1BQUFBLGlCQUFpQjtBQUNsQjtBQUpILEtBTUdwQixjQUFLQyxDQUFMLENBQU8sOEJBQVAsQ0FOSCxDQURGLENBREYsQ0FwQ0YsQ0FERixDQURGO0FBcURELENBcEhEOztlQXNIZXJCLE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ0BrZW5zaG9vdWkvcmVhY3QtbXVsdGktc2VsZWN0L2Rpc3Qvc3R5bGUuY3NzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IERyb3Bkb3duIGZyb20gJ3JlYWN0LWJvb3RzdHJhcC9Ecm9wZG93bic7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBQbHVzSWNvbiB9IGZyb20gJ3NyYy9hc3NldHMvaWNvbnMvYWRkLnN2Zyc7XG5pbXBvcnQgeyBJRmlsdGVySXRlbSB9IGZyb20gJ3NyYy9zdG9yZS9maWx0ZXJzL0lGaWx0ZXJJdGVtJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgJy4uLy4uL0V2ZW50c1N0eWxlLnNjc3MnO1xuaW1wb3J0IEZpbHRlckl0ZW0gZnJvbSAnLi9GaWx0ZXJJdGVtJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIGFjdGl2ZUZpbHRlckNvcHk6IGFueTtcbiAgc2V0QWN0aXZlRmlsdGVyQ29weTogUmVhY3QuRGlzcGF0Y2g8YW55PjtcbiAgcGFyc2VTZWxlY3RlZEl0ZW1zOiBhbnk7XG4gIGF2YWlsYWJsZUZpbHRlckl0ZW1zOiBhbnk7XG4gIGFwcGx5RmlsdGVyOiBhbnk7XG59O1xuXG5jb25zdCBGaWx0ZXI6IFJlYWN0LkZDPElQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGFjdGl2ZUZpbHRlckNvcHksXG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weSxcbiAgICBwYXJzZVNlbGVjdGVkSXRlbXMsXG4gICAgYXZhaWxhYmxlRmlsdGVySXRlbXMsXG4gICAgYXBwbHlGaWx0ZXIsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW3Nob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwLCBzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cF0gPSB1c2VTdGF0ZSh7XG4gICAgZmlsdGVySXRlbUlkOiBudWxsLFxuICAgIHNob3c6IGZhbHNlLFxuICB9KTtcbiAgY29uc3QgY2FtZWxUb1NuYWtlQ2FzZSA9IChzdHI6IHN0cmluZykgPT5cbiAgICBzdHJbMF0udG9Mb3dlckNhc2UoKSArXG4gICAgc3RyXG4gICAgICAuc2xpY2UoMSwgc3RyLmxlbmd0aClcbiAgICAgIC5yZXBsYWNlKC9bQS1aXS9nLCAobGV0dGVyKSA9PiBgXyR7bGV0dGVyLnRvTG93ZXJDYXNlKCl9YCk7XG4gIGNvbnN0IHRyYW5zbGF0ZUZpbHRlckl0ZW1UeXBlID0gKGZpbHRlckl0ZW1UeXBlOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gaTE4bi50KFxuICAgICAgYGV2ZW50c19vdmVydmlldy5maWx0ZXIuZmlsdGVyX3R5cGVzLiR7Y2FtZWxUb1NuYWtlQ2FzZShmaWx0ZXJJdGVtVHlwZSl9YCxcbiAgICApO1xuICB9O1xuICBjb25zdCBidWlsZFVuc2VsZWN0ZWRJdGVtcyA9IChmaWx0ZXJfaXRlbTogSUZpbHRlckl0ZW0pID0+IHtcbiAgICBpZiAoXG4gICAgICBhY3RpdmVGaWx0ZXJDb3B5LmZpbHRlcl9pdGVtcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBhY3RpdmVGaWx0ZXJDb3B5LmZpbHRlcl9pdGVtcy5maW5kKFxuICAgICAgICAoc2VsZWN0ZWRfaXRlbTogSUZpbHRlckl0ZW0pID0+IHNlbGVjdGVkX2l0ZW0udHlwZSA9PT0gZmlsdGVyX2l0ZW0udHlwZSxcbiAgICAgICkgPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPERyb3Bkb3duLkl0ZW1cbiAgICAgICAgICBocmVmPVwiI1wiXG4gICAgICAgICAga2V5PXtmaWx0ZXJfaXRlbS50eXBlfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGFkZEZpbHRlckl0ZW0oZmlsdGVyX2l0ZW0sIGFjdGl2ZUZpbHRlckNvcHkpfVxuICAgICAgICA+XG4gICAgICAgICAge3RyYW5zbGF0ZUZpbHRlckl0ZW1UeXBlKGZpbHRlcl9pdGVtLnR5cGUpfVxuICAgICAgICA8L0Ryb3Bkb3duLkl0ZW0+XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGFkZEZpbHRlckl0ZW0gPSAoZmlsdGVySXRlbTogYW55LCBhY3RpdmVGaWx0ZXJDb3B5OiBhbnkpID0+IHtcbiAgICBhY3RpdmVGaWx0ZXJDb3B5LmZpbHRlcl9pdGVtcy5wdXNoKHtcbiAgICAgIGlkOiBmaWx0ZXJJdGVtLnR5cGUsXG4gICAgICB0eXBlOiBmaWx0ZXJJdGVtLnR5cGUsXG4gICAgICBmaWx0ZXJfaWQ6IGFjdGl2ZUZpbHRlckNvcHkuaWQsXG4gICAgICBhdmFpbGFibGVfb3B0aW9uczogZmlsdGVySXRlbS5vcHRpb25zLFxuICAgICAgc2VsZWN0ZWRfb3B0aW9uczogW10sXG4gICAgfSk7XG5cbiAgICBsZXQgYWN0aXZlRmlsdGVyRHVwbGljYXRlID0gT2JqZWN0LmFzc2lnbih7fSwgYWN0aXZlRmlsdGVyQ29weSk7XG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weShhY3RpdmVGaWx0ZXJEdXBsaWNhdGUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUFwcGx5RmlsdGVyID0gKCkgPT4ge1xuICAgIGFwcGx5RmlsdGVyKCk7XG4gICAgc2V0U2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAoeyBmaWx0ZXJJdGVtSWQ6IG51bGwsIHNob3c6IGZhbHNlIH0pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7fSwgW10pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9eydmaWx0ZXInfT5cbiAgICAgIDx1bCBjbGFzc05hbWU9eydmaWx0ZXJfaXRlbXMnfT5cbiAgICAgICAge2FjdGl2ZUZpbHRlckNvcHkgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIGFjdGl2ZUZpbHRlckNvcHkuZmlsdGVyX2l0ZW1zICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBhY3RpdmVGaWx0ZXJDb3B5LmZpbHRlcl9pdGVtcy5sZW5ndGggIT09IDAgJiZcbiAgICAgICAgICBhY3RpdmVGaWx0ZXJDb3B5LmZpbHRlcl9pdGVtcy5tYXAoKGZpbHRlcl9pdGVtOiBJRmlsdGVySXRlbSkgPT4gKFxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT17J2ZpbHRlcl9pdGVtJ30ga2V5PXtmaWx0ZXJfaXRlbS5pZH0+XG4gICAgICAgICAgICAgIDxGaWx0ZXJJdGVtXG4gICAgICAgICAgICAgICAgYWN0aXZlRmlsdGVyQ29weT17YWN0aXZlRmlsdGVyQ29weX1cbiAgICAgICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5PXtzZXRBY3RpdmVGaWx0ZXJDb3B5fVxuICAgICAgICAgICAgICAgIGZpbHRlcl9pdGVtPXtmaWx0ZXJfaXRlbX1cbiAgICAgICAgICAgICAgICBwYXJzZVNlbGVjdGVkSXRlbXM9e3BhcnNlU2VsZWN0ZWRJdGVtc31cbiAgICAgICAgICAgICAgICBhdmFpbGFibGVGaWx0ZXJJdGVtcz17YXZhaWxhYmxlRmlsdGVySXRlbXN9XG4gICAgICAgICAgICAgICAgc2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXA9e3Nob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwfVxuICAgICAgICAgICAgICAgIHNldFNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwPXtzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDxsaSBjbGFzc05hbWU9eydmaXhlZC1hY3Rpb24nfT5cbiAgICAgICAgICA8RHJvcGRvd24gY2xhc3NOYW1lPXsnYXZhaWxhYmxlLWZpbHRlci1pdGVtcyd9PlxuICAgICAgICAgICAgPERyb3Bkb3duLlRvZ2dsZSB2YXJpYW50PVwic3VjY2Vzc1wiIGlkPVwiZHJvcGRvd24tYmFzaWNcIj5cbiAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgPFBsdXNJY29uIGNsYXNzTmFtZT1cInBsdXMtaWNvblwiIGhlaWdodD1cIjE1cHhcIiB3aWR0aD1cIjE1cHhcIiAvPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuYWRkX2ZpbHRlcl9pdGVtJyl9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvRHJvcGRvd24uVG9nZ2xlPlxuXG4gICAgICAgICAgICA8RHJvcGRvd24uTWVudT5cbiAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgIHthdmFpbGFibGVGaWx0ZXJJdGVtcy5sZW5ndGggIT09IDAgJiZcbiAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZUZpbHRlckl0ZW1zLm1hcCgoZmlsdGVyX2l0ZW06IElGaWx0ZXJJdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgICBidWlsZFVuc2VsZWN0ZWRJdGVtcyhmaWx0ZXJfaXRlbSksXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9Ecm9wZG93bi5NZW51PlxuICAgICAgICAgIDwvRHJvcGRvd24+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzc05hbWU9eydmaXhlZC1hY3Rpb24nfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2FwcGx5LWJ1dHRvbi1jb250YWluZXInfT5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17J2FwcGx5LWJ1dHRvbid9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICBoYW5kbGVBcHBseUZpbHRlcigpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmFwcGx5Jyl9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsdGVyO1xuIl19
140
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9GaWx0ZXIvRmlsdGVyLnRzeCJdLCJuYW1lcyI6WyJGaWx0ZXIiLCJwcm9wcyIsImFjdGl2ZUZpbHRlckNvcHkiLCJzZXRBY3RpdmVGaWx0ZXJDb3B5IiwicGFyc2VTZWxlY3RlZEl0ZW1zIiwiYXZhaWxhYmxlRmlsdGVySXRlbXMiLCJhcHBseUZpbHRlciIsImZpbHRlckl0ZW1JZCIsInNob3ciLCJzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCIsInNldFNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwIiwiY2FtZWxUb1NuYWtlQ2FzZSIsInN0ciIsInRvTG93ZXJDYXNlIiwic2xpY2UiLCJsZW5ndGgiLCJyZXBsYWNlIiwibGV0dGVyIiwidHJhbnNsYXRlRmlsdGVySXRlbVR5cGUiLCJmaWx0ZXJJdGVtVHlwZSIsImkxOG4iLCJ0IiwiYnVpbGRVbnNlbGVjdGVkSXRlbXMiLCJmaWx0ZXJfaXRlbSIsImZpbHRlcl9pdGVtcyIsInVuZGVmaW5lZCIsImZpbmQiLCJzZWxlY3RlZF9pdGVtIiwidHlwZSIsImFkZEZpbHRlckl0ZW0iLCJmaWx0ZXJJdGVtIiwicHVzaCIsImlkIiwiZmlsdGVyX2lkIiwiYXZhaWxhYmxlX29wdGlvbnMiLCJvcHRpb25zIiwic2VsZWN0ZWRfb3B0aW9ucyIsImFjdGl2ZUZpbHRlckR1cGxpY2F0ZSIsIk9iamVjdCIsImFzc2lnbiIsImhhbmRsZUFwcGx5RmlsdGVyIiwibWFwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7QUFHQTs7QUFDQTs7QUFDQTs7Ozs7O0FBVUEsSUFBTUEsTUFBd0IsR0FBRyxTQUEzQkEsTUFBMkIsQ0FBQ0MsS0FBRCxFQUFXO0FBQzFDLE1BQ0VDLGdCQURGLEdBTUlELEtBTkosQ0FDRUMsZ0JBREY7QUFBQSxNQUVFQyxtQkFGRixHQU1JRixLQU5KLENBRUVFLG1C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R1UsY0FBS0MsQ0FBTCxDQUFPLHdDQUFQLENBRkgsQ0FERixDQURGLGVBUUUsNkJBQUMsaUJBQUQsQ0FBVSxJQUFWLHFCQUNFLHlDQUNHaEIsb0JBQW9CLENBQUNVLE1BQXJCLEtBQWdDLENBQWhDLElBQ0NWLG9CQUFvQixDQUFDb0MsR0FBckIsQ0FBeUIsVUFBQ2xCLFdBQUQ7QUFBQSxXQUN2QkQsb0JBQW9CLENBQUNDLFdBQUQsQ0FERztBQUFBLEdBQXpCLENBRkosQ0FERixDQVJGLENBREYsQ0F2QkYsZUEwQ0U7QUFBSSxJQUFBLFNBQVMsRUFBRTtBQUFmLGtCQUNFO0FBQUssSUFBQSxTQUFTLEVBQUU7QUFBaEIsa0JBQ0U7QUFDRSxJQUFBLFNBQVMsRUFBRSxjQURiO0FBRUUsSUFBQSxPQUFPLEVBQUUsbUJBQU07QUFDYmlCLE1BQUFBLGlCQUFpQjtBQUNsQjtBQUpILEtBTUdwQixjQUFLQyxDQUFMLENBQU8sOEJBQVAsQ0FOSCxDQURGLENBREYsQ0ExQ0YsQ0FERixDQURGO0FBMkRELENBNUhEOztlQThIZXJCLE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ0BrZW5zaG9vdWkvcmVhY3QtbXVsdGktc2VsZWN0L2Rpc3Qvc3R5bGUuY3NzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IERyb3Bkb3duIGZyb20gJ3JlYWN0LWJvb3RzdHJhcC9Ecm9wZG93bic7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBQbHVzSWNvbiB9IGZyb20gJ3NyYy9hc3NldHMvaWNvbnMvYWRkLnN2Zyc7XG5pbXBvcnQgeyBJRmlsdGVySXRlbSB9IGZyb20gJ3NyYy9zdG9yZS9maWx0ZXJzL0lGaWx0ZXJJdGVtJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgJy4uLy4uL0V2ZW50c1N0eWxlLnNjc3MnO1xuaW1wb3J0IEZpbHRlckl0ZW0gZnJvbSAnLi9GaWx0ZXJJdGVtJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIGFjdGl2ZUZpbHRlckNvcHk6IGFueTtcbiAgc2V0QWN0aXZlRmlsdGVyQ29weTogUmVhY3QuRGlzcGF0Y2g8YW55PjtcbiAgcGFyc2VTZWxlY3RlZEl0ZW1zOiBhbnk7XG4gIGF2YWlsYWJsZUZpbHRlckl0ZW1zOiBhbnk7XG4gIGFwcGx5RmlsdGVyOiBhbnk7XG59O1xuXG5jb25zdCBGaWx0ZXI6IFJlYWN0LkZDPElQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGFjdGl2ZUZpbHRlckNvcHksXG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weSxcbiAgICBwYXJzZVNlbGVjdGVkSXRlbXMsXG4gICAgYXZhaWxhYmxlRmlsdGVySXRlbXMsXG4gICAgYXBwbHlGaWx0ZXIsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW3Nob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwLCBzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cF0gPSB1c2VTdGF0ZSh7XG4gICAgZmlsdGVySXRlbUlkOiBudWxsLFxuICAgIHNob3c6IGZhbHNlLFxuICB9KTtcbiAgY29uc3QgY2FtZWxUb1NuYWtlQ2FzZSA9IChzdHI6IHN0cmluZykgPT5cbiAgICBzdHJbMF0udG9Mb3dlckNhc2UoKSArXG4gICAgc3RyXG4gICAgICAuc2xpY2UoMSwgc3RyLmxlbmd0aClcbiAgICAgIC5yZXBsYWNlKC9bQS1aXS9nLCAobGV0dGVyKSA9PiBgXyR7bGV0dGVyLnRvTG93ZXJDYXNlKCl9YCk7XG4gIGNvbnN0IHRyYW5zbGF0ZUZpbHRlckl0ZW1UeXBlID0gKGZpbHRlckl0ZW1UeXBlOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gaTE4bi50KFxuICAgICAgYGV2ZW50c19vdmVydmlldy5maWx0ZXIuZmlsdGVyX3R5cGVzLiR7Y2FtZWxUb1NuYWtlQ2FzZShmaWx0ZXJJdGVtVHlwZSl9YCxcbiAgICApO1xuICB9O1xuICBjb25zdCBidWlsZFVuc2VsZWN0ZWRJdGVtcyA9IChmaWx0ZXJfaXRlbTogSUZpbHRlckl0ZW0pID0+IHtcbiAgICBpZiAoXG4gICAgICBhY3RpdmVGaWx0ZXJDb3B5LmZpbHRlcl9pdGVtcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBhY3RpdmVGaWx0ZXJDb3B5LmZpbHRlcl9pdGVtcy5maW5kKFxuICAgICAgICAoc2VsZWN0ZWRfaXRlbTogSUZpbHRlckl0ZW0pID0+IHNlbGVjdGVkX2l0ZW0udHlwZSA9PT0gZmlsdGVyX2l0ZW0udHlwZSxcbiAgICAgICkgPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPERyb3Bkb3duLkl0ZW1cbiAgICAgICAgICBocmVmPVwiI1wiXG4gICAgICAgICAga2V5PXtmaWx0ZXJfaXRlbS50eXBlfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGFkZEZpbHRlckl0ZW0oZmlsdGVyX2l0ZW0sIGFjdGl2ZUZpbHRlckNvcHkpfVxuICAgICAgICA+XG4gICAgICAgICAge3RyYW5zbGF0ZUZpbHRlckl0ZW1UeXBlKGZpbHRlcl9pdGVtLnR5cGUpfVxuICAgICAgICA8L0Ryb3Bkb3duLkl0ZW0+XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGFkZEZpbHRlckl0ZW0gPSAoZmlsdGVySXRlbTogYW55LCBhY3RpdmVGaWx0ZXJDb3B5OiBhbnkpID0+IHtcbiAgICBhY3RpdmVGaWx0ZXJDb3B5LmZpbHRlcl9pdGVtcy5wdXNoKHtcbiAgICAgIGlkOiBmaWx0ZXJJdGVtLnR5cGUsXG4gICAgICB0eXBlOiBmaWx0ZXJJdGVtLnR5cGUsXG4gICAgICBmaWx0ZXJfaWQ6IGFjdGl2ZUZpbHRlckNvcHkuaWQsXG4gICAgICBhdmFpbGFibGVfb3B0aW9uczogZmlsdGVySXRlbS5vcHRpb25zLFxuICAgICAgc2VsZWN0ZWRfb3B0aW9uczogW10sXG4gICAgfSk7XG5cbiAgICBsZXQgYWN0aXZlRmlsdGVyRHVwbGljYXRlID0gT2JqZWN0LmFzc2lnbih7fSwgYWN0aXZlRmlsdGVyQ29weSk7XG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weShhY3RpdmVGaWx0ZXJEdXBsaWNhdGUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUFwcGx5RmlsdGVyID0gKCkgPT4ge1xuICAgIGFwcGx5RmlsdGVyKCk7XG4gICAgc2V0U2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAoeyBmaWx0ZXJJdGVtSWQ6IG51bGwsIHNob3c6IGZhbHNlIH0pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgYXBwbHlGaWx0ZXIoKTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9eydmaWx0ZXInfT5cbiAgICAgIDx1bFxuICAgICAgICBjbGFzc05hbWU9e2BmaWx0ZXJfaXRlbXMgJHtcbiAgICAgICAgICBhY3RpdmVGaWx0ZXJDb3B5LmZpbHRlcl9pdGVtcy5sZW5ndGggPT09IGF2YWlsYWJsZUZpbHRlckl0ZW1zLmxlbmd0aFxuICAgICAgICAgICAgPyAnZmlsdGVyX2l0ZW1zLS1kaXNhYmxlZCdcbiAgICAgICAgICAgIDogJydcbiAgICAgICAgfWB9XG4gICAgICA+XG4gICAgICAgIHthY3RpdmVGaWx0ZXJDb3B5ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBhY3RpdmVGaWx0ZXJDb3B5LmZpbHRlcl9pdGVtcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgYWN0aXZlRmlsdGVyQ29weS5maWx0ZXJfaXRlbXMubGVuZ3RoICE9PSAwICYmXG4gICAgICAgICAgYWN0aXZlRmlsdGVyQ29weS5maWx0ZXJfaXRlbXMubWFwKChmaWx0ZXJfaXRlbTogSUZpbHRlckl0ZW0pID0+IChcbiAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9eydmaWx0ZXJfaXRlbSd9IGtleT17ZmlsdGVyX2l0ZW0uaWR9PlxuICAgICAgICAgICAgICA8RmlsdGVySXRlbVxuICAgICAgICAgICAgICAgIGFjdGl2ZUZpbHRlckNvcHk9e2FjdGl2ZUZpbHRlckNvcHl9XG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlRmlsdGVyQ29weT17c2V0QWN0aXZlRmlsdGVyQ29weX1cbiAgICAgICAgICAgICAgICBmaWx0ZXJfaXRlbT17ZmlsdGVyX2l0ZW19XG4gICAgICAgICAgICAgICAgcGFyc2VTZWxlY3RlZEl0ZW1zPXtwYXJzZVNlbGVjdGVkSXRlbXN9XG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlRmlsdGVySXRlbXM9e2F2YWlsYWJsZUZpbHRlckl0ZW1zfVxuICAgICAgICAgICAgICAgIHNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwPXtzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cH1cbiAgICAgICAgICAgICAgICBzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cD17c2V0U2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICkpfVxuICAgICAgICA8bGkgY2xhc3NOYW1lPXsnZml4ZWQtYWN0aW9uJ30+XG4gICAgICAgICAgPERyb3Bkb3duIGNsYXNzTmFtZT17J2F2YWlsYWJsZS1maWx0ZXItaXRlbXMnfT5cbiAgICAgICAgICAgIDxEcm9wZG93bi5Ub2dnbGUgdmFyaWFudD1cInN1Y2Nlc3NcIiBpZD1cImRyb3Bkb3duLWJhc2ljXCI+XG4gICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIDxQbHVzSWNvbiBjbGFzc05hbWU9XCJwbHVzLWljb25cIiBoZWlnaHQ9XCIxNXB4XCIgd2lkdGg9XCIxNXB4XCIgLz5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmFkZF9maWx0ZXJfaXRlbScpfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L0Ryb3Bkb3duLlRvZ2dsZT5cblxuICAgICAgICAgICAgPERyb3Bkb3duLk1lbnU+XG4gICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICB7YXZhaWxhYmxlRmlsdGVySXRlbXMubGVuZ3RoICE9PSAwICYmXG4gICAgICAgICAgICAgICAgICBhdmFpbGFibGVGaWx0ZXJJdGVtcy5tYXAoKGZpbHRlcl9pdGVtOiBJRmlsdGVySXRlbSkgPT5cbiAgICAgICAgICAgICAgICAgICAgYnVpbGRVbnNlbGVjdGVkSXRlbXMoZmlsdGVyX2l0ZW0pLFxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvRHJvcGRvd24uTWVudT5cbiAgICAgICAgICA8L0Ryb3Bkb3duPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3NOYW1lPXsnZml4ZWQtYWN0aW9uJ30+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydhcHBseS1idXR0b24tY29udGFpbmVyJ30+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBjbGFzc05hbWU9eydhcHBseS1idXR0b24nfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgaGFuZGxlQXBwbHlGaWx0ZXIoKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5hcHBseScpfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbHRlcjtcbiJdfQ==