@scriptloom/ngx-media-query
Version:
A convenient media query service for building responsive Angular components.
42 lines • 12 kB
JavaScript
import { createReducer, on } from '@ngrx/store';
import { createEntityAdapter } from '@ngrx/entity';
import * as MediaQueriesActions from './media-queries.actions';
export const NGX_MEDIA_QUERY_FEATURE_KEY = 'mediaQueries';
export const mediaQueriesAdapter = createEntityAdapter();
export const initialMediaQueriesState = mediaQueriesAdapter.getInitialState({
// set initial required properties
loaded: false,
});
const ɵ0 = (state) => (Object.assign(Object.assign({}, state), { loaded: false, error: null })), ɵ1 = (state, { mediaQueries }) => {
return mediaQueriesAdapter.setAll(mediaQueries, Object.assign(Object.assign({}, state), { loaded: true }));
}, ɵ2 = (state, { error }) => (Object.assign(Object.assign({}, state), { error })), ɵ3 = (state, { id }) => (Object.assign(Object.assign({}, state), { selectedId: state.entities[id] !== undefined ? id : undefined })), ɵ4 = (state, { mediaQuery }) => {
return mediaQueriesAdapter.addOne(mediaQuery, state);
}, ɵ5 = (state, { mediaQuery }) => {
return mediaQueriesAdapter.setOne(mediaQuery, state);
}, ɵ6 = (state, { mediaQuery }) => {
return mediaQueriesAdapter.upsertOne(mediaQuery, state);
}, ɵ7 = (state, { mediaQueries }) => {
return mediaQueriesAdapter.addMany(mediaQueries, state);
}, ɵ8 = (state, { mediaQueries }) => {
return mediaQueriesAdapter.upsertMany(mediaQueries, state);
}, ɵ9 = (state, { update }) => {
return mediaQueriesAdapter.updateOne(update, state);
}, ɵ10 = (state, { updates }) => {
return mediaQueriesAdapter.updateMany(updates, state);
}, ɵ11 = (state, { entityMap }) => {
return mediaQueriesAdapter.map(entityMap, state);
}, ɵ12 = (state, { id }) => {
return mediaQueriesAdapter.removeOne(id, state);
}, ɵ13 = (state, { ids }) => {
return mediaQueriesAdapter.removeMany(ids, state);
}, ɵ14 = (state, { predicate }) => {
return mediaQueriesAdapter.removeMany(predicate, state);
}, ɵ15 = state => {
return mediaQueriesAdapter.removeAll(Object.assign(Object.assign({}, state), { selectedId: null }));
};
const mediaQueriesReducer = createReducer(initialMediaQueriesState, on(MediaQueriesActions.loadMediaQueries, ɵ0), on(MediaQueriesActions.loadMediaQueriesSuccess, ɵ1), on(MediaQueriesActions.loadMediaQueriesFailure, ɵ2), on(MediaQueriesActions.selectMediaQuery, ɵ3), on(MediaQueriesActions.addMediaQuery, ɵ4), on(MediaQueriesActions.setMediaQuery, ɵ5), on(MediaQueriesActions.upsertMediaQuery, ɵ6), on(MediaQueriesActions.addMediaQueries, ɵ7), on(MediaQueriesActions.upsertMediaQueries, ɵ8), on(MediaQueriesActions.updateMediaQuery, ɵ9), on(MediaQueriesActions.updateMediaQueries, ɵ10), on(MediaQueriesActions.mapMediaQueries, ɵ11), on(MediaQueriesActions.deleteMediaQuery, ɵ12), on(MediaQueriesActions.deleteMediaQueries, ɵ13), on(MediaQueriesActions.deleteMediaQueriesByPredicate, ɵ14), on(MediaQueriesActions.clearMediaQueries, ɵ15));
export function NGX_MEDIA_QUERY_REDUCER(state, action) {
return mediaQueriesReducer(state, action);
}
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6, ɵ7, ɵ8, ɵ9, ɵ10, ɵ11, ɵ12, ɵ13, ɵ14, ɵ15 };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtcXVlcmllcy5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL2phbWVzL1dlYnN0b3JtUHJvamVjdHMvbGliLW5neC9wcm9qZWN0cy9uZ3gtbWVkaWEtcXVlcnkvc3JjLyIsInNvdXJjZXMiOlsibGliL3N0b3JlL21lZGlhLXF1ZXJpZXMucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBVSxNQUFNLGFBQWEsQ0FBQztBQUN4RCxPQUFPLEVBQThCLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9FLE9BQU8sS0FBSyxtQkFBbUIsTUFBTSx5QkFBeUIsQ0FBQztBQUcvRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxjQUFjLENBQUM7QUFZMUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXNDLG1CQUFtQixFQUV0RixDQUFDO0FBRUosTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQXNCLG1CQUFtQixDQUFDLGVBQWUsQ0FBQztJQUM3RixrQ0FBa0M7SUFDbEMsTUFBTSxFQUFFLEtBQUs7Q0FDZCxDQUFDLENBQUM7V0FJd0MsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLGlDQUMvQyxLQUFLLEtBQ1IsTUFBTSxFQUFFLEtBQUssRUFDYixLQUFLLEVBQUUsSUFBSSxJQUNYLE9BQzhDLENBQUMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRTtJQUMxRSxPQUFPLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxZQUFZLGtDQUFPLEtBQUssS0FBRSxNQUFNLEVBQUUsSUFBSSxJQUFHLENBQUM7QUFDOUUsQ0FBQyxPQUMrQyxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxpQ0FDakUsS0FBSyxLQUNSLEtBQUssSUFDTCxPQUN1QyxDQUFDLEtBQUssRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUUsQ0FBQyxpQ0FDckQsS0FBSyxLQUNSLFVBQVUsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQzdELE9BQ29DLENBQUMsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRTtJQUM5RCxPQUFPLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdkQsQ0FBQyxPQUNxQyxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUU7SUFDOUQsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3ZELENBQUMsT0FDd0MsQ0FBQyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFO0lBQ2pFLE9BQU8sbUJBQW1CLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxRCxDQUFDLE9BQ3VDLENBQUMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRTtJQUNsRSxPQUFPLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMUQsQ0FBQyxPQUMwQyxDQUFDLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUU7SUFDckUsT0FBTyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzdELENBQUMsT0FDd0MsQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO0lBQzdELE9BQU8sbUJBQW1CLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN0RCxDQUFDLFFBQzBDLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtJQUNoRSxPQUFPLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxRQUN1QyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDL0QsT0FBTyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ25ELENBQUMsUUFDd0MsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO0lBQ3pELE9BQU8sbUJBQW1CLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNsRCxDQUFDLFFBQzBDLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtJQUM1RCxPQUFPLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDcEQsQ0FBQyxRQUNxRCxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDN0UsT0FBTyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFELENBQUMsUUFDeUMsS0FBSyxDQUFDLEVBQUU7SUFDaEQsT0FBTyxtQkFBbUIsQ0FBQyxTQUFTLGlDQUFNLEtBQUssS0FBRSxVQUFVLEVBQUUsSUFBSSxJQUFHLENBQUM7QUFDdkUsQ0FBQztBQXJESCxNQUFNLG1CQUFtQixHQUFHLGFBQWEsQ0FDdkMsd0JBQXdCLEVBQ3hCLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsS0FJcEMsRUFDSCxFQUFFLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLEtBRTVDLEVBQ0YsRUFBRSxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixLQUczQyxFQUNILEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsS0FHcEMsRUFDSCxFQUFFLENBQUMsbUJBQW1CLENBQUMsYUFBYSxLQUVsQyxFQUNGLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEtBRWxDLEVBQ0YsRUFBRSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixLQUVyQyxFQUNGLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEtBRXBDLEVBQ0YsRUFBRSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixLQUV2QyxFQUNGLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsS0FFckMsRUFDRixFQUFFLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLE1BRXZDLEVBQ0YsRUFBRSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsTUFFcEMsRUFDRixFQUFFLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLE1BRXJDLEVBQ0YsRUFBRSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixNQUV2QyxFQUNGLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyw2QkFBNkIsTUFFbEQsRUFDRixFQUFFLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLE1BRXRDLENBQ0gsQ0FBQztBQUVGLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxLQUFvQyxFQUFFLE1BQWM7SUFDMUYsT0FBTyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlZHVjZXIsIG9uLCBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBFbnRpdHlTdGF0ZSwgRW50aXR5QWRhcHRlciwgY3JlYXRlRW50aXR5QWRhcHRlciB9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XG5cbmltcG9ydCAqIGFzIE1lZGlhUXVlcmllc0FjdGlvbnMgZnJvbSAnLi9tZWRpYS1xdWVyaWVzLmFjdGlvbnMnO1xuaW1wb3J0IHsgTWVkaWFRdWVyaWVzRW50aXR5IH0gZnJvbSAnLi9tZWRpYS1xdWVyaWVzLm1vZGVscyc7XG5cbmV4cG9ydCBjb25zdCBOR1hfTUVESUFfUVVFUllfRkVBVFVSRV9LRVkgPSAnbWVkaWFRdWVyaWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBNZWRpYVF1ZXJpZXNTdGF0ZSBleHRlbmRzIEVudGl0eVN0YXRlPE1lZGlhUXVlcmllc0VudGl0eT4ge1xuICBzZWxlY3RlZElkPzogc3RyaW5nOyAvLyB3aGljaCBNZWRpYVF1ZXJpZXMgcmVjb3JkIGhhcyBiZWVuIHNlbGVjdGVkXG4gIGxvYWRlZDogYm9vbGVhbjsgLy8gaGFzIHRoZSBNZWRpYVF1ZXJpZXMgbGlzdCBiZWVuIGxvYWRlZFxuICBlcnJvcj86IEVycm9yOyAvLyBsYXN0IGtub3duIGVycm9yIChpZiBhbnkpXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVkaWFRdWVyaWVzUGFydGlhbFN0YXRlIHtcbiAgcmVhZG9ubHkgW05HWF9NRURJQV9RVUVSWV9GRUFUVVJFX0tFWV06IE1lZGlhUXVlcmllc1N0YXRlO1xufVxuXG5leHBvcnQgY29uc3QgbWVkaWFRdWVyaWVzQWRhcHRlcjogRW50aXR5QWRhcHRlcjxNZWRpYVF1ZXJpZXNFbnRpdHk+ID0gY3JlYXRlRW50aXR5QWRhcHRlcjxcbiAgTWVkaWFRdWVyaWVzRW50aXR5XG4+KCk7XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsTWVkaWFRdWVyaWVzU3RhdGU6IE1lZGlhUXVlcmllc1N0YXRlID0gbWVkaWFRdWVyaWVzQWRhcHRlci5nZXRJbml0aWFsU3RhdGUoe1xuICAvLyBzZXQgaW5pdGlhbCByZXF1aXJlZCBwcm9wZXJ0aWVzXG4gIGxvYWRlZDogZmFsc2UsXG59KTtcblxuY29uc3QgbWVkaWFRdWVyaWVzUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXIoXG4gIGluaXRpYWxNZWRpYVF1ZXJpZXNTdGF0ZSxcbiAgb24oTWVkaWFRdWVyaWVzQWN0aW9ucy5sb2FkTWVkaWFRdWVyaWVzLCAoc3RhdGUpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbG9hZGVkOiBmYWxzZSxcbiAgICBlcnJvcjogbnVsbCxcbiAgfSkpLFxuICBvbihNZWRpYVF1ZXJpZXNBY3Rpb25zLmxvYWRNZWRpYVF1ZXJpZXNTdWNjZXNzLCAoc3RhdGUsIHsgbWVkaWFRdWVyaWVzIH0pID0+IHtcbiAgICByZXR1cm4gbWVkaWFRdWVyaWVzQWRhcHRlci5zZXRBbGwobWVkaWFRdWVyaWVzLCB7IC4uLnN0YXRlLCBsb2FkZWQ6IHRydWUgfSk7XG4gIH0pLFxuICBvbihNZWRpYVF1ZXJpZXNBY3Rpb25zLmxvYWRNZWRpYVF1ZXJpZXNGYWlsdXJlLCAoc3RhdGUsIHsgZXJyb3IgfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBlcnJvcixcbiAgfSkpLFxuICBvbihNZWRpYVF1ZXJpZXNBY3Rpb25zLnNlbGVjdE1lZGlhUXVlcnksIChzdGF0ZSwge2lkfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBzZWxlY3RlZElkOiBzdGF0ZS5lbnRpdGllc1tpZF0gIT09IHVuZGVmaW5lZCA/IGlkIDogdW5kZWZpbmVkXG4gIH0pKSxcbiAgb24oTWVkaWFRdWVyaWVzQWN0aW9ucy5hZGRNZWRpYVF1ZXJ5LCAoc3RhdGUsIHsgbWVkaWFRdWVyeSB9KSA9PiB7XG4gICAgcmV0dXJuIG1lZGlhUXVlcmllc0FkYXB0ZXIuYWRkT25lKG1lZGlhUXVlcnksIHN0YXRlKTtcbiAgfSksXG4gIG9uKE1lZGlhUXVlcmllc0FjdGlvbnMuc2V0TWVkaWFRdWVyeSwgKHN0YXRlLCB7IG1lZGlhUXVlcnkgfSkgPT4ge1xuICAgIHJldHVybiBtZWRpYVF1ZXJpZXNBZGFwdGVyLnNldE9uZShtZWRpYVF1ZXJ5LCBzdGF0ZSk7XG4gIH0pLFxuICBvbihNZWRpYVF1ZXJpZXNBY3Rpb25zLnVwc2VydE1lZGlhUXVlcnksIChzdGF0ZSwgeyBtZWRpYVF1ZXJ5IH0pID0+IHtcbiAgICByZXR1cm4gbWVkaWFRdWVyaWVzQWRhcHRlci51cHNlcnRPbmUobWVkaWFRdWVyeSwgc3RhdGUpO1xuICB9KSxcbiAgb24oTWVkaWFRdWVyaWVzQWN0aW9ucy5hZGRNZWRpYVF1ZXJpZXMsIChzdGF0ZSwgeyBtZWRpYVF1ZXJpZXMgfSkgPT4ge1xuICAgIHJldHVybiBtZWRpYVF1ZXJpZXNBZGFwdGVyLmFkZE1hbnkobWVkaWFRdWVyaWVzLCBzdGF0ZSk7XG4gIH0pLFxuICBvbihNZWRpYVF1ZXJpZXNBY3Rpb25zLnVwc2VydE1lZGlhUXVlcmllcywgKHN0YXRlLCB7IG1lZGlhUXVlcmllcyB9KSA9PiB7XG4gICAgcmV0dXJuIG1lZGlhUXVlcmllc0FkYXB0ZXIudXBzZXJ0TWFueShtZWRpYVF1ZXJpZXMsIHN0YXRlKTtcbiAgfSksXG4gIG9uKE1lZGlhUXVlcmllc0FjdGlvbnMudXBkYXRlTWVkaWFRdWVyeSwgKHN0YXRlLCB7IHVwZGF0ZSB9KSA9PiB7XG4gICAgcmV0dXJuIG1lZGlhUXVlcmllc0FkYXB0ZXIudXBkYXRlT25lKHVwZGF0ZSwgc3RhdGUpO1xuICB9KSxcbiAgb24oTWVkaWFRdWVyaWVzQWN0aW9ucy51cGRhdGVNZWRpYVF1ZXJpZXMsIChzdGF0ZSwgeyB1cGRhdGVzIH0pID0+IHtcbiAgICByZXR1cm4gbWVkaWFRdWVyaWVzQWRhcHRlci51cGRhdGVNYW55KHVwZGF0ZXMsIHN0YXRlKTtcbiAgfSksXG4gIG9uKE1lZGlhUXVlcmllc0FjdGlvbnMubWFwTWVkaWFRdWVyaWVzLCAoc3RhdGUsIHsgZW50aXR5TWFwIH0pID0+IHtcbiAgICByZXR1cm4gbWVkaWFRdWVyaWVzQWRhcHRlci5tYXAoZW50aXR5TWFwLCBzdGF0ZSk7XG4gIH0pLFxuICBvbihNZWRpYVF1ZXJpZXNBY3Rpb25zLmRlbGV0ZU1lZGlhUXVlcnksIChzdGF0ZSwgeyBpZCB9KSA9PiB7XG4gICAgcmV0dXJuIG1lZGlhUXVlcmllc0FkYXB0ZXIucmVtb3ZlT25lKGlkLCBzdGF0ZSk7XG4gIH0pLFxuICBvbihNZWRpYVF1ZXJpZXNBY3Rpb25zLmRlbGV0ZU1lZGlhUXVlcmllcywgKHN0YXRlLCB7IGlkcyB9KSA9PiB7XG4gICAgcmV0dXJuIG1lZGlhUXVlcmllc0FkYXB0ZXIucmVtb3ZlTWFueShpZHMsIHN0YXRlKTtcbiAgfSksXG4gIG9uKE1lZGlhUXVlcmllc0FjdGlvbnMuZGVsZXRlTWVkaWFRdWVyaWVzQnlQcmVkaWNhdGUsIChzdGF0ZSwgeyBwcmVkaWNhdGUgfSkgPT4ge1xuICAgIHJldHVybiBtZWRpYVF1ZXJpZXNBZGFwdGVyLnJlbW92ZU1hbnkocHJlZGljYXRlLCBzdGF0ZSk7XG4gIH0pLFxuICBvbihNZWRpYVF1ZXJpZXNBY3Rpb25zLmNsZWFyTWVkaWFRdWVyaWVzLCBzdGF0ZSA9PiB7XG4gICAgcmV0dXJuIG1lZGlhUXVlcmllc0FkYXB0ZXIucmVtb3ZlQWxsKHsgLi4uc3RhdGUsIHNlbGVjdGVkSWQ6IG51bGwgfSk7XG4gIH0pXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gTkdYX01FRElBX1FVRVJZX1JFRFVDRVIoc3RhdGU6IE1lZGlhUXVlcmllc1N0YXRlIHwgdW5kZWZpbmVkLCBhY3Rpb246IEFjdGlvbik6IE1lZGlhUXVlcmllc1N0YXRlIHtcbiAgcmV0dXJuIG1lZGlhUXVlcmllc1JlZHVjZXIoc3RhdGUsIGFjdGlvbik7XG59XG4iXX0=