studiokit-scaffolding-js 7.0.12-next.1.3 → 7.0.12-next.2.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/lib/components/ActionList.js +164 -37
- package/lib/components/AlertDialog.js +128 -12
- package/lib/components/AlertWithIcon.js +88 -29
- package/lib/components/ConnectedModal.js +35 -12
- package/lib/components/Dropdowns/GroupsDropdown.js +63 -45
- package/lib/components/Dropdowns/ManagedNavDropdown.js +92 -67
- package/lib/components/Dropdowns/UserDropdown.js +105 -24
- package/lib/components/Dropdowns/index.js +4 -10
- package/lib/components/EntityOwnerList.js +47 -21
- package/lib/components/Error.js +101 -12
- package/lib/components/ErrorBoundary.js +127 -38
- package/lib/components/ErrorMessage.js +39 -12
- package/lib/components/Forms/DateField.js +56 -45
- package/lib/components/Forms/TimeField.js +76 -45
- package/lib/components/Forms/index.js +3 -5
- package/lib/components/Groups/CreateEditCopySaveButtons.js +109 -14
- package/lib/components/Groups/ExternalGroups/Attach.js +206 -151
- package/lib/components/Groups/ExternalGroups/Table.js +176 -48
- package/lib/components/Groups/GroupCreateOrEditCommonProps.js +2 -2
- package/lib/components/Groups/RosterSyncInfo.js +142 -23
- package/lib/components/HOC/AccessibleAppComponent.js +88 -72
- package/lib/components/HOC/ActivityRequiredComponent.js +68 -33
- package/lib/components/HOC/AsyncComponent.js +49 -41
- package/lib/components/HOC/AuthenticatedComponent.js +55 -44
- package/lib/components/HOC/CollectionComponent.js +154 -104
- package/lib/components/HOC/CollectionFirstItemComponent.js +45 -40
- package/lib/components/HOC/CollectionItemComponent.js +152 -100
- package/lib/components/HOC/ConnectedModalComponent.js +87 -69
- package/lib/components/HOC/DataDependentComponent.js +26 -27
- package/lib/components/HOC/EntityComponent.js +57 -53
- package/lib/components/HOC/FullscreenModalComponent.js +139 -108
- package/lib/components/HOC/GroupActivityRequiredComponent.js +27 -20
- package/lib/components/HOC/GuidComponent.js +20 -20
- package/lib/components/HOC/ModelContextDependencyVerifyComponent.js +32 -29
- package/lib/components/HOC/ModelErrorRedirectComponent.js +37 -39
- package/lib/components/HOC/SearchPersistorComponent.js +237 -173
- package/lib/components/HOC/UnauthenticatedComponent.js +32 -30
- package/lib/components/HOC/UserComponent.js +6 -8
- package/lib/components/Icons/IconAlphaList.js +28 -8
- package/lib/components/Icons/IconExternalUser.js +28 -8
- package/lib/components/Icons/IconImpersonation.js +28 -8
- package/lib/components/Icons/IconStopImpersonating.js +28 -8
- package/lib/components/Icons/IconTable.js +29 -9
- package/lib/components/Icons/IconTableDeleteCol.js +28 -8
- package/lib/components/Icons/IconTableDeleteRow.js +28 -8
- package/lib/components/Icons/IconTableInsertCol.js +28 -8
- package/lib/components/Icons/IconTableInsertRow.js +28 -8
- package/lib/components/Impersonation/Button.js +71 -16
- package/lib/components/Impersonation/Link.js +72 -16
- package/lib/components/Impersonation/UserDetail.js +60 -11
- package/lib/components/Loading.js +23 -8
- package/lib/components/LockDownBrowser/Check.js +188 -51
- package/lib/components/LockDownBrowser/ExitButton.js +22 -13
- package/lib/components/LockDownBrowser/Launch.js +64 -64
- package/lib/components/Lti/Confirm.js +147 -14
- package/lib/components/Lti/CreateNonLtiGroupAlertDialog.js +165 -36
- package/lib/components/Lti/Launch.js +99 -25
- package/lib/components/Lti/LaunchGroup.js +81 -16
- package/lib/components/ManageTable.js +304 -90
- package/lib/components/ManageTableNoDataComponent.js +38 -7
- package/lib/components/NewVersionAlert.js +76 -49
- package/lib/components/NotFound.js +81 -11
- package/lib/components/Notifications.js +179 -129
- package/lib/components/PaginationNextButton.js +28 -9
- package/lib/components/PaginationPreviousButton.js +28 -9
- package/lib/components/Quill/CustomToolbar.js +427 -222
- package/lib/components/Quill/Formats/Image.js +67 -67
- package/lib/components/Quill/Formats/List.js +38 -47
- package/lib/components/Quill/Formats/Video.js +23 -26
- package/lib/components/Quill/ImageDropModule.js +136 -114
- package/lib/components/Quill/ImageWarning.js +41 -12
- package/lib/components/Quill/ImageWithAltTextModal.js +420 -89
- package/lib/components/Quill/Specs/CustomImageSpec.js +32 -31
- package/lib/components/Quill/Specs/CustomVideoSpec.js +22 -23
- package/lib/components/Quill/TableModule/Blots/BaseTableBlot.js +89 -97
- package/lib/components/Quill/TableModule/Blots/TableBlot.js +47 -50
- package/lib/components/Quill/TableModule/Blots/TableBodyBlot.js +48 -51
- package/lib/components/Quill/TableModule/Blots/TableCellBlot.js +219 -224
- package/lib/components/Quill/TableModule/Blots/TableContainer.js +75 -86
- package/lib/components/Quill/TableModule/Blots/TableRowBlot.js +70 -73
- package/lib/components/Quill/TableModule/constants.js +40 -42
- package/lib/components/Quill/TableModule/index.js +357 -305
- package/lib/components/Quill/TableModule/utils.js +39 -48
- package/lib/components/Quill/accessibilityFix.js +219 -223
- package/lib/components/Quill/index.js +30 -33
- package/lib/components/RefreshIndicator/Bordered.js +44 -10
- package/lib/components/RefreshIndicator/Inline.js +43 -12
- package/lib/components/RefreshIndicator/index.js +257 -62
- package/lib/components/SearchControls.js +211 -14
- package/lib/components/SentryRoute.js +5 -7
- package/lib/components/Tables/RoleFilter.js +66 -38
- package/lib/components/Tables/TextFilter.js +58 -18
- package/lib/components/UserRoles/Add.js +193 -99
- package/lib/components/UserRoles/Context.js +3 -6
- package/lib/components/UserRoles/RoleCell.js +176 -75
- package/lib/components/UserRoles/Select.js +151 -20
- package/lib/components/UserRoles/Table.js +215 -82
- package/lib/components/UserRoles/index.js +526 -386
- package/lib/config/eslint/index.js +26 -29
- package/lib/config/eslint/lib/order.js +21 -28
- package/lib/config/eslint/lib/prettier.js +15 -19
- package/lib/config/eslint/lib/typescript.js +87 -113
- package/lib/config/eslint/react.js +18 -15
- package/lib/constants/baseActivity.js +26 -28
- package/lib/constants/baseRole.js +10 -12
- package/lib/constants/configuration.js +43 -55
- package/lib/constants/externalProviderType.js +6 -8
- package/lib/constants/fetchErrorData.js +10 -12
- package/lib/constants/index.js +13 -15
- package/lib/constants/lockDownBrowser.js +23 -25
- package/lib/constants/mockData.js +370 -300
- package/lib/constants/modelStatus.js +11 -13
- package/lib/constants/notificationType.js +8 -10
- package/lib/constants/operatingSystem.js +8 -10
- package/lib/constants/shard.js +7 -9
- package/lib/constants/table.js +18 -22
- package/lib/constants/tier.js +8 -10
- package/lib/constants/userRole.js +11 -8
- package/lib/endpointMappings.js +191 -182
- package/lib/hooks/useCollection.js +79 -65
- package/lib/hooks/useCollectionConfiguration.js +220 -80
- package/lib/hooks/useCollectionItem.js +151 -57
- package/lib/hooks/useGuid.js +16 -9
- package/lib/hooks/usePrevious.js +14 -13
- package/lib/index.js +11 -26
- package/lib/redux/actionCreator.js +44 -35
- package/lib/redux/actions/AuthAction.js +45 -32
- package/lib/redux/actions/ModalAction.js +6 -8
- package/lib/redux/actions/ModelAction.js +95 -43
- package/lib/redux/actions/NotificationAction.js +6 -8
- package/lib/redux/actions/SearchAction.js +5 -7
- package/lib/redux/actions/index.js +6 -8
- package/lib/redux/configureReducers.js +48 -46
- package/lib/redux/configureStore.js +77 -91
- package/lib/redux/helpers.js +2 -5
- package/lib/redux/reducers/authReducer.js +44 -43
- package/lib/redux/reducers/index.js +7 -14
- package/lib/redux/reducers/modalsReducer.js +43 -31
- package/lib/redux/reducers/modelsReducer.js +131 -137
- package/lib/redux/reducers/notificationsReducer.js +20 -20
- package/lib/redux/reducers/searchReducer.js +13 -13
- package/lib/redux/sagas/appInsightsSaga.js +19 -21
- package/lib/redux/sagas/authSaga.js +248 -234
- package/lib/redux/sagas/caliperSaga.js +142 -131
- package/lib/redux/sagas/clockOffsetSaga.js +29 -32
- package/lib/redux/sagas/configurationSaga.js +8 -10
- package/lib/redux/sagas/downtimeApiErrorSaga.js +16 -19
- package/lib/redux/sagas/errorSaga.js +23 -24
- package/lib/redux/sagas/googleAnalyticsSaga.js +24 -27
- package/lib/redux/sagas/identityProviderSaga.js +19 -21
- package/lib/redux/sagas/initialDataLoadSaga.js +34 -31
- package/lib/redux/sagas/lockDownBrowserErrorSaga.js +25 -22
- package/lib/redux/sagas/modelFetchSaga.js +302 -286
- package/lib/redux/sagas/noStoreSaga.js +60 -61
- package/lib/redux/sagas/postLoginDataSaga.js +37 -32
- package/lib/redux/sagas/postLoginRedirectSaga.js +22 -27
- package/lib/redux/sagas/rootSaga.js +77 -60
- package/lib/redux/sagas/sentrySaga.js +25 -28
- package/lib/redux/sagas/userIdSaga.js +13 -15
- package/lib/services/codeProviderService.js +21 -21
- package/lib/services/dateService.js +6 -8
- package/lib/services/documentService.js +10 -11
- package/lib/services/fetchService.js +103 -95
- package/lib/services/persistenceService.js +27 -30
- package/lib/services/ticketProviderService.js +25 -25
- package/lib/services/tokenPersistenceService.js +8 -10
- package/lib/services/windowService.js +14 -16
- package/lib/startup.js +110 -101
- package/lib/types/AppConfiguration.js +2 -2
- package/lib/types/Artifact.js +7 -9
- package/lib/types/BaseReduxState.js +2 -2
- package/lib/types/Client.js +2 -2
- package/lib/types/Collection.js +2 -2
- package/lib/types/Configuration.js +2 -2
- package/lib/types/DeepLinkingResponseRequest.js +2 -2
- package/lib/types/DeletableModel.js +2 -2
- package/lib/types/Event.js +2 -2
- package/lib/types/ExternalGroup.js +2 -2
- package/lib/types/ExternalProvider.js +2 -2
- package/lib/types/ExternalTerm.js +2 -2
- package/lib/types/Group.js +2 -2
- package/lib/types/IdentityProvider.js +2 -2
- package/lib/types/LtiLaunch.js +2 -2
- package/lib/types/NameOnlyEntity.js +2 -2
- package/lib/types/Notification.js +2 -2
- package/lib/types/OptionalRecord.js +2 -2
- package/lib/types/OwnerSchedule.js +2 -2
- package/lib/types/PropertyOfType.js +2 -2
- package/lib/types/Quill.js +2 -2
- package/lib/types/RoleDescription.js +2 -2
- package/lib/types/Search.js +2 -2
- package/lib/types/SimpleLocation.js +2 -2
- package/lib/types/UniTime.js +2 -2
- package/lib/types/User.js +2 -2
- package/lib/types/UserRole.js +2 -2
- package/lib/types/auth/AuthState.js +2 -2
- package/lib/types/auth/CasV1LoginRequestBody.js +2 -2
- package/lib/types/auth/ClientCredentials.js +2 -2
- package/lib/types/auth/CodeProviderService.js +2 -2
- package/lib/types/auth/LocalLoginRequestBody.js +2 -2
- package/lib/types/auth/TicketProviderService.js +2 -2
- package/lib/types/auth/TokenPersistenceService.js +2 -2
- package/lib/types/auth/index.js +8 -10
- package/lib/types/externals.d.js +2 -0
- package/lib/types/index.js +29 -31
- package/lib/types/net/EndpointConfig.js +2 -2
- package/lib/types/net/EndpointMapping.js +2 -2
- package/lib/types/net/EndpointMappings.js +2 -2
- package/lib/types/net/ErrorHandler.js +2 -2
- package/lib/types/net/FetchConfig.js +2 -2
- package/lib/types/net/FetchErrorData.js +6 -8
- package/lib/types/net/FetchResult.js +2 -2
- package/lib/types/net/HTTPMethod.js +2 -2
- package/lib/types/net/HTTPStatusCode.js +12 -14
- package/lib/types/net/Metadata.js +2 -2
- package/lib/types/net/Model.js +2 -2
- package/lib/types/net/ModelCollection.js +2 -2
- package/lib/types/net/ModelsState.js +2 -2
- package/lib/types/net/OAuthToken.js +2 -2
- package/lib/types/net/OAuthTokenOrNull.js +2 -2
- package/lib/types/net/TokenAccessFunction.js +2 -2
- package/lib/types/net/index.js +17 -19
- package/lib/utils/baseActivity.js +83 -85
- package/lib/utils/baseRole.js +32 -36
- package/lib/utils/collection.js +403 -297
- package/lib/utils/cookies.js +19 -23
- package/lib/utils/date.js +188 -205
- package/lib/utils/dom.js +130 -131
- package/lib/utils/domainIdentifier.js +4 -8
- package/lib/utils/entityUserRole.js +2 -5
- package/lib/utils/error.js +14 -19
- package/lib/utils/events.js +32 -31
- package/lib/utils/externalGroup.js +20 -25
- package/lib/utils/externalProviders.js +4 -7
- package/lib/utils/externalTerms.js +6 -6
- package/lib/utils/fetch.js +168 -176
- package/lib/utils/group.js +14 -11
- package/lib/utils/groupDates.js +38 -46
- package/lib/utils/groupRoles.js +23 -32
- package/lib/utils/lockDownBrowser.js +12 -15
- package/lib/utils/logger.js +23 -28
- package/lib/utils/lti.js +4 -7
- package/lib/utils/model.js +28 -43
- package/lib/utils/number.js +9 -13
- package/lib/utils/promise.js +23 -26
- package/lib/utils/quill.js +55 -60
- package/lib/utils/route.js +52 -60
- package/lib/utils/search.js +72 -87
- package/lib/utils/shard.js +33 -42
- package/lib/utils/sort.js +47 -50
- package/lib/utils/string.js +10 -12
- package/lib/utils/table.js +29 -33
- package/lib/utils/timezone.js +7 -12
- package/lib/utils/url.js +130 -144
- package/lib/utils/user.js +54 -64
- package/lib/utils/userAgent.js +7 -14
- package/lib/utils/userRole.js +36 -39
- package/package.json +17 -3
|
@@ -1,36 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
react_quill_1.Quill.register('modules/imageDrop', ImageDropModule_1.ImageDropModule);
|
|
24
|
-
// apply the accessibility label issues to each icons
|
|
25
|
-
(0, accessibilityFix_1.applyAccessibilityToIcons)(react_quill_1.Quill.import('ui/icons'));
|
|
1
|
+
import BlotFormatter from 'quill-blot-formatter';
|
|
2
|
+
import { Quill } from 'react-quill';
|
|
3
|
+
import { applyAccessibilityToIcons } from './accessibilityFix';
|
|
4
|
+
import { Image } from './Formats/Image';
|
|
5
|
+
import { List, ListItem } from './Formats/List';
|
|
6
|
+
import { Video } from './Formats/Video';
|
|
7
|
+
import { ImageDropModule } from './ImageDropModule';
|
|
8
|
+
import { TableModule } from './TableModule';
|
|
9
|
+
export const registerQuill = () => {
|
|
10
|
+
Quill.register('modules/blotFormatter', BlotFormatter);
|
|
11
|
+
// replace image format
|
|
12
|
+
Quill.register('formats/image', Image, true);
|
|
13
|
+
// replace list format with new extended version
|
|
14
|
+
Quill.register('formats/list/item', ListItem, true);
|
|
15
|
+
Quill.register('formats/list', List, true);
|
|
16
|
+
// replace image format
|
|
17
|
+
Quill.register('formats/video', Video, true);
|
|
18
|
+
Quill.register('modules/table', TableModule);
|
|
19
|
+
Quill.register('modules/imageDrop', ImageDropModule);
|
|
20
|
+
|
|
21
|
+
// apply the accessibility label issues to each icons
|
|
22
|
+
applyAccessibilityToIcons(Quill.import('ui/icons'));
|
|
26
23
|
};
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
export const supportedFileExtensions = ['.png', '.jpeg', '.jpg', '.gif', '.bmp'];
|
|
25
|
+
|
|
29
26
|
// Get the file dialog upload programmatically
|
|
30
|
-
const buildFileSelector = () => {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
export const buildFileSelector = () => {
|
|
28
|
+
const fileSelector = document.createElement('input');
|
|
29
|
+
fileSelector.setAttribute('type', 'file');
|
|
30
|
+
fileSelector.setAttribute('accept', supportedFileExtensions.join(', '));
|
|
31
|
+
return fileSelector;
|
|
35
32
|
};
|
|
36
|
-
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCbG90Rm9ybWF0dGVyIiwiUXVpbGwiLCJhcHBseUFjY2Vzc2liaWxpdHlUb0ljb25zIiwiSW1hZ2UiLCJMaXN0IiwiTGlzdEl0ZW0iLCJWaWRlbyIsIkltYWdlRHJvcE1vZHVsZSIsIlRhYmxlTW9kdWxlIiwicmVnaXN0ZXJRdWlsbCIsInJlZ2lzdGVyIiwiaW1wb3J0Iiwic3VwcG9ydGVkRmlsZUV4dGVuc2lvbnMiLCJidWlsZEZpbGVTZWxlY3RvciIsImZpbGVTZWxlY3RvciIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsInNldEF0dHJpYnV0ZSIsImpvaW4iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9RdWlsbC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmxvdEZvcm1hdHRlciBmcm9tICdxdWlsbC1ibG90LWZvcm1hdHRlcidcbmltcG9ydCB7IFF1aWxsIH0gZnJvbSAncmVhY3QtcXVpbGwnXG5pbXBvcnQgeyBhcHBseUFjY2Vzc2liaWxpdHlUb0ljb25zIH0gZnJvbSAnLi9hY2Nlc3NpYmlsaXR5Rml4J1xuaW1wb3J0IHsgSW1hZ2UgfSBmcm9tICcuL0Zvcm1hdHMvSW1hZ2UnXG5pbXBvcnQgeyBMaXN0LCBMaXN0SXRlbSB9IGZyb20gJy4vRm9ybWF0cy9MaXN0J1xuaW1wb3J0IHsgVmlkZW8gfSBmcm9tICcuL0Zvcm1hdHMvVmlkZW8nXG5pbXBvcnQgeyBJbWFnZURyb3BNb2R1bGUgfSBmcm9tICcuL0ltYWdlRHJvcE1vZHVsZSdcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSAnLi9UYWJsZU1vZHVsZSdcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyUXVpbGwgPSAoKSA9PiB7XG5cdFF1aWxsLnJlZ2lzdGVyKCdtb2R1bGVzL2Jsb3RGb3JtYXR0ZXInLCBCbG90Rm9ybWF0dGVyKVxuXHQvLyByZXBsYWNlIGltYWdlIGZvcm1hdFxuXHRRdWlsbC5yZWdpc3RlcignZm9ybWF0cy9pbWFnZScsIEltYWdlLCB0cnVlKVxuXHQvLyByZXBsYWNlIGxpc3QgZm9ybWF0IHdpdGggbmV3IGV4dGVuZGVkIHZlcnNpb25cblx0UXVpbGwucmVnaXN0ZXIoJ2Zvcm1hdHMvbGlzdC9pdGVtJywgTGlzdEl0ZW0sIHRydWUpXG5cdFF1aWxsLnJlZ2lzdGVyKCdmb3JtYXRzL2xpc3QnLCBMaXN0LCB0cnVlKVxuXHQvLyByZXBsYWNlIGltYWdlIGZvcm1hdFxuXHRRdWlsbC5yZWdpc3RlcignZm9ybWF0cy92aWRlbycsIFZpZGVvLCB0cnVlKVxuXHRRdWlsbC5yZWdpc3RlcignbW9kdWxlcy90YWJsZScsIFRhYmxlTW9kdWxlKVxuXHRRdWlsbC5yZWdpc3RlcignbW9kdWxlcy9pbWFnZURyb3AnLCBJbWFnZURyb3BNb2R1bGUpXG5cblx0Ly8gYXBwbHkgdGhlIGFjY2Vzc2liaWxpdHkgbGFiZWwgaXNzdWVzIHRvIGVhY2ggaWNvbnNcblx0YXBwbHlBY2Nlc3NpYmlsaXR5VG9JY29ucyhRdWlsbC5pbXBvcnQoJ3VpL2ljb25zJykpXG59XG5cbmV4cG9ydCBjb25zdCBzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9ucyA9IFsnLnBuZycsICcuanBlZycsICcuanBnJywgJy5naWYnLCAnLmJtcCddXG5cbi8vIEdldCB0aGUgZmlsZSBkaWFsb2cgdXBsb2FkIHByb2dyYW1tYXRpY2FsbHlcbmV4cG9ydCBjb25zdCBidWlsZEZpbGVTZWxlY3RvciA9ICgpID0+IHtcblx0Y29uc3QgZmlsZVNlbGVjdG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKVxuXHRmaWxlU2VsZWN0b3Iuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2ZpbGUnKVxuXHRmaWxlU2VsZWN0b3Iuc2V0QXR0cmlidXRlKCdhY2NlcHQnLCBzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9ucy5qb2luKCcsICcpKVxuXHRyZXR1cm4gZmlsZVNlbGVjdG9yXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLGFBQWEsTUFBTSxzQkFBc0I7QUFDaEQsU0FBU0MsS0FBSyxRQUFRLGFBQWE7QUFDbkMsU0FBU0MseUJBQXlCLFFBQVEsb0JBQW9CO0FBQzlELFNBQVNDLEtBQUssUUFBUSxpQkFBaUI7QUFDdkMsU0FBU0MsSUFBSSxFQUFFQyxRQUFRLFFBQVEsZ0JBQWdCO0FBQy9DLFNBQVNDLEtBQUssUUFBUSxpQkFBaUI7QUFDdkMsU0FBU0MsZUFBZSxRQUFRLG1CQUFtQjtBQUNuRCxTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQUUzQyxPQUFPLE1BQU1DLGFBQWEsR0FBR0EsQ0FBQSxLQUFNO0VBQ2xDUixLQUFLLENBQUNTLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRVYsYUFBYSxDQUFDO0VBQ3REO0VBQ0FDLEtBQUssQ0FBQ1MsUUFBUSxDQUFDLGVBQWUsRUFBRVAsS0FBSyxFQUFFLElBQUksQ0FBQztFQUM1QztFQUNBRixLQUFLLENBQUNTLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRUwsUUFBUSxFQUFFLElBQUksQ0FBQztFQUNuREosS0FBSyxDQUFDUyxRQUFRLENBQUMsY0FBYyxFQUFFTixJQUFJLEVBQUUsSUFBSSxDQUFDO0VBQzFDO0VBQ0FILEtBQUssQ0FBQ1MsUUFBUSxDQUFDLGVBQWUsRUFBRUosS0FBSyxFQUFFLElBQUksQ0FBQztFQUM1Q0wsS0FBSyxDQUFDUyxRQUFRLENBQUMsZUFBZSxFQUFFRixXQUFXLENBQUM7RUFDNUNQLEtBQUssQ0FBQ1MsUUFBUSxDQUFDLG1CQUFtQixFQUFFSCxlQUFlLENBQUM7O0VBRXBEO0VBQ0FMLHlCQUF5QixDQUFDRCxLQUFLLENBQUNVLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsT0FBTyxNQUFNQyx1QkFBdUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7O0FBRWhGO0FBQ0EsT0FBTyxNQUFNQyxpQkFBaUIsR0FBR0EsQ0FBQSxLQUFNO0VBQ3RDLE1BQU1DLFlBQVksR0FBR0MsUUFBUSxDQUFDQyxhQUFhLENBQUMsT0FBTyxDQUFDO0VBQ3BERixZQUFZLENBQUNHLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO0VBQ3pDSCxZQUFZLENBQUNHLFlBQVksQ0FBQyxRQUFRLEVBQUVMLHVCQUF1QixDQUFDTSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7RUFDdkUsT0FBT0osWUFBWTtBQUNwQixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,11 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { c as _c } from "react-compiler-runtime";
|
|
2
|
+
import { RefreshIndicator } from './index';
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
export const RefreshIndicatorBordered = props => {
|
|
5
|
+
const $ = _c(8);
|
|
6
|
+
let borderClassName;
|
|
7
|
+
let rest;
|
|
8
|
+
if ($[0] !== props) {
|
|
9
|
+
({
|
|
10
|
+
borderClassName,
|
|
11
|
+
...rest
|
|
12
|
+
} = props);
|
|
13
|
+
$[0] = props;
|
|
14
|
+
$[1] = borderClassName;
|
|
15
|
+
$[2] = rest;
|
|
16
|
+
} else {
|
|
17
|
+
borderClassName = $[1];
|
|
18
|
+
rest = $[2];
|
|
19
|
+
}
|
|
20
|
+
const t0 = `ba b--dashed bw1 b--custom-blue${borderClassName ? ` ${borderClassName}` : ""}`;
|
|
21
|
+
let t1;
|
|
22
|
+
if ($[3] !== rest) {
|
|
23
|
+
t1 = /*#__PURE__*/_jsx(RefreshIndicator, {
|
|
24
|
+
...rest
|
|
25
|
+
});
|
|
26
|
+
$[3] = rest;
|
|
27
|
+
$[4] = t1;
|
|
28
|
+
} else {
|
|
29
|
+
t1 = $[4];
|
|
30
|
+
}
|
|
31
|
+
let t2;
|
|
32
|
+
if ($[5] !== t0 || $[6] !== t1) {
|
|
33
|
+
t2 = /*#__PURE__*/_jsx("div", {
|
|
34
|
+
className: t0,
|
|
35
|
+
children: t1
|
|
36
|
+
});
|
|
37
|
+
$[5] = t0;
|
|
38
|
+
$[6] = t1;
|
|
39
|
+
$[7] = t2;
|
|
40
|
+
} else {
|
|
41
|
+
t2 = $[7];
|
|
42
|
+
}
|
|
43
|
+
return t2;
|
|
10
44
|
};
|
|
11
|
-
|
|
45
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWZyZXNoSW5kaWNhdG9yIiwianN4IiwiX2pzeCIsIlJlZnJlc2hJbmRpY2F0b3JCb3JkZXJlZCIsInByb3BzIiwiJCIsIl9jIiwiYm9yZGVyQ2xhc3NOYW1lIiwicmVzdCIsInQwIiwidDEiLCJ0MiIsImNsYXNzTmFtZSIsImNoaWxkcmVuIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvUmVmcmVzaEluZGljYXRvci9Cb3JkZXJlZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRnVuY3Rpb25Db21wb25lbnQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFJlZnJlc2hJbmRpY2F0b3IsIFJlZnJlc2hJbmRpY2F0b3JQcm9wcyB9IGZyb20gJy4vaW5kZXgnXG5cbmludGVyZmFjZSBCb3JkZXJlZFJlZnJlc2hJbmRpY2F0b3JQcm9wcyBleHRlbmRzIFJlZnJlc2hJbmRpY2F0b3JQcm9wcyB7XG5cdGJvcmRlckNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgUmVmcmVzaEluZGljYXRvckJvcmRlcmVkOiBGdW5jdGlvbkNvbXBvbmVudDxCb3JkZXJlZFJlZnJlc2hJbmRpY2F0b3JQcm9wcz4gPSBwcm9wcyA9PiB7XG5cdGNvbnN0IHsgYm9yZGVyQ2xhc3NOYW1lLCAuLi5yZXN0IH0gPSBwcm9wc1xuXHRyZXR1cm4gKFxuXHRcdDxkaXYgY2xhc3NOYW1lPXtgYmEgYi0tZGFzaGVkIGJ3MSBiLS1jdXN0b20tYmx1ZSR7Ym9yZGVyQ2xhc3NOYW1lID8gYCAke2JvcmRlckNsYXNzTmFtZX1gIDogJyd9YH0+XG5cdFx0XHQ8UmVmcmVzaEluZGljYXRvciB7Li4ucmVzdH0gLz5cblx0XHQ8L2Rpdj5cblx0KVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQ0EsU0FBU0EsZ0JBQWdCLFFBQStCLFNBQVM7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFNakUsT0FBTyxNQUFNQyx3QkFBMEUsR0FBR0MsS0FBQTtFQUFBLE1BQUFDLENBQUEsR0FBQUMsRUFBQTtFQUFBLElBQUFDLGVBQUE7RUFBQSxJQUFBQyxJQUFBO0VBQUEsSUFBQUgsQ0FBQSxRQUFBRCxLQUFBO0lBQ3pGO01BQUFHLGVBQUE7TUFBQSxHQUFBQztJQUFBLElBQXFDSixLQUFLO0lBQUFDLENBQUEsTUFBQUQsS0FBQTtJQUFBQyxDQUFBLE1BQUFFLGVBQUE7SUFBQUYsQ0FBQSxNQUFBRyxJQUFBO0VBQUE7SUFBQUQsZUFBQSxHQUFBRixDQUFBO0lBQUFHLElBQUEsR0FBQUgsQ0FBQTtFQUFBO0VBRXpCLE1BQUFJLEVBQUEscUNBQWtDRixlQUFlLEdBQWYsSUFBc0JBLGVBQWUsRUFBTyxHQUE1QyxFQUE0QyxFQUFFO0VBQUEsSUFBQUcsRUFBQTtFQUFBLElBQUFMLENBQUEsUUFBQUcsSUFBQTtJQUMvRkUsRUFBQSxnQkFBQVIsSUFBQSxDQUFDRixnQkFBZ0I7TUFBQSxHQUFLUTtJQUFJLENBQUcsQ0FBQztJQUFBSCxDQUFBLE1BQUFHLElBQUE7SUFBQUgsQ0FBQSxNQUFBSyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBTCxDQUFBO0VBQUE7RUFBQSxJQUFBTSxFQUFBO0VBQUEsSUFBQU4sQ0FBQSxRQUFBSSxFQUFBLElBQUFKLENBQUEsUUFBQUssRUFBQTtJQUQvQkMsRUFBQSxnQkFBQVQsSUFBQTtNQUFnQlUsU0FBZ0YsRUFBaEZILEVBQWdGO01BQUFJLFFBQUEsRUFDL0ZIO0lBQThCLENBQzFCLENBQUM7SUFBQUwsQ0FBQSxNQUFBSSxFQUFBO0lBQUFKLENBQUEsTUFBQUssRUFBQTtJQUFBTCxDQUFBLE1BQUFNLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUFOLENBQUE7RUFBQTtFQUFBLE9BRk5NLEVBRU07QUFBQSxDQUVQIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,13 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { c as _c } from "react-compiler-runtime";
|
|
2
|
+
import CircularProgress from '@material-ui/core/CircularProgress';
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
export const RefreshIndicatorInline = props => {
|
|
5
|
+
const $ = _c(6);
|
|
6
|
+
let rest;
|
|
7
|
+
if ($[0] !== props) {
|
|
8
|
+
const {
|
|
9
|
+
className,
|
|
10
|
+
...t0
|
|
11
|
+
} = props;
|
|
12
|
+
rest = t0;
|
|
13
|
+
$[0] = props;
|
|
14
|
+
$[1] = rest;
|
|
15
|
+
} else {
|
|
16
|
+
rest = $[1];
|
|
17
|
+
}
|
|
18
|
+
let t0;
|
|
19
|
+
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
20
|
+
t0 = {
|
|
21
|
+
position: "relative"
|
|
22
|
+
};
|
|
23
|
+
$[2] = t0;
|
|
24
|
+
} else {
|
|
25
|
+
t0 = $[2];
|
|
26
|
+
}
|
|
27
|
+
const t1 = `dib${props.className ? ` ${props.className}` : ""}`;
|
|
28
|
+
let t2;
|
|
29
|
+
if ($[3] !== rest || $[4] !== t1) {
|
|
30
|
+
t2 = /*#__PURE__*/_jsx(CircularProgress, {
|
|
31
|
+
size: 35,
|
|
32
|
+
style: t0,
|
|
33
|
+
className: t1,
|
|
34
|
+
...rest
|
|
35
|
+
});
|
|
36
|
+
$[3] = rest;
|
|
37
|
+
$[4] = t1;
|
|
38
|
+
$[5] = t2;
|
|
39
|
+
} else {
|
|
40
|
+
t2 = $[5];
|
|
41
|
+
}
|
|
42
|
+
return t2;
|
|
12
43
|
};
|
|
13
|
-
|
|
44
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDaXJjdWxhclByb2dyZXNzIiwianN4IiwiX2pzeCIsIlJlZnJlc2hJbmRpY2F0b3JJbmxpbmUiLCJwcm9wcyIsIiQiLCJfYyIsInJlc3QiLCJjbGFzc05hbWUiLCJ0MCIsIlN5bWJvbCIsImZvciIsInBvc2l0aW9uIiwidDEiLCJ0MiIsInNpemUiLCJzdHlsZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1JlZnJlc2hJbmRpY2F0b3IvSW5saW5lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ2lyY3VsYXJQcm9ncmVzcywgeyBDaXJjdWxhclByb2dyZXNzUHJvcHMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9DaXJjdWxhclByb2dyZXNzJ1xuaW1wb3J0IHsgRnVuY3Rpb25Db21wb25lbnQgfSBmcm9tICdyZWFjdCdcblxuZXhwb3J0IGNvbnN0IFJlZnJlc2hJbmRpY2F0b3JJbmxpbmU6IEZ1bmN0aW9uQ29tcG9uZW50PENpcmN1bGFyUHJvZ3Jlc3NQcm9wcz4gPSBwcm9wcyA9PiB7XG5cdGNvbnN0IHsgY2xhc3NOYW1lLCAuLi5yZXN0IH0gPSBwcm9wc1xuXHRyZXR1cm4gKFxuXHRcdDxDaXJjdWxhclByb2dyZXNzXG5cdFx0XHRzaXplPXszNX1cblx0XHRcdHN0eWxlPXt7XG5cdFx0XHRcdHBvc2l0aW9uOiAncmVsYXRpdmUnXG5cdFx0XHR9fVxuXHRcdFx0Y2xhc3NOYW1lPXtgZGliJHtwcm9wcy5jbGFzc05hbWUgPyBgICR7cHJvcHMuY2xhc3NOYW1lfWAgOiAnJ31gfVxuXHRcdFx0ey4uLnJlc3R9XG5cdFx0Lz5cblx0KVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsZ0JBQWdCLE1BQWlDLG9DQUFvQztBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQUc1RixPQUFPLE1BQU1DLHNCQUFnRSxHQUFHQyxLQUFBO0VBQUEsTUFBQUMsQ0FBQSxHQUFBQyxFQUFBO0VBQUEsSUFBQUMsSUFBQTtFQUFBLElBQUFGLENBQUEsUUFBQUQsS0FBQTtJQUMvRTtNQUFBSSxTQUFBO01BQUEsR0FBQUM7SUFBQSxJQUErQkwsS0FBSztJQUFwQ0csSUFBQSxHQUFBRSxFQUFBO0lBQW9DSixDQUFBLE1BQUFELEtBQUE7SUFBQUMsQ0FBQSxNQUFBRSxJQUFBO0VBQUE7SUFBQUEsSUFBQSxHQUFBRixDQUFBO0VBQUE7RUFBQSxJQUFBSSxFQUFBO0VBQUEsSUFBQUosQ0FBQSxRQUFBSyxNQUFBLENBQUFDLEdBQUE7SUFJM0JGLEVBQUE7TUFBQUcsUUFBQSxFQUNJO0lBQ1gsQ0FBQztJQUFBUCxDQUFBLE1BQUFJLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUFKLENBQUE7RUFBQTtFQUNVLE1BQUFRLEVBQUEsU0FBTVQsS0FBSyxDQUFBSSxTQUF1QyxHQUE1QyxJQUFzQkosS0FBSyxDQUFBSSxTQUFVLEVBQU8sR0FBNUMsRUFBNEMsRUFBRTtFQUFBLElBQUFNLEVBQUE7RUFBQSxJQUFBVCxDQUFBLFFBQUFFLElBQUEsSUFBQUYsQ0FBQSxRQUFBUSxFQUFBO0lBTGhFQyxFQUFBLGdCQUFBWixJQUFBLENBQUNGLGdCQUFnQjtNQUNWZSxJQUFFLEVBQUYsRUFBRTtNQUNEQyxLQUVOLEVBRk1QLEVBRU47TUFDVUQsU0FBb0QsRUFBcERLLEVBQW9EO01BQUEsR0FDM0ROO0lBQUksQ0FDUixDQUFDO0lBQUFGLENBQUEsTUFBQUUsSUFBQTtJQUFBRixDQUFBLE1BQUFRLEVBQUE7SUFBQVIsQ0FBQSxNQUFBUyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBVCxDQUFBO0VBQUE7RUFBQSxPQVBGUyxFQU9FO0FBQUEsQ0FFSCIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,68 +1,263 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
1
|
+
import { c as _c } from "react-compiler-runtime";
|
|
2
|
+
import CircularProgress from '@material-ui/core/CircularProgress';
|
|
3
|
+
import * as Sentry from '@sentry/react';
|
|
4
|
+
import { detect } from 'detect-browser';
|
|
5
|
+
import React, { useEffect, useState } from 'react';
|
|
6
|
+
import { getLockDownBrowserInfo } from '../../utils/lockDownBrowser';
|
|
7
|
+
import { getLogger } from '../../utils/logger';
|
|
8
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
const Shortcut = t0 => {
|
|
10
|
+
const $ = _c(2);
|
|
11
|
+
const {
|
|
12
|
+
content
|
|
13
|
+
} = t0;
|
|
14
|
+
let t1;
|
|
15
|
+
if ($[0] !== content) {
|
|
16
|
+
t1 = /*#__PURE__*/_jsx("span", {
|
|
17
|
+
className: "tag ma0 mb1",
|
|
18
|
+
children: content
|
|
19
|
+
});
|
|
20
|
+
$[0] = content;
|
|
21
|
+
$[1] = t1;
|
|
22
|
+
} else {
|
|
23
|
+
t1 = $[1];
|
|
24
|
+
}
|
|
25
|
+
return t1;
|
|
26
|
+
};
|
|
13
27
|
const getRefreshShortcut = () => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
28
|
+
const browser = detect();
|
|
29
|
+
if (browser?.os === 'Mac OS') {
|
|
30
|
+
return /*#__PURE__*/_jsx(Shortcut, {
|
|
31
|
+
content: "command+R"
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
if (browser?.os?.includes('Windows')) {
|
|
35
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
36
|
+
children: [/*#__PURE__*/_jsx(Shortcut, {
|
|
37
|
+
content: "control+R"
|
|
38
|
+
}), " or ", /*#__PURE__*/_jsx(Shortcut, {
|
|
39
|
+
content: "F5"
|
|
40
|
+
})]
|
|
41
|
+
});
|
|
42
|
+
}
|
|
22
43
|
};
|
|
23
44
|
const getHardRefreshShortcut = () => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
if (
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return (0, jsx_runtime_1.jsx)(Shortcut, { content: "command+option+R" });
|
|
31
|
-
}
|
|
32
|
-
if ((_a = browser === null || browser === void 0 ? void 0 : browser.os) === null || _a === void 0 ? void 0 : _a.includes('Windows')) {
|
|
33
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Shortcut, { content: "control+shift+R" }), " or ", (0, jsx_runtime_1.jsx)(Shortcut, { content: "control+F5" })] }));
|
|
45
|
+
const browser = detect();
|
|
46
|
+
if (browser?.os === 'Mac OS') {
|
|
47
|
+
if (browser.name === 'safari') {
|
|
48
|
+
return /*#__PURE__*/_jsx(Shortcut, {
|
|
49
|
+
content: "command+option+R"
|
|
50
|
+
});
|
|
34
51
|
}
|
|
52
|
+
return /*#__PURE__*/_jsx(Shortcut, {
|
|
53
|
+
content: "command+option+R"
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
if (browser?.os?.includes('Windows')) {
|
|
57
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
58
|
+
children: [/*#__PURE__*/_jsx(Shortcut, {
|
|
59
|
+
content: "control+shift+R"
|
|
60
|
+
}), " or ", /*#__PURE__*/_jsx(Shortcut, {
|
|
61
|
+
content: "control+F5"
|
|
62
|
+
})]
|
|
63
|
+
});
|
|
64
|
+
}
|
|
35
65
|
};
|
|
36
|
-
const RefreshIndicator =
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
export const RefreshIndicator = t0 => {
|
|
67
|
+
const $ = _c(32);
|
|
68
|
+
const {
|
|
69
|
+
hideWarning,
|
|
70
|
+
logAndWarnAfterSeconds,
|
|
71
|
+
warningClassName,
|
|
72
|
+
warningMessage,
|
|
73
|
+
label,
|
|
74
|
+
labelClassName,
|
|
75
|
+
loaderSize,
|
|
76
|
+
loaderStyle
|
|
77
|
+
} = t0;
|
|
78
|
+
const [seconds, setSeconds] = useState(0);
|
|
79
|
+
const [hasLogged, setHasLogged] = useState(false);
|
|
80
|
+
const localLogAndWarnAfterSeconds = logAndWarnAfterSeconds !== undefined ? logAndWarnAfterSeconds : 15;
|
|
81
|
+
let t1;
|
|
82
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
83
|
+
t1 = () => {
|
|
84
|
+
const interval = setInterval(() => {
|
|
85
|
+
setSeconds(_temp);
|
|
86
|
+
}, 1000);
|
|
87
|
+
return () => clearInterval(interval);
|
|
88
|
+
};
|
|
89
|
+
$[0] = t1;
|
|
90
|
+
} else {
|
|
91
|
+
t1 = $[0];
|
|
92
|
+
}
|
|
93
|
+
let t2;
|
|
94
|
+
if ($[1] !== seconds) {
|
|
95
|
+
t2 = [seconds];
|
|
96
|
+
$[1] = seconds;
|
|
97
|
+
$[2] = t2;
|
|
98
|
+
} else {
|
|
99
|
+
t2 = $[2];
|
|
100
|
+
}
|
|
101
|
+
useEffect(t1, t2);
|
|
102
|
+
const shouldLog = seconds >= localLogAndWarnAfterSeconds;
|
|
103
|
+
const shouldWarn = shouldLog && !hideWarning;
|
|
104
|
+
let t3;
|
|
105
|
+
if ($[3] !== hasLogged || $[4] !== localLogAndWarnAfterSeconds || $[5] !== shouldLog) {
|
|
106
|
+
t3 = () => {
|
|
107
|
+
if (!hasLogged && shouldLog) {
|
|
108
|
+
const error = new Error(`Loading for more than ${localLogAndWarnAfterSeconds} seconds`);
|
|
109
|
+
const logger = getLogger();
|
|
110
|
+
logger.warn(error);
|
|
111
|
+
Sentry.captureException(error);
|
|
112
|
+
setHasLogged(true);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
$[3] = hasLogged;
|
|
116
|
+
$[4] = localLogAndWarnAfterSeconds;
|
|
117
|
+
$[5] = shouldLog;
|
|
118
|
+
$[6] = t3;
|
|
119
|
+
} else {
|
|
120
|
+
t3 = $[6];
|
|
121
|
+
}
|
|
122
|
+
let t4;
|
|
123
|
+
if ($[7] !== hasLogged || $[8] !== localLogAndWarnAfterSeconds || $[9] !== seconds || $[10] !== shouldLog || $[11] !== shouldWarn) {
|
|
124
|
+
t4 = [hasLogged, localLogAndWarnAfterSeconds, seconds, shouldLog, shouldWarn];
|
|
125
|
+
$[7] = hasLogged;
|
|
126
|
+
$[8] = localLogAndWarnAfterSeconds;
|
|
127
|
+
$[9] = seconds;
|
|
128
|
+
$[10] = shouldLog;
|
|
129
|
+
$[11] = shouldWarn;
|
|
130
|
+
$[12] = t4;
|
|
131
|
+
} else {
|
|
132
|
+
t4 = $[12];
|
|
133
|
+
}
|
|
134
|
+
useEffect(t3, t4);
|
|
135
|
+
let t5;
|
|
136
|
+
if ($[13] === Symbol.for("react.memo_cache_sentinel")) {
|
|
137
|
+
t5 = getRefreshShortcut();
|
|
138
|
+
$[13] = t5;
|
|
139
|
+
} else {
|
|
140
|
+
t5 = $[13];
|
|
141
|
+
}
|
|
142
|
+
const refreshShortcut = t5;
|
|
143
|
+
let t6;
|
|
144
|
+
if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
|
|
145
|
+
t6 = getHardRefreshShortcut();
|
|
146
|
+
$[14] = t6;
|
|
147
|
+
} else {
|
|
148
|
+
t6 = $[14];
|
|
149
|
+
}
|
|
150
|
+
const hardRefreshShortcut = t6;
|
|
151
|
+
let t7;
|
|
152
|
+
if ($[15] === Symbol.for("react.memo_cache_sentinel")) {
|
|
153
|
+
t7 = getLockDownBrowserInfo();
|
|
154
|
+
$[15] = t7;
|
|
155
|
+
} else {
|
|
156
|
+
t7 = $[15];
|
|
157
|
+
}
|
|
158
|
+
const lockDownBrowserInfo = t7;
|
|
159
|
+
const t8 = loaderSize ?? 40;
|
|
160
|
+
let t9;
|
|
161
|
+
if ($[16] !== loaderStyle) {
|
|
162
|
+
t9 = loaderStyle ?? {
|
|
163
|
+
display: "inherit",
|
|
164
|
+
position: "relative",
|
|
165
|
+
margin: "2rem auto 1rem"
|
|
166
|
+
};
|
|
167
|
+
$[16] = loaderStyle;
|
|
168
|
+
$[17] = t9;
|
|
169
|
+
} else {
|
|
170
|
+
t9 = $[17];
|
|
171
|
+
}
|
|
172
|
+
let t10;
|
|
173
|
+
if ($[18] !== t8 || $[19] !== t9) {
|
|
174
|
+
t10 = /*#__PURE__*/_jsx(CircularProgress, {
|
|
175
|
+
size: t8,
|
|
176
|
+
style: t9
|
|
177
|
+
});
|
|
178
|
+
$[18] = t8;
|
|
179
|
+
$[19] = t9;
|
|
180
|
+
$[20] = t10;
|
|
181
|
+
} else {
|
|
182
|
+
t10 = $[20];
|
|
183
|
+
}
|
|
184
|
+
let t11;
|
|
185
|
+
if ($[21] !== label || $[22] !== labelClassName) {
|
|
186
|
+
t11 = label && /*#__PURE__*/_jsx("p", {
|
|
187
|
+
className: `tc i f4${labelClassName ? ` ${labelClassName}` : ""}`,
|
|
188
|
+
children: label
|
|
189
|
+
});
|
|
190
|
+
$[21] = label;
|
|
191
|
+
$[22] = labelClassName;
|
|
192
|
+
$[23] = t11;
|
|
193
|
+
} else {
|
|
194
|
+
t11 = $[23];
|
|
195
|
+
}
|
|
196
|
+
let t12;
|
|
197
|
+
if ($[24] !== shouldWarn || $[25] !== warningClassName || $[26] !== warningMessage) {
|
|
198
|
+
t12 = shouldWarn && /*#__PURE__*/_jsx("div", {
|
|
199
|
+
"aria-live": "polite",
|
|
200
|
+
children: warningMessage ?? /*#__PURE__*/_jsxs("div", {
|
|
201
|
+
className: `tl center mw7 ph5${warningClassName ? ` ${warningClassName}` : ""}`,
|
|
202
|
+
children: [/*#__PURE__*/_jsx("h2", {
|
|
203
|
+
children: "Stuck loading?"
|
|
204
|
+
}), /*#__PURE__*/_jsx("p", {
|
|
205
|
+
className: "mb3",
|
|
206
|
+
children: "If the page does not finish loading soon, please try one of the following:"
|
|
207
|
+
}), /*#__PURE__*/_jsxs("ul", {
|
|
208
|
+
className: "mb3",
|
|
209
|
+
children: [/*#__PURE__*/_jsxs("li", {
|
|
210
|
+
className: !refreshShortcut && !!hardRefreshShortcut ? "mb2" : "",
|
|
211
|
+
children: ["Refresh the page", refreshShortcut ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
212
|
+
children: [", ", refreshShortcut]
|
|
213
|
+
}) : ""]
|
|
214
|
+
}), !lockDownBrowserInfo.isClientLockDownBrowser ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
215
|
+
children: [hardRefreshShortcut && /*#__PURE__*/_jsxs("li", {
|
|
216
|
+
children: ["\"Hard Refresh\" the page, ", hardRefreshShortcut]
|
|
217
|
+
}), /*#__PURE__*/_jsx("li", {
|
|
218
|
+
className: !!refreshShortcut || !!hardRefreshShortcut ? "mb2" : "",
|
|
219
|
+
children: "Try a different browser"
|
|
220
|
+
}), /*#__PURE__*/_jsx("li", {
|
|
221
|
+
children: "Clear your browser cache and then refresh"
|
|
222
|
+
})]
|
|
223
|
+
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
224
|
+
children: [/*#__PURE__*/_jsx("li", {
|
|
225
|
+
children: "Close and re-open LockDown Browser"
|
|
226
|
+
}), /*#__PURE__*/_jsx("li", {
|
|
227
|
+
children: "Restart your computer and then re-open LockDown Browser"
|
|
228
|
+
})]
|
|
229
|
+
})]
|
|
230
|
+
}), /*#__PURE__*/_jsxs("p", {
|
|
231
|
+
className: "mb3",
|
|
232
|
+
children: ["If you are still experiencing loading issues, please contact us at", " ", /*#__PURE__*/_jsx("a", {
|
|
233
|
+
href: "mailto:tlt@purdue.edu",
|
|
234
|
+
children: "tlt@purdue.edu"
|
|
235
|
+
}), "."]
|
|
236
|
+
})]
|
|
237
|
+
})
|
|
238
|
+
});
|
|
239
|
+
$[24] = shouldWarn;
|
|
240
|
+
$[25] = warningClassName;
|
|
241
|
+
$[26] = warningMessage;
|
|
242
|
+
$[27] = t12;
|
|
243
|
+
} else {
|
|
244
|
+
t12 = $[27];
|
|
245
|
+
}
|
|
246
|
+
let t13;
|
|
247
|
+
if ($[28] !== t10 || $[29] !== t11 || $[30] !== t12) {
|
|
248
|
+
t13 = /*#__PURE__*/_jsxs("div", {
|
|
249
|
+
children: [t10, t11, t12]
|
|
250
|
+
});
|
|
251
|
+
$[28] = t10;
|
|
252
|
+
$[29] = t11;
|
|
253
|
+
$[30] = t12;
|
|
254
|
+
$[31] = t13;
|
|
255
|
+
} else {
|
|
256
|
+
t13 = $[31];
|
|
257
|
+
}
|
|
258
|
+
return t13;
|
|
67
259
|
};
|
|
68
|
-
|
|
260
|
+
function _temp(seconds_0) {
|
|
261
|
+
return seconds_0 + 1;
|
|
262
|
+
}
|
|
263
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDaXJjdWxhclByb2dyZXNzIiwiU2VudHJ5IiwiZGV0ZWN0IiwiUmVhY3QiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsImdldExvY2tEb3duQnJvd3NlckluZm8iLCJnZXRMb2dnZXIiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJTaG9ydGN1dCIsInQwIiwiJCIsIl9jIiwiY29udGVudCIsInQxIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJnZXRSZWZyZXNoU2hvcnRjdXQiLCJicm93c2VyIiwib3MiLCJpbmNsdWRlcyIsImdldEhhcmRSZWZyZXNoU2hvcnRjdXQiLCJuYW1lIiwiUmVmcmVzaEluZGljYXRvciIsImhpZGVXYXJuaW5nIiwibG9nQW5kV2FybkFmdGVyU2Vjb25kcyIsIndhcm5pbmdDbGFzc05hbWUiLCJ3YXJuaW5nTWVzc2FnZSIsImxhYmVsIiwibGFiZWxDbGFzc05hbWUiLCJsb2FkZXJTaXplIiwibG9hZGVyU3R5bGUiLCJzZWNvbmRzIiwic2V0U2Vjb25kcyIsImhhc0xvZ2dlZCIsInNldEhhc0xvZ2dlZCIsImxvY2FsTG9nQW5kV2FybkFmdGVyU2Vjb25kcyIsInVuZGVmaW5lZCIsIlN5bWJvbCIsImZvciIsImludGVydmFsIiwic2V0SW50ZXJ2YWwiLCJfdGVtcCIsImNsZWFySW50ZXJ2YWwiLCJ0MiIsInNob3VsZExvZyIsInNob3VsZFdhcm4iLCJ0MyIsImVycm9yIiwiRXJyb3IiLCJsb2dnZXIiLCJ3YXJuIiwiY2FwdHVyZUV4Y2VwdGlvbiIsInQ0IiwidDUiLCJyZWZyZXNoU2hvcnRjdXQiLCJ0NiIsImhhcmRSZWZyZXNoU2hvcnRjdXQiLCJ0NyIsImxvY2tEb3duQnJvd3NlckluZm8iLCJ0OCIsInQ5IiwiZGlzcGxheSIsInBvc2l0aW9uIiwibWFyZ2luIiwidDEwIiwic2l6ZSIsInN0eWxlIiwidDExIiwidDEyIiwiaXNDbGllbnRMb2NrRG93bkJyb3dzZXIiLCJocmVmIiwidDEzIiwic2Vjb25kc18wIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvUmVmcmVzaEluZGljYXRvci9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENpcmN1bGFyUHJvZ3Jlc3MgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQ2lyY3VsYXJQcm9ncmVzcydcbmltcG9ydCAqIGFzIFNlbnRyeSBmcm9tICdAc2VudHJ5L3JlYWN0J1xuaW1wb3J0IHsgZGV0ZWN0IH0gZnJvbSAnZGV0ZWN0LWJyb3dzZXInXG5pbXBvcnQgUmVhY3QsIHsgRnVuY3Rpb25Db21wb25lbnQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGdldExvY2tEb3duQnJvd3NlckluZm8gfSBmcm9tICcuLi8uLi91dGlscy9sb2NrRG93bkJyb3dzZXInXG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tICcuLi8uLi91dGlscy9sb2dnZXInXG5cbmNvbnN0IFNob3J0Y3V0ID0gKHsgY29udGVudCB9OiB7IGNvbnRlbnQ6IHN0cmluZyB8IFJlYWN0LkpTWC5FbGVtZW50IH0pID0+IChcblx0PHNwYW4gY2xhc3NOYW1lPVwidGFnIG1hMCBtYjFcIj57Y29udGVudH08L3NwYW4+XG4pXG5cbmNvbnN0IGdldFJlZnJlc2hTaG9ydGN1dCA9ICgpID0+IHtcblx0Y29uc3QgYnJvd3NlciA9IGRldGVjdCgpXG5cdGlmIChicm93c2VyPy5vcyA9PT0gJ01hYyBPUycpIHtcblx0XHRyZXR1cm4gPFNob3J0Y3V0IGNvbnRlbnQ9XCJjb21tYW5kK1JcIiAvPlxuXHR9XG5cdGlmIChicm93c2VyPy5vcz8uaW5jbHVkZXMoJ1dpbmRvd3MnKSkge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8PlxuXHRcdFx0XHQ8U2hvcnRjdXQgY29udGVudD1cImNvbnRyb2wrUlwiIC8+IG9yIDxTaG9ydGN1dCBjb250ZW50PVwiRjVcIiAvPlxuXHRcdFx0PC8+XG5cdFx0KVxuXHR9XG59XG5cbmNvbnN0IGdldEhhcmRSZWZyZXNoU2hvcnRjdXQgPSAoKSA9PiB7XG5cdGNvbnN0IGJyb3dzZXIgPSBkZXRlY3QoKVxuXHRpZiAoYnJvd3Nlcj8ub3MgPT09ICdNYWMgT1MnKSB7XG5cdFx0aWYgKGJyb3dzZXIubmFtZSA9PT0gJ3NhZmFyaScpIHtcblx0XHRcdHJldHVybiA8U2hvcnRjdXQgY29udGVudD1cImNvbW1hbmQrb3B0aW9uK1JcIiAvPlxuXHRcdH1cblx0XHRyZXR1cm4gPFNob3J0Y3V0IGNvbnRlbnQ9XCJjb21tYW5kK29wdGlvbitSXCIgLz5cblx0fVxuXHRpZiAoYnJvd3Nlcj8ub3M/LmluY2x1ZGVzKCdXaW5kb3dzJykpIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PD5cblx0XHRcdFx0PFNob3J0Y3V0IGNvbnRlbnQ9XCJjb250cm9sK3NoaWZ0K1JcIiAvPiBvciA8U2hvcnRjdXQgY29udGVudD1cImNvbnRyb2wrRjVcIiAvPlxuXHRcdFx0PC8+XG5cdFx0KVxuXHR9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaEluZGljYXRvclByb3BzIHtcblx0LyoqIEFuIGVycm9yIHdpbGwgc3RpbGwgYmUgbG9nZ2VkIHRvIFNlbnRyeSBhZnRlciBgd2FybkFmdGVyU2Vjb25kc2AsIGJ1dCBubyB3YXJuaW5nIHdpbGwgYmUgZGlzYWJsZWQuICovXG5cdGhpZGVXYXJuaW5nPzogYm9vbGVhblxuXHQvKiogQW1vdW50IG9mIHNlY29uZHMgdGhlIGNvbXBvbmVudCBjYW4gYmUgcmVuZGVyZWQgYmVmb3JlIHRoZSB3YXJuaW5nIGlzIHNob3duIGFuZCBhbiBlcnJvciBpcyBsb2dnZWQgdG8gU2VudHJ5LiBEZWZhdWx0IGlzIDE1IHNlY29uZHMuICovXG5cdGxvZ0FuZFdhcm5BZnRlclNlY29uZHM/OiBudW1iZXJcblx0LyoqIEFkZGl0aW9uYWwgY2xhc3NlcyB0byBhZGQgdGhlIHRoZSBkZWZhdWx0IHdhcm5pbmcgY29tcG9uZW50LiBEb2VzIG5vdCBhcHBseSBpZiBgd2FybmluZ01lc3NhZ2VgIGlzIHByb3ZpZGVkLiAqL1xuXHR3YXJuaW5nQ2xhc3NOYW1lPzogc3RyaW5nXG5cdC8qKiBBbiBhbHRlcm5hdGl2ZSBtZXNzYWdlIHRvIGRpc3BsYXkgYWZ0ZXIgYHdhcm5BZnRlclNlY29uZHNgLiAqL1xuXHR3YXJuaW5nTWVzc2FnZT86IHN0cmluZyB8IFJlYWN0LkpTWC5FbGVtZW50XG5cdC8qKiBBIGxhYmVsIHRvIGRpc3BsYXkgdW5kZXIgdGhlIENpcmN1bGFyUHJvZ3Jlc3MgaW5kaWNhdG9yLiAqL1xuXHRsYWJlbD86IHN0cmluZyB8IFJlYWN0LkpTWC5FbGVtZW50XG5cdC8qKiBBZGRpdGlvbmFsIGNsYXNzZXMgdG8gYWRkIHRvIHRoZSBgbGFiZWxgJ3MgY29udGFpbmluZyBgcGAuICovXG5cdGxhYmVsQ2xhc3NOYW1lPzogc3RyaW5nXG5cdC8qKiBPcHRpb25hbCBzaXplIGZvciB0aGUgYENpcmN1bGFyUHJvZ3Jlc3NgIGxvYWRlci4gRGVmYXVsdCBpcyA0MC4gKi9cblx0bG9hZGVyU2l6ZT86IG51bWJlclxuXHQvKiogT3B0aW9uYWwgc3R5bGUgZm9yIHRoZSBgQ2lyY3VsYXJQcm9ncmVzc2AgbG9hZGVyLiAqL1xuXHRsb2FkZXJTdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXNcbn1cblxuZXhwb3J0IGNvbnN0IFJlZnJlc2hJbmRpY2F0b3I6IEZ1bmN0aW9uQ29tcG9uZW50PFJlZnJlc2hJbmRpY2F0b3JQcm9wcz4gPSAoe1xuXHRoaWRlV2FybmluZyxcblx0bG9nQW5kV2FybkFmdGVyU2Vjb25kcyxcblx0d2FybmluZ0NsYXNzTmFtZSxcblx0d2FybmluZ01lc3NhZ2UsXG5cdGxhYmVsLFxuXHRsYWJlbENsYXNzTmFtZSxcblx0bG9hZGVyU2l6ZSxcblx0bG9hZGVyU3R5bGVcbn0pID0+IHtcblx0Y29uc3QgW3NlY29uZHMsIHNldFNlY29uZHNdID0gdXNlU3RhdGUoMClcblx0Y29uc3QgW2hhc0xvZ2dlZCwgc2V0SGFzTG9nZ2VkXSA9IHVzZVN0YXRlKGZhbHNlKVxuXHRjb25zdCBsb2NhbExvZ0FuZFdhcm5BZnRlclNlY29uZHMgPSBsb2dBbmRXYXJuQWZ0ZXJTZWNvbmRzICE9PSB1bmRlZmluZWQgPyBsb2dBbmRXYXJuQWZ0ZXJTZWNvbmRzIDogMTVcblxuXHQvLyBldmVyeSB0aW1lIHNlY29uZHMgY2hhbmdlcywgc2V0IGEgMSBzZWMgaW50ZXJ2YWwgZm9yIHRoZSBuZXh0IHNlY29uZCwgYS5rLmEgcmUtcmVuZGVyIGV2ZXJ5IHNlY29uZFxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0c2V0U2Vjb25kcyhzZWNvbmRzID0+IHNlY29uZHMgKyAxKVxuXHRcdH0sIDEwMDApXG5cdFx0cmV0dXJuICgpID0+IGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpXG5cdH0sIFtzZWNvbmRzXSlcblxuXHRjb25zdCBzaG91bGRMb2cgPSBzZWNvbmRzID49IGxvY2FsTG9nQW5kV2FybkFmdGVyU2Vjb25kc1xuXHRjb25zdCBzaG91bGRXYXJuID0gc2hvdWxkTG9nICYmICFoaWRlV2FybmluZ1xuXG5cdC8vIGxvZyBhbiBleGNlcHRpb24gb25lIHRpbWUsIGlmIGNvbXBvbmVudCBoYXMgYmVlbiByZW5kZXJlZCBhdCBsZWFzdCBgd2FybkFmdGVyU2Vjb25kc2Bcblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoIWhhc0xvZ2dlZCAmJiBzaG91bGRMb2cpIHtcblx0XHRcdGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGBMb2FkaW5nIGZvciBtb3JlIHRoYW4gJHtsb2NhbExvZ0FuZFdhcm5BZnRlclNlY29uZHN9IHNlY29uZHNgKVxuXHRcdFx0Y29uc3QgbG9nZ2VyID0gZ2V0TG9nZ2VyKClcblx0XHRcdGxvZ2dlci53YXJuKGVycm9yKVxuXHRcdFx0U2VudHJ5LmNhcHR1cmVFeGNlcHRpb24oZXJyb3IpXG5cdFx0XHRzZXRIYXNMb2dnZWQodHJ1ZSlcblx0XHR9XG5cdH0sIFtoYXNMb2dnZWQsIGxvY2FsTG9nQW5kV2FybkFmdGVyU2Vjb25kcywgc2Vjb25kcywgc2hvdWxkTG9nLCBzaG91bGRXYXJuXSlcblxuXHRjb25zdCByZWZyZXNoU2hvcnRjdXQgPSBnZXRSZWZyZXNoU2hvcnRjdXQoKVxuXHRjb25zdCBoYXJkUmVmcmVzaFNob3J0Y3V0ID0gZ2V0SGFyZFJlZnJlc2hTaG9ydGN1dCgpXG5cdGNvbnN0IGxvY2tEb3duQnJvd3NlckluZm8gPSBnZXRMb2NrRG93bkJyb3dzZXJJbmZvKClcblxuXHRyZXR1cm4gKFxuXHRcdDxkaXY+XG5cdFx0XHQ8Q2lyY3VsYXJQcm9ncmVzc1xuXHRcdFx0XHRzaXplPXtsb2FkZXJTaXplID8/IDQwfVxuXHRcdFx0XHRzdHlsZT17XG5cdFx0XHRcdFx0bG9hZGVyU3R5bGUgPz8ge1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogJ2luaGVyaXQnLFxuXHRcdFx0XHRcdFx0cG9zaXRpb246ICdyZWxhdGl2ZScsXG5cdFx0XHRcdFx0XHRtYXJnaW46ICcycmVtIGF1dG8gMXJlbSdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdC8+XG5cdFx0XHR7bGFiZWwgJiYgPHAgY2xhc3NOYW1lPXtgdGMgaSBmNCR7bGFiZWxDbGFzc05hbWUgPyBgICR7bGFiZWxDbGFzc05hbWV9YCA6ICcnfWB9PntsYWJlbH08L3A+fVxuXHRcdFx0e3Nob3VsZFdhcm4gJiYgKFxuXHRcdFx0XHQ8ZGl2IGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuXHRcdFx0XHRcdHt3YXJuaW5nTWVzc2FnZSA/PyAoXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT17YHRsIGNlbnRlciBtdzcgcGg1JHt3YXJuaW5nQ2xhc3NOYW1lID8gYCAke3dhcm5pbmdDbGFzc05hbWV9YCA6ICcnfWB9PlxuXHRcdFx0XHRcdFx0XHQ8aDI+U3R1Y2sgbG9hZGluZz88L2gyPlxuXHRcdFx0XHRcdFx0XHQ8cCBjbGFzc05hbWU9XCJtYjNcIj5cblx0XHRcdFx0XHRcdFx0XHRJZiB0aGUgcGFnZSBkb2VzIG5vdCBmaW5pc2ggbG9hZGluZyBzb29uLCBwbGVhc2UgdHJ5IG9uZSBvZiB0aGUgZm9sbG93aW5nOlxuXHRcdFx0XHRcdFx0XHQ8L3A+XG5cdFx0XHRcdFx0XHRcdDx1bCBjbGFzc05hbWU9XCJtYjNcIj5cblx0XHRcdFx0XHRcdFx0XHQ8bGkgY2xhc3NOYW1lPXshcmVmcmVzaFNob3J0Y3V0ICYmICEhaGFyZFJlZnJlc2hTaG9ydGN1dCA/ICdtYjInIDogJyd9PlxuXHRcdFx0XHRcdFx0XHRcdFx0UmVmcmVzaCB0aGUgcGFnZXtyZWZyZXNoU2hvcnRjdXQgPyA8Piwge3JlZnJlc2hTaG9ydGN1dH08Lz4gOiAnJ31cblx0XHRcdFx0XHRcdFx0XHQ8L2xpPlxuXHRcdFx0XHRcdFx0XHRcdHshbG9ja0Rvd25Ccm93c2VySW5mby5pc0NsaWVudExvY2tEb3duQnJvd3NlciA/IChcblx0XHRcdFx0XHRcdFx0XHRcdDw+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHtoYXJkUmVmcmVzaFNob3J0Y3V0ICYmIDxsaT5cIkhhcmQgUmVmcmVzaFwiIHRoZSBwYWdlLCB7aGFyZFJlZnJlc2hTaG9ydGN1dH08L2xpPn1cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGxpIGNsYXNzTmFtZT17ISFyZWZyZXNoU2hvcnRjdXQgfHwgISFoYXJkUmVmcmVzaFNob3J0Y3V0ID8gJ21iMicgOiAnJ30+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0VHJ5IGEgZGlmZmVyZW50IGJyb3dzZXJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9saT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGxpPkNsZWFyIHlvdXIgYnJvd3NlciBjYWNoZSBhbmQgdGhlbiByZWZyZXNoPC9saT5cblx0XHRcdFx0XHRcdFx0XHRcdDwvPlxuXHRcdFx0XHRcdFx0XHRcdCkgOiAoXG5cdFx0XHRcdFx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8bGk+Q2xvc2UgYW5kIHJlLW9wZW4gTG9ja0Rvd24gQnJvd3NlcjwvbGk+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxsaT5SZXN0YXJ0IHlvdXIgY29tcHV0ZXIgYW5kIHRoZW4gcmUtb3BlbiBMb2NrRG93biBCcm93c2VyPC9saT5cblx0XHRcdFx0XHRcdFx0XHRcdDwvPlxuXHRcdFx0XHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0XHRcdDwvdWw+XG5cdFx0XHRcdFx0XHRcdDxwIGNsYXNzTmFtZT1cIm1iM1wiPlxuXHRcdFx0XHRcdFx0XHRcdElmIHlvdSBhcmUgc3RpbGwgZXhwZXJpZW5jaW5nIGxvYWRpbmcgaXNzdWVzLCBwbGVhc2UgY29udGFjdCB1cyBhdHsnICd9XG5cdFx0XHRcdFx0XHRcdFx0PGEgaHJlZj1cIm1haWx0bzp0bHRAcHVyZHVlLmVkdVwiPnRsdEBwdXJkdWUuZWR1PC9hPi5cblx0XHRcdFx0XHRcdFx0PC9wPlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0KX1cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQpfVxuXHRcdDwvZGl2PlxuXHQpXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxnQkFBZ0IsTUFBTSxvQ0FBb0M7QUFDakUsT0FBTyxLQUFLQyxNQUFNLE1BQU0sZUFBZTtBQUN2QyxTQUFTQyxNQUFNLFFBQVEsZ0JBQWdCO0FBQ3ZDLE9BQU9DLEtBQUssSUFBdUJDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDckUsU0FBU0Msc0JBQXNCLFFBQVEsNkJBQTZCO0FBQ3BFLFNBQVNDLFNBQVMsUUFBUSxvQkFBb0I7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUU5QyxNQUFNQyxRQUFRLEdBQUdDLEVBQUE7RUFBQSxNQUFBQyxDQUFBLEdBQUFDLEVBQUE7RUFBQztJQUFBQztFQUFBLElBQUFILEVBQW9EO0VBQUEsSUFBQUksRUFBQTtFQUFBLElBQUFILENBQUEsUUFBQUUsT0FBQTtJQUNyRUMsRUFBQSxnQkFBQVYsSUFBQTtNQUFnQlcsU0FBYSxFQUFiLGFBQWE7TUFBQUMsUUFBQSxFQUFFSDtJQUFPLENBQU8sQ0FBQztJQUFBRixDQUFBLE1BQUFFLE9BQUE7SUFBQUYsQ0FBQSxNQUFBRyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBSCxDQUFBO0VBQUE7RUFBQSxPQUE5Q0csRUFBOEM7QUFBQSxDQUM5QztBQUVELE1BQU1HLGtCQUFrQixHQUFHQSxDQUFBLEtBQU07RUFDaEMsTUFBTUMsT0FBTyxHQUFHckIsTUFBTSxDQUFDLENBQUM7RUFDeEIsSUFBSXFCLE9BQU8sRUFBRUMsRUFBRSxLQUFLLFFBQVEsRUFBRTtJQUM3QixvQkFBT2YsSUFBQSxDQUFDSyxRQUFRO01BQUNJLE9BQU8sRUFBQztJQUFXLENBQUUsQ0FBQztFQUN4QztFQUNBLElBQUlLLE9BQU8sRUFBRUMsRUFBRSxFQUFFQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7SUFDckMsb0JBQ0NaLEtBQUEsQ0FBQUYsU0FBQTtNQUFBVSxRQUFBLGdCQUNDWixJQUFBLENBQUNLLFFBQVE7UUFBQ0ksT0FBTyxFQUFDO01BQVcsQ0FBRSxDQUFDLFFBQUksZUFBQVQsSUFBQSxDQUFDSyxRQUFRO1FBQUNJLE9BQU8sRUFBQztNQUFJLENBQUUsQ0FBQztJQUFBLENBQzVELENBQUM7RUFFTDtBQUNELENBQUM7QUFFRCxNQUFNUSxzQkFBc0IsR0FBR0EsQ0FBQSxLQUFNO0VBQ3BDLE1BQU1ILE9BQU8sR0FBR3JCLE1BQU0sQ0FBQyxDQUFDO0VBQ3hCLElBQUlxQixPQUFPLEVBQUVDLEVBQUUsS0FBSyxRQUFRLEVBQUU7SUFDN0IsSUFBSUQsT0FBTyxDQUFDSSxJQUFJLEtBQUssUUFBUSxFQUFFO01BQzlCLG9CQUFPbEIsSUFBQSxDQUFDSyxRQUFRO1FBQUNJLE9BQU8sRUFBQztNQUFrQixDQUFFLENBQUM7SUFDL0M7SUFDQSxvQkFBT1QsSUFBQSxDQUFDSyxRQUFRO01BQUNJLE9BQU8sRUFBQztJQUFrQixDQUFFLENBQUM7RUFDL0M7RUFDQSxJQUFJSyxPQUFPLEVBQUVDLEVBQUUsRUFBRUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO0lBQ3JDLG9CQUNDWixLQUFBLENBQUFGLFNBQUE7TUFBQVUsUUFBQSxnQkFDQ1osSUFBQSxDQUFDSyxRQUFRO1FBQUNJLE9BQU8sRUFBQztNQUFpQixDQUFFLENBQUMsUUFBSSxlQUFBVCxJQUFBLENBQUNLLFFBQVE7UUFBQ0ksT0FBTyxFQUFDO01BQVksQ0FBRSxDQUFDO0lBQUEsQ0FDMUUsQ0FBQztFQUVMO0FBQ0QsQ0FBQztBQXFCRCxPQUFPLE1BQU1VLGdCQUEwRCxHQUFHYixFQUFBO0VBQUEsTUFBQUMsQ0FBQSxHQUFBQyxFQUFBO0VBQUM7SUFBQVksV0FBQTtJQUFBQyxzQkFBQTtJQUFBQyxnQkFBQTtJQUFBQyxjQUFBO0lBQUFDLEtBQUE7SUFBQUMsY0FBQTtJQUFBQyxVQUFBO0lBQUFDO0VBQUEsSUFBQXJCLEVBUzFFO0VBQ0EsT0FBQXNCLE9BQUEsRUFBQUMsVUFBQSxJQUE4QmpDLFFBQVEsQ0FBQyxDQUFDLENBQUM7RUFDekMsT0FBQWtDLFNBQUEsRUFBQUMsWUFBQSxJQUFrQ25DLFFBQVEsQ0FBQyxLQUFLLENBQUM7RUFDakQsTUFBQW9DLDJCQUFBLEdBQW9DWCxzQkFBc0IsS0FBS1ksU0FBdUMsR0FBbEVaLHNCQUFrRSxHQUFsRSxFQUFrRTtFQUFBLElBQUFYLEVBQUE7RUFBQSxJQUFBSCxDQUFBLFFBQUEyQixNQUFBLENBQUFDLEdBQUE7SUFHNUZ6QixFQUFBLEdBQUFBLENBQUE7TUFDVCxNQUFBMEIsUUFBQSxHQUFpQkMsV0FBVyxDQUFDO1FBQzVCUixVQUFVLENBQUNTLEtBQXNCLENBQUM7TUFBQSxDQUNsQyxFQUFFLElBQUksQ0FBQztNQUFBLE9BQ0QsTUFBTUMsYUFBYSxDQUFDSCxRQUFRLENBQUM7SUFBQSxDQUNwQztJQUFBN0IsQ0FBQSxNQUFBRyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBSCxDQUFBO0VBQUE7RUFBQSxJQUFBaUMsRUFBQTtFQUFBLElBQUFqQyxDQUFBLFFBQUFxQixPQUFBO0lBQUVZLEVBQUEsSUFBQ1osT0FBTyxDQUFDO0lBQUFyQixDQUFBLE1BQUFxQixPQUFBO0lBQUFyQixDQUFBLE1BQUFpQyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBakMsQ0FBQTtFQUFBO0VBTFpaLFNBQVMsQ0FBQ2UsRUFLVCxFQUFFOEIsRUFBUyxDQUFDO0VBRWIsTUFBQUMsU0FBQSxHQUFrQmIsT0FBTyxJQUFJSSwyQkFBMkI7RUFDeEQsTUFBQVUsVUFBQSxHQUFtQkQsU0FBeUIsSUFBekIsQ0FBY3JCLFdBQVc7RUFBQSxJQUFBdUIsRUFBQTtFQUFBLElBQUFwQyxDQUFBLFFBQUF1QixTQUFBLElBQUF2QixDQUFBLFFBQUF5QiwyQkFBQSxJQUFBekIsQ0FBQSxRQUFBa0MsU0FBQTtJQUdsQ0UsRUFBQSxHQUFBQSxDQUFBO01BQ1QsSUFBSSxDQUFDYixTQUFzQixJQUF2QlcsU0FBdUI7UUFDMUIsTUFBQUcsS0FBQSxHQUFjLElBQUlDLEtBQUssQ0FBQyx5QkFBeUJiLDJCQUEyQixVQUFVLENBQUM7UUFDdkYsTUFBQWMsTUFBQSxHQUFlaEQsU0FBUyxDQUFDLENBQUM7UUFDMUJnRCxNQUFNLENBQUFDLElBQUssQ0FBQ0gsS0FBSyxDQUFDO1FBQ2xCcEQsTUFBTSxDQUFBd0QsZ0JBQWlCLENBQUNKLEtBQUssQ0FBQztRQUM5QmIsWUFBWSxDQUFDLElBQUksQ0FBQztNQUFBO0lBQ2xCLENBQ0Q7SUFBQXhCLENBQUEsTUFBQXVCLFNBQUE7SUFBQXZCLENBQUEsTUFBQXlCLDJCQUFBO0lBQUF6QixDQUFBLE1BQUFrQyxTQUFBO0lBQUFsQyxDQUFBLE1BQUFvQyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBcEMsQ0FBQTtFQUFBO0VBQUEsSUFBQTBDLEVBQUE7RUFBQSxJQUFBMUMsQ0FBQSxRQUFBdUIsU0FBQSxJQUFBdkIsQ0FBQSxRQUFBeUIsMkJBQUEsSUFBQXpCLENBQUEsUUFBQXFCLE9BQUEsSUFBQXJCLENBQUEsU0FBQWtDLFNBQUEsSUFBQWxDLENBQUEsU0FBQW1DLFVBQUE7SUFBRU8sRUFBQSxJQUFDbkIsU0FBUyxFQUFFRSwyQkFBMkIsRUFBRUosT0FBTyxFQUFFYSxTQUFTLEVBQUVDLFVBQVUsQ0FBQztJQUFBbkMsQ0FBQSxNQUFBdUIsU0FBQTtJQUFBdkIsQ0FBQSxNQUFBeUIsMkJBQUE7SUFBQXpCLENBQUEsTUFBQXFCLE9BQUE7SUFBQXJCLENBQUEsT0FBQWtDLFNBQUE7SUFBQWxDLENBQUEsT0FBQW1DLFVBQUE7SUFBQW5DLENBQUEsT0FBQTBDLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUExQyxDQUFBO0VBQUE7RUFSM0VaLFNBQVMsQ0FBQ2dELEVBUVQsRUFBRU0sRUFBd0UsQ0FBQztFQUFBLElBQUFDLEVBQUE7RUFBQSxJQUFBM0MsQ0FBQSxTQUFBMkIsTUFBQSxDQUFBQyxHQUFBO0lBRXBEZSxFQUFBLEdBQUFyQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQUFOLENBQUEsT0FBQTJDLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUEzQyxDQUFBO0VBQUE7RUFBNUMsTUFBQTRDLGVBQUEsR0FBd0JELEVBQW9CO0VBQUEsSUFBQUUsRUFBQTtFQUFBLElBQUE3QyxDQUFBLFNBQUEyQixNQUFBLENBQUFDLEdBQUE7SUFDaEJpQixFQUFBLEdBQUFuQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQUFWLENBQUEsT0FBQTZDLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUE3QyxDQUFBO0VBQUE7RUFBcEQsTUFBQThDLG1CQUFBLEdBQTRCRCxFQUF3QjtFQUFBLElBQUFFLEVBQUE7RUFBQSxJQUFBL0MsQ0FBQSxTQUFBMkIsTUFBQSxDQUFBQyxHQUFBO0lBQ3hCbUIsRUFBQSxHQUFBekQsc0JBQXNCLENBQUMsQ0FBQztJQUFBVSxDQUFBLE9BQUErQyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBL0MsQ0FBQTtFQUFBO0VBQXBELE1BQUFnRCxtQkFBQSxHQUE0QkQsRUFBd0I7RUFLM0MsTUFBQUUsRUFBQSxHQUFBOUIsVUFBZ0IsSUFBaEIsRUFBZ0I7RUFBQSxJQUFBK0IsRUFBQTtFQUFBLElBQUFsRCxDQUFBLFNBQUFvQixXQUFBO0lBRXJCOEIsRUFBQSxHQUFBOUIsV0FJQyxJQUpEO01BQUErQixPQUFBLEVBQ1UsU0FBUztNQUFBQyxRQUFBLEVBQ1IsVUFBVTtNQUFBQyxNQUFBLEVBQ1o7SUFDVCxDQUFDO0lBQUFyRCxDQUFBLE9BQUFvQixXQUFBO0lBQUFwQixDQUFBLE9BQUFrRCxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBbEQsQ0FBQTtFQUFBO0VBQUEsSUFBQXNELEdBQUE7RUFBQSxJQUFBdEQsQ0FBQSxTQUFBaUQsRUFBQSxJQUFBakQsQ0FBQSxTQUFBa0QsRUFBQTtJQVBISSxHQUFBLGdCQUFBN0QsSUFBQSxDQUFDVCxnQkFBZ0I7TUFDVnVFLElBQWdCLEVBQWhCTixFQUFnQjtNQUVyQk8sS0FJQyxFQUpETjtJQUlDLENBRUYsQ0FBQztJQUFBbEQsQ0FBQSxPQUFBaUQsRUFBQTtJQUFBakQsQ0FBQSxPQUFBa0QsRUFBQTtJQUFBbEQsQ0FBQSxPQUFBc0QsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQXRELENBQUE7RUFBQTtFQUFBLElBQUF5RCxHQUFBO0VBQUEsSUFBQXpELENBQUEsU0FBQWlCLEtBQUEsSUFBQWpCLENBQUEsU0FBQWtCLGNBQUE7SUFDRHVDLEdBQUEsR0FBQXhDLEtBQTBGLGlCQUExRnhCLElBQUE7TUFBdUJXLFNBQXNELEVBQXRELFVBQVVjLGNBQWMsR0FBZCxJQUFxQkEsY0FBYyxFQUFPLEdBQTFDLEVBQTBDLEVBQUU7TUFBQWIsUUFBQSxFQUFHWTtJQUFLLENBQUksQ0FBQztJQUFBakIsQ0FBQSxPQUFBaUIsS0FBQTtJQUFBakIsQ0FBQSxPQUFBa0IsY0FBQTtJQUFBbEIsQ0FBQSxPQUFBeUQsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQXpELENBQUE7RUFBQTtFQUFBLElBQUEwRCxHQUFBO0VBQUEsSUFBQTFELENBQUEsU0FBQW1DLFVBQUEsSUFBQW5DLENBQUEsU0FBQWUsZ0JBQUEsSUFBQWYsQ0FBQSxTQUFBZ0IsY0FBQTtJQUMxRjBDLEdBQUEsR0FBQXZCLFVBa0NBLGlCQWxDQTFDLElBQUE7TUFDZSxxQkFBUTtNQUFBWSxRQUFBLEVBQ3JCVyxjQThCQSxpQkE5QkFuQixLQUFBO1FBQ2dCTyxTQUFvRSxFQUFwRSxvQkFBb0JXLGdCQUFnQixHQUFoQixJQUF1QkEsZ0JBQWdCLEVBQU8sR0FBOUMsRUFBOEMsRUFBRTtRQUFBVixRQUFBLGdCQUNuRlosSUFBQTtVQUFBWSxRQUFBLEVBQUk7UUFBYyxDQUFJLENBQUMsZUFDdkJaLElBQUE7VUFBYVcsU0FBSyxFQUFMLEtBQUs7VUFBQUMsUUFBQSxFQUFDO1FBRW5CLENBQUcsQ0FBQyxlQUNKUixLQUFBO1VBQWNPLFNBQUssRUFBTCxLQUFLO1VBQUFDLFFBQUEsZ0JBQ2xCUixLQUFBO1lBQWVPLFNBQXNELEVBQXRELENBQUN3QyxlQUF3QyxJQUF6QyxDQUFxQixDQUFDRSxtQkFBZ0MsR0FBdEQsS0FBc0QsR0FBdEQsRUFBc0Q7WUFBQXpDLFFBQUEsR0FBRSxrQkFDdEQsRUFBQ3VDLGVBQWUsZ0JBQWYvQyxLQUFBLENBQUFGLFNBQUE7Y0FBQVUsUUFBQSxHQUFvQixJQUFFLEVBQUN1QyxlQUFlO1lBQUEsQ0FBUSxDQUFDLEdBQS9DLEVBQStDO1VBQUEsQ0FDN0QsQ0FBQyxFQUNKLENBQUNJLG1CQUFtQixDQUFBVyx1QkFhcEIsZ0JBYkE5RCxLQUFBLENBQUFGLFNBQUE7WUFBQVUsUUFBQSxHQUVFeUMsbUJBQThFLGlCQUE5RWpELEtBQUE7Y0FBQVEsUUFBQSxHQUEyQiw2QkFBeUIsRUFBQ3lDLG1CQUFtQjtZQUFBLENBQUssQ0FBQyxlQUMvRXJELElBQUE7Y0FBZVcsU0FBdUQsRUFBdkQsQ0FBQyxDQUFDd0MsZUFBd0MsSUFBMUMsQ0FBc0IsQ0FBQ0UsbUJBQWdDLEdBQXZELEtBQXVELEdBQXZELEVBQXVEO2NBQUF6QyxRQUFBLEVBQUU7WUFFeEUsQ0FBSSxDQUFDLGVBQ0xaLElBQUE7Y0FBQVksUUFBQSxFQUFJO1lBQXlDLENBQUksQ0FBQztVQUFBLENBT3BELENBQUMsZ0JBYkFSLEtBQUEsQ0FBQUYsU0FBQTtZQUFBVSxRQUFBLGdCQVVDWixJQUFBO2NBQUFZLFFBQUEsRUFBSTtZQUFrQyxDQUFJLENBQUMsZUFDM0NaLElBQUE7Y0FBQVksUUFBQSxFQUFJO1lBQXVELENBQUksQ0FBQztVQUFBLENBRWxFLENBQUM7UUFBQSxDQUNFLENBQUMsZUFDTFIsS0FBQTtVQUFhTyxTQUFLLEVBQUwsS0FBSztVQUFBQyxRQUFBLEdBQUMsb0VBQ2dELEVBQUMsR0FBRyxlQUN0RVosSUFBQTtZQUFRbUUsSUFBdUIsRUFBdkIsdUJBQXVCO1lBQUF2RCxRQUFBLEVBQUM7VUFBYyxDQUFHLENBQUMsS0FDbkQ7UUFBQSxDQUFHLENBQUM7TUFBQSxDQUVOO0lBQUMsQ0FFSCxDQUFDO0lBQUFMLENBQUEsT0FBQW1DLFVBQUE7SUFBQW5DLENBQUEsT0FBQWUsZ0JBQUE7SUFBQWYsQ0FBQSxPQUFBZ0IsY0FBQTtJQUFBaEIsQ0FBQSxPQUFBMEQsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQTFELENBQUE7RUFBQTtFQUFBLElBQUE2RCxHQUFBO0VBQUEsSUFBQTdELENBQUEsU0FBQXNELEdBQUEsSUFBQXRELENBQUEsU0FBQXlELEdBQUEsSUFBQXpELENBQUEsU0FBQTBELEdBQUE7SUE5Q0ZHLEdBQUEsZ0JBQUFoRSxLQUFBO01BQUFRLFFBQUEsR0FDQ2lELEdBU0UsRUFDREcsR0FBMEYsRUFDMUZDLEdBa0NBO0lBQUEsQ0FDRyxDQUFDO0lBQUExRCxDQUFBLE9BQUFzRCxHQUFBO0lBQUF0RCxDQUFBLE9BQUF5RCxHQUFBO0lBQUF6RCxDQUFBLE9BQUEwRCxHQUFBO0lBQUExRCxDQUFBLE9BQUE2RCxHQUFBO0VBQUE7SUFBQUEsR0FBQSxHQUFBN0QsQ0FBQTtFQUFBO0VBQUEsT0EvQ042RCxHQStDTTtBQUFBLENBRVA7QUExRnlFLFNBQUE5QixNQUFBK0IsU0FBQTtFQUFBLE9BaUJqRHpDLFNBQU8sR0FBRyxDQUFDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|