UNPKG

@data-client/test

Version:
102 lines (101 loc) 12.8 kB
/** * Provides an abstraction over react 17 and 18 compatible libraries */ import { ErrorBoundary } from '@data-client/react'; import { Suspense } from 'react'; import { act, waitFor, renderHook } from "./render18Hook.native.js"; import { jsx as _jsx } from "react/jsx-runtime"; export { act }; export function render18Wrapper(render, options) { var _SetUndefined; let renderProps = options?.initialProps; let error; const setError = e => { error = e; }; let resetErrorBoundary = () => {}; const ErrorFallback = ({ error, resetErrorBoundary: reset }) => { resetErrorBoundary = () => { resetErrorBoundary = () => {}; setTimeout(reset, 0); }; setError(error); return null; }; let resultUndefined = false; const setResultUndefined = () => { resultUndefined = true; }; const SetUndefined = () => { setResultUndefined(); return null; }; const WithErrorWrap = props => { resetErrorBoundary(); resultUndefined = false; return /*#__PURE__*/_jsx(Suspense, { fallback: _SetUndefined || (_SetUndefined = /*#__PURE__*/_jsx(SetUndefined, {})), children: /*#__PURE__*/_jsx(ErrorBoundary, { fallbackComponent: ErrorFallback, children: props.children }) }); }; // TODO: add error and waitforupdate const Wrapper = options?.wrapper; const wrapper = Wrapper ? function ProviderWrapped(props) { return /*#__PURE__*/_jsx(Wrapper, { ...renderProps, ...props, children: /*#__PURE__*/_jsx(WithErrorWrap, { children: props.children }) }); } : WithErrorWrap; const render18Result = renderHook(render, { ...options, wrapper }); const ret = Object.create(render18Result, { result: { value: { get current() { return render18Result.result.current === null ? undefined : render18Result.result.current; }, get error() { return error; } } }, rerender: { value: props => { renderProps = props; render18Result.rerender(props); } }, waitFor: { value: waitFor }, waitForNextUpdate: { value: async options => { const previousCurrent = ret.result.current; const isMockTimers = typeof jest !== 'undefined' && setTimeout.clock != null && typeof setTimeout.clock.Date === 'function'; if (isMockTimers) { jest.runOnlyPendingTimers(); jest.useRealTimers(); } await waitFor(() => { if (!error && ret.result.current === previousCurrent) { throw new Error('timeout in waitForNextUpdate'); } }, options); if (isMockTimers) jest.useFakeTimers(); } } }); return ret; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFcnJvckJvdW5kYXJ5IiwiU3VzcGVuc2UiLCJhY3QiLCJ3YWl0Rm9yIiwicmVuZGVySG9vayIsImpzeCIsIl9qc3giLCJyZW5kZXIxOFdyYXBwZXIiLCJyZW5kZXIiLCJvcHRpb25zIiwiX1NldFVuZGVmaW5lZCIsInJlbmRlclByb3BzIiwiaW5pdGlhbFByb3BzIiwiZXJyb3IiLCJzZXRFcnJvciIsImUiLCJyZXNldEVycm9yQm91bmRhcnkiLCJFcnJvckZhbGxiYWNrIiwicmVzZXQiLCJzZXRUaW1lb3V0IiwicmVzdWx0VW5kZWZpbmVkIiwic2V0UmVzdWx0VW5kZWZpbmVkIiwiU2V0VW5kZWZpbmVkIiwiV2l0aEVycm9yV3JhcCIsInByb3BzIiwiZmFsbGJhY2siLCJjaGlsZHJlbiIsImZhbGxiYWNrQ29tcG9uZW50IiwiV3JhcHBlciIsIndyYXBwZXIiLCJQcm92aWRlcldyYXBwZWQiLCJyZW5kZXIxOFJlc3VsdCIsInJldCIsIk9iamVjdCIsImNyZWF0ZSIsInJlc3VsdCIsInZhbHVlIiwiY3VycmVudCIsInVuZGVmaW5lZCIsInJlcmVuZGVyIiwid2FpdEZvck5leHRVcGRhdGUiLCJwcmV2aW91c0N1cnJlbnQiLCJpc01vY2tUaW1lcnMiLCJqZXN0IiwiY2xvY2siLCJEYXRlIiwicnVuT25seVBlbmRpbmdUaW1lcnMiLCJ1c2VSZWFsVGltZXJzIiwiRXJyb3IiLCJ1c2VGYWtlVGltZXJzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21ha2VSZW5kZXJEYXRhQ2xpZW50L3JlbmRlcjE4SG9va1dyYXBwZWQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHJvdmlkZXMgYW4gYWJzdHJhY3Rpb24gb3ZlciByZWFjdCAxNyBhbmQgMTggY29tcGF0aWJsZSBsaWJyYXJpZXNcbiAqL1xuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gJ0BkYXRhLWNsaWVudC9yZWFjdCc7XG5pbXBvcnQgdHlwZSB7IFF1ZXJpZXMsIHdhaXRGb3JPcHRpb25zIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgeyBTdXNwZW5zZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgYWN0LCB3YWl0Rm9yLCByZW5kZXJIb29rLCBSZW5kZXJIb29rT3B0aW9ucyB9IGZyb20gJy4vcmVuZGVyMThIb29rLmpzJztcblxuZXhwb3J0IHsgYWN0IH07XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXIxOFdyYXBwZXI8XG4gIFJlc3VsdCxcbiAgUHJvcHMsXG4gIFEgZXh0ZW5kcyBRdWVyaWVzID0gUXVlcmllcyxcbiAgQ29udGFpbmVyIGV4dGVuZHMgRWxlbWVudCB8IERvY3VtZW50RnJhZ21lbnQgPSBIVE1MRWxlbWVudCxcbiAgQmFzZUVsZW1lbnQgZXh0ZW5kcyBFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCA9IENvbnRhaW5lcixcbj4oXG4gIHJlbmRlcjogKGluaXRpYWxQcm9wczogUHJvcHMpID0+IFJlc3VsdCxcbiAgb3B0aW9ucz86IFJlbmRlckhvb2tPcHRpb25zPFByb3BzLCBRLCBDb250YWluZXIsIEJhc2VFbGVtZW50Pixcbik6IFJlbmRlckhvb2tSZXN1bHQ8UmVzdWx0LCBQcm9wcz4ge1xuICBsZXQgcmVuZGVyUHJvcHM6IGFueSA9IG9wdGlvbnM/LmluaXRpYWxQcm9wcztcbiAgbGV0IGVycm9yOiBhbnk7XG4gIGNvbnN0IHNldEVycm9yID0gKGU6IGFueSkgPT4ge1xuICAgIGVycm9yID0gZTtcbiAgfTtcbiAgbGV0IHJlc2V0RXJyb3JCb3VuZGFyeSA9ICgpID0+IHt9O1xuICBjb25zdCBFcnJvckZhbGxiYWNrID0gKHsgZXJyb3IsIHJlc2V0RXJyb3JCb3VuZGFyeTogcmVzZXQgfTogYW55KSA9PiB7XG4gICAgcmVzZXRFcnJvckJvdW5kYXJ5ID0gKCkgPT4ge1xuICAgICAgcmVzZXRFcnJvckJvdW5kYXJ5ID0gKCkgPT4ge307XG4gICAgICBzZXRUaW1lb3V0KHJlc2V0LCAwKTtcbiAgICB9O1xuICAgIHNldEVycm9yKGVycm9yKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICBsZXQgcmVzdWx0VW5kZWZpbmVkID0gZmFsc2U7XG4gIGNvbnN0IHNldFJlc3VsdFVuZGVmaW5lZCA9ICgpID0+IHtcbiAgICByZXN1bHRVbmRlZmluZWQgPSB0cnVlO1xuICB9O1xuICBjb25zdCBTZXRVbmRlZmluZWQgPSAoKSA9PiB7XG4gICAgc2V0UmVzdWx0VW5kZWZpbmVkKCk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgY29uc3QgV2l0aEVycm9yV3JhcCA9IChwcm9wczogYW55KSA9PiB7XG4gICAgcmVzZXRFcnJvckJvdW5kYXJ5KCk7XG4gICAgcmVzdWx0VW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN1c3BlbnNlIGZhbGxiYWNrPXs8U2V0VW5kZWZpbmVkIC8+fT5cbiAgICAgICAgPEVycm9yQm91bmRhcnkgZmFsbGJhY2tDb21wb25lbnQ9e0Vycm9yRmFsbGJhY2t9PlxuICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgPC9TdXNwZW5zZT5cbiAgICApO1xuICB9O1xuXG4gIC8vIFRPRE86IGFkZCBlcnJvciBhbmQgd2FpdGZvcnVwZGF0ZVxuICBjb25zdCBXcmFwcGVyID0gb3B0aW9ucz8ud3JhcHBlcjtcbiAgY29uc3Qgd3JhcHBlcjogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+ID1cbiAgICBXcmFwcGVyID9cbiAgICAgIGZ1bmN0aW9uIFByb3ZpZGVyV3JhcHBlZChwcm9wczogUmVhY3QuUHJvcHNXaXRoQ2hpbGRyZW48YW55Pikge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxXcmFwcGVyIHsuLi5yZW5kZXJQcm9wc30gey4uLnByb3BzfT5cbiAgICAgICAgICAgIDxXaXRoRXJyb3JXcmFwPntwcm9wcy5jaGlsZHJlbn08L1dpdGhFcnJvcldyYXA+XG4gICAgICAgICAgPC9XcmFwcGVyPlxuICAgICAgICApO1xuICAgICAgfVxuICAgIDogV2l0aEVycm9yV3JhcDtcblxuICBjb25zdCByZW5kZXIxOFJlc3VsdCA9IHJlbmRlckhvb2socmVuZGVyLCB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICB3cmFwcGVyLFxuICB9KTtcbiAgY29uc3QgcmV0OiBSZW5kZXJIb29rUmVzdWx0PFJlc3VsdCwgUHJvcHM+ID0gT2JqZWN0LmNyZWF0ZShyZW5kZXIxOFJlc3VsdCwge1xuICAgIHJlc3VsdDoge1xuICAgICAgdmFsdWU6IHtcbiAgICAgICAgZ2V0IGN1cnJlbnQoKTogYW55IHtcbiAgICAgICAgICByZXR1cm4gcmVuZGVyMThSZXN1bHQucmVzdWx0LmN1cnJlbnQgPT09IG51bGwgP1xuICAgICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgICAgIDogcmVuZGVyMThSZXN1bHQucmVzdWx0LmN1cnJlbnQ7XG4gICAgICAgIH0sXG4gICAgICAgIGdldCBlcnJvcigpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmVyZW5kZXI6IHtcbiAgICAgIHZhbHVlOiAocHJvcHM/OiBhbnkpID0+IHtcbiAgICAgICAgcmVuZGVyUHJvcHMgPSBwcm9wcztcbiAgICAgICAgcmVuZGVyMThSZXN1bHQucmVyZW5kZXIocHJvcHMpO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHdhaXRGb3I6IHtcbiAgICAgIHZhbHVlOiB3YWl0Rm9yLFxuICAgIH0sXG4gICAgd2FpdEZvck5leHRVcGRhdGU6IHtcbiAgICAgIHZhbHVlOiBhc3luYyAob3B0aW9ucz86IHdhaXRGb3JPcHRpb25zKSA9PiB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzQ3VycmVudCA9IHJldC5yZXN1bHQuY3VycmVudDtcbiAgICAgICAgY29uc3QgaXNNb2NrVGltZXJzID1cbiAgICAgICAgICB0eXBlb2YgamVzdCAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAoc2V0VGltZW91dCBhcyBhbnkpLmNsb2NrICE9IG51bGwgJiZcbiAgICAgICAgICB0eXBlb2YgKHNldFRpbWVvdXQgYXMgYW55KS5jbG9jay5EYXRlID09PSAnZnVuY3Rpb24nO1xuICAgICAgICBpZiAoaXNNb2NrVGltZXJzKSB7XG4gICAgICAgICAgamVzdC5ydW5Pbmx5UGVuZGluZ1RpbWVycygpO1xuICAgICAgICAgIGplc3QudXNlUmVhbFRpbWVycygpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICAgIGlmICghZXJyb3IgJiYgcmV0LnJlc3VsdC5jdXJyZW50ID09PSBwcmV2aW91c0N1cnJlbnQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndGltZW91dCBpbiB3YWl0Rm9yTmV4dFVwZGF0ZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgb3B0aW9ucyk7XG4gICAgICAgIGlmIChpc01vY2tUaW1lcnMpIGplc3QudXNlRmFrZVRpbWVycygpO1xuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICByZXR1cm4gcmV0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlckhvb2tSZXN1bHQ8UmVzdWx0LCBQcm9wcz4ge1xuICAvKipcbiAgICogVHJpZ2dlcnMgYSByZS1yZW5kZXIuIFRoZSBwcm9wcyB3aWxsIGJlIHBhc3NlZCB0byB5b3VyIHJlbmRlckhvb2sgY2FsbGJhY2suXG4gICAqL1xuICByZXJlbmRlcjogKHByb3BzPzogUHJvcHMpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgc3RhYmxlIHJlZmVyZW5jZSB0byB0aGUgbGF0ZXN0IHZhbHVlIHJldHVybmVkIGJ5IHlvdXIgcmVuZGVySG9va1xuICAgKiBjYWxsYmFja1xuICAgKi9cbiAgcmVzdWx0OiB7XG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIHJldHVybmVkIGJ5IHlvdXIgcmVuZGVySG9vayBjYWxsYmFja1xuICAgICAqL1xuICAgIGN1cnJlbnQ6IFJlc3VsdDtcbiAgICBlcnJvcj86IEVycm9yO1xuICB9O1xuICAvKipcbiAgICogVW5tb3VudHMgdGhlIHRlc3QgY29tcG9uZW50LiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2hlbiB5b3UgbmVlZCB0byB0ZXN0XG4gICAqIGFueSBjbGVhbnVwIHlvdXIgdXNlRWZmZWN0cyBoYXZlLlxuICAgKi9cbiAgdW5tb3VudDogKCkgPT4gdm9pZDtcbiAgLyogQGRlcHJlY2F0ZWQgdXNlIHdhaXRGb3IgKi9cbiAgd2FpdEZvck5leHRVcGRhdGU6IChvcHRpb25zPzogd2FpdEZvck9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG4gIHdhaXRGb3I8VD4oXG4gICAgY2FsbGJhY2s6ICgpID0+IFByb21pc2U8VD4gfCBULFxuICAgIG9wdGlvbnM/OiB3YWl0Rm9yT3B0aW9ucyxcbiAgKTogUHJvbWlzZTxUPjtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsYUFBYSxRQUFRLG9CQUFvQjtBQUVsRCxTQUFTQyxRQUFRLFFBQVEsT0FBTztBQUVoQyxTQUFTQyxHQUFHLEVBQUVDLE9BQU8sRUFBRUMsVUFBVTtBQUErQyxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFFaEYsU0FBU0osR0FBRztBQUVaLE9BQU8sU0FBU0ssZUFBZUEsQ0FPN0JDLE1BQXVDLEVBQ3ZDQyxPQUE2RCxFQUM1QjtFQUFBLElBQUFDLGFBQUE7RUFDakMsSUFBSUMsV0FBZ0IsR0FBR0YsT0FBTyxFQUFFRyxZQUFZO0VBQzVDLElBQUlDLEtBQVU7RUFDZCxNQUFNQyxRQUFRLEdBQUlDLENBQU0sSUFBSztJQUMzQkYsS0FBSyxHQUFHRSxDQUFDO0VBQ1gsQ0FBQztFQUNELElBQUlDLGtCQUFrQixHQUFHQSxDQUFBLEtBQU0sQ0FBQyxDQUFDO0VBQ2pDLE1BQU1DLGFBQWEsR0FBR0EsQ0FBQztJQUFFSixLQUFLO0lBQUVHLGtCQUFrQixFQUFFRTtFQUFXLENBQUMsS0FBSztJQUNuRUYsa0JBQWtCLEdBQUdBLENBQUEsS0FBTTtNQUN6QkEsa0JBQWtCLEdBQUdBLENBQUEsS0FBTSxDQUFDLENBQUM7TUFDN0JHLFVBQVUsQ0FBQ0QsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBQ0RKLFFBQVEsQ0FBQ0QsS0FBSyxDQUFDO0lBQ2YsT0FBTyxJQUFJO0VBQ2IsQ0FBQztFQUVELElBQUlPLGVBQWUsR0FBRyxLQUFLO0VBQzNCLE1BQU1DLGtCQUFrQixHQUFHQSxDQUFBLEtBQU07SUFDL0JELGVBQWUsR0FBRyxJQUFJO0VBQ3hCLENBQUM7RUFDRCxNQUFNRSxZQUFZLEdBQUdBLENBQUEsS0FBTTtJQUN6QkQsa0JBQWtCLENBQUMsQ0FBQztJQUNwQixPQUFPLElBQUk7RUFDYixDQUFDO0VBRUQsTUFBTUUsYUFBYSxHQUFJQyxLQUFVLElBQUs7SUFDcENSLGtCQUFrQixDQUFDLENBQUM7SUFDcEJJLGVBQWUsR0FBRyxLQUFLO0lBRXZCLG9CQUNFZCxJQUFBLENBQUNMLFFBQVE7TUFBQ3dCLFFBQVEsRUFBQWYsYUFBQSxLQUFBQSxhQUFBLGdCQUFFSixJQUFBLENBQUNnQixZQUFZLElBQUUsQ0FBQyxDQUFDO01BQUFJLFFBQUEsZUFDbkNwQixJQUFBLENBQUNOLGFBQWE7UUFBQzJCLGlCQUFpQixFQUFFVixhQUFjO1FBQUFTLFFBQUEsRUFDN0NGLEtBQUssQ0FBQ0U7TUFBUSxDQUNGO0lBQUMsQ0FDUixDQUFDO0VBRWYsQ0FBQzs7RUFFRDtFQUNBLE1BQU1FLE9BQU8sR0FBR25CLE9BQU8sRUFBRW9CLE9BQU87RUFDaEMsTUFBTUEsT0FBaUMsR0FDckNELE9BQU8sR0FDTCxTQUFTRSxlQUFlQSxDQUFDTixLQUFtQyxFQUFFO0lBQzVELG9CQUNFbEIsSUFBQSxDQUFDc0IsT0FBTztNQUFBLEdBQUtqQixXQUFXO01BQUEsR0FBTWEsS0FBSztNQUFBRSxRQUFBLGVBQ2pDcEIsSUFBQSxDQUFDaUIsYUFBYTtRQUFBRyxRQUFBLEVBQUVGLEtBQUssQ0FBQ0U7TUFBUSxDQUFnQjtJQUFDLENBQ3hDLENBQUM7RUFFZCxDQUFDLEdBQ0RILGFBQWE7RUFFakIsTUFBTVEsY0FBYyxHQUFHM0IsVUFBVSxDQUFDSSxNQUFNLEVBQUU7SUFDeEMsR0FBR0MsT0FBTztJQUNWb0I7RUFDRixDQUFDLENBQUM7RUFDRixNQUFNRyxHQUFvQyxHQUFHQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0gsY0FBYyxFQUFFO0lBQ3pFSSxNQUFNLEVBQUU7TUFDTkMsS0FBSyxFQUFFO1FBQ0wsSUFBSUMsT0FBT0EsQ0FBQSxFQUFRO1VBQ2pCLE9BQU9OLGNBQWMsQ0FBQ0ksTUFBTSxDQUFDRSxPQUFPLEtBQUssSUFBSSxHQUN6Q0MsU0FBUyxHQUNUUCxjQUFjLENBQUNJLE1BQU0sQ0FBQ0UsT0FBTztRQUNuQyxDQUFDO1FBQ0QsSUFBSXhCLEtBQUtBLENBQUEsRUFBRztVQUNWLE9BQU9BLEtBQUs7UUFDZDtNQUNGO0lBQ0YsQ0FBQztJQUNEMEIsUUFBUSxFQUFFO01BQ1JILEtBQUssRUFBR1osS0FBVyxJQUFLO1FBQ3RCYixXQUFXLEdBQUdhLEtBQUs7UUFDbkJPLGNBQWMsQ0FBQ1EsUUFBUSxDQUFDZixLQUFLLENBQUM7TUFDaEM7SUFDRixDQUFDO0lBQ0RyQixPQUFPLEVBQUU7TUFDUGlDLEtBQUssRUFBRWpDO0lBQ1QsQ0FBQztJQUNEcUMsaUJBQWlCLEVBQUU7TUFDakJKLEtBQUssRUFBRSxNQUFPM0IsT0FBd0IsSUFBSztRQUN6QyxNQUFNZ0MsZUFBZSxHQUFHVCxHQUFHLENBQUNHLE1BQU0sQ0FBQ0UsT0FBTztRQUMxQyxNQUFNSyxZQUFZLEdBQ2hCLE9BQU9DLElBQUksS0FBSyxXQUFXLElBQzFCeEIsVUFBVSxDQUFTeUIsS0FBSyxJQUFJLElBQUksSUFDakMsT0FBUXpCLFVBQVUsQ0FBU3lCLEtBQUssQ0FBQ0MsSUFBSSxLQUFLLFVBQVU7UUFDdEQsSUFBSUgsWUFBWSxFQUFFO1VBQ2hCQyxJQUFJLENBQUNHLG9CQUFvQixDQUFDLENBQUM7VUFDM0JILElBQUksQ0FBQ0ksYUFBYSxDQUFDLENBQUM7UUFDdEI7UUFDQSxNQUFNNUMsT0FBTyxDQUFDLE1BQU07VUFDbEIsSUFBSSxDQUFDVSxLQUFLLElBQUltQixHQUFHLENBQUNHLE1BQU0sQ0FBQ0UsT0FBTyxLQUFLSSxlQUFlLEVBQUU7WUFDcEQsTUFBTSxJQUFJTyxLQUFLLENBQUMsOEJBQThCLENBQUM7VUFDakQ7UUFDRixDQUFDLEVBQUV2QyxPQUFPLENBQUM7UUFDWCxJQUFJaUMsWUFBWSxFQUFFQyxJQUFJLENBQUNNLGFBQWEsQ0FBQyxDQUFDO01BQ3hDO0lBQ0Y7RUFDRixDQUFDLENBQUM7RUFFRixPQUFPakIsR0FBRztBQUNaIiwiaWdub3JlTGlzdCI6W119