@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
@@ -21,7 +21,7 @@ const AUTO_HIDE_DURATION_SECONDS = 30;
21
21
  const STREAM_KEY_TIMEOUT_ACTION = 'video_control_stream_key_timeout';
22
22
  const STREAM_KEY_INTERVAL_ACTION = 'video_control_stream_key_interval';
23
23
  const RTMP_SERVER_URL = 'rtmps://dcl.rtmp.livekit.cloud/x';
24
- export function ShowStreamKey({ scaleFactor, engine, video, entity, onReset, endsAt, }) {
24
+ export function ShowStreamKey({ engine, video, entity, onReset, endsAt, }) {
25
25
  const controls = createVideoPlayerControls(entity, engine);
26
26
  const [showStreamkey, setShowStreamkey] = ReactEcs.useState(false);
27
27
  const [loading, setLoading] = ReactEcs.useState(false);
@@ -48,33 +48,33 @@ export function ShowStreamKey({ scaleFactor, engine, video, entity, onReset, end
48
48
  }
49
49
  }, [streamKey]);
50
50
  return (ReactEcs.createElement(UiEntity, { uiTransform: { flexDirection: 'column' } },
51
- ReactEcs.createElement(Label, { value: "<b>RTMP Server</b>", color: Color4.White(), fontSize: 16 * scaleFactor, uiTransform: {
52
- margin: { top: 16 * scaleFactor, bottom: 8 * scaleFactor },
51
+ ReactEcs.createElement(Label, { value: "<b>RTMP Server</b>", color: Color4.White(), fontSize: 16, uiTransform: {
52
+ margin: { top: 16, bottom: 8 },
53
53
  } }),
54
54
  ReactEcs.createElement(UiEntity, { uiTransform: {
55
55
  width: '100%',
56
- margin: { bottom: 8 * scaleFactor, top: 8 * scaleFactor },
57
- height: 42 * scaleFactor,
58
- borderRadius: 12 * scaleFactor,
56
+ margin: { bottom: 8, top: 8 },
57
+ height: 42,
58
+ borderRadius: 12,
59
59
  flexDirection: 'row',
60
60
  justifyContent: 'space-between',
61
61
  alignItems: 'center',
62
62
  }, uiBackground: { color: Color4.White() } },
63
- ReactEcs.createElement(Label, { uiTransform: { margin: { left: 16 * scaleFactor } }, fontSize: 16 * scaleFactor, value: `<b>${RTMP_SERVER_URL}</b>`, color: Color4.fromHexString('#A09BA8') }),
64
- ReactEcs.createElement(FeedbackButton, { id: "video_control_copy_rtmp_server", value: "<b>Copy</b>", variant: "primary", fontSize: 16 * scaleFactor, uiTransform: {
65
- margin: { right: 8 * scaleFactor },
66
- padding: { left: 8 * scaleFactor, right: 8 * scaleFactor },
63
+ ReactEcs.createElement(Label, { uiTransform: { margin: { left: 16 } }, fontSize: 16, value: `<b>${RTMP_SERVER_URL}</b>`, color: Color4.fromHexString('#A09BA8') }),
64
+ ReactEcs.createElement(FeedbackButton, { id: "video_control_copy_rtmp_server", value: "<b>Copy</b>", variant: "primary", fontSize: 16, uiTransform: {
65
+ margin: { right: 8 },
66
+ padding: { left: 8, right: 8 },
67
67
  }, onMouseDown: async () => {
68
68
  copyToClipboard({ text: RTMP_SERVER_URL });
69
69
  } })),
70
- ReactEcs.createElement(Label, { value: "<b>Stream Key</b>", color: Color4.White(), fontSize: 16 * scaleFactor, uiTransform: {
71
- margin: { top: 16 * scaleFactor, bottom: 8 * scaleFactor },
70
+ ReactEcs.createElement(Label, { value: "<b>Stream Key</b>", color: Color4.White(), fontSize: 16, uiTransform: {
71
+ margin: { top: 16, bottom: 8 },
72
72
  } }),
73
73
  ReactEcs.createElement(UiEntity, { uiTransform: {
74
74
  width: '100%',
75
- margin: { bottom: 8 * scaleFactor, top: 8 * scaleFactor },
76
- height: 42 * scaleFactor,
77
- borderRadius: 12 * scaleFactor,
75
+ margin: { bottom: 8, top: 8 },
76
+ height: 42,
77
+ borderRadius: 12,
78
78
  flexDirection: 'row',
79
79
  justifyContent: 'space-between',
80
80
  alignItems: 'center',
@@ -84,21 +84,21 @@ export function ShowStreamKey({ scaleFactor, engine, video, entity, onReset, end
84
84
  alignItems: 'center',
85
85
  justifyContent: 'flex-start',
86
86
  } }, loading ? (ReactEcs.createElement(UiEntity, { uiTransform: {
87
- margin: { left: 16 * scaleFactor },
87
+ margin: { left: 16 },
88
88
  } },
89
- ReactEcs.createElement(LoadingDots, { scaleFactor: scaleFactor, engine: engine }))) : (ReactEcs.createElement(Label, { uiTransform: {
90
- margin: { left: 16 * scaleFactor },
89
+ ReactEcs.createElement(LoadingDots, { engine: engine }))) : (ReactEcs.createElement(Label, { uiTransform: {
90
+ margin: { left: 16 },
91
91
  flexShrink: 1,
92
- }, fontSize: 16 * scaleFactor, value: `<b>${showStreamkey && streamKey ? streamKey : '************'}</b>`, color: Color4.fromHexString('#A09BA8') }))),
92
+ }, fontSize: 16, value: `<b>${showStreamkey && streamKey ? streamKey : '************'}</b>`, color: Color4.fromHexString('#A09BA8') }))),
93
93
  ReactEcs.createElement(UiEntity, { uiTransform: {
94
94
  flexDirection: 'row',
95
95
  alignItems: 'center',
96
96
  flexShrink: 0,
97
97
  } },
98
98
  ReactEcs.createElement(UiEntity, { uiTransform: {
99
- width: 25 * scaleFactor,
100
- height: 25 * scaleFactor,
101
- margin: { right: 10 * scaleFactor },
99
+ width: 25,
100
+ height: 25,
101
+ margin: { right: 10 },
102
102
  }, uiBackground: {
103
103
  textureMode: 'stretch',
104
104
  texture: {
@@ -119,10 +119,10 @@ export function ShowStreamKey({ scaleFactor, engine, video, entity, onReset, end
119
119
  setShowStreamkey(!showStreamkey);
120
120
  }
121
121
  } }),
122
- ReactEcs.createElement(FeedbackButton, { id: "video_control_copy_stream_key", value: "<b>Copy</b>", variant: "primary", fontSize: 16 * scaleFactor, uiTransform: {
123
- margin: { right: 8 * scaleFactor },
124
- padding: { left: 8 * scaleFactor, right: 8 * scaleFactor },
125
- minWidth: 60 * scaleFactor,
122
+ ReactEcs.createElement(FeedbackButton, { id: "video_control_copy_stream_key", value: "<b>Copy</b>", variant: "primary", fontSize: 16, uiTransform: {
123
+ margin: { right: 8 },
124
+ padding: { left: 8, right: 8 },
125
+ minWidth: 60,
126
126
  }, onMouseDown: async () => {
127
127
  if (streamKey) {
128
128
  copyToClipboard({ text: streamKey });
@@ -139,8 +139,8 @@ export function ShowStreamKey({ scaleFactor, engine, video, entity, onReset, end
139
139
  } }))),
140
140
  ReactEcs.createElement(UiEntity, { uiTransform: {
141
141
  width: '100%',
142
- height: 4 * scaleFactor,
143
- margin: { top: 8 * scaleFactor },
142
+ height: 4,
143
+ margin: { top: 8 },
144
144
  display: streamKey && timeRemaining > 0 && showStreamkey ? 'flex' : 'none',
145
145
  }, uiBackground: { color: Color4.fromHexString('#FFFFFF1A') } },
146
146
  ReactEcs.createElement(UiEntity, { uiTransform: {
@@ -149,50 +149,50 @@ export function ShowStreamKey({ scaleFactor, engine, video, entity, onReset, end
149
149
  }, uiBackground: { color: Color4.fromHexString('#00D3FF') } })),
150
150
  ReactEcs.createElement(UiEntity, { uiTransform: {
151
151
  width: '100%',
152
- height: 40 * scaleFactor,
152
+ height: 40,
153
153
  flexDirection: 'row',
154
154
  justifyContent: 'space-between',
155
- margin: { top: 10 * scaleFactor, bottom: 16 * scaleFactor },
155
+ margin: { top: 10, bottom: 16 },
156
156
  } },
157
157
  endsAt > Date.now() ? (ReactEcs.createElement(UiEntity, { uiTransform: { flexDirection: 'column' } },
158
- ReactEcs.createElement(Label, { value: "Stream expires in:", color: Color4.fromHexString('#FFFFFFB2'), fontSize: 14 * scaleFactor }),
159
- ReactEcs.createElement(Label, { value: formatTimeRemaining(endsAt), color: Color4.fromHexString('#FFFFFFB2'), fontSize: 14 * scaleFactor }))) : (ReactEcs.createElement(UiEntity, { uiTransform: {
158
+ ReactEcs.createElement(Label, { value: "Stream expires in:", color: Color4.fromHexString('#FFFFFFB2'), fontSize: 14 }),
159
+ ReactEcs.createElement(Label, { value: formatTimeRemaining(endsAt), color: Color4.fromHexString('#FFFFFFB2'), fontSize: 14 }))) : (ReactEcs.createElement(UiEntity, { uiTransform: {
160
160
  flexDirection: 'row',
161
- margin: { right: 10 * scaleFactor },
161
+ margin: { right: 10 },
162
162
  borderWidth: 2,
163
163
  borderColor: Color4.Green(),
164
164
  } },
165
165
  ReactEcs.createElement(UiEntity, { uiTransform: {
166
- width: 15 * scaleFactor,
167
- height: 15 * scaleFactor,
168
- margin: { right: 4 * scaleFactor, top: 4 * scaleFactor },
166
+ width: 15,
167
+ height: 15,
168
+ margin: { right: 4, top: 4 },
169
169
  }, uiBackground: {
170
170
  textureMode: 'stretch',
171
171
  texture: {
172
172
  src: ERROR_ICON,
173
173
  },
174
174
  } }),
175
- ReactEcs.createElement(Label, { fontSize: 14 * scaleFactor, textAlign: "middle-left", color: Color4.fromHexString('#FF0000'), value: "Stream timed out. Please restart stream in broadcasting software." }))),
176
- video?.src === LIVEKIT_STREAM_SRC && state.videoControl.selectedStream === 'live' ? (ReactEcs.createElement(Button, { id: "video_control_share_screen_clear", value: "<b>Deactivate</b>", variant: "text", fontSize: 16 * scaleFactor, color: Color4.White(), uiTransform: {
177
- minWidth: 120 * scaleFactor,
178
- margin: { right: 8 * scaleFactor },
179
- padding: { left: 8 * scaleFactor, right: 8 * scaleFactor },
175
+ ReactEcs.createElement(Label, { fontSize: 14, textAlign: "middle-left", color: Color4.fromHexString('#FF0000'), value: "Stream timed out. Please restart stream in broadcasting software." }))),
176
+ video?.src === LIVEKIT_STREAM_SRC && state.videoControl.selectedStream === 'live' ? (ReactEcs.createElement(Button, { id: "video_control_share_screen_clear", value: "<b>Deactivate</b>", variant: "text", fontSize: 16, color: Color4.White(), uiTransform: {
177
+ minWidth: 120,
178
+ margin: { right: 8 },
179
+ padding: { left: 8, right: 8 },
180
180
  }, onMouseDown: () => {
181
181
  controls.setSource('');
182
182
  state.videoControl.selectedStream = undefined;
183
183
  } })) : (ReactEcs.createElement(Button, { id: "video_control_share_screen_share", value: "<b>Activate</b>", labelTransform: {
184
- margin: { left: 20 * scaleFactor, right: 20 * scaleFactor },
184
+ margin: { left: 20, right: 20 },
185
185
  }, uiTransform: {
186
- minWidth: 120 * scaleFactor,
187
- }, fontSize: 16 * scaleFactor, uiBackground: { color: COLORS.SUCCESS }, color: Color4.Black(), onMouseDown: () => {
186
+ minWidth: 120,
187
+ }, fontSize: 16, uiBackground: { color: COLORS.SUCCESS }, color: Color4.Black(), onMouseDown: () => {
188
188
  controls.setSource(LIVEKIT_STREAM_SRC);
189
189
  state.videoControl.selectedStream = 'live';
190
190
  } }))),
191
191
  ReactEcs.createElement(VideoControlVolume, { engine: engine, label: "<b>Stream Volume</b>", entity: entity, video: video }),
192
192
  ReactEcs.createElement(UiEntity, null,
193
- ReactEcs.createElement(Button, { id: "video_control_reset_stream_key", value: "<b>Reset Stream Key</b>", variant: "text", fontSize: 16 * scaleFactor, color: Color4.fromHexString('#FB3B3B'), uiTransform: {
194
- margin: { right: 8 * scaleFactor, top: 20 * scaleFactor },
195
- padding: { left: 8 * scaleFactor, right: 8 * scaleFactor },
193
+ ReactEcs.createElement(Button, { id: "video_control_reset_stream_key", value: "<b>Reset Stream Key</b>", variant: "text", fontSize: 16, color: Color4.fromHexString('#FB3B3B'), uiTransform: {
194
+ margin: { right: 8, top: 20 },
195
+ padding: { left: 8, right: 8 },
196
196
  }, onMouseDown: () => onReset() }))));
197
197
  }
198
198
  function formatTimeRemaining(endsAt) {
@@ -209,4 +209,4 @@ function formatTimeRemaining(endsAt) {
209
209
  return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
210
210
  }
211
211
  }
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hvd1N0cmVhbUtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hZG1pbi10b29sa2l0LXVpL1ZpZGVvQ29udHJvbC9MaXZlU3RyZWFtL1Nob3dTdHJlYW1LZXkudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQztBQUM1QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxNQUFNLFlBQVksR0FBRztJQUNuQixPQUFPLEVBQUUsR0FBRyxXQUFXLHFD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QUFDO1FBQ04sTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNqRSxPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM5SCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvc2RrL21hdGgnO1xuaW1wb3J0IHR5cGUgeyBEZWVwUmVhZG9ubHlPYmplY3QsIEVudGl0eSwgSUVuZ2luZSwgUEJWaWRlb1BsYXllciB9IGZyb20gJ0BkY2wvZWNzJztcbmltcG9ydCBSZWFjdEVjcywgeyBVaUVudGl0eSwgTGFiZWwgfSBmcm9tICdAZGNsL3JlYWN0LWVjcyc7XG5pbXBvcnQgeyBDT0xPUlMgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBjcmVhdGVWaWRlb1BsYXllckNvbnRyb2xzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgVmlkZW9Db250cm9sVm9sdW1lIH0gZnJvbSAnLi4vVm9sdW1lQ29udHJvbCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9CdXR0b24nO1xuaW1wb3J0IHsgRmVlZGJhY2tCdXR0b24gfSBmcm9tICcuLi8uLi9GZWVkYmFja0J1dHRvbic7XG5pbXBvcnQgeyBMSVZFS0lUX1NUUkVBTV9TUkMgfSBmcm9tICcuLi8uLi8uLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBFUlJPUl9JQ09OIH0gZnJvbSAnLi4vLi4vRXJyb3InO1xuaW1wb3J0IHsgQ09OVEVOVF9VUkwgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0U3RyZWFtS2V5IH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IExvYWRpbmdEb3RzIH0gZnJvbSAnLi4vLi4vTG9hZGluZyc7XG5pbXBvcnQgeyBzdGFydFRpbWVvdXQsIHN0b3BUaW1lb3V0LCBzdGFydEludGVydmFsLCBzdG9wSW50ZXJ2YWwgfSBmcm9tICcuLi8uLi8uLi90aW1lcic7XG5pbXBvcnQgeyBzdGF0ZSB9IGZyb20gJy4uLy4uJztcbmltcG9ydCB7IGNvcHlUb0NsaXBib2FyZCB9IGZyb20gJ35zeXN0ZW0vUmVzdHJpY3RlZEFjdGlvbnMnO1xuXG5jb25zdCBTVFJFQU1fSUNPTlMgPSB7XG4gIGV5ZVNob3c6IGAke0NPTlRFTlRfVVJMfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9leWUucG5nYCxcbiAgZXllSGlkZTogYCR7Q09OVEVOVF9VUkx9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL2V5ZS1vZmYucG5nYCxcbn07XG5cbmNvbnN0IEFVVE9fSElERV9EVVJBVElPTl9TRUNPTkRTID0gMzA7XG5jb25zdCBTVFJFQU1fS0VZX1RJTUVPVVRfQUNUSU9OID0gJ3ZpZGVvX2NvbnRyb2xfc3RyZWFtX2tleV90aW1lb3V0JztcbmNvbnN0IFNUUkVBTV9LRVlfSU5URVJWQUxfQUNUSU9OID0gJ3ZpZGVvX2NvbnRyb2xfc3RyZWFtX2tleV9pbnRlcnZhbCc7XG5jb25zdCBSVE1QX1NFUlZFUl9VUkwgPSAncnRtcHM6Ly9kY2wucnRtcC5saXZla2l0LmNsb3VkL3gnO1xuXG5leHBvcnQgZnVuY3Rpb24gU2hvd1N0cmVhbUtleSh7XG4gIHNjYWxlRmFjdG9yLFxuICBlbmdpbmUsXG4gIHZpZGVvLFxuICBlbnRpdHksXG4gIG9uUmVzZXQsXG4gIGVuZHNBdCxcbn06IHtcbiAgZW5kc0F0OiBudW1iZXI7XG4gIHNjYWxlRmFjdG9yOiBudW1iZXI7XG4gIGVuZ2luZTogSUVuZ2luZTtcbiAgZW50aXR5OiBFbnRpdHk7XG4gIHZpZGVvOiBEZWVwUmVhZG9ubHlPYmplY3Q8UEJWaWRlb1BsYXllcj4gfCB1bmRlZmluZWQ7XG4gIG9uUmVzZXQoKTogdm9pZDtcbn0pIHtcbiAgY29uc3QgY29udHJvbHMgPSBjcmVhdGVWaWRlb1BsYXllckNvbnRyb2xzKGVudGl0eSwgZW5naW5lKTtcbiAgY29uc3QgW3Nob3dTdHJlYW1rZXksIHNldFNob3dTdHJlYW1rZXldID0gUmVhY3RFY3MudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSBSZWFjdEVjcy51c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzdHJlYW1LZXksIHNldFN0cmVhbUtleV0gPSBSZWFjdEVjcy51c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IFt0aW1lUmVtYWluaW5nLCBzZXRUaW1lUmVtYWluaW5nXSA9IFJlYWN0RWNzLnVzZVN0YXRlKEFVVE9fSElERV9EVVJBVElPTl9TRUNPTkRTKTtcblxuICAvLyBhdXRvLWhpZGUgc3RyZWFtIGtleSBhZnRlciBzcGVjaWZpZWQgZHVyYXRpb25cbiAgUmVhY3RFY3MudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc3RyZWFtS2V5KSB7XG4gICAgICBzZXRUaW1lUmVtYWluaW5nKEFVVE9fSElERV9EVVJBVElPTl9TRUNPTkRTKTtcblxuICAgICAgc3RhcnRUaW1lb3V0KFxuICAgICAgICBzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSxcbiAgICAgICAgU1RSRUFNX0tFWV9USU1FT1VUX0FDVElPTixcbiAgICAgICAgQVVUT19ISURFX0RVUkFUSU9OX1NFQ09ORFMsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBzZXRTdHJlYW1LZXkodW5kZWZpbmVkKTtcbiAgICAgICAgICBzZXRTaG93U3RyZWFta2V5KGZhbHNlKTtcbiAgICAgICAgICBzZXRUaW1lUmVtYWluaW5nKDApO1xuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgc3RhcnRJbnRlcnZhbChzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSwgU1RSRUFNX0tFWV9JTlRFUlZBTF9BQ1RJT04sIDAuMSwgKCkgPT4ge1xuICAgICAgICBzZXRUaW1lUmVtYWluaW5nKHByZXYgPT4gTWF0aC5tYXgoMCwgcHJldiAtIDAuMSkpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHN0b3BUaW1lb3V0KHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5LCBTVFJFQU1fS0VZX1RJTUVPVVRfQUNUSU9OKTtcbiAgICAgICAgc3RvcEludGVydmFsKHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5LCBTVFJFQU1fS0VZX0lOVEVSVkFMX0FDVElPTik7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRUaW1lUmVtYWluaW5nKDApO1xuICAgIH1cbiAgfSwgW3N0cmVhbUtleV0pO1xuXG4gIHJldHVybiAoXG4gICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nIH19PlxuICAgICAgPExhYmVsXG4gICAgICAgIHZhbHVlPVwiPGI+UlRNUCBTZXJ2ZXI8L2I+XCJcbiAgICAgICAgY29sb3I9e0NvbG9yNC5XaGl0ZSgpfVxuICAgICAgICBmb250U2l6ZT17MTYgKiBzY2FsZUZhY3Rvcn1cbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBtYXJnaW46IHsgdG9wOiAxNiAqIHNjYWxlRmFjdG9yLCBib3R0b206IDggKiBzY2FsZUZhY3RvciB9LFxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgbWFyZ2luOiB7IGJvdHRvbTogOCAqIHNjYWxlRmFjdG9yLCB0b3A6IDggKiBzY2FsZUZhY3RvciB9LFxuICAgICAgICAgIGhlaWdodDogNDIgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDEyICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgfX1cbiAgICAgICAgdWlCYWNrZ3JvdW5kPXt7IGNvbG9yOiBDb2xvcjQuV2hpdGUoKSB9fVxuICAgICAgPlxuICAgICAgICA8TGFiZWxcbiAgICAgICAgICB1aVRyYW5zZm9ybT17eyBtYXJnaW46IHsgbGVmdDogMTYgKiBzY2FsZUZhY3RvciB9IH19XG4gICAgICAgICAgZm9udFNpemU9ezE2ICogc2NhbGVGYWN0b3J9XG4gICAgICAgICAgdmFsdWU9e2A8Yj4ke1JUTVBfU0VSVkVSX1VSTH08L2I+YH1cbiAgICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNBMDlCQTgnKX1cbiAgICAgICAgLz5cbiAgICAgICAgPEZlZWRiYWNrQnV0dG9uXG4gICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX2NvcHlfcnRtcF9zZXJ2ZXJcIlxuICAgICAgICAgIHZhbHVlPVwiPGI+Q29weTwvYj5cIlxuICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICBmb250U2l6ZT17MTYgKiBzY2FsZUZhY3Rvcn1cbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA4ICogc2NhbGVGYWN0b3IgfSxcbiAgICAgICAgICAgIHBhZGRpbmc6IHsgbGVmdDogOCAqIHNjYWxlRmFjdG9yLCByaWdodDogOCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17YXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgY29weVRvQ2xpcGJvYXJkKHsgdGV4dDogUlRNUF9TRVJWRVJfVVJMIH0pO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgICAgPExhYmVsXG4gICAgICAgIHZhbHVlPVwiPGI+U3RyZWFtIEtleTwvYj5cIlxuICAgICAgICBjb2xvcj17Q29sb3I0LldoaXRlKCl9XG4gICAgICAgIGZvbnRTaXplPXsxNiAqIHNjYWxlRmFjdG9yfVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDE2ICogc2NhbGVGYWN0b3IsIGJvdHRvbTogOCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICBtYXJnaW46IHsgYm90dG9tOiA4ICogc2NhbGVGYWN0b3IsIHRvcDogOCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgaGVpZ2h0OiA0MiAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogMTIgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICB9fVxuICAgICAgICB1aUJhY2tncm91bmQ9e3sgY29sb3I6IENvbG9yNC5XaGl0ZSgpIH19XG4gICAgICA+XG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge2xvYWRpbmcgPyAoXG4gICAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICBtYXJnaW46IHsgbGVmdDogMTYgKiBzY2FsZUZhY3RvciB9LFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8TG9hZGluZ0RvdHNcbiAgICAgICAgICAgICAgICBzY2FsZUZhY3Rvcj17c2NhbGVGYWN0b3J9XG4gICAgICAgICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8TGFiZWxcbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICBtYXJnaW46IHsgbGVmdDogMTYgKiBzY2FsZUZhY3RvciB9LFxuICAgICAgICAgICAgICAgIGZsZXhTaHJpbms6IDEsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGZvbnRTaXplPXsxNiAqIHNjYWxlRmFjdG9yfVxuICAgICAgICAgICAgICB2YWx1ZT17YDxiPiR7c2hvd1N0cmVhbWtleSAmJiBzdHJlYW1LZXkgPyBzdHJlYW1LZXkgOiAnKioqKioqKioqKioqJ308L2I+YH1cbiAgICAgICAgICAgICAgY29sb3I9e0NvbG9yNC5mcm9tSGV4U3RyaW5nKCcjQTA5QkE4Jyl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvVWlFbnRpdHk+XG5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBmbGV4U2hyaW5rOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIHdpZHRoOiAyNSAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgICBoZWlnaHQ6IDI1ICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogMTAgKiBzY2FsZUZhY3RvciB9LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICAgICAgc3JjOiBzaG93U3RyZWFta2V5ICYmIHN0cmVhbUtleSA/IFNUUkVBTV9JQ09OUy5leWVIaWRlIDogU1RSRUFNX0lDT05TLmV5ZVNob3csXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGNvbG9yOiBDb2xvcjQuQmxhY2soKSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBvbk1vdXNlRG93bj17YXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIXN0cmVhbUtleSkge1xuICAgICAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgW2Vycm9yLCBkYXRhXSA9IGF3YWl0IGdldFN0cmVhbUtleSgpO1xuICAgICAgICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIGlmICghZXJyb3IgJiYgZGF0YT8uc3RyZWFtaW5nS2V5KSB7XG4gICAgICAgICAgICAgICAgICBzZXRTdHJlYW1LZXkoZGF0YS5zdHJlYW1pbmdLZXkpO1xuICAgICAgICAgICAgICAgICAgc2V0U2hvd1N0cmVhbWtleSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0U2hvd1N0cmVhbWtleSghc2hvd1N0cmVhbWtleSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8RmVlZGJhY2tCdXR0b25cbiAgICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9jb3B5X3N0cmVhbV9rZXlcIlxuICAgICAgICAgICAgdmFsdWU9XCI8Yj5Db3B5PC9iPlwiXG4gICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICBmb250U2l6ZT17MTYgKiBzY2FsZUZhY3Rvcn1cbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgICAgIHBhZGRpbmc6IHsgbGVmdDogOCAqIHNjYWxlRmFjdG9yLCByaWdodDogOCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgICAgIG1pbldpZHRoOiA2MCAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXthc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChzdHJlYW1LZXkpIHtcbiAgICAgICAgICAgICAgICBjb3B5VG9DbGlwYm9hcmQoeyB0ZXh0OiBzdHJlYW1LZXkgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBbZXJyb3IsIGRhdGFdID0gYXdhaXQgZ2V0U3RyZWFtS2V5KCk7XG4gICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFlcnJvciAmJiBkYXRhPy5zdHJlYW1pbmdLZXkpIHtcbiAgICAgICAgICAgICAgICAgIHNldFN0cmVhbUtleShkYXRhLnN0cmVhbWluZ0tleSk7XG4gICAgICAgICAgICAgICAgICBjb3B5VG9DbGlwYm9hcmQoeyB0ZXh0OiBkYXRhLnN0cmVhbWluZ0tleSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgIDwvVWlFbnRpdHk+XG5cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgaGVpZ2h0OiA0ICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgbWFyZ2luOiB7IHRvcDogOCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgZGlzcGxheTogc3RyZWFtS2V5ICYmIHRpbWVSZW1haW5pbmcgPiAwICYmIHNob3dTdHJlYW1rZXkgPyAnZmxleCcgOiAnbm9uZScsXG4gICAgICAgIH19XG4gICAgICAgIHVpQmFja2dyb3VuZD17eyBjb2xvcjogQ29sb3I0LmZyb21IZXhTdHJpbmcoJyNGRkZGRkYxQScpIH19XG4gICAgICA+XG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICB3aWR0aDogYCR7KHRpbWVSZW1haW5pbmcgLyBBVVRPX0hJREVfRFVSQVRJT05fU0VDT05EUykgKiAxMDB9JWAsXG4gICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpQmFja2dyb3VuZD17eyBjb2xvcjogQ29sb3I0LmZyb21IZXhTdHJpbmcoJyMwMEQzRkYnKSB9fVxuICAgICAgICAvPlxuICAgICAgPC9VaUVudGl0eT5cblxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICBoZWlnaHQ6IDQwICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBtYXJnaW46IHsgdG9wOiAxMCAqIHNjYWxlRmFjdG9yLCBib3R0b206IDE2ICogc2NhbGVGYWN0b3IgfSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge2VuZHNBdCA+IERhdGUubm93KCkgPyAoXG4gICAgICAgICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nIH19PlxuICAgICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICAgIHZhbHVlPVwiU3RyZWFtIGV4cGlyZXMgaW46XCJcbiAgICAgICAgICAgICAgY29sb3I9e0NvbG9yNC5mcm9tSGV4U3RyaW5nKCcjRkZGRkZGQjInKX1cbiAgICAgICAgICAgICAgZm9udFNpemU9ezE0ICogc2NhbGVGYWN0b3J9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICAgIHZhbHVlPXtmb3JtYXRUaW1lUmVtYWluaW5nKGVuZHNBdCl9XG4gICAgICAgICAgICAgIGNvbG9yPXtDb2xvcjQuZnJvbUhleFN0cmluZygnI0ZGRkZGRkIyJyl9XG4gICAgICAgICAgICAgIGZvbnRTaXplPXsxNCAqIHNjYWxlRmFjdG9yfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogMTAgKiBzY2FsZUZhY3RvciB9LFxuICAgICAgICAgICAgICBib3JkZXJXaWR0aDogMixcbiAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6IENvbG9yNC5HcmVlbigpLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICB3aWR0aDogMTUgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1ICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA0ICogc2NhbGVGYWN0b3IsIHRvcDogNCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICAgICAgc3JjOiBFUlJPUl9JQ09OLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICAgIGZvbnRTaXplPXsxNCAqIHNjYWxlRmFjdG9yfVxuICAgICAgICAgICAgICB0ZXh0QWxpZ249XCJtaWRkbGUtbGVmdFwiXG4gICAgICAgICAgICAgIGNvbG9yPXtDb2xvcjQuZnJvbUhleFN0cmluZygnI0ZGMDAwMCcpfVxuICAgICAgICAgICAgICB2YWx1ZT1cIlN0cmVhbSB0aW1lZCBvdXQuIFBsZWFzZSByZXN0YXJ0IHN0cmVhbSBpbiBicm9hZGNhc3Rpbmcgc29mdHdhcmUuXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICAgKX1cbiAgICAgICAge3ZpZGVvPy5zcmMgPT09IExJVkVLSVRfU1RSRUFNX1NSQyAmJiBzdGF0ZS52aWRlb0NvbnRyb2wuc2VsZWN0ZWRTdHJlYW0gPT09ICdsaXZlJyA/IChcbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfc2hhcmVfc2NyZWVuX2NsZWFyXCJcbiAgICAgICAgICAgIHZhbHVlPVwiPGI+RGVhY3RpdmF0ZTwvYj5cIlxuICAgICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgICAgZm9udFNpemU9ezE2ICogc2NhbGVGYWN0b3J9XG4gICAgICAgICAgICBjb2xvcj17Q29sb3I0LldoaXRlKCl9XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBtaW5XaWR0aDogMTIwICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgICAgIHBhZGRpbmc6IHsgbGVmdDogOCAqIHNjYWxlRmFjdG9yLCByaWdodDogOCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgY29udHJvbHMuc2V0U291cmNlKCcnKTtcbiAgICAgICAgICAgICAgc3RhdGUudmlkZW9Db250cm9sLnNlbGVjdGVkU3RyZWFtID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9zaGFyZV9zY3JlZW5fc2hhcmVcIlxuICAgICAgICAgICAgdmFsdWU9XCI8Yj5BY3RpdmF0ZTwvYj5cIlxuICAgICAgICAgICAgbGFiZWxUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgbWFyZ2luOiB7IGxlZnQ6IDIwICogc2NhbGVGYWN0b3IsIHJpZ2h0OiAyMCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgbWluV2lkdGg6IDEyMCAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGZvbnRTaXplPXsxNiAqIHNjYWxlRmFjdG9yfVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7IGNvbG9yOiBDT0xPUlMuU1VDQ0VTUyB9fVxuICAgICAgICAgICAgY29sb3I9e0NvbG9yNC5CbGFjaygpfVxuICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgY29udHJvbHMuc2V0U291cmNlKExJVkVLSVRfU1RSRUFNX1NSQyk7XG4gICAgICAgICAgICAgIHN0YXRlLnZpZGVvQ29udHJvbC5zZWxlY3RlZFN0cmVhbSA9ICdsaXZlJztcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVWlFbnRpdHk+XG4gICAgICA8VmlkZW9Db250cm9sVm9sdW1lXG4gICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICBsYWJlbD1cIjxiPlN0cmVhbSBWb2x1bWU8L2I+XCJcbiAgICAgICAgZW50aXR5PXtlbnRpdHl9XG4gICAgICAgIHZpZGVvPXt2aWRlb31cbiAgICAgIC8+XG4gICAgICA8VWlFbnRpdHk+XG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfcmVzZXRfc3RyZWFtX2tleVwiXG4gICAgICAgICAgdmFsdWU9XCI8Yj5SZXNldCBTdHJlYW0gS2V5PC9iPlwiXG4gICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgIGZvbnRTaXplPXsxNiAqIHNjYWxlRmFjdG9yfVxuICAgICAgICAgIGNvbG9yPXtDb2xvcjQuZnJvbUhleFN0cmluZygnI0ZCM0IzQicpfVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggKiBzY2FsZUZhY3RvciwgdG9wOiAyMCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgICBwYWRkaW5nOiB7IGxlZnQ6IDggKiBzY2FsZUZhY3RvciwgcmlnaHQ6IDggKiBzY2FsZUZhY3RvciB9LFxuICAgICAgICAgIH19XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IG9uUmVzZXQoKX1cbiAgICAgICAgLz5cbiAgICAgIDwvVWlFbnRpdHk+XG4gICAgPC9VaUVudGl0eT5cbiAgKTtcbn1cblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGZvcm1hdCB0aW1lIHJlbWFpbmluZyAtIHNob3dzIGRheXMgaWYgPiAxIGRheSwgb3RoZXJ3aXNlIHNob3dzIGhoOm1tOnNzXG5mdW5jdGlvbiBmb3JtYXRUaW1lUmVtYWluaW5nKGVuZHNBdDogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgdGltZVJlbWFpbmluZyA9IE1hdGgubWF4KDAsIGVuZHNBdCAtIG5vdyk7XG5cbiAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IodGltZVJlbWFpbmluZyAvICgxMDAwICogNjAgKiA2MCAqIDI0KSk7XG5cbiAgaWYgKGRheXMgPj0gMSkge1xuICAgIHJldHVybiBgJHtkYXlzfSAke2RheXMgPT09IDEgPyAnZGF5JyA6ICdkYXlzJ31gO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcih0aW1lUmVtYWluaW5nIC8gKDEwMDAgKiA2MCAqIDYwKSk7XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoKHRpbWVSZW1haW5pbmcgJSAoMTAwMCAqIDYwICogNjApKSAvICgxMDAwICogNjApKTtcbiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcigodGltZVJlbWFpbmluZyAlICgxMDAwICogNjApKSAvIDEwMDApO1xuICAgIHJldHVybiBgJHtob3Vycy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OiR7bWludXRlcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OiR7c2Vjb25kcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgfVxufVxuIl19
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hvd1N0cmVhbUtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hZG1pbi10b29sa2l0LXVpL1ZpZGVvQ29udHJvbC9MaXZlU3RyZWFtL1Nob3dTdHJlYW1LZXkudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQztBQUM1QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxNQUFNLFlBQVksR0FBRztJQUNuQixPQUFPLEVBQUUsR0FBRyxXQUFXLHFD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QUcsR0FBRyxDQUFDLENBQUM7SUFFaEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRS9ELElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2QsT0FBTyxHQUFHLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xELENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNqRSxPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM5SCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvc2RrL21hdGgnO1xuaW1wb3J0IHR5cGUgeyBEZWVwUmVhZG9ubHlPYmplY3QsIEVudGl0eSwgSUVuZ2luZSwgUEJWaWRlb1BsYXllciB9IGZyb20gJ0BkY2wvZWNzJztcbmltcG9ydCBSZWFjdEVjcywgeyBVaUVudGl0eSwgTGFiZWwgfSBmcm9tICdAZGNsL3JlYWN0LWVjcyc7XG5pbXBvcnQgeyBDT0xPUlMgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBjcmVhdGVWaWRlb1BsYXllckNvbnRyb2xzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgVmlkZW9Db250cm9sVm9sdW1lIH0gZnJvbSAnLi4vVm9sdW1lQ29udHJvbCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9CdXR0b24nO1xuaW1wb3J0IHsgRmVlZGJhY2tCdXR0b24gfSBmcm9tICcuLi8uLi9GZWVkYmFja0J1dHRvbic7XG5pbXBvcnQgeyBMSVZFS0lUX1NUUkVBTV9TUkMgfSBmcm9tICcuLi8uLi8uLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBFUlJPUl9JQ09OIH0gZnJvbSAnLi4vLi4vRXJyb3InO1xuaW1wb3J0IHsgQ09OVEVOVF9VUkwgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0U3RyZWFtS2V5IH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IExvYWRpbmdEb3RzIH0gZnJvbSAnLi4vLi4vTG9hZGluZyc7XG5pbXBvcnQgeyBzdGFydFRpbWVvdXQsIHN0b3BUaW1lb3V0LCBzdGFydEludGVydmFsLCBzdG9wSW50ZXJ2YWwgfSBmcm9tICcuLi8uLi8uLi90aW1lcic7XG5pbXBvcnQgeyBzdGF0ZSB9IGZyb20gJy4uLy4uJztcbmltcG9ydCB7IGNvcHlUb0NsaXBib2FyZCB9IGZyb20gJ35zeXN0ZW0vUmVzdHJpY3RlZEFjdGlvbnMnO1xuXG5jb25zdCBTVFJFQU1fSUNPTlMgPSB7XG4gIGV5ZVNob3c6IGAke0NPTlRFTlRfVVJMfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9leWUucG5nYCxcbiAgZXllSGlkZTogYCR7Q09OVEVOVF9VUkx9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL2V5ZS1vZmYucG5nYCxcbn07XG5cbmNvbnN0IEFVVE9fSElERV9EVVJBVElPTl9TRUNPTkRTID0gMzA7XG5jb25zdCBTVFJFQU1fS0VZX1RJTUVPVVRfQUNUSU9OID0gJ3ZpZGVvX2NvbnRyb2xfc3RyZWFtX2tleV90aW1lb3V0JztcbmNvbnN0IFNUUkVBTV9LRVlfSU5URVJWQUxfQUNUSU9OID0gJ3ZpZGVvX2NvbnRyb2xfc3RyZWFtX2tleV9pbnRlcnZhbCc7XG5jb25zdCBSVE1QX1NFUlZFUl9VUkwgPSAncnRtcHM6Ly9kY2wucnRtcC5saXZla2l0LmNsb3VkL3gnO1xuXG5leHBvcnQgZnVuY3Rpb24gU2hvd1N0cmVhbUtleSh7XG4gIGVuZ2luZSxcbiAgdmlkZW8sXG4gIGVudGl0eSxcbiAgb25SZXNldCxcbiAgZW5kc0F0LFxufToge1xuICBlbmRzQXQ6IG51bWJlcjtcbiAgZW5naW5lOiBJRW5naW5lO1xuICBlbnRpdHk6IEVudGl0eTtcbiAgdmlkZW86IERlZXBSZWFkb25seU9iamVjdDxQQlZpZGVvUGxheWVyPiB8IHVuZGVmaW5lZDtcbiAgb25SZXNldCgpOiB2b2lkO1xufSkge1xuICBjb25zdCBjb250cm9scyA9IGNyZWF0ZVZpZGVvUGxheWVyQ29udHJvbHMoZW50aXR5LCBlbmdpbmUpO1xuICBjb25zdCBbc2hvd1N0cmVhbWtleSwgc2V0U2hvd1N0cmVhbWtleV0gPSBSZWFjdEVjcy51c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IFJlYWN0RWNzLnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3N0cmVhbUtleSwgc2V0U3RyZWFtS2V5XSA9IFJlYWN0RWNzLnVzZVN0YXRlPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3QgW3RpbWVSZW1haW5pbmcsIHNldFRpbWVSZW1haW5pbmddID0gUmVhY3RFY3MudXNlU3RhdGUoQVVUT19ISURFX0RVUkFUSU9OX1NFQ09ORFMpO1xuXG4gIC8vIGF1dG8taGlkZSBzdHJlYW0ga2V5IGFmdGVyIHNwZWNpZmllZCBkdXJhdGlvblxuICBSZWFjdEVjcy51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzdHJlYW1LZXkpIHtcbiAgICAgIHNldFRpbWVSZW1haW5pbmcoQVVUT19ISURFX0RVUkFUSU9OX1NFQ09ORFMpO1xuXG4gICAgICBzdGFydFRpbWVvdXQoXG4gICAgICAgIHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5LFxuICAgICAgICBTVFJFQU1fS0VZX1RJTUVPVVRfQUNUSU9OLFxuICAgICAgICBBVVRPX0hJREVfRFVSQVRJT05fU0VDT05EUyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHNldFN0cmVhbUtleSh1bmRlZmluZWQpO1xuICAgICAgICAgIHNldFNob3dTdHJlYW1rZXkoZmFsc2UpO1xuICAgICAgICAgIHNldFRpbWVSZW1haW5pbmcoMCk7XG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBzdGFydEludGVydmFsKHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5LCBTVFJFQU1fS0VZX0lOVEVSVkFMX0FDVElPTiwgMC4xLCAoKSA9PiB7XG4gICAgICAgIHNldFRpbWVSZW1haW5pbmcocHJldiA9PiBNYXRoLm1heCgwLCBwcmV2IC0gMC4xKSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgc3RvcFRpbWVvdXQoc3RhdGUuYWRtaW5Ub29sa2l0VWlFbnRpdHksIFNUUkVBTV9LRVlfVElNRU9VVF9BQ1RJT04pO1xuICAgICAgICBzdG9wSW50ZXJ2YWwoc3RhdGUuYWRtaW5Ub29sa2l0VWlFbnRpdHksIFNUUkVBTV9LRVlfSU5URVJWQUxfQUNUSU9OKTtcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFRpbWVSZW1haW5pbmcoMCk7XG4gICAgfVxuICB9LCBbc3RyZWFtS2V5XSk7XG5cbiAgcmV0dXJuIChcbiAgICA8VWlFbnRpdHkgdWlUcmFuc2Zvcm09e3sgZmxleERpcmVjdGlvbjogJ2NvbHVtbicgfX0+XG4gICAgICA8TGFiZWxcbiAgICAgICAgdmFsdWU9XCI8Yj5SVE1QIFNlcnZlcjwvYj5cIlxuICAgICAgICBjb2xvcj17Q29sb3I0LldoaXRlKCl9XG4gICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBtYXJnaW46IHsgdG9wOiAxNiwgYm90dG9tOiA4IH0sXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICBtYXJnaW46IHsgYm90dG9tOiA4LCB0b3A6IDggfSxcbiAgICAgICAgICBoZWlnaHQ6IDQyLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogMTIsXG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgfX1cbiAgICAgICAgdWlCYWNrZ3JvdW5kPXt7IGNvbG9yOiBDb2xvcjQuV2hpdGUoKSB9fVxuICAgICAgPlxuICAgICAgICA8TGFiZWxcbiAgICAgICAgICB1aVRyYW5zZm9ybT17eyBtYXJnaW46IHsgbGVmdDogMTYgfSB9fVxuICAgICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgICB2YWx1ZT17YDxiPiR7UlRNUF9TRVJWRVJfVVJMfTwvYj5gfVxuICAgICAgICAgIGNvbG9yPXtDb2xvcjQuZnJvbUhleFN0cmluZygnI0EwOUJBOCcpfVxuICAgICAgICAvPlxuICAgICAgICA8RmVlZGJhY2tCdXR0b25cbiAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfY29weV9ydG1wX3NlcnZlclwiXG4gICAgICAgICAgdmFsdWU9XCI8Yj5Db3B5PC9iPlwiXG4gICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA4IH0sXG4gICAgICAgICAgICBwYWRkaW5nOiB7IGxlZnQ6IDgsIHJpZ2h0OiA4IH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17YXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgY29weVRvQ2xpcGJvYXJkKHsgdGV4dDogUlRNUF9TRVJWRVJfVVJMIH0pO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgICAgPExhYmVsXG4gICAgICAgIHZhbHVlPVwiPGI+U3RyZWFtIEtleTwvYj5cIlxuICAgICAgICBjb2xvcj17Q29sb3I0LldoaXRlKCl9XG4gICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBtYXJnaW46IHsgdG9wOiAxNiwgYm90dG9tOiA4IH0sXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICBtYXJnaW46IHsgYm90dG9tOiA4LCB0b3A6IDggfSxcbiAgICAgICAgICBoZWlnaHQ6IDQyLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogMTIsXG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgfX1cbiAgICAgICAgdWlCYWNrZ3JvdW5kPXt7IGNvbG9yOiBDb2xvcjQuV2hpdGUoKSB9fVxuICAgICAgPlxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnZmxleC1zdGFydCcsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtsb2FkaW5nID8gKFxuICAgICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiB7IGxlZnQ6IDE2IH0sXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxMb2FkaW5nRG90cyBlbmdpbmU9e2VuZ2luZX0gLz5cbiAgICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxMYWJlbFxuICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgIG1hcmdpbjogeyBsZWZ0OiAxNiB9LFxuICAgICAgICAgICAgICAgIGZsZXhTaHJpbms6IDEsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgICAgICAgdmFsdWU9e2A8Yj4ke3Nob3dTdHJlYW1rZXkgJiYgc3RyZWFtS2V5ID8gc3RyZWFtS2V5IDogJyoqKioqKioqKioqKid9PC9iPmB9XG4gICAgICAgICAgICAgIGNvbG9yPXtDb2xvcjQuZnJvbUhleFN0cmluZygnI0EwOUJBOCcpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1VpRW50aXR5PlxuXG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgZmxleFNocmluazogMCxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICB3aWR0aDogMjUsXG4gICAgICAgICAgICAgIGhlaWdodDogMjUsXG4gICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogMTAgfSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICAgIHNyYzogc2hvd1N0cmVhbWtleSAmJiBzdHJlYW1LZXkgPyBTVFJFQU1fSUNPTlMuZXllSGlkZSA6IFNUUkVBTV9JQ09OUy5leWVTaG93LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBjb2xvcjogQ29sb3I0LkJsYWNrKCksXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25Nb3VzZURvd249e2FzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFzdHJlYW1LZXkpIHtcbiAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IFtlcnJvciwgZGF0YV0gPSBhd2FpdCBnZXRTdHJlYW1LZXkoKTtcbiAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBpZiAoIWVycm9yICYmIGRhdGE/LnN0cmVhbWluZ0tleSkge1xuICAgICAgICAgICAgICAgICAgc2V0U3RyZWFtS2V5KGRhdGEuc3RyZWFtaW5nS2V5KTtcbiAgICAgICAgICAgICAgICAgIHNldFNob3dTdHJlYW1rZXkodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldFNob3dTdHJlYW1rZXkoIXNob3dTdHJlYW1rZXkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEZlZWRiYWNrQnV0dG9uXG4gICAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfY29weV9zdHJlYW1fa2V5XCJcbiAgICAgICAgICAgIHZhbHVlPVwiPGI+Q29weTwvYj5cIlxuICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA4IH0sXG4gICAgICAgICAgICAgIHBhZGRpbmc6IHsgbGVmdDogOCwgcmlnaHQ6IDggfSxcbiAgICAgICAgICAgICAgbWluV2lkdGg6IDYwLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXthc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChzdHJlYW1LZXkpIHtcbiAgICAgICAgICAgICAgICBjb3B5VG9DbGlwYm9hcmQoeyB0ZXh0OiBzdHJlYW1LZXkgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBbZXJyb3IsIGRhdGFdID0gYXdhaXQgZ2V0U3RyZWFtS2V5KCk7XG4gICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFlcnJvciAmJiBkYXRhPy5zdHJlYW1pbmdLZXkpIHtcbiAgICAgICAgICAgICAgICAgIHNldFN0cmVhbUtleShkYXRhLnN0cmVhbWluZ0tleSk7XG4gICAgICAgICAgICAgICAgICBjb3B5VG9DbGlwYm9hcmQoeyB0ZXh0OiBkYXRhLnN0cmVhbWluZ0tleSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgIDwvVWlFbnRpdHk+XG5cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgaGVpZ2h0OiA0LFxuICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDggfSxcbiAgICAgICAgICBkaXNwbGF5OiBzdHJlYW1LZXkgJiYgdGltZVJlbWFpbmluZyA+IDAgJiYgc2hvd1N0cmVhbWtleSA/ICdmbGV4JyA6ICdub25lJyxcbiAgICAgICAgfX1cbiAgICAgICAgdWlCYWNrZ3JvdW5kPXt7IGNvbG9yOiBDb2xvcjQuZnJvbUhleFN0cmluZygnI0ZGRkZGRjFBJykgfX1cbiAgICAgID5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiBgJHsodGltZVJlbWFpbmluZyAvIEFVVE9fSElERV9EVVJBVElPTl9TRUNPTkRTKSAqIDEwMH0lYCxcbiAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7IGNvbG9yOiBDb2xvcjQuZnJvbUhleFN0cmluZygnIzAwRDNGRicpIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuXG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIGhlaWdodDogNDAsXG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBtYXJnaW46IHsgdG9wOiAxMCwgYm90dG9tOiAxNiB9LFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7ZW5kc0F0ID4gRGF0ZS5ub3coKSA/IChcbiAgICAgICAgICA8VWlFbnRpdHkgdWlUcmFuc2Zvcm09e3sgZmxleERpcmVjdGlvbjogJ2NvbHVtbicgfX0+XG4gICAgICAgICAgICA8TGFiZWxcbiAgICAgICAgICAgICAgdmFsdWU9XCJTdHJlYW0gZXhwaXJlcyBpbjpcIlxuICAgICAgICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNGRkZGRkZCMicpfVxuICAgICAgICAgICAgICBmb250U2l6ZT17MTR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICAgIHZhbHVlPXtmb3JtYXRUaW1lUmVtYWluaW5nKGVuZHNBdCl9XG4gICAgICAgICAgICAgIGNvbG9yPXtDb2xvcjQuZnJvbUhleFN0cmluZygnI0ZGRkZGRkIyJyl9XG4gICAgICAgICAgICAgIGZvbnRTaXplPXsxNH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDEwIH0sXG4gICAgICAgICAgICAgIGJvcmRlcldpZHRoOiAyLFxuICAgICAgICAgICAgICBib3JkZXJDb2xvcjogQ29sb3I0LkdyZWVuKCksXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1LFxuICAgICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogNCwgdG9wOiA0IH0sXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICAgICAgc3JjOiBFUlJPUl9JQ09OLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICAgIGZvbnRTaXplPXsxNH1cbiAgICAgICAgICAgICAgdGV4dEFsaWduPVwibWlkZGxlLWxlZnRcIlxuICAgICAgICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNGRjAwMDAnKX1cbiAgICAgICAgICAgICAgdmFsdWU9XCJTdHJlYW0gdGltZWQgb3V0LiBQbGVhc2UgcmVzdGFydCBzdHJlYW0gaW4gYnJvYWRjYXN0aW5nIHNvZnR3YXJlLlwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICl9XG4gICAgICAgIHt2aWRlbz8uc3JjID09PSBMSVZFS0lUX1NUUkVBTV9TUkMgJiYgc3RhdGUudmlkZW9Db250cm9sLnNlbGVjdGVkU3RyZWFtID09PSAnbGl2ZScgPyAoXG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3NoYXJlX3NjcmVlbl9jbGVhclwiXG4gICAgICAgICAgICB2YWx1ZT1cIjxiPkRlYWN0aXZhdGU8L2I+XCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgICAgIGNvbG9yPXtDb2xvcjQuV2hpdGUoKX1cbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIG1pbldpZHRoOiAxMjAsXG4gICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCB9LFxuICAgICAgICAgICAgICBwYWRkaW5nOiB7IGxlZnQ6IDgsIHJpZ2h0OiA4IH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgY29udHJvbHMuc2V0U291cmNlKCcnKTtcbiAgICAgICAgICAgICAgc3RhdGUudmlkZW9Db250cm9sLnNlbGVjdGVkU3RyZWFtID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9zaGFyZV9zY3JlZW5fc2hhcmVcIlxuICAgICAgICAgICAgdmFsdWU9XCI8Yj5BY3RpdmF0ZTwvYj5cIlxuICAgICAgICAgICAgbGFiZWxUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgbWFyZ2luOiB7IGxlZnQ6IDIwLCByaWdodDogMjAgfSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBtaW5XaWR0aDogMTIwLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgICAgIHVpQmFja2dyb3VuZD17eyBjb2xvcjogQ09MT1JTLlNVQ0NFU1MgfX1cbiAgICAgICAgICAgIGNvbG9yPXtDb2xvcjQuQmxhY2soKX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnRyb2xzLnNldFNvdXJjZShMSVZFS0lUX1NUUkVBTV9TUkMpO1xuICAgICAgICAgICAgICBzdGF0ZS52aWRlb0NvbnRyb2wuc2VsZWN0ZWRTdHJlYW0gPSAnbGl2ZSc7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1VpRW50aXR5PlxuICAgICAgPFZpZGVvQ29udHJvbFZvbHVtZVxuICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgbGFiZWw9XCI8Yj5TdHJlYW0gVm9sdW1lPC9iPlwiXG4gICAgICAgIGVudGl0eT17ZW50aXR5fVxuICAgICAgICB2aWRlbz17dmlkZW99XG4gICAgICAvPlxuICAgICAgPFVpRW50aXR5PlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3Jlc2V0X3N0cmVhbV9rZXlcIlxuICAgICAgICAgIHZhbHVlPVwiPGI+UmVzZXQgU3RyZWFtIEtleTwvYj5cIlxuICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgICAgY29sb3I9e0NvbG9yNC5mcm9tSGV4U3RyaW5nKCcjRkIzQjNCJyl9XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCwgdG9wOiAyMCB9LFxuICAgICAgICAgICAgcGFkZGluZzogeyBsZWZ0OiA4LCByaWdodDogOCB9LFxuICAgICAgICAgIH19XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IG9uUmVzZXQoKX1cbiAgICAgICAgLz5cbiAgICAgIDwvVWlFbnRpdHk+XG4gICAgPC9VaUVudGl0eT5cbiAgKTtcbn1cblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGZvcm1hdCB0aW1lIHJlbWFpbmluZyAtIHNob3dzIGRheXMgaWYgPiAxIGRheSwgb3RoZXJ3aXNlIHNob3dzIGhoOm1tOnNzXG5mdW5jdGlvbiBmb3JtYXRUaW1lUmVtYWluaW5nKGVuZHNBdDogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgdGltZVJlbWFpbmluZyA9IE1hdGgubWF4KDAsIGVuZHNBdCAtIG5vdyk7XG5cbiAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IodGltZVJlbWFpbmluZyAvICgxMDAwICogNjAgKiA2MCAqIDI0KSk7XG5cbiAgaWYgKGRheXMgPj0gMSkge1xuICAgIHJldHVybiBgJHtkYXlzfSAke2RheXMgPT09IDEgPyAnZGF5JyA6ICdkYXlzJ31gO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcih0aW1lUmVtYWluaW5nIC8gKDEwMDAgKiA2MCAqIDYwKSk7XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoKHRpbWVSZW1haW5pbmcgJSAoMTAwMCAqIDYwICogNjApKSAvICgxMDAwICogNjApKTtcbiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcigodGltZVJlbWFpbmluZyAlICgxMDAwICogNjApKSAvIDEwMDApO1xuICAgIHJldHVybiBgJHtob3Vycy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OiR7bWludXRlcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OiR7c2Vjb25kcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgfVxufVxuIl19
@@ -2,9 +2,8 @@ import { DeepReadonlyObject, Entity, IEngine, PBVideoPlayer } from '@dcl/ecs';
2
2
  import ReactEcs from '@dcl/react-ecs';
3
3
  export declare const LIVEKIT_STREAM_SRC = "livekit-video://current-stream";
4
4
  export declare const STREAMING_SUPPORT_URL = "https://docs.decentraland.org//creator/editor/live-streaming";
5
- export declare function LiveStream({ engine, scaleFactor, entity, video, }: {
5
+ export declare function LiveStream({ engine, entity, video, }: {
6
6
  engine: IEngine;
7
- scaleFactor: number;
8
7
  entity: Entity;
9
8
  video: DeepReadonlyObject<PBVideoPlayer> | undefined;
10
9
  }): ReactEcs.JSX.Element;
@@ -13,7 +13,7 @@ import { openExternalUrl } from '~system/RestrictedActions';
13
13
  import { HELP_ICON } from '../VideoUrl';
14
14
  export const LIVEKIT_STREAM_SRC = 'livekit-video://current-stream';
15
15
  export const STREAMING_SUPPORT_URL = 'https://docs.decentraland.org//creator/editor/live-streaming';
16
- export function LiveStream({ engine, scaleFactor, entity, video, }) {
16
+ export function LiveStream({ engine, entity, video, }) {
17
17
  const [showResetStreamKey, setResetStreamKey] = ReactEcs.useState(false);
18
18
  const [loading, setLoading] = ReactEcs.useState(false);
19
19
  const [hasStreamKey, setHasStreamKey] = ReactEcs.useState(false);
@@ -38,16 +38,16 @@ export function LiveStream({ engine, scaleFactor, entity, video, }) {
38
38
  streamKeyFn();
39
39
  }, []);
40
40
  if (showResetStreamKey) {
41
- return (ReactEcs.createElement(DeleteStreamKeyConfirmation, { scaleFactor: scaleFactor, engine: engine, onCancel: () => setResetStreamKey(false), onReset: () => {
41
+ return (ReactEcs.createElement(DeleteStreamKeyConfirmation, { engine: engine, onCancel: () => setResetStreamKey(false), onReset: () => {
42
42
  setResetStreamKey(false);
43
43
  } }));
44
44
  }
45
45
  return (ReactEcs.createElement(UiEntity, { uiTransform: { flexDirection: 'column', width: '100%' } },
46
46
  ReactEcs.createElement(UiEntity, { uiTransform: { width: '100%', justifyContent: 'space-between' } },
47
- ReactEcs.createElement(Header, { iconSrc: ICONS.LIVE_SOURCE, title: "Stream", scaleFactor: scaleFactor }),
47
+ ReactEcs.createElement(Header, { iconSrc: ICONS.LIVE_SOURCE, title: "Stream" }),
48
48
  ReactEcs.createElement(UiEntity, { onMouseDown: () => openExternalUrl({ url: STREAMING_SUPPORT_URL }), uiTransform: {
49
- width: 25 * scaleFactor,
50
- height: 25 * scaleFactor,
49
+ width: 25,
50
+ height: 25,
51
51
  alignItems: 'center',
52
52
  }, uiBackground: {
53
53
  textureMode: 'stretch',
@@ -56,8 +56,8 @@ export function LiveStream({ engine, scaleFactor, entity, video, }) {
56
56
  src: HELP_ICON,
57
57
  },
58
58
  } })),
59
- ReactEcs.createElement(Label, { textAlign: "middle-left", value: "Use the RTMP server and stream key below in your broadcasting software to start streaming to this screen.", color: Color4.fromHexString('#A09BA8'), fontSize: 16 * scaleFactor }),
60
- loading ? (ReactEcs.createElement(LoadingDots, { uiTransform: { minHeight: 400 * scaleFactor }, scaleFactor: scaleFactor, engine: engine })) : hasStreamKey ? (ReactEcs.createElement(ShowStreamKey, { endsAt: streamKeyEndsAt ?? 0, scaleFactor: scaleFactor, engine: engine, entity: entity, video: video, onReset: () => setResetStreamKey(true) })) : (ReactEcs.createElement(GenerateStreamKey, { scaleFactor: scaleFactor, engine: engine, onGenerate: () => setHasStreamKey(true) })),
61
- !hasStreamKey && (ReactEcs.createElement(Label, { fontSize: 14 * scaleFactor, color: Color4.fromHexString('#FF2D55'), value: "Do not share your stream key with anyone, and be careful not to display it on screen while streaming." }))));
59
+ ReactEcs.createElement(Label, { textAlign: "middle-left", value: "Use the RTMP server and stream key below in your broadcasting software to start streaming to this screen.", color: Color4.fromHexString('#A09BA8'), fontSize: 16 }),
60
+ loading ? (ReactEcs.createElement(LoadingDots, { uiTransform: { minHeight: 400 }, engine: engine })) : hasStreamKey ? (ReactEcs.createElement(ShowStreamKey, { endsAt: streamKeyEndsAt ?? 0, engine: engine, entity: entity, video: video, onReset: () => setResetStreamKey(true) })) : (ReactEcs.createElement(GenerateStreamKey, { engine: engine, onGenerate: () => setHasStreamKey(true) })),
61
+ !hasStreamKey && (ReactEcs.createElement(Label, { fontSize: 14, color: Color4.fromHexString('#FF2D55'), value: "Do not share your stream key with anyone, and be careful not to display it on screen while streaming." }))));
62
62
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9WaWRlb0NvbnRyb2wvTGl2ZVN0cmVhbS9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyw4REFBOEQsQ0FBQztBQUVwRyxNQUFNLFVBQVUsVUFBVSxDQUFDLEVBQ3pCLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssR0FNTjtJQUNDLE1BQU0sQ0FBQyxrQkFB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akgsS0FBSyxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQ3RDLFFBQVEsRUFBRSxFQUFFLEdBQUcsV0FBVyxHQUMxQjtRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FDVCx1QkFBQyxXQUFXLElBQ1YsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsR0FBRyxXQUFXLEVBQUUsRUFDN0MsV0FBVyxFQUFFLFdBQVcsRUFDeEIsTUFBTSxFQUFFLE1BQU0sR0FDZCxDQUNILENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FDakIsdUJBQUMsYUFBYSxJQUNaLE1BQU0sRUFBRSxlQUFlLElBQUksQ0FBQyxFQUM1QixXQUFXLEVBQUUsV0FBVyxFQUN4QixNQUFNLEVBQUUsTUFBTSxFQUNkLE1BQU0sRUFBRSxNQUFNLEVBQ2QsS0FBSyxFQUFFLEtBQUssRUFDWixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQ3RDLENBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FDRix1QkFBQyxpQkFBaUIsSUFDaEIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUN2QyxDQUNIO1FBQ0EsQ0FBQyxZQUFZLElBQUksQ0FDaEIsdUJBQUMsS0FBSyxJQUNKLFFBQVEsRUFBRSxFQUFFLEdBQUcsV0FBVyxFQUMxQixLQUFLLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFDdEMsS0FBSyxFQUFDLHVHQUF1RyxHQUM3RyxDQUNILENBQ1EsQ0FDWixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvc2RrL21hdGgnO1xuaW1wb3J0IHsgRGVlcFJlYWRvbmx5T2JqZWN0LCBFbnRpdHksIElFbmdpbmUsIFBCVmlkZW9QbGF5ZXIgfSBmcm9tICdAZGNsL2Vjcyc7XG5pbXBvcnQgUmVhY3RFY3MsIHsgVWlFbnRpdHksIExhYmVsIH0gZnJvbSAnQGRjbC9yZWFjdC1lY3MnO1xuaW1wb3J0IHsgSUNPTlMgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBIZWFkZXIgfSBmcm9tICcuLi8uLi9IZWFkZXInO1xuaW1wb3J0IHsgU2hvd1N0cmVhbUtleSB9IGZyb20gJy4vU2hvd1N0cmVhbUtleSc7XG5pbXBvcnQgeyBHZW5lcmF0ZVN0cmVhbUtleSB9IGZyb20gJy4vR2VuZXJhdGVTdHJlYW1LZXknO1xuaW1wb3J0IHsgRGVsZXRlU3RyZWFtS2V5Q29uZmlybWF0aW9uIH0gZnJvbSAnLi9EZWxldGVTdHJlYW1LZXknO1xuaW1wb3J0IHsgc3RhdGUgfSBmcm9tICcuLi8uLic7XG5pbXBvcnQgeyBnZXRDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vLi4vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IHsgZ2V0U3RyZWFtS2V5IH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IExvYWRpbmdEb3RzIH0gZnJvbSAnLi4vLi4vTG9hZGluZyc7XG5pbXBvcnQgeyBvcGVuRXh0ZXJuYWxVcmwgfSBmcm9tICd+c3lzdGVtL1Jlc3RyaWN0ZWRBY3Rpb25zJztcbmltcG9ydCB7IEhFTFBfSUNPTiB9IGZyb20gJy4uL1ZpZGVvVXJsJztcblxuZXhwb3J0IGNvbnN0IExJVkVLSVRfU1RSRUFNX1NSQyA9ICdsaXZla2l0LXZpZGVvOi8vY3VycmVudC1zdHJlYW0nO1xuZXhwb3J0IGNvbnN0IFNUUkVBTUlOR19TVVBQT1JUX1VSTCA9ICdodHRwczovL2RvY3MuZGVjZW50cmFsYW5kLm9yZy8vY3JlYXRvci9lZGl0b3IvbGl2ZS1zdHJlYW1pbmcnO1xuXG5leHBvcnQgZnVuY3Rpb24gTGl2ZVN0cmVhbSh7XG4gIGVuZ2luZSxcbiAgc2NhbGVGYWN0b3IsXG4gIGVudGl0eSxcbiAgdmlkZW8sXG59OiB7XG4gIGVuZ2luZTogSUVuZ2luZTtcbiAgc2NhbGVGYWN0b3I6IG51bWJlcjtcbiAgZW50aXR5OiBFbnRpdHk7XG4gIHZpZGVvOiBEZWVwUmVhZG9ubHlPYmplY3Q8UEJWaWRlb1BsYXllcj4gfCB1bmRlZmluZWQ7XG59KSB7XG4gIGNvbnN0IFtzaG93UmVzZXRTdHJlYW1LZXksIHNldFJlc2V0U3RyZWFtS2V5XSA9IFJlYWN0RWNzLnVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gUmVhY3RFY3MudXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbaGFzU3RyZWFtS2V5LCBzZXRIYXNTdHJlYW1LZXldID0gUmVhY3RFY3MudXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCB7IFZpZGVvQ29udHJvbFN0YXRlIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSk7XG4gIGNvbnN0IHZpZGVvQ29udHJvbFN0YXRlID0gVmlkZW9Db250cm9sU3RhdGUuZ2V0T3JOdWxsKHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5KTtcbiAgY29uc3Qgc3RyZWFtS2V5RW5kc0F0ID0gdmlkZW9Db250cm9sU3RhdGU/LmVuZHNBdDtcblxuICBSZWFjdEVjcy51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGFzeW5jIGZ1bmN0aW9uIHN0cmVhbUtleUZuKCkge1xuICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgIGNvbnN0IFtlcnJvciwgZGF0YV0gPSBhd2FpdCBnZXRTdHJlYW1LZXkoKTtcbiAgICAgIGNvbnN0IHZpZGVvQ29udHJvbFN0YXRlID0gVmlkZW9Db250cm9sU3RhdGUuZ2V0TXV0YWJsZShzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSk7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgdmlkZW9Db250cm9sU3RhdGUuZW5kc0F0ID0gdW5kZWZpbmVkO1xuICAgICAgICBzZXRIYXNTdHJlYW1LZXkoZmFsc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmlkZW9Db250cm9sU3RhdGUuZW5kc0F0ID0gZGF0YT8uZW5kc0F0O1xuICAgICAgICBzZXRIYXNTdHJlYW1LZXkodHJ1ZSk7XG4gICAgICB9XG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICB9XG4gICAgc3RyZWFtS2V5Rm4oKTtcbiAgfSwgW10pO1xuXG4gIGlmIChzaG93UmVzZXRTdHJlYW1LZXkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPERlbGV0ZVN0cmVhbUtleUNvbmZpcm1hdGlvblxuICAgICAgICBzY2FsZUZhY3Rvcj17c2NhbGVGYWN0b3J9XG4gICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICBvbkNhbmNlbD17KCkgPT4gc2V0UmVzZXRTdHJlYW1LZXkoZmFsc2UpfVxuICAgICAgICBvblJlc2V0PXsoKSA9PiB7XG4gICAgICAgICAgc2V0UmVzZXRTdHJlYW1LZXkoZmFsc2UpO1xuICAgICAgICB9fVxuICAgICAgLz5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8VWlFbnRpdHkgdWlUcmFuc2Zvcm09e3sgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIHdpZHRoOiAnMTAwJScgfX0+XG4gICAgICA8VWlFbnRpdHkgdWlUcmFuc2Zvcm09e3sgd2lkdGg6ICcxMDAlJywganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyB9fT5cbiAgICAgICAgPEhlYWRlclxuICAgICAgICAgIGljb25TcmM9e0lDT05TLkxJVkVfU09VUkNFfVxuICAgICAgICAgIHRpdGxlPVwiU3RyZWFtXCJcbiAgICAgICAgICBzY2FsZUZhY3Rvcj17c2NhbGVGYWN0b3J9XG4gICAgICAgIC8+XG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiBvcGVuRXh0ZXJuYWxVcmwoeyB1cmw6IFNUUkVBTUlOR19TVVBQT1JUX1VSTCB9KX1cbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IDI1ICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICBoZWlnaHQ6IDI1ICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICAgIGNvbG9yOiBDb2xvcjQuV2hpdGUoKSxcbiAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgc3JjOiBIRUxQX0lDT04sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgICAgPExhYmVsXG4gICAgICAgIHRleHRBbGlnbj1cIm1pZGRsZS1sZWZ0XCJcbiAgICAgICAgdmFsdWU9XCJVc2UgdGhlIFJUTVAgc2VydmVyIGFuZCBzdHJlYW0ga2V5IGJlbG93IGluIHlvdXIgYnJvYWRjYXN0aW5nIHNvZnR3YXJlIHRvIHN0YXJ0IHN0cmVhbWluZyB0byB0aGlzIHNjcmVlbi5cIlxuICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNBMDlCQTgnKX1cbiAgICAgICAgZm9udFNpemU9ezE2ICogc2NhbGVGYWN0b3J9XG4gICAgICAvPlxuICAgICAge2xvYWRpbmcgPyAoXG4gICAgICAgIDxMb2FkaW5nRG90c1xuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7IG1pbkhlaWdodDogNDAwICogc2NhbGVGYWN0b3IgfX1cbiAgICAgICAgICBzY2FsZUZhY3Rvcj17c2NhbGVGYWN0b3J9XG4gICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgIC8+XG4gICAgICApIDogaGFzU3RyZWFtS2V5ID8gKFxuICAgICAgICA8U2hvd1N0cmVhbUtleVxuICAgICAgICAgIGVuZHNBdD17c3RyZWFtS2V5RW5kc0F0ID8/IDB9XG4gICAgICAgICAgc2NhbGVGYWN0b3I9e3NjYWxlRmFjdG9yfVxuICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgIGVudGl0eT17ZW50aXR5fVxuICAgICAgICAgIHZpZGVvPXt2aWRlb31cbiAgICAgICAgICBvblJlc2V0PXsoKSA9PiBzZXRSZXNldFN0cmVhbUtleSh0cnVlKX1cbiAgICAgICAgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxHZW5lcmF0ZVN0cmVhbUtleVxuICAgICAgICAgIHNjYWxlRmFjdG9yPXtzY2FsZUZhY3Rvcn1cbiAgICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgICBvbkdlbmVyYXRlPXsoKSA9PiBzZXRIYXNTdHJlYW1LZXkodHJ1ZSl9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAgeyFoYXNTdHJlYW1LZXkgJiYgKFxuICAgICAgICA8TGFiZWxcbiAgICAgICAgICBmb250U2l6ZT17MTQgKiBzY2FsZUZhY3Rvcn1cbiAgICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNGRjJENTUnKX1cbiAgICAgICAgICB2YWx1ZT1cIkRvIG5vdCBzaGFyZSB5b3VyIHN0cmVhbSBrZXkgd2l0aCBhbnlvbmUsIGFuZCBiZSBjYXJlZnVsIG5vdCB0byBkaXNwbGF5IGl0IG9uIHNjcmVlbiB3aGlsZSBzdHJlYW1pbmcuXCJcbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9VaUVudGl0eT5cbiAgKTtcbn1cbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9WaWRlb0NvbnRyb2wvTGl2ZVN0cmVhbS9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyw4REFBOEQsQ0FBQztBQUVwRyxNQUFNLFVBQVUsVUFBVSxDQUFDLEVBQ3pCLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxHQUtOO0lBQ0MsTUFBTSxDQUFDLGtCQUFrQixFQUFFLGlC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T0FBTyxDQUFDLENBQUMsQ0FBQyxDQUNULHVCQUFDLFdBQVcsSUFDVixXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEVBQy9CLE1BQU0sRUFBRSxNQUFNLEdBQ2QsQ0FDSCxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQ2pCLHVCQUFDLGFBQWEsSUFDWixNQUFNLEVBQUUsZUFBZSxJQUFJLENBQUMsRUFDNUIsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLEVBQUUsTUFBTSxFQUNkLEtBQUssRUFBRSxLQUFLLEVBQ1osT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUN0QyxDQUNILENBQUMsQ0FBQyxDQUFDLENBQ0YsdUJBQUMsaUJBQWlCLElBQ2hCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FDdkMsQ0FDSDtRQUNBLENBQUMsWUFBWSxJQUFJLENBQ2hCLHVCQUFDLEtBQUssSUFDSixRQUFRLEVBQUUsRUFBRSxFQUNaLEtBQUssRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUN0QyxLQUFLLEVBQUMsdUdBQXVHLEdBQzdHLENBQ0gsQ0FDUSxDQUNaLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3I0IH0gZnJvbSAnQGRjbC9zZGsvbWF0aCc7XG5pbXBvcnQgeyBEZWVwUmVhZG9ubHlPYmplY3QsIEVudGl0eSwgSUVuZ2luZSwgUEJWaWRlb1BsYXllciB9IGZyb20gJ0BkY2wvZWNzJztcbmltcG9ydCBSZWFjdEVjcywgeyBVaUVudGl0eSwgTGFiZWwgfSBmcm9tICdAZGNsL3JlYWN0LWVjcyc7XG5pbXBvcnQgeyBJQ09OUyB9IGZyb20gJy4uJztcbmltcG9ydCB7IEhlYWRlciB9IGZyb20gJy4uLy4uL0hlYWRlcic7XG5pbXBvcnQgeyBTaG93U3RyZWFtS2V5IH0gZnJvbSAnLi9TaG93U3RyZWFtS2V5JztcbmltcG9ydCB7IEdlbmVyYXRlU3RyZWFtS2V5IH0gZnJvbSAnLi9HZW5lcmF0ZVN0cmVhbUtleSc7XG5pbXBvcnQgeyBEZWxldGVTdHJlYW1LZXlDb25maXJtYXRpb24gfSBmcm9tICcuL0RlbGV0ZVN0cmVhbUtleSc7XG5pbXBvcnQgeyBzdGF0ZSB9IGZyb20gJy4uLy4uJztcbmltcG9ydCB7IGdldENvbXBvbmVudHMgfSBmcm9tICcuLi8uLi8uLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBnZXRTdHJlYW1LZXkgfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHsgTG9hZGluZ0RvdHMgfSBmcm9tICcuLi8uLi9Mb2FkaW5nJztcbmltcG9ydCB7IG9wZW5FeHRlcm5hbFVybCB9IGZyb20gJ35zeXN0ZW0vUmVzdHJpY3RlZEFjdGlvbnMnO1xuaW1wb3J0IHsgSEVMUF9JQ09OIH0gZnJvbSAnLi4vVmlkZW9VcmwnO1xuXG5leHBvcnQgY29uc3QgTElWRUtJVF9TVFJFQU1fU1JDID0gJ2xpdmVraXQtdmlkZW86Ly9jdXJyZW50LXN0cmVhbSc7XG5leHBvcnQgY29uc3QgU1RSRUFNSU5HX1NVUFBPUlRfVVJMID0gJ2h0dHBzOi8vZG9jcy5kZWNlbnRyYWxhbmQub3JnLy9jcmVhdG9yL2VkaXRvci9saXZlLXN0cmVhbWluZyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBMaXZlU3RyZWFtKHtcbiAgZW5naW5lLFxuICBlbnRpdHksXG4gIHZpZGVvLFxufToge1xuICBlbmdpbmU6IElFbmdpbmU7XG4gIGVudGl0eTogRW50aXR5O1xuICB2aWRlbzogRGVlcFJlYWRvbmx5T2JqZWN0PFBCVmlkZW9QbGF5ZXI+IHwgdW5kZWZpbmVkO1xufSkge1xuICBjb25zdCBbc2hvd1Jlc2V0U3RyZWFtS2V5LCBzZXRSZXNldFN0cmVhbUtleV0gPSBSZWFjdEVjcy51c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IFJlYWN0RWNzLnVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW2hhc1N0cmVhbUtleSwgc2V0SGFzU3RyZWFtS2V5XSA9IFJlYWN0RWNzLnVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgeyBWaWRlb0NvbnRyb2xTdGF0ZSB9ID0gZ2V0Q29tcG9uZW50cyhlbmdpbmUpO1xuICBjb25zdCB2aWRlb0NvbnRyb2xTdGF0ZSA9IFZpZGVvQ29udHJvbFN0YXRlLmdldE9yTnVsbChzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSk7XG4gIGNvbnN0IHN0cmVhbUtleUVuZHNBdCA9IHZpZGVvQ29udHJvbFN0YXRlPy5lbmRzQXQ7XG5cbiAgUmVhY3RFY3MudXNlRWZmZWN0KCgpID0+IHtcbiAgICBhc3luYyBmdW5jdGlvbiBzdHJlYW1LZXlGbigpIHtcbiAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICBjb25zdCBbZXJyb3IsIGRhdGFdID0gYXdhaXQgZ2V0U3RyZWFtS2V5KCk7XG4gICAgICBjb25zdCB2aWRlb0NvbnRyb2xTdGF0ZSA9IFZpZGVvQ29udHJvbFN0YXRlLmdldE11dGFibGUoc3RhdGUuYWRtaW5Ub29sa2l0VWlFbnRpdHkpO1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHZpZGVvQ29udHJvbFN0YXRlLmVuZHNBdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgc2V0SGFzU3RyZWFtS2V5KGZhbHNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZpZGVvQ29udHJvbFN0YXRlLmVuZHNBdCA9IGRhdGE/LmVuZHNBdDtcbiAgICAgICAgc2V0SGFzU3RyZWFtS2V5KHRydWUpO1xuICAgICAgfVxuICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgfVxuICAgIHN0cmVhbUtleUZuKCk7XG4gIH0sIFtdKTtcblxuICBpZiAoc2hvd1Jlc2V0U3RyZWFtS2V5KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxEZWxldGVTdHJlYW1LZXlDb25maXJtYXRpb25cbiAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgIG9uQ2FuY2VsPXsoKSA9PiBzZXRSZXNldFN0cmVhbUtleShmYWxzZSl9XG4gICAgICAgIG9uUmVzZXQ9eygpID0+IHtcbiAgICAgICAgICBzZXRSZXNldFN0cmVhbUtleShmYWxzZSk7XG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxVaUVudGl0eSB1aVRyYW5zZm9ybT17eyBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgd2lkdGg6ICcxMDAlJyB9fT5cbiAgICAgIDxVaUVudGl0eSB1aVRyYW5zZm9ybT17eyB3aWR0aDogJzEwMCUnLCBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nIH19PlxuICAgICAgICA8SGVhZGVyXG4gICAgICAgICAgaWNvblNyYz17SUNPTlMuTElWRV9TT1VSQ0V9XG4gICAgICAgICAgdGl0bGU9XCJTdHJlYW1cIlxuICAgICAgICAvPlxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4gb3BlbkV4dGVybmFsVXJsKHsgdXJsOiBTVFJFQU1JTkdfU1VQUE9SVF9VUkwgfSl9XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiAyNSxcbiAgICAgICAgICAgIGhlaWdodDogMjUsXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICAgIGNvbG9yOiBDb2xvcjQuV2hpdGUoKSxcbiAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgc3JjOiBIRUxQX0lDT04sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgICAgPExhYmVsXG4gICAgICAgIHRleHRBbGlnbj1cIm1pZGRsZS1sZWZ0XCJcbiAgICAgICAgdmFsdWU9XCJVc2UgdGhlIFJUTVAgc2VydmVyIGFuZCBzdHJlYW0ga2V5IGJlbG93IGluIHlvdXIgYnJvYWRjYXN0aW5nIHNvZnR3YXJlIHRvIHN0YXJ0IHN0cmVhbWluZyB0byB0aGlzIHNjcmVlbi5cIlxuICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNBMDlCQTgnKX1cbiAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgLz5cbiAgICAgIHtsb2FkaW5nID8gKFxuICAgICAgICA8TG9hZGluZ0RvdHNcbiAgICAgICAgICB1aVRyYW5zZm9ybT17eyBtaW5IZWlnaHQ6IDQwMCB9fVxuICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAvPlxuICAgICAgKSA6IGhhc1N0cmVhbUtleSA/IChcbiAgICAgICAgPFNob3dTdHJlYW1LZXlcbiAgICAgICAgICBlbmRzQXQ9e3N0cmVhbUtleUVuZHNBdCA/PyAwfVxuICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgIGVudGl0eT17ZW50aXR5fVxuICAgICAgICAgIHZpZGVvPXt2aWRlb31cbiAgICAgICAgICBvblJlc2V0PXsoKSA9PiBzZXRSZXNldFN0cmVhbUtleSh0cnVlKX1cbiAgICAgICAgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxHZW5lcmF0ZVN0cmVhbUtleVxuICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgIG9uR2VuZXJhdGU9eygpID0+IHNldEhhc1N0cmVhbUtleSh0cnVlKX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7IWhhc1N0cmVhbUtleSAmJiAoXG4gICAgICAgIDxMYWJlbFxuICAgICAgICAgIGZvbnRTaXplPXsxNH1cbiAgICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNGRjJENTUnKX1cbiAgICAgICAgICB2YWx1ZT1cIkRvIG5vdCBzaGFyZSB5b3VyIHN0cmVhbSBrZXkgd2l0aCBhbnlvbmUsIGFuZCBiZSBjYXJlZnVsIG5vdCB0byBkaXNwbGF5IGl0IG9uIHNjcmVlbiB3aGlsZSBzdHJlYW1pbmcuXCJcbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9VaUVudGl0eT5cbiAgKTtcbn1cbiJdfQ==
@@ -1,9 +1,8 @@
1
1
  import { DeepReadonlyObject, IEngine, PBVideoPlayer, Entity } from '@dcl/ecs';
2
2
  import ReactEcs from '@dcl/react-ecs';
3
3
  export declare const HELP_ICON = "https://builder-items.decentraland.org/admin_toolkit/assets/icons/help.png";
4
- export declare function VideoControlURL({ engine, scaleFactor, video, entity, }: {
4
+ export declare function VideoControlURL({ engine, video, entity, }: {
5
5
  engine: IEngine;
6
- scaleFactor: number;
7
6
  entity: Entity;
8
7
  video: DeepReadonlyObject<PBVideoPlayer> | undefined;
9
8
  }): ReactEcs.JSX.Element;