@dcl/asset-packs 2.16.2 → 2.16.3

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 (47) hide show
  1. package/bin/index.js +445 -325
  2. package/dist/admin-toolkit-ui/Active.d.ts +3 -2
  3. package/dist/admin-toolkit-ui/Active.js +1 -1
  4. package/dist/admin-toolkit-ui/Card.d.ts +2 -1
  5. package/dist/admin-toolkit-ui/Card.js +1 -1
  6. package/dist/admin-toolkit-ui/FeedbackButton.js +2 -2
  7. package/dist/admin-toolkit-ui/Loading.d.ts +3 -2
  8. package/dist/admin-toolkit-ui/Loading.js +1 -1
  9. package/dist/admin-toolkit-ui/ModerationControl/AddUserInput.d.ts +1 -1
  10. package/dist/admin-toolkit-ui/ModerationControl/AddUserInput.js +1 -1
  11. package/dist/admin-toolkit-ui/ModerationControl/BanUserDescription.js +1 -1
  12. package/dist/admin-toolkit-ui/ModerationControl/RemoveAdminConfirmation.js +4 -4
  13. package/dist/admin-toolkit-ui/ModerationControl/UsersList.js +16 -14
  14. package/dist/admin-toolkit-ui/ModerationControl/index.d.ts +0 -7
  15. package/dist/admin-toolkit-ui/ModerationControl/index.js +4 -9
  16. package/dist/admin-toolkit-ui/SmartItemsControl.js +15 -33
  17. package/dist/admin-toolkit-ui/TextAnnouncementsControl.js +14 -12
  18. package/dist/admin-toolkit-ui/VideoControl/DclCast/CompactDclCast.js +7 -9
  19. package/dist/admin-toolkit-ui/VideoControl/DclCast/DclCastInfo.js +4 -3
  20. package/dist/admin-toolkit-ui/VideoControl/DclCast/index.d.ts +0 -14
  21. package/dist/admin-toolkit-ui/VideoControl/DclCast/index.js +32 -136
  22. package/dist/admin-toolkit-ui/VideoControl/DclCast/presentation-detector.d.ts +2 -0
  23. package/dist/admin-toolkit-ui/VideoControl/DclCast/presentation-detector.js +116 -0
  24. package/dist/admin-toolkit-ui/VideoControl/LiveStream/DeleteStreamKey.d.ts +1 -1
  25. package/dist/admin-toolkit-ui/VideoControl/LiveStream/DeleteStreamKey.js +2 -2
  26. package/dist/admin-toolkit-ui/VideoControl/LiveStream/GenerateStreamKey.d.ts +1 -1
  27. package/dist/admin-toolkit-ui/VideoControl/LiveStream/GenerateStreamKey.js +2 -2
  28. package/dist/admin-toolkit-ui/VideoControl/LiveStream/ShowStreamKey.js +5 -4
  29. package/dist/admin-toolkit-ui/VideoControl/LiveStream/index.js +2 -2
  30. package/dist/admin-toolkit-ui/VideoControl/api.d.ts +5 -2
  31. package/dist/admin-toolkit-ui/VideoControl/api.js +22 -12
  32. package/dist/admin-toolkit-ui/VideoControl/index.js +14 -15
  33. package/dist/admin-toolkit-ui/VideoControl/utils.d.ts +2 -0
  34. package/dist/admin-toolkit-ui/VideoControl/utils.js +15 -3
  35. package/dist/admin-toolkit-ui/actions.d.ts +42 -0
  36. package/dist/admin-toolkit-ui/actions.js +138 -0
  37. package/dist/admin-toolkit-ui/admin-message-bus.js +17 -2
  38. package/dist/admin-toolkit-ui/index.d.ts +0 -3
  39. package/dist/admin-toolkit-ui/index.js +20 -93
  40. package/dist/admin-toolkit-ui/store.d.ts +2 -0
  41. package/dist/admin-toolkit-ui/store.js +45 -0
  42. package/dist/admin-toolkit-ui/types.d.ts +22 -5
  43. package/dist/admin-toolkit-ui/types.js +1 -2
  44. package/dist/bin/index.js +445 -325
  45. package/package.json +1 -1
  46. package/dist/admin-toolkit-ui/RewardsControl.d.ts +0 -7
  47. package/dist/admin-toolkit-ui/RewardsControl.js +0 -95
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dcl/asset-packs",
3
3
  "description": "Decentraland Asset Packs - curated collections of 3D assets for Decentraland scenes",
4
- "version": "2.16.2",
4
+ "version": "2.16.3",
5
5
  "author": {
6
6
  "email": "hello@decentraland.org",
7
7
  "name": "Decentraland Foundation",
@@ -1,7 +0,0 @@
1
- import type { IEngine } from '@dcl/ecs';
2
- import ReactEcs from '@dcl/react-ecs';
3
- import { type State } from './types';
4
- export declare function RewardsControl({ engine, state }: {
5
- engine: IEngine;
6
- state: State;
7
- }): ReactEcs.JSX.Element;
@@ -1,95 +0,0 @@
1
- import ReactEcs, { UiEntity, Label, Dropdown } from '@dcl/react-ecs';
2
- import { Color4 } from '@dcl/sdk/math';
3
- import { getActionEvents, getComponents, getPayload, } from '../definitions';
4
- import { Button } from './Button';
5
- import { getContentUrl } from './constants';
6
- const ICONS = {
7
- get REWARDS_CONTROL() {
8
- return `${getContentUrl()}/admin_toolkit/assets/icons/rewards-control.png`;
9
- },
10
- get SEND() {
11
- return `${getContentUrl()}/admin_toolkit/assets/icons/rewards-send.png`;
12
- },
13
- };
14
- function getAdminToolkitRewardsControl(engine) {
15
- const { AdminTools } = getComponents(engine);
16
- const adminToolkitEntities = Array.from(engine.getEntitiesWith(AdminTools));
17
- return adminToolkitEntities.length > 0 ? adminToolkitEntities[0][1].rewardsControl : null;
18
- }
19
- function getRewardItems(engine) {
20
- const adminToolkitRewardsControl = getAdminToolkitRewardsControl(engine);
21
- if (!adminToolkitRewardsControl ||
22
- !adminToolkitRewardsControl.rewardItems ||
23
- adminToolkitRewardsControl.rewardItems.length === 0)
24
- return [];
25
- return Array.from(adminToolkitRewardsControl.rewardItems);
26
- }
27
- export function RewardsControl({ engine, state }) {
28
- const rewardItems = getRewardItems(engine);
29
- return (ReactEcs.createElement(UiEntity, { uiTransform: {
30
- width: '100%',
31
- height: '100%',
32
- flexDirection: 'column',
33
- } },
34
- ReactEcs.createElement(UiEntity, { uiTransform: {
35
- flexDirection: 'row',
36
- margin: { bottom: 32 },
37
- height: 30,
38
- } },
39
- ReactEcs.createElement(UiEntity, { uiTransform: { width: 30, height: 30 }, uiBackground: {
40
- color: Color4.White(),
41
- textureMode: 'stretch',
42
- texture: { src: ICONS.REWARDS_CONTROL },
43
- } }),
44
- ReactEcs.createElement(Label, { value: "<b>AIRDROPS</b>", fontSize: 24, color: Color4.White() })),
45
- ReactEcs.createElement(UiEntity, { uiTransform: {
46
- flexDirection: 'column',
47
- margin: { bottom: 32 },
48
- } },
49
- ReactEcs.createElement(Label, { value: "<b>Selected Airdrop</b>", fontSize: 16, color: Color4.White(), uiTransform: { margin: { bottom: 16 } } }),
50
- ReactEcs.createElement(Dropdown, { key: "RewardsItemSelector", acceptEmpty: true, emptyLabel: "Select your airdrop", options: [
51
- ...rewardItems.map((item) => item.customName),
52
- ], selectedIndex: state.rewardsControl.selectedRewardItem ?? -1, onChange: idx => (state.rewardsControl.selectedRewardItem = idx), textAlign: "middle-left", fontSize: 14, uiTransform: {
53
- width: '100%',
54
- height: 40,
55
- }, uiBackground: { color: Color4.White() }, color: Color4.Black() })),
56
- ReactEcs.createElement(UiEntity, { uiTransform: { flexDirection: 'column' } },
57
- ReactEcs.createElement(Label, { value: "<b>Actions</b>", fontSize: 16, color: Color4.White(), uiTransform: { margin: { bottom: 16 } } }),
58
- ReactEcs.createElement(UiEntity, { uiTransform: { flexDirection: 'row' } },
59
- ReactEcs.createElement(Button, { id: "rewards_control_release", value: "<b>Release</b>", fontSize: 16, uiTransform: {
60
- margin: { right: 16 },
61
- alignItems: 'center',
62
- justifyContent: 'center',
63
- }, icon: ICONS.SEND, iconTransform: {
64
- height: 25,
65
- width: 25,
66
- }, onMouseDown: () => handleRelease(engine, state), disabled: state.rewardsControl.selectedRewardItem === undefined }),
67
- ReactEcs.createElement(Button, { id: "rewards_control_clear", value: "<b>Clear</b>", fontSize: 16, onMouseDown: () => handleClear(engine, state), disabled: state.rewardsControl.selectedRewardItem === undefined })))));
68
- }
69
- function handleRelease(engine, state) {
70
- const { Actions, Rewards } = getComponents(engine);
71
- const rewardItems = getRewardItems(engine);
72
- const selectedRewardItem = rewardItems[state.rewardsControl.selectedRewardItem];
73
- const rewardItem = Rewards.getOrNull(selectedRewardItem.entity);
74
- if (!rewardItem)
75
- return;
76
- const action = Actions.getOrNull(selectedRewardItem.entity)?.value.find(($) => $.name === 'Airdrop');
77
- if (action) {
78
- const actionEvents = getActionEvents(selectedRewardItem.entity);
79
- actionEvents.emit(action.name, getPayload(action));
80
- }
81
- }
82
- function handleClear(engine, state) {
83
- const { Actions, Rewards } = getComponents(engine);
84
- const rewardItems = getRewardItems(engine);
85
- const selectedRewardItem = rewardItems[state.rewardsControl.selectedRewardItem];
86
- const rewardItem = Rewards.getOrNull(selectedRewardItem.entity);
87
- if (!rewardItem)
88
- return;
89
- const action = Actions.getOrNull(selectedRewardItem.entity)?.value.find(($) => $.name === 'Invisible');
90
- if (action) {
91
- const actionEvents = getActionEvents(selectedRewardItem.entity);
92
- actionEvents.emit(action.name, getPayload(action));
93
- }
94
- }
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmV3YXJkc0NvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9SZXdhcmRzQ29udHJvbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxHQUdYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE1BQU0sS0FBSyxHQUFHO0lBQ1osSUFBSSxlQUFlO1FBQ2pCLE9BQU8sR0FBRyxhQUFhLEVBQUUsaURBQWlELENBQUM7SUFDN0UsQ0FBQztJQUNELElBQUksSUFBSTtRQUNOLE9BQU8sR0FBRyxhQUFhLEVBQUUsOENBQThDLENBQUM7SUFDMUUsQ0FBQztDQUNGLENBQUM7QUFHRixTQUFTLDZCQUE2QixDQUFDLE1BQWU7SUFDcEQsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzVFLE9BQU8sb0JBQW9CLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDNUYsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLE1BQWU7SUFDckMsTUFBTSwwQkFBMEIs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QUksQ0FDL0UsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUN0QyxDQUFDO0lBRUYsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNYLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFnQixDQUFDLENBQUM7UUFDMUUsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbnRpdHksIElFbmdpbmUgfSBmcm9tICdAZGNsL2Vjcyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5pbXBvcnQgUmVhY3RFY3MsIHsgVWlFbnRpdHksIExhYmVsLCBEcm9wZG93biB9IGZyb20gJ0BkY2wvcmVhY3QtZWNzJztcbmltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvc2RrL21hdGgnO1xuaW1wb3J0IHtcbiAgZ2V0QWN0aW9uRXZlbnRzLFxuICBnZXRDb21wb25lbnRzLFxuICBnZXRQYXlsb2FkLFxuICB0eXBlIEFjdGlvbixcbiAgdHlwZSBBZG1pblRvb2xzLFxufSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuL0J1dHRvbic7XG5pbXBvcnQgeyBnZXRDb250ZW50VXJsIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdHlwZSBTdGF0ZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBJQ09OUyA9IHtcbiAgZ2V0IFJFV0FSRFNfQ09OVFJPTCgpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9yZXdhcmRzLWNvbnRyb2wucG5nYDtcbiAgfSxcbiAgZ2V0IFNFTkQoKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvcmV3YXJkcy1zZW5kLnBuZ2A7XG4gIH0sXG59O1xuXG4vLyBIZWxwZXIgRnVuY3Rpb25zXG5mdW5jdGlvbiBnZXRBZG1pblRvb2xraXRSZXdhcmRzQ29udHJvbChlbmdpbmU6IElFbmdpbmUpIHtcbiAgY29uc3QgeyBBZG1pblRvb2xzIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSk7XG4gIGNvbnN0IGFkbWluVG9vbGtpdEVudGl0aWVzID0gQXJyYXkuZnJvbShlbmdpbmUuZ2V0RW50aXRpZXNXaXRoKEFkbWluVG9vbHMpKTtcbiAgcmV0dXJuIGFkbWluVG9vbGtpdEVudGl0aWVzLmxlbmd0aCA+IDAgPyBhZG1pblRvb2xraXRFbnRpdGllc1swXVsxXS5yZXdhcmRzQ29udHJvbCA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIGdldFJld2FyZEl0ZW1zKGVuZ2luZTogSUVuZ2luZSk6IE5vbk51bGxhYmxlPEFkbWluVG9vbHNbJ3Jld2FyZHNDb250cm9sJ11bJ3Jld2FyZEl0ZW1zJ10+IHtcbiAgY29uc3QgYWRtaW5Ub29sa2l0UmV3YXJkc0NvbnRyb2wgPSBnZXRBZG1pblRvb2xraXRSZXdhcmRzQ29udHJvbChlbmdpbmUpO1xuXG4gIGlmIChcbiAgICAhYWRtaW5Ub29sa2l0UmV3YXJkc0NvbnRyb2wgfHxcbiAgICAhYWRtaW5Ub29sa2l0UmV3YXJkc0NvbnRyb2wucmV3YXJkSXRlbXMgfHxcbiAgICBhZG1pblRvb2xraXRSZXdhcmRzQ29udHJvbC5yZXdhcmRJdGVtcy5sZW5ndGggPT09IDBcbiAgKVxuICAgIHJldHVybiBbXTtcblxuICByZXR1cm4gQXJyYXkuZnJvbShhZG1pblRvb2xraXRSZXdhcmRzQ29udHJvbC5yZXdhcmRJdGVtcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBSZXdhcmRzQ29udHJvbCh7IGVuZ2luZSwgc3RhdGUgfTogeyBlbmdpbmU6IElFbmdpbmU7IHN0YXRlOiBTdGF0ZSB9KSB7XG4gIGNvbnN0IHJld2FyZEl0ZW1zID0gZ2V0UmV3YXJkSXRlbXMoZW5naW5lKTtcblxuICByZXR1cm4gKFxuICAgIDxVaUVudGl0eVxuICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7LyogSGVhZGVyICovfVxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAgbWFyZ2luOiB7IGJvdHRvbTogMzIgfSxcbiAgICAgICAgICBoZWlnaHQ6IDMwLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17eyB3aWR0aDogMzAsIGhlaWdodDogMzAgfX1cbiAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgIGNvbG9yOiBDb2xvcjQuV2hpdGUoKSxcbiAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICB0ZXh0dXJlOiB7IHNyYzogSUNPTlMuUkVXQVJEU19DT05UUk9MIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAgPExhYmVsXG4gICAgICAgICAgdmFsdWU9XCI8Yj5BSVJEUk9QUzwvYj5cIlxuICAgICAgICAgIGZvbnRTaXplPXsyNH1cbiAgICAgICAgICBjb2xvcj17Q29sb3I0LldoaXRlKCl9XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuXG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICBtYXJnaW46IHsgYm90dG9tOiAzMiB9LFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8TGFiZWxcbiAgICAgICAgICB2YWx1ZT1cIjxiPlNlbGVjdGVkIEFpcmRyb3A8L2I+XCJcbiAgICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgICAgY29sb3I9e0NvbG9yNC5XaGl0ZSgpfVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7IG1hcmdpbjogeyBib3R0b206IDE2IH0gfX1cbiAgICAgICAgLz5cblxuICAgICAgICA8RHJvcGRvd25cbiAgICAgICAgICBrZXk9XCJSZXdhcmRzSXRlbVNlbGVjdG9yXCJcbiAgICAgICAgICBhY2NlcHRFbXB0eVxuICAgICAgICAgIGVtcHR5TGFiZWw9XCJTZWxlY3QgeW91ciBhaXJkcm9wXCJcbiAgICAgICAgICBvcHRpb25zPXtbXG4gICAgICAgICAgICAuLi5yZXdhcmRJdGVtcy5tYXAoXG4gICAgICAgICAgICAgIChpdGVtOiBOb25OdWxsYWJsZTxBZG1pblRvb2xzWydyZXdhcmRzQ29udHJvbCddWydyZXdhcmRJdGVtcyddPlswXSkgPT5cbiAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbU5hbWUsXG4gICAgICAgICAgICApLFxuICAgICAgICAgIF19XG4gICAgICAgICAgc2VsZWN0ZWRJbmRleD17c3RhdGUucmV3YXJkc0NvbnRyb2wuc2VsZWN0ZWRSZXdhcmRJdGVtID8/IC0xfVxuICAgICAgICAgIG9uQ2hhbmdlPXtpZHggPT4gKHN0YXRlLnJld2FyZHNDb250cm9sLnNlbGVjdGVkUmV3YXJkSXRlbSA9IGlkeCl9XG4gICAgICAgICAgdGV4dEFsaWduPVwibWlkZGxlLWxlZnRcIlxuICAgICAgICAgIGZvbnRTaXplPXsxNH1cbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgIGhlaWdodDogNDAsXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aUJhY2tncm91bmQ9e3sgY29sb3I6IENvbG9yNC5XaGl0ZSgpIH19XG4gICAgICAgICAgY29sb3I9e0NvbG9yNC5CbGFjaygpfVxuICAgICAgICAvPlxuICAgICAgPC9VaUVudGl0eT5cblxuICAgICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nIH19PlxuICAgICAgICA8TGFiZWxcbiAgICAgICAgICB2YWx1ZT1cIjxiPkFjdGlvbnM8L2I+XCJcbiAgICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgICAgY29sb3I9e0NvbG9yNC5XaGl0ZSgpfVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7IG1hcmdpbjogeyBib3R0b206IDE2IH0gfX1cbiAgICAgICAgLz5cblxuICAgICAgICA8VWlFbnRpdHkgdWlUcmFuc2Zvcm09e3sgZmxleERpcmVjdGlvbjogJ3JvdycgfX0+XG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJyZXdhcmRzX2NvbnRyb2xfcmVsZWFzZVwiXG4gICAgICAgICAgICB2YWx1ZT1cIjxiPlJlbGVhc2U8L2I+XCJcbiAgICAgICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogMTYgfSxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBpY29uPXtJQ09OUy5TRU5EfVxuICAgICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBoZWlnaHQ6IDI1LFxuICAgICAgICAgICAgICB3aWR0aDogMjUsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IGhhbmRsZVJlbGVhc2UoZW5naW5lLCBzdGF0ZSl9XG4gICAgICAgICAgICBkaXNhYmxlZD17c3RhdGUucmV3YXJkc0NvbnRyb2wuc2VsZWN0ZWRSZXdhcmRJdGVtID09PSB1bmRlZmluZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBpZD1cInJld2FyZHNfY29udHJvbF9jbGVhclwiXG4gICAgICAgICAgICB2YWx1ZT1cIjxiPkNsZWFyPC9iPlwiXG4gICAgICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4gaGFuZGxlQ2xlYXIoZW5naW5lLCBzdGF0ZSl9XG4gICAgICAgICAgICBkaXNhYmxlZD17c3RhdGUucmV3YXJkc0NvbnRyb2wuc2VsZWN0ZWRSZXdhcmRJdGVtID09PSB1bmRlZmluZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9VaUVudGl0eT5cblxuICAgICAgICB7LyogVE9ETzogR2V0IHN1cHBseSB2YWx1ZXMgZnJvbSByZXdhcmRzLXNlcnZlciwgaXQgcmVxdWlyZWQgYSBzaWduZWRGZXRjaCBidXQgdGhlIG9uZSBzZW50IGJ5IHRoZSBleHBsb3JlciBpcyByZWplY3RlZCAqL31cbiAgICAgICAgey8qIDxMYWJlbFxuICAgICAgICAgIHZhbHVlPXtgUmVkZWVtZWQ6ICR7c3RhdGUucmV3YXJkc0NvbnRyb2wucmVkZWVtZWRDb3VudH0vYH1cbiAgICAgICAgICBmb250U2l6ZT17MTR9XG4gICAgICAgICAgY29sb3I9e0NvbG9yNC5jcmVhdGUoMTg3IC8gMjU1LCAxODcgLyAyNTUsIDE4NyAvIDI1NSwgMSl9XG4gICAgICAgIC8+ICovfVxuICAgICAgPC9VaUVudGl0eT5cbiAgICA8L1VpRW50aXR5PlxuICApO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVSZWxlYXNlKGVuZ2luZTogSUVuZ2luZSwgc3RhdGU6IFN0YXRlKSB7XG4gIGNvbnN0IHsgQWN0aW9ucywgUmV3YXJkcyB9ID0gZ2V0Q29tcG9uZW50cyhlbmdpbmUpO1xuICBjb25zdCByZXdhcmRJdGVtcyA9IGdldFJld2FyZEl0ZW1zKGVuZ2luZSk7XG4gIGNvbnN0IHNlbGVjdGVkUmV3YXJkSXRlbSA9IHJld2FyZEl0ZW1zW3N0YXRlLnJld2FyZHNDb250cm9sLnNlbGVjdGVkUmV3YXJkSXRlbSFdO1xuICBjb25zdCByZXdhcmRJdGVtID0gUmV3YXJkcy5nZXRPck51bGwoc2VsZWN0ZWRSZXdhcmRJdGVtLmVudGl0eSBhcyBFbnRpdHkpO1xuXG4gIGlmICghcmV3YXJkSXRlbSkgcmV0dXJuO1xuXG4gIGNvbnN0IGFjdGlvbiA9IEFjdGlvbnMuZ2V0T3JOdWxsKHNlbGVjdGVkUmV3YXJkSXRlbS5lbnRpdHkgYXMgRW50aXR5KT8udmFsdWUuZmluZChcbiAgICAoJDogQWN0aW9uKSA9PiAkLm5hbWUgPT09ICdBaXJkcm9wJyxcbiAgKTtcbiAgaWYgKGFjdGlvbikge1xuICAgIGNvbnN0IGFjdGlvbkV2ZW50cyA9IGdldEFjdGlvbkV2ZW50cyhzZWxlY3RlZFJld2FyZEl0ZW0uZW50aXR5IGFzIEVudGl0eSk7XG4gICAgYWN0aW9uRXZlbnRzLmVtaXQoYWN0aW9uLm5hbWUsIGdldFBheWxvYWQoYWN0aW9uKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlQ2xlYXIoZW5naW5lOiBJRW5naW5lLCBzdGF0ZTogU3RhdGUpIHtcbiAgY29uc3QgeyBBY3Rpb25zLCBSZXdhcmRzIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSk7XG4gIGNvbnN0IHJld2FyZEl0ZW1zID0gZ2V0UmV3YXJkSXRlbXMoZW5naW5lKTtcbiAgY29uc3Qgc2VsZWN0ZWRSZXdhcmRJdGVtID0gcmV3YXJkSXRlbXNbc3RhdGUucmV3YXJkc0NvbnRyb2wuc2VsZWN0ZWRSZXdhcmRJdGVtIV07XG4gIGNvbnN0IHJld2FyZEl0ZW0gPSBSZXdhcmRzLmdldE9yTnVsbChzZWxlY3RlZFJld2FyZEl0ZW0uZW50aXR5IGFzIEVudGl0eSk7XG4gIGlmICghcmV3YXJkSXRlbSkgcmV0dXJuO1xuXG4gIGNvbnN0IGFjdGlvbiA9IEFjdGlvbnMuZ2V0T3JOdWxsKHNlbGVjdGVkUmV3YXJkSXRlbS5lbnRpdHkgYXMgRW50aXR5KT8udmFsdWUuZmluZChcbiAgICAoJDogQWN0aW9uKSA9PiAkLm5hbWUgPT09ICdJbnZpc2libGUnLFxuICApO1xuXG4gIGlmIChhY3Rpb24pIHtcbiAgICBjb25zdCBhY3Rpb25FdmVudHMgPSBnZXRBY3Rpb25FdmVudHMoc2VsZWN0ZWRSZXdhcmRJdGVtLmVudGl0eSBhcyBFbnRpdHkpO1xuICAgIGFjdGlvbkV2ZW50cy5lbWl0KGFjdGlvbi5uYW1lLCBnZXRQYXlsb2FkKGFjdGlvbikpO1xuICB9XG59XG4iXX0=