@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.
- package/bin/index.js +478 -595
- package/dist/admin-toolkit-ui/Active.d.ts +1 -2
- package/dist/admin-toolkit-ui/Active.js +7 -7
- package/dist/admin-toolkit-ui/Button.js +3 -4
- package/dist/admin-toolkit-ui/Card.d.ts +1 -2
- package/dist/admin-toolkit-ui/Card.js +8 -8
- package/dist/admin-toolkit-ui/Error.d.ts +1 -2
- package/dist/admin-toolkit-ui/Error.js +7 -7
- package/dist/admin-toolkit-ui/Header.d.ts +1 -2
- package/dist/admin-toolkit-ui/Header.js +6 -6
- package/dist/admin-toolkit-ui/Loading.d.ts +1 -2
- package/dist/admin-toolkit-ui/Loading.js +6 -6
- package/dist/admin-toolkit-ui/ModerationControl/AddUserInput.d.ts +1 -2
- package/dist/admin-toolkit-ui/ModerationControl/AddUserInput.js +8 -8
- package/dist/admin-toolkit-ui/ModerationControl/BanUserDescription.d.ts +1 -5
- package/dist/admin-toolkit-ui/ModerationControl/BanUserDescription.js +4 -4
- package/dist/admin-toolkit-ui/ModerationControl/RemoveAdminConfirmation.d.ts +1 -2
- package/dist/admin-toolkit-ui/ModerationControl/RemoveAdminConfirmation.js +20 -20
- package/dist/admin-toolkit-ui/ModerationControl/UsersList.d.ts +1 -2
- package/dist/admin-toolkit-ui/ModerationControl/UsersList.js +15 -15
- package/dist/admin-toolkit-ui/ModerationControl/index.js +8 -10
- package/dist/admin-toolkit-ui/ModerationControl/styles/AddUserInputStyles.d.ts +2 -2
- package/dist/admin-toolkit-ui/ModerationControl/styles/AddUserInputStyles.js +20 -20
- package/dist/admin-toolkit-ui/ModerationControl/styles/ModerationControlStyles.d.ts +1 -1
- package/dist/admin-toolkit-ui/ModerationControl/styles/ModerationControlStyles.js +9 -9
- package/dist/admin-toolkit-ui/ModerationControl/styles/UsersListStyles.d.ts +1 -1
- package/dist/admin-toolkit-ui/ModerationControl/styles/UsersListStyles.js +45 -45
- package/dist/admin-toolkit-ui/RewardsControl.js +15 -17
- package/dist/admin-toolkit-ui/SmartItemsControl.js +19 -24
- package/dist/admin-toolkit-ui/TextAnnouncements.js +16 -18
- package/dist/admin-toolkit-ui/TextAnnouncementsControl.js +20 -22
- package/dist/admin-toolkit-ui/VideoControl/DclCast/DclCastInfo.d.ts +1 -2
- package/dist/admin-toolkit-ui/VideoControl/DclCast/DclCastInfo.js +14 -14
- package/dist/admin-toolkit-ui/VideoControl/DclCast/index.js +10 -12
- package/dist/admin-toolkit-ui/VideoControl/DclCast/styles.d.ts +1 -1
- package/dist/admin-toolkit-ui/VideoControl/DclCast/styles.js +38 -38
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/DeleteStreamKey.d.ts +1 -2
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/DeleteStreamKey.js +16 -16
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/GenerateStreamKey.d.ts +1 -2
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/GenerateStreamKey.js +10 -10
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/ShowStreamKey.d.ts +1 -2
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/ShowStreamKey.js +48 -48
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/index.d.ts +1 -2
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/index.js +9 -9
- package/dist/admin-toolkit-ui/VideoControl/VideoUrl.d.ts +1 -2
- package/dist/admin-toolkit-ui/VideoControl/VideoUrl.js +38 -38
- package/dist/admin-toolkit-ui/VideoControl/VolumeControl.js +28 -30
- package/dist/admin-toolkit-ui/VideoControl/index.js +29 -31
- package/dist/admin-toolkit-ui/index.d.ts +0 -1
- package/dist/admin-toolkit-ui/index.js +29 -31
- package/dist/bin/index.js +478 -595
- package/dist/ui.d.ts +0 -1
- package/dist/ui.js +24 -34
- package/package.json +1 -1
package/dist/ui.d.ts
CHANGED
|
@@ -9,7 +9,6 @@ export declare function getUITransform(component: EngineComponents['UiTransform'
|
|
|
9
9
|
export declare function getUIBackground(component: EngineComponents['UiBackground'], entity: Entity, src: string, textureMode?: BackgroundTextureMode, wrapMode?: TextureWrapMode): import("@dcl/ecs").PBUiBackground;
|
|
10
10
|
export declare function getUIText(component: EngineComponents['UiText'], entity: Entity, text: string, fontSize: number | undefined, containerWidth: number, align?: TextAlignMode, color?: Color4): import("@dcl/ecs").PBUiText;
|
|
11
11
|
export declare function removeUiTransformEntities(engine: IEngine, UiTransform: EngineComponents['UiTransform'], parentEntity: Entity): void;
|
|
12
|
-
export declare function getScaleUIFactor(engine: IEngine): number;
|
|
13
12
|
export declare function showCaptchaPrompt(engine: IEngine, UiTransform: EngineComponents['UiTransform'], UiBackground: EngineComponents['UiBackground'], UiText: EngineComponents['UiText'], UiInput: EngineComponents['UiInput'], UiInputResult: EngineComponents['UiInputResult'], pointerEventsSystem: PointerEventsSystem, data: {
|
|
14
13
|
campaignId: string;
|
|
15
14
|
dispenserKey: string;
|
package/dist/ui.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Color4 } from '@dcl/sdk/math';
|
|
2
|
-
import { getExplorerComponents } from './components';
|
|
3
2
|
import { AlignMode, Font } from './enums';
|
|
4
3
|
import { CONTENT_URL } from './admin-toolkit-ui/constants';
|
|
5
4
|
function getAlignMode(align, isColumn) {
|
|
@@ -198,36 +197,27 @@ export function removeUiTransformEntities(engine, UiTransform, parentEntity) {
|
|
|
198
197
|
}
|
|
199
198
|
}
|
|
200
199
|
}
|
|
201
|
-
export function getScaleUIFactor(engine) {
|
|
202
|
-
const { UiCanvasInformation } = getExplorerComponents(engine);
|
|
203
|
-
const uiCanvasInfo = UiCanvasInformation.getOrNull(engine.RootEntity);
|
|
204
|
-
if (!uiCanvasInfo)
|
|
205
|
-
return 1;
|
|
206
|
-
const scaleFactor = Math.min(uiCanvasInfo.width / 1920, uiCanvasInfo.height / 1080);
|
|
207
|
-
return scaleFactor;
|
|
208
|
-
}
|
|
209
200
|
const BTN_CLOSE_TEXT_ANNOUNCEMENT = `${CONTENT_URL}/admin_toolkit/assets/icons/text-announcement-close-button.png`;
|
|
210
201
|
export function showCaptchaPrompt(engine, UiTransform, UiBackground, UiText, UiInput, UiInputResult, pointerEventsSystem, data, onSubmit) {
|
|
211
202
|
console.log('showCaptchaPrompt');
|
|
212
|
-
const scaleFactor = getScaleUIFactor(engine);
|
|
213
203
|
const uiStack = engine.addEntity();
|
|
214
204
|
const uiStackTransform = getUITransform(UiTransform, uiStack);
|
|
215
205
|
uiStackTransform.display = 0;
|
|
216
206
|
uiStackTransform.alignItems = 2;
|
|
217
207
|
uiStackTransform.justifyContent = 1;
|
|
218
208
|
const containerEntity = engine.addEntity();
|
|
219
|
-
const containerTransform = getUITransform(UiTransform, containerEntity, 260
|
|
209
|
+
const containerTransform = getUITransform(UiTransform, containerEntity, 260, 250, 1);
|
|
220
210
|
containerTransform.parent = uiStack;
|
|
221
211
|
containerTransform.display = 0;
|
|
222
212
|
containerTransform.flexDirection = 1;
|
|
223
213
|
containerTransform.alignItems = 2;
|
|
224
|
-
containerTransform.paddingTop = 20
|
|
214
|
+
containerTransform.paddingTop = 20;
|
|
225
215
|
containerTransform.paddingTopUnit = 1;
|
|
226
|
-
containerTransform.paddingBottom = 20
|
|
216
|
+
containerTransform.paddingBottom = 20;
|
|
227
217
|
containerTransform.paddingBottomUnit = 1;
|
|
228
|
-
containerTransform.paddingLeft = 20
|
|
218
|
+
containerTransform.paddingLeft = 20;
|
|
229
219
|
containerTransform.paddingLeftUnit = 1;
|
|
230
|
-
containerTransform.paddingRight = 20
|
|
220
|
+
containerTransform.paddingRight = 20;
|
|
231
221
|
containerTransform.paddingRightUnit = 1;
|
|
232
222
|
containerTransform.pointerFilter = 1;
|
|
233
223
|
UiBackground.createOrReplace(containerEntity, {
|
|
@@ -236,12 +226,12 @@ export function showCaptchaPrompt(engine, UiTransform, UiBackground, UiText, UiI
|
|
|
236
226
|
uvs: [],
|
|
237
227
|
});
|
|
238
228
|
const closeButtonEntity = engine.addEntity();
|
|
239
|
-
const closeButtonTransform = getUITransform(UiTransform, closeButtonEntity, 24
|
|
229
|
+
const closeButtonTransform = getUITransform(UiTransform, closeButtonEntity, 24, 24, 1);
|
|
240
230
|
closeButtonTransform.parent = containerEntity;
|
|
241
231
|
closeButtonTransform.positionType = 1;
|
|
242
|
-
closeButtonTransform.positionRight = 5
|
|
232
|
+
closeButtonTransform.positionRight = 5;
|
|
243
233
|
closeButtonTransform.positionRightUnit = 1;
|
|
244
|
-
closeButtonTransform.positionTop = 5
|
|
234
|
+
closeButtonTransform.positionTop = 5;
|
|
245
235
|
closeButtonTransform.positionTopUnit = 1;
|
|
246
236
|
closeButtonTransform.pointerFilter = 1;
|
|
247
237
|
getUIBackground(UiBackground, closeButtonEntity, BTN_CLOSE_TEXT_ANNOUNCEMENT, 2);
|
|
@@ -255,30 +245,30 @@ export function showCaptchaPrompt(engine, UiTransform, UiBackground, UiText, UiI
|
|
|
255
245
|
engine.removeEntity(uiStack);
|
|
256
246
|
});
|
|
257
247
|
const titleEntity = engine.addEntity();
|
|
258
|
-
const titleTransform = getUITransform(UiTransform, titleEntity, 20
|
|
248
|
+
const titleTransform = getUITransform(UiTransform, titleEntity, 20, 200, 1);
|
|
259
249
|
titleTransform.parent = containerEntity;
|
|
260
|
-
titleTransform.marginBottom = 10
|
|
250
|
+
titleTransform.marginBottom = 10;
|
|
261
251
|
titleTransform.marginBottomUnit = 1;
|
|
262
252
|
titleTransform.positionType = 1;
|
|
263
|
-
titleTransform.positionTop = 30
|
|
253
|
+
titleTransform.positionTop = 30;
|
|
264
254
|
titleTransform.positionTopUnit = 1;
|
|
265
|
-
getUIText(UiText, titleEntity, 'Enter the captcha', 20
|
|
255
|
+
getUIText(UiText, titleEntity, 'Enter the captcha', 20, 200, 4, Color4.White());
|
|
266
256
|
const imageEntity = engine.addEntity();
|
|
267
|
-
const imageTransform = getUITransform(UiTransform, imageEntity, 80
|
|
257
|
+
const imageTransform = getUITransform(UiTransform, imageEntity, 80, 200, 1);
|
|
268
258
|
imageTransform.parent = containerEntity;
|
|
269
|
-
imageTransform.marginBottom = 10
|
|
259
|
+
imageTransform.marginBottom = 10;
|
|
270
260
|
imageTransform.marginBottomUnit = 1;
|
|
271
261
|
imageTransform.positionType = 1;
|
|
272
|
-
imageTransform.positionTop = 60
|
|
262
|
+
imageTransform.positionTop = 60;
|
|
273
263
|
imageTransform.positionTopUnit = 1;
|
|
274
264
|
getUIBackground(UiBackground, imageEntity, data.captcha.image, 2);
|
|
275
265
|
const inputEntity = engine.addEntity();
|
|
276
|
-
const inputTransform = getUITransform(UiTransform, inputEntity, 50
|
|
266
|
+
const inputTransform = getUITransform(UiTransform, inputEntity, 50, 200, 1);
|
|
277
267
|
inputTransform.parent = containerEntity;
|
|
278
|
-
inputTransform.marginBottom = 10
|
|
268
|
+
inputTransform.marginBottom = 10;
|
|
279
269
|
inputTransform.marginBottomUnit = 1;
|
|
280
270
|
inputTransform.positionType = 1;
|
|
281
|
-
inputTransform.positionTop = 150
|
|
271
|
+
inputTransform.positionTop = 150;
|
|
282
272
|
inputTransform.positionTopUnit = 1;
|
|
283
273
|
UiInput.createOrReplace(inputEntity, {
|
|
284
274
|
placeholder: 'Enter the captcha',
|
|
@@ -287,22 +277,22 @@ export function showCaptchaPrompt(engine, UiTransform, UiBackground, UiText, UiI
|
|
|
287
277
|
disabled: false,
|
|
288
278
|
textAlign: 4,
|
|
289
279
|
font: Font.F_MONOSPACE,
|
|
290
|
-
fontSize: 10
|
|
280
|
+
fontSize: 10,
|
|
291
281
|
});
|
|
292
282
|
UiInputResult.createOrReplace(inputEntity, {
|
|
293
283
|
value: '',
|
|
294
284
|
isSubmit: false,
|
|
295
285
|
});
|
|
296
286
|
const buttonEntity = engine.addEntity();
|
|
297
|
-
const buttonTransform = getUITransform(UiTransform, buttonEntity, 30
|
|
287
|
+
const buttonTransform = getUITransform(UiTransform, buttonEntity, 30, 100, 1);
|
|
298
288
|
buttonTransform.parent = containerEntity;
|
|
299
|
-
buttonTransform.marginBottom = 10
|
|
289
|
+
buttonTransform.marginBottom = 10;
|
|
300
290
|
buttonTransform.marginBottomUnit = 1;
|
|
301
291
|
buttonTransform.positionType = 1;
|
|
302
|
-
buttonTransform.positionTop = 210
|
|
292
|
+
buttonTransform.positionTop = 210;
|
|
303
293
|
buttonTransform.positionTopUnit = 1;
|
|
304
294
|
buttonTransform.pointerFilter = 1;
|
|
305
|
-
getUIText(UiText, buttonEntity, 'Submit', 16
|
|
295
|
+
getUIText(UiText, buttonEntity, 'Submit', 16, 100, 4, Color4.White());
|
|
306
296
|
UiBackground.createOrReplace(buttonEntity, {
|
|
307
297
|
color: { r: 0.3, g: 0.3, b: 0.3, a: 1 },
|
|
308
298
|
textureMode: 0,
|
|
@@ -321,4 +311,4 @@ export function showCaptchaPrompt(engine, UiTransform, UiBackground, UiText, UiI
|
|
|
321
311
|
});
|
|
322
312
|
return uiStack;
|
|
323
313
|
}
|
|
324
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdWkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTNELFNBQVMsWUFBWSxDQUFDLEtBQWdCLEVBQUUsUUFBaUI7SUFDdkQsUUFBUSxLQUFLLEVBQUUsQ0FBQztRQUNkLEtBQUssU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDNUIsT0FBTztnQkFDTCxVQUFVLEdBQXdCO2dCQUNsQyxjQUFjLEdBQTBCO2FBQ3pDLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUM5QixPQUFPLFFBQVE7Z0JBQ2IsQ0FBQyxDQUFDO29CQUNFLFVBQVUsR0FBb0I7b0JBQzlCLGNBQWMsR0FBMEI7aUJBQ3pDO2dCQUNILENBQUMsQ0FBQztvQkFDRSxVQUFVLEdBQXdCO29CQUNsQyxjQUFjLEdBQXNCO2lCQUNyQyxDQUFDO1FBQ1IsQ0FBQztRQUNELEtBQUssU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDN0IsT0FBTyxRQUFRO2dCQUNiLENBQUMsQ0FBQztvQkFDRSxVQUFVLEdBQXNCO29CQUNoQyxjQUFjLEdBQTBCO2lCQUN6QztnQkFDSCxDQUFDLENBQUM7b0JBQ0UsVUFBVSxHQUF3QjtvQkFDbEMsY0FBYyxHQUF3QjtpQkFDdkMsQ0FBQztRQUNSLENBQUM7UUFDRCxLQUFLLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQy9CLE9BQU8sUUFBUTtnQkFDYixDQUFDLENBQUM7b0JBQ0UsVUFBVSxH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RUFBRSxDQUFDLEVBQUU7UUFDdkMsV0FBVyxHQUFtQztRQUM5QyxHQUFHLEVBQUUsRUFBRTtLQUNSLENBQUMsQ0FBQztJQUdILG1CQUFtQixDQUFDLGFBQWEsQ0FDL0I7UUFDRSxNQUFNLEVBQUUsWUFBWTtRQUNwQixJQUFJLEVBQUU7WUFDSixNQUFNLEdBQXdCO1NBQy9CO0tBQ0YsRUFDRCxHQUFHLEVBQUU7UUFFSCxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDOUQsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBR3BCLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixDQUFDLENBQ0YsQ0FBQztJQUVGLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElFbmdpbmUsIEVudGl0eSwgUG9pbnRlckV2ZW50c1N5c3RlbSB9IGZyb20gJ0BkY2wvZWNzJztcbmltcG9ydCB7XG4gIEJhY2tncm91bmRUZXh0dXJlTW9kZSxcbiAgSW5wdXRBY3Rpb24sXG4gIFRleHRBbGlnbk1vZGUsXG4gIFRleHR1cmVXcmFwTW9kZSxcbiAgWUdBbGlnbixcbiAgWUdGbGV4RGlyZWN0aW9uLFxuICBZR0p1c3RpZnksXG4gIFlHUG9zaXRpb25UeXBlLFxuICBZR1VuaXQsXG4gIFlHRGlzcGxheSxcbiAgUG9pbnRlckZpbHRlck1vZGUsXG59IGZyb20gJ0BkY2wvZWNzJztcbmltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvc2RrL21hdGgnO1xuaW1wb3J0IHR5cGUgeyBFbmdpbmVDb21wb25lbnRzIH0gZnJvbSAnLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBnZXRFeHBsb3JlckNvbXBvbmVudHMgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTY3JlZW5BbGlnbk1vZGUgfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7IEFsaWduTW9kZSwgRm9udCB9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHsgQ09OVEVOVF9VUkwgfSBmcm9tICcuL2FkbWluLXRvb2xraXQtdWkvY29uc3RhbnRzJztcblxuZnVuY3Rpb24gZ2V0QWxpZ25Nb2RlKGFsaWduOiBBbGlnbk1vZGUsIGlzQ29sdW1uOiBib29sZWFuKSB7XG4gIHN3aXRjaCAoYWxpZ24pIHtcbiAgICBjYXNlIEFsaWduTW9kZS5UQU1fVE9QX0xFRlQ6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFsaWduSXRlbXM6IFlHQWxpZ24uWUdBX0ZMRVhfU1RBUlQsXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiBZR0p1c3RpZnkuWUdKX0ZMRVhfU1RBUlQsXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlIEFsaWduTW9kZS5UQU1fVE9QX0NFTlRFUjoge1xuICAgICAgcmV0dXJuIGlzQ29sdW1uXG4gICAgICAgID8ge1xuICAgICAgICAgICAgYWxpZ25JdGVtczogWUdBbGlnbi5ZR0FfQ0VOVEVSLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFlHSnVzdGlmeS5ZR0pfRkxFWF9TVEFSVCxcbiAgICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgYWxpZ25JdGVtczogWUdBbGlnbi5ZR0FfRkxFWF9TVEFSVCxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBZR0p1c3RpZnkuWUdKX0NFTlRFUixcbiAgICAgICAgICB9O1xuICAgIH1cbiAgICBjYXNlIEFsaWduTW9kZS5UQU1fVE9QX1JJR0hUOiB7XG4gICAgICByZXR1cm4gaXNDb2x1bW5cbiAgICAgICAgPyB7XG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiBZR0FsaWduLllHQV9GTEVYX0VORCxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBZR0p1c3RpZnkuWUdKX0ZMRVhfU1RBUlQsXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGFsaWduSXRlbXM6IFlHQWxpZ24uWUdBX0ZMRVhfU1RBUlQsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogWUdKdXN0aWZ5LllHSl9GTEVYX0VORCxcbiAgICAgICAgICB9O1xuICAgIH1cbiAgICBjYXNlIEFsaWduTW9kZS5UQU1fTUlERExFX0xFRlQ6IHtcbiAgICAgIHJldHVybiBpc0NvbHVtblxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGFsaWduSXRlbXM6IFlHQWxpZ24uWUdBX0ZMRVhfU1RBUlQsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogWUdKdXN0aWZ5LllHSl9DRU5URVIsXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGFsaWduSXRlbXM6IFlHQWxpZ24uWUdBX0NFTlRFUixcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBZR0p1c3RpZnkuWUdKX0ZMRVhfU1RBUlQsXG4gICAgICAgICAgfTtcbiAgICB9XG4gICAgY2FzZSBBbGlnbk1vZGUuVEFNX01JRERMRV9DRU5URVI6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFsaWduSXRlbXM6IFlHQWxpZ24uWUdBX0NFTlRFUixcbiAgICAgICAganVzdGlmeUNvbnRlbnQ6IFlHSnVzdGlmeS5ZR0pfQ0VOVEVSLFxuICAgICAgfTtcbiAgICB9XG4gICAgY2FzZSBBbGlnbk1vZGUuVEFNX01JRERMRV9SSUdIVDoge1xuICAgICAgcmV0dXJuIGlzQ29sdW1uXG4gICAgICAgID8ge1xuICAgICAgICAgICAgYWxpZ25JdGVtczogWUdBbGlnbi5ZR0FfRkxFWF9FTkQsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogWUdKdXN0aWZ5LllHSl9DRU5URVIsXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGFsaWduSXRlbXM6IFlHQWxpZ24uWUdBX0NFTlRFUixcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBZR0p1c3RpZnkuWUdKX0ZMRVhfRU5ELFxuICAgICAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgQWxpZ25Nb2RlLlRBTV9CT1RUT01fTEVGVDoge1xuICAgICAgcmV0dXJuIGlzQ29sdW1uXG4gICAgICAgID8ge1xuICAgICAgICAgICAgYWxpZ25JdGVtczogWUdBbGlnbi5ZR0FfRkxFWF9TVEFSVCxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBZR0p1c3RpZnkuWUdKX0ZMRVhfRU5ELFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiBZR0p1c3RpZnkuWUdKX0ZMRVhfRU5ELFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFlHQWxpZ24uWUdBX0ZMRVhfU1RBUlQsXG4gICAgICAgICAgfTtcbiAgICB9XG4gICAgY2FzZSBBbGlnbk1vZGUuVEFNX0JPVFRPTV9DRU5URVI6IHtcbiAgICAgIHJldHVybiBpc0NvbHVtblxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGFsaWduSXRlbXM6IFlHQWxpZ24uWUdBX0NFTlRFUixcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBZR0p1c3RpZnkuWUdKX0ZMRVhfRU5ELFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiBZR0FsaWduLllHQV9GTEVYX0VORCxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBZR0p1c3RpZnkuWUdKX0NFTlRFUixcbiAgICAgICAgICB9O1xuICAgIH1cbiAgICBjYXNlIEFsaWduTW9kZS5UQU1fQk9UVE9NX1JJR0hUOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbGlnbkl0ZW1zOiBZR0FsaWduLllHQV9GTEVYX0VORCxcbiAgICAgICAganVzdGlmeUNvbnRlbnQ6IFlHSnVzdGlmeS5ZR0pfRkxFWF9FTkQsXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCB2YWxpZEFsaWduTW9kZXMgPSBuZXcgU2V0KFtcbiAgQWxpZ25Nb2RlLlRBTV9UT1BfTEVGVCxcbiAgQWxpZ25Nb2RlLlRBTV9UT1BfQ0VOVEVSLFxuICBBbGlnbk1vZGUuVEFNX1RPUF9SSUdIVCxcbiAgQWxpZ25Nb2RlLlRBTV9NSURETEVfTEVGVCxcbiAgQWxpZ25Nb2RlLlRBTV9NSURETEVfQ0VOVEVSLFxuICBBbGlnbk1vZGUuVEFNX01JRERMRV9SSUdIVCxcbiAgQWxpZ25Nb2RlLlRBTV9CT1RUT01fTEVGVCxcbiAgQWxpZ25Nb2RlLlRBTV9CT1RUT01fQ0VOVEVSLFxuICBBbGlnbk1vZGUuVEFNX0JPVFRPTV9SSUdIVCxcbl0pO1xuXG5leHBvcnQgZnVuY3Rpb24gbWFwQWxpZ25Ub1NjcmVlbkFsaWduKFxuICBhbGlnbjogQWxpZ25Nb2RlLFxuICBmbGV4RGlyZWN0aW9uID0gWUdGbGV4RGlyZWN0aW9uLllHRkRfUk9XLFxuKTogU2NyZWVuQWxpZ25Nb2RlIHtcbiAgY29uc3QgaXNDb2x1bW4gPSBmbGV4RGlyZWN0aW9uID09PSBZR0ZsZXhEaXJlY3Rpb24uWUdGRF9DT0xVTU47XG5cbiAgLy8gQ2hlY2sgaWYgYWxpZ24gaXMgdmFsaWQgYW5kIG1hcCB1c2luZyBnZXRBbGlnbk1vZGVcbiAgaWYgKHZhbGlkQWxpZ25Nb2Rlcy5oYXMoYWxpZ24pKSB7XG4gICAgcmV0dXJuIGdldEFsaWduTW9kZShhbGlnbiwgaXNDb2x1bW4pIGFzIFNjcmVlbkFsaWduTW9kZTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgQWxpZ25Nb2RlOiAke2FsaWdufWApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VUlUcmFuc2Zvcm0oXG4gIGNvbXBvbmVudDogRW5naW5lQ29tcG9uZW50c1snVWlUcmFuc2Zvcm0nXSxcbiAgZW50aXk6IEVudGl0eSxcbiAgaGVpZ2h0ID0gMTAwLFxuICB3aWR0aCA9IDEwMCxcbiAgdW5pdDogWUdVbml0ID0gWUdVbml0LllHVV9QRVJDRU5ULFxuKSB7XG4gIGxldCB1aVRyYW5zZm9ybUNvbXBvbmVudCA9IGNvbXBvbmVudC5nZXRNdXRhYmxlT3JOdWxsKGVudGl5KTtcblxuICBpZiAoIXVpVHJhbnNmb3JtQ29tcG9uZW50KSB7XG4gICAgdWlUcmFuc2Zvcm1Db21wb25lbnQgPSBjb21wb25lbnQuY3JlYXRlKGVudGl5KTtcbiAgICB1aVRyYW5zZm9ybUNvbXBvbmVudC5oZWlnaHRVbml0ID0gdW5pdDtcbiAgICB1aVRyYW5zZm9ybUNvbXBvbmVudC53aWR0aFVuaXQgPSB1bml0O1xuICAgIHVpVHJhbnNmb3JtQ29tcG9uZW50LmhlaWdodCA9IGhlaWdodDtcbiAgICB1aVRyYW5zZm9ybUNvbXBvbmVudC53aWR0aCA9IHdpZHRoO1xuICAgIHVpVHJhbnNmb3JtQ29tcG9uZW50Lm1heEhlaWdodFVuaXQgPSB1bml0O1xuICAgIHVpVHJhbnNmb3JtQ29tcG9uZW50Lm1heFdpZHRoVW5pdCA9IHVuaXQ7XG4gICAgdWlUcmFuc2Zvcm1Db21wb25lbnQubWF4SGVpZ2h0ID0gaGVpZ2h0O1xuICAgIHVpVHJhbnNmb3JtQ29tcG9uZW50Lm1heFdpZHRoID0gd2lkdGg7XG4gIH1cblxuICBpZiAoZW50aXkgPT09IDApIHtcbiAgICB1aVRyYW5zZm9ybUNvbXBvbmVudC5wb3NpdGlvblR5cGUgPSBZR1Bvc2l0aW9uVHlwZS5ZR1BUX0FCU09MVVRFO1xuICB9XG5cbiAgcmV0dXJuIHVpVHJhbnNmb3JtQ29tcG9uZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VUlCYWNrZ3JvdW5kKFxuICBjb21wb25lbnQ6IEVuZ2luZUNvbXBvbmVudHNbJ1VpQmFja2dyb3VuZCddLFxuICBlbnRpdHk6IEVudGl0eSxcbiAgc3JjOiBzdHJpbmcsXG4gIHRleHR1cmVNb2RlID0gQmFja2dyb3VuZFRleHR1cmVNb2RlLk5JTkVfU0xJQ0VTLFxuICB3cmFwTW9kZSA9IFRleHR1cmVXcmFwTW9kZS5UV01fQ0xBTVAsXG4pIHtcbiAgcmV0dXJuIGNvbXBvbmVudC5jcmVhdGVPclJlcGxhY2UoZW50aXR5LCB7XG4gICAgdGV4dHVyZU1vZGUsXG4gICAgdGV4dHVyZToge1xuICAgICAgdGV4OiB7XG4gICAgICAgICRjYXNlOiAndGV4dHVyZScsXG4gICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICBzcmMsXG4gICAgICAgICAgd3JhcE1vZGUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgdXZzOiBbXSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGJyZWFrTGluZXModGV4dDogc3RyaW5nLCBsaW5lbGVuZ3RoOiBudW1iZXIpIHtcbiAgY29uc3QgbGluZUJyZWFrID0gJ1xcbic7XG4gIGxldCBjb3VudGVyID0gMDtcbiAgbGV0IGxpbmUgPSAnJztcbiAgbGV0IHJldHVyblRleHQgPSAnJztcbiAgbGV0IGJNYXRjaEZvdW5kID0gZmFsc2U7XG4gIGNvbnN0IGxpbmVMZW4gPSBsaW5lbGVuZ3RoID8gbGluZWxlbmd0aCA6IDUwO1xuXG4gIGlmICghdGV4dCkgcmV0dXJuICcnO1xuICBpZiAodGV4dC5sZW5ndGggPCBsaW5lTGVuICsgMSkge1xuICAgIHJldHVybiB0ZXh0O1xuICB9XG5cbiAgd2hpbGUgKGNvdW50ZXIgPCB0ZXh0Lmxlbmd0aCkge1xuICAgIGxpbmUgPSB0ZXh0LnN1YnN0cmluZyhjb3VudGVyLCBjb3VudGVyICsgbGluZUxlbik7XG4gICAgYk1hdGNoRm91bmQgPSBmYWxzZTtcbiAgICBpZiAobGluZS5sZW5ndGggPT0gbGluZUxlbikge1xuICAgICAgZm9yIChsZXQgaSA9IGxpbmUubGVuZ3RoOyBpID4gLTE7IGktLSkge1xuICAgICAgICBpZiAobGluZS5zdWJzdHJpbmcoaSwgaSArIDEpID09ICcgJykge1xuICAgICAgICAgIGNvdW50ZXIgKz0gbGluZS5zdWJzdHJpbmcoMCwgaSkubGVuZ3RoO1xuICAgICAgICAgIGxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBpKSArIGxpbmVCcmVhaztcbiAgICAgICAgICByZXR1cm5UZXh0ICs9IGxpbmU7XG4gICAgICAgICAgYk1hdGNoRm91bmQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghYk1hdGNoRm91bmQpIHtcbiAgICAgICAgY291bnRlciArPSBsaW5lLmxlbmd0aDtcbiAgICAgICAgbGluZSA9IGxpbmUgKyBsaW5lQnJlYWs7XG4gICAgICAgIHJldHVyblRleHQgKz0gbGluZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuVGV4dCArPSBsaW5lO1xuICAgICAgYnJlYWs7IC8vIFdlJ3JlIGJyZWFraW5nIG91dCBvZiB0aGUgdGhlIHdoaWxlKCksIG5vdCB0aGUgZm9yKClcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0dXJuVGV4dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFVJVGV4dChcbiAgY29tcG9uZW50OiBFbmdpbmVDb21wb25lbnRzWydVaVRleHQnXSxcbiAgZW50aXR5OiBFbnRpdHksXG4gIHRleHQ6IHN0cmluZyxcbiAgZm9udFNpemUgPSAxMCxcbiAgY29udGFpbmVyV2lkdGg6IG51bWJlcixcbiAgYWxpZ246IFRleHRBbGlnbk1vZGUgPSBUZXh0QWxpZ25Nb2RlLlRBTV9NSURETEVfQ0VOVEVSLFxuICBjb2xvcjogQ29sb3I0ID0gQ29sb3I0LldoaXRlKCksXG4pIHtcbiAgY29uc3QgbGluZUxlbmd0aCA9IE1hdGguZmxvb3IoY29udGFpbmVyV2lkdGggLyAoZm9udFNpemUgLyAxLjcpKTtcblxuICByZXR1cm4gY29tcG9uZW50LmNyZWF0ZU9yUmVwbGFjZShlbnRpdHksIHtcbiAgICB2YWx1ZTogYnJlYWtMaW5lcyh0ZXh0LCBsaW5lTGVuZ3RoKSxcbiAgICBmb250U2l6ZSxcbiAgICBmb250OiBGb250LkZfTU9OT1NQQUNFIGFzIGFueSxcbiAgICB0ZXh0QWxpZ246IGFsaWduIGFzIHVua25vd24gYXMgVGV4dEFsaWduTW9kZSxcbiAgICBjb2xvcixcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVVaVRyYW5zZm9ybUVudGl0aWVzKFxuICBlbmdpbmU6IElFbmdpbmUsXG4gIFVpVHJhbnNmb3JtOiBFbmdpbmVDb21wb25lbnRzWydVaVRyYW5zZm9ybSddLFxuICBwYXJlbnRFbnRpdHk6IEVudGl0eSxcbikge1xuICBjb25zdCBlbnRpdGllc1dpdGhVaVRyYW5zZm9ybSA9IGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoVWlUcmFuc2Zvcm0pO1xuXG4gIGZvciAoY29uc3QgW3VpRW50aXR5LCB1aVRyYW5zZm9ybV0gb2YgZW50aXRpZXNXaXRoVWlUcmFuc2Zvcm0pIHtcbiAgICBpZiAodWlUcmFuc2Zvcm0ucGFyZW50ID09PSBwYXJlbnRFbnRpdHkpIHtcbiAgICAgIC8vIFJlY3Vyc2l2ZWx5IHJlbW92ZSBjaGlsZHJlblxuICAgICAgcmVtb3ZlVWlUcmFuc2Zvcm1FbnRpdGllcyhlbmdpbmUsIFVpVHJhbnNmb3JtLCB1aUVudGl0eSk7XG4gICAgICBlbmdpbmUucmVtb3ZlRW50aXR5KHVpRW50aXR5KTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjYWxlVUlGYWN0b3IoZW5naW5lOiBJRW5naW5lKSB7XG4gIGNvbnN0IHsgVWlDYW52YXNJbmZvcm1hdGlvbiB9ID0gZ2V0RXhwbG9yZXJDb21wb25lbnRzKGVuZ2luZSk7XG4gIGNvbnN0IHVpQ2FudmFzSW5mbyA9IFVpQ2FudmFzSW5mb3JtYXRpb24uZ2V0T3JOdWxsKGVuZ2luZS5Sb290RW50aXR5KTtcblxuICBpZiAoIXVpQ2FudmFzSW5mbykgcmV0dXJuIDE7XG5cbiAgY29uc3Qgc2NhbGVGYWN0b3IgPSBNYXRoLm1pbih1aUNhbnZhc0luZm8ud2lkdGggLyAxOTIwLCB1aUNhbnZhc0luZm8uaGVpZ2h0IC8gMTA4MCk7XG5cbiAgcmV0dXJuIHNjYWxlRmFjdG9yO1xufVxuXG5jb25zdCBCVE5fQ0xPU0VfVEVYVF9BTk5PVU5DRU1FTlQgPSBgJHtDT05URU5UX1VSTH0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvdGV4dC1hbm5vdW5jZW1lbnQtY2xvc2UtYnV0dG9uLnBuZ2A7XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93Q2FwdGNoYVByb21wdChcbiAgZW5naW5lOiBJRW5naW5lLFxuICBVaVRyYW5zZm9ybTogRW5naW5lQ29tcG9uZW50c1snVWlUcmFuc2Zvcm0nXSxcbiAgVWlCYWNrZ3JvdW5kOiBFbmdpbmVDb21wb25lbnRzWydVaUJhY2tncm91bmQnXSxcbiAgVWlUZXh0OiBFbmdpbmVDb21wb25lbnRzWydVaVRleHQnXSxcbiAgVWlJbnB1dDogRW5naW5lQ29tcG9uZW50c1snVWlJbnB1dCddLFxuICBVaUlucHV0UmVzdWx0OiBFbmdpbmVDb21wb25lbnRzWydVaUlucHV0UmVzdWx0J10sXG4gIHBvaW50ZXJFdmVudHNTeXN0ZW06IFBvaW50ZXJFdmVudHNTeXN0ZW0sXG4gIGRhdGE6IHsgY2FtcGFpZ25JZDogc3RyaW5nOyBkaXNwZW5zZXJLZXk6IHN0cmluZzsgY2FwdGNoYTogYW55IH0sXG4gIG9uU3VibWl0OiAoaW5wdXRUZXh0OiBzdHJpbmcpID0+IHZvaWQsXG4pIHtcbiAgY29uc29sZS5sb2coJ3Nob3dDYXB0Y2hhUHJvbXB0Jyk7XG4gIGNvbnN0IHNjYWxlRmFjdG9yID0gZ2V0U2NhbGVVSUZhY3RvcihlbmdpbmUpO1xuICAvLyBDcmVhdGUgVUkgc3RhY2sgZm9yIGNlbnRlcmluZ1xuICBjb25zdCB1aVN0YWNrID0gZW5naW5lLmFkZEVudGl0eSgpO1xuICBjb25zdCB1aVN0YWNrVHJhbnNmb3JtID0gZ2V0VUlUcmFuc2Zvcm0oVWlUcmFuc2Zvcm0sIHVpU3RhY2spO1xuICB1aVN0YWNrVHJhbnNmb3JtLmRpc3BsYXkgPSBZR0Rpc3BsYXkuWUdEX0ZMRVg7XG4gIHVpU3RhY2tUcmFuc2Zvcm0uYWxpZ25JdGVtcyA9IFlHQWxpZ24uWUdBX0NFTlRFUjtcbiAgdWlTdGFja1RyYW5zZm9ybS5qdXN0aWZ5Q29udGVudCA9IFlHSnVzdGlmeS5ZR0pfQ0VOVEVSO1xuXG4gIC8vIENyZWF0ZSBjb250YWluZXJcbiAgY29uc3QgY29udGFpbmVyRW50aXR5ID0gZW5naW5lLmFkZEVudGl0eSgpO1xuICBjb25zdCBjb250YWluZXJUcmFuc2Zvcm0gPSBnZXRVSVRyYW5zZm9ybShcbiAgICBVaVRyYW5zZm9ybSxcbiAgICBjb250YWluZXJFbnRpdHksXG4gICAgMjYwICogc2NhbGVGYWN0b3IsXG4gICAgMjUwICogc2NhbGVGYWN0b3IsXG4gICAgWUdVbml0LllHVV9QT0lOVCxcbiAgKTtcbiAgY29udGFpbmVyVHJhbnNmb3JtLnBhcmVudCA9IHVpU3RhY2s7XG4gIGNvbnRhaW5lclRyYW5zZm9ybS5kaXNwbGF5ID0gWUdEaXNwbGF5LllHRF9GTEVYO1xuICBjb250YWluZXJUcmFuc2Zvcm0uZmxleERpcmVjdGlvbiA9IFlHRmxleERpcmVjdGlvbi5ZR0ZEX0NPTFVNTjtcbiAgY29udGFpbmVyVHJhbnNmb3JtLmFsaWduSXRlbXMgPSBZR0FsaWduLllHQV9DRU5URVI7XG4gIGNvbnRhaW5lclRyYW5zZm9ybS5wYWRkaW5nVG9wID0gMjAgKiBzY2FsZUZhY3RvcjtcbiAgY29udGFpbmVyVHJhbnNmb3JtLnBhZGRpbmdUb3BVbml0ID0gWUdVbml0LllHVV9QT0lOVDtcbiAgY29udGFpbmVyVHJhbnNmb3JtLnBhZGRpbmdCb3R0b20gPSAyMCAqIHNjYWxlRmFjdG9yO1xuICBjb250YWluZXJUcmFuc2Zvcm0ucGFkZGluZ0JvdHRvbVVuaXQgPSBZR1VuaXQuWUdVX1BPSU5UO1xuICBjb250YWluZXJUcmFuc2Zvcm0ucGFkZGluZ0xlZnQgPSAyMCAqIHNjYWxlRmFjdG9yO1xuICBjb250YWluZXJUcmFuc2Zvcm0ucGFkZGluZ0xlZnRVbml0ID0gWUdVbml0LllHVV9QT0lOVDtcbiAgY29udGFpbmVyVHJhbnNmb3JtLnBhZGRpbmdSaWdodCA9IDIwICogc2NhbGVGYWN0b3I7XG4gIGNvbnRhaW5lclRyYW5zZm9ybS5wYWRkaW5nUmlnaHRVbml0ID0gWUdVbml0LllHVV9QT0lOVDtcbiAgY29udGFpbmVyVHJhbnNmb3JtLnBvaW50ZXJGaWx0ZXIgPSBQb2ludGVyRmlsdGVyTW9kZS5QRk1fQkxPQ0s7XG5cbiAgLy8gRElTQ0xBSU1FUjogV2hlbiB1c2luZyBVaUJhY2tncm91bmQsIGVjcyBnaXZlcyB0aGVtIHByaW9yaXR5IG92ZXIgdGhlIFVpVHJhbnNmb3JtcywgbGVhZGluZyB0byBhbiB1bmV4cGVjdGVkIGJlaGF2aW9yIHdoZW4gd29ya2luZyB3aXRoIGZsZXggcG9zaXRpb25pbmcuXG4gIC8vIEFkZCBkYXJrIGJhY2tncm91bmRcbiAgVWlCYWNrZ3JvdW5kLmNyZWF0ZU9yUmVwbGFjZShjb250YWluZXJFbnRpdHksIHtcbiAgICBjb2xvcjogQ29sb3I0LmNyZWF0ZSgwLjE1LCAwLjE1LCAwLjE1LCAwLjk1KSxcbiAgICB0ZXh0dXJlTW9kZTogQmFja2dyb3VuZFRleHR1cmVNb2RlLk5JTkVfU0xJQ0VTLFxuICAgIHV2czogW10sXG4gIH0pO1xuXG4gIC8vIENyZWF0ZSBjbG9zZSBidXR0b24gZW50aXR5XG4gIGNvbnN0IGNsb3NlQnV0dG9uRW50aXR5ID0gZW5naW5lLmFkZEVudGl0eSgpO1xuICBjb25zdCBjbG9zZUJ1dHRvblRyYW5zZm9ybSA9IGdldFVJVHJhbnNmb3JtKFxuICAgIFVpVHJhbnNmb3JtLFxuICAgIGNsb3NlQnV0dG9uRW50aXR5LFxuICAgIDI0ICogc2NhbGVGYWN0b3IsXG4gICAgMjQgKiBzY2FsZUZhY3RvcixcbiAgICBZR1VuaXQuWUdVX1BPSU5ULFxuICApO1xuICBjbG9zZUJ1dHRvblRyYW5zZm9ybS5wYXJlbnQgPSBjb250YWluZXJFbnRpdHk7XG4gIGNsb3NlQnV0dG9uVHJhbnNmb3JtLnBvc2l0aW9uVHlwZSA9IFlHUG9zaXRpb25UeXBlLllHUFRfQUJTT0xVVEU7XG4gIGNsb3NlQnV0dG9uVHJhbnNmb3JtLnBvc2l0aW9uUmlnaHQgPSA1ICogc2NhbGVGYWN0b3I7XG4gIGNsb3NlQnV0dG9uVHJhbnNmb3JtLnBvc2l0aW9uUmlnaHRVbml0ID0gWUdVbml0LllHVV9QT0lOVDtcbiAgY2xvc2VCdXR0b25UcmFuc2Zvcm0ucG9zaXRpb25Ub3AgPSA1ICogc2NhbGVGYWN0b3I7XG4gIGNsb3NlQnV0dG9uVHJhbnNmb3JtLnBvc2l0aW9uVG9wVW5pdCA9IFlHVW5pdC5ZR1VfUE9JTlQ7XG4gIGNsb3NlQnV0dG9uVHJhbnNmb3JtLnBvaW50ZXJGaWx0ZXIgPSBQb2ludGVyRmlsdGVyTW9kZS5QRk1fQkxPQ0s7XG5cbiAgZ2V0VUlCYWNrZ3JvdW5kKFxuICAgIFVpQmFja2dyb3VuZCxcbiAgICBjbG9zZUJ1dHRvbkVudGl0eSxcbiAgICBCVE5fQ0xPU0VfVEVYVF9BTk5PVU5DRU1FTlQsXG4gICAgQmFja2dyb3VuZFRleHR1cmVNb2RlLlNUUkVUQ0gsXG4gICk7XG5cbiAgLy8gQ2xvc2UgYnV0dG9uIGNsaWNrIGhhbmRsZXJcbiAgcG9pbnRlckV2ZW50c1N5c3RlbS5vblBvaW50ZXJEb3duKFxuICAgIHtcbiAgICAgIGVudGl0eTogY2xvc2VCdXR0b25FbnRpdHksXG4gICAgICBvcHRzOiB7XG4gICAgICAgIGJ1dHRvbjogSW5wdXRBY3Rpb24uSUFfUE9JTlRFUixcbiAgICAgIH0sXG4gICAgfSxcbiAgICAoKSA9PiB7XG4gICAgICByZW1vdmVVaVRyYW5zZm9ybUVudGl0aWVzKGVuZ2luZSwgVWlUcmFuc2Zvcm0sIHVpU3RhY2spO1xuICAgICAgZW5naW5lLnJlbW92ZUVudGl0eSh1aVN0YWNrKTtcbiAgICB9LFxuICApO1xuXG4gIC8vIEFkZCB0aXRsZSB0ZXh0XG4gIGNvbnN0IHRpdGxlRW50aXR5ID0gZW5naW5lLmFkZEVudGl0eSgpO1xuICBjb25zdCB0aXRsZVRyYW5zZm9ybSA9IGdldFVJVHJhbnNmb3JtKFxuICAgIFVpVHJhbnNmb3JtLFxuICAgIHRpdGxlRW50aXR5LFxuICAgIDIwICogc2NhbGVGYWN0b3IsXG4gICAgMjAwICogc2NhbGVGYWN0b3IsXG4gICAgWUdVbml0LllHVV9QT0lOVCxcbiAgKTtcbiAgdGl0bGVUcmFuc2Zvcm0ucGFyZW50ID0gY29udGFpbmVyRW50aXR5O1xuICB0aXRsZVRyYW5zZm9ybS5tYXJnaW5Cb3R0b20gPSAxMCAqIHNjYWxlRmFjdG9yO1xuICB0aXRsZVRyYW5zZm9ybS5tYXJnaW5Cb3R0b21Vbml0ID0gWUdVbml0LllHVV9QT0lOVDtcbiAgdGl0bGVUcmFuc2Zvcm0ucG9zaXRpb25UeXBlID0gWUdQb3NpdGlvblR5cGUuWUdQVF9BQlNPTFVURTtcbiAgdGl0bGVUcmFuc2Zvcm0ucG9zaXRpb25Ub3AgPSAzMCAqIHNjYWxlRmFjdG9yO1xuICB0aXRsZVRyYW5zZm9ybS5wb3NpdGlvblRvcFVuaXQgPSBZR1VuaXQuWUdVX1BPSU5UO1xuXG4gIGdldFVJVGV4dChcbiAgICBVaVRleHQsXG4gICAgdGl0bGVFbnRpdHksXG4gICAgJ0VudGVyIHRoZSBjYXB0Y2hhJyxcbiAgICAyMCAqIHNjYWxlRmFjdG9yLFxuICAgIDIwMCAqIHNjYWxlRmFjdG9yLFxuICAgIFRleHRBbGlnbk1vZGUuVEFNX01JRERMRV9DRU5URVIsXG4gICAgQ29sb3I0LldoaXRlKCksXG4gICk7XG5cbiAgLy8gQWRkIGNhcHRjaGEgaW1hZ2VcbiAgY29uc3QgaW1hZ2VFbnRpdHkgPSBlbmdpbmUuYWRkRW50aXR5KCk7XG4gIGNvbnN0IGltYWdlVHJhbnNmb3JtID0gZ2V0VUlUcmFuc2Zvcm0oXG4gICAgVWlUcmFuc2Zvcm0sXG4gICAgaW1hZ2VFbnRpdHksXG4gICAgODAgKiBzY2FsZUZhY3RvcixcbiAgICAyMDAgKiBzY2FsZUZhY3RvcixcbiAgICBZR1VuaXQuWUdVX1BPSU5ULFxuICApO1xuICBpbWFnZVRyYW5zZm9ybS5wYXJlbnQgPSBjb250YWluZXJFbnRpdHk7XG4gIGltYWdlVHJhbnNmb3JtLm1hcmdpbkJvdHRvbSA9IDEwICogc2NhbGVGYWN0b3I7XG4gIGltYWdlVHJhbnNmb3JtLm1hcmdpbkJvdHRvbVVuaXQgPSBZR1VuaXQuWUdVX1BPSU5UO1xuICBpbWFnZVRyYW5zZm9ybS5wb3NpdGlvblR5cGUgPSBZR1Bvc2l0aW9uVHlwZS5ZR1BUX0FCU09MVVRFO1xuICBpbWFnZVRyYW5zZm9ybS5wb3NpdGlvblRvcCA9IDYwICogc2NhbGVGYWN0b3I7XG4gIGltYWdlVHJhbnNmb3JtLnBvc2l0aW9uVG9wVW5pdCA9IFlHVW5pdC5ZR1VfUE9JTlQ7XG5cbiAgZ2V0VUlCYWNrZ3JvdW5kKFVpQmFja2dyb3VuZCwgaW1hZ2VFbnRpdHksIGRhdGEuY2FwdGNoYS5pbWFnZSwgQmFja2dyb3VuZFRleHR1cmVNb2RlLlNUUkVUQ0gpO1xuXG4gIC8vIEFkZCBpbnB1dCBmaWVsZFxuICBjb25zdCBpbnB1dEVudGl0eSA9IGVuZ2luZS5hZGRFbnRpdHkoKTtcbiAgY29uc3QgaW5wdXRUcmFuc2Zvcm0gPSBnZXRVSVRyYW5zZm9ybShcbiAgICBVaVRyYW5zZm9ybSxcbiAgICBpbnB1dEVudGl0eSxcbiAgICA1MCAqIHNjYWxlRmFjdG9yLFxuICAgIDIwMCAqIHNjYWxlRmFjdG9yLFxuICAgIFlHVW5pdC5ZR1VfUE9JTlQsXG4gICk7XG4gIGlucHV0VHJhbnNmb3JtLnBhcmVudCA9IGNvbnRhaW5lckVudGl0eTtcbiAgaW5wdXRUcmFuc2Zvcm0ubWFyZ2luQm90dG9tID0gMTAgKiBzY2FsZUZhY3RvcjtcbiAgaW5wdXRUcmFuc2Zvcm0ubWFyZ2luQm90dG9tVW5pdCA9IFlHVW5pdC5ZR1VfUE9JTlQ7XG4gIGlucHV0VHJhbnNmb3JtLnBvc2l0aW9uVHlwZSA9IFlHUG9zaXRpb25UeXBlLllHUFRfQUJTT0xVVEU7XG4gIGlucHV0VHJhbnNmb3JtLnBvc2l0aW9uVG9wID0gMTUwICogc2NhbGVGYWN0b3I7XG4gIGlucHV0VHJhbnNmb3JtLnBvc2l0aW9uVG9wVW5pdCA9IFlHVW5pdC5ZR1VfUE9JTlQ7XG5cbiAgVWlJbnB1dC5jcmVhdGVPclJlcGxhY2UoaW5wdXRFbnRpdHksIHtcbiAgICBwbGFjZWhvbGRlcjogJ0VudGVyIHRoZSBjYXB0Y2hhJyxcbiAgICBjb2xvcjogQ29sb3I0LldoaXRlKCksXG4gICAgcGxhY2Vob2xkZXJDb2xvcjogQ29sb3I0LmNyZWF0ZSgwLjMsIDAuMywgMC4zLCAxKSxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgdGV4dEFsaWduOiBUZXh0QWxpZ25Nb2RlLlRBTV9NSURETEVfQ0VOVEVSLFxuICAgIGZvbnQ6IEZvbnQuRl9NT05PU1BBQ0UgYXMgYW55LFxuICAgIGZvbnRTaXplOiAxMCAqIHNjYWxlRmFjdG9yLFxuICB9KTtcblxuICBVaUlucHV0UmVzdWx0LmNyZWF0ZU9yUmVwbGFjZShpbnB1dEVudGl0eSwge1xuICAgIHZhbHVlOiAnJyxcbiAgICBpc1N1Ym1pdDogZmFsc2UsXG4gIH0pO1xuXG4gIC8vIEFkZCBzdWJtaXQgYnV0dG9uXG4gIGNvbnN0IGJ1dHRvbkVudGl0eSA9IGVuZ2luZS5hZGRFbnRpdHkoKTtcbiAgY29uc3QgYnV0dG9uVHJhbnNmb3JtID0gZ2V0VUlUcmFuc2Zvcm0oXG4gICAgVWlUcmFuc2Zvcm0sXG4gICAgYnV0dG9uRW50aXR5LFxuICAgIDMwICogc2NhbGVGYWN0b3IsXG4gICAgMTAwICogc2NhbGVGYWN0b3IsXG4gICAgWUdVbml0LllHVV9QT0lOVCxcbiAgKTtcbiAgYnV0dG9uVHJhbnNmb3JtLnBhcmVudCA9IGNvbnRhaW5lckVudGl0eTtcbiAgYnV0dG9uVHJhbnNmb3JtLm1hcmdpbkJvdHRvbSA9IDEwICogc2NhbGVGYWN0b3I7XG4gIGJ1dHRvblRyYW5zZm9ybS5tYXJnaW5Cb3R0b21Vbml0ID0gWUdVbml0LllHVV9QT0lOVDtcbiAgYnV0dG9uVHJhbnNmb3JtLnBvc2l0aW9uVHlwZSA9IFlHUG9zaXRpb25UeXBlLllHUFRfQUJTT0xVVEU7XG4gIGJ1dHRvblRyYW5zZm9ybS5wb3NpdGlvblRvcCA9IDIxMCAqIHNjYWxlRmFjdG9yO1xuICBidXR0b25UcmFuc2Zvcm0ucG9zaXRpb25Ub3BVbml0ID0gWUdVbml0LllHVV9QT0lOVDtcbiAgYnV0dG9uVHJhbnNmb3JtLnBvaW50ZXJGaWx0ZXIgPSBQb2ludGVyRmlsdGVyTW9kZS5QRk1fQkxPQ0s7XG5cbiAgZ2V0VUlUZXh0KFxuICAgIFVpVGV4dCxcbiAgICBidXR0b25FbnRpdHksXG4gICAgJ1N1Ym1pdCcsXG4gICAgMTYgKiBzY2FsZUZhY3RvcixcbiAgICAxMDAgKiBzY2FsZUZhY3RvcixcbiAgICBUZXh0QWxpZ25Nb2RlLlRBTV9NSURETEVfQ0VOVEVSLFxuICAgIENvbG9yNC5XaGl0ZSgpLFxuICApO1xuXG4gIFVpQmFja2dyb3VuZC5jcmVhdGVPclJlcGxhY2UoYnV0dG9uRW50aXR5LCB7XG4gICAgY29sb3I6IHsgcjogMC4zLCBnOiAwLjMsIGI6IDAuMywgYTogMSB9LFxuICAgIHRleHR1cmVNb2RlOiBCYWNrZ3JvdW5kVGV4dHVyZU1vZGUuTklORV9TTElDRVMsXG4gICAgdXZzOiBbXSxcbiAgfSk7XG5cbiAgLy8gQWRkIGNsaWNrIGhhbmRsZXIgZm9yIHN1Ym1pdCBidXR0b25cbiAgcG9pbnRlckV2ZW50c1N5c3RlbS5vblBvaW50ZXJEb3duKFxuICAgIHtcbiAgICAgIGVudGl0eTogYnV0dG9uRW50aXR5LFxuICAgICAgb3B0czoge1xuICAgICAgICBidXR0b246IElucHV0QWN0aW9uLklBX1BPSU5URVIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgKCkgPT4ge1xuICAgICAgLy8gR2V0IGlucHV0IHRleHQgdmFsdWUgYW5kIGNhbGwgb25TdWJtaXQgY2FsbGJhY2tcbiAgICAgIGNvbnN0IGlucHV0VGV4dCA9IFVpSW5wdXRSZXN1bHQuZ2V0KGlucHV0RW50aXR5KT8udmFsdWUgfHwgJyc7XG4gICAgICBvblN1Ym1pdChpbnB1dFRleHQpO1xuXG4gICAgICAvLyBSZW1vdmUgVUlcbiAgICAgIHJlbW92ZVVpVHJhbnNmb3JtRW50aXRpZXMoZW5naW5lLCBVaVRyYW5zZm9ybSwgdWlTdGFjayk7XG4gICAgICBlbmdpbmUucmVtb3ZlRW50aXR5KHVpU3RhY2spO1xuICAgIH0sXG4gICk7XG5cbiAgcmV0dXJuIHVpU3RhY2s7XG59XG4iXX0=
|
|
314
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdWkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFM0QsU0FBUyxZQUFZLENBQUMsS0FBZ0IsRUFBRSxRQUFpQjtJQUN2RCxRQUFRLEtBQUssRUFBRSxDQUFDO1FBQ2QsS0FBSyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUM1QixPQUFPO2dCQUNMLFVBQVUsR0FBd0I7Z0JBQ2xDLGNBQWMsR0FBMEI7YUFDekMsQ0FBQztRQUNKLENBQUM7UUFDRCxLQUFLLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQzlCLE9BQU8sUUFBUTtnQkFDYixDQUFDLENBQUM7b0JBQ0UsVUFBVSxHQUFvQjtvQkFDOUIsY0FBYyxHQUEwQjtpQkFDekM7Z0JBQ0gsQ0FBQyxDQUFDO29CQUNFLFVBQVUsR0FBd0I7b0JBQ2xDLGNBQWMsR0FBc0I7aUJBQ3JDLENBQUM7UUFDUixDQUFDO1FBQ0QsS0FBSyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUM3QixPQUFPLFFBQVE7Z0JBQ2IsQ0FBQyxDQUFDO29CQUNFLFVBQVUsR0FBc0I7b0JBQ2hDLGNBQWMsR0FBMEI7aUJBQ3pDO2dCQUNILENBQUMsQ0FBQztvQkFDRSxVQUFVLEdBQXdCO29CQUNsQyxjQUFjLEdBQXdCO2lCQUN2QyxDQUFDO1FBQ1IsQ0FBQztRQUNELEtBQUssU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDL0IsT0FBTyxRQUFRO2dCQUNiLENBQUMsQ0FBQztvQkFDRSxVQUFVLEdBQXdCO29CQUNsQyxjQUFjLEdBQXNCO2lCQUNyQztnQkFDSCxDQUFDLENB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LENBQUMsS0FBSyxFQUFFLENBQ2YsQ0FBQztJQUVGLFlBQVksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFO1FBQ3pDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDdkMsV0FBVyxHQUFtQztRQUM5QyxHQUFHLEVBQUUsRUFBRTtLQUNSLENBQUMsQ0FBQztJQUdILG1CQUFtQixDQUFDLGFBQWEsQ0FDL0I7UUFDRSxNQUFNLEVBQUUsWUFBWTtRQUNwQixJQUFJLEVBQUU7WUFDSixNQUFNLEdBQXdCO1NBQy9CO0tBQ0YsRUFDRCxHQUFHLEVBQUU7UUFFSCxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDOUQsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBR3BCLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixDQUFDLENBQ0YsQ0FBQztJQUVGLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElFbmdpbmUsIEVudGl0eSwgUG9pbnRlckV2ZW50c1N5c3RlbSB9IGZyb20gJ0BkY2wvZWNzJztcbmltcG9ydCB7XG4gIEJhY2tncm91bmRUZXh0dXJlTW9kZSxcbiAgSW5wdXRBY3Rpb24sXG4gIFRleHRBbGlnbk1vZGUsXG4gIFRleHR1cmVXcmFwTW9kZSxcbiAgWUdBbGlnbixcbiAgWUdGbGV4RGlyZWN0aW9uLFxuICBZR0p1c3RpZnksXG4gIFlHUG9zaXRpb25UeXBlLFxuICBZR1VuaXQsXG4gIFlHRGlzcGxheSxcbiAgUG9pbnRlckZpbHRlck1vZGUsXG59IGZyb20gJ0BkY2wvZWNzJztcbmltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvc2RrL21hdGgnO1xuaW1wb3J0IHR5cGUgeyBFbmdpbmVDb21wb25lbnRzIH0gZnJvbSAnLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgdHlwZSB7IFNjcmVlbkFsaWduTW9kZSB9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHsgQWxpZ25Nb2RlLCBGb250IH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgeyBDT05URU5UX1VSTCB9IGZyb20gJy4vYWRtaW4tdG9vbGtpdC11aS9jb25zdGFudHMnO1xuXG5mdW5jdGlvbiBnZXRBbGlnbk1vZGUoYWxpZ246IEFsaWduTW9kZSwgaXNDb2x1bW46IGJvb2xlYW4pIHtcbiAgc3dpdGNoIChhbGlnbikge1xuICAgIGNhc2UgQWxpZ25Nb2RlLlRBTV9UT1BfTEVGVDoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWxpZ25JdGVtczogWUdBbGlnbi5ZR0FfRkxFWF9TVEFSVCxcbiAgICAgICAganVzdGlmeUNvbnRlbnQ6IFlHSnVzdGlmeS5ZR0pfRkxFWF9TVEFSVCxcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgQWxpZ25Nb2RlLlRBTV9UT1BfQ0VOVEVSOiB7XG4gICAgICByZXR1cm4gaXNDb2x1bW5cbiAgICAgICAgPyB7XG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiBZR0FsaWduLllHQV9DRU5URVIsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogWUdKdXN0aWZ5LllHSl9GTEVYX1NUQVJULFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiBZR0FsaWduLllHQV9GTEVYX1NUQVJULFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFlHSnVzdGlmeS5ZR0pfQ0VOVEVSLFxuICAgICAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgQWxpZ25Nb2RlLlRBTV9UT1BfUklHSFQ6IHtcbiAgICAgIHJldHVybiBpc0NvbHVtblxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGFsaWduSXRlbXM6IFlHQWxpZ24uWUdBX0ZMRVhfRU5ELFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFlHSnVzdGlmeS5ZR0pfRkxFWF9TVEFSVCxcbiAgICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgYWxpZ25JdGVtczogWUdBbGlnbi5ZR0FfRkxFWF9TVEFSVCxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBZR0p1c3RpZnkuWUdKX0ZMRVhfRU5ELFxuICAgICAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgQWxpZ25Nb2RlLlRBTV9NSURETEVfTEVGVDoge1xuICAgICAgcmV0dXJuIGlzQ29sdW1uXG4gICAgICAgID8ge1xuICAgICAgICAgICAgYWxpZ25JdGVtczogWUdBbGlnbi5ZR0FfRkxFWF9TVEFSVCxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBZR0p1c3RpZnkuWUdKX0NFTlRFUixcbiAgICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgYWxpZ25JdGVtczogWUdBbGlnbi5ZR0FfQ0VOVEVSLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFlHSnVzdGlmeS5ZR0pfRkxFWF9TVEFSVCxcbiAgICAgICAgICB9O1xuICAgIH1cbiAgICBjYXNlIEFsaWduTW9kZS5UQU1fTUlERExFX0NFTlRFUjoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWxpZ25JdGVtczogWUdBbGlnbi5ZR0FfQ0VOVEVSLFxuICAgICAgICBqdXN0aWZ5Q29udGVudDogWUdKdXN0aWZ5LllHSl9DRU5URVIsXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlIEFsaWduTW9kZS5UQU1fTUlERExFX1JJR0hUOiB7XG4gICAgICByZXR1cm4gaXNDb2x1bW5cbiAgICAgICAgPyB7XG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiBZR0FsaWduLllHQV9GTEVYX0VORCxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBZR0p1c3RpZnkuWUdKX0NFTlRFUixcbiAgICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgYWxpZ25JdGVtczogWUdBbGlnbi5ZR0FfQ0VOVEVSLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFlHSnVzdGlmeS5ZR0pfRkxFWF9FTkQsXG4gICAgICAgICAgfTtcbiAgICB9XG4gICAgY2FzZSBBbGlnbk1vZGUuVEFNX0JPVFRPTV9MRUZUOiB7XG4gICAgICByZXR1cm4gaXNDb2x1bW5cbiAgICAgICAgPyB7XG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiBZR0FsaWduLllHQV9GTEVYX1NUQVJULFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFlHSnVzdGlmeS5ZR0pfRkxFWF9FTkQsXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGFsaWduSXRlbXM6IFlHSnVzdGlmeS5ZR0pfRkxFWF9FTkQsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogWUdBbGlnbi5ZR0FfRkxFWF9TVEFSVCxcbiAgICAgICAgICB9O1xuICAgIH1cbiAgICBjYXNlIEFsaWduTW9kZS5UQU1fQk9UVE9NX0NFTlRFUjoge1xuICAgICAgcmV0dXJuIGlzQ29sdW1uXG4gICAgICAgID8ge1xuICAgICAgICAgICAgYWxpZ25JdGVtczogWUdBbGlnbi5ZR0FfQ0VOVEVSLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFlHSnVzdGlmeS5ZR0pfRkxFWF9FTkQsXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGFsaWduSXRlbXM6IFlHQWxpZ24uWUdBX0ZMRVhfRU5ELFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFlHSnVzdGlmeS5ZR0pfQ0VOVEVSLFxuICAgICAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgQWxpZ25Nb2RlLlRBTV9CT1RUT01fUklHSFQ6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFsaWduSXRlbXM6IFlHQWxpZ24uWUdBX0ZMRVhfRU5ELFxuICAgICAgICBqdXN0aWZ5Q29udGVudDogWUdKdXN0aWZ5LllHSl9GTEVYX0VORCxcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IHZhbGlkQWxpZ25Nb2RlcyA9IG5ldyBTZXQoW1xuICBBbGlnbk1vZGUuVEFNX1RPUF9MRUZULFxuICBBbGlnbk1vZGUuVEFNX1RPUF9DRU5URVIsXG4gIEFsaWduTW9kZS5UQU1fVE9QX1JJR0hULFxuICBBbGlnbk1vZGUuVEFNX01JRERMRV9MRUZULFxuICBBbGlnbk1vZGUuVEFNX01JRERMRV9DRU5URVIsXG4gIEFsaWduTW9kZS5UQU1fTUlERExFX1JJR0hULFxuICBBbGlnbk1vZGUuVEFNX0JPVFRPTV9MRUZULFxuICBBbGlnbk1vZGUuVEFNX0JPVFRPTV9DRU5URVIsXG4gIEFsaWduTW9kZS5UQU1fQk9UVE9NX1JJR0hULFxuXSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBBbGlnblRvU2NyZWVuQWxpZ24oXG4gIGFsaWduOiBBbGlnbk1vZGUsXG4gIGZsZXhEaXJlY3Rpb24gPSBZR0ZsZXhEaXJlY3Rpb24uWUdGRF9ST1csXG4pOiBTY3JlZW5BbGlnbk1vZGUge1xuICBjb25zdCBpc0NvbHVtbiA9IGZsZXhEaXJlY3Rpb24gPT09IFlHRmxleERpcmVjdGlvbi5ZR0ZEX0NPTFVNTjtcblxuICAvLyBDaGVjayBpZiBhbGlnbiBpcyB2YWxpZCBhbmQgbWFwIHVzaW5nIGdldEFsaWduTW9kZVxuICBpZiAodmFsaWRBbGlnbk1vZGVzLmhhcyhhbGlnbikpIHtcbiAgICByZXR1cm4gZ2V0QWxpZ25Nb2RlKGFsaWduLCBpc0NvbHVtbikgYXMgU2NyZWVuQWxpZ25Nb2RlO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBBbGlnbk1vZGU6ICR7YWxpZ259YCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVSVRyYW5zZm9ybShcbiAgY29tcG9uZW50OiBFbmdpbmVDb21wb25lbnRzWydVaVRyYW5zZm9ybSddLFxuICBlbnRpeTogRW50aXR5LFxuICBoZWlnaHQgPSAxMDAsXG4gIHdpZHRoID0gMTAwLFxuICB1bml0OiBZR1VuaXQgPSBZR1VuaXQuWUdVX1BFUkNFTlQsXG4pIHtcbiAgbGV0IHVpVHJhbnNmb3JtQ29tcG9uZW50ID0gY29tcG9uZW50LmdldE11dGFibGVPck51bGwoZW50aXkpO1xuXG4gIGlmICghdWlUcmFuc2Zvcm1Db21wb25lbnQpIHtcbiAgICB1aVRyYW5zZm9ybUNvbXBvbmVudCA9IGNvbXBvbmVudC5jcmVhdGUoZW50aXkpO1xuICAgIHVpVHJhbnNmb3JtQ29tcG9uZW50LmhlaWdodFVuaXQgPSB1bml0O1xuICAgIHVpVHJhbnNmb3JtQ29tcG9uZW50LndpZHRoVW5pdCA9IHVuaXQ7XG4gICAgdWlUcmFuc2Zvcm1Db21wb25lbnQuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgIHVpVHJhbnNmb3JtQ29tcG9uZW50LndpZHRoID0gd2lkdGg7XG4gICAgdWlUcmFuc2Zvcm1Db21wb25lbnQubWF4SGVpZ2h0VW5pdCA9IHVuaXQ7XG4gICAgdWlUcmFuc2Zvcm1Db21wb25lbnQubWF4V2lkdGhVbml0ID0gdW5pdDtcbiAgICB1aVRyYW5zZm9ybUNvbXBvbmVudC5tYXhIZWlnaHQgPSBoZWlnaHQ7XG4gICAgdWlUcmFuc2Zvcm1Db21wb25lbnQubWF4V2lkdGggPSB3aWR0aDtcbiAgfVxuXG4gIGlmIChlbnRpeSA9PT0gMCkge1xuICAgIHVpVHJhbnNmb3JtQ29tcG9uZW50LnBvc2l0aW9uVHlwZSA9IFlHUG9zaXRpb25UeXBlLllHUFRfQUJTT0xVVEU7XG4gIH1cblxuICByZXR1cm4gdWlUcmFuc2Zvcm1Db21wb25lbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVSUJhY2tncm91bmQoXG4gIGNvbXBvbmVudDogRW5naW5lQ29tcG9uZW50c1snVWlCYWNrZ3JvdW5kJ10sXG4gIGVudGl0eTogRW50aXR5LFxuICBzcmM6IHN0cmluZyxcbiAgdGV4dHVyZU1vZGUgPSBCYWNrZ3JvdW5kVGV4dHVyZU1vZGUuTklORV9TTElDRVMsXG4gIHdyYXBNb2RlID0gVGV4dHVyZVdyYXBNb2RlLlRXTV9DTEFNUCxcbikge1xuICByZXR1cm4gY29tcG9uZW50LmNyZWF0ZU9yUmVwbGFjZShlbnRpdHksIHtcbiAgICB0ZXh0dXJlTW9kZSxcbiAgICB0ZXh0dXJlOiB7XG4gICAgICB0ZXg6IHtcbiAgICAgICAgJGNhc2U6ICd0ZXh0dXJlJyxcbiAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgIHNyYyxcbiAgICAgICAgICB3cmFwTW9kZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB1dnM6IFtdLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gYnJlYWtMaW5lcyh0ZXh0OiBzdHJpbmcsIGxpbmVsZW5ndGg6IG51bWJlcikge1xuICBjb25zdCBsaW5lQnJlYWsgPSAnXFxuJztcbiAgbGV0IGNvdW50ZXIgPSAwO1xuICBsZXQgbGluZSA9ICcnO1xuICBsZXQgcmV0dXJuVGV4dCA9ICcnO1xuICBsZXQgYk1hdGNoRm91bmQgPSBmYWxzZTtcbiAgY29uc3QgbGluZUxlbiA9IGxpbmVsZW5ndGggPyBsaW5lbGVuZ3RoIDogNTA7XG5cbiAgaWYgKCF0ZXh0KSByZXR1cm4gJyc7XG4gIGlmICh0ZXh0Lmxlbmd0aCA8IGxpbmVMZW4gKyAxKSB7XG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cblxuICB3aGlsZSAoY291bnRlciA8IHRleHQubGVuZ3RoKSB7XG4gICAgbGluZSA9IHRleHQuc3Vic3RyaW5nKGNvdW50ZXIsIGNvdW50ZXIgKyBsaW5lTGVuKTtcbiAgICBiTWF0Y2hGb3VuZCA9IGZhbHNlO1xuICAgIGlmIChsaW5lLmxlbmd0aCA9PSBsaW5lTGVuKSB7XG4gICAgICBmb3IgKGxldCBpID0gbGluZS5sZW5ndGg7IGkgPiAtMTsgaS0tKSB7XG4gICAgICAgIGlmIChsaW5lLnN1YnN0cmluZyhpLCBpICsgMSkgPT0gJyAnKSB7XG4gICAgICAgICAgY291bnRlciArPSBsaW5lLnN1YnN0cmluZygwLCBpKS5sZW5ndGg7XG4gICAgICAgICAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIGkpICsgbGluZUJyZWFrO1xuICAgICAgICAgIHJldHVyblRleHQgKz0gbGluZTtcbiAgICAgICAgICBiTWF0Y2hGb3VuZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFiTWF0Y2hGb3VuZCkge1xuICAgICAgICBjb3VudGVyICs9IGxpbmUubGVuZ3RoO1xuICAgICAgICBsaW5lID0gbGluZSArIGxpbmVCcmVhaztcbiAgICAgICAgcmV0dXJuVGV4dCArPSBsaW5lO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm5UZXh0ICs9IGxpbmU7XG4gICAgICBicmVhazsgLy8gV2UncmUgYnJlYWtpbmcgb3V0IG9mIHRoZSB0aGUgd2hpbGUoKSwgbm90IHRoZSBmb3IoKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXR1cm5UZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VUlUZXh0KFxuICBjb21wb25lbnQ6IEVuZ2luZUNvbXBvbmVudHNbJ1VpVGV4dCddLFxuICBlbnRpdHk6IEVudGl0eSxcbiAgdGV4dDogc3RyaW5nLFxuICBmb250U2l6ZSA9IDEwLFxuICBjb250YWluZXJXaWR0aDogbnVtYmVyLFxuICBhbGlnbjogVGV4dEFsaWduTW9kZSA9IFRleHRBbGlnbk1vZGUuVEFNX01JRERMRV9DRU5URVIsXG4gIGNvbG9yOiBDb2xvcjQgPSBDb2xvcjQuV2hpdGUoKSxcbikge1xuICBjb25zdCBsaW5lTGVuZ3RoID0gTWF0aC5mbG9vcihjb250YWluZXJXaWR0aCAvIChmb250U2l6ZSAvIDEuNykpO1xuXG4gIHJldHVybiBjb21wb25lbnQuY3JlYXRlT3JSZXBsYWNlKGVudGl0eSwge1xuICAgIHZhbHVlOiBicmVha0xpbmVzKHRleHQsIGxpbmVMZW5ndGgpLFxuICAgIGZvbnRTaXplLFxuICAgIGZvbnQ6IEZvbnQuRl9NT05PU1BBQ0UgYXMgYW55LFxuICAgIHRleHRBbGlnbjogYWxpZ24gYXMgdW5rbm93biBhcyBUZXh0QWxpZ25Nb2RlLFxuICAgIGNvbG9yLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVVpVHJhbnNmb3JtRW50aXRpZXMoXG4gIGVuZ2luZTogSUVuZ2luZSxcbiAgVWlUcmFuc2Zvcm06IEVuZ2luZUNvbXBvbmVudHNbJ1VpVHJhbnNmb3JtJ10sXG4gIHBhcmVudEVudGl0eTogRW50aXR5LFxuKSB7XG4gIGNvbnN0IGVudGl0aWVzV2l0aFVpVHJhbnNmb3JtID0gZW5naW5lLmdldEVudGl0aWVzV2l0aChVaVRyYW5zZm9ybSk7XG5cbiAgZm9yIChjb25zdCBbdWlFbnRpdHksIHVpVHJhbnNmb3JtXSBvZiBlbnRpdGllc1dpdGhVaVRyYW5zZm9ybSkge1xuICAgIGlmICh1aVRyYW5zZm9ybS5wYXJlbnQgPT09IHBhcmVudEVudGl0eSkge1xuICAgICAgLy8gUmVjdXJzaXZlbHkgcmVtb3ZlIGNoaWxkcmVuXG4gICAgICByZW1vdmVVaVRyYW5zZm9ybUVudGl0aWVzKGVuZ2luZSwgVWlUcmFuc2Zvcm0sIHVpRW50aXR5KTtcbiAgICAgIGVuZ2luZS5yZW1vdmVFbnRpdHkodWlFbnRpdHkpO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBCVE5fQ0xPU0VfVEVYVF9BTk5PVU5DRU1FTlQgPSBgJHtDT05URU5UX1VSTH0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvdGV4dC1hbm5vdW5jZW1lbnQtY2xvc2UtYnV0dG9uLnBuZ2A7XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93Q2FwdGNoYVByb21wdChcbiAgZW5naW5lOiBJRW5naW5lLFxuICBVaVRyYW5zZm9ybTogRW5naW5lQ29tcG9uZW50c1snVWlUcmFuc2Zvcm0nXSxcbiAgVWlCYWNrZ3JvdW5kOiBFbmdpbmVDb21wb25lbnRzWydVaUJhY2tncm91bmQnXSxcbiAgVWlUZXh0OiBFbmdpbmVDb21wb25lbnRzWydVaVRleHQnXSxcbiAgVWlJbnB1dDogRW5naW5lQ29tcG9uZW50c1snVWlJbnB1dCddLFxuICBVaUlucHV0UmVzdWx0OiBFbmdpbmVDb21wb25lbnRzWydVaUlucHV0UmVzdWx0J10sXG4gIHBvaW50ZXJFdmVudHNTeXN0ZW06IFBvaW50ZXJFdmVudHNTeXN0ZW0sXG4gIGRhdGE6IHsgY2FtcGFpZ25JZDogc3RyaW5nOyBkaXNwZW5zZXJLZXk6IHN0cmluZzsgY2FwdGNoYTogYW55IH0sXG4gIG9uU3VibWl0OiAoaW5wdXRUZXh0OiBzdHJpbmcpID0+IHZvaWQsXG4pIHtcbiAgY29uc29sZS5sb2coJ3Nob3dDYXB0Y2hhUHJvbXB0Jyk7XG4gIC8vIENyZWF0ZSBVSSBzdGFjayBmb3IgY2VudGVyaW5nXG4gIGNvbnN0IHVpU3RhY2sgPSBlbmdpbmUuYWRkRW50aXR5KCk7XG4gIGNvbnN0IHVpU3RhY2tUcmFuc2Zvcm0gPSBnZXRVSVRyYW5zZm9ybShVaVRyYW5zZm9ybSwgdWlTdGFjayk7XG4gIHVpU3RhY2tUcmFuc2Zvcm0uZGlzcGxheSA9IFlHRGlzcGxheS5ZR0RfRkxFWDtcbiAgdWlTdGFja1RyYW5zZm9ybS5hbGlnbkl0ZW1zID0gWUdBbGlnbi5ZR0FfQ0VOVEVSO1xuICB1aVN0YWNrVHJhbnNmb3JtLmp1c3RpZnlDb250ZW50ID0gWUdKdXN0aWZ5LllHSl9DRU5URVI7XG5cbiAgLy8gQ3JlYXRlIGNvbnRhaW5lclxuICBjb25zdCBjb250YWluZXJFbnRpdHkgPSBlbmdpbmUuYWRkRW50aXR5KCk7XG4gIGNvbnN0IGNvbnRhaW5lclRyYW5zZm9ybSA9IGdldFVJVHJhbnNmb3JtKFxuICAgIFVpVHJhbnNmb3JtLFxuICAgIGNvbnRhaW5lckVudGl0eSxcbiAgICAyNjAsXG4gICAgMjUwLFxuICAgIFlHVW5pdC5ZR1VfUE9JTlQsXG4gICk7XG4gIGNvbnRhaW5lclRyYW5zZm9ybS5wYXJlbnQgPSB1aVN0YWNrO1xuICBjb250YWluZXJUcmFuc2Zvcm0uZGlzcGxheSA9IFlHRGlzcGxheS5ZR0RfRkxFWDtcbiAgY29udGFpbmVyVHJhbnNmb3JtLmZsZXhEaXJlY3Rpb24gPSBZR0ZsZXhEaXJlY3Rpb24uWUdGRF9DT0xVTU47XG4gIGNvbnRhaW5lclRyYW5zZm9ybS5hbGlnbkl0ZW1zID0gWUdBbGlnbi5ZR0FfQ0VOVEVSO1xuICBjb250YWluZXJUcmFuc2Zvcm0ucGFkZGluZ1RvcCA9IDIwO1xuICBjb250YWluZXJUcmFuc2Zvcm0ucGFkZGluZ1RvcFVuaXQgPSBZR1VuaXQuWUdVX1BPSU5UO1xuICBjb250YWluZXJUcmFuc2Zvcm0ucGFkZGluZ0JvdHRvbSA9IDIwO1xuICBjb250YWluZXJUcmFuc2Zvcm0ucGFkZGluZ0JvdHRvbVVuaXQgPSBZR1VuaXQuWUdVX1BPSU5UO1xuICBjb250YWluZXJUcmFuc2Zvcm0ucGFkZGluZ0xlZnQgPSAyMDtcbiAgY29udGFpbmVyVHJhbnNmb3JtLnBhZGRpbmdMZWZ0VW5pdCA9IFlHVW5pdC5ZR1VfUE9JTlQ7XG4gIGNvbnRhaW5lclRyYW5zZm9ybS5wYWRkaW5nUmlnaHQgPSAyMDtcbiAgY29udGFpbmVyVHJhbnNmb3JtLnBhZGRpbmdSaWdodFVuaXQgPSBZR1VuaXQuWUdVX1BPSU5UO1xuICBjb250YWluZXJUcmFuc2Zvcm0ucG9pbnRlckZpbHRlciA9IFBvaW50ZXJGaWx0ZXJNb2RlLlBGTV9CTE9DSztcblxuICAvLyBESVNDTEFJTUVSOiBXaGVuIHVzaW5nIFVpQmFja2dyb3VuZCwgZWNzIGdpdmVzIHRoZW0gcHJpb3JpdHkgb3ZlciB0aGUgVWlUcmFuc2Zvcm1zLCBsZWFkaW5nIHRvIGFuIHVuZXhwZWN0ZWQgYmVoYXZpb3Igd2hlbiB3b3JraW5nIHdpdGggZmxleCBwb3NpdGlvbmluZy5cbiAgLy8gQWRkIGRhcmsgYmFja2dyb3VuZFxuICBVaUJhY2tncm91bmQuY3JlYXRlT3JSZXBsYWNlKGNvbnRhaW5lckVudGl0eSwge1xuICAgIGNvbG9yOiBDb2xvcjQuY3JlYXRlKDAuMTUsIDAuMTUsIDAuMTUsIDAuOTUpLFxuICAgIHRleHR1cmVNb2RlOiBCYWNrZ3JvdW5kVGV4dHVyZU1vZGUuTklORV9TTElDRVMsXG4gICAgdXZzOiBbXSxcbiAgfSk7XG5cbiAgLy8gQ3JlYXRlIGNsb3NlIGJ1dHRvbiBlbnRpdHlcbiAgY29uc3QgY2xvc2VCdXR0b25FbnRpdHkgPSBlbmdpbmUuYWRkRW50aXR5KCk7XG4gIGNvbnN0IGNsb3NlQnV0dG9uVHJhbnNmb3JtID0gZ2V0VUlUcmFuc2Zvcm0oXG4gICAgVWlUcmFuc2Zvcm0sXG4gICAgY2xvc2VCdXR0b25FbnRpdHksXG4gICAgMjQsXG4gICAgMjQsXG4gICAgWUdVbml0LllHVV9QT0lOVCxcbiAgKTtcbiAgY2xvc2VCdXR0b25UcmFuc2Zvcm0ucGFyZW50ID0gY29udGFpbmVyRW50aXR5O1xuICBjbG9zZUJ1dHRvblRyYW5zZm9ybS5wb3NpdGlvblR5cGUgPSBZR1Bvc2l0aW9uVHlwZS5ZR1BUX0FCU09MVVRFO1xuICBjbG9zZUJ1dHRvblRyYW5zZm9ybS5wb3NpdGlvblJpZ2h0ID0gNTtcbiAgY2xvc2VCdXR0b25UcmFuc2Zvcm0ucG9zaXRpb25SaWdodFVuaXQgPSBZR1VuaXQuWUdVX1BPSU5UO1xuICBjbG9zZUJ1dHRvblRyYW5zZm9ybS5wb3NpdGlvblRvcCA9IDU7XG4gIGNsb3NlQnV0dG9uVHJhbnNmb3JtLnBvc2l0aW9uVG9wVW5pdCA9IFlHVW5pdC5ZR1VfUE9JTlQ7XG4gIGNsb3NlQnV0dG9uVHJhbnNmb3JtLnBvaW50ZXJGaWx0ZXIgPSBQb2ludGVyRmlsdGVyTW9kZS5QRk1fQkxPQ0s7XG5cbiAgZ2V0VUlCYWNrZ3JvdW5kKFxuICAgIFVpQmFja2dyb3VuZCxcbiAgICBjbG9zZUJ1dHRvbkVudGl0eSxcbiAgICBCVE5fQ0xPU0VfVEVYVF9BTk5PVU5DRU1FTlQsXG4gICAgQmFja2dyb3VuZFRleHR1cmVNb2RlLlNUUkVUQ0gsXG4gICk7XG5cbiAgLy8gQ2xvc2UgYnV0dG9uIGNsaWNrIGhhbmRsZXJcbiAgcG9pbnRlckV2ZW50c1N5c3RlbS5vblBvaW50ZXJEb3duKFxuICAgIHtcbiAgICAgIGVudGl0eTogY2xvc2VCdXR0b25FbnRpdHksXG4gICAgICBvcHRzOiB7XG4gICAgICAgIGJ1dHRvbjogSW5wdXRBY3Rpb24uSUFfUE9JTlRFUixcbiAgICAgIH0sXG4gICAgfSxcbiAgICAoKSA9PiB7XG4gICAgICByZW1vdmVVaVRyYW5zZm9ybUVudGl0aWVzKGVuZ2luZSwgVWlUcmFuc2Zvcm0sIHVpU3RhY2spO1xuICAgICAgZW5naW5lLnJlbW92ZUVudGl0eSh1aVN0YWNrKTtcbiAgICB9LFxuICApO1xuXG4gIC8vIEFkZCB0aXRsZSB0ZXh0XG4gIGNvbnN0IHRpdGxlRW50aXR5ID0gZW5naW5lLmFkZEVudGl0eSgpO1xuICBjb25zdCB0aXRsZVRyYW5zZm9ybSA9IGdldFVJVHJhbnNmb3JtKFVpVHJhbnNmb3JtLCB0aXRsZUVudGl0eSwgMjAsIDIwMCwgWUdVbml0LllHVV9QT0lOVCk7XG4gIHRpdGxlVHJhbnNmb3JtLnBhcmVudCA9IGNvbnRhaW5lckVudGl0eTtcbiAgdGl0bGVUcmFuc2Zvcm0ubWFyZ2luQm90dG9tID0gMTA7XG4gIHRpdGxlVHJhbnNmb3JtLm1hcmdpbkJvdHRvbVVuaXQgPSBZR1VuaXQuWUdVX1BPSU5UO1xuICB0aXRsZVRyYW5zZm9ybS5wb3NpdGlvblR5cGUgPSBZR1Bvc2l0aW9uVHlwZS5ZR1BUX0FCU09MVVRFO1xuICB0aXRsZVRyYW5zZm9ybS5wb3NpdGlvblRvcCA9IDMwO1xuICB0aXRsZVRyYW5zZm9ybS5wb3NpdGlvblRvcFVuaXQgPSBZR1VuaXQuWUdVX1BPSU5UO1xuXG4gIGdldFVJVGV4dChcbiAgICBVaVRleHQsXG4gICAgdGl0bGVFbnRpdHksXG4gICAgJ0VudGVyIHRoZSBjYXB0Y2hhJyxcbiAgICAyMCxcbiAgICAyMDAsXG4gICAgVGV4dEFsaWduTW9kZS5UQU1fTUlERExFX0NFTlRFUixcbiAgICBDb2xvcjQuV2hpdGUoKSxcbiAgKTtcblxuICAvLyBBZGQgY2FwdGNoYSBpbWFnZVxuICBjb25zdCBpbWFnZUVudGl0eSA9IGVuZ2luZS5hZGRFbnRpdHkoKTtcbiAgY29uc3QgaW1hZ2VUcmFuc2Zvcm0gPSBnZXRVSVRyYW5zZm9ybShVaVRyYW5zZm9ybSwgaW1hZ2VFbnRpdHksIDgwLCAyMDAsIFlHVW5pdC5ZR1VfUE9JTlQpO1xuICBpbWFnZVRyYW5zZm9ybS5wYXJlbnQgPSBjb250YWluZXJFbnRpdHk7XG4gIGltYWdlVHJhbnNmb3JtLm1hcmdpbkJvdHRvbSA9IDEwO1xuICBpbWFnZVRyYW5zZm9ybS5tYXJnaW5Cb3R0b21Vbml0ID0gWUdVbml0LllHVV9QT0lOVDtcbiAgaW1hZ2VUcmFuc2Zvcm0ucG9zaXRpb25UeXBlID0gWUdQb3NpdGlvblR5cGUuWUdQVF9BQlNPTFVURTtcbiAgaW1hZ2VUcmFuc2Zvcm0ucG9zaXRpb25Ub3AgPSA2MDtcbiAgaW1hZ2VUcmFuc2Zvcm0ucG9zaXRpb25Ub3BVbml0ID0gWUdVbml0LllHVV9QT0lOVDtcblxuICBnZXRVSUJhY2tncm91bmQoVWlCYWNrZ3JvdW5kLCBpbWFnZUVudGl0eSwgZGF0YS5jYXB0Y2hhLmltYWdlLCBCYWNrZ3JvdW5kVGV4dHVyZU1vZGUuU1RSRVRDSCk7XG5cbiAgLy8gQWRkIGlucHV0IGZpZWxkXG4gIGNvbnN0IGlucHV0RW50aXR5ID0gZW5naW5lLmFkZEVudGl0eSgpO1xuICBjb25zdCBpbnB1dFRyYW5zZm9ybSA9IGdldFVJVHJhbnNmb3JtKFVpVHJhbnNmb3JtLCBpbnB1dEVudGl0eSwgNTAsIDIwMCwgWUdVbml0LllHVV9QT0lOVCk7XG4gIGlucHV0VHJhbnNmb3JtLnBhcmVudCA9IGNvbnRhaW5lckVudGl0eTtcbiAgaW5wdXRUcmFuc2Zvcm0ubWFyZ2luQm90dG9tID0gMTA7XG4gIGlucHV0VHJhbnNmb3JtLm1hcmdpbkJvdHRvbVVuaXQgPSBZR1VuaXQuWUdVX1BPSU5UO1xuICBpbnB1dFRyYW5zZm9ybS5wb3NpdGlvblR5cGUgPSBZR1Bvc2l0aW9uVHlwZS5ZR1BUX0FCU09MVVRFO1xuICBpbnB1dFRyYW5zZm9ybS5wb3NpdGlvblRvcCA9IDE1MDtcbiAgaW5wdXRUcmFuc2Zvcm0ucG9zaXRpb25Ub3BVbml0ID0gWUdVbml0LllHVV9QT0lOVDtcblxuICBVaUlucHV0LmNyZWF0ZU9yUmVwbGFjZShpbnB1dEVudGl0eSwge1xuICAgIHBsYWNlaG9sZGVyOiAnRW50ZXIgdGhlIGNhcHRjaGEnLFxuICAgIGNvbG9yOiBDb2xvcjQuV2hpdGUoKSxcbiAgICBwbGFjZWhvbGRlckNvbG9yOiBDb2xvcjQuY3JlYXRlKDAuMywgMC4zLCAwLjMsIDEpLFxuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICB0ZXh0QWxpZ246IFRleHRBbGlnbk1vZGUuVEFNX01JRERMRV9DRU5URVIsXG4gICAgZm9udDogRm9udC5GX01PTk9TUEFDRSBhcyBhbnksXG4gICAgZm9udFNpemU6IDEwLFxuICB9KTtcblxuICBVaUlucHV0UmVzdWx0LmNyZWF0ZU9yUmVwbGFjZShpbnB1dEVudGl0eSwge1xuICAgIHZhbHVlOiAnJyxcbiAgICBpc1N1Ym1pdDogZmFsc2UsXG4gIH0pO1xuXG4gIC8vIEFkZCBzdWJtaXQgYnV0dG9uXG4gIGNvbnN0IGJ1dHRvbkVudGl0eSA9IGVuZ2luZS5hZGRFbnRpdHkoKTtcbiAgY29uc3QgYnV0dG9uVHJhbnNmb3JtID0gZ2V0VUlUcmFuc2Zvcm0oVWlUcmFuc2Zvcm0sIGJ1dHRvbkVudGl0eSwgMzAsIDEwMCwgWUdVbml0LllHVV9QT0lOVCk7XG4gIGJ1dHRvblRyYW5zZm9ybS5wYXJlbnQgPSBjb250YWluZXJFbnRpdHk7XG4gIGJ1dHRvblRyYW5zZm9ybS5tYXJnaW5Cb3R0b20gPSAxMDtcbiAgYnV0dG9uVHJhbnNmb3JtLm1hcmdpbkJvdHRvbVVuaXQgPSBZR1VuaXQuWUdVX1BPSU5UO1xuICBidXR0b25UcmFuc2Zvcm0ucG9zaXRpb25UeXBlID0gWUdQb3NpdGlvblR5cGUuWUdQVF9BQlNPTFVURTtcbiAgYnV0dG9uVHJhbnNmb3JtLnBvc2l0aW9uVG9wID0gMjEwO1xuICBidXR0b25UcmFuc2Zvcm0ucG9zaXRpb25Ub3BVbml0ID0gWUdVbml0LllHVV9QT0lOVDtcbiAgYnV0dG9uVHJhbnNmb3JtLnBvaW50ZXJGaWx0ZXIgPSBQb2ludGVyRmlsdGVyTW9kZS5QRk1fQkxPQ0s7XG5cbiAgZ2V0VUlUZXh0KFxuICAgIFVpVGV4dCxcbiAgICBidXR0b25FbnRpdHksXG4gICAgJ1N1Ym1pdCcsXG4gICAgMTYsXG4gICAgMTAwLFxuICAgIFRleHRBbGlnbk1vZGUuVEFNX01JRERMRV9DRU5URVIsXG4gICAgQ29sb3I0LldoaXRlKCksXG4gICk7XG5cbiAgVWlCYWNrZ3JvdW5kLmNyZWF0ZU9yUmVwbGFjZShidXR0b25FbnRpdHksIHtcbiAgICBjb2xvcjogeyByOiAwLjMsIGc6IDAuMywgYjogMC4zLCBhOiAxIH0sXG4gICAgdGV4dHVyZU1vZGU6IEJhY2tncm91bmRUZXh0dXJlTW9kZS5OSU5FX1NMSUNFUyxcbiAgICB1dnM6IFtdLFxuICB9KTtcblxuICAvLyBBZGQgY2xpY2sgaGFuZGxlciBmb3Igc3VibWl0IGJ1dHRvblxuICBwb2ludGVyRXZlbnRzU3lzdGVtLm9uUG9pbnRlckRvd24oXG4gICAge1xuICAgICAgZW50aXR5OiBidXR0b25FbnRpdHksXG4gICAgICBvcHRzOiB7XG4gICAgICAgIGJ1dHRvbjogSW5wdXRBY3Rpb24uSUFfUE9JTlRFUixcbiAgICAgIH0sXG4gICAgfSxcbiAgICAoKSA9PiB7XG4gICAgICAvLyBHZXQgaW5wdXQgdGV4dCB2YWx1ZSBhbmQgY2FsbCBvblN1Ym1pdCBjYWxsYmFja1xuICAgICAgY29uc3QgaW5wdXRUZXh0ID0gVWlJbnB1dFJlc3VsdC5nZXQoaW5wdXRFbnRpdHkpPy52YWx1ZSB8fCAnJztcbiAgICAgIG9uU3VibWl0KGlucHV0VGV4dCk7XG5cbiAgICAgIC8vIFJlbW92ZSBVSVxuICAgICAgcmVtb3ZlVWlUcmFuc2Zvcm1FbnRpdGllcyhlbmdpbmUsIFVpVHJhbnNmb3JtLCB1aVN0YWNrKTtcbiAgICAgIGVuZ2luZS5yZW1vdmVFbnRpdHkodWlTdGFjayk7XG4gICAgfSxcbiAgKTtcblxuICByZXR1cm4gdWlTdGFjaztcbn1cbiJdfQ==
|
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.12.
|
|
4
|
+
"version": "2.12.1",
|
|
5
5
|
"author": {
|
|
6
6
|
"email": "hello@decentraland.org",
|
|
7
7
|
"name": "Decentraland Foundation",
|