@dcl/asset-packs 2.12.0 → 2.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/bin/index.js +478 -595
  2. package/dist/admin-toolkit-ui/Active.d.ts +1 -2
  3. package/dist/admin-toolkit-ui/Active.js +7 -7
  4. package/dist/admin-toolkit-ui/Button.js +3 -4
  5. package/dist/admin-toolkit-ui/Card.d.ts +1 -2
  6. package/dist/admin-toolkit-ui/Card.js +8 -8
  7. package/dist/admin-toolkit-ui/Error.d.ts +1 -2
  8. package/dist/admin-toolkit-ui/Error.js +7 -7
  9. package/dist/admin-toolkit-ui/Header.d.ts +1 -2
  10. package/dist/admin-toolkit-ui/Header.js +6 -6
  11. package/dist/admin-toolkit-ui/Loading.d.ts +1 -2
  12. package/dist/admin-toolkit-ui/Loading.js +6 -6
  13. package/dist/admin-toolkit-ui/ModerationControl/AddUserInput.d.ts +1 -2
  14. package/dist/admin-toolkit-ui/ModerationControl/AddUserInput.js +8 -8
  15. package/dist/admin-toolkit-ui/ModerationControl/BanUserDescription.d.ts +1 -5
  16. package/dist/admin-toolkit-ui/ModerationControl/BanUserDescription.js +4 -4
  17. package/dist/admin-toolkit-ui/ModerationControl/RemoveAdminConfirmation.d.ts +1 -2
  18. package/dist/admin-toolkit-ui/ModerationControl/RemoveAdminConfirmation.js +20 -20
  19. package/dist/admin-toolkit-ui/ModerationControl/UsersList.d.ts +1 -2
  20. package/dist/admin-toolkit-ui/ModerationControl/UsersList.js +15 -15
  21. package/dist/admin-toolkit-ui/ModerationControl/index.js +8 -10
  22. package/dist/admin-toolkit-ui/ModerationControl/styles/AddUserInputStyles.d.ts +2 -2
  23. package/dist/admin-toolkit-ui/ModerationControl/styles/AddUserInputStyles.js +20 -20
  24. package/dist/admin-toolkit-ui/ModerationControl/styles/ModerationControlStyles.d.ts +1 -1
  25. package/dist/admin-toolkit-ui/ModerationControl/styles/ModerationControlStyles.js +9 -9
  26. package/dist/admin-toolkit-ui/ModerationControl/styles/UsersListStyles.d.ts +1 -1
  27. package/dist/admin-toolkit-ui/ModerationControl/styles/UsersListStyles.js +45 -45
  28. package/dist/admin-toolkit-ui/RewardsControl.js +15 -17
  29. package/dist/admin-toolkit-ui/SmartItemsControl.js +19 -24
  30. package/dist/admin-toolkit-ui/TextAnnouncements.js +16 -18
  31. package/dist/admin-toolkit-ui/TextAnnouncementsControl.js +20 -22
  32. package/dist/admin-toolkit-ui/VideoControl/DclCast/DclCastInfo.d.ts +1 -2
  33. package/dist/admin-toolkit-ui/VideoControl/DclCast/DclCastInfo.js +14 -14
  34. package/dist/admin-toolkit-ui/VideoControl/DclCast/index.js +10 -12
  35. package/dist/admin-toolkit-ui/VideoControl/DclCast/styles.d.ts +1 -1
  36. package/dist/admin-toolkit-ui/VideoControl/DclCast/styles.js +38 -38
  37. package/dist/admin-toolkit-ui/VideoControl/LiveStream/DeleteStreamKey.d.ts +1 -2
  38. package/dist/admin-toolkit-ui/VideoControl/LiveStream/DeleteStreamKey.js +16 -16
  39. package/dist/admin-toolkit-ui/VideoControl/LiveStream/GenerateStreamKey.d.ts +1 -2
  40. package/dist/admin-toolkit-ui/VideoControl/LiveStream/GenerateStreamKey.js +10 -10
  41. package/dist/admin-toolkit-ui/VideoControl/LiveStream/ShowStreamKey.d.ts +1 -2
  42. package/dist/admin-toolkit-ui/VideoControl/LiveStream/ShowStreamKey.js +48 -48
  43. package/dist/admin-toolkit-ui/VideoControl/LiveStream/index.d.ts +1 -2
  44. package/dist/admin-toolkit-ui/VideoControl/LiveStream/index.js +9 -9
  45. package/dist/admin-toolkit-ui/VideoControl/VideoUrl.d.ts +1 -2
  46. package/dist/admin-toolkit-ui/VideoControl/VideoUrl.js +38 -38
  47. package/dist/admin-toolkit-ui/VideoControl/VolumeControl.js +28 -30
  48. package/dist/admin-toolkit-ui/VideoControl/index.js +29 -31
  49. package/dist/admin-toolkit-ui/index.d.ts +0 -1
  50. package/dist/admin-toolkit-ui/index.js +29 -31
  51. package/dist/bin/index.js +478 -595
  52. package/dist/ui.d.ts +0 -1
  53. package/dist/ui.js +24 -34
  54. package/package.json +1 -1
@@ -10,7 +10,7 @@ import { LIVEKIT_STREAM_SRC } from '../../definitions';
10
10
  import { CONTENT_URL } from '../constants';
11
11
  const VIDEO_PLAYER_HELP_URL = 'https://docs.decentraland.org/creator/scene-editor/interactivity/video-screen';
12
12
  export const HELP_ICON = `${CONTENT_URL}/admin_toolkit/assets/icons/help.png`;
13
- export function VideoControlURL({ engine, scaleFactor, video, entity, }) {
13
+ export function VideoControlURL({ engine, video, entity, }) {
14
14
  const [videoURL, setVideoURL] = ReactEcs.useState('');
15
15
  ReactEcs.useEffect(() => {
16
16
  const url = video?.src === LIVEKIT_STREAM_SRC ? '' : video?.src;
@@ -20,73 +20,73 @@ export function VideoControlURL({ engine, scaleFactor, video, entity, }) {
20
20
  const isActive = video && isVideoUrl(video.src);
21
21
  return (ReactEcs.createElement(UiEntity, { uiTransform: { flexDirection: 'column', width: '100%' } },
22
22
  ReactEcs.createElement(UiEntity, { uiTransform: { width: '100%', justifyContent: 'space-between' } },
23
- ReactEcs.createElement(Header, { iconSrc: ICONS.VIDEO_SOURCE, title: "Video URL", scaleFactor: scaleFactor }),
23
+ ReactEcs.createElement(Header, { iconSrc: ICONS.VIDEO_SOURCE, title: "Video URL" }),
24
24
  ReactEcs.createElement(UiEntity, { onMouseDown: () => openExternalUrl({ url: VIDEO_PLAYER_HELP_URL }), uiTransform: {
25
- width: 25 * scaleFactor,
26
- height: 25 * scaleFactor,
25
+ width: 25,
26
+ height: 25,
27
27
  alignItems: 'center',
28
28
  }, uiBackground: {
29
29
  textureMode: 'stretch',
30
30
  color: Color4.White(),
31
31
  texture: { src: HELP_ICON },
32
32
  } })),
33
- ReactEcs.createElement(Label, { value: "Play videos from Vimeo by pasting a video URL below.", color: Color4.fromHexString('#A09BA8'), fontSize: 16 * scaleFactor }),
34
- ReactEcs.createElement(Label, { value: "<b>Video URL<b>", color: Color4.White(), fontSize: 16 * scaleFactor, uiTransform: {
35
- margin: { top: 16 * scaleFactor, bottom: 8 * scaleFactor },
33
+ ReactEcs.createElement(Label, { value: "Play videos from Vimeo by pasting a video URL below.", color: Color4.fromHexString('#A09BA8'), fontSize: 16 }),
34
+ ReactEcs.createElement(Label, { value: "<b>Video URL<b>", color: Color4.White(), fontSize: 16, uiTransform: {
35
+ margin: { top: 16, bottom: 8 },
36
36
  } }),
37
- ReactEcs.createElement(Input, { onChange: setVideoURL, value: videoURL, fontSize: 16 * scaleFactor, textAlign: "middle-left", placeholder: "Paste your video URL", placeholderColor: Color4.create(160 / 255, 155 / 255, 168 / 255, 1), color: isActive ? Color4.Black() : Color4.fromHexString('#A09BA8'), uiBackground: { color: Color4.fromHexString('#FCFCFC') }, uiTransform: {
37
+ ReactEcs.createElement(Input, { onChange: setVideoURL, value: videoURL, fontSize: 16, textAlign: "middle-left", placeholder: "Paste your video URL", placeholderColor: Color4.create(160 / 255, 155 / 255, 168 / 255, 1), color: isActive ? Color4.Black() : Color4.fromHexString('#A09BA8'), uiBackground: { color: Color4.fromHexString('#FCFCFC') }, uiTransform: {
38
38
  borderRadius: 12,
39
39
  borderColor: Color4.White(),
40
40
  width: '100%',
41
- height: 80 * scaleFactor,
41
+ height: 80,
42
42
  } }),
43
43
  ReactEcs.createElement(UiEntity, { uiTransform: {
44
44
  width: '100%',
45
- height: 40 * scaleFactor,
45
+ height: 40,
46
46
  flexDirection: 'row',
47
47
  justifyContent: 'flex-end',
48
- margin: { top: 10 * scaleFactor },
48
+ margin: { top: 10 },
49
49
  } },
50
- video?.src && isVideoUrl(video.src) && (ReactEcs.createElement(Button, { id: "video_control_share_screen_clear", value: "<b>Deactivate</b>", variant: "text", fontSize: 16 * scaleFactor, color: Color4.White(), uiTransform: {
51
- margin: { right: 8 * scaleFactor },
52
- padding: { left: 8 * scaleFactor, right: 8 * scaleFactor },
50
+ video?.src && isVideoUrl(video.src) && (ReactEcs.createElement(Button, { id: "video_control_share_screen_clear", value: "<b>Deactivate</b>", variant: "text", fontSize: 16, color: Color4.White(), uiTransform: {
51
+ margin: { right: 8 },
52
+ padding: { left: 8, right: 8 },
53
53
  }, onMouseDown: () => {
54
54
  controls.setSource('');
55
55
  } })),
56
56
  (!videoURL || videoURL !== video?.src) && (ReactEcs.createElement(Button, { disabled: !isVideoUrl(videoURL), id: "video_control_share_screen_share", value: video?.src && videoURL !== video.src && video.src !== LIVEKIT_STREAM_SRC
57
57
  ? '<b>Update</b>'
58
58
  : '<b>Activate</b>', labelTransform: {
59
- margin: { left: 6 * scaleFactor, right: 6 * scaleFactor },
60
- }, fontSize: 16 * scaleFactor, uiBackground: {
59
+ margin: { left: 6, right: 6 },
60
+ }, fontSize: 16, uiBackground: {
61
61
  color: isVideoUrl(videoURL) ? COLORS.SUCCESS : Color4.fromHexString('#274431'),
62
62
  }, color: Color4.Black(), onMouseDown: () => {
63
63
  controls.setSource(videoURL);
64
64
  } }))),
65
- ReactEcs.createElement(Label, { value: "<b>Video Playback</b>", fontSize: 16 * scaleFactor, color: Color4.White(), uiTransform: { margin: { bottom: 10 * scaleFactor } } }),
65
+ ReactEcs.createElement(Label, { value: "<b>Video Playback</b>", fontSize: 16, color: Color4.White(), uiTransform: { margin: { bottom: 10 } } }),
66
66
  ReactEcs.createElement(UiEntity, { uiTransform: {
67
67
  flexDirection: 'row',
68
68
  width: '100%',
69
- margin: { bottom: 10 * scaleFactor },
69
+ margin: { bottom: 10 },
70
70
  } },
71
- ReactEcs.createElement(Button, { disabled: !isActive, id: "video_control_play", value: "<b>Play</b>", fontSize: 18 * scaleFactor, labelTransform: { margin: { right: 10 * scaleFactor } }, uiTransform: {
72
- margin: { top: 0, right: 16 * scaleFactor, bottom: 0, left: 0 },
73
- height: 42 * scaleFactor,
74
- minWidth: 69 * scaleFactor,
71
+ ReactEcs.createElement(Button, { disabled: !isActive, id: "video_control_play", value: "<b>Play</b>", fontSize: 18, labelTransform: { margin: { right: 10 } }, uiTransform: {
72
+ margin: { top: 0, right: 16, bottom: 0, left: 0 },
73
+ height: 42,
74
+ minWidth: 69,
75
75
  alignItems: 'center',
76
76
  justifyContent: 'center',
77
77
  padding: 0,
78
78
  }, icon: ICONS.PLAY_BUTTON, iconTransform: {
79
- width: 35 * scaleFactor,
80
- height: 35 * scaleFactor,
79
+ width: 35,
80
+ height: 35,
81
81
  }, onMouseDown: () => {
82
82
  controls.play();
83
83
  } }),
84
- ReactEcs.createElement(Button, { disabled: !isActive, id: "video_control_pause", value: "<b>Pause</b>", fontSize: 18 * scaleFactor, labelTransform: {
85
- margin: { left: 6 * scaleFactor, right: 6 * scaleFactor },
84
+ ReactEcs.createElement(Button, { disabled: !isActive, id: "video_control_pause", value: "<b>Pause</b>", fontSize: 18, labelTransform: {
85
+ margin: { left: 6, right: 6 },
86
86
  }, uiTransform: {
87
- margin: { top: 0, right: 16 * scaleFactor, bottom: 0, left: 0 },
88
- height: 42 * scaleFactor,
89
- minWidth: 78 * scaleFactor,
87
+ margin: { top: 0, right: 16, bottom: 0, left: 0 },
88
+ height: 42,
89
+ minWidth: 78,
90
90
  alignItems: 'center',
91
91
  justifyContent: 'center',
92
92
  padding: 0,
@@ -94,11 +94,11 @@ export function VideoControlURL({ engine, scaleFactor, video, entity, }) {
94
94
  controls.pause();
95
95
  } }),
96
96
  ReactEcs.createElement(Button, { disabled: !isActive, id: "video_control_restart", value: "<b>Restart</b>", labelTransform: {
97
- margin: { left: 6 * scaleFactor, right: 6 * scaleFactor },
98
- }, fontSize: 18 * scaleFactor, uiTransform: {
99
- margin: { top: 0, right: 16 * scaleFactor, bottom: 0, left: 0 },
100
- height: 42 * scaleFactor,
101
- minWidth: 88 * scaleFactor,
97
+ margin: { left: 6, right: 6 },
98
+ }, fontSize: 18, uiTransform: {
99
+ margin: { top: 0, right: 16, bottom: 0, left: 0 },
100
+ height: 42,
101
+ minWidth: 88,
102
102
  alignItems: 'center',
103
103
  justifyContent: 'center',
104
104
  padding: 0,
@@ -106,16 +106,16 @@ export function VideoControlURL({ engine, scaleFactor, video, entity, }) {
106
106
  controls.restart();
107
107
  } }),
108
108
  ReactEcs.createElement(Button, { disabled: !isActive, id: "video_control_loop", onlyIcon: true, variant: video?.loop ? 'primary' : 'secondary', uiTransform: {
109
- height: 42 * scaleFactor,
110
- width: 49 * scaleFactor,
109
+ height: 42,
110
+ width: 49,
111
111
  alignItems: 'center',
112
112
  justifyContent: 'center',
113
113
  padding: 0,
114
- }, icon: ICONS.LOOP, iconTransform: { width: 25 * scaleFactor, height: 25 * scaleFactor }, iconBackground: {
114
+ }, icon: ICONS.LOOP, iconTransform: { width: 25, height: 25 }, iconBackground: {
115
115
  color: !video?.loop ? Color4.White() : Color4.Black(),
116
116
  }, color: Color4.White(), onMouseDown: () => {
117
117
  controls.setLoop(!video?.loop);
118
118
  } })),
119
119
  ReactEcs.createElement(VideoControlVolume, { engine: engine, entity: entity, video: video, label: "<b>Video Volume</b>" })));
120
120
  }
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlkZW9VcmwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9WaWRlb0NvbnRyb2wvVmlkZW9VcmwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNDLE1BQU0scUJBQXFCLEdBQ3pCLCtFQUErRSxDQUFDO0FBQ2xGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLFdBQVcsc0NBQXNDLENBQUM7QUFFOUUsTUFBTSxVQUFVLGVBQWUsQ0FBQyxFQUM5QixNQUFNLEVBQ04sV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEdBTVA7SUFDQyxNQUFNLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEQsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDdEIsTUFBTSxH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YyxFQUFFLFFBQVE7b0JBQ3hCLE9BQU8sRUFBRSxDQUFDO2lCQUNYLEVBQ0QsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQ2hCLGFBQWEsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsV0FBVyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsV0FBVyxFQUFFLEVBQ3BFLGNBQWMsRUFBRTtvQkFDZCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7aUJBQ3RELEVBQ0QsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFDckIsV0FBVyxFQUFFLEdBQUcsRUFBRTtvQkFDaEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxHQUNELENBQ087UUFDWCx1QkFBQyxrQkFBa0IsSUFDakIsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLEVBQUUsTUFBTSxFQUNkLEtBQUssRUFBRSxLQUFLLEVBQ1osS0FBSyxFQUFDLHFCQUFxQixHQUMzQixDQUNPLENBQ1osQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvcjQgfSBmcm9tICdAZGNsL3Nkay9tYXRoJztcbmltcG9ydCB7IERlZXBSZWFkb25seU9iamVjdCwgSUVuZ2luZSwgUEJWaWRlb1BsYXllciwgRW50aXR5IH0gZnJvbSAnQGRjbC9lY3MnO1xuaW1wb3J0IFJlYWN0RWNzLCB7IFVpRW50aXR5LCBJbnB1dCwgTGFiZWwgfSBmcm9tICdAZGNsL3JlYWN0LWVjcyc7XG5pbXBvcnQgeyBDT0xPUlMsIElDT05TIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBjcmVhdGVWaWRlb1BsYXllckNvbnRyb2xzLCBpc1ZpZGVvVXJsIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBWaWRlb0NvbnRyb2xWb2x1bWUgfSBmcm9tICcuL1ZvbHVtZUNvbnRyb2wnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IEhlYWRlciB9IGZyb20gJy4uL0hlYWRlcic7XG5pbXBvcnQgeyBvcGVuRXh0ZXJuYWxVcmwgfSBmcm9tICd+c3lzdGVtL1Jlc3RyaWN0ZWRBY3Rpb25zJztcbmltcG9ydCB7IExJVkVLSVRfU1RSRUFNX1NSQyB9IGZyb20gJy4uLy4uL2RlZmluaXRpb25zJztcbmltcG9ydCB7IENPTlRFTlRfVVJMIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuY29uc3QgVklERU9fUExBWUVSX0hFTFBfVVJMID1cbiAgJ2h0dHBzOi8vZG9jcy5kZWNlbnRyYWxhbmQub3JnL2NyZWF0b3Ivc2NlbmUtZWRpdG9yL2ludGVyYWN0aXZpdHkvdmlkZW8tc2NyZWVuJztcbmV4cG9ydCBjb25zdCBIRUxQX0lDT04gPSBgJHtDT05URU5UX1VSTH0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvaGVscC5wbmdgO1xuXG5leHBvcnQgZnVuY3Rpb24gVmlkZW9Db250cm9sVVJMKHtcbiAgZW5naW5lLFxuICBzY2FsZUZhY3RvcixcbiAgdmlkZW8sXG4gIGVudGl0eSxcbn06IHtcbiAgZW5naW5lOiBJRW5naW5lO1xuICBzY2FsZUZhY3RvcjogbnVtYmVyO1xuICBlbnRpdHk6IEVudGl0eTtcbiAgdmlkZW86IERlZXBSZWFkb25seU9iamVjdDxQQlZpZGVvUGxheWVyPiB8IHVuZGVmaW5lZDtcbn0pIHtcbiAgY29uc3QgW3ZpZGVvVVJMLCBzZXRWaWRlb1VSTF0gPSBSZWFjdEVjcy51c2VTdGF0ZSgnJyk7XG4gIFJlYWN0RWNzLnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdXJsID0gdmlkZW8/LnNyYyA9PT0gTElWRUtJVF9TVFJFQU1fU1JDID8gJycgOiB2aWRlbz8uc3JjO1xuICAgIHNldFZpZGVvVVJMKHVybCA/PyAnJyk7XG4gIH0sIFtlbnRpdHldKTtcbiAgY29uc3QgY29udHJvbHMgPSBjcmVhdGVWaWRlb1BsYXllckNvbnRyb2xzKGVudGl0eSwgZW5naW5lKTtcbiAgY29uc3QgaXNBY3RpdmUgPSB2aWRlbyAmJiBpc1ZpZGVvVXJsKHZpZGVvLnNyYyk7XG4gIHJldHVybiAoXG4gICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCB3aWR0aDogJzEwMCUnIH19PlxuICAgICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IHdpZHRoOiAnMTAwJScsIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicgfX0+XG4gICAgICAgIDxIZWFkZXJcbiAgICAgICAgICBpY29uU3JjPXtJQ09OUy5WSURFT19TT1VSQ0V9XG4gICAgICAgICAgdGl0bGU9XCJWaWRlbyBVUkxcIlxuICAgICAgICAgIHNjYWxlRmFjdG9yPXtzY2FsZUZhY3Rvcn1cbiAgICAgICAgLz5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IG9wZW5FeHRlcm5hbFVybCh7IHVybDogVklERU9fUExBWUVSX0hFTFBfVVJMIH0pfVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICB3aWR0aDogMjUgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgIGhlaWdodDogMjUgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgY29sb3I6IENvbG9yNC5XaGl0ZSgpLFxuICAgICAgICAgICAgdGV4dHVyZTogeyBzcmM6IEhFTFBfSUNPTiB9LFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgICAgPExhYmVsXG4gICAgICAgIHZhbHVlPVwiUGxheSB2aWRlb3MgZnJvbSBWaW1lbyBieSBwYXN0aW5nIGEgdmlkZW8gVVJMIGJlbG93LlwiXG4gICAgICAgIGNvbG9yPXtDb2xvcjQuZnJvbUhleFN0cmluZygnI0EwOUJBOCcpfVxuICAgICAgICBmb250U2l6ZT17MTYgKiBzY2FsZUZhY3Rvcn1cbiAgICAgIC8+XG4gICAgICA8TGFiZWxcbiAgICAgICAgdmFsdWU9XCI8Yj5WaWRlbyBVUkw8Yj5cIlxuICAgICAgICBjb2xvcj17Q29sb3I0LldoaXRlKCl9XG4gICAgICAgIGZvbnRTaXplPXsxNiAqIHNjYWxlRmFjdG9yfVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDE2ICogc2NhbGVGYWN0b3IsIGJvdHRvbTogOCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgIH19XG4gICAgICAvPlxuXG4gICAgICA8SW5wdXRcbiAgICAgICAgb25DaGFuZ2U9e3NldFZpZGVvVVJMfVxuICAgICAgICB2YWx1ZT17dmlkZW9VUkx9XG4gICAgICAgIGZvbnRTaXplPXsxNiAqIHNjYWxlRmFjdG9yfVxuICAgICAgICB0ZXh0QWxpZ249XCJtaWRkbGUtbGVmdFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiUGFzdGUgeW91ciB2aWRlbyBVUkxcIlxuICAgICAgICBwbGFjZWhvbGRlckNvbG9yPXtDb2xvcjQuY3JlYXRlKDE2MCAvIDI1NSwgMTU1IC8gMjU1LCAxNjggLyAyNTUsIDEpfVxuICAgICAgICBjb2xvcj17aXNBY3RpdmUgPyBDb2xvcjQuQmxhY2soKSA6IENvbG9yNC5mcm9tSGV4U3RyaW5nKCcjQTA5QkE4Jyl9XG4gICAgICAgIHVpQmFja2dyb3VuZD17eyBjb2xvcjogQ29sb3I0LmZyb21IZXhTdHJpbmcoJyNGQ0ZDRkMnKSB9fVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIGJvcmRlclJhZGl1czogMTIsXG4gICAgICAgICAgYm9yZGVyQ29sb3I6IENvbG9yNC5XaGl0ZSgpLFxuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgaGVpZ2h0OiA4MCAqIHNjYWxlRmFjdG9yLFxuICAgICAgICB9fVxuICAgICAgLz5cblxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICBoZWlnaHQ6IDQwICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdmbGV4LWVuZCcsXG4gICAgICAgICAgbWFyZ2luOiB7IHRvcDogMTAgKiBzY2FsZUZhY3RvciB9LFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7dmlkZW8/LnNyYyAmJiBpc1ZpZGVvVXJsKHZpZGVvLnNyYykgJiYgKFxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9zaGFyZV9zY3JlZW5fY2xlYXJcIlxuICAgICAgICAgICAgdmFsdWU9XCI8Yj5EZWFjdGl2YXRlPC9iPlwiXG4gICAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgICBmb250U2l6ZT17MTYgKiBzY2FsZUZhY3Rvcn1cbiAgICAgICAgICAgIGNvbG9yPXtDb2xvcjQuV2hpdGUoKX1cbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgICAgIHBhZGRpbmc6IHsgbGVmdDogOCAqIHNjYWxlRmFjdG9yLCByaWdodDogOCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgY29udHJvbHMuc2V0U291cmNlKCcnKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAgeyghdmlkZW9VUkwgfHwgdmlkZW9VUkwgIT09IHZpZGVvPy5zcmMpICYmIChcbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBkaXNhYmxlZD17IWlzVmlkZW9VcmwodmlkZW9VUkwpfVxuICAgICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3NoYXJlX3NjcmVlbl9zaGFyZVwiXG4gICAgICAgICAgICB2YWx1ZT17XG4gICAgICAgICAgICAgIHZpZGVvPy5zcmMgJiYgdmlkZW9VUkwgIT09IHZpZGVvLnNyYyAmJiB2aWRlby5zcmMgIT09IExJVkVLSVRfU1RSRUFNX1NSQ1xuICAgICAgICAgICAgICAgID8gJzxiPlVwZGF0ZTwvYj4nXG4gICAgICAgICAgICAgICAgOiAnPGI+QWN0aXZhdGU8L2I+J1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGFiZWxUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgbWFyZ2luOiB7IGxlZnQ6IDYgKiBzY2FsZUZhY3RvciwgcmlnaHQ6IDYgKiBzY2FsZUZhY3RvciB9LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGZvbnRTaXplPXsxNiAqIHNjYWxlRmFjdG9yfVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIGNvbG9yOiBpc1ZpZGVvVXJsKHZpZGVvVVJMKSA/IENPTE9SUy5TVUNDRVNTIDogQ29sb3I0LmZyb21IZXhTdHJpbmcoJyMyNzQ0MzEnKSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjb2xvcj17Q29sb3I0LkJsYWNrKCl9XG4gICAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgICBjb250cm9scy5zZXRTb3VyY2UodmlkZW9VUkwpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9VaUVudGl0eT5cblxuICAgICAgPExhYmVsXG4gICAgICAgIHZhbHVlPVwiPGI+VmlkZW8gUGxheWJhY2s8L2I+XCJcbiAgICAgICAgZm9udFNpemU9ezE2ICogc2NhbGVGYWN0b3J9XG4gICAgICAgIGNvbG9yPXtDb2xvcjQuV2hpdGUoKX1cbiAgICAgICAgdWlUcmFuc2Zvcm09e3sgbWFyZ2luOiB7IGJvdHRvbTogMTAgKiBzY2FsZUZhY3RvciB9IH19XG4gICAgICAvPlxuXG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIG1hcmdpbjogeyBib3R0b206IDEwICogc2NhbGVGYWN0b3IgfSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGRpc2FibGVkPXshaXNBY3RpdmV9XG4gICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3BsYXlcIlxuICAgICAgICAgIHZhbHVlPVwiPGI+UGxheTwvYj5cIlxuICAgICAgICAgIGZvbnRTaXplPXsxOCAqIHNjYWxlRmFjdG9yfVxuICAgICAgICAgIGxhYmVsVHJhbnNmb3JtPXt7IG1hcmdpbjogeyByaWdodDogMTAgKiBzY2FsZUZhY3RvciB9IH19XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDAsIHJpZ2h0OiAxNiAqIHNjYWxlRmFjdG9yLCBib3R0b206IDAsIGxlZnQ6IDAgfSxcbiAgICAgICAgICAgIGhlaWdodDogNDIgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgIG1pbldpZHRoOiA2OSAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgICAgaWNvbj17SUNPTlMuUExBWV9CVVRUT059XG4gICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IDM1ICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICBoZWlnaHQ6IDM1ICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgY29udHJvbHMucGxheSgpO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBkaXNhYmxlZD17IWlzQWN0aXZlfVxuICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9wYXVzZVwiXG4gICAgICAgICAgdmFsdWU9XCI8Yj5QYXVzZTwvYj5cIlxuICAgICAgICAgIGZvbnRTaXplPXsxOCAqIHNjYWxlRmFjdG9yfVxuICAgICAgICAgIGxhYmVsVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBtYXJnaW46IHsgbGVmdDogNiAqIHNjYWxlRmFjdG9yLCByaWdodDogNiAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgbWFyZ2luOiB7IHRvcDogMCwgcmlnaHQ6IDE2ICogc2NhbGVGYWN0b3IsIGJvdHRvbTogMCwgbGVmdDogMCB9LFxuICAgICAgICAgICAgaGVpZ2h0OiA0MiAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgbWluV2lkdGg6IDc4ICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgY29udHJvbHMucGF1c2UoKTtcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgZGlzYWJsZWQ9eyFpc0FjdGl2ZX1cbiAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfcmVzdGFydFwiXG4gICAgICAgICAgdmFsdWU9XCI8Yj5SZXN0YXJ0PC9iPlwiXG4gICAgICAgICAgbGFiZWxUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyBsZWZ0OiA2ICogc2NhbGVGYWN0b3IsIHJpZ2h0OiA2ICogc2NhbGVGYWN0b3IgfSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGZvbnRTaXplPXsxOCAqIHNjYWxlRmFjdG9yfVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBtYXJnaW46IHsgdG9wOiAwLCByaWdodDogMTYgKiBzY2FsZUZhY3RvciwgYm90dG9tOiAwLCBsZWZ0OiAwIH0sXG4gICAgICAgICAgICBoZWlnaHQ6IDQyICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICBtaW5XaWR0aDogODggKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICBjb250cm9scy5yZXN0YXJ0KCk7XG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGRpc2FibGVkPXshaXNBY3RpdmV9XG4gICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX2xvb3BcIlxuICAgICAgICAgIG9ubHlJY29uXG4gICAgICAgICAgdmFyaWFudD17dmlkZW8/Lmxvb3AgPyAncHJpbWFyeScgOiAnc2Vjb25kYXJ5J31cbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgaGVpZ2h0OiA0MiAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgd2lkdGg6IDQ5ICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBpY29uPXtJQ09OUy5MT09QfVxuICAgICAgICAgIGljb25UcmFuc2Zvcm09e3sgd2lkdGg6IDI1ICogc2NhbGVGYWN0b3IsIGhlaWdodDogMjUgKiBzY2FsZUZhY3RvciB9fVxuICAgICAgICAgIGljb25CYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICBjb2xvcjogIXZpZGVvPy5sb29wID8gQ29sb3I0LldoaXRlKCkgOiBDb2xvcjQuQmxhY2soKSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGNvbG9yPXtDb2xvcjQuV2hpdGUoKX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgY29udHJvbHMuc2V0TG9vcCghdmlkZW8/Lmxvb3ApO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgICAgPFZpZGVvQ29udHJvbFZvbHVtZVxuICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgZW50aXR5PXtlbnRpdHl9XG4gICAgICAgIHZpZGVvPXt2aWRlb31cbiAgICAgICAgbGFiZWw9XCI8Yj5WaWRlbyBWb2x1bWU8L2I+XCJcbiAgICAgIC8+XG4gICAgPC9VaUVudGl0eT5cbiAgKTtcbn1cbiJdfQ==
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlkZW9VcmwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9WaWRlb0NvbnRyb2wvVmlkZW9VcmwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNDLE1BQU0scUJBQXFCLEdBQ3pCLCtFQUErRSxDQUFDO0FBQ2xGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLFdBQVcsc0NBQXNDLENBQUM7QUFFOUUsTUFBTSxVQUFVLGVBQWUsQ0FBQyxFQUM5QixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FLUDtJQUNDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0RCxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUN0QixNQUFNLEdBQUcsR0FBRyxL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S0FBSyxFQUFFLEtBQUssRUFDWixLQUFLLEVBQUMscUJBQXFCLEdBQzNCLENBQ08sQ0FDWixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvc2RrL21hdGgnO1xuaW1wb3J0IHsgRGVlcFJlYWRvbmx5T2JqZWN0LCBJRW5naW5lLCBQQlZpZGVvUGxheWVyLCBFbnRpdHkgfSBmcm9tICdAZGNsL2Vjcyc7XG5pbXBvcnQgUmVhY3RFY3MsIHsgVWlFbnRpdHksIElucHV0LCBMYWJlbCB9IGZyb20gJ0BkY2wvcmVhY3QtZWNzJztcbmltcG9ydCB7IENPTE9SUywgSUNPTlMgfSBmcm9tICcuJztcbmltcG9ydCB7IGNyZWF0ZVZpZGVvUGxheWVyQ29udHJvbHMsIGlzVmlkZW9VcmwgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFZpZGVvQ29udHJvbFZvbHVtZSB9IGZyb20gJy4vVm9sdW1lQ29udHJvbCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuaW1wb3J0IHsgSGVhZGVyIH0gZnJvbSAnLi4vSGVhZGVyJztcbmltcG9ydCB7IG9wZW5FeHRlcm5hbFVybCB9IGZyb20gJ35zeXN0ZW0vUmVzdHJpY3RlZEFjdGlvbnMnO1xuaW1wb3J0IHsgTElWRUtJVF9TVFJFQU1fU1JDIH0gZnJvbSAnLi4vLi4vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IHsgQ09OVEVOVF9VUkwgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5jb25zdCBWSURFT19QTEFZRVJfSEVMUF9VUkwgPVxuICAnaHR0cHM6Ly9kb2NzLmRlY2VudHJhbGFuZC5vcmcvY3JlYXRvci9zY2VuZS1lZGl0b3IvaW50ZXJhY3Rpdml0eS92aWRlby1zY3JlZW4nO1xuZXhwb3J0IGNvbnN0IEhFTFBfSUNPTiA9IGAke0NPTlRFTlRfVVJMfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9oZWxwLnBuZ2A7XG5cbmV4cG9ydCBmdW5jdGlvbiBWaWRlb0NvbnRyb2xVUkwoe1xuICBlbmdpbmUsXG4gIHZpZGVvLFxuICBlbnRpdHksXG59OiB7XG4gIGVuZ2luZTogSUVuZ2luZTtcbiAgZW50aXR5OiBFbnRpdHk7XG4gIHZpZGVvOiBEZWVwUmVhZG9ubHlPYmplY3Q8UEJWaWRlb1BsYXllcj4gfCB1bmRlZmluZWQ7XG59KSB7XG4gIGNvbnN0IFt2aWRlb1VSTCwgc2V0VmlkZW9VUkxdID0gUmVhY3RFY3MudXNlU3RhdGUoJycpO1xuICBSZWFjdEVjcy51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHVybCA9IHZpZGVvPy5zcmMgPT09IExJVkVLSVRfU1RSRUFNX1NSQyA/ICcnIDogdmlkZW8/LnNyYztcbiAgICBzZXRWaWRlb1VSTCh1cmwgPz8gJycpO1xuICB9LCBbZW50aXR5XSk7XG4gIGNvbnN0IGNvbnRyb2xzID0gY3JlYXRlVmlkZW9QbGF5ZXJDb250cm9scyhlbnRpdHksIGVuZ2luZSk7XG4gIGNvbnN0IGlzQWN0aXZlID0gdmlkZW8gJiYgaXNWaWRlb1VybCh2aWRlby5zcmMpO1xuICByZXR1cm4gKFxuICAgIDxVaUVudGl0eSB1aVRyYW5zZm9ybT17eyBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgd2lkdGg6ICcxMDAlJyB9fT5cbiAgICAgIDxVaUVudGl0eSB1aVRyYW5zZm9ybT17eyB3aWR0aDogJzEwMCUnLCBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nIH19PlxuICAgICAgICA8SGVhZGVyXG4gICAgICAgICAgaWNvblNyYz17SUNPTlMuVklERU9fU09VUkNFfVxuICAgICAgICAgIHRpdGxlPVwiVmlkZW8gVVJMXCJcbiAgICAgICAgLz5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IG9wZW5FeHRlcm5hbFVybCh7IHVybDogVklERU9fUExBWUVSX0hFTFBfVVJMIH0pfVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICB3aWR0aDogMjUsXG4gICAgICAgICAgICBoZWlnaHQ6IDI1LFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICBjb2xvcjogQ29sb3I0LldoaXRlKCksXG4gICAgICAgICAgICB0ZXh0dXJlOiB7IHNyYzogSEVMUF9JQ09OIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvVWlFbnRpdHk+XG4gICAgICA8TGFiZWxcbiAgICAgICAgdmFsdWU9XCJQbGF5IHZpZGVvcyBmcm9tIFZpbWVvIGJ5IHBhc3RpbmcgYSB2aWRlbyBVUkwgYmVsb3cuXCJcbiAgICAgICAgY29sb3I9e0NvbG9yNC5mcm9tSGV4U3RyaW5nKCcjQTA5QkE4Jyl9XG4gICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgIC8+XG4gICAgICA8TGFiZWxcbiAgICAgICAgdmFsdWU9XCI8Yj5WaWRlbyBVUkw8Yj5cIlxuICAgICAgICBjb2xvcj17Q29sb3I0LldoaXRlKCl9XG4gICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBtYXJnaW46IHsgdG9wOiAxNiwgYm90dG9tOiA4IH0sXG4gICAgICAgIH19XG4gICAgICAvPlxuXG4gICAgICA8SW5wdXRcbiAgICAgICAgb25DaGFuZ2U9e3NldFZpZGVvVVJMfVxuICAgICAgICB2YWx1ZT17dmlkZW9VUkx9XG4gICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgdGV4dEFsaWduPVwibWlkZGxlLWxlZnRcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlBhc3RlIHlvdXIgdmlkZW8gVVJMXCJcbiAgICAgICAgcGxhY2Vob2xkZXJDb2xvcj17Q29sb3I0LmNyZWF0ZSgxNjAgLyAyNTUsIDE1NSAvIDI1NSwgMTY4IC8gMjU1LCAxKX1cbiAgICAgICAgY29sb3I9e2lzQWN0aXZlID8gQ29sb3I0LkJsYWNrKCkgOiBDb2xvcjQuZnJvbUhleFN0cmluZygnI0EwOUJBOCcpfVxuICAgICAgICB1aUJhY2tncm91bmQ9e3sgY29sb3I6IENvbG9yNC5mcm9tSGV4U3RyaW5nKCcjRkNGQ0ZDJykgfX1cbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDEyLFxuICAgICAgICAgIGJvcmRlckNvbG9yOiBDb2xvcjQuV2hpdGUoKSxcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIGhlaWdodDogODAsXG4gICAgICAgIH19XG4gICAgICAvPlxuXG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIGhlaWdodDogNDAsXG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdmbGV4LWVuZCcsXG4gICAgICAgICAgbWFyZ2luOiB7IHRvcDogMTAgfSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge3ZpZGVvPy5zcmMgJiYgaXNWaWRlb1VybCh2aWRlby5zcmMpICYmIChcbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfc2hhcmVfc2NyZWVuX2NsZWFyXCJcbiAgICAgICAgICAgIHZhbHVlPVwiPGI+RGVhY3RpdmF0ZTwvYj5cIlxuICAgICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICAgICAgY29sb3I9e0NvbG9yNC5XaGl0ZSgpfVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA4IH0sXG4gICAgICAgICAgICAgIHBhZGRpbmc6IHsgbGVmdDogOCwgcmlnaHQ6IDggfSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgICBjb250cm9scy5zZXRTb3VyY2UoJycpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7KCF2aWRlb1VSTCB8fCB2aWRlb1VSTCAhPT0gdmlkZW8/LnNyYykgJiYgKFxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGRpc2FibGVkPXshaXNWaWRlb1VybCh2aWRlb1VSTCl9XG4gICAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfc2hhcmVfc2NyZWVuX3NoYXJlXCJcbiAgICAgICAgICAgIHZhbHVlPXtcbiAgICAgICAgICAgICAgdmlkZW8/LnNyYyAmJiB2aWRlb1VSTCAhPT0gdmlkZW8uc3JjICYmIHZpZGVvLnNyYyAhPT0gTElWRUtJVF9TVFJFQU1fU1JDXG4gICAgICAgICAgICAgICAgPyAnPGI+VXBkYXRlPC9iPidcbiAgICAgICAgICAgICAgICA6ICc8Yj5BY3RpdmF0ZTwvYj4nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsYWJlbFRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBtYXJnaW46IHsgbGVmdDogNiwgcmlnaHQ6IDYgfSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgY29sb3I6IGlzVmlkZW9VcmwodmlkZW9VUkwpID8gQ09MT1JTLlNVQ0NFU1MgOiBDb2xvcjQuZnJvbUhleFN0cmluZygnIzI3NDQzMScpLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGNvbG9yPXtDb2xvcjQuQmxhY2soKX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnRyb2xzLnNldFNvdXJjZSh2aWRlb1VSTCk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1VpRW50aXR5PlxuXG4gICAgICA8TGFiZWxcbiAgICAgICAgdmFsdWU9XCI8Yj5WaWRlbyBQbGF5YmFjazwvYj5cIlxuICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgIGNvbG9yPXtDb2xvcjQuV2hpdGUoKX1cbiAgICAgICAgdWlUcmFuc2Zvcm09e3sgbWFyZ2luOiB7IGJvdHRvbTogMTAgfSB9fVxuICAgICAgLz5cblxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICBtYXJnaW46IHsgYm90dG9tOiAxMCB9LFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgZGlzYWJsZWQ9eyFpc0FjdGl2ZX1cbiAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfcGxheVwiXG4gICAgICAgICAgdmFsdWU9XCI8Yj5QbGF5PC9iPlwiXG4gICAgICAgICAgZm9udFNpemU9ezE4fVxuICAgICAgICAgIGxhYmVsVHJhbnNmb3JtPXt7IG1hcmdpbjogeyByaWdodDogMTAgfSB9fVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBtYXJnaW46IHsgdG9wOiAwLCByaWdodDogMTYsIGJvdHRvbTogMCwgbGVmdDogMCB9LFxuICAgICAgICAgICAgaGVpZ2h0OiA0MixcbiAgICAgICAgICAgIG1pbldpZHRoOiA2OSxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGljb249e0lDT05TLlBMQVlfQlVUVE9OfVxuICAgICAgICAgIGljb25UcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiAzNSxcbiAgICAgICAgICAgIGhlaWdodDogMzUsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgY29udHJvbHMucGxheSgpO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBkaXNhYmxlZD17IWlzQWN0aXZlfVxuICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9wYXVzZVwiXG4gICAgICAgICAgdmFsdWU9XCI8Yj5QYXVzZTwvYj5cIlxuICAgICAgICAgIGZvbnRTaXplPXsxOH1cbiAgICAgICAgICBsYWJlbFRyYW5zZm9ybT17e1xuICAgICAgICAgICAgbWFyZ2luOiB7IGxlZnQ6IDYsIHJpZ2h0OiA2IH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgbWFyZ2luOiB7IHRvcDogMCwgcmlnaHQ6IDE2LCBib3R0b206IDAsIGxlZnQ6IDAgfSxcbiAgICAgICAgICAgIGhlaWdodDogNDIsXG4gICAgICAgICAgICBtaW5XaWR0aDogNzgsXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgY29udHJvbHMucGF1c2UoKTtcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgZGlzYWJsZWQ9eyFpc0FjdGl2ZX1cbiAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfcmVzdGFydFwiXG4gICAgICAgICAgdmFsdWU9XCI8Yj5SZXN0YXJ0PC9iPlwiXG4gICAgICAgICAgbGFiZWxUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyBsZWZ0OiA2LCByaWdodDogNiB9LFxuICAgICAgICAgIH19XG4gICAgICAgICAgZm9udFNpemU9ezE4fVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBtYXJnaW46IHsgdG9wOiAwLCByaWdodDogMTYsIGJvdHRvbTogMCwgbGVmdDogMCB9LFxuICAgICAgICAgICAgaGVpZ2h0OiA0MixcbiAgICAgICAgICAgIG1pbldpZHRoOiA4OCxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICBjb250cm9scy5yZXN0YXJ0KCk7XG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGRpc2FibGVkPXshaXNBY3RpdmV9XG4gICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX2xvb3BcIlxuICAgICAgICAgIG9ubHlJY29uXG4gICAgICAgICAgdmFyaWFudD17dmlkZW8/Lmxvb3AgPyAncHJpbWFyeScgOiAnc2Vjb25kYXJ5J31cbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgaGVpZ2h0OiA0MixcbiAgICAgICAgICAgIHdpZHRoOiA0OSxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGljb249e0lDT05TLkxPT1B9XG4gICAgICAgICAgaWNvblRyYW5zZm9ybT17eyB3aWR0aDogMjUsIGhlaWdodDogMjUgfX1cbiAgICAgICAgICBpY29uQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgY29sb3I6ICF2aWRlbz8ubG9vcCA/IENvbG9yNC5XaGl0ZSgpIDogQ29sb3I0LkJsYWNrKCksXG4gICAgICAgICAgfX1cbiAgICAgICAgICBjb2xvcj17Q29sb3I0LldoaXRlKCl9XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgIGNvbnRyb2xzLnNldExvb3AoIXZpZGVvPy5sb29wKTtcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgPC9VaUVudGl0eT5cbiAgICAgIDxWaWRlb0NvbnRyb2xWb2x1bWVcbiAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgIGVudGl0eT17ZW50aXR5fVxuICAgICAgICB2aWRlbz17dmlkZW99XG4gICAgICAgIGxhYmVsPVwiPGI+VmlkZW8gVm9sdW1lPC9iPlwiXG4gICAgICAvPlxuICAgIDwvVWlFbnRpdHk+XG4gICk7XG59XG4iXX0=
@@ -1,21 +1,19 @@
1
1
  import ReactEcs, { Label, UiEntity } from '@dcl/react-ecs';
2
2
  import { Color4 } from '@dcl/ecs-math';
3
- import { getScaleUIFactor } from '../../ui';
4
3
  import { Button } from '../Button';
5
4
  import { createVideoPlayerControls, getAdminToolkitVideoControl } from './utils';
6
5
  import { COLORS, DEFAULT_VOLUME, ICONS, VOLUME_STEP } from '.';
7
6
  export function VideoControlVolume({ engine, label, entity, video, }) {
8
- const scaleFactor = getScaleUIFactor(engine);
9
7
  const controls = createVideoPlayerControls(entity, engine);
10
8
  const videoControl = getAdminToolkitVideoControl(engine);
11
9
  const isSoundDisabled = videoControl?.disableVideoPlayersSound;
12
10
  const volumePercentage = `${Math.round((video?.volume ?? DEFAULT_VOLUME) * 100)}%`;
13
11
  if (isSoundDisabled) {
14
- return (ReactEcs.createElement(UiEntity, { uiTransform: { margin: { top: 4 * scaleFactor } } },
12
+ return (ReactEcs.createElement(UiEntity, { uiTransform: { margin: { top: 4 } } },
15
13
  ReactEcs.createElement(UiEntity, { uiTransform: {
16
- width: 24 * scaleFactor,
17
- height: 24 * scaleFactor,
18
- margin: { right: 8 * scaleFactor },
14
+ width: 24,
15
+ height: 24,
16
+ margin: { right: 8 },
19
17
  }, uiBackground: {
20
18
  textureMode: 'stretch',
21
19
  texture: {
@@ -23,11 +21,11 @@ export function VideoControlVolume({ engine, label, entity, video, }) {
23
21
  },
24
22
  color: Color4.fromHexString('#A09BA8'),
25
23
  } }),
26
- ReactEcs.createElement(Label, { value: "Sound is disabled for all screens", color: Color4.fromHexString('#A09BA8'), fontSize: 14 * scaleFactor }),
24
+ ReactEcs.createElement(Label, { value: "Sound is disabled for all screens", color: Color4.fromHexString('#A09BA8'), fontSize: 14 }),
27
25
  ReactEcs.createElement(UiEntity, { uiTransform: {
28
- width: 25 * scaleFactor,
29
- height: 25 * scaleFactor,
30
- margin: { left: 8 * scaleFactor },
26
+ width: 25,
27
+ height: 25,
28
+ margin: { left: 8 },
31
29
  }, uiBackground: {
32
30
  textureMode: 'stretch',
33
31
  texture: {
@@ -38,48 +36,48 @@ export function VideoControlVolume({ engine, label, entity, video, }) {
38
36
  }
39
37
  return (ReactEcs.createElement(UiEntity, { uiTransform: {
40
38
  flexDirection: 'column',
41
- margin: { top: 16 * scaleFactor },
39
+ margin: { top: 16 },
42
40
  } },
43
- ReactEcs.createElement(Label, { value: label, fontSize: 16 * scaleFactor, color: COLORS.WHITE, uiTransform: {
44
- margin: { top: 0, right: 0, bottom: 10 * scaleFactor, left: 0 },
41
+ ReactEcs.createElement(Label, { value: label, fontSize: 16, color: COLORS.WHITE, uiTransform: {
42
+ margin: { top: 0, right: 0, bottom: 10, left: 0 },
45
43
  } }),
46
44
  ReactEcs.createElement(UiEntity, { uiTransform: {
47
45
  flexDirection: 'row',
48
46
  } },
49
- ReactEcs.createElement(Button, { id: "video_control_volume_minus", value: "Minus", fontSize: 14 * scaleFactor, uiTransform: {
50
- margin: { top: 0, right: 16 * scaleFactor, bottom: 0, left: 0 },
51
- width: 49 * scaleFactor,
47
+ ReactEcs.createElement(Button, { id: "video_control_volume_minus", value: "Minus", fontSize: 14, uiTransform: {
48
+ margin: { top: 0, right: 16, bottom: 0, left: 0 },
49
+ width: 49,
52
50
  alignItems: 'center',
53
51
  justifyContent: 'center',
54
52
  padding: 0,
55
53
  }, icon: ICONS.VOLUME_MINUS_BUTTON, onlyIcon: true, iconTransform: {
56
- width: 25 * scaleFactor,
57
- height: 25 * scaleFactor,
54
+ width: 25,
55
+ height: 25,
58
56
  }, onMouseDown: () => controls.setVolume(-VOLUME_STEP), disabled: isSoundDisabled || !video?.volume }),
59
- ReactEcs.createElement(Label, { value: volumePercentage, fontSize: 18 * scaleFactor, color: COLORS.GRAY, uiTransform: {
60
- margin: { top: 0, right: 16 * scaleFactor, bottom: 0, left: 0 },
57
+ ReactEcs.createElement(Label, { value: volumePercentage, fontSize: 18, color: COLORS.GRAY, uiTransform: {
58
+ margin: { top: 0, right: 16, bottom: 0, left: 0 },
61
59
  alignItems: 'center',
62
60
  justifyContent: 'center',
63
61
  padding: 0,
64
- width: 60 * scaleFactor,
62
+ width: 60,
65
63
  } }),
66
- ReactEcs.createElement(Button, { id: "video_control_volume_plus", value: "Plus", fontSize: 14 * scaleFactor, icon: ICONS.VOLUME_PLUS_BUTTON, onlyIcon: true, iconTransform: {
67
- width: 25 * scaleFactor,
68
- height: 25 * scaleFactor,
64
+ ReactEcs.createElement(Button, { id: "video_control_volume_plus", value: "Plus", fontSize: 14, icon: ICONS.VOLUME_PLUS_BUTTON, onlyIcon: true, iconTransform: {
65
+ width: 25,
66
+ height: 25,
69
67
  }, uiTransform: {
70
- margin: { top: 0, right: 16 * scaleFactor, bottom: 0, left: 0 },
71
- width: 49 * scaleFactor,
68
+ margin: { top: 0, right: 16, bottom: 0, left: 0 },
69
+ width: 49,
72
70
  alignItems: 'center',
73
71
  justifyContent: 'center',
74
72
  padding: 0,
75
73
  }, onMouseDown: () => controls.setVolume(VOLUME_STEP), disabled: isSoundDisabled || video?.volume === 1 }),
76
- ReactEcs.createElement(Button, { id: "video_control_volume_mute", variant: !video?.volume ? 'primary' : 'secondary', fontSize: 18 * scaleFactor, iconTransform: { width: 24 * scaleFactor, height: 24 * scaleFactor }, onlyIcon: true, icon: ICONS.MUTE, iconBackground: {
74
+ ReactEcs.createElement(Button, { id: "video_control_volume_mute", variant: !video?.volume ? 'primary' : 'secondary', fontSize: 18, iconTransform: { width: 24, height: 24 }, onlyIcon: true, icon: ICONS.MUTE, iconBackground: {
77
75
  color: video?.volume ? Color4.White() : Color4.Black(),
78
76
  }, uiTransform: {
79
77
  borderColor: Color4.fromHexString('#FCFCFC'),
80
78
  borderWidth: 2,
81
- width: 49 * scaleFactor,
82
- height: 42 * scaleFactor,
79
+ width: 49,
80
+ height: 42,
83
81
  alignItems: 'center',
84
82
  justifyContent: 'center',
85
83
  padding: 0,
@@ -87,4 +85,4 @@ export function VideoControlVolume({ engine, label, entity, video, }) {
87
85
  controls.setVolume(!video?.volume ? 100 : 0);
88
86
  }, disabled: isSoundDisabled }))));
89
87
  }
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVm9sdW1lQ29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZG1pbi10b29sa2l0LXVpL1ZpZGVvQ29udHJvbC9Wb2x1bWVDb250cm9sLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNqRixPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sR0FBRyxDQUFDO0FBRS9ELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxFQUNqQyxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixLQUFLLEdBTU47SUFDQyxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxNQUFNLFFBQVEsR0FBRyx5QkFBeUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0QsTUFBTSxZQUFZLEdBQUcsMkJBQTJCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekQsTUFBTSxlQUFlLEdBQUcsWUFBWSxFQUFFLHdCQUF3QixDQUFDO0lBQy9ELE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxjQUFjLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBRW5GLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUNMLHVCQUFDLFFBQVEsSUFB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QUNoRDtZQUNGLHVCQUFDLE1BQU0sSUFDTCxFQUFFLEVBQUMsMkJBQTJCLEVBQzlCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUNqRCxRQUFRLEVBQUUsRUFBRSxHQUFHLFdBQVcsRUFDMUIsYUFBYSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxXQUFXLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxXQUFXLEVBQUUsRUFDcEUsUUFBUSxRQUNSLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUNoQixjQUFjLEVBQUU7b0JBQ2QsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtpQkFDdkQsRUFDRCxXQUFXLEVBQUU7b0JBQ1gsV0FBVyxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO29CQUM1QyxXQUFXLEVBQUUsQ0FBQztvQkFDZCxLQUFLLEVBQUUsRUFBRSxHQUFHLFdBQVc7b0JBQ3ZCLE1BQU0sRUFBRSxFQUFFLEdBQUcsV0FBVztvQkFDeEIsVUFBVSxFQUFFLFFBQVE7b0JBQ3BCLGNBQWMsRUFBRSxRQUFRO29CQUN4QixPQUFPLEVBQUUsQ0FBQztpQkFDWCxFQUNELFdBQVcsRUFBRSxHQUFHLEVBQUU7b0JBQ2hCLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvQyxDQUFDLEVBQ0QsUUFBUSxFQUFFLGVBQWUsR0FDekIsQ0FDTyxDQUNGLENBQ1osQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWVwUmVhZG9ubHlPYmplY3QsIEVudGl0eSwgSUVuZ2luZSwgUEJWaWRlb1BsYXllciB9IGZyb20gJ0BkY2wvZWNzJztcbmltcG9ydCBSZWFjdEVjcywgeyBMYWJlbCwgVWlFbnRpdHkgfSBmcm9tICdAZGNsL3JlYWN0LWVjcyc7XG5pbXBvcnQgeyBDb2xvcjQgfSBmcm9tICdAZGNsL2Vjcy1tYXRoJztcbmltcG9ydCB7IGdldFNjYWxlVUlGYWN0b3IgfSBmcm9tICcuLi8uLi91aSc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuaW1wb3J0IHsgY3JlYXRlVmlkZW9QbGF5ZXJDb250cm9scywgZ2V0QWRtaW5Ub29sa2l0VmlkZW9Db250cm9sIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBDT0xPUlMsIERFRkFVTFRfVk9MVU1FLCBJQ09OUywgVk9MVU1FX1NURVAgfSBmcm9tICcuJztcblxuZXhwb3J0IGZ1bmN0aW9uIFZpZGVvQ29udHJvbFZvbHVtZSh7XG4gIGVuZ2luZSxcbiAgbGFiZWwsXG4gIGVudGl0eSxcbiAgdmlkZW8sXG59OiB7XG4gIGVuZ2luZTogSUVuZ2luZTtcbiAgbGFiZWw6IHN0cmluZztcbiAgZW50aXR5OiBFbnRpdHk7XG4gIHZpZGVvOiBEZWVwUmVhZG9ubHlPYmplY3Q8UEJWaWRlb1BsYXllcj4gfCB1bmRlZmluZWQ7XG59KSB7XG4gIGNvbnN0IHNjYWxlRmFjdG9yID0gZ2V0U2NhbGVVSUZhY3RvcihlbmdpbmUpO1xuICBjb25zdCBjb250cm9scyA9IGNyZWF0ZVZpZGVvUGxheWVyQ29udHJvbHMoZW50aXR5LCBlbmdpbmUpO1xuICBjb25zdCB2aWRlb0NvbnRyb2wgPSBnZXRBZG1pblRvb2xraXRWaWRlb0NvbnRyb2woZW5naW5lKTtcbiAgY29uc3QgaXNTb3VuZERpc2FibGVkID0gdmlkZW9Db250cm9sPy5kaXNhYmxlVmlkZW9QbGF5ZXJzU291bmQ7XG4gIGNvbnN0IHZvbHVtZVBlcmNlbnRhZ2UgPSBgJHtNYXRoLnJvdW5kKCh2aWRlbz8udm9sdW1lID8/IERFRkFVTFRfVk9MVU1FKSAqIDEwMCl9JWA7XG5cbiAgaWYgKGlzU291bmREaXNhYmxlZCkge1xuICAgIHJldHVybiAoXG4gICAgICA8VWlFbnRpdHkgdWlUcmFuc2Zvcm09e3sgbWFyZ2luOiB7IHRvcDogNCAqIHNjYWxlRmFjdG9yIH0gfX0+XG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICB3aWR0aDogMjQgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgIGhlaWdodDogMjQgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICAgIHNyYzogSUNPTlMuTVVURSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb2xvcjogQ29sb3I0LmZyb21IZXhTdHJpbmcoJyNBMDlCQTgnKSxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgICA8TGFiZWxcbiAgICAgICAgICB2YWx1ZT1cIlNvdW5kIGlzIGRpc2FibGVkIGZvciBhbGwgc2NyZWVuc1wiXG4gICAgICAgICAgY29sb3I9e0NvbG9yNC5mcm9tSGV4U3RyaW5nKCcjQTA5QkE4Jyl9XG4gICAgICAgICAgZm9udFNpemU9ezE0ICogc2NhbGVGYWN0b3J9XG4gICAgICAgIC8+XG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICB3aWR0aDogMjUgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgIGhlaWdodDogMjUgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgIG1hcmdpbjogeyBsZWZ0OiA4ICogc2NhbGVGYWN0b3IgfSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgc3JjOiBJQ09OUy5JTkZPLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbG9yOiBDb2xvcjQuV2hpdGUoKSxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgPC9VaUVudGl0eT5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8VWlFbnRpdHlcbiAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICBtYXJnaW46IHsgdG9wOiAxNiAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICB9fVxuICAgID5cbiAgICAgIDxMYWJlbFxuICAgICAgICB2YWx1ZT17bGFiZWx9XG4gICAgICAgIGZvbnRTaXplPXsxNiAqIHNjYWxlRmFjdG9yfVxuICAgICAgICBjb2xvcj17Q09MT1JTLldISVRFfVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDAsIHJpZ2h0OiAwLCBib3R0b206IDEwICogc2NhbGVGYWN0b3IsIGxlZnQ6IDAgfSxcbiAgICAgICAgfX1cbiAgICAgIC8+XG5cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3ZvbHVtZV9taW51c1wiXG4gICAgICAgICAgdmFsdWU9XCJNaW51c1wiXG4gICAgICAgICAgZm9udFNpemU9ezE0ICogc2NhbGVGYWN0b3J9XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDAsIHJpZ2h0OiAxNiAqIHNjYWxlRmFjdG9yLCBib3R0b206IDAsIGxlZnQ6IDAgfSxcbiAgICAgICAgICAgIHdpZHRoOiA0OSAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgICAgaWNvbj17SUNPTlMuVk9MVU1FX01JTlVTX0JVVFRPTn1cbiAgICAgICAgICBvbmx5SWNvbj17dHJ1ZX1cbiAgICAgICAgICBpY29uVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICB3aWR0aDogMjUgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgIGhlaWdodDogMjUgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiBjb250cm9scy5zZXRWb2x1bWUoLVZPTFVNRV9TVEVQKX1cbiAgICAgICAgICBkaXNhYmxlZD17aXNTb3VuZERpc2FibGVkIHx8ICF2aWRlbz8udm9sdW1lfVxuICAgICAgICAvPlxuICAgICAgICA8TGFiZWxcbiAgICAgICAgICB2YWx1ZT17dm9sdW1lUGVyY2VudGFnZX1cbiAgICAgICAgICBmb250U2l6ZT17MTggKiBzY2FsZUZhY3Rvcn1cbiAgICAgICAgICBjb2xvcj17Q09MT1JTLkdSQVl9XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDAsIHJpZ2h0OiAxNiAqIHNjYWxlRmFjdG9yLCBib3R0b206IDAsIGxlZnQ6IDAgfSxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICAgIHdpZHRoOiA2MCAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfdm9sdW1lX3BsdXNcIlxuICAgICAgICAgIHZhbHVlPVwiUGx1c1wiXG4gICAgICAgICAgZm9udFNpemU9ezE0ICogc2NhbGVGYWN0b3J9XG4gICAgICAgICAgaWNvbj17SUNPTlMuVk9MVU1FX1BMVVNfQlVUVE9OfVxuICAgICAgICAgIG9ubHlJY29uPXt0cnVlfVxuICAgICAgICAgIGljb25UcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiAyNSAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgaGVpZ2h0OiAyNSAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDAsIHJpZ2h0OiAxNiAqIHNjYWxlRmFjdG9yLCBib3R0b206IDAsIGxlZnQ6IDAgfSxcbiAgICAgICAgICAgIHdpZHRoOiA0OSAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IGNvbnRyb2xzLnNldFZvbHVtZShWT0xVTUVfU1RFUCl9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzU291bmREaXNhYmxlZCB8fCB2aWRlbz8udm9sdW1lID09PSAxfVxuICAgICAgICAvPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3ZvbHVtZV9tdXRlXCJcbiAgICAgICAgICB2YXJpYW50PXshdmlkZW8/LnZvbHVtZSA/ICdwcmltYXJ5JyA6ICdzZWNvbmRhcnknfVxuICAgICAgICAgIGZvbnRTaXplPXsxOCAqIHNjYWxlRmFjdG9yfVxuICAgICAgICAgIGljb25UcmFuc2Zvcm09e3sgd2lkdGg6IDI0ICogc2NhbGVGYWN0b3IsIGhlaWdodDogMjQgKiBzY2FsZUZhY3RvciB9fVxuICAgICAgICAgIG9ubHlJY29uXG4gICAgICAgICAgaWNvbj17SUNPTlMuTVVURX1cbiAgICAgICAgICBpY29uQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgY29sb3I6IHZpZGVvPy52b2x1bWUgPyBDb2xvcjQuV2hpdGUoKSA6IENvbG9yNC5CbGFjaygpLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiBDb2xvcjQuZnJvbUhleFN0cmluZygnI0ZDRkNGQycpLFxuICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDIsXG4gICAgICAgICAgICB3aWR0aDogNDkgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgIGhlaWdodDogNDIgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICBjb250cm9scy5zZXRWb2x1bWUoIXZpZGVvPy52b2x1bWUgPyAxMDAgOiAwKTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIGRpc2FibGVkPXtpc1NvdW5kRGlzYWJsZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgIDwvVWlFbnRpdHk+XG4gICk7XG59XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVm9sdW1lQ29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZG1pbi10b29sa2l0LXVpL1ZpZGVvQ29udHJvbC9Wb2x1bWVDb250cm9sLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxHQUFHLENBQUM7QUFFL0QsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEVBQ2pDLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLEtBQUssR0FNTjtJQUNDLE1BQU0sUUFBUSxHQUFHLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzRCxNQUFNLFlBQVksR0FBRywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6RCxNQUFNLGVBQWUsR0FBRyxZQUFZLEVBQUUsd0JBQXdCLENBQUM7SUFDL0QsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxJQUFJLGNBQWMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFFbkYsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQ0wsdUJBQUMsUUFBUSxJQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMzQyx1QkFBQyxRQUFRLElBQ1AsV0FBVyxFQUFFO29C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LEtBQUssRUFBRTtpQkFDdkQsRUFDRCxXQUFXLEVBQUU7b0JBQ1gsV0FBVyxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO29CQUM1QyxXQUFXLEVBQUUsQ0FBQztvQkFDZCxLQUFLLEVBQUUsRUFBRTtvQkFDVCxNQUFNLEVBQUUsRUFBRTtvQkFDVixVQUFVLEVBQUUsUUFBUTtvQkFDcEIsY0FBYyxFQUFFLFFBQVE7b0JBQ3hCLE9BQU8sRUFBRSxDQUFDO2lCQUNYLEVBQ0QsV0FBVyxFQUFFLEdBQUcsRUFBRTtvQkFDaEIsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9DLENBQUMsRUFDRCxRQUFRLEVBQUUsZUFBZSxHQUN6QixDQUNPLENBQ0YsQ0FDWixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlZXBSZWFkb25seU9iamVjdCwgRW50aXR5LCBJRW5naW5lLCBQQlZpZGVvUGxheWVyIH0gZnJvbSAnQGRjbC9lY3MnO1xuaW1wb3J0IFJlYWN0RWNzLCB7IExhYmVsLCBVaUVudGl0eSB9IGZyb20gJ0BkY2wvcmVhY3QtZWNzJztcbmltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvZWNzLW1hdGgnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IGNyZWF0ZVZpZGVvUGxheWVyQ29udHJvbHMsIGdldEFkbWluVG9vbGtpdFZpZGVvQ29udHJvbCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQ09MT1JTLCBERUZBVUxUX1ZPTFVNRSwgSUNPTlMsIFZPTFVNRV9TVEVQIH0gZnJvbSAnLic7XG5cbmV4cG9ydCBmdW5jdGlvbiBWaWRlb0NvbnRyb2xWb2x1bWUoe1xuICBlbmdpbmUsXG4gIGxhYmVsLFxuICBlbnRpdHksXG4gIHZpZGVvLFxufToge1xuICBlbmdpbmU6IElFbmdpbmU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGVudGl0eTogRW50aXR5O1xuICB2aWRlbzogRGVlcFJlYWRvbmx5T2JqZWN0PFBCVmlkZW9QbGF5ZXI+IHwgdW5kZWZpbmVkO1xufSkge1xuICBjb25zdCBjb250cm9scyA9IGNyZWF0ZVZpZGVvUGxheWVyQ29udHJvbHMoZW50aXR5LCBlbmdpbmUpO1xuICBjb25zdCB2aWRlb0NvbnRyb2wgPSBnZXRBZG1pblRvb2xraXRWaWRlb0NvbnRyb2woZW5naW5lKTtcbiAgY29uc3QgaXNTb3VuZERpc2FibGVkID0gdmlkZW9Db250cm9sPy5kaXNhYmxlVmlkZW9QbGF5ZXJzU291bmQ7XG4gIGNvbnN0IHZvbHVtZVBlcmNlbnRhZ2UgPSBgJHtNYXRoLnJvdW5kKCh2aWRlbz8udm9sdW1lID8/IERFRkFVTFRfVk9MVU1FKSAqIDEwMCl9JWA7XG5cbiAgaWYgKGlzU291bmREaXNhYmxlZCkge1xuICAgIHJldHVybiAoXG4gICAgICA8VWlFbnRpdHkgdWlUcmFuc2Zvcm09e3sgbWFyZ2luOiB7IHRvcDogNCB9IH19PlxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IDI0LFxuICAgICAgICAgICAgaGVpZ2h0OiAyNCxcbiAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCB9LFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICBzcmM6IElDT05TLk1VVEUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29sb3I6IENvbG9yNC5mcm9tSGV4U3RyaW5nKCcjQTA5QkE4JyksXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAgPExhYmVsXG4gICAgICAgICAgdmFsdWU9XCJTb3VuZCBpcyBkaXNhYmxlZCBmb3IgYWxsIHNjcmVlbnNcIlxuICAgICAgICAgIGNvbG9yPXtDb2xvcjQuZnJvbUhleFN0cmluZygnI0EwOUJBOCcpfVxuICAgICAgICAgIGZvbnRTaXplPXsxNH1cbiAgICAgICAgLz5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiAyNSxcbiAgICAgICAgICAgIGhlaWdodDogMjUsXG4gICAgICAgICAgICBtYXJnaW46IHsgbGVmdDogOCB9LFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICBzcmM6IElDT05TLklORk8sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29sb3I6IENvbG9yNC5XaGl0ZSgpLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxVaUVudGl0eVxuICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgIG1hcmdpbjogeyB0b3A6IDE2IH0sXG4gICAgICB9fVxuICAgID5cbiAgICAgIDxMYWJlbFxuICAgICAgICB2YWx1ZT17bGFiZWx9XG4gICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgY29sb3I9e0NPTE9SUy5XSElURX1cbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBtYXJnaW46IHsgdG9wOiAwLCByaWdodDogMCwgYm90dG9tOiAxMCwgbGVmdDogMCB9LFxuICAgICAgICB9fVxuICAgICAgLz5cblxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfdm9sdW1lX21pbnVzXCJcbiAgICAgICAgICB2YWx1ZT1cIk1pbnVzXCJcbiAgICAgICAgICBmb250U2l6ZT17MTR9XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDAsIHJpZ2h0OiAxNiwgYm90dG9tOiAwLCBsZWZ0OiAwIH0sXG4gICAgICAgICAgICB3aWR0aDogNDksXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBpY29uPXtJQ09OUy5WT0xVTUVfTUlOVVNfQlVUVE9OfVxuICAgICAgICAgIG9ubHlJY29uPXt0cnVlfVxuICAgICAgICAgIGljb25UcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiAyNSxcbiAgICAgICAgICAgIGhlaWdodDogMjUsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4gY29udHJvbHMuc2V0Vm9sdW1lKC1WT0xVTUVfU1RFUCl9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzU291bmREaXNhYmxlZCB8fCAhdmlkZW8/LnZvbHVtZX1cbiAgICAgICAgLz5cbiAgICAgICAgPExhYmVsXG4gICAgICAgICAgdmFsdWU9e3ZvbHVtZVBlcmNlbnRhZ2V9XG4gICAgICAgICAgZm9udFNpemU9ezE4fVxuICAgICAgICAgIGNvbG9yPXtDT0xPUlMuR1JBWX1cbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgbWFyZ2luOiB7IHRvcDogMCwgcmlnaHQ6IDE2LCBib3R0b206IDAsIGxlZnQ6IDAgfSxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICAgIHdpZHRoOiA2MCxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3ZvbHVtZV9wbHVzXCJcbiAgICAgICAgICB2YWx1ZT1cIlBsdXNcIlxuICAgICAgICAgIGZvbnRTaXplPXsxNH1cbiAgICAgICAgICBpY29uPXtJQ09OUy5WT0xVTUVfUExVU19CVVRUT059XG4gICAgICAgICAgb25seUljb249e3RydWV9XG4gICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IDI1LFxuICAgICAgICAgICAgaGVpZ2h0OiAyNSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBtYXJnaW46IHsgdG9wOiAwLCByaWdodDogMTYsIGJvdHRvbTogMCwgbGVmdDogMCB9LFxuICAgICAgICAgICAgd2lkdGg6IDQ5LFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IGNvbnRyb2xzLnNldFZvbHVtZShWT0xVTUVfU1RFUCl9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzU291bmREaXNhYmxlZCB8fCB2aWRlbz8udm9sdW1lID09PSAxfVxuICAgICAgICAvPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3ZvbHVtZV9tdXRlXCJcbiAgICAgICAgICB2YXJpYW50PXshdmlkZW8/LnZvbHVtZSA/ICdwcmltYXJ5JyA6ICdzZWNvbmRhcnknfVxuICAgICAgICAgIGZvbnRTaXplPXsxOH1cbiAgICAgICAgICBpY29uVHJhbnNmb3JtPXt7IHdpZHRoOiAyNCwgaGVpZ2h0OiAyNCB9fVxuICAgICAgICAgIG9ubHlJY29uXG4gICAgICAgICAgaWNvbj17SUNPTlMuTVVURX1cbiAgICAgICAgICBpY29uQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgY29sb3I6IHZpZGVvPy52b2x1bWUgPyBDb2xvcjQuV2hpdGUoKSA6IENvbG9yNC5CbGFjaygpLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiBDb2xvcjQuZnJvbUhleFN0cmluZygnI0ZDRkNGQycpLFxuICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDIsXG4gICAgICAgICAgICB3aWR0aDogNDksXG4gICAgICAgICAgICBoZWlnaHQ6IDQyLFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgIGNvbnRyb2xzLnNldFZvbHVtZSghdmlkZW8/LnZvbHVtZSA/IDEwMCA6IDApO1xuICAgICAgICAgIH19XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzU291bmREaXNhYmxlZH1cbiAgICAgICAgLz5cbiAgICAgIDwvVWlFbnRpdHk+XG4gICAgPC9VaUVudGl0eT5cbiAgKTtcbn1cbiJdfQ==