payload 2.10.1 → 2.11.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/components/elements.js +29 -29
- package/components/fields/Blocks.js +4 -4
- package/components/forms.js +62 -62
- package/components/hooks.js +15 -13
- package/components/index.js +1 -1
- package/components/utilities.d.ts +1 -0
- package/components/utilities.js +8 -4
- package/components.js +16 -16
- package/config.js +7 -7
- package/database.js +10 -10
- package/dist/admin/components/elements/ArrayAction/index.js +4 -2
- package/dist/admin/components/elements/Autosave/index.js +4 -2
- package/dist/admin/components/elements/Button/index.js +4 -2
- package/dist/admin/components/elements/CodeEditor/index.js +4 -2
- package/dist/admin/components/elements/Collapsible/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Collapsible/index.js +18 -9
- package/dist/admin/components/elements/Collapsible/provider.d.ts +10 -3
- package/dist/admin/components/elements/Collapsible/provider.d.ts.map +1 -1
- package/dist/admin/components/elements/Collapsible/provider.js +27 -9
- package/dist/admin/components/elements/ColumnSelector/index.js +4 -2
- package/dist/admin/components/elements/CopyToClipboard/index.js +4 -2
- package/dist/admin/components/elements/DatePicker/DatePicker.js +4 -2
- package/dist/admin/components/elements/DatePicker/index.js +4 -2
- package/dist/admin/components/elements/DeleteDocument/index.js +4 -2
- package/dist/admin/components/elements/DeleteMany/index.js +4 -2
- package/dist/admin/components/elements/DocumentControls/index.js +6 -4
- package/dist/admin/components/elements/DocumentDrawer/DrawerContent.js +4 -2
- package/dist/admin/components/elements/DocumentDrawer/index.js +8 -6
- package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.js +5 -3
- package/dist/admin/components/elements/DocumentHeader/index.js +4 -2
- package/dist/admin/components/elements/DraggableSortable/DraggableSortableItem/index.js +4 -2
- package/dist/admin/components/elements/DraggableSortable/index.js +4 -2
- package/dist/admin/components/elements/Drawer/index.js +8 -6
- package/dist/admin/components/elements/DuplicateDocument/index.js +4 -2
- package/dist/admin/components/elements/EditMany/index.js +4 -2
- package/dist/admin/components/elements/EditUpload/index.js +4 -2
- package/dist/admin/components/elements/FieldSelect/index.js +4 -2
- package/dist/admin/components/elements/FileDetails/Meta/index.js +5 -3
- package/dist/admin/components/elements/Gutter/index.js +4 -2
- package/dist/admin/components/elements/Header/index.js +4 -2
- package/dist/admin/components/elements/IDLabel/index.js +2 -2
- package/dist/admin/components/elements/ListControls/index.js +4 -2
- package/dist/admin/components/elements/ListDrawer/DrawerContent.js +4 -2
- package/dist/admin/components/elements/ListDrawer/index.js +10 -8
- package/dist/admin/components/elements/ListSelection/index.js +4 -2
- package/dist/admin/components/elements/Loading/index.js +4 -4
- package/dist/admin/components/elements/Localizer/LocalizerLabel/index.js +3 -3
- package/dist/admin/components/elements/Localizer/index.js +4 -2
- package/dist/admin/components/elements/Nav/context.js +7 -5
- package/dist/admin/components/elements/Nav/index.js +4 -2
- package/dist/admin/components/elements/NavGroup/index.js +4 -2
- package/dist/admin/components/elements/PerPage/index.js +6 -4
- package/dist/admin/components/elements/Popup/PopupButtonList/index.js +7 -5
- package/dist/admin/components/elements/Popup/index.js +4 -2
- package/dist/admin/components/elements/PreviewButton/index.js +4 -2
- package/dist/admin/components/elements/PreviewSizes/index.js +4 -2
- package/dist/admin/components/elements/Publish/index.js +4 -2
- package/dist/admin/components/elements/PublishMany/index.js +4 -2
- package/dist/admin/components/elements/Save/index.js +4 -2
- package/dist/admin/components/elements/SaveDraft/index.js +4 -2
- package/dist/admin/components/elements/SearchFilter/index.js +4 -2
- package/dist/admin/components/elements/ShimmerEffect/index.js +4 -2
- package/dist/admin/components/elements/SortColumn/index.js +4 -2
- package/dist/admin/components/elements/SortComplex/index.js +4 -2
- package/dist/admin/components/elements/Status/index.js +7 -5
- package/dist/admin/components/elements/StepNav/index.js +7 -5
- package/dist/admin/components/elements/TableColumns/index.js +7 -5
- package/dist/admin/components/elements/Thumbnail/index.js +4 -2
- package/dist/admin/components/elements/ThumbnailCard/index.js +2 -2
- package/dist/admin/components/elements/Tooltip/index.js +4 -2
- package/dist/admin/components/elements/UnpublishMany/index.js +4 -2
- package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/index.js +4 -2
- package/dist/admin/components/elements/WhereBuilder/Condition/index.js +4 -2
- package/dist/admin/components/elements/WhereBuilder/index.js +4 -2
- package/dist/admin/components/forms/Form/index.js +4 -2
- package/dist/admin/components/forms/Form/rows.js +4 -4
- package/dist/admin/components/forms/NullifyField/index.js +4 -2
- package/dist/admin/components/forms/RenderFields/index.js +4 -2
- package/dist/admin/components/forms/Submit/index.js +4 -2
- package/dist/admin/components/forms/field-types/Array/index.js +4 -2
- package/dist/admin/components/forms/field-types/Blocks/BlocksDrawer/index.js +4 -2
- package/dist/admin/components/forms/field-types/Blocks/index.js +4 -2
- package/dist/admin/components/forms/field-types/Checkbox/index.js +4 -2
- package/dist/admin/components/forms/field-types/Code/index.js +4 -2
- package/dist/admin/components/forms/field-types/Collapsible/index.js +4 -2
- package/dist/admin/components/forms/field-types/ConfirmPassword/index.js +4 -2
- package/dist/admin/components/forms/field-types/DateTime/index.js +4 -2
- package/dist/admin/components/forms/field-types/Email/index.js +4 -2
- package/dist/admin/components/forms/field-types/Group/index.js +4 -4
- package/dist/admin/components/forms/field-types/Group/provider.js +7 -5
- package/dist/admin/components/forms/field-types/HiddenInput/index.js +4 -2
- package/dist/admin/components/forms/field-types/JSON/index.js +4 -2
- package/dist/admin/components/forms/field-types/Number/index.js +4 -2
- package/dist/admin/components/forms/field-types/Password/index.js +4 -2
- package/dist/admin/components/forms/field-types/Point/index.js +4 -2
- package/dist/admin/components/forms/field-types/RadioGroup/index.js +4 -2
- package/dist/admin/components/forms/field-types/Relationship/AddNew/index.js +4 -2
- package/dist/admin/components/forms/field-types/Relationship/index.js +4 -2
- package/dist/admin/components/forms/field-types/Relationship/select-components/MultiValueLabel/index.js +4 -2
- package/dist/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.js +4 -2
- package/dist/admin/components/forms/field-types/RichText/index.js +4 -2
- package/dist/admin/components/forms/field-types/Row/provider.js +7 -5
- package/dist/admin/components/forms/field-types/Select/index.js +4 -2
- package/dist/admin/components/forms/field-types/Tabs/index.js +6 -4
- package/dist/admin/components/forms/field-types/Tabs/provider.js +7 -5
- package/dist/admin/components/forms/field-types/Text/index.js +4 -2
- package/dist/admin/components/forms/field-types/Textarea/index.js +4 -2
- package/dist/admin/components/forms/field-types/Upload/Input.js +4 -2
- package/dist/admin/components/forms/field-types/Upload/index.js +4 -2
- package/dist/admin/components/graphics/DefaultBlockImage/index.js +4 -2
- package/dist/admin/components/icons/MinimizeMaximize/index.js +4 -2
- package/dist/admin/components/index.js +10 -10
- package/dist/admin/components/modals/LeaveWithoutSaving/index.js +4 -2
- package/dist/admin/components/templates/Default/index.js +4 -2
- package/dist/admin/components/utilities/ActionsProvider/index.js +7 -5
- package/dist/admin/components/utilities/Auth/index.js +4 -2
- package/dist/admin/components/utilities/Config/index.js +4 -2
- package/dist/admin/components/utilities/DocumentEvents/index.js +4 -2
- package/dist/admin/components/utilities/DocumentInfo/index.js +7 -5
- package/dist/admin/components/utilities/LoadingOverlay/index.js +7 -5
- package/dist/admin/components/utilities/Locale/index.js +8 -6
- package/dist/admin/components/utilities/Preferences/index.js +4 -2
- package/dist/admin/components/utilities/SearchParams/index.js +4 -2
- package/dist/admin/components/utilities/Theme/index.js +7 -5
- package/dist/admin/components/views/API/index.js +4 -2
- package/dist/admin/components/views/Account/Default.js +4 -2
- package/dist/admin/components/views/Account/ToggleTheme/index.js +4 -2
- package/dist/admin/components/views/Account/index.js +4 -2
- package/dist/admin/components/views/Dashboard/Default.js +4 -2
- package/dist/admin/components/views/Dashboard/index.js +4 -2
- package/dist/admin/components/views/ForgotPassword/index.js +4 -2
- package/dist/admin/components/views/Global/Default.js +4 -2
- package/dist/admin/components/views/Global/Routes/CustomComponent.js +4 -4
- package/dist/admin/components/views/Global/Routes/index.js +4 -2
- package/dist/admin/components/views/Global/index.js +4 -2
- package/dist/admin/components/views/LivePreview/Context/index.js +4 -2
- package/dist/admin/components/views/LivePreview/Device/index.js +4 -2
- package/dist/admin/components/views/LivePreview/IFrame/index.js +4 -2
- package/dist/admin/components/views/LivePreview/Preview/index.js +4 -2
- package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.js +6 -4
- package/dist/admin/components/views/LivePreview/Toolbar/SizeInput/index.js +4 -2
- package/dist/admin/components/views/LivePreview/index.js +4 -2
- package/dist/admin/components/views/Logout/index.js +4 -2
- package/dist/admin/components/views/NotFound/index.js +4 -2
- package/dist/admin/components/views/Routes/collections.js +4 -2
- package/dist/admin/components/views/Routes/globals.js +4 -2
- package/dist/admin/components/views/Routes/index.js +4 -2
- package/dist/admin/components/views/Verify/index.js +4 -2
- package/dist/admin/components/views/Version/Compare/index.js +4 -2
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Select/index.js +4 -2
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Text/index.js +4 -2
- package/dist/admin/components/views/Version/Restore/index.js +4 -2
- package/dist/admin/components/views/Version/Version.js +4 -2
- package/dist/admin/components/views/Version/index.js +4 -2
- package/dist/admin/components/views/Versions/columns.js +3 -3
- package/dist/admin/components/views/Versions/index.js +4 -2
- package/dist/admin/components/views/collections/Edit/Auth/APIKey.js +4 -2
- package/dist/admin/components/views/collections/Edit/Auth/index.js +4 -2
- package/dist/admin/components/views/collections/Edit/Default/index.js +4 -2
- package/dist/admin/components/views/collections/Edit/Default.js +4 -2
- package/dist/admin/components/views/collections/Edit/Routes/CustomComponent.js +4 -4
- package/dist/admin/components/views/collections/Edit/Routes/index.js +4 -2
- package/dist/admin/components/views/collections/Edit/Upload/index.js +10 -8
- package/dist/admin/components/views/collections/Edit/index.js +4 -2
- package/dist/admin/components/views/collections/List/Cell/field-types/Relationship/index.js +4 -2
- package/dist/admin/components/views/collections/List/Cell/field-types/Richtext/index.js +4 -2
- package/dist/admin/components/views/collections/List/Default.js +4 -2
- package/dist/admin/components/views/collections/List/RelationshipProvider/index.js +4 -2
- package/dist/admin/components/views/collections/List/SelectionProvider/index.js +21 -19
- package/dist/admin/components/views/collections/List/index.js +4 -2
- package/dist/admin/hooks/useDelay.js +4 -2
- package/dist/admin/hooks/useDelayedRender.js +4 -2
- package/dist/admin/hooks/useTitle.js +4 -4
- package/dist/admin/utilities/formatDate/index.js +4 -2
- package/dist/admin/utilities/groupNavItems.js +3 -3
- package/dist/auth/crypto.js +4 -4
- package/dist/collections/buildEndpoints.js +4 -2
- package/dist/collections/config/defaults.js +4 -4
- package/dist/collections/graphql/init.js +4 -2
- package/dist/collections/operations/findByID.d.ts.map +1 -1
- package/dist/collections/operations/findByID.js +2 -23
- package/dist/collections/requestHandlers/updateByID.js +4 -4
- package/dist/config/schema.js +4 -4
- package/dist/config/shared/componentSchema.js +4 -4
- package/dist/config/validate.js +4 -2
- package/dist/errors/index.js +4 -4
- package/dist/exports/components/elements.js +29 -29
- package/dist/exports/components/fields/Blocks.js +4 -4
- package/dist/exports/components/forms.js +62 -62
- package/dist/exports/components/hooks.js +15 -13
- package/dist/exports/components/utilities.d.ts +1 -0
- package/dist/exports/components/utilities.d.ts.map +1 -1
- package/dist/exports/components/utilities.js +8 -4
- package/dist/exports/components.js +16 -16
- package/dist/exports/config.js +7 -7
- package/dist/exports/database.js +10 -10
- package/dist/exports/graphql.js +4 -4
- package/dist/exports/types.js +4 -4
- package/dist/exports/utilities.js +22 -22
- package/dist/fields/config/schema.js +41 -41
- package/dist/fields/config/types.js +18 -18
- package/dist/fields/hooks/afterChange/promise.js +2 -2
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +77 -69
- package/dist/graphql/registerSchema.js +4 -2
- package/dist/graphql/schema/buildMutationInputType.js +4 -4
- package/dist/index.js +4 -4
- package/dist/uploads/cropImage.js +4 -4
- package/dist/uploads/getExternalFile.d.ts +3 -3
- package/dist/uploads/getExternalFile.d.ts.map +1 -1
- package/dist/uploads/getExternalFile.js +13 -8
- package/dist/utilities/configToJSONSchema.js +8 -8
- package/dist/utilities/formatLabels.js +4 -2
- package/dist/utilities/logger.js +4 -4
- package/dist/utilities/telemetry/index.js +4 -4
- package/dist/versions/baseFields.js +4 -4
- package/graphql.js +4 -4
- package/package.json +2 -3
- package/types.js +4 -4
- package/utilities.js +22 -22
|
@@ -52,7 +52,7 @@ const promise = async ({ collection, context, data, doc, field, global, operatio
|
|
|
52
52
|
previousDoc,
|
|
53
53
|
previousSiblingDoc: previousDoc[field.name],
|
|
54
54
|
req,
|
|
55
|
-
siblingData:
|
|
55
|
+
siblingData: siblingData?.[field.name] || {},
|
|
56
56
|
siblingDoc: siblingDoc[field.name]
|
|
57
57
|
});
|
|
58
58
|
break;
|
|
@@ -195,4 +195,4 @@ const promise = async ({ collection, context, data, doc, field, global, operatio
|
|
|
195
195
|
}
|
|
196
196
|
};
|
|
197
197
|
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYWZ0ZXJDaGFuZ2UvcHJvbWlzZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCwgUmVxdWVzdENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi8uLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmllbGQsIFRhYkFzRmllbGQgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEsIHRhYkhhc05hbWUgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMnXG5cbnR5cGUgQXJncyA9IHtcbiAgY29sbGVjdGlvbjogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB8IG51bGxcbiAgY29udGV4dDogUmVxdWVzdENvbnRleHRcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgZG9jOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBmaWVsZDogRmllbGQgfCBUYWJBc0ZpZWxkXG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgcHJldmlvdXNEb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIHByZXZpb3VzU2libGluZ0RvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICBzaWJsaW5nRGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgc2libGluZ0RvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbn1cblxuLy8gVGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgdGhlIGZvbGxvd2luZyBhY3Rpb25zLCBpbiBvcmRlcjpcbi8vIC0gRXhlY3V0ZSBmaWVsZCBob29rc1xuXG5leHBvcnQgY29uc3QgcHJvbWlzZSA9IGFzeW5jICh7XG4gIGNvbGxlY3Rpb24sXG4gIGNvbnRleHQsXG4gIGRhdGEsXG4gIGRvYyxcbiAgZmllbGQsXG4gIGdsb2JhbCxcbiAgb3BlcmF0aW9uLFxuICBwcmV2aW91c0RvYyxcbiAgcHJldmlvdXNTaWJsaW5nRG9jLFxuICByZXEsXG4gIHNpYmxpbmdEYXRhLFxuICBzaWJsaW5nRG9jLFxufTogQXJncyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICAvLyBFeGVjdXRlIGhvb2tzXG4gICAgaWYgKGZpZWxkLmhvb2tzPy5hZnRlckNoYW5nZSkge1xuICAgICAgYXdhaXQgZmllbGQuaG9va3MuYWZ0ZXJDaGFuZ2UucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGN1cnJlbnRIb29rKSA9PiB7XG4gICAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICAgIGNvbnN0IGhvb2tlZFZhbHVlID0gYXdhaXQgY3VycmVudEhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgb3JpZ2luYWxEb2M6IGRvYyxcbiAgICAgICAgICBwcmV2aW91c0RvYyxcbiAgICAgICAgICBwcmV2aW91c1NpYmxpbmdEb2MsXG4gICAgICAgICAgcHJldmlvdXNWYWx1ZTogcHJldmlvdXNEb2NbZmllbGQubmFtZV0sXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICAgIHZhbHVlOiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoaG9va2VkVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPSBob29rZWRWYWx1ZVxuICAgICAgICB9XG4gICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcbiAgICB9XG4gIH1cblxuICAvLyBUcmF2ZXJzZSBzdWJmaWVsZHNcbiAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICBhd2FpdCB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwcmV2aW91c0RvYyxcbiAgICAgICAgcHJldmlvdXNTaWJsaW5nRG9jOiBwcmV2aW91c0RvY1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgcmVxLFxuICAgICAgICBzaWJsaW5nRGF0YTogKHNpYmxpbmdEYXRhPy5bZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHx8IHt9LFxuICAgICAgICBzaWJsaW5nRG9jOiBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdXG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJvd3MpKSB7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW11cbiAgICAgICAgcm93cy5mb3JFYWNoKChyb3csIGkpID0+IHtcbiAgICAgICAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICBkb2MsXG4gICAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICBnbG9iYWwsXG4gICAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgICAgcHJldmlvdXNEb2MsXG4gICAgICAgICAgICAgIHByZXZpb3VzU2libGluZ0RvYzogcHJldmlvdXNEb2M/LltmaWVsZC5uYW1lXT8uW2ldIHx8ICh7fSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiksXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHNpYmxpbmdEYXRhPy5bZmllbGQubmFtZV0/LltpXSB8fCB7fSxcbiAgICAgICAgICAgICAgc2libGluZ0RvYzogeyAuLi5yb3cgfSB8fCB7fSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdXG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJvd3MpKSB7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW11cbiAgICAgICAgcm93cy5mb3JFYWNoKChyb3csIGkpID0+IHtcbiAgICAgICAgICBjb25zdCBibG9jayA9IGZpZWxkLmJsb2Nrcy5maW5kKChibG9ja1R5cGUpID0+IGJsb2NrVHlwZS5zbHVnID09PSByb3cuYmxvY2tUeXBlKVxuXG4gICAgICAgICAgaWYgKGJsb2NrKSB7XG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgZG9jLFxuICAgICAgICAgICAgICAgIGZpZWxkczogYmxvY2suZmllbGRzLFxuICAgICAgICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgICAgcHJldmlvdXNEb2MsXG4gICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nRG9jOlxuICAgICAgICAgICAgICAgICAgcHJldmlvdXNEb2M/LltmaWVsZC5uYW1lXT8uW2ldIHx8ICh7fSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiksXG4gICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEYXRhOiBzaWJsaW5nRGF0YT8uW2ZpZWxkLm5hbWVdPy5baV0gfHwge30sXG4gICAgICAgICAgICAgICAgc2libGluZ0RvYzogeyAuLi5yb3cgfSB8fCB7fSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgICAgIH1cblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdyb3cnOlxuICAgIGNhc2UgJ2NvbGxhcHNpYmxlJzoge1xuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgcHJldmlvdXNEb2MsXG4gICAgICAgIHByZXZpb3VzU2libGluZ0RvYzogeyAuLi5wcmV2aW91c1NpYmxpbmdEb2MgfSxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaWJsaW5nRGF0YTogc2libGluZ0RhdGEgfHwge30sXG4gICAgICAgIHNpYmxpbmdEb2M6IHsgLi4uc2libGluZ0RvYyB9LFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICd0YWInOiB7XG4gICAgICBsZXQgdGFiU2libGluZ0RhdGEgPSBzaWJsaW5nRGF0YVxuICAgICAgbGV0IHRhYlNpYmxpbmdEb2MgPSBzaWJsaW5nRG9jXG4gICAgICBsZXQgdGFiUHJldmlvdXNTaWJsaW5nRG9jID0gc2libGluZ0RvY1xuXG4gICAgICBpZiAodGFiSGFzTmFtZShmaWVsZCkpIHtcbiAgICAgICAgdGFiU2libGluZ0RhdGEgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgICB0YWJTaWJsaW5nRG9jID0gc2libGluZ0RvY1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgICB0YWJQcmV2aW91c1NpYmxpbmdEb2MgPSBwcmV2aW91c0RvY1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgfVxuXG4gICAgICBhd2FpdCB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwcmV2aW91c0RvYyxcbiAgICAgICAgcHJldmlvdXNTaWJsaW5nRG9jOiB0YWJQcmV2aW91c1NpYmxpbmdEb2MsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2libGluZ0RhdGE6IHRhYlNpYmxpbmdEYXRhLFxuICAgICAgICBzaWJsaW5nRG9jOiB0YWJTaWJsaW5nRG9jLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICd0YWJzJzoge1xuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkczogZmllbGQudGFicy5tYXAoKHRhYikgPT4gKHsgLi4udGFiLCB0eXBlOiAndGFiJyB9KSksXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwcmV2aW91c0RvYyxcbiAgICAgICAgcHJldmlvdXNTaWJsaW5nRG9jOiB7IC4uLnByZXZpb3VzU2libGluZ0RvYyB9LFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhOiBzaWJsaW5nRGF0YSB8fCB7fSxcbiAgICAgICAgc2libGluZ0RvYzogeyAuLi5zaWJsaW5nRG9jIH0sXG4gICAgICB9KVxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBkZWZhdWx0OiB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbInByb21pc2UiLCJjb2xsZWN0aW9uIiwiY29udGV4dCIsImRhdGEiLCJkb2MiLCJmaWVsZCIsImdsb2JhbCIsIm9wZXJhdGlvbiIsInByZXZpb3VzRG9jIiwicHJldmlvdXNTaWJsaW5nRG9jIiwicmVxIiwic2libGluZ0RhdGEiLCJzaWJsaW5nRG9jIiwiZmllbGRBZmZlY3RzRGF0YSIsImhvb2tzIiwiYWZ0ZXJDaGFuZ2UiLCJyZWR1Y2UiLCJwcmlvckhvb2siLCJjdXJyZW50SG9vayIsImhvb2tlZFZhbHVlIiwib3JpZ2luYWxEb2MiLCJwcmV2aW91c1ZhbHVlIiwibmFtZSIsInZhbHVlIiwidW5kZWZpbmVkIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0eXBlIiwidHJhdmVyc2VGaWVsZHMiLCJmaWVsZHMiLCJyb3dzIiwiQXJyYXkiLCJpc0FycmF5IiwicHJvbWlzZXMiLCJmb3JFYWNoIiwicm93IiwiaSIsInB1c2giLCJhbGwiLCJibG9jayIsImJsb2NrcyIsImZpbmQiLCJibG9ja1R5cGUiLCJzbHVnIiwidGFiU2libGluZ0RhdGEiLCJ0YWJTaWJsaW5nRG9jIiwidGFiUHJldmlvdXNTaWJsaW5nRG9jIiwidGFiSGFzTmFtZSIsInRhYnMiLCJtYXAiLCJ0YWIiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkEyQnZCQTs7O2VBQUFBOzs7dUJBckJnQztnQ0FDZDtBQW9CeEIsTUFBTUEsVUFBVSxPQUFPLEVBQzVCQyxVQUFVLEVBQ1ZDLE9BQU8sRUFDUEMsSUFBSSxFQUNKQyxHQUFHLEVBQ0hDLEtBQUssRUFDTEMsTUFBTSxFQUNOQyxTQUFTLEVBQ1RDLFdBQVcsRUFDWEMsa0JBQWtCLEVBQ2xCQyxHQUFHLEVBQ0hDLFdBQVcsRUFDWEMsVUFBVSxFQUNMO0lBQ0wsSUFBSUMsSUFBQUEsdUJBQWdCLEVBQUNSLFFBQVE7UUFDM0IsZ0JBQWdCO1FBQ2hCLElBQUlBLE1BQU1TLEtBQUssRUFBRUMsYUFBYTtZQUM1QixNQUFNVixNQUFNUyxLQUFLLENBQUNDLFdBQVcsQ0FBQ0MsTUFBTSxDQUFDLE9BQU9DLFdBQVdDO2dCQUNyRCxNQUFNRDtnQkFFTixNQUFNRSxjQUFjLE1BQU1ELFlBQVk7b0JBQ3BDakI7b0JBQ0FDO29CQUNBQztvQkFDQUU7b0JBQ0FDO29CQUNBQztvQkFDQWEsYUFBYWhCO29CQUNiSTtvQkFDQUM7b0JBQ0FZLGVBQWViLFdBQVcsQ0FBQ0gsTUFBTWlCLElBQUksQ0FBQztvQkFDdENaO29CQUNBQztvQkFDQVksT0FBT1osV0FBVyxDQUFDTixNQUFNaUIsSUFBSSxDQUFDO2dCQUNoQztnQkFFQSxJQUFJSCxnQkFBZ0JLLFdBQVc7b0JBQzdCWixVQUFVLENB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
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYWZ0ZXJDaGFuZ2UvcHJvbWlzZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCwgUmVxdWVzdENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi8uLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmllbGQsIFRhYkFzRmllbGQgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEsIHRhYkhhc05hbWUgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMnXG5cbnR5cGUgQXJncyA9IHtcbiAgY29sbGVjdGlvbjogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB8IG51bGxcbiAgY29udGV4dDogUmVxdWVzdENvbnRleHRcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgZG9jOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBmaWVsZDogRmllbGQgfCBUYWJBc0ZpZWxkXG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgcHJldmlvdXNEb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIHByZXZpb3VzU2libGluZ0RvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICBzaWJsaW5nRGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgc2libGluZ0RvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbn1cblxuLy8gVGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgdGhlIGZvbGxvd2luZyBhY3Rpb25zLCBpbiBvcmRlcjpcbi8vIC0gRXhlY3V0ZSBmaWVsZCBob29rc1xuXG5leHBvcnQgY29uc3QgcHJvbWlzZSA9IGFzeW5jICh7XG4gIGNvbGxlY3Rpb24sXG4gIGNvbnRleHQsXG4gIGRhdGEsXG4gIGRvYyxcbiAgZmllbGQsXG4gIGdsb2JhbCxcbiAgb3BlcmF0aW9uLFxuICBwcmV2aW91c0RvYyxcbiAgcHJldmlvdXNTaWJsaW5nRG9jLFxuICByZXEsXG4gIHNpYmxpbmdEYXRhLFxuICBzaWJsaW5nRG9jLFxufTogQXJncyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICAvLyBFeGVjdXRlIGhvb2tzXG4gICAgaWYgKGZpZWxkLmhvb2tzPy5hZnRlckNoYW5nZSkge1xuICAgICAgYXdhaXQgZmllbGQuaG9va3MuYWZ0ZXJDaGFuZ2UucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGN1cnJlbnRIb29rKSA9PiB7XG4gICAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICAgIGNvbnN0IGhvb2tlZFZhbHVlID0gYXdhaXQgY3VycmVudEhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgb3JpZ2luYWxEb2M6IGRvYyxcbiAgICAgICAgICBwcmV2aW91c0RvYyxcbiAgICAgICAgICBwcmV2aW91c1NpYmxpbmdEb2MsXG4gICAgICAgICAgcHJldmlvdXNWYWx1ZTogcHJldmlvdXNEb2NbZmllbGQubmFtZV0sXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICAgIHZhbHVlOiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoaG9va2VkVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPSBob29rZWRWYWx1ZVxuICAgICAgICB9XG4gICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcbiAgICB9XG4gIH1cblxuICAvLyBUcmF2ZXJzZSBzdWJmaWVsZHNcbiAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICBhd2FpdCB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwcmV2aW91c0RvYyxcbiAgICAgICAgcHJldmlvdXNTaWJsaW5nRG9jOiBwcmV2aW91c0RvY1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgcmVxLFxuICAgICAgICBzaWJsaW5nRGF0YTogKHNpYmxpbmdEYXRhPy5bZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHx8IHt9LFxuICAgICAgICBzaWJsaW5nRG9jOiBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdXG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJvd3MpKSB7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW11cbiAgICAgICAgcm93cy5mb3JFYWNoKChyb3csIGkpID0+IHtcbiAgICAgICAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICBkb2MsXG4gICAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICBnbG9iYWwsXG4gICAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgICAgcHJldmlvdXNEb2MsXG4gICAgICAgICAgICAgIHByZXZpb3VzU2libGluZ0RvYzogcHJldmlvdXNEb2M/LltmaWVsZC5uYW1lXT8uW2ldIHx8ICh7fSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiksXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHNpYmxpbmdEYXRhPy5bZmllbGQubmFtZV0/LltpXSB8fCB7fSxcbiAgICAgICAgICAgICAgc2libGluZ0RvYzogeyAuLi5yb3cgfSB8fCB7fSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdXG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJvd3MpKSB7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW11cbiAgICAgICAgcm93cy5mb3JFYWNoKChyb3csIGkpID0+IHtcbiAgICAgICAgICBjb25zdCBibG9jayA9IGZpZWxkLmJsb2Nrcy5maW5kKChibG9ja1R5cGUpID0+IGJsb2NrVHlwZS5zbHVnID09PSByb3cuYmxvY2tUeXBlKVxuXG4gICAgICAgICAgaWYgKGJsb2NrKSB7XG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgZG9jLFxuICAgICAgICAgICAgICAgIGZpZWxkczogYmxvY2suZmllbGRzLFxuICAgICAgICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgICAgcHJldmlvdXNEb2MsXG4gICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nRG9jOlxuICAgICAgICAgICAgICAgICAgcHJldmlvdXNEb2M/LltmaWVsZC5uYW1lXT8uW2ldIHx8ICh7fSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiksXG4gICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEYXRhOiBzaWJsaW5nRGF0YT8uW2ZpZWxkLm5hbWVdPy5baV0gfHwge30sXG4gICAgICAgICAgICAgICAgc2libGluZ0RvYzogeyAuLi5yb3cgfSB8fCB7fSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgICAgIH1cblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdyb3cnOlxuICAgIGNhc2UgJ2NvbGxhcHNpYmxlJzoge1xuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgcHJldmlvdXNEb2MsXG4gICAgICAgIHByZXZpb3VzU2libGluZ0RvYzogeyAuLi5wcmV2aW91c1NpYmxpbmdEb2MgfSxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaWJsaW5nRGF0YTogc2libGluZ0RhdGEgfHwge30sXG4gICAgICAgIHNpYmxpbmdEb2M6IHsgLi4uc2libGluZ0RvYyB9LFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICd0YWInOiB7XG4gICAgICBsZXQgdGFiU2libGluZ0RhdGEgPSBzaWJsaW5nRGF0YVxuICAgICAgbGV0IHRhYlNpYmxpbmdEb2MgPSBzaWJsaW5nRG9jXG4gICAgICBsZXQgdGFiUHJldmlvdXNTaWJsaW5nRG9jID0gc2libGluZ0RvY1xuXG4gICAgICBpZiAodGFiSGFzTmFtZShmaWVsZCkpIHtcbiAgICAgICAgdGFiU2libGluZ0RhdGEgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgICB0YWJTaWJsaW5nRG9jID0gc2libGluZ0RvY1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgICB0YWJQcmV2aW91c1NpYmxpbmdEb2MgPSBwcmV2aW91c0RvY1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgfVxuXG4gICAgICBhd2FpdCB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwcmV2aW91c0RvYyxcbiAgICAgICAgcHJldmlvdXNTaWJsaW5nRG9jOiB0YWJQcmV2aW91c1NpYmxpbmdEb2MsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2libGluZ0RhdGE6IHRhYlNpYmxpbmdEYXRhLFxuICAgICAgICBzaWJsaW5nRG9jOiB0YWJTaWJsaW5nRG9jLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICd0YWJzJzoge1xuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkczogZmllbGQudGFicy5tYXAoKHRhYikgPT4gKHsgLi4udGFiLCB0eXBlOiAndGFiJyB9KSksXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwcmV2aW91c0RvYyxcbiAgICAgICAgcHJldmlvdXNTaWJsaW5nRG9jOiB7IC4uLnByZXZpb3VzU2libGluZ0RvYyB9LFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhOiBzaWJsaW5nRGF0YSB8fCB7fSxcbiAgICAgICAgc2libGluZ0RvYzogeyAuLi5zaWJsaW5nRG9jIH0sXG4gICAgICB9KVxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBkZWZhdWx0OiB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbInByb21pc2UiLCJjb2xsZWN0aW9uIiwiY29udGV4dCIsImRhdGEiLCJkb2MiLCJmaWVsZCIsImdsb2JhbCIsIm9wZXJhdGlvbiIsInByZXZpb3VzRG9jIiwicHJldmlvdXNTaWJsaW5nRG9jIiwicmVxIiwic2libGluZ0RhdGEiLCJzaWJsaW5nRG9jIiwiZmllbGRBZmZlY3RzRGF0YSIsImhvb2tzIiwiYWZ0ZXJDaGFuZ2UiLCJyZWR1Y2UiLCJwcmlvckhvb2siLCJjdXJyZW50SG9vayIsImhvb2tlZFZhbHVlIiwib3JpZ2luYWxEb2MiLCJwcmV2aW91c1ZhbHVlIiwibmFtZSIsInZhbHVlIiwidW5kZWZpbmVkIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0eXBlIiwidHJhdmVyc2VGaWVsZHMiLCJmaWVsZHMiLCJyb3dzIiwiQXJyYXkiLCJpc0FycmF5IiwicHJvbWlzZXMiLCJmb3JFYWNoIiwicm93IiwiaSIsInB1c2giLCJhbGwiLCJibG9jayIsImJsb2NrcyIsImZpbmQiLCJibG9ja1R5cGUiLCJzbHVnIiwidGFiU2libGluZ0RhdGEiLCJ0YWJTaWJsaW5nRG9jIiwidGFiUHJldmlvdXNTaWJsaW5nRG9jIiwidGFiSGFzTmFtZSIsInRhYnMiLCJtYXAiLCJ0YWIiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkEyQnZCQTs7O2VBQUFBOzs7dUJBckJnQztnQ0FDZDtBQW9CeEIsTUFBTUEsVUFBVSxPQUFPLEVBQzVCQyxVQUFVLEVBQ1ZDLE9BQU8sRUFDUEMsSUFBSSxFQUNKQyxHQUFHLEVBQ0hDLEtBQUssRUFDTEMsTUFBTSxFQUNOQyxTQUFTLEVBQ1RDLFdBQVcsRUFDWEMsa0JBQWtCLEVBQ2xCQyxHQUFHLEVBQ0hDLFdBQVcsRUFDWEMsVUFBVSxFQUNMO0lBQ0wsSUFBSUMsSUFBQUEsdUJBQWdCLEVBQUNSLFFBQVE7UUFDM0IsZ0JBQWdCO1FBQ2hCLElBQUlBLE1BQU1TLEtBQUssRUFBRUMsYUFBYTtZQUM1QixNQUFNVixNQUFNUyxLQUFLLENBQUNDLFdBQVcsQ0FBQ0MsTUFBTSxDQUFDLE9BQU9DLFdBQVdDO2dCQUNyRCxNQUFNRDtnQkFFTixNQUFNRSxjQUFjLE1BQU1ELFlBQVk7b0JBQ3BDakI7b0JBQ0FDO29CQUNBQztvQkFDQUU7b0JBQ0FDO29CQUNBQztvQkFDQWEsYUFBYWhCO29CQUNiSTtvQkFDQUM7b0JBQ0FZLGVBQWViLFdBQVcsQ0FBQ0gsTUFBTWlCLElBQUksQ0FBQztvQkFDdENaO29CQUNBQztvQkFDQVksT0FBT1osV0FBVyxDQUFDTixNQUFNaUIsSUFBSSxDQUFDO2dCQUNoQztnQkFFQSxJQUFJSCxnQkFBZ0JLLFdBQVc7b0JBQzdCWixVQUFVLENB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EAEjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAQvB,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAuCtD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAsB1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAMxD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAqB9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAMtD,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAa/E,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAS9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAetD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAO5E,CAAA;AAgCD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAgC1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAKxD,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAKzD,CAAA;
|
|
1
|
+
{"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EAEjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAQvB,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAuCtD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAsB1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAMxD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAqB9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAMtD,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAa/E,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAS9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAetD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAO5E,CAAA;AAgCD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAgC1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAKxD,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAKzD,CAAA;AAqHD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAkB1D,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,CA8DtE,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAmC1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CASxD,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAqBxD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,wBAkBC"}
|
|
@@ -9,59 +9,59 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
|
|
13
|
-
return
|
|
14
|
-
},
|
|
15
|
-
password: function() {
|
|
16
|
-
return password;
|
|
12
|
+
array: function() {
|
|
13
|
+
return array;
|
|
17
14
|
},
|
|
18
|
-
|
|
19
|
-
return
|
|
15
|
+
blocks: function() {
|
|
16
|
+
return blocks;
|
|
20
17
|
},
|
|
21
|
-
|
|
22
|
-
return
|
|
18
|
+
checkbox: function() {
|
|
19
|
+
return checkbox;
|
|
23
20
|
},
|
|
24
21
|
code: function() {
|
|
25
22
|
return code;
|
|
26
23
|
},
|
|
27
|
-
json: function() {
|
|
28
|
-
return json;
|
|
29
|
-
},
|
|
30
|
-
checkbox: function() {
|
|
31
|
-
return checkbox;
|
|
32
|
-
},
|
|
33
24
|
date: function() {
|
|
34
25
|
return date;
|
|
35
26
|
},
|
|
36
|
-
|
|
37
|
-
return
|
|
27
|
+
default: function() {
|
|
28
|
+
return _default;
|
|
29
|
+
},
|
|
30
|
+
email: function() {
|
|
31
|
+
return email;
|
|
32
|
+
},
|
|
33
|
+
json: function() {
|
|
34
|
+
return json;
|
|
38
35
|
},
|
|
39
36
|
number: function() {
|
|
40
37
|
return number;
|
|
41
38
|
},
|
|
42
|
-
|
|
43
|
-
return
|
|
39
|
+
password: function() {
|
|
40
|
+
return password;
|
|
44
41
|
},
|
|
45
|
-
|
|
46
|
-
return
|
|
42
|
+
point: function() {
|
|
43
|
+
return point;
|
|
47
44
|
},
|
|
48
|
-
|
|
49
|
-
return
|
|
45
|
+
radio: function() {
|
|
46
|
+
return radio;
|
|
50
47
|
},
|
|
51
48
|
relationship: function() {
|
|
52
49
|
return relationship;
|
|
53
50
|
},
|
|
51
|
+
richText: function() {
|
|
52
|
+
return richText;
|
|
53
|
+
},
|
|
54
54
|
select: function() {
|
|
55
55
|
return select;
|
|
56
56
|
},
|
|
57
|
-
|
|
58
|
-
return
|
|
57
|
+
text: function() {
|
|
58
|
+
return text;
|
|
59
59
|
},
|
|
60
|
-
|
|
61
|
-
return
|
|
60
|
+
textarea: function() {
|
|
61
|
+
return textarea;
|
|
62
62
|
},
|
|
63
|
-
|
|
64
|
-
return
|
|
63
|
+
upload: function() {
|
|
64
|
+
return upload;
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
const _canUseDOM = /*#__PURE__*/ _interop_require_default(require("../utilities/canUseDOM"));
|
|
@@ -289,49 +289,57 @@ const validateFilterOptions = async (value, { id, data, filterOptions, payload,
|
|
|
289
289
|
value
|
|
290
290
|
];
|
|
291
291
|
await Promise.all(collections.map(async (collection)=>{
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
optionFilter
|
|
301
|
-
|
|
302
|
-
const valueIDs = [];
|
|
303
|
-
values.forEach((val)=>{
|
|
304
|
-
if (typeof val === 'object' && val?.value) {
|
|
305
|
-
valueIDs.push(val.value);
|
|
292
|
+
try {
|
|
293
|
+
let optionFilter = typeof filterOptions === 'function' ? await filterOptions({
|
|
294
|
+
id,
|
|
295
|
+
data,
|
|
296
|
+
relationTo: collection,
|
|
297
|
+
siblingData,
|
|
298
|
+
user
|
|
299
|
+
}) : filterOptions;
|
|
300
|
+
if (optionFilter === true) {
|
|
301
|
+
optionFilter = null;
|
|
306
302
|
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
303
|
+
const valueIDs = [];
|
|
304
|
+
values.forEach((val)=>{
|
|
305
|
+
if (typeof val === 'object' && val?.value) {
|
|
306
|
+
valueIDs.push(val.value);
|
|
307
|
+
}
|
|
308
|
+
if (typeof val === 'string' || typeof val === 'number') {
|
|
309
|
+
valueIDs.push(val);
|
|
310
|
+
}
|
|
311
|
+
});
|
|
312
|
+
if (valueIDs.length > 0) {
|
|
313
|
+
const findWhere = {
|
|
314
|
+
and: [
|
|
315
|
+
{
|
|
316
|
+
id: {
|
|
317
|
+
in: valueIDs
|
|
318
|
+
}
|
|
317
319
|
}
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
320
|
+
]
|
|
321
|
+
};
|
|
322
|
+
if (optionFilter) findWhere.and.push(optionFilter);
|
|
323
|
+
if (optionFilter === false) {
|
|
324
|
+
falseCollections.push(optionFilter);
|
|
325
|
+
}
|
|
326
|
+
// `req` omitted to prevent transaction errors from aborting the entire transaction
|
|
327
|
+
const result = await payload.find({
|
|
328
|
+
collection,
|
|
329
|
+
depth: 0,
|
|
330
|
+
limit: 0,
|
|
331
|
+
pagination: false,
|
|
332
|
+
where: findWhere
|
|
333
|
+
});
|
|
334
|
+
options[collection] = result.docs.map((doc)=>doc.id);
|
|
335
|
+
} else {
|
|
336
|
+
options[collection] = [];
|
|
324
337
|
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
pagination: false,
|
|
330
|
-
req,
|
|
331
|
-
where: findWhere
|
|
338
|
+
} catch (err) {
|
|
339
|
+
req.payload.logger.error({
|
|
340
|
+
err,
|
|
341
|
+
msg: `Error validating filter options for collection ${collection}`
|
|
332
342
|
});
|
|
333
|
-
options[collection] = result.docs.map((doc)=>doc.id);
|
|
334
|
-
} else {
|
|
335
343
|
options[collection] = [];
|
|
336
344
|
}
|
|
337
345
|
}));
|
|
@@ -480,4 +488,4 @@ const _default = {
|
|
|
480
488
|
upload
|
|
481
489
|
};
|
|
482
490
|
|
|
483
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9leHBvcnRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJlbGF0aW9uc2hpcFZhbHVlLFxuICBSaWNoVGV4dEZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbiAgVmFsaWRhdGUsXG59IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgY2FuVXNlRE9NIGZyb20gJy4uL3V0aWxpdGllcy9jYW5Vc2VET00nXG5pbXBvcnQgeyBnZXRJRFR5cGUgfSBmcm9tICcuLi91dGlsaXRpZXMvZ2V0SURUeXBlJ1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNOdW1iZXInXG5pbXBvcnQgeyBpc1ZhbGlkSUQgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNWYWxpZElEJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgdGV4dDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgVGV4dEZpZWxkPiA9IChcbiAgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLFxuICB7IGNvbmZpZywgaGFzTWFueSwgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWF4Um93cywgbWluTGVuZ3RoLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICghcmVxdWlyZWQpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKGhhc01hbnkgPT09IHRydWUpIHtcbiAgICBjb25zdCBsZW5ndGhWYWxpZGF0aW9uUmVzdWx0ID0gdmFsaWRhdGVBcnJheUxlbmd0aCh2YWx1ZSwgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9KVxuICAgIGlmICh0eXBlb2YgbGVuZ3RoVmFsaWRhdGlvblJlc3VsdCA9PT0gJ3N0cmluZycpIHJldHVybiBsZW5ndGhWYWxpZGF0aW9uUmVzdWx0XG4gIH1cblxuICBpZiAodHlwZW9mIGNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBjb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG5cbiAgY29uc3Qgc3RyaW5nc1RvVmFsaWRhdGU6IHN0cmluZ1tdID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICBmb3IgKGNvbnN0IHN0cmluZ1ZhbHVlIG9mIHN0cmluZ3NUb1ZhbGlkYXRlKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gc3RyaW5nVmFsdWU/Lmxlbmd0aCB8fCAwXG5cbiAgICBpZiAodHlwZW9mIG1heExlbmd0aCA9PT0gJ251bWJlcicgJiYgbGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpzaG9ydGVyVGhhbk1heCcsIHsgbGFiZWw6IHQoJ3ZhbHVlJyksIG1heExlbmd0aCwgc3RyaW5nVmFsdWUgfSlcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG1pbkxlbmd0aCA9PT0gJ251bWJlcicgJiYgbGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBsYWJlbDogdCgndmFsdWUnKSwgbWluTGVuZ3RoLCBzdHJpbmdWYWx1ZSB9KVxuICAgIH1cbiAgfVxuXG4gIGlmIChyZXF1aXJlZCkge1xuICAgIGlmICghKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHx8IHZhbHVlPy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcGFzc3dvcmQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFRleHRGaWVsZD4gPSAoXG4gIHZhbHVlOiBzdHJpbmcsXG4gIHsgY29uZmlnLCBtYXhMZW5ndGg6IGZpZWxkTWF4TGVuZ3RoLCBtaW5MZW5ndGgsIHBheWxvYWQsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgbGV0IG1heExlbmd0aDogbnVtYmVyXG5cbiAgaWYgKHR5cGVvZiBjb25maWc/LmRlZmF1bHRNYXhUZXh0TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gY29uZmlnLmRlZmF1bHRNYXhUZXh0TGVuZ3RoXG4gIGlmICh0eXBlb2YgZmllbGRNYXhMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBmaWVsZE1heExlbmd0aFxuXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCBtaW5MZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBtaW5MZW5ndGggfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgZW1haWw6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEVtYWlsRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAoKHZhbHVlICYmICEvXFxTW15cXHNAXSpAXFxTK1xcLlxcUysvLnRlc3QodmFsdWUpKSB8fCAoIXZhbHVlICYmIHJlcXVpcmVkKSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmVtYWlsQWRkcmVzcycpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgdGV4dGFyZWE6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFRleHRhcmVhRmllbGQ+ID0gKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IGNvbmZpZywgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWluTGVuZ3RoLCBwYXlsb2FkLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICh0eXBlb2YgY29uZmlnPy5kZWZhdWx0TWF4VGV4dExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGNvbmZpZy5kZWZhdWx0TWF4VGV4dExlbmd0aFxuICBpZiAodHlwZW9mIGZpZWxkTWF4TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gZmllbGRNYXhMZW5ndGhcbiAgaWYgKHZhbHVlICYmIG1heExlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpzaG9ydGVyVGhhbk1heCcsIHsgbWF4TGVuZ3RoIH0pXG4gIH1cblxuICBpZiAodmFsdWUgJiYgbWluTGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA8IG1pbkxlbmd0aCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmxvbmdlclRoYW5NaW4nLCB7IG1pbkxlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBjb2RlOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBDb2RlRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAocmVxdWlyZWQgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBqc29uOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBKU09ORmllbGQgJiB7IGpzb25FcnJvcj86IHN0cmluZyB9PiA9IChcbiAgdmFsdWU6IHN0cmluZyxcbiAgeyBqc29uRXJyb3IsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgaWYgKHJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIGlmIChqc29uRXJyb3IgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRJbnB1dCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgY2hlY2tib3g6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIENoZWNrYm94RmllbGQ+ID0gKFxuICB2YWx1ZTogYm9vbGVhbixcbiAgeyByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmICgodmFsdWUgJiYgdHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpIHx8IChyZXF1aXJlZCAmJiB0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjp0cnVlT3JGYWxzZScpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgZGF0ZTogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgRGF0ZUZpZWxkPiA9ICh2YWx1ZSwgeyByZXF1aXJlZCwgdCB9KSA9PiB7XG4gIGlmICh2YWx1ZSAmJiAhaXNOYU4oRGF0ZS5wYXJzZSh2YWx1ZS50b1N0cmluZygpKSkpIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZS1saW5lICovXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmICh2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOm5vdFZhbGlkRGF0ZScsIHsgdmFsdWUgfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCByaWNoVGV4dDogVmFsaWRhdGU8b2JqZWN0LCB1bmtub3duLCBSaWNoVGV4dEZpZWxkLCBSaWNoVGV4dEZpZWxkPiA9IGFzeW5jIChcbiAgdmFsdWUsXG4gIG9wdGlvbnMsXG4pID0+IHtcbiAgY29uc3QgZWRpdG9yOiBSaWNoVGV4dEFkYXB0ZXIgPSBvcHRpb25zPy5lZGl0b3JcblxuICByZXR1cm4gYXdhaXQgZWRpdG9yLnZhbGlkYXRlKHZhbHVlLCBvcHRpb25zKVxufVxuXG5jb25zdCB2YWxpZGF0ZUFycmF5TGVuZ3RoOiBhbnkgPSAoXG4gIHZhbHVlLFxuICBvcHRpb25zOiB7XG4gICAgbWF4Um93cz86IG51bWJlclxuICAgIG1pblJvd3M/OiBudW1iZXJcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0OiAoa2V5OiBzdHJpbmcsIG9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB8IHN0cmluZyB9KSA9PiBzdHJpbmdcbiAgfSxcbikgPT4ge1xuICBjb25zdCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0gPSBvcHRpb25zXG5cbiAgY29uc3QgYXJyYXlMZW5ndGggPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmxlbmd0aCA6IDBcblxuICBpZiAoIXJlcXVpcmVkICYmIGFycmF5TGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZVxuXG4gIGlmIChtaW5Sb3dzICYmIGFycmF5TGVuZ3RoIDwgbWluUm93cykge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzQXRMZWFzdCcsIHsgY291bnQ6IG1pblJvd3MsIGxhYmVsOiB0KCdyb3dzJykgfSlcbiAgfVxuXG4gIGlmIChtYXhSb3dzICYmIGFycmF5TGVuZ3RoID4gbWF4Um93cykge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzTm9Nb3JlVGhhbicsIHsgY291bnQ6IG1heFJvd3MsIGxhYmVsOiB0KCdyb3dzJykgfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhYXJyYXlMZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc0F0TGVhc3QnLCB7IGNvdW50OiAxLCBsYWJlbDogdCgncm93JykgfSlcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBudW1iZXI6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIE51bWJlckZpZWxkPiA9IChcbiAgdmFsdWU6IG51bWJlciB8IG51bWJlcltdLFxuICB7IGhhc01hbnksIG1heCwgbWF4Um93cywgbWluLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmIChoYXNNYW55ID09PSB0cnVlKSB7XG4gICAgY29uc3QgbGVuZ3RoVmFsaWRhdGlvblJlc3VsdCA9IHZhbGlkYXRlQXJyYXlMZW5ndGgodmFsdWUsIHsgbWF4Um93cywgbWluUm93cywgcmVxdWlyZWQsIHQgfSlcbiAgICBpZiAodHlwZW9mIGxlbmd0aFZhbGlkYXRpb25SZXN1bHQgPT09ICdzdHJpbmcnKSByZXR1cm4gbGVuZ3RoVmFsaWRhdGlvblJlc3VsdFxuICB9XG5cbiAgaWYgKCF2YWx1ZSAmJiAhaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgLy8gaWYgbm8gdmFsdWUgaXMgcHJlc2VudCwgdmFsaWRhdGUgYmFzZWQgb24gcmVxdWlyZWRcbiAgICBpZiAocmVxdWlyZWQpIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICBpZiAoIXJlcXVpcmVkKSByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgY29uc3QgbnVtYmVyc1RvVmFsaWRhdGU6IG51bWJlcltdID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICBmb3IgKGNvbnN0IG51bWJlciBvZiBudW1iZXJzVG9WYWxpZGF0ZSkge1xuICAgIGlmICghaXNOdW1iZXIobnVtYmVyKSkgcmV0dXJuIHQoJ3ZhbGlkYXRpb246ZW50ZXJOdW1iZXInKVxuXG4gICAgY29uc3QgbnVtYmVyVmFsdWUgPSBwYXJzZUZsb2F0KG51bWJlciBhcyB1bmtub3duIGFzIHN0cmluZylcblxuICAgIGlmICh0eXBlb2YgbWF4ID09PSAnbnVtYmVyJyAmJiBudW1iZXJWYWx1ZSA+IG1heCkge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnLCB7IGxhYmVsOiB0KCd2YWx1ZScpLCBtYXgsIHZhbHVlIH0pXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBtaW4gPT09ICdudW1iZXInICYmIG51bWJlclZhbHVlIDwgbWluKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsZXNzVGhhbk1pbicsIHsgbGFiZWw6IHQoJ3ZhbHVlJyksIG1pbiwgdmFsdWUgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgYXJyYXk6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEFycmF5RmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG59XG5cbmV4cG9ydCBjb25zdCBibG9ja3M6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEJsb2NrRmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG59XG5cbmNvbnN0IHZhbGlkYXRlRmlsdGVyT3B0aW9uczogVmFsaWRhdGUgPSBhc3luYyAoXG4gIHZhbHVlLFxuICB7IGlkLCBkYXRhLCBmaWx0ZXJPcHRpb25zLCBwYXlsb2FkLCByZWxhdGlvblRvLCByZXEsIHNpYmxpbmdEYXRhLCB0LCB1c2VyIH0sXG4pID0+IHtcbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIGZpbHRlck9wdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlKSB7XG4gICAgY29uc3Qgb3B0aW9uczoge1xuICAgICAgW2NvbGxlY3Rpb246IHN0cmluZ106IChudW1iZXIgfCBzdHJpbmcpW11cbiAgICB9ID0ge31cblxuICAgIGNvbnN0IGZhbHNlQ29sbGVjdGlvbnM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBjb2xsZWN0aW9ucyA9IHR5cGVvZiByZWxhdGlvblRvID09PSAnc3RyaW5nJyA/IFtyZWxhdGlvblRvXSA6IHJlbGF0aW9uVG9cbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBjb2xsZWN0aW9ucy5tYXAoYXN5bmMgKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgbGV0IG9wdGlvbkZpbHRlciA9XG4gICAgICAgICAgdHlwZW9mIGZpbHRlck9wdGlvbnMgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gYXdhaXQgZmlsdGVyT3B0aW9ucyh7XG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICByZWxhdGlvblRvOiBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IGZpbHRlck9wdGlvbnNcblxuICAgICAgICBpZiAob3B0aW9uRmlsdGVyID09PSB0cnVlKSB7XG4gICAgICAgICAgb3B0aW9uRmlsdGVyID0gbnVsbFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWVJRHM6IChudW1iZXIgfCBzdHJpbmcpW10gPSBbXVxuXG4gICAgICAgIHZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgdmFsPy52YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWVJRHMucHVzaCh2YWwudmFsdWUpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICB2YWx1ZUlEcy5wdXNoKHZhbClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHZhbHVlSURzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBmaW5kV2hlcmUgPSB7XG4gICAgICAgICAgICBhbmQ6IFt7IGlkOiB7IGluOiB2YWx1ZUlEcyB9IH1dLFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChvcHRpb25GaWx0ZXIpIGZpbmRXaGVyZS5hbmQucHVzaChvcHRpb25GaWx0ZXIpXG5cbiAgICAgICAgICBpZiAob3B0aW9uRmlsdGVyID09PSBmYWxzZSkge1xuICAgICAgICAgICAgZmFsc2VDb2xsZWN0aW9ucy5wdXNoKG9wdGlvbkZpbHRlcilcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXlsb2FkLmZpbmQoe1xuICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAgICAgbGltaXQ6IDAsXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIHdoZXJlOiBmaW5kV2hlcmUsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIG9wdGlvbnNbY29sbGVjdGlvbl0gPSByZXN1bHQuZG9jcy5tYXAoKGRvYykgPT4gZG9jLmlkKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9wdGlvbnNbY29sbGVjdGlvbl0gPSBbXVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApXG5cbiAgICBjb25zdCBpbnZhbGlkUmVsYXRpb25zaGlwcyA9IHZhbHVlcy5maWx0ZXIoKHZhbCkgPT4ge1xuICAgICAgbGV0IGNvbGxlY3Rpb246IHN0cmluZ1xuICAgICAgbGV0IHJlcXVlc3RlZElEOiBudW1iZXIgfCBzdHJpbmdcblxuICAgICAgaWYgKHR5cGVvZiByZWxhdGlvblRvID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb2xsZWN0aW9uID0gcmVsYXRpb25Ub1xuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHJlcXVlc3RlZElEID0gdmFsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVsYXRpb25UbykgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgdmFsPy5yZWxhdGlvblRvKSB7XG4gICAgICAgIGNvbGxlY3Rpb24gPSB2YWwucmVsYXRpb25Ub1xuICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbC52YWx1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoZmFsc2VDb2xsZWN0aW9ucy5maW5kKChzbHVnKSA9PiByZWxhdGlvblRvID09PSBzbHVnKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gb3B0aW9uc1tjb2xsZWN0aW9uXS5pbmRleE9mKHJlcXVlc3RlZElEKSA9PT0gLTFcbiAgICB9KVxuXG4gICAgaWYgKGludmFsaWRSZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBpbnZhbGlkUmVsYXRpb25zaGlwcy5yZWR1Y2UoKGVyciwgaW52YWxpZCwgaSkgPT4ge1xuICAgICAgICByZXR1cm4gYCR7ZXJyfSAke0pTT04uc3RyaW5naWZ5KGludmFsaWQpfSR7XG4gICAgICAgICAgaW52YWxpZFJlbGF0aW9uc2hpcHMubGVuZ3RoID09PSBpICsgMSA/ICcsJyA6ICcnXG4gICAgICAgIH0gYFxuICAgICAgfSwgdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9ucycpKSBhcyBzdHJpbmdcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHVwbG9hZDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgVXBsb2FkRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIG9wdGlvbnMpID0+IHtcbiAgaWYgKCF2YWx1ZSAmJiBvcHRpb25zLnJlcXVpcmVkKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMudCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoIWNhblVzZURPTSAmJiB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgY29uc3QgaWRGaWVsZCA9IG9wdGlvbnM/LmNvbmZpZz8uY29sbGVjdGlvbnNcbiAgICAgID8uZmluZCgoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSBvcHRpb25zLnJlbGF0aW9uVG8pXG4gICAgICA/LmZpZWxkcz8uZmluZCgoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpXG5cbiAgICBjb25zdCB0eXBlID0gZ2V0SURUeXBlKGlkRmllbGQsIG9wdGlvbnM/LnBheWxvYWQ/LmRiPy5kZWZhdWx0SURUeXBlKVxuXG4gICAgaWYgKCFpc1ZhbGlkSUQodmFsdWUsIHR5cGUpKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy50KCd2YWxpZGF0aW9uOnZhbGlkVXBsb2FkSUQnKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZUZpbHRlck9wdGlvbnModmFsdWUsIG9wdGlvbnMpXG59XG5cbmV4cG9ydCBjb25zdCByZWxhdGlvbnNoaXA6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFJlbGF0aW9uc2hpcEZpZWxkPiA9IGFzeW5jIChcbiAgdmFsdWU6IFJlbGF0aW9uc2hpcFZhbHVlLFxuICBvcHRpb25zLFxuKSA9PiB7XG4gIGNvbnN0IHsgY29uZmlnLCBtYXhSb3dzLCBtaW5Sb3dzLCBwYXlsb2FkLCByZWxhdGlvblRvLCByZXF1aXJlZCwgdCB9ID0gb3B0aW9uc1xuXG4gIGlmICgoIXZhbHVlIHx8IChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApKSAmJiByZXF1aXJlZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgaWYgKG1pblJvd3MgJiYgdmFsdWUubGVuZ3RoIDwgbWluUm93cykge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bGVzc1RoYW5NaW4nLCB7IGxhYmVsOiB0KCdyb3dzJyksIG1pbjogbWluUm93cywgdmFsdWU6IHZhbHVlLmxlbmd0aCB9KVxuICAgIH1cblxuICAgIGlmIChtYXhSb3dzICYmIHZhbHVlLmxlbmd0aCA+IG1heFJvd3MpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmdyZWF0ZXJUaGFuTWF4JywgeyBsYWJlbDogdCgncm93cycpLCBtYXg6IG1heFJvd3MsIHZhbHVlOiB2YWx1ZS5sZW5ndGggfSlcbiAgICB9XG4gIH1cblxuICBpZiAoIWNhblVzZURPTSAmJiB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICAgIGNvbnN0IGludmFsaWRSZWxhdGlvbnNoaXBzID0gdmFsdWVzLmZpbHRlcigodmFsKSA9PiB7XG4gICAgICBsZXQgY29sbGVjdGlvblNsdWc6IHN0cmluZ1xuICAgICAgbGV0IHJlcXVlc3RlZElEXG5cbiAgICAgIGlmICh0eXBlb2YgcmVsYXRpb25UbyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29sbGVjdGlvblNsdWcgPSByZWxhdGlvblRvXG5cbiAgICAgICAgLy8gY3VzdG9tIGlkXG4gICAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbD8ucmVsYXRpb25Ubykge1xuICAgICAgICBjb2xsZWN0aW9uU2x1ZyA9IHZhbC5yZWxhdGlvblRvXG4gICAgICAgIHJlcXVlc3RlZElEID0gdmFsLnZhbHVlXG4gICAgICB9XG5cbiAgICAgIGlmIChyZXF1ZXN0ZWRJRCA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGNvbnN0IGlkRmllbGQgPSBjb25maWc/LmNvbGxlY3Rpb25zXG4gICAgICAgID8uZmluZCgoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSBjb2xsZWN0aW9uU2x1ZylcbiAgICAgICAgPy5maWVsZHM/LmZpbmQoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKVxuXG4gICAgICBjb25zdCB0eXBlID0gZ2V0SURUeXBlKGlkRmllbGQsIHBheWxvYWQ/LmRiPy5kZWZhdWx0SURUeXBlKVxuXG4gICAgICByZXR1cm4gIWlzVmFsaWRJRChyZXF1ZXN0ZWRJRCwgdHlwZSlcbiAgICB9KVxuXG4gICAgaWYgKGludmFsaWRSZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBgVGhpcyByZWxhdGlvbnNoaXAgZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgaW52YWxpZCByZWxhdGlvbnNoaXBzOiAke2ludmFsaWRSZWxhdGlvbnNoaXBzXG4gICAgICAgIC5tYXAoKGVyciwgaW52YWxpZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgJHtlcnJ9ICR7SlNPTi5zdHJpbmdpZnkoaW52YWxpZCl9YFxuICAgICAgICB9KVxuICAgICAgICAuam9pbignLCAnKX1gXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbGlkYXRlRmlsdGVyT3B0aW9ucyh2YWx1ZSwgb3B0aW9ucylcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgU2VsZWN0RmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBoYXNNYW55LCBvcHRpb25zLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmIChcbiAgICBBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAgIHZhbHVlLnNvbWUoXG4gICAgICAoaW5wdXQpID0+XG4gICAgICAgICFvcHRpb25zLnNvbWUoXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uID09PSBpbnB1dCB8fCAodHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgb3B0aW9uPy52YWx1ZSA9PT0gaW5wdXQpLFxuICAgICAgICApLFxuICAgIClcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbicpXG4gIH1cblxuICBpZiAoXG4gICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJlxuICAgICFvcHRpb25zLnNvbWUoXG4gICAgICAob3B0aW9uKSA9PiBvcHRpb24gPT09IHZhbHVlIHx8ICh0eXBlb2Ygb3B0aW9uICE9PSAnc3RyaW5nJyAmJiBvcHRpb24udmFsdWUgPT09IHZhbHVlKSxcbiAgICApXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRTZWxlY3Rpb24nKVxuICB9XG5cbiAgaWYgKFxuICAgIHJlcXVpcmVkICYmXG4gICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgICAoaGFzTWFueSAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiAodmFsdWUgYXMgW10pPy5sZW5ndGggPT09IDApKVxuICApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcmFkaW86IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFJhZGlvRmllbGQ+ID0gKHZhbHVlLCB7IG9wdGlvbnMsIHJlcXVpcmVkLCB0IH0pID0+IHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgY29uc3QgdmFsdWVNYXRjaGVzT3B0aW9uID0gb3B0aW9ucy5zb21lKFxuICAgICAgKG9wdGlvbikgPT4gb3B0aW9uID09PSB2YWx1ZSB8fCAodHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgb3B0aW9uLnZhbHVlID09PSB2YWx1ZSksXG4gICAgKVxuICAgIHJldHVybiB2YWx1ZU1hdGNoZXNPcHRpb24gfHwgdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9uJylcbiAgfVxuXG4gIHJldHVybiByZXF1aXJlZCA/IHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKSA6IHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHBvaW50OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBQb2ludEZpZWxkPiA9IChcbiAgdmFsdWU6IFtudW1iZXIgfCBzdHJpbmcsIG51bWJlciB8IHN0cmluZ10gPSBbJycsICcnXSxcbiAgeyByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGNvbnN0IGxuZyA9IHBhcnNlRmxvYXQoU3RyaW5nKHZhbHVlWzBdKSlcbiAgY29uc3QgbGF0ID0gcGFyc2VGbG9hdChTdHJpbmcodmFsdWVbMV0pKVxuICBpZiAoXG4gICAgcmVxdWlyZWQgJiZcbiAgICAoKHZhbHVlWzBdICYmIHZhbHVlWzFdICYmIHR5cGVvZiBsbmcgIT09ICdudW1iZXInICYmIHR5cGVvZiBsYXQgIT09ICdudW1iZXInKSB8fFxuICAgICAgTnVtYmVyLmlzTmFOKGxuZykgfHxcbiAgICAgIE51bWJlci5pc05hTihsYXQpIHx8XG4gICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoICE9PSAyKSlcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZXNUd29OdW1iZXJzJylcbiAgfVxuXG4gIGlmICgodmFsdWVbMV0gJiYgTnVtYmVyLmlzTmFOKGxuZykpIHx8ICh2YWx1ZVswXSAmJiBOdW1iZXIuaXNOYU4obGF0KSkpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjppbnZhbGlkSW5wdXQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBhcnJheSxcbiAgYmxvY2tzLFxuICBjaGVja2JveCxcbiAgY29kZSxcbiAgZGF0ZSxcbiAgZW1haWwsXG4gIGpzb24sXG4gIG51bWJlcixcbiAgcGFzc3dvcmQsXG4gIHBvaW50LFxuICByYWRpbyxcbiAgcmVsYXRpb25zaGlwLFxuICByaWNoVGV4dCxcbiAgc2VsZWN0LFxuICB0ZXh0LFxuICB0ZXh0YXJlYSxcbiAgdXBsb2FkLFxufVxuIl0sIm5hbWVzIjpbInRleHQiLCJwYXNzd29yZCIsImVtYWlsIiwidGV4dGFyZWEiLCJjb2RlIiwianNvbiIsImNoZWNrYm94IiwiZGF0ZSIsInJpY2hUZXh0IiwibnVtYmVyIiwiYXJyYXkiLCJibG9ja3MiLCJ1cGxvYWQiLCJyZWxhdGlvbnNoaXAiLCJzZWxlY3QiLCJyYWRpbyIsInBvaW50IiwidmFsdWUiLCJjb25maWciLCJoYXNNYW55IiwibWF4TGVuZ3RoIiwiZmllbGRNYXhMZW5ndGgiLCJtYXhSb3dzIiwibWluTGVuZ3RoIiwibWluUm93cyIsInJlcXVpcmVkIiwidCIsImxlbmd0aFZhbGlkYXRpb25SZXN1bHQiLCJ2YWxpZGF0ZUFycmF5TGVuZ3RoIiwiZGVmYXVsdE1heFRleHRMZW5ndGgiLCJzdHJpbmdzVG9WYWxpZGF0ZSIsIkFycmF5IiwiaXNBcnJheSIsInN0cmluZ1ZhbHVlIiwibGVuZ3RoIiwibGFiZWwiLCJwYXlsb2FkIiwidGVzdCIsInVuZGVmaW5lZCIsImpzb25FcnJvciIsImlzTmFOIiwiRGF0ZSIsInBhcnNlIiwidG9TdHJpbmciLCJvcHRpb25zIiwiZWRpdG9yIiwidmFsaWRhdGUiLCJhcnJheUxlbmd0aCIsImNvdW50IiwibWF4IiwibWluIiwiaXNOdW1iZXIiLCJudW1iZXJzVG9WYWxpZGF0ZSIsIm51bWJlclZhbHVlIiwicGFyc2VGbG9hdCIsInZhbGlkYXRlRmlsdGVyT3B0aW9ucyIsImlkIiwiZGF0YSIsImZpbHRlck9wdGlvbnMiLCJyZWxhdGlvblRvIiwicmVxIiwic2libGluZ0RhdGEiLCJ1c2VyIiwiY2FuVXNlRE9NIiwiZmFsc2VDb2xsZWN0aW9ucyIsImNvbGxlY3Rpb25zIiwidmFsdWVzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImNvbGxlY3Rpb24iLCJvcHRpb25GaWx0ZXIiLCJ2YWx1ZUlEcyIsImZvckVhY2giLCJ2YWwiLCJwdXNoIiwiZmluZFdoZXJlIiwiYW5kIiwiaW4iLCJyZXN1bHQiLCJmaW5kIiwiZGVwdGgiLCJsaW1pdCIsInBhZ2luYXRpb24iLCJ3aGVyZSIsImRvY3MiLCJkb2MiLCJpbnZhbGlkUmVsYXRpb25zaGlwcyIsImZpbHRlciIsInJlcXVlc3RlZElEIiwic2x1ZyIsImluZGV4T2YiLCJyZWR1Y2UiLCJlcnIiLCJpbnZhbGlkIiwiaSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpZEZpZWxkIiwiZmllbGRzIiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsInR5cGUiLCJnZXRJRFR5cGUiLCJkYiIsImRlZmF1bHRJRFR5cGUiLCJpc1ZhbGlkSUQiLCJjb2xsZWN0aW9uU2x1ZyIsImpvaW4iLCJzb21lIiwiaW5wdXQiLCJvcHRpb24iLCJ2YWx1ZU1hdGNoZXNPcHRpb24iLCJsbmciLCJTdHJpbmciLCJsYXQiLCJOdW1iZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBNEJhQSxJQUFJO2VBQUpBOztJQXlDQUMsUUFBUTtlQUFSQTs7SUF3QkFDLEtBQUs7ZUFBTEE7O0lBUUFDLFFBQVE7ZUFBUkE7O0lBdUJBQyxJQUFJO2VBQUpBOztJQVFBQyxJQUFJO2VBQUpBOztJQWVBQyxRQUFRO2VBQVJBOztJQVdBQyxJQUFJO2VBQUpBOztJQWlCQUMsUUFBUTtlQUFSQTs7SUF1Q0FDLE1BQU07ZUFBTkE7O0lBa0NBQyxLQUFLO2VBQUxBOztJQU9BQyxNQUFNO2VBQU5BOztJQWtIQUMsTUFBTTtlQUFOQTs7SUFvQkFDLFlBQVk7ZUFBWkE7O0lBZ0VBQyxNQUFNO2VBQU5BOztJQXFDQUMsS0FBSztlQUFMQTs7SUFXQUMsS0FBSztlQUFMQTs7SUF1QmIsT0FrQkM7ZUFsQkQ7OztrRUF0ZnNCOzJCQUNJOzBCQUNEOzJCQUNDO3VCQUNPOzs7Ozs7QUFFMUIsTUFBTWhCLE9BQThDLENBQ3pEaUIsT0FDQSxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsV0FBV0MsY0FBYyxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLENBQUMsRUFBRTtJQUV4RixJQUFJTjtJQUVKLElBQUksQ0FBQ0ssVUFBVTtRQUNiLElBQUksQ0FBQ1IsT0FBTyxPQUFPO0lBQ3JCO0lBRUEsSUFBSUUsWUFBWSxNQUFNO1FBQ3BCLE1BQU1RLHlCQUF5QkMsb0JBQW9CWCxPQUFPO1lBQUVLO1lBQVNFO1lBQVNDO1lBQVVD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
|
|
491
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9leHBvcnRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJlbGF0aW9uc2hpcFZhbHVlLFxuICBSaWNoVGV4dEZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbiAgVmFsaWRhdGUsXG59IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgY2FuVXNlRE9NIGZyb20gJy4uL3V0aWxpdGllcy9jYW5Vc2VET00nXG5pbXBvcnQgeyBnZXRJRFR5cGUgfSBmcm9tICcuLi91dGlsaXRpZXMvZ2V0SURUeXBlJ1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNOdW1iZXInXG5pbXBvcnQgeyBpc1ZhbGlkSUQgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNWYWxpZElEJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgdGV4dDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgVGV4dEZpZWxkPiA9IChcbiAgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLFxuICB7IGNvbmZpZywgaGFzTWFueSwgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWF4Um93cywgbWluTGVuZ3RoLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICghcmVxdWlyZWQpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKGhhc01hbnkgPT09IHRydWUpIHtcbiAgICBjb25zdCBsZW5ndGhWYWxpZGF0aW9uUmVzdWx0ID0gdmFsaWRhdGVBcnJheUxlbmd0aCh2YWx1ZSwgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9KVxuICAgIGlmICh0eXBlb2YgbGVuZ3RoVmFsaWRhdGlvblJlc3VsdCA9PT0gJ3N0cmluZycpIHJldHVybiBsZW5ndGhWYWxpZGF0aW9uUmVzdWx0XG4gIH1cblxuICBpZiAodHlwZW9mIGNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBjb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG5cbiAgY29uc3Qgc3RyaW5nc1RvVmFsaWRhdGU6IHN0cmluZ1tdID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICBmb3IgKGNvbnN0IHN0cmluZ1ZhbHVlIG9mIHN0cmluZ3NUb1ZhbGlkYXRlKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gc3RyaW5nVmFsdWU/Lmxlbmd0aCB8fCAwXG5cbiAgICBpZiAodHlwZW9mIG1heExlbmd0aCA9PT0gJ251bWJlcicgJiYgbGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpzaG9ydGVyVGhhbk1heCcsIHsgbGFiZWw6IHQoJ3ZhbHVlJyksIG1heExlbmd0aCwgc3RyaW5nVmFsdWUgfSlcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG1pbkxlbmd0aCA9PT0gJ251bWJlcicgJiYgbGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBsYWJlbDogdCgndmFsdWUnKSwgbWluTGVuZ3RoLCBzdHJpbmdWYWx1ZSB9KVxuICAgIH1cbiAgfVxuXG4gIGlmIChyZXF1aXJlZCkge1xuICAgIGlmICghKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHx8IHZhbHVlPy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcGFzc3dvcmQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFRleHRGaWVsZD4gPSAoXG4gIHZhbHVlOiBzdHJpbmcsXG4gIHsgY29uZmlnLCBtYXhMZW5ndGg6IGZpZWxkTWF4TGVuZ3RoLCBtaW5MZW5ndGgsIHBheWxvYWQsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgbGV0IG1heExlbmd0aDogbnVtYmVyXG5cbiAgaWYgKHR5cGVvZiBjb25maWc/LmRlZmF1bHRNYXhUZXh0TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gY29uZmlnLmRlZmF1bHRNYXhUZXh0TGVuZ3RoXG4gIGlmICh0eXBlb2YgZmllbGRNYXhMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBmaWVsZE1heExlbmd0aFxuXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCBtaW5MZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBtaW5MZW5ndGggfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgZW1haWw6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEVtYWlsRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAoKHZhbHVlICYmICEvXFxTW15cXHNAXSpAXFxTK1xcLlxcUysvLnRlc3QodmFsdWUpKSB8fCAoIXZhbHVlICYmIHJlcXVpcmVkKSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmVtYWlsQWRkcmVzcycpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgdGV4dGFyZWE6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFRleHRhcmVhRmllbGQ+ID0gKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IGNvbmZpZywgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWluTGVuZ3RoLCBwYXlsb2FkLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICh0eXBlb2YgY29uZmlnPy5kZWZhdWx0TWF4VGV4dExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGNvbmZpZy5kZWZhdWx0TWF4VGV4dExlbmd0aFxuICBpZiAodHlwZW9mIGZpZWxkTWF4TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gZmllbGRNYXhMZW5ndGhcbiAgaWYgKHZhbHVlICYmIG1heExlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpzaG9ydGVyVGhhbk1heCcsIHsgbWF4TGVuZ3RoIH0pXG4gIH1cblxuICBpZiAodmFsdWUgJiYgbWluTGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA8IG1pbkxlbmd0aCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmxvbmdlclRoYW5NaW4nLCB7IG1pbkxlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBjb2RlOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBDb2RlRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAocmVxdWlyZWQgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBqc29uOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBKU09ORmllbGQgJiB7IGpzb25FcnJvcj86IHN0cmluZyB9PiA9IChcbiAgdmFsdWU6IHN0cmluZyxcbiAgeyBqc29uRXJyb3IsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgaWYgKHJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIGlmIChqc29uRXJyb3IgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRJbnB1dCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgY2hlY2tib3g6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIENoZWNrYm94RmllbGQ+ID0gKFxuICB2YWx1ZTogYm9vbGVhbixcbiAgeyByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmICgodmFsdWUgJiYgdHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpIHx8IChyZXF1aXJlZCAmJiB0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjp0cnVlT3JGYWxzZScpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgZGF0ZTogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgRGF0ZUZpZWxkPiA9ICh2YWx1ZSwgeyByZXF1aXJlZCwgdCB9KSA9PiB7XG4gIGlmICh2YWx1ZSAmJiAhaXNOYU4oRGF0ZS5wYXJzZSh2YWx1ZS50b1N0cmluZygpKSkpIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZS1saW5lICovXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmICh2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOm5vdFZhbGlkRGF0ZScsIHsgdmFsdWUgfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCByaWNoVGV4dDogVmFsaWRhdGU8b2JqZWN0LCB1bmtub3duLCBSaWNoVGV4dEZpZWxkLCBSaWNoVGV4dEZpZWxkPiA9IGFzeW5jIChcbiAgdmFsdWUsXG4gIG9wdGlvbnMsXG4pID0+IHtcbiAgY29uc3QgZWRpdG9yOiBSaWNoVGV4dEFkYXB0ZXIgPSBvcHRpb25zPy5lZGl0b3JcblxuICByZXR1cm4gYXdhaXQgZWRpdG9yLnZhbGlkYXRlKHZhbHVlLCBvcHRpb25zKVxufVxuXG5jb25zdCB2YWxpZGF0ZUFycmF5TGVuZ3RoOiBhbnkgPSAoXG4gIHZhbHVlLFxuICBvcHRpb25zOiB7XG4gICAgbWF4Um93cz86IG51bWJlclxuICAgIG1pblJvd3M/OiBudW1iZXJcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0OiAoa2V5OiBzdHJpbmcsIG9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB8IHN0cmluZyB9KSA9PiBzdHJpbmdcbiAgfSxcbikgPT4ge1xuICBjb25zdCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0gPSBvcHRpb25zXG5cbiAgY29uc3QgYXJyYXlMZW5ndGggPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmxlbmd0aCA6IDBcblxuICBpZiAoIXJlcXVpcmVkICYmIGFycmF5TGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZVxuXG4gIGlmIChtaW5Sb3dzICYmIGFycmF5TGVuZ3RoIDwgbWluUm93cykge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzQXRMZWFzdCcsIHsgY291bnQ6IG1pblJvd3MsIGxhYmVsOiB0KCdyb3dzJykgfSlcbiAgfVxuXG4gIGlmIChtYXhSb3dzICYmIGFycmF5TGVuZ3RoID4gbWF4Um93cykge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzTm9Nb3JlVGhhbicsIHsgY291bnQ6IG1heFJvd3MsIGxhYmVsOiB0KCdyb3dzJykgfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhYXJyYXlMZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc0F0TGVhc3QnLCB7IGNvdW50OiAxLCBsYWJlbDogdCgncm93JykgfSlcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBudW1iZXI6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIE51bWJlckZpZWxkPiA9IChcbiAgdmFsdWU6IG51bWJlciB8IG51bWJlcltdLFxuICB7IGhhc01hbnksIG1heCwgbWF4Um93cywgbWluLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmIChoYXNNYW55ID09PSB0cnVlKSB7XG4gICAgY29uc3QgbGVuZ3RoVmFsaWRhdGlvblJlc3VsdCA9IHZhbGlkYXRlQXJyYXlMZW5ndGgodmFsdWUsIHsgbWF4Um93cywgbWluUm93cywgcmVxdWlyZWQsIHQgfSlcbiAgICBpZiAodHlwZW9mIGxlbmd0aFZhbGlkYXRpb25SZXN1bHQgPT09ICdzdHJpbmcnKSByZXR1cm4gbGVuZ3RoVmFsaWRhdGlvblJlc3VsdFxuICB9XG5cbiAgaWYgKCF2YWx1ZSAmJiAhaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgLy8gaWYgbm8gdmFsdWUgaXMgcHJlc2VudCwgdmFsaWRhdGUgYmFzZWQgb24gcmVxdWlyZWRcbiAgICBpZiAocmVxdWlyZWQpIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICBpZiAoIXJlcXVpcmVkKSByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgY29uc3QgbnVtYmVyc1RvVmFsaWRhdGU6IG51bWJlcltdID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICBmb3IgKGNvbnN0IG51bWJlciBvZiBudW1iZXJzVG9WYWxpZGF0ZSkge1xuICAgIGlmICghaXNOdW1iZXIobnVtYmVyKSkgcmV0dXJuIHQoJ3ZhbGlkYXRpb246ZW50ZXJOdW1iZXInKVxuXG4gICAgY29uc3QgbnVtYmVyVmFsdWUgPSBwYXJzZUZsb2F0KG51bWJlciBhcyB1bmtub3duIGFzIHN0cmluZylcblxuICAgIGlmICh0eXBlb2YgbWF4ID09PSAnbnVtYmVyJyAmJiBudW1iZXJWYWx1ZSA+IG1heCkge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnLCB7IGxhYmVsOiB0KCd2YWx1ZScpLCBtYXgsIHZhbHVlIH0pXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBtaW4gPT09ICdudW1iZXInICYmIG51bWJlclZhbHVlIDwgbWluKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsZXNzVGhhbk1pbicsIHsgbGFiZWw6IHQoJ3ZhbHVlJyksIG1pbiwgdmFsdWUgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgYXJyYXk6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEFycmF5RmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG59XG5cbmV4cG9ydCBjb25zdCBibG9ja3M6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEJsb2NrRmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG59XG5cbmNvbnN0IHZhbGlkYXRlRmlsdGVyT3B0aW9uczogVmFsaWRhdGUgPSBhc3luYyAoXG4gIHZhbHVlLFxuICB7IGlkLCBkYXRhLCBmaWx0ZXJPcHRpb25zLCBwYXlsb2FkLCByZWxhdGlvblRvLCByZXEsIHNpYmxpbmdEYXRhLCB0LCB1c2VyIH0sXG4pID0+IHtcbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIGZpbHRlck9wdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlKSB7XG4gICAgY29uc3Qgb3B0aW9uczoge1xuICAgICAgW2NvbGxlY3Rpb246IHN0cmluZ106IChudW1iZXIgfCBzdHJpbmcpW11cbiAgICB9ID0ge31cblxuICAgIGNvbnN0IGZhbHNlQ29sbGVjdGlvbnM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBjb2xsZWN0aW9ucyA9IHR5cGVvZiByZWxhdGlvblRvID09PSAnc3RyaW5nJyA/IFtyZWxhdGlvblRvXSA6IHJlbGF0aW9uVG9cbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBjb2xsZWN0aW9ucy5tYXAoYXN5bmMgKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsZXQgb3B0aW9uRmlsdGVyID1cbiAgICAgICAgICAgIHR5cGVvZiBmaWx0ZXJPcHRpb25zID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgID8gYXdhaXQgZmlsdGVyT3B0aW9ucyh7XG4gICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICByZWxhdGlvblRvOiBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgICAgICAgICAgICB1c2VyLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIDogZmlsdGVyT3B0aW9uc1xuXG4gICAgICAgICAgaWYgKG9wdGlvbkZpbHRlciA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgb3B0aW9uRmlsdGVyID0gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHZhbHVlSURzOiAobnVtYmVyIHwgc3RyaW5nKVtdID0gW11cblxuICAgICAgICAgIHZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWw/LnZhbHVlKSB7XG4gICAgICAgICAgICAgIHZhbHVlSURzLnB1c2godmFsLnZhbHVlKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgdmFsdWVJRHMucHVzaCh2YWwpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmICh2YWx1ZUlEcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBmaW5kV2hlcmUgPSB7XG4gICAgICAgICAgICAgIGFuZDogW3sgaWQ6IHsgaW46IHZhbHVlSURzIH0gfV0sXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25GaWx0ZXIpIGZpbmRXaGVyZS5hbmQucHVzaChvcHRpb25GaWx0ZXIpXG5cbiAgICAgICAgICAgIGlmIChvcHRpb25GaWx0ZXIgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIGZhbHNlQ29sbGVjdGlvbnMucHVzaChvcHRpb25GaWx0ZXIpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGByZXFgIG9taXR0ZWQgdG8gcHJldmVudCB0cmFuc2FjdGlvbiBlcnJvcnMgZnJvbSBhYm9ydGluZyB0aGUgZW50aXJlIHRyYW5zYWN0aW9uXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXlsb2FkLmZpbmQoe1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICBkZXB0aDogMCxcbiAgICAgICAgICAgICAgbGltaXQ6IDAsXG4gICAgICAgICAgICAgIHBhZ2luYXRpb246IGZhbHNlLFxuICAgICAgICAgICAgICB3aGVyZTogZmluZFdoZXJlLFxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgb3B0aW9uc1tjb2xsZWN0aW9uXSA9IHJlc3VsdC5kb2NzLm1hcCgoZG9jKSA9PiBkb2MuaWQpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9wdGlvbnNbY29sbGVjdGlvbl0gPSBbXVxuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgcmVxLnBheWxvYWQubG9nZ2VyLmVycm9yKHtcbiAgICAgICAgICAgIGVycixcbiAgICAgICAgICAgIG1zZzogYEVycm9yIHZhbGlkYXRpbmcgZmlsdGVyIG9wdGlvbnMgZm9yIGNvbGxlY3Rpb24gJHtjb2xsZWN0aW9ufWAsXG4gICAgICAgICAgfSlcbiAgICAgICAgICBvcHRpb25zW2NvbGxlY3Rpb25dID0gW11cbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKVxuXG4gICAgY29uc3QgaW52YWxpZFJlbGF0aW9uc2hpcHMgPSB2YWx1ZXMuZmlsdGVyKCh2YWwpID0+IHtcbiAgICAgIGxldCBjb2xsZWN0aW9uOiBzdHJpbmdcbiAgICAgIGxldCByZXF1ZXN0ZWRJRDogbnVtYmVyIHwgc3RyaW5nXG5cbiAgICAgIGlmICh0eXBlb2YgcmVsYXRpb25UbyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29sbGVjdGlvbiA9IHJlbGF0aW9uVG9cblxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbD8ucmVsYXRpb25Ubykge1xuICAgICAgICBjb2xsZWN0aW9uID0gdmFsLnJlbGF0aW9uVG9cbiAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWwudmFsdWVcbiAgICAgIH1cblxuICAgICAgaWYgKGZhbHNlQ29sbGVjdGlvbnMuZmluZCgoc2x1ZykgPT4gcmVsYXRpb25UbyA9PT0gc2x1ZykpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9wdGlvbnNbY29sbGVjdGlvbl0uaW5kZXhPZihyZXF1ZXN0ZWRJRCkgPT09IC0xXG4gICAgfSlcblxuICAgIGlmIChpbnZhbGlkUmVsYXRpb25zaGlwcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFJlbGF0aW9uc2hpcHMucmVkdWNlKChlcnIsIGludmFsaWQsIGkpID0+IHtcbiAgICAgICAgcmV0dXJuIGAke2Vycn0gJHtKU09OLnN0cmluZ2lmeShpbnZhbGlkKX0ke1xuICAgICAgICAgIGludmFsaWRSZWxhdGlvbnNoaXBzLmxlbmd0aCA9PT0gaSArIDEgPyAnLCcgOiAnJ1xuICAgICAgICB9IGBcbiAgICAgIH0sIHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbnMnKSkgYXMgc3RyaW5nXG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCB1cGxvYWQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFVwbG9hZEZpZWxkPiA9ICh2YWx1ZTogc3RyaW5nLCBvcHRpb25zKSA9PiB7XG4gIGlmICghdmFsdWUgJiYgb3B0aW9ucy5yZXF1aXJlZCkge1xuICAgIHJldHVybiBvcHRpb25zLnQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGlkRmllbGQgPSBvcHRpb25zPy5jb25maWc/LmNvbGxlY3Rpb25zXG4gICAgICA/LmZpbmQoKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gb3B0aW9ucy5yZWxhdGlvblRvKVxuICAgICAgPy5maWVsZHM/LmZpbmQoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKVxuXG4gICAgY29uc3QgdHlwZSA9IGdldElEVHlwZShpZEZpZWxkLCBvcHRpb25zPy5wYXlsb2FkPy5kYj8uZGVmYXVsdElEVHlwZSlcblxuICAgIGlmICghaXNWYWxpZElEKHZhbHVlLCB0eXBlKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMudCgndmFsaWRhdGlvbjp2YWxpZFVwbG9hZElEJylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVGaWx0ZXJPcHRpb25zKHZhbHVlLCBvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3QgcmVsYXRpb25zaGlwOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBSZWxhdGlvbnNoaXBGaWVsZD4gPSBhc3luYyAoXG4gIHZhbHVlOiBSZWxhdGlvbnNoaXBWYWx1ZSxcbiAgb3B0aW9ucyxcbikgPT4ge1xuICBjb25zdCB7IGNvbmZpZywgbWF4Um93cywgbWluUm93cywgcGF5bG9hZCwgcmVsYXRpb25UbywgcmVxdWlyZWQsIHQgfSA9IG9wdGlvbnNcblxuICBpZiAoKCF2YWx1ZSB8fCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSkgJiYgcmVxdWlyZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgIGlmIChtaW5Sb3dzICYmIHZhbHVlLmxlbmd0aCA8IG1pblJvd3MpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJywgeyBsYWJlbDogdCgncm93cycpLCBtaW46IG1pblJvd3MsIHZhbHVlOiB2YWx1ZS5sZW5ndGggfSlcbiAgICB9XG5cbiAgICBpZiAobWF4Um93cyAmJiB2YWx1ZS5sZW5ndGggPiBtYXhSb3dzKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpncmVhdGVyVGhhbk1heCcsIHsgbGFiZWw6IHQoJ3Jvd3MnKSwgbWF4OiBtYXhSb3dzLCB2YWx1ZTogdmFsdWUubGVuZ3RoIH0pXG4gICAgfVxuICB9XG5cbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdXG5cbiAgICBjb25zdCBpbnZhbGlkUmVsYXRpb25zaGlwcyA9IHZhbHVlcy5maWx0ZXIoKHZhbCkgPT4ge1xuICAgICAgbGV0IGNvbGxlY3Rpb25TbHVnOiBzdHJpbmdcbiAgICAgIGxldCByZXF1ZXN0ZWRJRFxuXG4gICAgICBpZiAodHlwZW9mIHJlbGF0aW9uVG8gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnID0gcmVsYXRpb25Ub1xuXG4gICAgICAgIC8vIGN1c3RvbSBpZFxuICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyZWxhdGlvblRvKSAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWw/LnJlbGF0aW9uVG8pIHtcbiAgICAgICAgY29sbGVjdGlvblNsdWcgPSB2YWwucmVsYXRpb25Ub1xuICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbC52YWx1ZVxuICAgICAgfVxuXG4gICAgICBpZiAocmVxdWVzdGVkSUQgPT09IG51bGwpIHJldHVybiBmYWxzZVxuXG4gICAgICBjb25zdCBpZEZpZWxkID0gY29uZmlnPy5jb2xsZWN0aW9uc1xuICAgICAgICA/LmZpbmQoKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gY29sbGVjdGlvblNsdWcpXG4gICAgICAgID8uZmllbGRzPy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcblxuICAgICAgY29uc3QgdHlwZSA9IGdldElEVHlwZShpZEZpZWxkLCBwYXlsb2FkPy5kYj8uZGVmYXVsdElEVHlwZSlcblxuICAgICAgcmV0dXJuICFpc1ZhbGlkSUQocmVxdWVzdGVkSUQsIHR5cGUpXG4gICAgfSlcblxuICAgIGlmIChpbnZhbGlkUmVsYXRpb25zaGlwcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gYFRoaXMgcmVsYXRpb25zaGlwIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGludmFsaWQgcmVsYXRpb25zaGlwczogJHtpbnZhbGlkUmVsYXRpb25zaGlwc1xuICAgICAgICAubWFwKChlcnIsIGludmFsaWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYCR7ZXJyfSAke0pTT04uc3RyaW5naWZ5KGludmFsaWQpfWBcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJywgJyl9YFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZUZpbHRlck9wdGlvbnModmFsdWUsIG9wdGlvbnMpXG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3Q6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFNlbGVjdEZpZWxkPiA9IChcbiAgdmFsdWUsXG4gIHsgaGFzTWFueSwgb3B0aW9ucywgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAoXG4gICAgQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiZcbiAgICB2YWx1ZS5zb21lKFxuICAgICAgKGlucHV0KSA9PlxuICAgICAgICAhb3B0aW9ucy5zb21lKFxuICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbiA9PT0gaW5wdXQgfHwgKHR5cGVvZiBvcHRpb24gIT09ICdzdHJpbmcnICYmIG9wdGlvbj8udmFsdWUgPT09IGlucHV0KSxcbiAgICAgICAgKSxcbiAgICApXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRTZWxlY3Rpb24nKVxuICB9XG5cbiAgaWYgKFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiZcbiAgICAhb3B0aW9ucy5zb21lKFxuICAgICAgKG9wdGlvbikgPT4gb3B0aW9uID09PSB2YWx1ZSB8fCAodHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgb3B0aW9uLnZhbHVlID09PSB2YWx1ZSksXG4gICAgKVxuICApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9uJylcbiAgfVxuXG4gIGlmIChcbiAgICByZXF1aXJlZCAmJlxuICAgICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnIHx8XG4gICAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgKGhhc01hbnkgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgKHZhbHVlIGFzIFtdKT8ubGVuZ3RoID09PSAwKSlcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHJhZGlvOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBSYWRpb0ZpZWxkPiA9ICh2YWx1ZSwgeyBvcHRpb25zLCByZXF1aXJlZCwgdCB9KSA9PiB7XG4gIGlmICh2YWx1ZSkge1xuICAgIGNvbnN0IHZhbHVlTWF0Y2hlc09wdGlvbiA9IG9wdGlvbnMuc29tZShcbiAgICAgIChvcHRpb24pID0+IG9wdGlvbiA9PT0gdmFsdWUgfHwgKHR5cGVvZiBvcHRpb24gIT09ICdzdHJpbmcnICYmIG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUpLFxuICAgIClcbiAgICByZXR1cm4gdmFsdWVNYXRjaGVzT3B0aW9uIHx8IHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbicpXG4gIH1cblxuICByZXR1cm4gcmVxdWlyZWQgPyB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJykgOiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBwb2ludDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgUG9pbnRGaWVsZD4gPSAoXG4gIHZhbHVlOiBbbnVtYmVyIHwgc3RyaW5nLCBudW1iZXIgfCBzdHJpbmddID0gWycnLCAnJ10sXG4gIHsgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBjb25zdCBsbmcgPSBwYXJzZUZsb2F0KFN0cmluZyh2YWx1ZVswXSkpXG4gIGNvbnN0IGxhdCA9IHBhcnNlRmxvYXQoU3RyaW5nKHZhbHVlWzFdKSlcbiAgaWYgKFxuICAgIHJlcXVpcmVkICYmXG4gICAgKCh2YWx1ZVswXSAmJiB2YWx1ZVsxXSAmJiB0eXBlb2YgbG5nICE9PSAnbnVtYmVyJyAmJiB0eXBlb2YgbGF0ICE9PSAnbnVtYmVyJykgfHxcbiAgICAgIE51bWJlci5pc05hTihsbmcpIHx8XG4gICAgICBOdW1iZXIuaXNOYU4obGF0KSB8fFxuICAgICAgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCAhPT0gMikpXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzVHdvTnVtYmVycycpXG4gIH1cblxuICBpZiAoKHZhbHVlWzFdICYmIE51bWJlci5pc05hTihsbmcpKSB8fCAodmFsdWVbMF0gJiYgTnVtYmVyLmlzTmFOKGxhdCkpKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZElucHV0JylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgYXJyYXksXG4gIGJsb2NrcyxcbiAgY2hlY2tib3gsXG4gIGNvZGUsXG4gIGRhdGUsXG4gIGVtYWlsLFxuICBqc29uLFxuICBudW1iZXIsXG4gIHBhc3N3b3JkLFxuICBwb2ludCxcbiAgcmFkaW8sXG4gIHJlbGF0aW9uc2hpcCxcbiAgcmljaFRleHQsXG4gIHNlbGVjdCxcbiAgdGV4dCxcbiAgdGV4dGFyZWEsXG4gIHVwbG9hZCxcbn1cbiJdLCJuYW1lcyI6WyJhcnJheSIsImJsb2NrcyIsImNoZWNrYm94IiwiY29kZSIsImRhdGUiLCJlbWFpbCIsImpzb24iLCJudW1iZXIiLCJwYXNzd29yZCIsInBvaW50IiwicmFkaW8iLCJyZWxhdGlvbnNoaXAiLCJyaWNoVGV4dCIsInNlbGVjdCIsInRleHQiLCJ0ZXh0YXJlYSIsInVwbG9hZCIsInZhbHVlIiwiY29uZmlnIiwiaGFzTWFueSIsIm1heExlbmd0aCIsImZpZWxkTWF4TGVuZ3RoIiwibWF4Um93cyIsIm1pbkxlbmd0aCIsIm1pblJvd3MiLCJyZXF1aXJlZCIsInQiLCJsZW5ndGhWYWxpZGF0aW9uUmVzdWx0IiwidmFsaWRhdGVBcnJheUxlbmd0aCIsImRlZmF1bHRNYXhUZXh0TGVuZ3RoIiwic3RyaW5nc1RvVmFsaWRhdGUiLCJBcnJheSIsImlzQXJyYXkiLCJzdHJpbmdWYWx1ZSIsImxlbmd0aCIsImxhYmVsIiwicGF5bG9hZCIsInRlc3QiLCJ1bmRlZmluZWQiLCJqc29uRXJyb3IiLCJpc05hTiIsIkRhdGUiLCJwYXJzZSIsInRvU3RyaW5nIiwib3B0aW9ucyIsImVkaXRvciIsInZhbGlkYXRlIiwiYXJyYXlMZW5ndGgiLCJjb3VudCIsIm1heCIsIm1pbiIsImlzTnVtYmVyIiwibnVtYmVyc1RvVmFsaWRhdGUiLCJudW1iZXJWYWx1ZSIsInBhcnNlRmxvYXQiLCJ2YWxpZGF0ZUZpbHRlck9wdGlvbnMiLCJpZCIsImRhdGEiLCJmaWx0ZXJPcHRpb25zIiwicmVsYXRpb25UbyIsInJlcSIsInNpYmxpbmdEYXRhIiwidXNlciIsImNhblVzZURPTSIsImZhbHNlQ29sbGVjdGlvbnMiLCJjb2xsZWN0aW9ucyIsInZhbHVlcyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJjb2xsZWN0aW9uIiwib3B0aW9uRmlsdGVyIiwidmFsdWVJRHMiLCJmb3JFYWNoIiwidmFsIiwicHVzaCIsImZpbmRXaGVyZSIsImFuZCIsImluIiwicmVzdWx0IiwiZmluZCIsImRlcHRoIiwibGltaXQiLCJwYWdpbmF0aW9uIiwid2hlcmUiLCJkb2NzIiwiZG9jIiwiZXJyIiwibG9nZ2VyIiwiZXJyb3IiLCJtc2ciLCJpbnZhbGlkUmVsYXRpb25zaGlwcyIsImZpbHRlciIsInJlcXVlc3RlZElEIiwic2x1ZyIsImluZGV4T2YiLCJyZWR1Y2UiLCJpbnZhbGlkIiwiaSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpZEZpZWxkIiwiZmllbGRzIiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsInR5cGUiLCJnZXRJRFR5cGUiLCJkYiIsImRlZmF1bHRJRFR5cGUiLCJpc1ZhbGlkSUQiLCJjb2xsZWN0aW9uU2x1ZyIsImpvaW4iLCJzb21lIiwiaW5wdXQiLCJvcHRpb24iLCJ2YWx1ZU1hdGNoZXNPcHRpb24iLCJsbmciLCJTdHJpbmciLCJsYXQiLCJOdW1iZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBd1BhQSxLQUFLO2VBQUxBOztJQU9BQyxNQUFNO2VBQU5BOztJQTVHQUMsUUFBUTtlQUFSQTs7SUF2QkFDLElBQUk7ZUFBSkE7O0lBa0NBQyxJQUFJO2VBQUpBOztJQXNYYixPQWtCQztlQWxCRDs7SUF2YmFDLEtBQUs7ZUFBTEE7O0lBdUNBQyxJQUFJO2VBQUpBOztJQWtGQUMsTUFBTTtlQUFOQTs7SUFqSkFDLFFBQVE7ZUFBUkE7O0lBd2JBQyxLQUFLO2VBQUxBOztJQVhBQyxLQUFLO2VBQUxB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
|
|
@@ -43,7 +43,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
43
43
|
if (cache && cache.has(obj)) {
|
|
44
44
|
return cache.get(obj);
|
|
45
45
|
}
|
|
46
|
-
var newObj = {
|
|
46
|
+
var newObj = {
|
|
47
|
+
__proto__: null
|
|
48
|
+
};
|
|
47
49
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
48
50
|
for(var key in obj){
|
|
49
51
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -127,4 +129,4 @@ function registerGraphQLSchema(payload) {
|
|
|
127
129
|
];
|
|
128
130
|
}
|
|
129
131
|
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ncmFwaHFsL3JlZ2lzdGVyU2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG5pbXBvcnQgKiBhcyBHcmFwaFFMIGZyb20gJ2dyYXBocWwnXG5pbXBvcnQgeyBHcmFwaFFMT2JqZWN0VHlwZSwgR3JhcGhRTFNjaGVtYSB9IGZyb20gJ2dyYXBocWwnXG5pbXBvcnQgcXVlcnlDb21wbGV4aXR5LCB7XG4gIGZpZWxkRXh0ZW5zaW9uc0VzdGltYXRvcixcbiAgc2ltcGxlRXN0aW1hdG9yLFxufSBmcm9tICdncmFwaHFsLXF1ZXJ5LWNvbXBsZXhpdHknXG5cbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uL3BheWxvYWQnXG5cbmltcG9ydCBhY2Nlc3NSZXNvbHZlciBmcm9tICcuLi9hdXRoL2dyYXBocWwvcmVzb2x2ZXJzL2FjY2VzcydcbmltcG9ydCBpbml0Q29sbGVjdGlvbnMgZnJvbSAnLi4vY29sbGVjdGlvbnMvZ3JhcGhxbC9pbml0J1xuaW1wb3J0IGluaXRHbG9iYWxzIGZyb20gJy4uL2dsb2JhbHMvZ3JhcGhxbC9pbml0J1xuaW1wb3J0IGJ1aWxkRmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUgZnJvbSAnLi9zY2hlbWEvYnVpbGRGYWxsYmFja0xvY2FsZUlucHV0VHlwZSdcbmltcG9ydCBidWlsZExvY2FsZUlucHV0VHlwZSBmcm9tICcuL3NjaGVtYS9idWlsZExvY2FsZUlucHV0VHlwZSdcbmltcG9ydCBidWlsZFBvbGljaWVzVHlwZSBmcm9tICcuL3NjaGVtYS9idWlsZFBvbGljaWVzVHlwZSdcbmltcG9ydCB7IHdyYXBDdXN0b21GaWVsZHMgfSBmcm9tICcuL3V0aWxpdGllcy93cmFwQ3VzdG9tUmVzb2x2ZXInXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlZ2lzdGVyR3JhcGhRTFNjaGVtYShwYXlsb2FkOiBQYXlsb2FkKTogdm9pZCB7XG4gIHBheWxvYWQudHlwZXMgPSB7XG4gICAgYXJyYXlUeXBlczoge30sXG4gICAgYmxvY2tJbnB1dFR5cGVzOiB7fSxcbiAgICBibG9ja1R5cGVzOiB7fSxcbiAgICBncm91cFR5cGVzOiB7fSxcbiAgfVxuXG4gIGlmIChwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSA9IGJ1aWxkTG9jYWxlSW5wdXRUeXBlKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbilcbiAgICBwYXlsb2FkLnR5cGVzLmZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlID0gYnVpbGRGYWxsYmFja0xvY2FsZUlucHV0VHlwZShcbiAgICAgIHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbixcbiAgICApXG4gIH1cblxuICBwYXlsb2FkLlF1ZXJ5ID0ge1xuICAgIG5hbWU6ICdRdWVyeScsXG4gICAgZmllbGRzOiB7fSxcbiAgfVxuXG4gIHBheWxvYWQuTXV0YXRpb24gPSB7XG4gICAgbmFtZTogJ011dGF0aW9uJyxcbiAgICBmaWVsZHM6IHt9LFxuICB9XG5cbiAgaW5pdENvbGxlY3Rpb25zKHBheWxvYWQpXG4gIGluaXRHbG9iYWxzKHBheWxvYWQpXG5cbiAgcGF5bG9hZC5RdWVyeS5maWVsZHMuQWNjZXNzID0ge1xuICAgIHJlc29sdmU6IGFjY2Vzc1Jlc29sdmVyKHBheWxvYWQpLFxuICAgIHR5cGU6IGJ1aWxkUG9saWNpZXNUeXBlKHBheWxvYWQpLFxuICB9XG5cbiAgaWYgKHR5cGVvZiBwYXlsb2FkLmNvbmZpZy5ncmFwaFFMLnF1ZXJpZXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjb25zdCBjdXN0b21RdWVyaWVzID0gcGF5bG9hZC5jb25maWcuZ3JhcGhRTC5xdWVyaWVzKEdyYXBoUUwsIHBheWxvYWQpXG4gICAgcGF5bG9hZC5RdWVyeSA9IHtcbiAgICAgIC4uLnBheWxvYWQuUXVlcnksXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgLi4ucGF5bG9hZC5RdWVyeS5maWVsZHMsXG4gICAgICAgIC4uLndyYXBDdXN0b21GaWVsZHMoKGN1c3RvbVF1ZXJpZXMgfHwge30pIGFzIG5ldmVyKSxcbiAgICAgIH0sXG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiBwYXlsb2FkLmNvbmZpZy5ncmFwaFFMLm11dGF0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IGN1c3RvbU11dGF0aW9ucyA9IHBheWxvYWQuY29uZmlnLmdyYXBoUUwubXV0YXRpb25zKEdyYXBoUUwsIHBheWxvYWQpXG4gICAgcGF5bG9hZC5NdXRhdGlvbiA9IHtcbiAgICAgIC4uLnBheWxvYWQuTXV0YXRpb24sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgLi4ucGF5bG9hZC5NdXRhdGlvbi5maWVsZHMsXG4gICAgICAgIC4uLndyYXBDdXN0b21GaWVsZHMoKGN1c3RvbU11dGF0aW9ucyB8fCB7fSkgYXMgbmV2ZXIpLFxuICAgICAgfSxcbiAgICB9XG4gIH1cblxuICBjb25zdCBxdWVyeSA9IG5ldyBHcmFwaFFMT2JqZWN0VHlwZShwYXlsb2FkLlF1ZXJ5KVxuICBjb25zdCBtdXRhdGlvbiA9IG5ldyBHcmFwaFFMT2JqZWN0VHlwZShwYXlsb2FkLk11dGF0aW9uKVxuXG4gIGNvbnN0IHNjaGVtYSA9IHtcbiAgICBtdXRhdGlvbixcbiAgICBxdWVyeSxcbiAgfVxuXG4gIHBheWxvYWQuc2NoZW1hID0gbmV3IEdyYXBoUUxTY2hlbWEoc2NoZW1hKVxuXG4gIHBheWxvYWQudmFsaWRhdGlvblJ1bGVzID0gKHsgdmFyaWFibGVWYWx1ZXMgfSkgPT4gW1xuICAgIHF1ZXJ5Q29tcGxleGl0eSh7XG4gICAgICBlc3RpbWF0b3JzOiBbXG4gICAgICAgIGZpZWxkRXh0ZW5zaW9uc0VzdGltYXRvcigpLFxuICAgICAgICBzaW1wbGVFc3RpbWF0b3IoeyBkZWZhdWx0Q29tcGxleGl0eTogMSB9KSwgLy8gRmFsbGJhY2sgaWYgY29tcGxleGl0eSBub3Qgc2V0XG4gICAgICBdLFxuICAgICAgbWF4aW11bUNvbXBsZXhpdHk6IHBheWxvYWQuY29uZmlnLmdyYXBoUUwubWF4Q29tcGxleGl0eSxcbiAgICAgIHZhcmlhYmxlczogdmFyaWFibGVWYWx1ZXMsXG4gICAgICAvLyBvbkNvbXBsZXRlOiAoY29tcGxleGl0eSkgPT4geyBjb25zb2xlLmxvZygnUXVlcnkgQ29tcGxleGl0eTonLCBjb21wbGV4aXR5KTsgfSxcbiAgICB9KSxcbiAgXVxufVxuIl0sIm5hbWVzIjpbInJlZ2lzdGVyR3JhcGhRTFNjaGVtYSIsInBheWxvYWQiLCJ0eXBlcyIsImFycmF5VHlwZXMiLCJibG9ja0lucHV0VHlwZXMiLCJibG9ja1R5cGVzIiwiZ3JvdXBUeXBlcyIsImNvbmZpZyIsImxvY2FsaXphdGlvbiIsImxvY2FsZUlucHV0VHlwZSIsImJ1aWxkTG9jYWxlSW5wdXRUeXBlIiwiZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUiLCJidWlsZEZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlIiwiUXVlcnkiLCJuYW1lIiwiZmllbGRzIiwiTXV0YXRpb24iLCJpbml0Q29sbGVjdGlvbnMiLCJpbml0R2xvYmFscyIsIkFjY2VzcyIsInJlc29sdmUiLCJhY2Nlc3NSZXNvbHZlciIsInR5cGUiLCJidWlsZFBvbGljaWVzVHlwZSIsImdyYXBoUUwiLCJxdWVyaWVzIiwiY3VzdG9tUXVlcmllcyIsIkdyYXBoUUwiLCJ3cmFwQ3VzdG9tRmllbGRzIiwibXV0YXRpb25zIiwiY3VzdG9tTXV0YXRpb25zIiwicXVlcnkiLCJHcmFwaFFMT2JqZWN0VHlwZSIsIm11dGF0aW9uIiwic2NoZW1hIiwiR3JhcGhRTFNjaGVtYSIsInZhbGlkYXRpb25SdWxlcyIsInZhcmlhYmxlVmFsdWVzIiwicXVlcnlDb21wbGV4aXR5IiwiZXN0aW1hdG9ycyIsImZpZWxkRXh0ZW5zaW9uc0VzdGltYXRvciIsInNpbXBsZUVzdGltYXRvciIsImRlZmF1bHRDb21wbGV4aXR5IiwibWF4aW11bUNvbXBsZXhpdHkiLCJtYXhDb21wbGV4aXR5IiwidmFyaWFibGVzIl0sIm1h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
|