{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/react/index.js","webpack:///./node_modules/ramda/es/internal/_isPlaceholder.js","webpack:///./node_modules/ramda/es/internal/_curry1.js","webpack:///./node_modules/ramda/es/internal/_curry2.js","webpack:///./node_modules/ramda/es/add.js","webpack:///./node_modules/ramda/es/internal/_concat.js","webpack:///./node_modules/ramda/es/internal/_arity.js","webpack:///./node_modules/ramda/es/internal/_curryN.js","webpack:///./node_modules/ramda/es/curryN.js","webpack:///./node_modules/ramda/es/internal/_curry3.js","webpack:///./node_modules/ramda/es/adjust.js","webpack:///./node_modules/ramda/es/internal/_isArray.js","webpack:///./node_modules/ramda/es/internal/_isTransformer.js","webpack:///./node_modules/ramda/es/internal/_dispatchable.js","webpack:///./node_modules/ramda/es/internal/_reduced.js","webpack:///./node_modules/ramda/es/internal/_xfBase.js","webpack:///./node_modules/ramda/es/max.js","webpack:///./node_modules/ramda/es/internal/_map.js","webpack:///./node_modules/ramda/es/internal/_isString.js","webpack:///./node_modules/ramda/es/internal/_isArrayLike.js","webpack:///./node_modules/ramda/es/internal/_xwrap.js","webpack:///./node_modules/ramda/es/bind.js","webpack:///./node_modules/ramda/es/internal/_reduce.js","webpack:///./node_modules/ramda/es/internal/_xmap.js","webpack:///./node_modules/ramda/es/internal/_has.js","webpack:///./node_modules/ramda/es/internal/_isArguments.js","webpack:///./node_modules/ramda/es/keys.js","webpack:///./node_modules/ramda/es/map.js","webpack:///./node_modules/ramda/es/internal/_isInteger.js","webpack:///./node_modules/ramda/es/nth.js","webpack:///./node_modules/ramda/es/prop.js","webpack:///./node_modules/ramda/es/pluck.js","webpack:///./node_modules/ramda/es/reduce.js","webpack:///./node_modules/ramda/es/always.js","webpack:///./node_modules/ramda/es/internal/_xaperture.js","webpack:///./node_modules/ramda/es/append.js","webpack:///./node_modules/ramda/es/values.js","webpack:///./node_modules/ramda/es/internal/_assoc.js","webpack:///./node_modules/ramda/es/isNil.js","webpack:///./node_modules/ramda/es/assocPath.js","webpack:///./node_modules/ramda/es/assoc.js","webpack:///./node_modules/ramda/es/internal/_isFunction.js","webpack:///./node_modules/ramda/es/internal/_makeFlat.js","webpack:///./node_modules/ramda/es/internal/_cloneRegExp.js","webpack:///./node_modules/ramda/es/type.js","webpack:///./node_modules/ramda/es/internal/_clone.js","webpack:///./node_modules/ramda/es/clone.js","webpack:///./node_modules/ramda/es/internal/_pipe.js","webpack:///./node_modules/ramda/es/internal/_checkForMethod.js","webpack:///./node_modules/ramda/es/slice.js","webpack:///./node_modules/ramda/es/tail.js","webpack:///./node_modules/ramda/es/pipe.js","webpack:///./node_modules/ramda/es/reverse.js","webpack:///./node_modules/ramda/es/compose.js","webpack:///./node_modules/ramda/es/head.js","webpack:///./node_modules/ramda/es/internal/_identity.js","webpack:///./node_modules/ramda/es/identity.js","webpack:///./node_modules/ramda/es/internal/_arrayFromIterator.js","webpack:///./node_modules/ramda/es/internal/_includesWith.js","webpack:///./node_modules/ramda/es/internal/_objectIs.js","webpack:///./node_modules/ramda/es/internal/_equals.js","webpack:///./node_modules/ramda/es/internal/_functionName.js","webpack:///./node_modules/ramda/es/equals.js","webpack:///./node_modules/ramda/es/internal/_indexOf.js","webpack:///./node_modules/ramda/es/internal/_includes.js","webpack:///./node_modules/ramda/es/internal/_quote.js","webpack:///./node_modules/ramda/es/internal/_toISOString.js","webpack:///./node_modules/ramda/es/internal/_complement.js","webpack:///./node_modules/ramda/es/internal/_filter.js","webpack:///./node_modules/ramda/es/internal/_isObject.js","webpack:///./node_modules/ramda/es/internal/_xfilter.js","webpack:///./node_modules/ramda/es/filter.js","webpack:///./node_modules/ramda/es/reject.js","webpack:///./node_modules/ramda/es/internal/_toString.js","webpack:///./node_modules/ramda/es/toString.js","webpack:///./node_modules/ramda/es/concat.js","webpack:///./node_modules/ramda/es/converge.js","webpack:///./node_modules/ramda/es/internal/_xreduceBy.js","webpack:///./node_modules/ramda/es/reduceBy.js","webpack:///./node_modules/ramda/es/internal/_Set.js","webpack:///./node_modules/ramda/es/difference.js","webpack:///./node_modules/ramda/es/remove.js","webpack:///./node_modules/ramda/es/dissocPath.js","webpack:///./node_modules/ramda/es/internal/_dissoc.js","webpack:///./node_modules/ramda/es/dissoc.js","webpack:///./node_modules/ramda/es/internal/_xdropLastWhile.js","webpack:///./node_modules/ramda/es/last.js","webpack:///./node_modules/ramda/es/empty.js","webpack:///./node_modules/ramda/es/internal/_isTypedArray.js","webpack:///./node_modules/ramda/es/internal/_xfind.js","webpack:///./node_modules/ramda/es/find.js","webpack:///./node_modules/ramda/es/internal/_xfindIndex.js","webpack:///./node_modules/ramda/es/findIndex.js","webpack:///./node_modules/ramda/es/internal/_xfindLast.js","webpack:///./node_modules/ramda/es/findLast.js","webpack:///./node_modules/ramda/es/internal/_xfindLastIndex.js","webpack:///./node_modules/ramda/es/findLastIndex.js","webpack:///./node_modules/ramda/es/flatten.js","webpack:///./node_modules/ramda/es/fromPairs.js","webpack:///./node_modules/ramda/es/groupBy.js","webpack:///./node_modules/ramda/es/inc.js","webpack:///./node_modules/ramda/es/includes.js","webpack:///./node_modules/ramda/es/init.js","webpack:///./node_modules/ramda/es/insert.js","webpack:///./node_modules/ramda/es/insertAll.js","webpack:///./node_modules/ramda/es/internal/_xuniqBy.js","webpack:///./node_modules/ramda/es/uniq.js","webpack:///./node_modules/ramda/es/uniqBy.js","webpack:///./node_modules/ramda/es/internal/_objectAssign.js","webpack:///./node_modules/ramda/es/into.js","webpack:///./node_modules/ramda/es/invoker.js","webpack:///./node_modules/ramda/es/isEmpty.js","webpack:///./node_modules/ramda/es/join.js","webpack:///./node_modules/ramda/es/juxt.js","webpack:///./node_modules/ramda/es/internal/_isNumber.js","webpack:///./node_modules/ramda/es/length.js","webpack:///./node_modules/ramda/es/lens.js","webpack:///./node_modules/ramda/es/update.js","webpack:///./node_modules/ramda/es/paths.js","webpack:///./node_modules/ramda/es/path.js","webpack:///./node_modules/ramda/es/lensPath.js","webpack:///./node_modules/ramda/es/lensProp.js","webpack:///./node_modules/ramda/es/sum.js","webpack:///./node_modules/ramda/es/mergeWithKey.js","webpack:///./node_modules/ramda/es/mergeDeepWithKey.js","webpack:///./node_modules/ramda/es/mergeDeepLeft.js","webpack:///./node_modules/ramda/es/mergeDeepRight.js","webpack:///./node_modules/ramda/es/mergeRight.js","webpack:///./node_modules/ramda/es/min.js","webpack:///./node_modules/ramda/es/of.js","webpack:///./node_modules/ramda/es/omit.js","webpack:///./node_modules/ramda/es/otherwise.js","webpack:///./node_modules/ramda/es/over.js","webpack:///./node_modules/ramda/es/partial.js","webpack:///./node_modules/ramda/es/partition.js","webpack:///./node_modules/ramda/es/pick.js","webpack:///./node_modules/ramda/es/internal/_xpromap.js","webpack:///./node_modules/ramda/es/propEq.js","webpack:///./node_modules/ramda/es/set.js","webpack:///./node_modules/ramda/es/sortBy.js","webpack:///./node_modules/ramda/es/split.js","webpack:///./node_modules/ramda/es/splitAt.js","webpack:///./node_modules/ramda/es/splitWhen.js","webpack:///./node_modules/ramda/es/test.js","webpack:///./node_modules/ramda/es/toPairs.js","webpack:///./node_modules/ramda/es/trim.js","webpack:///./node_modules/ramda/es/internal/_xuniqWith.js","webpack:///./node_modules/ramda/es/uniqWith.js","webpack:///./node_modules/ramda/es/unionWith.js","webpack:///./node_modules/ramda/es/view.js","webpack:///./node_modules/moment/moment.js","webpack:///./app/javascript/components/Gen/Button.tsx","webpack:///./node_modules/uuid/dist/esm-browser/rng.js","webpack:///./node_modules/uuid/dist/esm-browser/native.js","webpack:///./node_modules/uuid/dist/esm-browser/stringify.js","webpack:///./node_modules/uuid/dist/esm-browser/validate.js","webpack:///./node_modules/uuid/dist/esm-browser/v4.js","webpack:///./app/javascript/src/doc_helpers.ts","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/classnames/index.js","webpack:///./app/javascript/components/Gen/Switch.tsx","webpack:///./app/javascript/src/effective_dates.ts","webpack:///./app/javascript/reducers/item.js","webpack:///./app/javascript/components/Doc/Bookmark.tsx","webpack:///./app/javascript/components/Gen/More.tsx","webpack:///./app/javascript/src/url.ts","webpack:///./app/javascript/src/convert.ts","webpack:///./app/javascript/src/document_display_title.ts","webpack:///./app/javascript/components/Gen/ControlsBar.tsx","webpack:///./app/javascript/components/Gen/SearchBox.tsx","webpack:///./node_modules/mousetrap/mousetrap.js","webpack:///./app/javascript/components/Doc/InlineText.tsx","webpack:///./node_modules/react-dom/index.js","webpack:///./app/javascript/store/list.js","webpack:///./app/javascript/components/Gen/Modal.tsx","webpack:///./app/javascript/reducers/list.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack:///./app/javascript/components/Gen/SelectList.jsx","webpack:///./app/javascript/components/Gen/LoadingSpinner.tsx","webpack:///./app/javascript/components/Document/ListDefaults.jsx","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./app/javascript/src/inline_json.ts","webpack:///./app/javascript/components/Gen/BooleanCircle.tsx","webpack:///./app/javascript/components/Gen/List.jsx","webpack:///./app/javascript/components/Gen/SortButtons.tsx","webpack:///./node_modules/react-redux/es/components/Context.js","webpack:///./node_modules/react-redux/es/utils/batch.js","webpack:///./node_modules/react-redux/es/utils/Subscription.js","webpack:///./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack:///./node_modules/react-redux/es/components/Provider.js","webpack:///./node_modules/react-redux/es/components/connectAdvanced.js","webpack:///./node_modules/react-redux/es/utils/shallowEqual.js","webpack:///./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack:///./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack:///./node_modules/react-redux/es/utils/bindActionCreators.js","webpack:///./node_modules/react-redux/es/connect/mapStateToProps.js","webpack:///./node_modules/react-redux/es/connect/mergeProps.js","webpack:///./node_modules/react-redux/es/connect/selectorFactory.js","webpack:///./node_modules/react-redux/es/connect/connect.js","webpack:///./node_modules/react-redux/es/hooks/useSelector.js","webpack:///./node_modules/react-redux/es/index.js","webpack:///./node_modules/react-widgets/lib/util/PropTypes.js","webpack:///./node_modules/lodash/lodash.js","webpack:///./app/javascript/reducers/activity.js","webpack:///./node_modules/react-widgets/lib/util/localizers.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./app/javascript/src/time_display.ts","webpack:///./node_modules/react-widgets/lib/util/Props.js","webpack:///./app/javascript/components/Document/Summary.jsx","webpack:///./app/javascript/reducers/version.js","webpack:///./app/javascript/components/Gen/SelectBar.tsx","webpack:///./node_modules/react-widgets/lib/DateTimePicker.js","webpack:///./node_modules/core-js/internals/global-this.js","webpack:///./node_modules/react-widgets/lib/util/dates.js","webpack:///./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack:///./app/javascript/components/Gen/SidebarList.jsx","webpack:///./app/javascript/components/Gen/DirectionalButtons.tsx","webpack:///./app/javascript/components/Doc/Extra.tsx","webpack:///./node_modules/pluralize/pluralize.js","webpack:///./node_modules/react-widgets/lib/util/_.js","webpack:///./node_modules/dom-helpers/util/inDOM.js","webpack:///./app/javascript/components/Gen/ToggleBar.tsx","webpack:///./app/javascript/components/DocumentSetDocumentRelation/ScheduleStatus.jsx","webpack:///./app/javascript/reducers/document_set_document_state.js","webpack:///./app/javascript/src/selection.ts","webpack:///./app/javascript/src/display_mode.ts","webpack:///./node_modules/axios/lib/core/AxiosError.js","webpack:///./app/javascript/components/Activity/ReviewSummary.jsx","webpack:///./app/javascript/components/Gen/ToggleButton.tsx","webpack:///./app/javascript/components/Gen/CycleButton.tsx","webpack:///./app/javascript/components/DocumentSetDocumentRelation/AddTo/Button.tsx","webpack:///./app/javascript/components/Gen/PanelHeader.tsx","webpack:///./app/javascript/components/Doc/Section.tsx","webpack:///./app/javascript/components/Doc/Image.tsx","webpack:///./app/javascript/components/Doc/ListItem.tsx","webpack:///./app/javascript/components/Doc/VideoJWPlayer.tsx","webpack:///./app/javascript/components/Gen/PostButton.tsx","webpack:///./app/javascript/components/Gen/TableDisplay.tsx","webpack:///./app/javascript/src/sort_utilities.ts","webpack:///./app/javascript/src/string_utilities.ts","webpack:///./app/javascript/components/Gen/GroupableTable.jsx","webpack:///./app/javascript/reducers/activity_user_state.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/is-callable.js","webpack:///./node_modules/core-js/internals/function-uncurry-this.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/invariant/browser.js","webpack:///./app/javascript/components/Gen/MediaUploadButton.tsx","webpack:///./app/javascript/components/Gen/ListDisplay.tsx","webpack:///./app/javascript/reducers/document.js","webpack:///./app/javascript/src/range.ts","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/react-input-range/lib/js/utils/index.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/axios/lib/cancel/CanceledError.js","webpack:///./node_modules/dom-helpers/query/height.js","webpack:///./node_modules/dom-helpers/query/isWindow.js","webpack:///./node_modules/react-widgets/lib/Button.js","webpack:///./node_modules/spy-on-component/index.js","webpack:///./node_modules/react-widgets/lib/CalendarView.js","webpack:///./node_modules/react-widgets/lib/util/widgetHelpers.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./app/javascript/components/Activity/ReviewModal.jsx","webpack:///./app/javascript/components/Gen/CheckboxFilter.tsx","webpack:///./app/javascript/components/Gen/CheckboxesFilter.tsx","webpack:///./app/javascript/components/Gen/FilterGroup.tsx","webpack:///./app/javascript/components/Gen/YMWDFilter.tsx","webpack:///./app/javascript/components/Catalog/Summary.jsx","webpack:///./app/javascript/components/Catalog/ReviewModal.jsx","webpack:///./app/javascript/components/DocumentSetDocumentRelation/AddTo/List.jsx","webpack:///./app/javascript/components/DocumentSetDocumentRelation/AddTo/Summary.jsx","webpack:///./app/javascript/components/Doc/Activity.tsx","webpack:///./app/javascript/components/Doc/Audio.tsx","webpack:///./app/javascript/components/Doc/Button.tsx","webpack:///./app/javascript/components/Doc/Checkbox.tsx","webpack:///./app/javascript/components/Doc/CompletionNotice.tsx","webpack:///./app/javascript/components/Doc/ImageGallery.tsx","webpack:///./app/javascript/components/Doc/Matcher.tsx","webpack:///./app/javascript/components/Doc/MultipleChoice.tsx","webpack:///./app/javascript/components/Doc/NumberedList.tsx","webpack:///./app/javascript/components/Doc/Paragraph.tsx","webpack:///./app/javascript/components/Doc/RatingBar.tsx","webpack:///./app/javascript/components/Doc/RegularList.tsx","webpack:///./app/javascript/components/Doc/SliderBar.tsx","webpack:///./app/javascript/components/Doc/TextInput.tsx","webpack:///./app/javascript/components/Doc/Video.tsx","webpack:///./app/javascript/components/Doc/SectionScheduleStatus.tsx","webpack:///./app/javascript/components/Doc/QuestionReportButton.tsx","webpack:///./app/javascript/components/Doc/MediaModal.tsx","webpack:///./app/javascript/components/Gen/MediaDuplicationTool.tsx","webpack:///./app/javascript/components/Doc/EditMetadataModal.tsx","webpack:///./app/javascript/components/Doc/TopBar.tsx","webpack:///./app/javascript/components/Document/CaptureListDefaults.jsx","webpack:///./app/javascript/components/Document/CaptureSummary.jsx","webpack:///./app/javascript/components/Gen/Panel.tsx","webpack:///./app/javascript/components/Gen/PanelSlice.tsx","webpack:///./app/javascript/components/DocumentSet/Summary.jsx","webpack:///./app/javascript/components/DocumentSetDocumentRelation/Summary.jsx","webpack:///./app/javascript/components/DocumentUser/Summary.jsx","webpack:///./app/javascript/components/Gen/Table.jsx","webpack:///./app/javascript/components/Group/Summary.jsx","webpack:///./app/javascript/components/Group/ListDefaults.jsx","webpack:///./app/javascript/components/User/Summary.jsx","webpack:///./app/javascript/components/Version/Summary.jsx","webpack:///./node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js","webpack:///./app/javascript/channels/consumer.js","webpack:///./node_modules/unist-util-stringify-position/lib/index.js","webpack:///./node_modules/vfile-message/lib/index.js","webpack:///./node_modules/vfile/lib/minpath.browser.js","webpack:///./node_modules/vfile/lib/minproc.browser.js","webpack:///./node_modules/vfile/lib/minurl.shared.js","webpack:///./node_modules/vfile/lib/minurl.browser.js","webpack:///./node_modules/vfile/lib/index.js","webpack:///./node_modules/bail/index.js","webpack:///./node_modules/is-plain-obj/index.js","webpack:///./node_modules/trough/lib/index.js","webpack:///./node_modules/unified/lib/index.js","webpack:///./node_modules/mdast-util-to-string/lib/index.js","webpack:///./node_modules/micromark-util-chunked/index.js","webpack:///./node_modules/micromark-util-combine-extensions/index.js","webpack:///./node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","webpack:///./node_modules/micromark-util-character/index.js","webpack:///./node_modules/micromark-factory-space/index.js","webpack:///./node_modules/micromark/lib/initialize/content.js","webpack:///./node_modules/micromark/lib/initialize/document.js","webpack:///./node_modules/micromark-core-commonmark/lib/blank-line.js","webpack:///./node_modules/micromark-util-subtokenize/index.js","webpack:///./node_modules/micromark-core-commonmark/lib/content.js","webpack:///./node_modules/micromark/lib/initialize/flow.js","webpack:///./node_modules/micromark/lib/initialize/text.js","webpack:///./node_modules/micromark-util-resolve-all/index.js","webpack:///./node_modules/micromark/lib/create-tokenizer.js","webpack:///./node_modules/micromark-core-commonmark/lib/thematic-break.js","webpack:///./node_modules/micromark-core-commonmark/lib/list.js","webpack:///./node_modules/micromark-core-commonmark/lib/block-quote.js","webpack:///./node_modules/micromark-factory-destination/index.js","webpack:///./node_modules/micromark-factory-label/index.js","webpack:///./node_modules/micromark-factory-title/index.js","webpack:///./node_modules/micromark-factory-whitespace/index.js","webpack:///./node_modules/micromark-util-normalize-identifier/index.js","webpack:///./node_modules/micromark-core-commonmark/lib/definition.js","webpack:///./node_modules/micromark-core-commonmark/lib/code-indented.js","webpack:///./node_modules/micromark-core-commonmark/lib/heading-atx.js","webpack:///./node_modules/micromark-core-commonmark/lib/setext-underline.js","webpack:///./node_modules/micromark-util-html-tag-name/index.js","webpack:///./node_modules/micromark-core-commonmark/lib/html-flow.js","webpack:///./node_modules/micromark-core-commonmark/lib/code-fenced.js","webpack:///./node_modules/character-entities/index.js","webpack:///./node_modules/decode-named-character-reference/index.js","webpack:///./node_modules/micromark-core-commonmark/lib/character-reference.js","webpack:///./node_modules/micromark-core-commonmark/lib/character-escape.js","webpack:///./node_modules/micromark-core-commonmark/lib/line-ending.js","webpack:///./node_modules/micromark-core-commonmark/lib/label-end.js","webpack:///./node_modules/micromark-core-commonmark/lib/label-start-image.js","webpack:///./node_modules/micromark-util-classify-character/index.js","webpack:///./node_modules/micromark-core-commonmark/lib/attention.js","webpack:///./node_modules/micromark-core-commonmark/lib/autolink.js","webpack:///./node_modules/micromark-core-commonmark/lib/html-text.js","webpack:///./node_modules/micromark-core-commonmark/lib/label-start-link.js","webpack:///./node_modules/micromark-core-commonmark/lib/hard-break-escape.js","webpack:///./node_modules/micromark-core-commonmark/lib/code-text.js","webpack:///./node_modules/micromark/lib/constructs.js","webpack:///./node_modules/micromark/lib/parse.js","webpack:///./node_modules/micromark/lib/preprocess.js","webpack:///./node_modules/micromark-util-decode-numeric-character-reference/index.js","webpack:///./node_modules/micromark-util-decode-string/index.js","webpack:///./node_modules/mdast-util-from-markdown/lib/index.js","webpack:///./node_modules/micromark/lib/postprocess.js","webpack:///./node_modules/remark-parse/lib/index.js","webpack:///./node_modules/micromark-util-sanitize-uri/index.js","webpack:///./node_modules/unist-util-is/lib/index.js","webpack:///./node_modules/unist-util-visit-parents/lib/index.js","webpack:///./node_modules/unist-util-visit/lib/index.js","webpack:///./node_modules/unist-util-position/lib/index.js","webpack:///./node_modules/mdast-util-definitions/lib/index.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","webpack:///./node_modules/mdast-util-to-hast/lib/revert.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/list-item.js","webpack:///./node_modules/trim-lines/index.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/index.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/break.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/code.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/delete.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/footnote.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/heading.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/html.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/image.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/link.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/list.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/root.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/strong.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/table.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/table-row.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/text.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","webpack:///./node_modules/mdast-util-to-hast/lib/state.js","webpack:///./node_modules/unist-util-generated/lib/index.js","webpack:///./node_modules/mdast-util-to-hast/lib/index.js","webpack:///./node_modules/mdast-util-to-hast/lib/footer.js","webpack:///./node_modules/remark-rehype/lib/index.js","webpack:///./node_modules/property-information/lib/util/schema.js","webpack:///./node_modules/property-information/lib/util/merge.js","webpack:///./node_modules/property-information/lib/normalize.js","webpack:///./node_modules/property-information/lib/util/info.js","webpack:///./node_modules/property-information/lib/util/types.js","webpack:///./node_modules/property-information/lib/util/defined-info.js","webpack:///./node_modules/property-information/lib/util/create.js","webpack:///./node_modules/property-information/lib/xlink.js","webpack:///./node_modules/property-information/lib/xml.js","webpack:///./node_modules/property-information/lib/util/case-sensitive-transform.js","webpack:///./node_modules/property-information/lib/util/case-insensitive-transform.js","webpack:///./node_modules/property-information/lib/xmlns.js","webpack:///./node_modules/property-information/lib/aria.js","webpack:///./node_modules/property-information/lib/html.js","webpack:///./node_modules/property-information/lib/svg.js","webpack:///./node_modules/property-information/index.js","webpack:///./node_modules/react-markdown/lib/rehype-filter.js","webpack:///./node_modules/hast-util-whitespace/index.js","webpack:///./node_modules/property-information/lib/find.js","webpack:///./node_modules/property-information/lib/hast-to-react.js","webpack:///./node_modules/style-to-object/index.mjs","webpack:///./node_modules/react-markdown/lib/uri-transformer.js","webpack:///./node_modules/react-markdown/lib/ast-to-react.js","webpack:///./node_modules/comma-separated-tokens/index.js","webpack:///./node_modules/space-separated-tokens/index.js","webpack:///./node_modules/react-markdown/lib/react-markdown.js","webpack:///./app/javascript/components/Doc/OpenAiChat.tsx","webpack:///./app/javascript/channels/ai_chat_channel.js","webpack:///./app/javascript/components/Category/Summary.jsx","webpack:///./app/javascript/hooks/useWindowSize.js","webpack:///./app/javascript/src/doc_actions.ts","webpack:///./node_modules/react-s3-uploader/index.js","webpack:///./app/javascript/src/style.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./node_modules/redux/es/redux.js","webpack:///./app/javascript/reducers/document_user_state.js","webpack:///./app/javascript/reducers/index.js","webpack:///./node_modules/redux-thunk/es/index.js","webpack:///./app/javascript/store/store.js","webpack:///./node_modules/redux-promise-middleware/dist/es/isPromise.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/has-own-property.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/autobind-decorator/lib/index.js","webpack:///./node_modules/axios/lib/defaults/index.js","webpack:///./node_modules/dom-helpers/style/index.js","webpack:///./node_modules/dom-helpers/transition/properties.js","webpack:///./node_modules/react-component-managers/lib/index.js","webpack:///./node_modules/react-component-managers/lib/mountManager.js","webpack:///./node_modules/react-widgets/lib/messages.js","webpack:///./node_modules/react-widgets/lib/util/interaction.js","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromGlobal.js","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContext.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./node_modules/extend/index.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-ps.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bn-bd.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-mx.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ku-kmr.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tk.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./app/javascript/components/Catalog/List.jsx","webpack:///./node_modules/react-input-range/lib/js/input-range/label.js","webpack:///./app/javascript/components/Catalog/Report.jsx","webpack:///./app/javascript/components/Category/List.jsx","webpack:///./app/javascript/components/CategoryDocument/CreateSelectList.jsx","webpack:///./app/javascript/components/CategoryDocument/DeleteSelectList.jsx","webpack:///./app/javascript/components/CategoryDocument/List.jsx","webpack:///./app/javascript/components/Contributor/List.jsx","webpack:///./node_modules/react-is/index.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/defaults/transitional.js","webpack:///./node_modules/axios/lib/helpers/toFormData.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/env/data.js","webpack:///./app/javascript/components/Document/CaptureList.jsx","webpack:///./app/javascript/components/DocumentContributor/List.jsx","webpack:///./app/javascript/components/DocumentSet/EditDocumentsAccessTable.jsx","webpack:///./node_modules/dom-helpers/ownerDocument.js","webpack:///./node_modules/react-widgets/lib/Widget.js","webpack:///./node_modules/dom-helpers/events/index.js","webpack:///./node_modules/dom-helpers/events/on.js","webpack:///./node_modules/dom-helpers/events/off.js","webpack:///./node_modules/dom-helpers/query/contains.js","webpack:///./node_modules/dom-helpers/query/querySelectorAll.js","webpack:///./node_modules/dom-helpers/util/camelizeStyle.js","webpack:///./node_modules/dom-helpers/query/offset.js","webpack:///./node_modules/react-transition-group/Transition.js","webpack:///./node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.js","webpack:///./node_modules/react-component-managers/lib/timeoutManager.js","webpack:///./node_modules/react-widgets/lib/Icon.js","webpack:///./node_modules/react-widgets/lib/util/focusManager.js","webpack:///./node_modules/react-widgets/lib/util/reduceToListState.js","webpack:///./node_modules/react-widgets/lib/util/dataHelpers.js","webpack:///./app/javascript/components/DocumentSet/EditDocumentsActivitiesTable.jsx","webpack:///./app/javascript/components/DocumentSet/List.jsx","webpack:///./app/javascript/components/DocumentSet/NewBatchPreset.jsx","webpack:///./app/javascript/components/DocumentSet/Report.jsx","webpack:///./app/javascript/components/DocumentSetDocumentRelation/CreateSelectList.jsx","webpack:///./app/javascript/components/DocumentSetDocumentRelation/DeleteSelectList.jsx","webpack:///./app/javascript/components/DocumentSetDocumentRelation/List.jsx","webpack:///./app/javascript/components/DocumentSetUserPermission/CreateSelectList.jsx","webpack:///./app/javascript/components/DocumentSetUserPermission/SelectList.jsx","webpack:///./app/javascript/components/DocumentUser/List.jsx","webpack:///./app/javascript/components/Gen/Breadcrumbs.tsx","webpack:///./app/javascript/components/Gen/PanelGroup.tsx","webpack:///./app/javascript/components/Group/ExpirationDatePicker.jsx","webpack:///./app/javascript/components/Group/List.jsx","webpack:///./app/javascript/components/GroupDocument/CreateBatchSelectList.jsx","webpack:///./app/javascript/components/GroupDocument/DeleteBatchSelectList.jsx","webpack:///./app/javascript/components/GroupRoleDefinitionUser/Table.jsx","webpack:///./app/javascript/components/Institution/List.jsx","webpack:///./app/javascript/components/InstitutionContributor/List.jsx","webpack:///./app/javascript/components/MediaAsset/NewMediaRecorder.jsx","webpack:///./app/javascript/components/MediaAsset/NewWebkit.jsx","webpack:///./app/javascript/components/Test/ComponentPreview.jsx","webpack:///./app/javascript/components/User/List.jsx","webpack:///./app/javascript/components/Version/List.jsx","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/uncontrollable/lib/esm/utils.js","webpack:///./node_modules/uncontrollable/lib/esm/hook.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/uncontrollable/lib/esm/uncontrollable.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./app/javascript/components/Doc/Container.tsx","webpack:///./app/javascript/src/now_in_seconds.ts","webpack:///./app/javascript/src/activities.ts","webpack:///./app/javascript/src/role_definition_helpers.ts","webpack:///./app/javascript/components/Document/List.jsx","webpack:///./node_modules/react-input-range/lib/js/index.js","webpack:///./app/assets/images/category_icons/Cardiovascular.svg","webpack:///./app/assets/images/category_icons/Dermatology.svg","webpack:///./app/assets/images/category_icons/EENT.svg","webpack:///./app/assets/images/category_icons/EmergencyMedicine.svg","webpack:///./app/assets/images/category_icons/Endocrinology.svg","webpack:///./app/assets/images/category_icons/FamilyMedicine.svg","webpack:///./app/assets/images/category_icons/Gastroenterology.svg","webpack:///./app/assets/images/category_icons/Geriatrics.svg","webpack:///./app/assets/images/category_icons/Interdisciplinary.svg","webpack:///./app/assets/images/category_icons/Musculoskeletal.svg","webpack:///./app/assets/images/category_icons/Nephrology.svg","webpack:///./app/assets/images/category_icons/Neurology.svg","webpack:///./app/assets/images/category_icons/Nursing.svg","webpack:///./app/assets/images/category_icons/OBGYN.svg","webpack:///./app/assets/images/category_icons/Pediatrics.svg","webpack:///./app/assets/images/category_icons/PhysicianAssistant.svg","webpack:///./app/assets/images/category_icons/Psychology.svg","webpack:///./app/assets/images/category_icons/Pulmonology.svg","webpack:///./node_modules/react-redux/node_modules/react-is/index.js","webpack:///./node_modules/redux-promise-middleware/dist/es/index.js","webpack:///./node_modules/unified/node_modules/is-buffer/index.js","webpack:///./node_modules/vfile/node_modules/is-buffer/index.js","webpack:///./node_modules/react-markdown/node_modules/react-is/index.js","webpack:///./node_modules/style-to-object/index.js","webpack:///./node_modules/core-js/internals/function-bind-native.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/environment-user-agent.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/_toKey.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/define-global-property.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/function-call.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./node_modules/warning/browser.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./app/javascript/components sync ^\\.\\/.*$","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/react-input-range/lib/js/input-range/input-range.js","webpack:///./node_modules/react-input-range/lib/js/input-range/value-transformer.js","webpack:///./node_modules/react-input-range/lib/js/utils/captialize.js","webpack:///./node_modules/react-input-range/lib/js/utils/clamp.js","webpack:///./node_modules/react-input-range/lib/js/utils/distance-to.js","webpack:///./node_modules/react-input-range/lib/js/utils/is-defined.js","webpack:///./node_modules/react-input-range/lib/js/utils/is-number.js","webpack:///./node_modules/react-input-range/lib/js/utils/is-object.js","webpack:///./node_modules/react-input-range/lib/js/utils/length.js","webpack:///./node_modules/react-input-range/lib/js/input-range/default-class-names.js","webpack:///./node_modules/react-input-range/lib/js/input-range/range-prop-type.js","webpack:///./node_modules/react-input-range/lib/js/input-range/value-prop-type.js","webpack:///./node_modules/react-input-range/lib/js/input-range/slider.js","webpack:///./node_modules/react-input-range/lib/js/input-range/track.js","webpack:///./node_modules/react-input-range/lib/js/input-range/key-codes.js","webpack:///./node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/buffer/node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/parseProtocol.js","webpack:///./node_modules/axios/lib/helpers/null.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/inline-style-parser/index.js","webpack:///./node_modules/react-s3-uploader/ReactS3Uploader.js","webpack:///./node_modules/create-react-class/index.js","webpack:///./node_modules/create-react-class/factory.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/react-s3-uploader/s3upload.js","webpack:///./node_modules/mime-types/index.js","webpack:///./node_modules/mime-db/index.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/react-s3-uploader/node_modules/object-assign/index.js","webpack:///./node_modules/dom-helpers/activeElement.js","webpack:///./node_modules/prop-types-extra/lib/deprecated.js","webpack:///./node_modules/prop-types-extra/node_modules/warning/warning.js","webpack:///./node_modules/react-widgets/lib/WidgetPicker.js","webpack:///./node_modules/react-widgets/lib/Popup.js","webpack:///./node_modules/react-widgets/lib/SlideDownTransition.js","webpack:///./node_modules/dom-helpers/events/filter.js","webpack:///./node_modules/dom-helpers/events/listen.js","webpack:///./node_modules/dom-helpers/util/camelize.js","webpack:///./node_modules/dom-helpers/util/hyphenateStyle.js","webpack:///./node_modules/dom-helpers/util/hyphenate.js","webpack:///./node_modules/dom-helpers/style/getComputedStyle.js","webpack:///./node_modules/dom-helpers/style/removeStyle.js","webpack:///./node_modules/dom-helpers/transition/isTransform.js","webpack:///./node_modules/react-transition-group/utils/PropTypes.js","webpack:///./node_modules/prop-types-extra/lib/elementType.js","webpack:///./node_modules/react-widgets/lib/Calendar.js","webpack:///./node_modules/react-component-managers/lib/autoFocus.js","webpack:///./node_modules/react-component-managers/lib/focusManager.js","webpack:///./node_modules/react-component-managers/lib/mixin.js","webpack:///./node_modules/react-widgets/lib/Header.js","webpack:///./node_modules/react-widgets/lib/Footer.js","webpack:///./node_modules/react-widgets/lib/Month.js","webpack:///./node_modules/date-arithmetic/index.js","webpack:///./node_modules/react-widgets/lib/Year.js","webpack:///./node_modules/react-widgets/lib/Decade.js","webpack:///./node_modules/react-widgets/lib/Century.js","webpack:///./node_modules/react-widgets/lib/SlideTransitionGroup.js","webpack:///./node_modules/react-transition-group/TransitionGroup.js","webpack:///./node_modules/react-transition-group/utils/ChildMapping.js","webpack:///./node_modules/dom-helpers/query/matches.js","webpack:///./node_modules/react-widgets/lib/DateTimePickerInput.js","webpack:///./node_modules/react-widgets/lib/Input.js","webpack:///./node_modules/react-widgets/lib/Select.js","webpack:///./node_modules/react-widgets/lib/TimeList.js","webpack:///./node_modules/react-widgets/lib/List.js","webpack:///./node_modules/react-widgets/lib/util/Filter.js","webpack:///./node_modules/react-widgets/lib/Listbox.js","webpack:///./node_modules/react-widgets/lib/ListOption.js","webpack:///./node_modules/react-widgets/lib/ListOptionGroup.js","webpack:///./node_modules/react-widgets/lib/util/scrollManager.js","webpack:///./node_modules/dom-helpers/util/scrollTo.js","webpack:///./node_modules/dom-helpers/query/scrollParent.js","webpack:///./node_modules/dom-helpers/query/scrollTop.js","webpack:///./node_modules/dom-helpers/util/requestAnimationFrame.js","webpack:///./node_modules/react_ujs/react_ujs/index.js","webpack:///./node_modules/react-dom/server.browser.js","webpack:///./node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","webpack:///./node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/detect.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/native.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/pjax.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/turbolinks.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/turbolinksClassicDeprecated.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/turbolinksClassic.js","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContextWithGlobalFallback.js","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContextsWithGlobalFallback.js","webpack:///./node_modules/react-dom/client.js","webpack:///./node_modules/lodash/_baseGet.js","webpack:///./node_modules/lodash/_isKey.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/react_ujs/react_ujs/src/reactDomClient.js","webpack:///./node_modules/react_ujs/react_ujs/src/renderHelpers.js","webpack:///./node_modules/lodash/get.js","webpack:///./node_modules/core-js/internals/make-built-in.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/is-null-or-undefined.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/symbol-constructor-detection.js","webpack:///./node_modules/core-js/internals/a-callable.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/function-apply.js","webpack:///./node_modules/core-js/internals/array-slice.js","webpack:///./node_modules/core-js/internals/validate-arguments-length.js","webpack:///./node_modules/core-js/internals/environment.js","webpack:///./node_modules/lodash/_castPath.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///./node_modules/lodash/_hasPath.js","webpack:///./node_modules/lodash/_assignMergeValue.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_baseFor.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/lodash/_getPrototype.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_safeGet.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/keysIn.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/_hasUnicode.js","webpack:///./node_modules/lodash/toFinite.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/lodash/_equalArrays.js","webpack:///./node_modules/lodash/_isStrictComparable.js","webpack:///./node_modules/lodash/_matchesStrictComparable.js","webpack:///./node_modules/react-widgets-moment/index.js","webpack:///./node_modules/lodash/has.js","webpack:///./node_modules/lodash/merge.js","webpack:///./node_modules/lodash/uniq.js","webpack:///./node_modules/lodash/camelCase.js","webpack:///./node_modules/lodash/repeat.js","webpack:///./node_modules/lodash/sortBy.js","webpack:///./node_modules/lodash/zipObject.js","webpack:///./node_modules/lodash/range.js","webpack:///./node_modules/core-js/modules/es.regexp.flags.js","webpack:///./node_modules/core-js/internals/define-built-in-accessor.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/function-name.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/weak-map-basic-detection.js","webpack:///./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/object-is-prototype-of.js","webpack:///./node_modules/core-js/internals/environment-v8-version.js","webpack:///./node_modules/core-js/internals/get-method.js","webpack:///./node_modules/core-js/internals/try-to-string.js","webpack:///./node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/modules/web.immediate.js","webpack:///./node_modules/core-js/modules/web.clear-immediate.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/define-built-in.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/math-trunc.js","webpack:///./node_modules/core-js/internals/length-of-array-like.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/environment-is-ios.js","webpack:///./node_modules/core-js/internals/environment-is-node.js","webpack:///./node_modules/core-js/modules/web.set-immediate.js","webpack:///./node_modules/core-js/internals/schedulers-fix.js","webpack:///./node_modules/react-widgets/lib/configure.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./app/javascript/src/disabling_checkbox.ts","webpack:///./app/javascript/src/navigation_menu.ts","webpack:///./app/javascript/src/reset_password_link.ts","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_stringToPath.js","webpack:///./node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/lodash/memoize.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_baseToString.js","webpack:///./node_modules/lodash/_baseHas.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/_baseMerge.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/lodash/_baseMergeDeep.js","webpack:///./node_modules/lodash/_cloneBuffer.js","webpack:///./node_modules/lodash/_cloneTypedArray.js","webpack:///./node_modules/lodash/_cloneArrayBuffer.js","webpack:///./node_modules/lodash/_copyArray.js","webpack:///./node_modules/lodash/_initCloneObject.js","webpack:///./node_modules/lodash/_baseCreate.js","webpack:///./node_modules/lodash/isArrayLikeObject.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/isPlainObject.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/toPlainObject.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseKeysIn.js","webpack:///./node_modules/lodash/_nativeKeysIn.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_baseUniq.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/lodash/_arrayIncludes.js","webpack:///./node_modules/lodash/_baseIndexOf.js","webpack:///./node_modules/lodash/_baseFindIndex.js","webpack:///./node_modules/lodash/_baseIsNaN.js","webpack:///./node_modules/lodash/_strictIndexOf.js","webpack:///./node_modules/lodash/_arrayIncludesWith.js","webpack:///./node_modules/lodash/_createSet.js","webpack:///./node_modules/lodash/noop.js","webpack:///./node_modules/lodash/capitalize.js","webpack:///./node_modules/lodash/upperFirst.js","webpack:///./node_modules/lodash/_createCaseFirst.js","webpack:///./node_modules/lodash/_castSlice.js","webpack:///./node_modules/lodash/_baseSlice.js","webpack:///./node_modules/lodash/_stringToArray.js","webpack:///./node_modules/lodash/_asciiToArray.js","webpack:///./node_modules/lodash/_unicodeToArray.js","webpack:///./node_modules/lodash/_createCompounder.js","webpack:///./node_modules/lodash/_arrayReduce.js","webpack:///./node_modules/lodash/deburr.js","webpack:///./node_modules/lodash/_deburrLetter.js","webpack:///./node_modules/lodash/_basePropertyOf.js","webpack:///./node_modules/lodash/words.js","webpack:///./node_modules/lodash/_asciiWords.js","webpack:///./node_modules/lodash/_hasUnicodeWord.js","webpack:///./node_modules/lodash/_unicodeWords.js","webpack:///./node_modules/lodash/_baseRepeat.js","webpack:///./node_modules/lodash/toInteger.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/lodash/_baseFlatten.js","webpack:///./node_modules/lodash/_isFlattenable.js","webpack:///./node_modules/lodash/_baseOrderBy.js","webpack:///./node_modules/lodash/_baseIteratee.js","webpack:///./node_modules/lodash/_baseMatches.js","webpack:///./node_modules/lodash/_baseIsMatch.js","webpack:///./node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/lodash/_arraySome.js","webpack:///./node_modules/lodash/_equalByTag.js","webpack:///./node_modules/lodash/_mapToArray.js","webpack:///./node_modules/lodash/_equalObjects.js","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/lodash/_getMatchData.js","webpack:///./node_modules/lodash/_baseMatchesProperty.js","webpack:///./node_modules/lodash/hasIn.js","webpack:///./node_modules/lodash/_baseHasIn.js","webpack:///./node_modules/lodash/property.js","webpack:///./node_modules/lodash/_baseProperty.js","webpack:///./node_modules/lodash/_basePropertyDeep.js","webpack:///./node_modules/lodash/_baseMap.js","webpack:///./node_modules/lodash/_baseEach.js","webpack:///./node_modules/lodash/_baseForOwn.js","webpack:///./node_modules/lodash/_createBaseEach.js","webpack:///./node_modules/lodash/_baseSortBy.js","webpack:///./node_modules/lodash/_compareMultiple.js","webpack:///./node_modules/lodash/_compareAscending.js","webpack:///./node_modules/lodash/_baseZipObject.js","webpack:///./node_modules/lodash/_createRange.js","webpack:///./node_modules/lodash/_baseRange.js","webpack:///./node_modules/trix/dist/trix.esm.min.js","webpack:///./node_modules/@rails/actiontext/app/assets/javascripts/actiontext.js","webpack:///./node_modules/@floating-ui/core/dist/floating-ui.core.esm.js","webpack:///./node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js","webpack:///./app/javascript/src/account_menu.js","webpack:///./node_modules/i18n-js/dist/import/Locales.js","webpack:///./node_modules/i18n-js/dist/import/Pluralization.js","webpack:///./node_modules/i18n-js/dist/import/make-plural.js","webpack:///./node_modules/i18n-js/dist/import/helpers/camelCaseKeys.js","webpack:///./node_modules/i18n-js/dist/import/helpers/isSet.js","webpack:///./node_modules/i18n-js/dist/import/bignumber.js","webpack:///./node_modules/i18n-js/dist/import/helpers/expandRoundMode.js","webpack:///./node_modules/i18n-js/dist/import/helpers/roundNumber.js","webpack:///./node_modules/i18n-js/dist/import/helpers/formatNumber.js","webpack:///./node_modules/i18n-js/dist/import/helpers/getFullScope.js","webpack:///./node_modules/i18n-js/dist/import/helpers/inferType.js","webpack:///./node_modules/i18n-js/dist/import/helpers/interpolate.js","webpack:///./node_modules/i18n-js/dist/import/helpers/lookup.js","webpack:///./node_modules/i18n-js/dist/import/helpers/numberToHuman.js","webpack:///./node_modules/i18n-js/dist/import/helpers/numberToHumanSize.js","webpack:///./node_modules/i18n-js/dist/import/helpers/parseDate.js","webpack:///./node_modules/i18n-js/dist/import/helpers/pluralize.js","webpack:///./node_modules/i18n-js/dist/import/helpers/strftime.js","webpack:///./node_modules/i18n-js/dist/import/helpers/timeAgoInWords.js","webpack:///./node_modules/i18n-js/dist/import/MissingTranslation.js","webpack:///./node_modules/i18n-js/dist/import/I18n.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/i18n-js/dist/import/helpers/createTranslationOptions.js","webpack:///./node_modules/i18n-js/dist/import/helpers/numberToDelimited.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_isPlaceholder","a","_curry1","fn","f1","arguments","length","apply","this","_curry2","f2","b","_b","_a","Number","_concat","set1","set2","idx","len1","len2","result","_arity","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","Error","_curryN","received","combined","argsIdx","left","combinedIdx","_curry3","f3","_c","list","len","_idx","_list","Array","val","toString","_isTransformer","obj","_dispatchable","methodNames","transducerCreator","_isArray","slice","transducer","_reduced","x","init","xf","_map","functor","_isString","XWrap","f","acc","_xwrap","thisObj","_iterableReduce","iter","step","next","done","_methodReduce","methodName","symIterator","iterator","_reduce","_arrayReduce","reduce","TypeError","XMap","_xfBase","input","_has","prop","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","hasArgsEnumBug","contains","item","keys","nIdx","ks","checkArgsLength","offset","charAt","_isInteger","el","props","vals","_assoc","arr","concat","assocPath","path","nextObj","_isFunction","type","_makeFlat","recursive","flatt","jlen","j","ilen","_cloneRegExp","pattern","RegExp","source","global","ignoreCase","multiline","sticky","unicode","undefined","_clone","refFrom","refTo","deep","copy","copiedValue","getPrototypeOf","Date","valueOf","clone","_pipe","g","_checkForMethod","methodname","fromIndex","toIndex","Infinity","pipe","split","reverse","join","compose","_identity","_arrayFromIterator","push","_includesWith","pred","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","_equals","aItem","typeA","equals","constructor","match","String","_functionName","message","size","entries","values","keysA","extendedStackA","extendedStackB","_indexOf","inf","indexOf","_includes","_quote","replace","pad","toISOString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","toFixed","_complement","_filter","_isObject","XFilter","filterable","_toString","seen","recur","y","xs","mapPairs","k","sort","test","isNaN","NaN","repr","after","fns","args","context","XReduceBy","valueFn","valueAcc","keyFn","inputs","elt","hasOrAdd","shouldAdd","set","prevSize","_items","_nativeSet","add","has","bIdx","_Set","Set","first","second","out","firstLen","secondLen","toFilterOut","remove","start","count","splice","dissocPath","_dissoc","head","tail","_shallowCloneObject","empty","from","XFind","found","XFindIndex","XFindLast","last","XFindLastIndex","lastIdx","pairs","elts","XUniqBy","appliedItem","target","output","nextKey","arity","method","_isNumber","setter","toFunctorFn","focus","pathsArray","map","paths","pathAr","mergeDeepWithKey","lObj","rObj","lVal","rVal","names","index","Identity","lens","v","aa","bb","array","prefix","ws","trim","str","beginRx","endRx","XUniqWith","items","list1","list2","Const","hookCallback","some","hooks","setHookCallback","callback","isArray","isObject","hasOwnProp","isObjectEmpty","getOwnPropertyNames","isUndefined","isNumber","isDate","res","arrLen","extend","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","flags","parsedParts","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","_isValid","createInvalid","fun","momentProperties","updateInProgress","copyConfig","to","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","argLen","stack","deprecations","deprecateSimple","isFunction","Function","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","_calendar","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","toUpperCase","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","ss","mm","h","hh","dd","w","ww","M","MM","yy","relativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","aliases","D","dates","date","days","day","e","weekdays","weekday","E","isoweekdays","isoweekday","DDD","dayofyears","dayofyear","hours","hour","ms","milliseconds","millisecond","minutes","minute","months","month","Q","quarters","quarter","seconds","gg","weekyears","weekyear","GG","isoweekyears","isoweekyear","weeks","week","W","isoweeks","isoweek","years","year","normalizeUnits","units","toLowerCase","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","isoWeekday","dayOfYear","weekYear","isoWeekYear","isoWeek","getPrioritizedUnits","unitsObj","u","unit","priority","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","match1to2NoLeadingZero","match1to2HasZero","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","isLeapYear","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","parseTwoDigitYear","parseInt","getSetYear","makeGetSet","getIsLeapYear","keepTime","set$1","isUTC","getMilliseconds","getSeconds","getMinutes","getHours","getDate","getUTCDay","getDay","getMonth","getFullYear","setUTCMilliseconds","setMilliseconds","setUTCSeconds","setSeconds","setUTCMinutes","setMinutes","setUTCHours","setHours","setUTCDate","setDate","setUTCFullYear","setFullYear","stringGet","stringSet","prioritized","prioritizedLen","mod","daysInMonth","modMonth","monthsShort","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","min","setUTCMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortP","longP","shortPieces","longPieces","mixedPieces","createDate","createUTCDate","UTC","firstWeekOffset","dow","doy","fwd","dayOfYearFromWeeks","resYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","weekdaysMin","weekdaysShort","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","loadLocale","isLocaleNameSane","oldLocale","_abbr","getSetGlobalLocale","data","getLocale","defineLocale","abbr","parentLocale","forEach","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","exec","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","createFromInputFallback","defaults","currentDateArray","nowValue","_useUTC","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","temp","weekdayOverflow","curWeek","createLocal","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","createFromConfig","prepareConfig","preparse","configFromInput","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","matches","cloneWithOffset","model","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","tmp","isAdding","invalid","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","propertyLen","arrayTest","dataTypeTest","filter","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","keepOffset","toDate","inspect","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","erasName","erasAbbr","erasNarrow","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","isDSTShifted","proto$1","get$1","field","listMonthsImpl","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","assign","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","factory","GenButton","classes","spanClasses","disabled","highlighted","destructive","small","alertColor","bottom_margin","className","React","onClick","confirmMessage","confirm","href","window","open","Turbolinks","visit","stopPropagation","loading","GenLoadingSpinner","getRandomValues","randomUUID","crypto","rnds8","Uint8Array","rng","byteToHex","unsafeStringify","options","buf","rnds","random","deepFind","tester","deepFindLineage","deepFindPath","deepFindByUID","uid","datum","deepFindLineageByUID","deepFindSiblingBeforeByUID","deepFindPathByUID","R","siblingLineage","deepFindOldestNotSectionAncestorByUID","lineage","node","insertBeforeNodeByUID","toAdd","newIndex","insertAfterNodeByUID","insertAfterNodeByUIDAtSectionLevel","parentSection","pathFromParent","newParentContentKey","newParentIndex","pathToParent","deleteNodeByUID","replaceNodeByUID","toReplaceWith","replaceNodeWithArrayByUID","indexToReplace","functionToReplaceWith","setNodeValueByUIDAndKey","newValue","mediaTypePath","mediaTypeLens","modifyNodeValueByUIDAndKey","siblingIndexByUID","siblingCountByUID","generateNode","content","title","uri","_objectSpread","uuidv4","newAction","action","newSetNodeKVPairAction","targetType","targetId","hasOwn","classNames","appendClass","parseValue","includes","newClass","default","switchModes","ON","OFF","MIXED","GenSwitch","_ref","includeMixed","stringToDate","stringToConvert","yesterday","atEarliestNow","translateToEffectiveDateReverse","translateToEffectiveDate","areEqualEffectiveDates","dateA","dateB","TRUNCATE_COUNT","selectionDescription","selected","selectedIDs","id","SEED","CREATE","READ","UPDATE","DESTROY","PENDING","FULFILLED","REJECTED","SET_EDIT_DATA_FIELDS","RESET_EDIT_DATA","SET_LOCAL_DATA_FIELDS","RESET_LOCAL_DATA","DEFAULT_EDIT_DATA","DEFAULT_LOCAL_DATA","itemReducer","state","editData","localData","savedData","payload","isSyncing","syncError","lastSyncedAt","errors","fields","generateItemsReducer","itemType","meta","_defineProperty","itemsReducer","rawItemFromStore","store","storeReducerName","pluralize","defaultDataMergeFunction","rawItem","itemFromStore","mergeFunction","itemEditDataFromStore","itemLocalDataFromStore","defaultOutTransformer","createItem","endpoint","tempId","dispatch","getState","outTransformer","axios","url","fullURL","withCredentials","headers","createItemWithData","updateItem","snakeCase","updateItemWithData","generateActions","capitalizedItemType","readItem","destroyItem","DocBookmark","currentUser","bookmarked","GenMore","itemsPerPage","lastPageLength","readListPage","shouldInfiniteScroll","infiniteScrollRandomKey","checkVisibilityForInfiniteScroll","element","document","getElementById","elementRect","getBoundingClientRect","viewHeight","documentElement","clientHeight","innerHeight","bottom","top","checkVisibilityTimer","addEventListener","setInterval","removeEventListener","clearTimeout","location","origin","tagTanslation","inlineHTMLToJSON","inlineHTML","prefixInlineJSON","text","styles","styleStarts","styleRegEx","beforeTagText","unescapeHtml","tagContents","rawTagName","tagName","styleStart","justStyle","range","end","_toConsumableArray","matchAll","inlineJSONToHTML","inlineJSON","internalInlineJSONToHTML","sortedStarts","sortedEnds","startedStack","nextStartStyle","nextEndStyle","offestTagSpot","tags","openHTMLTag","_R$splitWhen2","_slicedToArray","startedStackBase","startedStackTop","style","closeHTMLTag","escapeHtml","afterTagText","attributes","_ref2","argName","argValue","html","documentDisplayTitle","documentDisplayNumber","displayId","non_ai_document_id","GenControlsBar","children","GenSearchBox","resetListPages","setListSearch","search","searchTimerRef","searchTimer","current","updateSearchWithTimer","handleSearchChange","setTimeout","handleSearchKeyDown","preventDefault","role","placeholder","onChange","onKeyDown","_REVERSE_MAP","_MAP","_KEYCODE_MAP","_SHIFT_MAP","_SPECIAL_ALIASES","navigator","platform","Mousetrap","self","_bindMultiple","unbind","trigger","_directMap","reset","_callbacks","stopCallback","_belongsTo","composedPath","initialEventTarget","isContentEditable","handleKey","_handleKey","addKeycodes","documentMousetrap","_addEvent","attachEvent","_characterFromEvent","character","fromCharCode","which","shiftKey","_isModifier","_pickBestAction","modifiers","_getReverseMap","_getKeyInfo","combination","_keysFromString","ancestor","parentNode","targetElement","_resetTimer","_sequenceLevels","_ignoreNextKeyup","_ignoreNextKeypress","_nextExpectedAction","_resetSequences","doNotReset","activeSequences","_getMatches","sequenceName","level","modifiers1","modifiers2","seq","metaKey","ctrlKey","deleteCombo","combo","deleteSequence","_fireCallback","sequence","srcElement","returnValue","_preventDefault","cancelBubble","_stopPropagation","_handleKeyEvent","keyCode","altKey","_eventModifiers","_bindSequence","_increaseSequence","nextAction","_callbackAndReset","wrappedCallback","_bindSingle","info","callbacks","maxLevel","processedSequenceCallback","ignoreThisKeypress","combinations","DocInlineText","_React$Component","_this","_classCallCheck","_callSuper","currentlyEditing","editState","afterInputRangeSelection","getDocRangeSelection","newTextSpan","ref","innerHTML","modifyEditJSON","json","newInlineJSON","replaceText","styleChangeRange","newlyActiveStyles","newActiveStyle","addStyle","newlyInactiveStyles","newInactiveStyle","removeStyle","setCurrentlyEditing","pasteData","clipboardData","getData","lines","pasteString","newRangeStart","newSelectionRange","_inherits","contentKey","selectionMenu","shouldDelay","isEditingByProps","currentDocRangeSelection","areEqualRangeSelections","setDocSelctionFunc","setDocSelection","nextProps","nextState","shouldUpdate","isEditing","updateSelectionIfRelevantByProps","prevProps","prevState","preventEditing","setAsCurrentlyEditing","dangerouslySetInnerHTML","__html","contentEditable","onInput","handleInput","onPaste","handlePaste","autoCapitalize","autoCorrect","spellCheck","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","err","error","mapStateToProps","listID","ownProps","getListFromStore","mapDispatchToProps","mountList","batch","setEndpoint","addListFilter","filterID","removeListFilter","resetListSearch","setListSort","sort_by","sort_order","resetListSort","setListSelected","resetListSelected","addListSelected","addSelectedIDs","removeListSelected","removeSelectedIDs","setListItemsPerPage","mergeProps","stateProps","dispatchProps","connectToList","component","possibleListIDs","listIDs","ConnectedToListComponent","connect","createElement","Provider","GenModal","SET_ENDPOINT","READ_PAGE","RESET_PAGES","ADD_FILTER","REMOVE_FILTER","SET_SEARCH","RESET_SEARCH","SET_SORT","RESET_SORT","SET_SELECTED","RESET_SELECTED","ADD_SELECTED","REMOVE_SELECTED","SET_ITEMS_PER_PAGE","listsReducer","_action$meta","DEFAULT_STATE","listData","nextSyncPageNumber","activeFilters","addSelected","removeSelected","listReducer","lists","listStore","page","per_page","listDataFromStore","params","readListPageWithData","GenSelectList","_len","_key","newSelected","onSelectionChange","onItemClick","itemView","successCallback","childGenList","currentItems","_this2","selectAll","deselectAll","selectExtraButtons","GenList","generateView","Component","documentListDefaults","itemsURL","DocumentSummary","searchPlaceHolder","sortOptions","filterOptions","checkboxFilterOptions","_extends","cache","kindOf","thing","kindOfTest","isArrayBuffer","isPlainObject","isFile","isBlob","isFileList","isURLSearchParams","TypedArray","isTypedArray","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isStream","isStandardBrowserEnv","product","merge","assignValue","thisArg","stripBOM","charCodeAt","inherits","superConstructor","descriptors","toFlatObject","sourceObj","destObj","merged","endsWith","searchString","position","replaceRange","newText","adjustStyleRangesWithFunction","adjustRangeValuesAtMostToCuttoff","arrayOfGroupedStyles","arrayOfGroupedStylesCombined","groupedStyle","sortedByStart","lastStyle","newStyles","setStyleArg","argKey","groupedStyles","inlineJSONBeforeIndex","inlineJSONAfterIndex","splitInlineJSONAtIndex","_R$splitAt2","text1","text2","_splitStylesAtIndex","unadjustedStyles1","unadjustedStyles2","styles1","styles2","splitStylesAtIndex","_splitStylesAtIndex2","GenBooleanCircle","filterKeys","history","currentState","newPartial","newState","replaceState","setState","searchValue","gettingNewPage","pageNumber","getUpdatedList","timer","newSortValue","newSortDirection","sortValue","sortDirection","newKey","newSelect","currentActiveFilters","newActiveFilters","attr","currentActiveWhereFilters","activeWhereFilters","newActiveWhereFilters","filterName","event","isChecked","checked","newActiveCheckboxFilters","activeCheckboxFilters","getAdditionalPage","ids","notIds","not_ids","filterValues","checkboxFilterKey","find","checkboxFilterOption","regularCheckboxFilter","filters","whereValues","whereFilter","whereCheckboxFilter","_loop","whereFilterOption","whereFilterOptions","wfo","where","JSON","stringify","URLSearchParams","dataForQuery","urlWithParams","fetch","Accept","then","response","ok","status","cause","itemId","getPage","historyPersistance","setHistoryState","itemsLastRecieved","getItem","returnedItem","indexOfItem","findIndex","currentItem","modifiedCurrentItems","moreClick","defaultItemsPerPage","getHistoryState","refreshList","refreshItem","filterPanel","listItems","controlPanel","searchBox","onKeyPress","handleSearchKeyPress","checkboxFilters","handleCheckboxFilterChange","label","GenDirectionalButtons","buttons","selectedValue","selectedDirection","onUpdate","updateSort","defaultValue","handleFilterChange","option","whereFilterOut","handleWhereFilterChange","option_key","filterOut","hasActiveSearchOrFiltering","noItemsMessage","gridView","shouldDisableMoreButton","GenSortButtons","ReactReduxContext","createContext","createListenerCollection","clear","notify","listener","listeners","subscribe","isSubscribed","prev","nullListeners","createSubscription","parentSub","unsubscribe","handleChangeWrapper","subscription","onStateChange","trySubscribe","addNestedSub","notifyNestedSubs","Boolean","tryUnsubscribe","getListeners","useIsomorphicLayoutEffect","contextValue","previousState","Context","_excluded","_excluded2","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","updateCount","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","actualChildProps","childPropsFromStoreUpdate","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","forceComponentUpdateDispatch","didUnsubscribe","lastThrownError","checkForUpdates","newChildProps","latestStoreState","initStateUpdates","connectAdvanced","selectorFactory","_ref2$getDisplayName","getDisplayName","_ref2$methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","_ref2$storeKey","storeKey","_ref2$forwardRef","withRef","forwardRef","_ref2$context","connectOptions","WrappedComponent","wrappedComponentName","displayName","selectorFactoryOptions","pure","usePureOnlyMemo","ConnectFunction","_useMemo","reactReduxForwardedRef","propsContext","ContextToUse","Consumer","didStoreComeFromProps","createChildSelector","_useMemo2","overriddenContextValue","_useReducer","previousStateUpdateResult","renderedWrappedComponent","Connect","memo","forwarded","is","shallowEqual","objA","objB","keysB","wrapMapToPropsConstant","getConstant","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","proxy","stateOrDispatch","actionCreators","boundActionCreators","actionCreator","bindActionCreators","defaultMergeProps","mergedProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","handleSubsequentCalls","nextOwnProps","nextStateProps","statePropsChanged","propsChanged","stateChanged","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","factories","strictEqual","createConnect","_temp","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","_ref$selectorFactory","_ref3","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","newBatch","accessor","numberFormat","_propTypes","_interopRequireDefault","_elementType","elementType","_createChainableTypeChecker","_localizers","propType","bool","acceptsArray","oneOfType","FUNC_ERROR_TEXT","HASH_UNDEFINED","PLACEHOLDER","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","INFINITY","MAX_SAFE_INTEGER","NAN","MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reRegExpChar","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","reLatin","reNoMatch","reUnescapedString","rsAstralRange","rsComboRange","rsComboMarksRange","rsDingbatRange","rsLowerRange","rsUpperRange","rsVarRange","rsBreakRange","rsMathOpRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","stringEscapes","freeParseFloat","freeParseInt","freeGlobal","freeSelf","root","freeExports","nodeType","freeModule","moduleExports","freeProcess","process","nodeUtil","types","require","binding","nodeIsArrayBuffer","nodeIsDate","nodeIsMap","isMap","nodeIsRegExp","isRegExp","nodeIsSet","isSet","nodeIsTypedArray","arrayAggregator","iteratee","accumulator","arrayEach","arrayEachRight","arrayEvery","predicate","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayMap","arrayPush","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","baseFindKey","collection","eachFunc","baseFindIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseTimes","baseTrim","trimmedEndIndex","baseUnary","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","deburrLetter","escapeHtmlChar","escapeStringChar","chr","hasUnicode","mapToArray","overArg","transform","replaceHolders","setToArray","setToPairs","stringSize","unicodeSize","stringToArray","unicodeToArray","asciiToArray","unescapeHtmlChar","_","runInContext","pick","arrayProto","funcProto","objectProto","coreJsData","funcToString","idCounter","maskSrcKey","IE_PROTO","nativeObjectToString","objectCtorString","oldDash","reIsNative","Buffer","allocUnsafe","getPrototype","objectCreate","spreadableSymbol","isConcatSpreadable","symToStringTag","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeMax","nativeMin","nativeNow","nativeParseInt","nativeRandom","nativeReverse","DataView","Map","Promise","WeakMap","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","lodash","isObjectLike","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","Hash","entry","ListCache","MapCache","SetCache","__data__","Stack","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","copyArray","baseClamp","arrayShuffle","assignMergeValue","baseAssignValue","objValue","assocIndexOf","baseAggregator","baseEach","baseAssign","copyObject","baseAt","skip","lower","upper","baseClone","bitmask","customizer","isDeep","isFlat","isFull","initCloneArray","tag","getTag","isFunc","cloneBuffer","initCloneObject","getSymbolsIn","copySymbolsIn","keysIn","baseAssignIn","getSymbols","copySymbols","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","cloneTypedArray","regexp","cloneRegExp","symbol","initCloneByTag","stacked","subValue","getAllKeysIn","getAllKeys","baseConformsTo","baseDelay","wait","baseDifference","isCommon","valuesLength","outer","computed","valuesIndex","templateSettings","pop","getMapData","LARGE_ARRAY_SIZE","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","isSymbol","baseFilter","baseFlatten","depth","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","baseGet","castPath","toKey","baseGetAllKeys","keysFunc","symbolsFunc","baseGetTag","isOwn","unmasked","getRawTag","objectToString","baseGt","baseHas","baseHasIn","baseIntersection","arrays","othLength","othIndex","caches","maxLength","baseInvoke","parent","baseIsArguments","baseIsEqual","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","convert","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othProps","objStacked","othStacked","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsMatch","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","baseIsNative","baseIteratee","identity","baseMatchesProperty","baseMatches","baseKeys","isPrototype","baseKeysIn","nativeKeysIn","isProto","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseMerge","srcIndex","mergeFunc","safeGet","isTyped","isArrayLikeObject","toPlainObject","baseMergeDeep","baseNth","baseOrderBy","iteratees","orders","getIteratee","criteria","comparer","baseSortBy","objCriteria","othCriteria","ordersLength","compareAscending","compareMultiple","basePickBy","baseSet","basePullAll","basePullAt","indexes","previous","baseUnset","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","low","high","mid","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","updater","baseWhile","isDrop","baseWrapperValue","actions","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","castSlice","arrayBuffer","typedArray","valIsDefined","valIsReflexive","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","isNew","createAggregator","initializer","createAssigner","assigner","sources","guard","isIterateeCall","iterable","createCaseFirst","trailing","createCompounder","words","deburr","createCtor","thisBinding","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","thru","wrapper","getFuncName","funcName","isLaziable","plant","createHybrid","partialsRight","holdersRight","argPos","ary","isAry","isBind","isBindKey","isFlip","getHolder","holdersCount","countHolders","newHolders","createRecurry","arrLength","oldArray","reorder","createInverter","toIteratee","baseInverter","createMathOperation","operator","createOver","arrayFunc","createPadding","chars","charsLength","createRange","toFinite","baseRange","createRelationalOperation","toNumber","wrapFunc","isCurry","newData","setData","setWrapToString","createRound","precision","toInteger","pair","noop","createToPairs","baseToPairs","createWrap","srcBitmask","newBitmask","isCombo","mergeData","createCurry","createPartial","createBind","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","arrStacked","arrValue","flatten","otherFunc","getValue","stubArray","hasPath","hasFunc","isLength","resolve","ctorString","isMaskable","stubFalse","otherArgs","shortOut","reference","details","insertWrapDetails","updateWrapDetails","getWrapDetails","lastCalled","stamp","remaining","rand","memoize","memoizeCapped","quote","subString","difference","differenceBy","differenceWith","findLastIndex","intersection","mapped","intersectionBy","intersectionWith","pull","pullAll","pullAt","union","unionBy","unionWith","unzip","group","unzipWith","without","xor","xorBy","xorWith","zip","zipWith","chain","interceptor","wrapperAt","countBy","findLast","forEachRight","groupBy","invokeMap","keyBy","partition","sortBy","before","bindKey","WRAP_BIND_FLAG","debounce","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","cancel","flush","defer","delay","resolver","memoized","Cache","negate","overArgs","transforms","funcsLength","partial","partialRight","rearg","gt","gte","isError","isInteger","lt","lte","iteratorToArray","remainder","toLength","isBinary","assignIn","assignInWith","assignWith","at","propsIndex","propsLength","defaultsDeep","mergeWith","invert","invertBy","invoke","omit","CLONE_DEEP_FLAG","basePick","toPairs","toPairsIn","camelCase","word","capitalize","upperFirst","kebabCase","lowerCase","lowerFirst","startCase","upperCase","hasUnicodeWord","unicodeWords","asciiWords","attempt","bindAll","flow","flowRight","methodOf","mixin","over","overEvery","overSome","basePropertyDeep","rangeRight","augend","addend","divide","multiply","multiplier","multiplicand","minuend","subtrahend","castArray","chunk","compact","cond","conforms","baseConforms","curry","curryRight","drop","dropRight","dropRightWhile","dropWhile","fill","baseFill","flatMap","flatMapDeep","flatMapDepth","flattenDeep","flattenDepth","flip","fromPairs","functions","functionsIn","initial","mapKeys","mapValues","matchesProperty","nthArg","omitBy","once","orderBy","propertyOf","pullAllBy","pullAllWith","reject","rest","sampleSize","setWith","shuffle","sortedUniq","sortedUniqBy","spread","take","takeRight","takeRightWhile","takeWhile","tap","throttle","toPath","isArrLike","unary","uniq","uniqBy","uniqWith","unset","update","updateWith","valuesIn","wrap","zipObject","zipObjectDeep","entriesIn","extendWith","clamp","cloneDeep","cloneDeepWith","cloneWith","conformsTo","defaultTo","escape","escapeRegExp","every","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","inRange","baseInRange","isBoolean","isElement","isEmpty","isEqual","isEqualWith","isMatch","isMatchWith","isNative","isNil","isNull","isSafeInteger","isWeakMap","isWeakSet","lastIndexOf","strictLastIndexOf","maxBy","mean","meanBy","minBy","stubObject","stubString","stubTrue","nth","noConflict","strLength","padEnd","padStart","radix","floating","reduceRight","repeat","sample","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","startsWith","sum","sumBy","template","settings","isEscaping","isEvaluating","imports","importsKeys","importsValues","interpolate","reDelimiters","evaluate","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","variable","times","toLower","toSafeInteger","toUpper","trimEnd","trimStart","truncate","omission","substring","newEnd","unescape","uniqueId","each","eachRight","VERSION","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","isRight","view","getView","iterLength","takeCount","iterIndex","commit","wrapped","activitiesReducer","_generateActions","readActivity","seedActivity","createActivity","updateActivity","setEditFieldsActivity","destroyActivity","setLocalFieldsActivity","resetEditFieldsActivity","activityFromStore","resetLocalFieldsActivity","activityEditDataFromStore","activityLocalDataFromStore","setNumber","_parse","parse","_ref$propType","localePropType","_ref$decimalChar","decimalChar","_ref$precision","checkFormats","REQUIRED_NUMBER_FORMATS","_numberLocalizer","wrapFormat","culture","invariant","_parse2","firstOfWeek","_ref2$propType","REQUIRED_DATE_FORMATS","_dateLocalizer","createWrapper","_numberLocalizer2","getFormat","_numberLocalizer3","_numberLocalizer4","_numberLocalizer5","_numberLocalizer6","_dateLocalizer2","_dateLocalizer3","_dateLocalizer4","_dateLocalizer5","formatter","required","_objectWithoutPropertiesLoose","integerDurrationToDisplayString","displayEnd","stringDateToDisplayDateString","toLocaleString","timeZoneName","componentClass","propTypes","pickElementProps","others","omitOwn","whitelist","whitelistRegex","_len2","_key2","compClass","rootDocumentSetId","currentRoleDefinition","categoryId","mediaIcons","description","addToButton","is_admin","AddToButton","src","cover_image","alt","width","height","versionsReducer","readVersion","seedVersion","createVersion","updateVersion","setEditFieldsVersion","destroyVersion","setLocalFieldsVersion","resetEditFieldsVersion","versionFromStore","resetLocalFieldsVersion","versionEditDataFromStore","versionLocalDataFromStore","GenSelectBar","selectText","_class","_class2","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","_class3","_react","_reactDom","_reactLifecyclesCompat","_activeElement","_classnames","_deprecated","_uncontrollable","_Widget","_WidgetPicker","_Popup","_Button","_Calendar","_DateTimePickerInput","_Select","_TimeList","_messages","Props","_interopRequireWildcard","CustomPropTypes","_focusManager","_scrollManager","_interaction","_dates","_widgetHelpers","_Icon","newObj","desc","getOwnPropertyDescriptor","_initializerDefineProperty","descriptor","configurable","writable","_assertThisInitialized","ReferenceError","_applyDecoratedDescriptor","decorators","decorator","NEXT_VIEW","ControlledComponent","instanceOf","oneOf","onToggle","onCurrentDateChange","onSelect","editFormat","timeComponent","dateIcon","timeIcon","dropUp","popupTransition","autoFocus","readOnly","arrayOf","tabIndex","any","onBlur","onFocus","containerClassName","inputProps","isRtl","messages","shape","dateButton","timeButton","DateTimePicker","polyfill","subClass","superClass","attachCalRef","calRef","attachTimeRef","timeRef","attachInputRef","inputRef","_this$props","inputId","instanceId","dateId","listId","activeCalendarId","activeOptionId","handleScroll","focusManager","didHandle","focused","close","getMessages","__proto__","getDerivedStateFromProps","_proto","renderInput","owns","_this$props2","ariaLabelledby","ariaDescribedby","inputReadOnly","activeId","editing","handleChange","renderButtons","_this$props3","bordered","icon","handleCalendarClick","handleTimeClick","renderCalendar","_this$props4","calendarProps","defaultView","transition","handleDateSelect","onNavigate","renderTimeList","_this3","_this$props5","timeListProps","onEntering","forceUpdate","listProps","dateOrNull","onMove","handleTimeSelect","preserveDate","itemComponent","render","_this$props6","elementProps","shouldRenderList","isFirstFocusedRender","shouldRenderTimeList","shouldRenderCalendar","handleKeyDown","handleKeyPress","handleBlur","handleFocus","findDOMNode","toggle","_this$props7","inRangeValue","defaultProps","clock","widgetEditable","_this4","constrain","_this4$props","_this5","_this5$props","defaultPrevented","_this6","_this7","dateTime","dateStr","formatDate","_this8","_this9","_this10","_default","uncontrollable","isTime","dt","check","it","globalThis","_dateArithmetic","monthsInYear","firstVisibleDay","firstOfMonth","lastVisibleDay","endOfMonth","visibleDays","defaultDate","today","tomorrow","componentWillMount","componentWillReceiveProps","componentWillUpdate","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","__suppressDeprecationWarning","historyToStore","renderFilters","setStateFilterValues","keyToUse","filterValueChangeFunction","filterValue","newFilterValues","filterChildren","GenFilterGroup","GenCheckboxFilter","GenCheckboxesFilter","displayLikeFilterGroup","GenYMWDFilter","gerenateFilterWhereQuery","dataType","mdataTable","mdataKey","mdataValue","whereArrays","dataCount","mdataColumn","GenSidebarList","filterWhereQuery","checkboxFilterName","filterOption","search_filters","showMobileFilters","searchBarClass","closeFiltersButton","handleToggleMobileFilters","activeFilterCount","filterCount","hideSidebar","canCreateCategory","handleCreateCategory","beforeListContent","afterListContent","renderedButtons","button","DocExtra","subtype","isEditor","pluralRules","singularRules","uncountables","irregularPlurals","irregularSingles","sanitizeRule","rule","restoreCase","sanitizeWord","rules","replaceWord","replaceMap","keepMap","checkWord","inclusive","singular","plural","isPlural","isSingular","addPluralRule","replacement","addSingularRule","addUncountableRule","addIrregularRule","single","isShallowEqual","chunkSize","groupBySortedKeys","grps","makeArray","GenToggleBar","toggleButtons","GenToggleButton","DocumentSetDocumentRelationScheduleStatus","showAfter","showUntil","mixedOverride","hideStatusText","hideOverride","showAfterTime","showUntilTime","documentSetDocumentStatesReducer","readDocumentSetDocumentState","seedDocumentSetDocumentState","createDocumentSetDocumentState","updateDocumentSetDocumentState","setEditFieldsDocumentSetDocumentState","destroyDocumentSetDocumentState","documentSetDocumentStateFromStore","resetEditFieldsDocumentSetDocumentState","setLocalFieldsDocumentSetDocumentState","resetLocalFieldsDocumentSetDocumentState","documentSetDocumentStateMergeFunction","addDocumentSetDocumentState","_documentSetDocumentS","updatedAt","documentSetDocumentState","resetDocumentSetDocumentState","startRetry","oldV","newV","getDOMRange","domSelection","getSelection","rangeCount","getDOMSelection","getRangeAt","domRange","ancestorInlineTextNode","getAncestorInlineTextNodeFromChildNode","startContainer","dataset","isempty","startContainerOffset","findTextOffsetNodeInNode","endContainerOffset","endContainer","startOffset","endOffset","contentkey","domRangeToDocRange","selection1","selection2","nodeTextLength","Node","TEXT_NODE","textContent","childNode","newWalker","createTreeWalker","NodeFilter","SHOW_ALL","nextNode","currentNode","classList","isNodeInlineText","docSelection","querySelector","rangeStart","findNodeAndOffsetFromTextOffset","rangeEnd","setStart","setEnd","docSelectionToDOMRange","removeAllRanges","addRange","setDOMRange","textOffset","currentOffset","newOffset","DISPLAY_MODES","EDIT","EDIT_FULL","FACULTY","STUDENT","displayTraitsBasedOnMode","displayMode","isUnlocked","isForcedUncollapsed","isEditDisplayMode","displayModeDisplayName","utils","AxiosError","code","request","fileName","lineNumber","columnNumber","defineProperties","customProps","axiosError","ActivityReviewSummary","activity","activityUserState","flat","suggestedResponse","feedback","marginBottom","_activityUserState$st","answeredValues","multipleChoiceAnswer","_activityUserState$st2","answered","answer","marginLeft","onName","GenCycleButton","states","currentValue","maybeCurrentStateObject","currentStateObject","nextValue","ALLOWED_ROLE_NAMES","ADMIN_NAMES","modalOpen","canAddToUnownedDocumentSets","handleToggleModalOpen","AddToList","documentId","userId","showsOwnershipCheckbox","GenPanelHeader","rightContent","DocSection","collapsed","collapsible","inactiveBoolean","displayState","logEvent","addState","openSection","_ReactDOM$findDOMNode","ReactDOM","prevBoundingClientRect","currBoundingClientRect","scrollBy","hideBadge","aboveContent","headerColor","inactive","isRootSection","scheduableSectionUIDs","titleBadge","reportButton","currentDocument","currentDocumentSetDocumentRelation","currentGroup","currentVersion","currentActivityUserState","htmlClass","shouldHide","parseHideUntil","drawer_schedules","hideUntil","hide_until","isLearner","DocSectionScheduleStatus","coverImage","collapsedIndicator","headerClasses","childClass","documentType","aws_folder_url","menu","mediaType","isCoverImage","readerTags","visibleContent","renderedAboveContent","renderedReportButton","sectionHeader","onHeaderClick","root_document_set_id","invisible","passToEveryNode","contentNodes","imagingTypes","nodeContent","DocParagraph","DocRegularList","DocNumberedList","DocImage","DocImageGallery","DocVideo","DocAudio","DocCheckbox","DocTextInput","DocSliderBar","DocRatingBar","DocMultipleChoice","DocMatcher","DocButton","DocActivity","DocOpenAiChat","DocCompletionNotice","sectionBody","imageModalOn","imageModal","toggleImageModal","imageURL","image","onImageEditClick","imagingType","handleImagingTypeChange","inGallery","DocListItem","DocVideoJWPlayer","startTime","jwPlayer","getPosition","onVideoPlayEvent","jwPlayerTimeDiff","onVideoCompleteEvent","timeDiff","jwPlayerId","coverImageURL","hasCaptions","_this$props$shouldLoo","shouldLoop","videoURL","jwplayerSettings","playlist","tracks","jwplayer","setup","on","handleJWPlayerPlay","handleJWPlayerPause","handleJWPlayerComplete","off","GenPostButton","GenTableDisplay","columns","tableHeaderCells","column","orderClass","center_column_header","sort_column","column_width","tableHeader","itemRows","cells","calculated_class_name","calculated_value","isSelected","sItem","newSelectedItems","sortBasedOnType","localeCompare","areAllSubstringsInValues","substrings","findInSummary","summary","grouping","_summary$grouping","GenGroupableTable","currentReport","dataUrl","sortAndFilterData","alert","groupings","sortAndFilterGroupedData","sortAndFilterFlatData","newReport","reports","report","currentGrouping","defaultReport","defaultReportKey","collapsedRows","collapsedRowIds","sortKey","_this$state","setting","groupItemType","unitItemType","_this$state2","usage_lookup_by_user_id","users","user","searchWords","searchableSettings","searchable","itemSearchableValues","processedItems","_this$state3","sortGroup","usage_lookup_by_user_id_and_document_id","_this$groupTypes","groupTypes","_this$state4","groupItems","unitItems","orderedSettings","groupedSummaries","groupItem","headerSummary","unitSummaries","unitItem","usage","groupSettings","notGroupSettings","groupedSummary","groupSearchValues","unitSummary","notGroupSearchValues","groupSummary","oldValue","_this$state5","currentReportSettings","displayFunction","textAlign","align","_this$state6","_this$groupTypes2","groupItemId","isClosed","headerRow","toggleCollapseOnClick","subRows","unitItemId","renderGroupedRows","renderFlatRows","newSortGroup","newSortKey","_this$state7","rows","renderedLoading","_this$state8","reviewRow","headerCells","isSorted","renderRows","reviewModal","reportKeyButtons","ReviewModalComponent","closeReviewRow","reloadData","selectNewReviewRow","newReviewRow","extraModalData","onSearchChange","onGroupByButtonsClick","exportUrl","onReportTypeButtonsClick","overflowX","activityUserStatesReducer","readActivityUserState","seedActivityUserState","createActivityUserState","updateActivityUserState","setEditFieldsActivityUserState","destroyActivityUserState","activityUserStateFromStore","resetEditFieldsActivityUserState","setLocalFieldsActivityUserState","resetLocalFieldsActivityUserState","activityUserStateMergeFunction","addActivityUserState","_activityUserState$ed","documentAll","all","argument","NATIVE_BIND","FunctionPrototype","uncurryThisWithBind","condition","argIndex","framesToPop","acceptedTypesByMediaType","GenMediaUploadButton","progressEvent","progressPercent","onError","log","onSuccess","mediaOptions","originalPath","URL","signedUrl","pathname","csrfToken","common","post","media_asset","original_upload_path","media_type","_this$props2$titleEnd","titleEnding","hasProgress","uploadID","htmlFor","ReactS3Uploader","signingUrl","signingUrlMethod","accept","s3path","onProgress","onUploadProgress","onUploadError","onFinish","onUploadFinish","display","uploadRequestHeaders","GenListDisplay","renderItem","renderedItems","documentsReducer","readDocument","seedDocument","createDocument","documentFromStore","updateDocument","destroyDocument","setEditFieldsDocument","resetEditFieldsDocument","setLocalFieldsDocument","resetLocalFieldsDocument","isCollapsedRange","cutoff","adjustRangeValuesWithFunction","_captialize","_clamp","_distanceTo","_isDefined","_length","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","nextTick","browser","env","argv","versions","addListener","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","cwd","chdir","umask","CanceledError","ERR_CANCELED","__CANCEL__","client","win","_isWindow","parentWindow","Loading","Button","busy","active","_this$props$variant","variant","_this$props$spinner","spinner","_this$props$component","Tag","excluded","sourceKeys","sourceSymbolKeys","_objectWithoutProperties","LIFECYCLE_HOOKS","componentDidMount","shouldComponentUpdate","componentWillUnmount","STATIC_HOOKS","isStatic","ctx","originals","subject","spyOnComponent","_inheritsLoose","VIEW_UNITS","CalendarView","CalendarViewCell","_React$Component2","_proto2","isFocused","isNow","isOffView","viewUnit","isDisabled","isRequired","Body","Row","Cell","handler","__id","idCount","_firstFocus","ActivityReviewModal","reviewComment","review_comment","afterSave","body","activity_user_state","afterCancel","rel","first_name","last_name","email","resize","reviewed","postActivityUserStateData","reviewed_at","optionName","optionValue","YMWD","YMWD_CONVERT_TO_DAYS","YEARS","MONTHS","WEEKS","DAYS","YMWD_MAXIMUM_TIME_UNIT_VALUE","timeUnit","internalTimeUnitValue","_props$value","unitDays","maxDays","divideRange","resetFilter","syncExternal","newTimeRange","convertDisplayRangeToDayRange","integer","dayRange","currentConversion","displayRange","multiplyRange","toggleFilter","marginTop","handleTimeUnitChange","margin","InputRange","minValue","maxValue","handleInternalChange","onChangeComplete","handleExternalChange","IMAGE_LOOKUP","CardiovascularImage","DermatologyImage","EENTImage","EmergencyMedicineImage","EndocrinologyImage","FamilyMedicineImage","GastroenterologyImage","GeriatricsImage","InterdisciplinaryImage","MusculoskeletalImage","NephrologyImage","NeurologyImage","NursingImage","OBGYNImage","PediatricsImage","PhysicianAssistantImage","PsychologyImage","PulmonologyImage","DifficultyGraph","color","difficulty","xmlns","viewBox","CatalogSummary","_documentSet$contribu","_documentSet$contribu2","documentSet","categories","category","contributor","profile_image","created_at","toLocaleDateString","drawerUidsInOrder","CatalogReviewModal","documentSetId","document_set_document_state","renderReview","activities","activity_user_states_by_activity_id","allItems","review_submitted","setReviewRow","submitted_at","renderedActivities","placement_uid","placement_before","placement_inside","order","placementUid","foundIndex","placementBefore","placementInside","postDocumentSetDocumentStateData","sumbittedItems","totalReviewableCount","reviewIndex","reviewNavigation","newRow","locked","isOwner","owner_id","enabled","AddToSummary","includesDoc","nested_document_ids","canAdd","documentIds","buttonIcon","onAddClicked","onRemoveClicked","handleTitleClick","owner_full_name","documentSetDocumentActivity","onComplete","onCompleteTitle","activityUserStateLongId","document_set_id","show_after","dueAt","due_at","currentUserForActivity","addStateTargetType","addStateTargetId","hasStarted","hasBeenSubmitted","submit_button","submittedAt","badgeText","formattedSubmittedAt","activitySections","activityContent","hasTextInputs","hasOpenAiChats","activitySection","activitySectionIndex","isFirstSection","isLastSection","activityBlocks","activityBlock","activityBlockIndex","isFirstBlock","isLastBlock","activityBlockInputNodes","buttonUid","buttonActions","inputNode","is_graded","_buttonActions","nodeScores","ab","scorableNode","answerOption","_activityUserState$st3","grade_percentage","showOtherActivityNodesActions","nextActivitySection","showNextSection","_buttonActions2","hideCurrentNodes","showNextNodes","nextNextActivityButtonUid","submitButtonTitle","activityReview","questionReportButton","exportPdfButton","editActivityButton","strippedState","valueData","kvs","_ref4","DocQuestionReportButton","section","renderedTitle","preload","controls","scrolling","frameBorder","performActions","attempt_index","nextDocumentSetDocumentRelationId","continueButton","renderedGrade","renderedPassingGrade","document_set","passing_percentage","attempt_limit","scrollTop","images","activeMatchItemUID","activeMatchItemLetter","futureUID","futureLetter","pastUID","pastLetter","aUID","bUID","futureValues","isMatched","_pair","aClasses","bClasses","onMatchItemClick","restAs","contentA","restBs","contentB","matchedPairs","valueIdPair","valueA","valueB","matchPair","unmatchedPairs","restA","matchedRows","matchedPair","renderMatcherRow","unmatchedRows","unmatchedPair","renderedFeedback","multipleSelect","graded","onValueChanged","answers","handleKeyValueChange","renderedExtraFeedback","feedbackAnswers","splitFeedback","instructions","listItem","_props$maxValue","stars","updateUSCWithTimer","updateUSC","newProps","showValue","cols","boxLines","characterLimit","video","allowFullScreen","mediaAsset","media_assets","media_key","cover","three_play_media_captions_processed_at","is_silent","onVideoComplete","extraTitle","modal","_React$useState2","openModal","setOpenModel","_React$useState4","responseText","setResponseText","DocMediaModal","ultrasoundUploadButton","extraBottomTools","renderedMediaItems","mediaItem","preview","extraControls","newURI","videoKey","main_mp4_url","original_url","vtt_captions_url","srt_captions_url","GenMediaDuplicationTool","float","parseInputStringForInt","_inputString$match","regexMatch","digitMatch","mediaAssetId","setMediaAssetId","setDuration","_React$useState6","isProcessing","setIsProcessing","document_id","EDIT_METADATA_LOOKUP_BY_TYPE","openAiChat","inputType","extraExplination","DocEditMetadataModal","mergedJSON","editMetadataUid","editMetadataNode","metadataInputs","keyMetadata","inputInput","startWithAssistant","setEditMetadata","isCurrentlyEditingText","DocTopBar","onListButtonClickGenerator","listType","_editState$currentlyE","currentlyEditingNode","newNode","newListItem","newRangeSelection","parentList","currentlyEditingAncestors","newParagraph","replaceWithArray","indexOfNode","numberOfSiblings","newFirstList","newSecondList","onMediaButtonClickGenerate","_currentDocument$imag","_currentDocument$audi","_currentDocument$medi","audio","audios","newNodeArgs","soure","_editState$currentlyE4","_editState$currentlyE5","_editState$currentlyE6","_editState$currentlyE7","_editState$currentlyE8","_editState$currentlyE9","_editState$currentlyE10","_editState$currentlyE11","_editState$currentlyE12","_editState$currentlyE13","styleButtons","_editState$currentlyA","_editState$currentlyE2","_editState$currentlyE3","styleName","activeStyle","currentlyActiveStyles","newlyActive","newlyInactive","linkValue","_activeStyle$args","_newlyActive$args","newLinkValue","generateStyleFunction","hasUnsavedChanges","save","setDisplayMode","undoQueue","undo","redoQueue","redo","captureListDefaults","CaptureSummary","formatted_date","pretty_status","pretty_age","GenPanel","GenPanelSlice","DocumentSetSummary","DocumentSetDocumentRelationSummary","gradeBadge","documentSetDocumentRelation","show_status","document_set_document_activities","activeActivities","dsda","skillBadge","reviewedActivities","reviewedBadge","is_completed","renderedPercent","is_locked","show_until","is_gated","DocumentUserSummary","documentUser","GenTable","selectedKey","orderArrow","GroupSummary","expirationView","shouldShowExpiration","expiration_date","momentTime","inThePast","formattedDate","subdomain","host","groupListDefaults","UserSummary","VersionSummary","updated_at","adapters","logger","WebSocket","secondsSince","ConnectionMonitor","connection","visibilityDidChange","reconnectAttempts","isRunning","startedAt","stoppedAt","startPolling","staleThreshold","stop","stopPolling","recordPing","pingedAt","recordConnect","disconnectedAt","recordDisconnect","poll","pollTimeout","reconnectIfStale","getPollInterval","reconnectionBackoffRate","connectionIsStale","refreshedAt","disconnectedRecently","reopen","visibilityState","isOpen","INTERNAL","message_types","welcome","disconnect","ping","confirmation","rejection","disconnect_reasons","unauthorized","invalid_request","server_restart","default_mount_path","protocols","supportedProtocols","Connection","consumer","subscriptions","monitor","disconnected","send","webSocket","isActive","uninstallEventHandlers","installEventHandlers","allowReconnect","reopenDelay","getProtocol","protocol","isState","isProtocolSupported","readyState","eventName","events","identifier","reason","reconnect","reload","confirmSubscription","notifyAll","willAttemptReconnect","Subscription","perform","command","SubscriptionGuarantor","pendingSubscriptions","guarantee","startGuaranteeing","forget","stopGuaranteeing","retrySubscribing","retryTimeout","Subscriptions","guarantor","channelName","channel","ensureActiveConnection","findAll","sendCommand","callbackName","_len3","_key3","_len4","_key4","_url","createWebSocketURL","createConsumer","getAttribute","getConfig","stringifyPosition","point","line","place","super","fatal","ruleId","file","actual","expected","note","basename","ext","assertPath","seenNonSlash","firstNonSlashEnd","extIndex","dirname","unmatchedSlash","extname","startPart","startDot","preDotState","joined","segments","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","normalizeString","normalize","sep","proc","isUrl","fileUrlOrPath","urlToPath","hostname","third","decodeURIComponent","getPathFromURLPosix","stored","assertNonEmpty","assertPart","stem","encoding","fail","part","bail","trough","pipeline","middlewareIndex","middleware","called","parameters","fnExpectsCallback","use","middelware","unified","transformers","attachers","frozen","namespace","freezeIndex","processor","assertUnfrozen","own","Parser","Compiler","freeze","attacher","transformer","POSITIVE_INFINITY","addPlugin","addList","addPreset","plugin","plugins","doc","vfile","assertParser","newable","assertCompiler","assertNode","compile","executor","tree","runSync","complete","assertDone","processSync","destination","asyncName","looksLikeAVFile","emptyOptions","one","includeImageAlt","includeHtml","chunkStart","unshift","syntaxExtension","extension","hook","right","existing","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","factorySpace","effects","enter","consume","exit","tokenize","contentStart","parser","constructs","contentInitial","lineStart","contentType","childFlow","childToken","lineStartOffset","continued","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","lazy","containerContinue","_tokenizer","flowContinue","writeToChild","eof","stream","sliceStream","defineSkip","write","nok","disable","null","blankLine","subtokenize","jumps","lineIndex","otherIndex","otherEvent","subevents","more","_isInFirstContentOfListItem","subcontent","_container","eventIndex","startPosition","startPositions","tokenizer","childEvents","gaps","adjust","breaks","_gfmTasklistFirstContentOfListItem","chunkInside","contentEnd","continuationConstruct","contentContinue","prefixed","sliceSerialize","flowInitial","afterConstruct","resolveAll","createResolver","initializeFactory","notText","atBreak","resolveAllLineSuffixes","extraResolver","chunks","tabs","bufferIndex","_index","_bufferIndex","createTokenizer","initialize","columnStart","resolveAllConstructs","consumed","accountForPotentialSkip","constructFactory","construct","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","main","expectedCode","startIndex","startBufferIndex","endIndex","endBufferIndex","sliceChunks","chunkIndex","go","restore","onreturn","returnState","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","def","handleMapOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","resolveTo","initialSize","kind","atMarker","inside","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","furtherBlankLines","notInCurrentItem","indentConstruct","contBefore","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","raw","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","begin","factoryWhitespace","normalizeIdentifier","labelAfter","markerAfter","destinationBefore","destinationAfter","afterWhitespace","defined","beforeMarker","titleAfter","titleAfterOptionalWhitespace","codeIndented","afterPrefix","furtherStart","headingAtx","sequenceOpen","sequenceFurther","setextUnderline","paragraph","definition","heading","htmlBlockNames","htmlRawNames","htmlFlow","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","slash","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationStart","blankLineBefore","continuationAfter","nonLazyContinuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","nonLazyContinuation","codeFenced","closeStart","startBefore","beforeSequenceClose","sequenceClose","sizeOpen","sequenceCloseAfter","initialPrefix","beforeSequenceOpen","infoBefore","atNonLazyBreak","metaBefore","contentBefore","beforeContentChunk","contentChunk","characterEntities","AElig","AMP","Aacute","Abreve","Acirc","Acy","Afr","Agrave","Alpha","Amacr","And","Aogon","Aopf","ApplyFunction","Aring","Ascr","Assign","Atilde","Auml","Backslash","Barv","Barwed","Bcy","Because","Bernoullis","Beta","Bfr","Bopf","Breve","Bscr","Bumpeq","CHcy","COPY","Cacute","Cap","CapitalDifferentialD","Cayleys","Ccaron","Ccedil","Ccirc","Cconint","Cdot","Cedilla","CenterDot","Cfr","Chi","CircleDot","CircleMinus","CirclePlus","CircleTimes","ClockwiseContourIntegral","CloseCurlyDoubleQuote","CloseCurlyQuote","Colon","Colone","Congruent","Conint","ContourIntegral","Copf","Coproduct","CounterClockwiseContourIntegral","Cross","Cscr","Cup","CupCap","DD","DDotrahd","DJcy","DScy","DZcy","Dagger","Darr","Dashv","Dcaron","Dcy","Del","Delta","Dfr","DiacriticalAcute","DiacriticalDot","DiacriticalDoubleAcute","DiacriticalGrave","DiacriticalTilde","Diamond","DifferentialD","Dopf","Dot","DotDot","DotEqual","DoubleContourIntegral","DoubleDot","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DownArrow","DownArrowBar","DownArrowUpArrow","DownBreve","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","DownTee","DownTeeArrow","Downarrow","Dscr","Dstrok","ENG","ETH","Eacute","Ecaron","Ecirc","Ecy","Edot","Efr","Egrave","Element","Emacr","EmptySmallSquare","EmptyVerySmallSquare","Eogon","Eopf","Epsilon","Equal","EqualTilde","Equilibrium","Escr","Esim","Eta","Euml","Exists","ExponentialE","Fcy","Ffr","FilledSmallSquare","FilledVerySmallSquare","Fopf","ForAll","Fouriertrf","Fscr","GJcy","GT","Gamma","Gammad","Gbreve","Gcedil","Gcirc","Gcy","Gdot","Gfr","Gg","Gopf","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterTilde","Gscr","Gt","HARDcy","Hacek","Hat","Hcirc","Hfr","HilbertSpace","Hopf","HorizontalLine","Hscr","Hstrok","HumpDownHump","HumpEqual","IEcy","IJlig","IOcy","Iacute","Icirc","Icy","Idot","Ifr","Igrave","Im","Imacr","ImaginaryI","Implies","Int","Integral","Intersection","InvisibleComma","InvisibleTimes","Iogon","Iopf","Iota","Iscr","Itilde","Iukcy","Iuml","Jcirc","Jcy","Jfr","Jopf","Jscr","Jsercy","Jukcy","KHcy","KJcy","Kappa","Kcedil","Kcy","Kfr","Kopf","Kscr","LJcy","Lacute","Lambda","Lang","Laplacetrf","Larr","Lcaron","Lcedil","Lcy","LeftAngleBracket","LeftArrow","LeftArrowBar","LeftArrowRightArrow","LeftCeiling","LeftDoubleBracket","LeftDownTeeVector","LeftDownVector","LeftDownVectorBar","LeftFloor","LeftRightArrow","LeftRightVector","LeftTee","LeftTeeArrow","LeftTeeVector","LeftTriangle","LeftTriangleBar","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVector","LeftUpVectorBar","LeftVector","LeftVectorBar","Leftarrow","Leftrightarrow","LessEqualGreater","LessFullEqual","LessGreater","LessLess","LessSlantEqual","LessTilde","Lfr","Ll","Lleftarrow","Lmidot","LongLeftArrow","LongLeftRightArrow","LongRightArrow","Longleftarrow","Longleftrightarrow","Longrightarrow","Lopf","LowerLeftArrow","LowerRightArrow","Lscr","Lsh","Lstrok","Lt","Mcy","MediumSpace","Mellintrf","Mfr","MinusPlus","Mopf","Mscr","Mu","NJcy","Nacute","Ncaron","Ncedil","Ncy","NegativeMediumSpace","NegativeThickSpace","NegativeThinSpace","NegativeVeryThinSpace","NestedGreaterGreater","NestedLessLess","NewLine","Nfr","NoBreak","NonBreakingSpace","Nopf","Not","NotCongruent","NotCupCap","NotDoubleVerticalBar","NotElement","NotEqual","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","NotHumpDownHump","NotHumpEqual","NotLeftTriangle","NotLeftTriangleBar","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotReverseElement","NotRightTriangle","NotRightTriangleBar","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","Nscr","Ntilde","Nu","OElig","Oacute","Ocirc","Ocy","Odblac","Ofr","Ograve","Omacr","Omega","Omicron","Oopf","OpenCurlyDoubleQuote","OpenCurlyQuote","Or","Oscr","Oslash","Otilde","Otimes","Ouml","OverBar","OverBrace","OverBracket","OverParenthesis","PartialD","Pcy","Pfr","Phi","Pi","PlusMinus","Poincareplane","Popf","Pr","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","Prime","Product","Proportion","Proportional","Pscr","Psi","QUOT","Qfr","Qopf","Qscr","RBarr","REG","Racute","Rang","Rarr","Rarrtl","Rcaron","Rcedil","Rcy","Re","ReverseElement","ReverseEquilibrium","ReverseUpEquilibrium","Rfr","Rho","RightAngleBracket","RightArrow","RightArrowBar","RightArrowLeftArrow","RightCeiling","RightDoubleBracket","RightDownTeeVector","RightDownVector","RightDownVectorBar","RightFloor","RightTee","RightTeeArrow","RightTeeVector","RightTriangle","RightTriangleBar","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVector","RightUpVectorBar","RightVector","RightVectorBar","Rightarrow","Ropf","RoundImplies","Rrightarrow","Rscr","Rsh","RuleDelayed","SHCHcy","SHcy","SOFTcy","Sacute","Sc","Scaron","Scedil","Scirc","Scy","Sfr","ShortDownArrow","ShortLeftArrow","ShortRightArrow","ShortUpArrow","Sigma","SmallCircle","Sopf","Sqrt","Square","SquareIntersection","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","Sscr","Star","Sub","Subset","SubsetEqual","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","SuchThat","Sum","Sup","Superset","SupersetEqual","Supset","THORN","TRADE","TSHcy","TScy","Tab","Tau","Tcaron","Tcedil","Tcy","Tfr","Therefore","Theta","ThickSpace","ThinSpace","Tilde","TildeEqual","TildeFullEqual","TildeTilde","Topf","TripleDot","Tscr","Tstrok","Uacute","Uarr","Uarrocir","Ubrcy","Ubreve","Ucirc","Ucy","Udblac","Ufr","Ugrave","Umacr","UnderBar","UnderBrace","UnderBracket","UnderParenthesis","Union","UnionPlus","Uogon","Uopf","UpArrow","UpArrowBar","UpArrowDownArrow","UpDownArrow","UpEquilibrium","UpTee","UpTeeArrow","Uparrow","Updownarrow","UpperLeftArrow","UpperRightArrow","Upsi","Upsilon","Uring","Uscr","Utilde","Uuml","VDash","Vbar","Vcy","Vdash","Vdashl","Vee","Verbar","Vert","VerticalBar","VerticalLine","VerticalSeparator","VerticalTilde","VeryThinSpace","Vfr","Vopf","Vscr","Vvdash","Wcirc","Wedge","Wfr","Wopf","Wscr","Xfr","Xi","Xopf","Xscr","YAcy","YIcy","YUcy","Yacute","Ycirc","Ycy","Yfr","Yopf","Yscr","Yuml","ZHcy","Zacute","Zcaron","Zcy","Zdot","ZeroWidthSpace","Zeta","Zfr","Zopf","Zscr","aacute","abreve","ac","acE","acd","acirc","acute","acy","aelig","af","afr","agrave","alefsym","aleph","alpha","amacr","amalg","amp","and","andand","andd","andslope","andv","ang","ange","angle","angmsd","angmsdaa","angmsdab","angmsdac","angmsdad","angmsdae","angmsdaf","angmsdag","angmsdah","angrt","angrtvb","angrtvbd","angsph","angst","angzarr","aogon","aopf","ap","apE","apacir","ape","apid","apos","approx","approxeq","aring","ascr","ast","asymp","asympeq","atilde","auml","awconint","awint","bNot","backcong","backepsilon","backprime","backsim","backsimeq","barvee","barwed","barwedge","bbrk","bbrktbrk","bcong","bcy","bdquo","becaus","because","bemptyv","bepsi","bernou","beta","beth","between","bfr","bigcap","bigcirc","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","bigstar","bigtriangledown","bigtriangleup","biguplus","bigvee","bigwedge","bkarow","blacklozenge","blacksquare","blacktriangle","blacktriangledown","blacktriangleleft","blacktriangleright","blank","blk12","blk14","blk34","block","bne","bnequiv","bnot","bopf","bot","bowtie","boxDL","boxDR","boxDl","boxDr","boxH","boxHD","boxHU","boxHd","boxHu","boxUL","boxUR","boxUl","boxUr","boxV","boxVH","boxVL","boxVR","boxVh","boxVl","boxVr","boxbox","boxdL","boxdR","boxdl","boxdr","boxh","boxhD","boxhU","boxhd","boxhu","boxminus","boxplus","boxtimes","boxuL","boxuR","boxul","boxur","boxv","boxvH","boxvL","boxvR","boxvh","boxvl","boxvr","bprime","breve","brvbar","bscr","bsemi","bsim","bsime","bsol","bsolb","bsolhsub","bull","bullet","bump","bumpE","bumpe","bumpeq","cacute","cap","capand","capbrcup","capcap","capcup","capdot","caps","caret","caron","ccaps","ccaron","ccedil","ccirc","ccups","ccupssm","cdot","cedil","cemptyv","cent","centerdot","cfr","chcy","checkmark","chi","cir","cirE","circ","circeq","circlearrowleft","circlearrowright","circledR","circledS","circledast","circledcirc","circleddash","cire","cirfnint","cirmid","cirscir","clubs","clubsuit","colon","colone","coloneq","comma","commat","comp","compfn","complement","complexes","cong","congdot","conint","copf","coprod","copysr","crarr","cross","cscr","csub","csube","csup","csupe","ctdot","cudarrl","cudarrr","cuepr","cuesc","cularr","cularrp","cup","cupbrcap","cupcap","cupcup","cupdot","cupor","cups","curarr","curarrm","curlyeqprec","curlyeqsucc","curlyvee","curlywedge","curren","curvearrowleft","curvearrowright","cuvee","cuwed","cwconint","cwint","cylcty","dArr","dHar","dagger","daleth","darr","dash","dashv","dbkarow","dblac","dcaron","dcy","ddagger","ddarr","ddotseq","deg","delta","demptyv","dfisht","dfr","dharl","dharr","diam","diamond","diamondsuit","diams","die","digamma","disin","div","divideontimes","divonx","djcy","dlcorn","dlcrop","dollar","dopf","dot","doteq","doteqdot","dotminus","dotplus","dotsquare","doublebarwedge","downarrow","downdownarrows","downharpoonleft","downharpoonright","drbkarow","drcorn","drcrop","dscr","dscy","dsol","dstrok","dtdot","dtri","dtrif","duarr","duhar","dwangle","dzcy","dzigrarr","eDDot","eDot","eacute","easter","ecaron","ecir","ecirc","ecolon","ecy","edot","ee","efDot","efr","eg","egrave","egs","egsdot","elinters","ell","els","elsdot","emacr","emptyset","emptyv","emsp13","emsp14","emsp","eng","ensp","eogon","eopf","epar","eparsl","eplus","epsi","epsilon","epsiv","eqcirc","eqcolon","eqsim","eqslantgtr","eqslantless","equest","equiv","equivDD","eqvparsl","erDot","erarr","escr","esdot","esim","eta","eth","euml","euro","excl","exist","expectation","exponentiale","fallingdotseq","fcy","female","ffilig","fflig","ffllig","ffr","filig","fjlig","fllig","fltns","fnof","fopf","forall","fork","forkv","fpartint","frac12","frac13","frac14","frac15","frac16","frac18","frac23","frac25","frac34","frac35","frac38","frac45","frac56","frac58","frac78","frasl","frown","fscr","gE","gEl","gacute","gamma","gammad","gap","gbreve","gcirc","gcy","gdot","ge","gel","geq","geqq","geqslant","ges","gescc","gesdot","gesdoto","gesdotol","gesl","gesles","gfr","ggg","gimel","gjcy","gl","glE","gla","glj","gnE","gnap","gnapprox","gne","gneq","gneqq","gnsim","gopf","grave","gscr","gsim","gsime","gsiml","gtcc","gtcir","gtdot","gtlPar","gtquest","gtrapprox","gtrarr","gtrdot","gtreqless","gtreqqless","gtrless","gtrsim","gvertneqq","gvnE","hArr","hairsp","half","hamilt","hardcy","harr","harrcir","harrw","hbar","hcirc","hearts","heartsuit","hellip","hercon","hfr","hksearow","hkswarow","hoarr","homtht","hookleftarrow","hookrightarrow","hopf","horbar","hscr","hslash","hstrok","hybull","hyphen","iacute","ic","icirc","icy","iecy","iexcl","iff","ifr","igrave","iiiint","iiint","iinfin","iiota","ijlig","imacr","imagline","imagpart","imath","imof","imped","in","incare","infin","infintie","inodot","int","intcal","integers","intercal","intlarhk","intprod","iocy","iogon","iopf","iota","iprod","iquest","iscr","isin","isinE","isindot","isins","isinsv","isinv","itilde","iukcy","iuml","jcirc","jcy","jfr","jmath","jopf","jscr","jsercy","jukcy","kappa","kappav","kcedil","kcy","kfr","kgreen","khcy","kjcy","kopf","kscr","lAarr","lArr","lAtail","lBarr","lE","lEg","lHar","lacute","laemptyv","lagran","lambda","langd","langle","lap","laquo","larr","larrb","larrbfs","larrfs","larrhk","larrlp","larrpl","larrsim","larrtl","lat","latail","late","lates","lbarr","lbbrk","lbrace","lbrack","lbrke","lbrksld","lbrkslu","lcaron","lcedil","lceil","lcub","lcy","ldca","ldquo","ldquor","ldrdhar","ldrushar","ldsh","le","leftarrow","leftarrowtail","leftharpoondown","leftharpoonup","leftleftarrows","leftrightarrow","leftrightarrows","leftrightharpoons","leftrightsquigarrow","leftthreetimes","leg","leq","leqq","leqslant","les","lescc","lesdot","lesdoto","lesdotor","lesg","lesges","lessapprox","lessdot","lesseqgtr","lesseqqgtr","lessgtr","lesssim","lfisht","lfloor","lfr","lg","lgE","lhard","lharu","lharul","lhblk","ljcy","ll","llarr","llcorner","llhard","lltri","lmidot","lmoust","lmoustache","lnE","lnap","lnapprox","lne","lneq","lneqq","lnsim","loang","loarr","lobrk","longleftarrow","longleftrightarrow","longmapsto","longrightarrow","looparrowleft","looparrowright","lopar","lopf","loplus","lotimes","lowast","lowbar","loz","lozenge","lozf","lpar","lparlt","lrarr","lrcorner","lrhar","lrhard","lrm","lrtri","lsaquo","lscr","lsh","lsim","lsime","lsimg","lsqb","lsquo","lsquor","lstrok","ltcc","ltcir","ltdot","lthree","ltimes","ltlarr","ltquest","ltrPar","ltri","ltrie","ltrif","lurdshar","luruhar","lvertneqq","lvnE","mDDot","macr","male","malt","maltese","mapsto","mapstodown","mapstoleft","mapstoup","mcomma","mcy","mdash","measuredangle","mfr","mho","micro","midast","midcir","middot","minus","minusb","minusd","minusdu","mlcp","mldr","mnplus","models","mopf","mp","mscr","mstpos","mu","multimap","mumap","nGg","nGt","nGtv","nLeftarrow","nLeftrightarrow","nLl","nLt","nLtv","nRightarrow","nVDash","nVdash","nabla","nacute","nang","nap","napE","napid","napos","napprox","natur","natural","naturals","nbsp","nbump","nbumpe","ncap","ncaron","ncedil","ncong","ncongdot","ncup","ncy","ndash","ne","neArr","nearhk","nearr","nearrow","nedot","nequiv","nesear","nesim","nexist","nexists","nfr","ngE","nge","ngeq","ngeqq","ngeqslant","nges","ngsim","ngt","ngtr","nhArr","nharr","nhpar","ni","nis","nisd","niv","njcy","nlArr","nlE","nlarr","nldr","nle","nleftarrow","nleftrightarrow","nleq","nleqq","nleqslant","nles","nless","nlsim","nlt","nltri","nltrie","nmid","nopf","not","notin","notinE","notindot","notinva","notinvb","notinvc","notni","notniva","notnivb","notnivc","npar","nparallel","nparsl","npart","npolint","npr","nprcue","npre","nprec","npreceq","nrArr","nrarr","nrarrc","nrarrw","nrightarrow","nrtri","nrtrie","nsc","nsccue","nsce","nscr","nshortmid","nshortparallel","nsim","nsime","nsimeq","nsmid","nspar","nsqsube","nsqsupe","nsub","nsubE","nsube","nsubset","nsubseteq","nsubseteqq","nsucc","nsucceq","nsup","nsupE","nsupe","nsupset","nsupseteq","nsupseteqq","ntgl","ntilde","ntlg","ntriangleleft","ntrianglelefteq","ntriangleright","ntrianglerighteq","nu","num","numero","numsp","nvDash","nvHarr","nvap","nvdash","nvge","nvgt","nvinfin","nvlArr","nvle","nvlt","nvltrie","nvrArr","nvrtrie","nvsim","nwArr","nwarhk","nwarr","nwarrow","nwnear","oS","oacute","oast","ocir","ocirc","ocy","odash","odblac","odiv","odot","odsold","oelig","ofcir","ofr","ogon","ograve","ogt","ohbar","ohm","oint","olarr","olcir","olcross","oline","olt","omacr","omega","omicron","omid","ominus","oopf","opar","operp","oplus","or","orarr","ord","orderof","ordf","ordm","origof","oror","orslope","orv","oscr","oslash","osol","otilde","otimes","otimesas","ouml","ovbar","par","para","parallel","parsim","parsl","pcy","percnt","permil","perp","pertenk","pfr","phi","phiv","phmmat","phone","pi","pitchfork","piv","planck","planckh","plankv","plus","plusacir","plusb","pluscir","plusdo","plusdu","pluse","plusmn","plussim","plustwo","pm","pointint","popf","pound","pr","prE","prap","prcue","pre","prec","precapprox","preccurlyeq","preceq","precnapprox","precneqq","precnsim","precsim","prime","primes","prnE","prnap","prnsim","prod","profalar","profline","profsurf","propto","prsim","prurel","pscr","psi","puncsp","qfr","qint","qopf","qprime","qscr","quaternions","quatint","quest","questeq","quot","rAarr","rArr","rAtail","rBarr","rHar","race","racute","radic","raemptyv","rang","rangd","rangle","raquo","rarr","rarrap","rarrb","rarrbfs","rarrc","rarrfs","rarrhk","rarrlp","rarrpl","rarrsim","rarrtl","rarrw","ratail","ratio","rationals","rbarr","rbbrk","rbrace","rbrack","rbrke","rbrksld","rbrkslu","rcaron","rcedil","rceil","rcub","rcy","rdca","rdldhar","rdquo","rdquor","rdsh","real","realine","realpart","reals","rect","reg","rfisht","rfloor","rfr","rhard","rharu","rharul","rho","rhov","rightarrow","rightarrowtail","rightharpoondown","rightharpoonup","rightleftarrows","rightleftharpoons","rightrightarrows","rightsquigarrow","rightthreetimes","ring","risingdotseq","rlarr","rlhar","rlm","rmoust","rmoustache","rnmid","roang","roarr","robrk","ropar","ropf","roplus","rotimes","rpar","rpargt","rppolint","rrarr","rsaquo","rscr","rsh","rsqb","rsquo","rsquor","rthree","rtimes","rtri","rtrie","rtrif","rtriltri","ruluhar","rx","sacute","sbquo","sc","scE","scap","scaron","sccue","sce","scedil","scirc","scnE","scnap","scnsim","scpolint","scsim","scy","sdot","sdotb","sdote","seArr","searhk","searr","searrow","sect","semi","seswar","setminus","setmn","sext","sfr","sfrown","sharp","shchcy","shcy","shortmid","shortparallel","shy","sigma","sigmaf","sigmav","sim","simdot","sime","simeq","simg","simgE","siml","simlE","simne","simplus","simrarr","slarr","smallsetminus","smashp","smeparsl","smid","smile","smt","smte","smtes","softcy","sol","solb","solbar","sopf","spades","spadesuit","spar","sqcap","sqcaps","sqcup","sqcups","sqsub","sqsube","sqsubset","sqsubseteq","sqsup","sqsupe","sqsupset","sqsupseteq","squ","square","squarf","squf","srarr","sscr","ssetmn","ssmile","sstarf","star","starf","straightepsilon","straightphi","strns","sub","subE","subdot","sube","subedot","submult","subnE","subne","subplus","subrarr","subset","subseteq","subseteqq","subsetneq","subsetneqq","subsim","subsub","subsup","succ","succapprox","succcurlyeq","succeq","succnapprox","succneqq","succnsim","succsim","sung","sup1","sup2","sup3","sup","supE","supdot","supdsub","supe","supedot","suphsol","suphsub","suplarr","supmult","supnE","supne","supplus","supset","supseteq","supseteqq","supsetneq","supsetneqq","supsim","supsub","supsup","swArr","swarhk","swarr","swarrow","swnwar","szlig","tau","tbrk","tcaron","tcedil","tcy","tdot","telrec","tfr","there4","therefore","theta","thetasym","thetav","thickapprox","thicksim","thinsp","thkap","thksim","thorn","tilde","timesb","timesbar","timesd","tint","toea","topbot","topcir","topf","topfork","tosa","tprime","trade","triangle","triangledown","triangleleft","trianglelefteq","triangleq","triangleright","trianglerighteq","tridot","trie","triminus","triplus","trisb","tritime","trpezium","tscr","tscy","tshcy","tstrok","twixt","twoheadleftarrow","twoheadrightarrow","uArr","uHar","uacute","uarr","ubrcy","ubreve","ucirc","ucy","udarr","udblac","udhar","ufisht","ufr","ugrave","uharl","uharr","uhblk","ulcorn","ulcorner","ulcrop","ultri","umacr","uml","uogon","uopf","uparrow","updownarrow","upharpoonleft","upharpoonright","uplus","upsi","upsih","upsilon","upuparrows","urcorn","urcorner","urcrop","uring","urtri","uscr","utdot","utilde","utri","utrif","uuarr","uuml","uwangle","vArr","vBar","vBarv","vDash","vangrt","varepsilon","varkappa","varnothing","varphi","varpi","varpropto","varr","varrho","varsigma","varsubsetneq","varsubsetneqq","varsupsetneq","varsupsetneqq","vartheta","vartriangleleft","vartriangleright","vcy","vdash","vee","veebar","veeeq","vellip","verbar","vert","vfr","vltri","vnsub","vnsup","vopf","vprop","vrtri","vscr","vsubnE","vsubne","vsupnE","vsupne","vzigzag","wcirc","wedbar","wedge","wedgeq","weierp","wfr","wopf","wp","wr","wreath","wscr","xcap","xcirc","xcup","xdtri","xfr","xhArr","xharr","xi","xlArr","xlarr","xmap","xnis","xodot","xopf","xoplus","xotime","xrArr","xrarr","xscr","xsqcup","xuplus","xutri","xvee","xwedge","yacute","yacy","ycirc","ycy","yen","yfr","yicy","yopf","yscr","yucy","yuml","zacute","zcaron","zcy","zdot","zeetrf","zeta","zfr","zhcy","zigrarr","zopf","zscr","zwj","zwnj","decodeNamedCharacterReference","characterReference","numeric","characterEscape","lineEnding","labelEnd","labelStart","_balanced","_inactive","labelEndNok","resourceConstruct","labelEndOk","referenceFullConstruct","referenceNotFull","referenceCollapsedConstruct","media","insideSpan","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFullAfter","referenceFullMissing","referenceCollapsedOpen","labelStartImage","classifyCharacter","attention","attentionMarkers","_open","_close","openingSequence","closingSequence","nextEvents","movePoint","autolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","htmlText","instruction","tagOpen","declaration","commentEnd","comment","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelStartLink","hardBreakEscape","tailExitIndex","headEnterIndex","extensions","combineExtensions","decodeNumericCharacterReference","characterEscapeOrReference","decode","$0","$1","$2","hex","fromMarkdown","canContainEols","opener","link","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","blockQuote","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeText","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreak","hardBreakTrailing","htmlFlowData","htmlTextData","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","thematicBreak","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","resource","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","configure","mdastExtensions","tokenStack","resume","listStack","prepareList","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","_spread","errorHandler","onExitError","referenceType","decodeString","fragment","ordered","compiler","postprocess","atCarriageReturn","endPosition","preprocess","remarkParse","normalizeUri","encodeURIComponent","castFactory","typeFactory","tests","checks","anyFactory","propsFactory","CONTINUE","EXIT","visitParents","visitor","parents","subresult","grandparents","toResult","pointStart","pointEnd","clean","footnoteReference","safeId","footnoteOrder","counter","footnoteCounts","reuseCounter","clobberPrefix","dataFootnoteRef","ariaDescribedBy","patch","applyData","revert","contents","listItemLoose","trimLines","trimLine","codePointAt","handlers","blockquote","break","delete","footnote","footnoteById","no","dangerous","imageReference","inlineCode","linkReference","results","loose","listLoose","child","table","firstRow","tableContent","tableCell","tableRow","siblings","cellIndex","cell","alignValue","toml","ignore","yaml","footnoteDefinition","createState","allowDangerousHtml","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","footnoteBackLabel","unknownHandler","passThrough","augment","hName","hProperties","hChildren","defaultUnknownHandler","nodes","toHast","foot","referenceIndex","backReferences","backReference","dataFootnoteBackref","ariaLabel","tailTail","dataFootnotes","footer","bridge","mutate","Schema","normal","space","definitions","Info","attribute","boolean","booleanish","overloadedBoolean","commaSeparated","spaceSeparated","commaOrSpaceSeparated","mustUseProperty","powers","increment","mask","mark","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xml","xmlLang","xmlBase","xmlSpace","caseSensitiveTransform","caseInsensitiveTransform","xmlnsxlink","xmlnsXLink","aria","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","acceptcharset","classname","htmlfor","httpequiv","acceptCharset","accessKey","allow","allowPaymentRequest","allowUserMedia","async","autoComplete","autoPlay","blocking","capture","charSet","cite","colSpan","controlsList","coords","crossOrigin","decoding","dirName","download","draggable","encType","enterKeyHint","fetchPriority","form","formAction","formEncType","formMethod","formNoValidate","formTarget","hidden","hrefLang","httpEquiv","imageSizes","imageSrcSet","inert","inputMode","integrity","itemProp","itemRef","itemScope","language","loop","manifest","minLength","multiple","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onCancel","onCanPlay","onCanPlayThrough","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onFormData","onHashChange","onInvalid","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPause","onPlay","onPlaying","onPopState","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","optimum","playsInline","popover","popoverTarget","popoverTargetAction","poster","referrerPolicy","reversed","rowSpan","sandbox","scope","scoped","seamless","shadowRootClonable","shadowRootDelegatesFocus","shadowRootMode","sizes","slot","span","srcDoc","srcLang","srcSet","translate","typeMustMatch","useMap","writingSuggestions","aLink","archive","axis","background","bgColor","border","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","codeBase","codeType","declare","face","frame","hSpace","leftMargin","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","profile","prompt","rev","rightMargin","scheme","standby","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","autoSave","disablePictureInPicture","disableRemotePlayback","security","unselectable","svg","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","transformOrigin","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","defaultAction","descent","diffuseConstant","dur","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","filterRes","filterUnits","focusable","focusHighlight","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","observer","opacity","orient","orientation","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","restart","rotate","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","z","zoomAndPan","rehypeFilter","allowedElements","disallowedElements","allowElement","parent_","unwrapDisallowed","whitespace","valid","kebab","camelcase","hastToReact","uriTransformer","tableElements","childrenToReact","childIndex","toReact","skipHtml","transformLinkUri","parentSchema","schema","addProperty","listDepth","components","basic","Fragment","isValidElementType","linkTarget","inline","transformImageUri","getInputElement","getElementsBeforeCount","isHeader","sourcePos","rawSourcePos","sourcePosition","includeElementIndex","siblingCount","Type","dashes","padRight","padLeft","styleReplacer","parseStyle","deprecated","renderers","astPlugins","allowNode","allowedTypes","disallowedTypes","includeNodeIndex","ReactMarkdown","deprecation","remarkPlugins","remarkRehypeOptions","rehypePlugins","hastNode","MessageBar","imageSrc","renderedData","backgroundColor","newUserMessage","_this$props$messages","submitMessages","aiChatSubscription","userMessage","newMessages","_this$props2$messages","aiInstructions","compiledAiInstructions","_step","_iterator","_createForOfIteratorHelper","_currentActivityUserS","fullMatch","stateKey","renderedMessages","introMessage","chatId","onMessageReceived","allMessages","receiveMessage","chat_id","connected","chat","_this$props3$messages","userMessageCount","submitNewUserMessage","userDisplayName","assistantDisplayName","assistantDisplayImage","userDisplayImage","_this$props$messages2","_this$props7$messages","placeholderText","disableChat","disableSubmitChat","displayNameFromAiRole","displayImageSrcFromAiRole","Markdown","onEnterPress","restartChat","CategorySummary","_useState2","useState","isExpanded","setIsExpanded","handleMoveCategory","windowSize","setWindowSize","useEffect","handleResize","innerWidth","useWindowSize","favorited_by_user","category_user_id","positionCallback","randomizerButton","itemRefreshCallback","favoriteButtonClass","favoriteButton","expandButton","documents","handleSeeAllClicked","moveUpButtonClass","top_of_list","moveUpButton","moveDownButtonClass","bottom_of_list","moveDownButton","canAddPositionControls","categoryControlsContainer","documentsToRender","STATE_ACTION_NAMES","_R$partition2","stateActions","otherActions","stateActionsGroupByTarget","stateAction","actionsForTarget","unmergedStates","addDocumentUserState","_typeof","toPropertyKey","toPrimitive","ownKeys","_objectSpread2","getOwnPropertyDescriptors","formatProdErrorMessage","$$observable","observable","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","reducer","preloadedState","enhancer","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observeState","documentUserStatesReducer","seedDocumentUserState","createDocumentUserState","readDocumentUserState","updateDocumentUserState","destroyDocumentUserState","setEditFieldsDocumentUserState","resetEditFieldsDocumentUserState","setLocalFieldsDocumentUserState","resetLocalFieldsDocumentUserState","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","activityUserStates","documentSetDocumentStates","documentUserStates","createThunkMiddleware","extraArgument","thunk","withExtraArgument","middlewares","createStore","_dispatch","middlewareAPI","applyMiddleware","promise","isPromise","fails","uncurryThis","webpackPolyfill","boundClass","Reflect","boundMethod","definingProperty","boundFn","normalizeHeaderName","transitionalDefaults","toFormData","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","adapter","transitional","XMLHttpRequest","transformRequest","isObjectPayload","_FormData","rawValue","encoder","stringifySafely","transformResponse","silentJSONParsing","forcedJSONParsing","strictJSONParsing","responseType","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","css","_camelizeStyle","_getComputedStyle2","getPropertyValue","_hyphenateStyle","_isTransform","_removeStyle","_properties","cssText","animationEnd","animationDelay","animationTiming","animationDuration","animationName","transitionEnd","transitionDuration","transitionDelay","transitionTiming","transitionProperty","_inDOM","_getTransitionPropert","vendorMap","O","Moz","Webkit","vendors","vendor","getTransitionProperties","timing","_spyOnComponent","_autoFocus","_mountManager","mountManager","_timeoutManager","timeoutManager","_mixin","componentInstance","mounted","processed","moveBack","moveForward","openCombobox","openDropdown","filterPlaceholder","emptyList","emptyFilter","createOption","searchTerm","tagsLabel","removeLabel","noneSelected","selectedItems","labels","decrement","widgetEnabled","isInDisabledFieldset","_matches","inst","interactionDecorator","disabledOnly","topLevel","eval","reqctx","filename","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","mixins","KNOWN_STATICS","caller","callee","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","toStr","gOPD","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","copyIsArray","isCallable","moment","symbolMap","numberMap","pluralForm","plurals","weekdaysParseExact","suffixes","forms","relativeTimeWithPlural","standalone","lastDigit","last2Digits","monthsParseExact","relativeTimeWithMutation","mutation","specialMutationForYears","lastNumber","softMutation","mutationTable","monthsStrictRegex","monthsShortStrictRegex","fullWeekdaysParse","shortWeekdaysParse","minWeekdaysParse","longMonthsParse","shortMonthsParse","processRelativeTime","lll","llll","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eraYearOrdinalRegex","isUpper","ezafeNumSuffix","processFutureTime","eifelerRegelAppliesToNumber","processPastTime","translateSeconds","translateSingular","special","relativeTimeWithSingular","relativeSeconds","translator","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","numbersNouns","translateFuture","translatePast","numberNoun","numberAsNoun","hundred","ten","weekdaysCaseReplace","nominative","accusative","genitive","processHoursFunction","CatalogList","i18n","Label","_react2","_propTypes2","labelValue","formatLabel","labelContainer","objectOf","documentSetReportSettings","documentReportSettings","rowData","submitted","WrappedCatalogReviewModal","CatalogReport","chooseCaseReport","collapsedDocumentIds","CategoryList","genListCallbacks","CategoryDocumentCreateSelectList","selectedDocumentIds","newSelection","update_url","onSubmitSuccess","documentSelectionView","handleDocumentSelectionChange","category_id","handleSubmitButton","CategoryDocumentDeleteSelectList","CategoryDocumentList","category_document","contributors","designation","cached_assignment_count","cached_view_count","encode","paramsSerializer","serializedParams","hashmarkIndex","clarifyTimeoutError","formData","convertValue","Blob","build","parentKey","fullKey","append","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","parseProtocol","onCanceled","requestData","requestHeaders","cancelToken","signal","auth","username","password","Authorization","btoa","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","statusText","onreadystatechange","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","read","setRequestHeader","onDownloadProgress","upload","abort","aborted","ERR_BAD_REQUEST","isAbsoluteURL","combineURLs","requestedURL","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","CaptureList","institution_id","contributor_id","documentContributors","can_open_documents","root_url","author","editor","conflict","DocumentSetEditDocumentsAccessTable","dsdrDocumentSchedule","dsdrItemSchedules","setVisibilityProcessing","setVisibilityModalOpen","showingCaseVisibilityControls","documentSetDocumentRelations","document_set_document_relation_ids","selectedDocumentSetDocumentRelationIds","visibilityUrl","onSetVisibilitySubmitSuccess","show_after_date","selectedDSDRs","caseSwitchMode","dsdr","switchMode","itemKeys","itemSwitchModes","effectiveShowAfter","newDsdrDocumentSchedule","caseStateText","selectedCount","switchStateModes","defaultSwitchStates","handleToggleSetVisibilityModalOpen","defaultCaseSwitchMode","showMore","dsdrDocumentScheduleComputed","caseVisibilityControls","dsdrDocumentScheduleCorrection","dateToUse","scheduleItemInfos","shortTitle","scheduleItems","itemInfo","stateText","itemDefaults","defaultSwitchMode","newSwitchMode","caseIDs","showAllCaseIDSummary","modalCaseIDSummary","closeModelFunction","handleSetVisibilitySubmit","showSearch","itemSchedule","itemVisibilityFor","ownerDocument","Widget","autofilling","_this$props$isRtl","_on","_off","_listen","listen","currentTarget","detachEvent","compareDocumentPosition","fallback","selector","maybeID","maybeClass","nameOnly","simpleSelectorRE","getElementsByClassName","getElementsByTagName","querySelectorAll","_camelize","msPattern","_ownerDocument","docElem","box","_contains","pageYOffset","clientTop","pageXOffset","scrollLeft","clientLeft","offsetWidth","offsetHeight","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","PropTypes","Transition","initialStatus","parentGroup","transitionGroup","appear","isMounting","appearStatus","unmountOnExit","mountOnEnter","nextCallback","getChildContext","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","appearing","timeouts","enterTimeout","onEnter","safeSetState","onTransitionEnd","onEntered","onExit","onExiting","onExited","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","childProps","Children","only","cloneElement","validate","checkType","propName","propFullName","componentNameSafe","propFullNameSafe","chainedCheckType","manager","isMounted","timers","chevronLeft","chevronRight","caretDown","caretUp","Icon","_didHandle","_reactComponentManagers","isWidgetDefaultPrevented","defaultGetDataState","getCommonListProps","accessors","optionComponent","groupComponent","dataState","textAccessor","valueAccessor","nextListData","prevList","getDataState","valueField","textField","getStateGetterFromList","sequentialData","getIsDisabled","moveNext","_Filter","presets","_dataHelpers","dataText","EMPTY_VALUE","prevEnabled","nextIdx","nextEnabled","returnFalse","lastState","groups","sortedKeys","grp","listComponent","disabledProp","dataValue","dataIndexOf","valueMatcher","dataItem","isValueEqual","DocumentSetEditDocumentsActivitiesTable","customSkill","setDeleteProcessing","customSkillModalVisible","activity_schedules","schedule","activity_id","hasSchedule","_event$target","updateActivities","deleteActivity","flex","handleCustomSkillClick","hasNewValues","newValues","currentValues","scheduleCorrection","handleCustomSkillDelete","handleCustomSkillSubmit","handleCustomSkillChange","DocumentSetList","current_role_definition","shows_ownership_checkbox","user_id","activitiesRender","categoriesRender","documentSetActivityReportSettings","WrappedActivityReviewModal","DocumentSetReport","DocumentSetDocumentRelationCreateSelectList","DocumentSetDocumentRelationDeleteSelectList","DocumentSetDocumentRelationList","DocumentSetUserPermissionCreateSelectList","selectedGroupRoleDefinitionUserIds","groupRoleDefinitionUserIds","groupRoleSelectionView","handleGroupRoleSelectionChange","role_definition","DocumentSetUserPermissionSelectList","selectedDocumentSetUserPermissionIds","destroyProcessing","documentSetUserPermissionIds","destroy_url","onDestroySelectedDocumentSetUserPermissionsSuccess","handleDocumentSetUserPermissionSelectionChange","handleDestroySelectedDocumentSetUserPermissions","documentSetUserPermission","checkboxClasses","_documentUsers$listDa","documentUsers","GenBreadcrumbs","breadcrumbs","breadcrumb","GenPanelGroup","GroupExpirationDatePicker","_groups$listData","isAdmin","groupsPath","GroupDocumentCreateBatchSelectList","selectedGroupDocumentIds","selectedGroupIds","groupDocumentIds","groupIds","handleGroupSelectionChange","handleGroupDocumentSelectionChange","group_document","GroupDocumentDeleteBatchSelectList","selectedGroupId","groupId","groupDocumentSelectList","groupOptions","GroupRoleDefinitionUserTable","setExpirationProcessing","setExpirationModalOpen","setExpirationOption","setExpirationDay","setExpirationMonth","setExpirationYear","onDestroySelectedGroupRoleDefinitionsSuccess","intDate","group_role_definition_user_ids","expiration_mode","expiration_url","onSetExpirationSubmitSuccess","invalidDateMessage","validDate","handleDestroySelectedGroupRoleDefinitions","handleToggleSetExpirationModalOpen","role_filter_options","role_definition_names","role_definition_name","handleSetExpirationOptionChange","handleSetExpirationMonth","handleSetExpirationDay","handleSetExpirationYear","handleSetExpirationSubmit","handleGroupRoleDefinitionUserSelectionChange","subscription_end","subscription_start","subscription_end_date","institutions","institution_contributors","institution","extraSortOptions","_regeneratorRuntime","asyncIterator","define","Generator","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_invoke","AsyncIterator","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","setPrototypeOf","awrap","rval","handle","finish","delegateYield","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_toPrimitive","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","_setPrototypeOf","INTIALIZING","NO_CAMERA","LIVE_CAMERA","RECORDING","PLAYING","MediaAssetNewMediaRecorder","videoRecorderStatus","startStreamByDeviceIds","_getDevices","_callee","devices","_context","mediaDevices","enumerateDevices","audioInputDevices","device","videoInputDevices","t0","_startStreamByDeviceIds","_callee2","audioDeviceId","videoDeviceId","constraints","_context2","getTracks","track","deviceId","exact","getUserMedia","getDevices","handleStream","_x","_x2","allTracks","getSettings","videoTrack","facingMode","selectedAudioInputDeviceId","selectedVideoInputDeviceId","srcObject","autoplay","nextDeviceIndex","nextDevice","recordedFile","recordedBlobs","mimeType","MediaRecorder","isTypeSupported","mediaRecorder","onstop","onRecordingStop","ondataavailable","handleMediaRecorderData","blob","createObjectURL","onended","stopPlayRecording","play","pause","currentTime","_upload","_callee3","randomUploadFileName","uploadResponse","_context3","objectName","File","put","t1","loaded","fileURL","isPlaying","discardRecording","playRecording","isRecording","shouldShowCameraToggle","stopRecording","startRecording","toggleCamera","mirror","document_title","MediaAssetNewWebkit","TestComponentPreview","cycleButtonValue","toggleButtonValue","toggleBarValue","onButtonClick","onCycleButtonClick","onToggleButtonClick","onToggleBarClick","_users$listData","_versions$listData","defaultKey","hint","prim","useUncontrolledProp","propValue","wasPropRef","_useState","stateValue","isProp","wasProp","useUncontrolled","fieldName","_extends2","propsValue","handlerName","_useUncontrolledProp","_jsxFileName","controlledValues","methods","canAcceptRef","controlledProps","PROPS_TO_OMIT","UncontrolledComponent","_notifying","unmounted","attachRef","inner","innerRef","_this$inner","__source","__self","deferControlTo","newComponent","additions","nextMethods","document_usc_url","oProps","activityID","documentID","versionID","_oProps$currentDocume","currentDocumentActivities","_oProps$currentDocume2","currentDocumentSetDocumentActivities","activityDocument","versionEditData","versionLocalData","activityUserStatesByActivityId","documentSetDependentProps","combinedDocumentActivities","documentSetDocumentActivities","activityId","longActivityId","dispatchFunctions","setEditJSON","activityIdSuffix","setUndoRedoQueues","DocContainer","syncCounter","uscData","_this$props$currentDo","_this$props$currentDo2","resetUndoRedo","getUSCS","getUSCSTimer","handleDelete","handleEnter","handleStyleButton","clearInterval","newDocSelection","newJSON","_versionLocalData$und","_versionLocalData$red","_redoQueue$","newCurrentVersion","newUndo","newRedo","_versionLocalData$und2","_versionLocalData$red2","_undoQueue$","node_uid","postDocumentUserLogEvents","_this$props8","usc","sync_counter","uscs","_this$props9","kvObject","syncUSCS","clonedVersion","isDelete","isPastACharacter","_this$generateEditSta","generateEditState","isFNBackspace","isAlt","isMeta","numCharsToDelete","countIndiciesUntilNextSpaceAndThenAChar","numCharsToBackspace","returnJSON","siblingBefore","newSelectionIndex","listItemBefore","_this$generateEditSta2","inlineText","textBefore","textAfter","_this$props10","addToUndo","editingRange","currentlyEditingInlineJSON","modifyFunction","_this$props11","_this$props11$current","_this$props11$current2","_this$props11$current3","_this$props11$current4","progressBar","caseReview","_displayTraitsBasedOn","_ref6","_ref7","_ref8","_ref9","mergeInUSCS","groupedDocumentSetDocumentActivities","groupOfDocumentSetDocumentActivities","activitiesPath","activitiesToInsert","firstActivity","firstLevelContent","mainVideoPath","placementNodePath","lengthOfContent","addActivitiesToDocument","firstVideo","firstNode","video_played","firstNodeAction","reduceResult","accum","currentIndex","newJsonContent","shouldHideNext","completed_section","onClickActions","nextNodeAction","activityScores","gradePercentage","completed_document","newContent","lastSectionIndex","progress","progressSections","completedSections","completedActivities","allPossibleCount","ConnectedDocContainer","canPossiblyAccess","lookupInDefinition","temp_definition","DocumentList","isWithGroupHeader","current_user","document_mdata_definition","groupHeader","gender","age_group","organ_system","clinical_location","secondary_location","apn_area_of_study","coaemsp_pathology","pance_medical_content_categories","specialty","reeldx_libraries","_inputRange","_inputRange2","_arrayWithHoles","_arr","_n","_e","_s","_iterableToArrayLimit","_nonIterableRest","enumerableOnly","symbols","sym","ActionType","Pending","Fulfilled","Rejected","defaultTypes","PROMISE_TYPE_SUFFIXES","promiseTypeSuffixes","PROMISE_TYPE_DELIMITER","promiseTypeDelimiter","PAYLOAD","TYPE","META","_PROMISE_TYPE_SUFFIXE","getAction","newPayload","isRejected","resolvedAction","rejectedAction","createPromise","StyleToObject","declarations","hasIterator","DESCRIPTORS","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","$TypeError","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","CONFIGURABLE","WRITABLE","P","Attributes","userAgent","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","isKeyable","IS_PURE","defineGlobalProperty","SHARED","copyright","license","$String","IndexedObject","requireObjectCoercible","stringSlice","webpackContext","req","webpackContextResolve","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","secret","getShim","ReactPropTypes","bigint","checkPropTypes","q","B","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","C","refs","F","G","H","isPureReactComponent","I","J","K","$$typeof","_owner","N","A","S","T","_status","_result","U","V","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","X","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","act","_currentValue","_currentValue2","_threadCount","_defaultValue","_globalName","createFactory","createRef","isValidElement","_payload","_init","startTransition","unstable_act","useCallback","useContext","useDebugValue","useDeferredValue","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useSyncExternalStore","useTransition","_createClass","Constructor","protoProps","staticProps","_autobindDecorator2","valueTransformer","_defaultClassNames2","_label2","_rangePropType2","_valuePropType2","_slider2","_track2","_utils","_keyCodes","instance","startValue","trackNode","isSliderDragging","lastKeyMoved","allowSameValues","draggableTrack","onChangeStart","removeDocumentMouseUpListener","removeDocumentTouchEndListener","disabledInputRange","inputRange","getClientRect","getValueFromProps","isMultiValue","positions","getPositionsFromValues","getTrackClientRect","distanceTo","isWithinRange","hasStepDifference","updatePositions","getValueFromPosition","transformedValues","getStepValueFromValue","updateValues","updateValue","handleMouseUp","handleTouchEnd","getPositionFromEvent","requestAnimationFrame","updatePosition","prevEvent","_props","stepValue","prevPosition","prevValue","LEFT_ARROW","DOWN_ARROW","decrementValue","RIGHT_ARROW","UP_ARROW","incrementValue","_props2","_props2$value","getKeyByPosition","isDefined","handleInteractionStart","handleInteractionEnd","addDocumentMouseUpListener","addDocumentTouchEndListener","percentages","getPercentagesFromValues","getKeys","percentage","_props3","onSliderDrag","handleSliderDrag","onSliderKeyDown","handleSliderKeyDown","captialize","componentClassName","getComponentClassName","handleKeyUp","handleMouseDown","onTouchStart","handleTouchStart","onTrackDrag","handleTrackDrag","onTrackMouseDown","handleTrackMouseDown","renderSliders","renderHiddenInputs","getPercentageFromPosition","clientRect","sizePerc","getPercentageFromValue","getPositionFromValue","clientX","touches","valuePerStep","pointA","pointB","xDiff","yDiff","sqrt","numA","numB","activeTrack","maxLabel","minLabel","slider","sliderContainer","valueLabel","Slider","removeDocumentMouseMoveListener","removeDocumentTouchMoveListener","handleMouseMove","handleTouchMove","addDocumentMouseMoveListener","addDocumentTouchMoveListener","getStyle","Track","trackDragEvent","activeTrackStyle","getActiveTrackStyle","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isPortal","isProfiler","isStrictMode","isSuspense","ca","da","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeNamespace","propertyName","sanitizeURL","removeEmptyString","ra","sa","ta","pa","qa","oa","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","Pa","Qa","Ra","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","cb","db","eb","fb","defaultSelected","gb","hb","ib","jb","kb","lb","mb","nb","namespaceURI","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","lineHeight","orphans","tabSize","widows","zIndex","zoom","strokeDasharray","strokeDashoffset","strokeMiterlimit","qb","rb","sb","tb","menuitem","area","br","col","embed","hr","img","keygen","param","wbr","ub","vb","wb","xb","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","LN2","rc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ed","fd","gd","hd","Uc","jd","kd","ld","md","nd","od","charCode","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","isPropagationStopped","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","detail","vd","Ad","screenX","screenY","clientY","pageX","pageY","getModifierState","zd","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","elapsedTime","pseudoElement","Id","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","fe","he","ie","tel","me","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","Me","HTMLIFrameElement","contentWindow","Ne","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","anchorNode","anchorOffset","focusNode","focusOffset","Pe","Qe","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","of","pf","qf","rf","sf","passive","tf","uf","vf","wf","na","xa","$a","ba","je","ke","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","queueMicrotask","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","cg","__reactInternalMemoizedMergedChildContext","dg","fg","hg","jg","kg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","memoizedProps","Hg","Ig","Jg","Kg","Lg","_stringRef","Mg","Ng","Og","Pg","Qg","Rg","implementation","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","childLanes","ch","firstContext","lanes","dh","eh","memoizedValue","fh","gh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","lh","mh","eventTime","lane","nh","oh","ph","qh","rh","sh","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","Uh","Vh","Wh","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","di","lastEffect","stores","ei","fi","gi","hi","destroy","deps","ji","ki","li","mi","oi","qi","ri","si","ti","ui","vi","wi","yi","zi","Ai","Bi","readContext","useMutableSource","unstable_isNewReconciler","identifierPrefix","Ci","Di","Ei","_reactInternals","Fi","Gi","Hi","Ii","Ji","digest","Ki","Li","Mi","Ni","Oi","Qi","componentDidCatch","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","Yi","Zi","$i","aj","bj","cj","dj","baseLanes","cachePool","transitions","ej","fj","gj","hj","ij","jj","kj","pendingContext","lj","zj","Aj","Bj","Cj","mj","nj","oj","pj","qj","sj","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","tailMode","xj","Dj","Ej","Fj","wasMultiple","suppressHydrationWarning","onclick","createElementNS","createTextNode","Gj","Hj","Ij","Jj","Kj","WeakSet","Lj","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","insertBefore","_reactRootContainer","Wj","Xj","Yj","Zj","onCommitFiberUnmount","ak","bk","ck","dk","ek","isHidden","fk","gk","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","Vk","lk","mk","nk","Y","Z","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","pendingChildren","al","mutableSourceEagerHydrationData","bl","pendingSuspenseBoundaries","dl","fl","hl","il","yj","Zk","kl","reportError","_internalRoot","ml","nl","ol","pl","rl","ql","unmount","unstable_scheduleHydration","sl","usingClientEntryPoint","Events","tl","findFiberByHostInstance","bundleType","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","vl","supportsFiber","inject","createPortal","cl","createRoot","unstable_strictMode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","sortIndex","performance","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","script","task","Axios","mergeConfig","createInstance","defaultConfig","instanceConfig","CancelToken","isCancel","Cancel","promises","isAxiosError","InterceptorManager","dispatchRequest","validator","validators","interceptors","configOrUrl","assertOptions","requestInterceptorChain","synchronousRequestInterceptors","runWhen","synchronous","fulfilled","rejected","responseInterceptorChain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","eject","transformData","throwIfCancellationRequested","throwIfRequested","normalizedName","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","encodingOrOffset","fromArrayLike","fromArrayBuffer","isEncoding","fromString","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","valLength","readUInt16BE","hexWrite","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","thisStart","thisEnd","thisCopy","targetCopy","toHex","bytes","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","b64","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","expires","domain","secure","cookie","toGMTString","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","hash","port","requestURL","deprecatedWarnings","formatMessage","opt","opts","ERR_DEPRECATED","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","resolvePromise","_listeners","onfulfilled","_resolve","SuspenseList","isSuspenseList","getModuleId","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","lineno","Position","errorsList","silent","comments","decl","decls","createReactClass","S3Upload","objectAssign","getSignedUrl","onSignedUrl","signingUrlHeaders","signingUrlQueryParams","signingUrlWithCredentials","contentDisposition","server","scrubFilename","autoUpload","signingServerResponse","percent","signResult","publicUrl","uploadFile","myUploader","fileElement","onFinishS3Put","abortUpload","clearInputFile","getInputProps","additional","temporaryProps","invalidProps","ReactNoopUpdateQueue","_assign","emptyObject","_invariant","MIXINS_KEY","ReactComponent","injectedMixins","ReactClassInterface","statics","getInitialState","updateComponent","ReactClassStaticInterface","RESERVED_SPEC_KEYS","mixSpecIntoComponent","createMergedResultFunction","mixStaticSpecIntoComponent","autobind","validateMethodOverride","isAlreadyDefined","specPolicy","ReactClassMixin","spec","autoBindPairs","__reactAutoBindPairs","isReactClassMethod","createChainedFunction","mergeIntoWithNoDuplicateKeys","two","bindAutoBindMethod","IsMountedPreMixin","__isMounted","IsMountedPostMixin","ReactClassComponent","autoBindKey","bindAutoBindMethods","initialState","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","mime","files","handleFileSelect","getFileMimeType","successResponses","processedFile","createCORSRequest","xhr","XDomainRequest","_getErrorRequestContext","executeOnSignedUrl","queryString","overrideMimeType","uploadToS3","onload","onprogress","percentLoaded","lengthComputable","fileType","disposition","hdrs","httprequest","uploadToS3Callback","preference","EXTRACT_TYPE_REGEXP","TEXT_TYPE_REGEXP","charset","charsets","exts","normalizeArray","up","resolvedPath","resolvedAbsolute","isAbsolute","trailingSlash","relative","fromParts","toParts","samePartsLength","outputParts","delimiter","hasRoot","matchedSlash","ToObject","_warning","_warning2","warned","messageKey","_resetWarned","warning","WidgetPicker","openClass","picker","_SlideDownTransition","_PropTypes","StaticContainer","Popup","_transitionClasses","_events","_style","_height","_Transition","transitionClasses","SlideDownTransition","setContainerHeight","elem","getHeight","clearContainerHeight","handleEntered","handleEntering","handleTransitionEnd","mult","parseDuration","container","old","innerProps","_querySelectorAll","rHyphen","_hyphenate","rUpper","getComputedStyle","currentStyle","rnumnonpx","rposition","runStyle","runtimeStyle","rsLeft","pixelLeft","removeProperty","supportedTransforms","classNamesShape","timeoutsShape","_reactIs","_createChainableTypeChecker2","_Header","_Footer","_Month","_Year","_Decade","_Century","_SlideTransitionGroup","VIEW_UNIT","decade","century","VIEW_OPTIONS","VIEW","ARROWS_TO_DIRECTION","ArrowDown","ArrowUp","ArrowRight","ArrowLeft","OPPOSITE_DIRECTION","LEFT","RIGHT","MULTIPLIER","_value","navigatePrevIcon","navigateNextIcon","views","onViewChange","dayComponent","headerFormat","footerFormat","dayFormat","monthFormat","yearFormat","decadeFormat","centuryFormat","Calendar","handleFocusWillChange","viewId","labelId","willHandle","selectedIndex","move","newDate","isMonth","isUpOrDown","rangeUnit","addUnit","amount","slideDirection","lastView","lastDate","maybeSetCurrentDate","View","todaysDate","todayNotInRange","viewProps","getHeaderLabel","upDisabled","prevDisabled","nextDate","nextDisabled","handleViewChange","onMoveLeft","handleMoveBack","onMoveRight","handleMoveForward","handleFooterClick","navigate","slideDir","inRangeDate","multi","isValidView","_this6$props","firstView","_this7$state","ctrl","callFocusEventHandler","lastFocused","_ref$isDisabled","_handleFocus","protoSpec","baseGCContext","Header","_this$props$navigateP","_this$props$navigateN","Footer","_CalendarView","MonthView","renderRow","row","rowIdx","Day","colIdx","renderHeaders","MILI","SECONDS","MINUTES","HOURS","DAY","DECADE","CENTURY","newMonth","monthMath","createComparer","neq","createAccessor","firstDay","date1","date2","YearView","DecadeView","_date","CenturyView","_transitionStyle","_TransitionGroup","DirectionPropType","transitionStyle","SlideTransition","SlideTransitionGroup","handleExited","_ChildMapping","TransitionGroup","firstRender","appeared","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","childFactory","mergeChildMappings","getProp","nextChildMapping","hasPrev","hasNext","prevChild","isLeaving","mapFn","mapper","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","pendingNextKey","matchesCache","nativeMatch","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","ie8MatchesSelector","_Input","DateTimePickerInput","_needsFlush","textValue","lastValueFromProps","Input","nodeRef","_ref$type","_ref$component","Select","_List","_reduceToListState","getDates","_getBounds","_start","_end","getBounds","startDay","TimeList","focusedItem","valueChanged","lastValue","selectedItem","closestDate","relativeDate","_Listbox","_ListOption","_ListOptionGroup","renderGroup","List","mapItems","runningIdx","itemIdx","renderedIndexOf","renderOption","Option","emptyListMessage","_ref2$searchTerm","_normalizeOptions","normalizeOptions","_ref3$searchTerm","_normalizeOptions2","suggest","_ref4$searchTerm","_normalizeOptions3","nextOptions","minLengh","_ref$caseSensitive","caseSensitive","normalizeFilter","Listbox","ListOption","handleSelect","ListOptionGroup","getScrollParent","currentFocused","currentVisible","cancelScroll","nextFocused","lastVisible","lastItem","_scrollTo","scrollParent","listScrollTop","selectedTop","isWin","selectedHeight","listHeight","poff","_scrollParent","_scrollTop","_requestAnimationFrame","excludeStatic","ownerDoc","scrollHeight","scrollTo","compatRaf","raf","curr","getKey","rafKey","ReactDOMServer","detectEvents","constructorFromGlobal","constructorFromRequireContext","constructorFromRequireContextWithGlobalFallback","constructorFromRequireContextsWithGlobalFallback","supportsHydration","reactHydrate","createReactRootLike","ReactRailsUJS","CLASS_NAME_ATTR","PROPS_ATTR","RENDER_ATTR","CACHE_ID_ATTR","TURBOLINKS_PERMANENT_ATTR","jQuery","findDOMNodes","searchSelector","classNameAttr","getConstructor","requireContext","useContexts","requireContexts","serverRender","renderFunction","mountComponents","ujs","propsJson","cacheId","turbolinksPermanent","hasAttribute","unmountComponents","renderToString","renderToStaticMarkup","renderToNodeStream","renderToStaticNodeStream","renderToReadableStream","insertionMode","generateStaticMarkup","parentValue","idPrefix","allPendingTasks","pendingRootTasks","pendingTasks","pingedTasks","blockedBoundary","blockedSegment","abortSet","legacyContext","parentFlushed","formatContext","boundary","lastPushedText","textEmbedded","onShellError","onFatalError","fatalError","rootSegmentID","forceClientRender","completedSegments","byteSize","fallbackAbortableTasks","errorDigest","responseState","clientRenderedBoundaries","onAllReady","completedRootSegment","onShellReady","completedBoundaries","partialBoundaries","nextSegmentId","placeholderPrefix","nextSuspenseID","boundaryPrefix","progressiveChunkSize","segmentPrefix","startInlineScript","sentCompleteBoundaryFunction","sentCompleteSegmentFunction","bootstrapChunks","errorMessage","errorComponentStack","sentClientRenderFunction","abortableTasks","enqueue","TextEncoder","nc","bootstrapScriptContent","bootstrapScripts","bootstrapModules","ReadableStream","highWaterMark","allReady","nativeEvents","pjaxEvents","turbolinksEvents","turbolinksClassicDeprecatedEvents","turbolinksClassicEvents","handleEvent","EVENTS","teardown","removeEvent","supported","controller","$","pjax","handleMount","handleUnmount","pagesCached","CHANGE","BEFORE_UNLOAD","fromGlobal","fromRequireContext","fromCtx","firstErr","secondErr","reqctxs","fromCtxs","fromCtxErr","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","stackClear","stackDelete","stackGet","stackHas","stackSet","baseIsTypedArray","reactDomClient","legacyReactRootLike","CONFIGURABLE_FUNCTION_NAME","inspectSource","InternalStateModule","enforceInternalState","enforce","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","isNullOrUndefined","definePropertyModule","createPropertyDescriptor","EXISTS","getBuiltIn","isPrototypeOf","USE_SYMBOL_AS_UID","$Object","$Symbol","NATIVE_SYMBOL","sham","V8_VERSION","tryToString","postfix","bitmap","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","propertyIsEnumerableModule","toIndexedObject","trunc","$location","arraySlice","validateArgumentsLength","IS_IOS","IS_NODE","Dispatch","ONREADYSTATECHANGE","runner","eventListener","globalPostMessageDefer","passed","classof","userAgentStartsWith","Bun","Deno","setCacheAdd","setCacheHas","localizer","header","dayOfMonth","_moment","endOfDecade","endOfCentury","getMoment","_format","_configure","setDateLocalizer","localField","defineBuiltInAccessor","regExpFlags","RegExpPrototype","INDICES_SUPPORT","calls","addGetter","dotAll","hasIndices","getDescriptor","PROPER","functionToString","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","metadata","facade","STATE","getterFor","getMethod","ordinaryToPrimitive","wellKnownSymbol","TO_PRIMITIVE","pref","exoticToPrim","v8","aCallable","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","unicodeSets","$propertyIsEnumerable","NASHORN_BUG","simple","unsafe","nonConfigurable","nonWritable","getOwnPropertyDescriptorModule","exceptions","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","internalObjectKeys","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","toIntegerOrInfinity","feature","detection","POLYFILL","NATIVE","classofRaw","ENVIRONMENT","setTask","schedulersFix","USER_AGENT","WRAP","scheduler","hasTimeArg","firstParamIndex","boundArgs","localizers","setLocalizers","setNumberLocalizer","runtime","Op","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","generator","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","PromiseImpl","record","unwrapped","previousPromise","doneResult","delegateResult","locs","iteratorMethod","genFun","ctor","skipTempReset","rootRecord","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","regeneratorRuntime","accidentalStrictMode","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","cspNonce","expando","oMatchesSelector","isEditable","parentElement","csrfParam","CSRFProtection","refreshCSRFTokens","CustomEvent","fire","evt","createEvent","initCustomEvent","Event","stopEverything","stopImmediatePropagation","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","ajax","getResponseHeader","success","beforeSend","OPENED","crossDomain","DONE","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","serializeElement","additionalParam","elements","formElements","allowAction","handleConfirm","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","originalText","handleMethod","formContent","click","isRemote","handleRemote","enctype","formSubmitButtonClick","preventInsignificantClick","insignificantMetaClick","rails","ajaxPrefilter","originalOptions","_rails_loaded","pushState","clearCache","setProgressBarDelay","closest","ELEMENT_NODE","initEvent","uuid","Location","absoluteURL","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","notifyApplicationBeforeRequestStart","setProgress","requestStarted","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","requestFinished","ProgressBar","trickle","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","show","visible","installStylesheetElement","installProgressElement","startTrickling","hide","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","refresh","trickleInterval","BrowserAdapter","showProgressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","History","onPageLoad","started","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","childNodes","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","cloneNode","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","replaceChild","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","htmlElement","markAsPreview","renderSnapshot","renderError","ScrollManager","scrollToElement","scrollIntoView","scrollToPosition","scrollPositionChanged","SnapshotCache","snapshots","touch","Visit","performScroll","timingMetrics","recordTimingMetric","cancelRender","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","cancelAnimationFrame","Controller","clickBubbled","clickCaptured","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","createVisit","nodeIsVisitable","currentScript","disablingCheckbox","checkbox","targets","onState","disablingCheckboxReady","toggleMenu","navigationMenu","readyMenu","menuToggle","resetPasswordLink","generateResetPasswordUrl","reset_url","readyResetPasswordLink","resetPasswordButton","hashClear","hashDelete","hashGet","hashHas","hashSet","isMasked","rsModifier","presentation","caption","nestable","heading1","terminal","breakOnReturn","htmlAttributes","plaintext","bulletList","listAttribute","numberList","attachmentGallery","exclusive","composesExistingText","recentAndroid","samsungAndroid","forcesObjectResizing","supportsInputEvents","InputEvent","ADD_ATTR","SAFE_FOR_XML","RETURN_DOM","attachFiles","bold","bullets","byte","captionPlaceholder","indent","italic","numbers","outdent","strike","unlink","urlPlaceholder","GB","KB","MB","PB","TB","onElement","matchingSelector","withCallback","inPhase","untilNode","onlyNodesOfType","usingFilter","expandEntityReferences","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","contenteditable","COMMENT_NODE","trixCursorTarget","level2Enabled","getLevel","pickFiles","fileInputId","removeBlankTableCells","tableCellSeparator","tableRowSeparator","inheritable","groupTagName","getDefaultHTML","interval","attachments","blockAttributes","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","dompurify","fileSize","keyNames","textAttributes","toolbar","proxyMethod","toMethod","toProperty","optional","fromUCS2String","et","fromCodepoints","ucs2String","codepoints","ucs2Length","offsetToUCS2Offset","offsetFromUCS2Offset","getCacheKey","tt","fromCodePoint","nt","fromJSONString","fromJSON","hasSameConstructorAs","contentsForInspection","toJSONString","toUTF16String","ot","st","ct","ut","ht","bt","pt","mt","ft","vt","At","yt","xt","Ct","Et","St","Rt","kt","Tt","wt","Nt","It","Dt","Ot","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","Ft","Pt","Mt","_t","Bt","jt","Wt","Ut","Vt","zt","qt","utf16String","Ht","fromCommonAttributesOfObjects","Yt","getKeysCommonToHash","Jt","Kt","$t","Xt","groupObjects","asTree","canBeGrouped","canBeGroupedWith","objects","getObjects","getDepth","Zt","Qt","trixStoreKey","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","release","childViews","rootView","getNodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","getAllChildViews","findElement","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","objectGroup","getChildViews","createContainerElement","seal","Ge","ARIA_ATTR","ATTR_WHITESPACE","CUSTOM_ELEMENT","DATA_ATTR","DOCTYPE_NAME","ERB_EXPR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","MUSTACHE_EXPR","TMPLIT_EXPR","removed","isSupported","DocumentFragment","HTMLTemplateElement","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","trustedTypes","createNodeIterator","createDocumentFragment","importNode","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createHTMLDocument","tagNameCheck","attributeNameCheck","allowCustomizedBuiltInElements","PARSER_MEDIA_TYPE","ALLOWED_TAGS","ALLOWED_ATTR","ALLOWED_NAMESPACES","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","FORBID_CONTENTS","FORBID_TAGS","FORBID_ATTR","USE_PROFILES","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","FORCE_BODY","SANITIZE_DOM","SANITIZE_NAMED_PROPS","KEEP_CONTENT","IN_PLACE","ALLOWED_URI_REGEXP","NAMESPACE","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","CUSTOM_ELEMENT_HANDLING","svgFilters","mathMl","ADD_TAGS","tbody","TRUSTED_TYPES_POLICY","createHTML","createScriptURL","createPolicy","getAttributeNode","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","hasChildNodes","allowedTags","firstElementChild","__removalCount","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","getAttributeType","sanitize","shadowroot","shadowrootmode","doctype","setConfig","clearConfig","isValidAttribute","addHook","removeHook","removeHooks","removeAllHooks","setHTML","getHTML","forbiddenProtocols","forbiddenElements","sanitizeElements","normalizeListElementNesting","getBody","elementIsRemovable","sanitizeElement","previousElementSibling","elementIsForbidden","elementIsntSerializable","uploadProgressDelegate","attachmentPiece","piece","createContentNodes","getClassName","getHref","tabindex","hasContent","getContent","createCaptionElement","isPending","class","getUploadProgress","trixMutable","getCaption","getCaptionConfig","getFilename","getFormattedFilesize","getType","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","previewDelegate","updateAttributesForImage","getURL","getPreviewURL","getWidth","attachmentDidChangeAttributes","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","getPieces","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","sync","elementStore","setDocument","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","didSync","throw","registerType","copyWithAttributes","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","Image","naturalWidth","naturalHeight","attachmentForFile","attributesForFile","setFile","filesize","releaseFile","didChangeAttributes","setAttributes","preloadURL","previewablePattern","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","fileObjectURL","revokeObjectURL","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","consolidateWith","splitAtOffset","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","textForAttachmentWithAttributes","textForStringWithAttributes","pieceList","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributes","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getAttachmentById","getRangeOfAttachment","updateAttributesForAttachment","eachPiece","getPieceAtPosition","toSerializableText","getDirection","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","en","addHTMLAttribute","rn","removeLastAttribute","nn","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","decreaseNestingLevel","increaseNestingLevel","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","tn","blockBreak","blockList","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","removeAttributeForAttachment","setHTMLAttributeAtPosition","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","sn","getRangeOfCommonAttributeAtPosition","getLocationRangeOfAttachment","getAttachmentPieceForAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","toSerializableDocument","an","ln","cn","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","gn","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","getBlockHTMLAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","un","mn","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","needsTableSeparator","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","findBlockElementAncestors","pn","hn","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","dn","whiteSpace","FILTER_REJECT","FILTER_ACCEPT","bn","vn","An","yn","xn","HTMLElement","Cn","En","attachmentManager","requestRemovalOfAttachment","Sn","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","Rn","composition","getSelectedRange","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","kn","currentAttributes","revision","refreshAttachments","compositionDidChangeDocument","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","insertText","notifyDelegateOfInsertionAtRange","insertBlock","insertDocument","insertString","getCurrentTextAttributes","insertBlockBreak","insertLineBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","insertHTML","replaceHTML","getLocationRange","insertFile","insertFiles","compositionShouldAcceptFile","insertAttachments","insertAttachment","shouldManageDeletingInDirection","shouldManageMovingCursorInDirection","deleteInDirection","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","moveTextFromRange","removeAttachment","stopEditingAttachment","removeCurrentAttribute","insertPlaceholder","placeholderPosition","selectPlaceholder","setSelectedRange","forgetPlaceholder","hasCurrentAttribute","toggleCurrentAttribute","setCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","getSelectedDocument","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","setHTMLAtributeAtPosition","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","canDecreaseNestingLevel","canIncreaseNestingLevel","getPreviousBlock","ignoreLock","getCurrentAttributes","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","withTargetDOMRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","moveCursorInDirection","expandSelectionInDirection","expandSelectionForEditing","expandSelectionAroundCommonAttribute","selectionContainsAttachments","getSelectedAttachments","selectionIsInCursorTarget","positionIsCursorTarget","locationIsCursorTarget","positionIsBlockBreak","added","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","Tn","undoEntries","redoEntries","recordUndoEntry","consolidatable","wn","createEntry","canUndo","canRedo","Ln","Dn","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Nn","In","On","selectionManager","undoManager","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","Fn","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","Pn","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","Mn","Bn","jn","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","select","getClientRectsForDOMRange","getClientRects","Wn","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","setLocationRangeFromPointRange","getLocationAtPoint","lock","unlock","clearSelection","selectionIsCollapsed","selectionIsExpanded","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","Un","Attachment","AttachmentManager","AttachmentPiece","Block","Composition","Document","Editor","HTMLParser","HTMLSanitizer","LineBreakInsertion","LocationMapper","ManagedAttachment","Piece","PointMapper","SelectionManager","SplittableList","StringPiece","Text","UndoManager","Vn","ObjectView","AttachmentView","BlockView","DocumentView","PieceView","PreviewableAttachmentView","TextView","zn","qn","Hn","Jn","do","undos","Kn","trixAction","didClickToolbar","didClickActionButton","didInputCaption","didKeyDownCaption","didChangeCaption","didBlurCaption","editCaption","install","makeElementMutable","addToolbar","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","Gn","didFocus","didBlur","didClickAttachment","documentView","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","compositionControllerWillUpdateAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","Yn","$n","Xn","Zn","childList","characterData","characterDataOldValue","subtree","Qn","didMutate","MutationObserver","observe","mutations","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","addedNodes","removedNodes","getTextMutationSummary","getTextChangesFromCharacterData","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","tr","er","FileReader","readAsArrayBuffer","ir","shouldIgnore","previousEvent","checkSamsungKeyboardBuggyModeStart","checkSamsungKeyboardBuggyModeEnd","buggyMode","insertingLongTextAfterUnidentifiedChar","nr","innerText","isBeforeInputInsertText","previousEventWasUnidentifiedKeydown","rr","sr","mutationObserver","flakyKeyboardDetector","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","inputControllerWillAttachFiles","responder","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","ar","lr","cr","ur","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","compositionInput","getEndData","getCompositionInput","isEnded","serializeSelectionToDataTransfer","canAcceptDataTransfer","Files","getPastedHTMLUsingHiddenElement","keydown","didInput","keyName","inputControllerDidReceiveKeyboardCommand","keypress","mr","inputControllerWillPerformTyping","textInput","dragenter","dragstart","draggedRange","inputControllerDidStartDrag","dragover","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","inputControllerWillMoveText","cut","inputControllerWillCutText","paste","testClipboardData","clipboard","inputControllerWillPaste","inputControllerDidPaste","getAsFile","dr","compositionstart","compositionupdate","compositionend","beforeinput","backspace","tab","control","gr","inputController","isSignificant","canApplyToDocument","scheduledRender","composing","reparse","scheduleRender","afterRender","toggleAttributeIfSupported","inputControllerWillPerformFormatting","activateAttributeIfSupported","getTargetDOMRange","getTargetRanges","vr","withEvent","Er","xr","Cr","inputTypes","dragging","Sr","Ar","Backspace","deleteByComposition","deleteByCut","deleteByDrag","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","formatBold","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","yr","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertTranspose","insertUnorderedList","Rr","kr","Tr","Lr","Dr","Nr","Ir","Fr","didClickAttributeButton","didClickDialogButton","didKeyDownDialogInput","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","toolbarDidShowDialog","willValidate","setCustomValidity","checkValidity","isSafeAttribute","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","Mr","editorElement","compositionController","toolbarController","toolbarElement","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","invokingElement","getCurrentActions","currentActions","updateInputElement","setFormValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","Br","AttachmentEditorController","CompositionController","EditorController","InputController","Level0InputController","Level2InputController","ToolbarController","_r","SelectionChangeObserver","jr","FileVerificationOperation","ImagePreloadOperation","Wr","connectedCallback","Ur","zr","qr","Hr","queryCommandSupported","execCommand","Jr","Kr","Gr","Yr","attachInternals","$r","disconnectedCallback","inputElement","toggleAttribute","validity","validationMessage","reportValidity","setValidity","valueMissing","customError","Xr","Zr","Qr","eo","io","formAssociated","localName","nextElementSibling","editorController","Vr","formDisabledCallback","formResetCallback","core","controllers","observers","operations","TrixEditorElement","TrixToolbarElement","Filter","attachmentGalleryFilter","Trix","customElements","activestorage","sparkMd5","undefined$1","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","md51_array","rhex","toUtf8","utf8Str2ArrayBuffer","returnUInt8Array","buff","arrayBuffer2Utf8Str","concatenateArrayBuffers","hexToBinaryString","SparkMD5","targetArray","sourceArray","appendBinary","_buff","_hash","_finish","hashBinary","fileSlice","mozSlice","webkitSlice","FileChecksum","chunkCount","md5Buffer","fileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","findElements","eventInit","BlobRecord","checksum","content_type","byte_size","requestDidLoad","requestDidError","direct_upload","directUploadData","BlobUpload","DirectUpload","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","uploadRequestDidProgress","directUploadWillCreateBlobWithXHR","directUploadWillStoreFileWithXHR","inputSelector","DirectUploadsController","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","enable","submitForm","autostart","ActiveStorage","AttachmentUpload","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate","getSide","placement","getAlignment","getMainAxisFromPlacement","getLengthFromAxis","computeCoordsFromPlacement","rtl","commonX","commonY","mainAxis","commonAlign","isVertical","getSideObjectFromPadding","padding","expandPaddingObject","rectToClientRect","detectOverflow","middlewareArguments","_await$platform$isEle","rects","strategy","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","getClippingRect","contextElement","getDocumentElement","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","offsetParent","getOffsetParent","within","min$1","max$1","diffCoords","alignment","mainAxisMulti","crossAxisMulti","crossAxis","alignmentAxis","convertValueToCoords","getCrossAxis","checkMainAxis","checkCrossAxis","limiter","detectOverflowOptions","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","isWindow","getWindow","getComputedStyle$1","getNodeName","isHTMLElement","isShadowRoot","ShadowRoot","isOverflowElement","overflowY","isTableElement","isContainingBlock","isFirefox","perspective","contain","willChange","isLayoutViewport","includeScale","isFixedStrategy","_win$visualViewport$o","_win$visualViewport","_win$visualViewport$o2","_win$visualViewport2","scaleX","scaleY","addVisualOffsets","visualViewport","offsetLeft","offsetTop","getNodeScroll","getWindowScrollBarX","getRectRelativeToOffsetParent","isOffsetParentAnElement","isScaled","scroll","offsets","offsetRect","getParentNode","assignedSlot","getTrueOffsetParent","getContainingBlock","getDimensions","getNearestOverflowAncestor","getOverflowAncestors","_node$ownerDocument","scrollableAncestor","isBody","updatedList","getClientRectFromClippingAncestor","clippingParent","clientWidth","layoutViewport","getViewportRect","getInnerBoundingClientRect","_element$ownerDocumen","scrollWidth","getDocumentRect","getClippingAncestors","clippingAncestors","clipperElement","rootNode","getRootNode","firstClippingAncestor","clippingRect","accRect","clippingAncestor","getElementRects","autoUpdate","ancestorScroll","_ancestorScroll","ancestorResize","_ancestorResize","elementResize","_elementResize","animationFrame","cleanedUp","ancestors","frameId","ResizeObserver","prevRefRect","frameLoop","nextRefRect","_observer","statefulPlacement","middlewareData","nextX","nextY","initialPlacement","computePosition","account_button","cleanup","accountButton","toggleAccountMenu","_update","defaultLocaleResolver","enableFallback","defaultLocale","currentLocale","codes","Locales","registry","register","localeResolver","defaultPluralizer","pluralizer","includeZero","_i18n","useMakePlural","v0","n10","n100","Pluralization","camelCaseKeys","isNumeric","mathceil","mathfloor","bignumberError","tooManyDigits","BASE","LOG_BASE","POWS_TEN","SQRT_BASE","MAX","bitFloor","coeffToString","intCheck","isOdd","toExponential","toFixedPoint","zs","RoundingModeMap","BigNumber","configObject","convertBase","parseNumeric","pow2_53","random53bitInt","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","ONE","DECIMAL_PLACES","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","groupSize","secondaryGroupSize","groupSeparator","decimalSeparator","fractionGroupSize","fractionGroupSeparator","ALPHABET","alphabetHasNormalDecimalDigits","alphabet","caseChanged","isNum","_isBigNumber","DEBUG","rm","c0","maxOrMin","normalise","pows10","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","randomBytes","EXPONENTIAL_AT","RANGE","isBigNumber","maximum","minimum","dp","Uint32Array","decimal","toBaseOut","baseIn","baseOut","arrL","callerIsToString","xlo","xhi","carry","klo","khi","aL","bL","cmp","prodL","rem","remL","rem0","xL","yc0","yL","yz","absoluteValue","comparedTo","decimalPlaces","dividedBy","dividedToIntegerBy","idiv","exponentiatedBy","isModExp","nIsBig","nIsNeg","nIsOdd","integerValue","isGreaterThan","isGreaterThanOrEqualTo","isLessThan","isLessThanOrEqualTo","isNegative","isPositive","isZero","xLTy","modulo","multipliedBy","xcL","ycL","ylo","yhi","sqrtBase","negated","shiftedBy","squareRoot","rep","toFormat","intPart","fractionPart","isNeg","intDigits","toFraction","d0","d1","d2","exp","n0","n1","toPrecision","expandRoundMode","roundMode","getAbsolutePrecision","significant","log10","digitCount","roundNumber","rounder","formatNumber","originalNumber","raise","roundedNumber","whole","significand","formattedNumber","positiveFormat","negativeFormat","computeSignificand","stripInsignificantZeros","replaceInFormat","getFullScope","defaultSeparator","inferType","transformKey","nullPlaceholder","missingPlaceholder","localeType","translations","DECIMAL_UNITS","INVERTED_DECIMAL_UNITS","numberToHuman","roundOptions","unitExponents","calculateExponent","determineUnit","STORAGE_UNITS","parseDate","$3","$6","$4","$5","baseScope","missingTranslation","pluralization","missingKeys","DEFAULT_OPTIONS","meridian","am","dayNames","abbrDayNames","monthNames","abbrMonthNames","guessStrategy","missingTranslationPrefix","_match","messageStrategy","fullScope","errorStrategy","fullScopeWithLocale","MissingTranslation","missingBehavior","__awaiter","_arguments","DEFAULT_I18N_OPTIONS","momentLocalizer","componentRequireContext","_defaultLocale","_version","onChangeHandlers","localize","distanceOfTimeInWords","timeAgoInWords","newLocale","changed","translationOptions","createTranslationOptions","translation","translationOption","numberToCurrency","numberToPercentage","localizedValue","toTime","strftime","numberToHumanSize","smallerThanBase","numberToBeFormatted","computeExponent","billion","million","quadrillion","thousand","trillion","numberToRounded","numberToDelimited","delimiterPattern","digitToDelimiter","withLocale","originalLocale","AM_PM","weekDay","hour12","secs","mins","absOffsetHours","absOffsetMinutes","timezoneoffset","override","currentType","overrideType","toSentence","wordsConnector","twoWordsConnector","lastWordConnector","fromTime","fromInSeconds","toInSeconds","distanceInSeconds","distanceInMinutes","distanceInDays","distanceInHoursRounded","distanceInDaysRounded","distanceInMonthsRounded","includeSeconds","fromYear","toYear","minutesInYear","minutesWithOffset","distanceInYears","runCallbacks"],"mappings":"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QthC,GACTy1G,EACT,CAYA,SAASC,EAAW11G,GAClB,OAAa,KAATA,GACFohC,EAAQE,QAAQthC,GACT21G,GAEFF,EAAMz1G,EACf,CAYA,SAAS21G,EAAS31G,GAChB,OAAa,KAATA,EACKz+D,EAAIy+D,GAEA,KAATA,GACFohC,EAAQE,QAAQthC,GACT21G,GAEFF,EAAMz1G,EACf,CAYA,SAASo1G,EAAYp1G,GACnB,OAAa,OAATA,GAA0B,KAATA,EACZz+D,EAAIy+D,GAET8gC,GAAmB9gC,IACrBkoC,EAAcktE,EACPI,EAAiBx1G,KAE1BohC,EAAQE,QAAQthC,GACTo1G,EACT,CAYA,SAASF,EAAYl1G,GACnB,OAAa,OAATA,EACK+jC,EAAI/jC,GAEA,KAATA,GACFohC,EAAQE,QAAQthC,GACT41G,GAEL90E,GAAmB9gC,IACrBkoC,EAAcgtE,EACPM,EAAiBx1G,KAE1BohC,EAAQE,QAAQthC,GACTk1G,EACT,CAYA,SAASU,EAAiB51G,GACxB,OAAgB,KAATA,EAAcz+D,EAAIy+D,GAAQk1G,EAAYl1G,EAC/C,CAYA,SAASysC,EAAczsC,GAErB,OAAIsgC,GAAWtgC,IACbohC,EAAQE,QAAQthC,GACT61G,GAEF9xE,EAAI/jC,EACb,CAYA,SAAS61G,EAAS71G,GAEhB,OAAa,KAATA,GAAewgC,GAAkBxgC,IACnCohC,EAAQE,QAAQthC,GACT61G,GAEFC,EAAgB91G,EACzB,CAYA,SAAS81G,EAAgB91G,GACvB,OAAI8gC,GAAmB9gC,IACrBkoC,EAAc4tE,EACPN,EAAiBx1G,IAEtBghC,GAAchhC,IAChBohC,EAAQE,QAAQthC,GACT81G,GAEFv0K,EAAIy+D,EACb,CAYA,SAASm1G,EAAQn1G,GAEf,OAAa,KAATA,GAAewgC,GAAkBxgC,IACnCohC,EAAQE,QAAQthC,GACTm1G,GAEI,KAATn1G,GAAwB,KAATA,GAAe+gC,GAA0B/gC,GACnD+1G,EAAe/1G,GAEjB+jC,EAAI/jC,EACb,CAYA,SAAS+1G,EAAe/1G,GACtB,OAAa,KAATA,GACFohC,EAAQE,QAAQthC,GACTz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AAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KAER,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,S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","file":"js/application-47282608bf1153d0f31b.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 813);\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Adds two values.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a\n * @param {Number} b\n * @return {Number}\n * @see R.subtract\n * @example\n *\n * R.add(2, 3); //=> 5\n * R.add(7)(10); //=> 17\n */\n\nvar add = /*#__PURE__*/\n_curry2(function add(a, b) {\n return Number(a) + Number(b);\n});\nexport default add;","/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nexport default function _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n idx = 0;\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n idx = 0;\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n return result;\n}","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}","import _arity from \"./_arity.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n combined[combinedIdx] = result;\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n combinedIdx += 1;\n }\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _curryN from \"./internal/_curryN.js\";\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curryN = /*#__PURE__*/\n_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n return _arity(length, _curryN(length, [], fn));\n});\nexport default curryN;","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","import _concat from \"./internal/_concat.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Applies a function to the value at the given index of an array, returning a\n * new copy of the array with the element at the given index replaced with the\n * result of the function application.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> (a -> a) -> [a] -> [a]\n * @param {Number} idx The index.\n * @param {Function} fn The function to apply.\n * @param {Array|Arguments} list An array-like object whose value\n * at the supplied index will be replaced.\n * @return {Array} A copy of the supplied array-like object with\n * the element at index `idx` replaced with the value\n * returned by applying `fn` to the existing element.\n * @see R.update\n * @example\n *\n * R.adjust(1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'B', 'c', 'd']\n * R.adjust(-1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c', 'D']\n * @symb R.adjust(-1, f, [a, b]) = [a, f(b)]\n * @symb R.adjust(0, f, [a, b]) = [f(a), b]\n */\n\nvar adjust = /*#__PURE__*/\n_curry3(function adjust(idx, fn, list) {\n var len = list.length;\n if (idx >= len || idx < -len) {\n return list;\n }\n var _idx = (len + idx) % len;\n var _list = _concat(list);\n _list[_idx] = fn(list[_idx]);\n return _list;\n});\nexport default adjust;","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","import _isArray from \"./_isArray.js\";\nimport _isTransformer from \"./_isTransformer.js\";\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer created by [transducerCreator] to return a new transformer\n * (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} transducerCreator transducer factory if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\nexport default function _dispatchable(methodNames, transducerCreator, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n var obj = arguments[arguments.length - 1];\n if (!_isArray(obj)) {\n var idx = 0;\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, Array.prototype.slice.call(arguments, 0, -1));\n }\n idx += 1;\n }\n if (_isTransformer(obj)) {\n var transducer = transducerCreator.apply(null, Array.prototype.slice.call(arguments, 0, -1));\n return transducer(obj);\n }\n }\n return fn.apply(this, arguments);\n };\n}","export default function _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\n\nvar max = /*#__PURE__*/\n_curry2(function max(a, b) {\n return b > a ? b : a;\n});\nexport default max;","export default function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n return result;\n}","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import _curry1 from \"./_curry1.js\";\nimport _isArray from \"./_isArray.js\";\nimport _isString from \"./_isString.js\";\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n * _isArrayLike({nodeType: 1, length: 1}) // => false\n */\n\nvar _isArrayLike = /*#__PURE__*/\n_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n if (!x) {\n return false;\n }\n if (typeof x !== 'object') {\n return false;\n }\n if (_isString(x)) {\n return false;\n }\n if (x.length === 0) {\n return true;\n }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\n});\nexport default _isArrayLike;","var XWrap = /*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n return XWrap;\n}();\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\nvar bind = /*#__PURE__*/\n_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\nexport default bind;","import _isArrayLike from \"./_isArrayLike.js\";\nimport _xwrap from \"./_xwrap.js\";\nimport bind from \"../bind.js\";\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n throw new TypeError('reduce: list must be array or iterable');\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XMap = /*#__PURE__*/\nfunction () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n return XMap;\n}();\nvar _xmap = /*#__PURE__*/\n_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\nexport default _xmap;","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\"; // cover IE < 9 keys issues\n\nvar hasEnumBug = ! /*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug = /*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values, R.toPairs\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nexport default keys;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _map from \"./internal/_map.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xmap from \"./internal/_xmap.js\";\nimport curryN from \"./curryN.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex, R.pluck, R.project\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\nvar map = /*#__PURE__*/\n_curry2(/*#__PURE__*/\n_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n default:\n return _map(fn, functor);\n }\n}));\nexport default map;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","import _curry2 from \"./internal/_curry2.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\nvar nth = /*#__PURE__*/\n_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\nexport default nth;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport nth from \"./nth.js\";\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig Idx -> {s: a} -> a | Undefined\n * @param {String|Number} p The property name or array index\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path, R.props, R.pluck, R.project, R.nth\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.prop(0, [100]); //=> 100\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop = /*#__PURE__*/\n_curry2(function prop(p, obj) {\n if (obj == null) {\n return;\n }\n return _isInteger(p) ? nth(p, obj) : obj[p];\n});\nexport default prop;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\nimport prop from \"./prop.js\";\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * `pluck` will work on\n * any [functor](https://github.com/fantasyland/fantasy-land#functor) in\n * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => k -> f {k: v} -> f v\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} f The array or functor to consider.\n * @return {Array} The list of values for the given key.\n * @see R.project, R.prop, R.props\n * @example\n *\n * var getAges = R.pluck('age');\n * getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]\n *\n * R.pluck(0, [[1, 2], [3, 4]]); //=> [1, 3]\n * R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\n\nvar pluck = /*#__PURE__*/\n_curry2(function pluck(p, list) {\n return map(prop(p), list);\n});\nexport default pluck;","import _curry3 from \"./internal/_curry3.js\";\nimport _reduce from \"./internal/_reduce.js\";\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\nvar reduce = /*#__PURE__*/\n_curry3(_reduce);\nexport default reduce;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Returns a function that always returns the given value. Note that for\n * non-primitives the value returned is a reference to the original value.\n *\n * This function is known as `const`, `constant`, or `K` (for K combinator) in\n * other languages and libraries.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> (* -> a)\n * @param {*} val The value to wrap in a function\n * @return {Function} A Function :: * -> val.\n * @example\n *\n * const t = R.always('Tee');\n * t(); //=> 'Tee'\n */\n\nvar always = /*#__PURE__*/\n_curry1(function always(val) {\n return function () {\n return val;\n };\n});\nexport default always;","import _concat from \"./_concat.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XAperture = /*#__PURE__*/\nfunction () {\n function XAperture(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n XAperture.prototype['@@transducer/init'] = _xfBase.init;\n XAperture.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n XAperture.prototype['@@transducer/step'] = function (result, input) {\n this.store(input);\n return this.full ? this.xf['@@transducer/step'](result, this.getCopy()) : result;\n };\n XAperture.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n XAperture.prototype.getCopy = function () {\n return _concat(Array.prototype.slice.call(this.acc, this.pos), Array.prototype.slice.call(this.acc, 0, this.pos));\n };\n return XAperture;\n}();\nvar _xaperture = /*#__PURE__*/\n_curry2(function _xaperture(n, xf) {\n return new XAperture(n, xf);\n});\nexport default _xaperture;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list containing the contents of the given list, followed by\n * the given element.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The element to add to the end of the new list.\n * @param {Array} list The list of elements to add a new item to.\n * list.\n * @return {Array} A new list containing the elements of the old list followed by `el`.\n * @see R.prepend\n * @example\n *\n * R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']\n * R.append('tests', []); //=> ['tests']\n * R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]\n */\n\nvar append = /*#__PURE__*/\n_curry2(function append(el, list) {\n return _concat(list, [el]);\n});\nexport default append;","import _curry1 from \"./internal/_curry1.js\";\nimport keys from \"./keys.js\";\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys, R.toPairs\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\n\nvar values = /*#__PURE__*/\n_curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n return vals;\n});\nexport default values;","import _isArray from \"./_isArray.js\";\nimport _isInteger from \"./_isInteger.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @private\n * @param {String|Number} prop The property name to set\n * @param {*} val The new value\n * @param {Object|Array} obj The object to clone\n * @return {Object|Array} A new object equivalent to the original except for the changed property.\n */\n\nexport default function _assoc(prop, val, obj) {\n if (_isInteger(prop) && _isArray(obj)) {\n var arr = [].concat(obj);\n arr[prop] = val;\n return arr;\n }\n var result = {};\n for (var p in obj) {\n result[p] = obj[p];\n }\n result[prop] = val;\n return result;\n}","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\nvar isNil = /*#__PURE__*/\n_curry1(function isNil(x) {\n return x == null;\n});\nexport default isNil;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport _assoc from \"./internal/_assoc.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\n\nvar assocPath = /*#__PURE__*/\n_curry3(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n var idx = path[0];\n if (path.length > 1) {\n var nextObj = !isNil(obj) && _has(idx, obj) ? obj[idx] : _isInteger(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n return _assoc(idx, val, obj);\n});\nexport default assocPath;","import _curry3 from \"./internal/_curry3.js\";\nimport assocPath from \"./assocPath.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig Idx -> a -> {k: v} -> {k: v}\n * @param {String|Number} prop The property name to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except for the changed property.\n * @see R.dissoc, R.pick\n * @example\n *\n * R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}\n */\n\nvar assoc = /*#__PURE__*/\n_curry3(function assoc(prop, val, obj) {\n return assocPath([prop], val, obj);\n});\nexport default assoc;","export default function _isFunction(x) {\n var type = Object.prototype.toString.call(x);\n return type === '[object Function]' || type === '[object AsyncFunction]' || type === '[object GeneratorFunction]' || type === '[object AsyncGeneratorFunction]';\n}","import _isArrayLike from \"./_isArrayLike.js\";\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\n\nexport default function _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n while (idx < ilen) {\n if (_isArrayLike(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n return result;\n };\n}","export default function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\nvar type = /*#__PURE__*/\n_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nexport default type;","import _cloneRegExp from \"./_cloneRegExp.js\";\nimport type from \"../type.js\";\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\n\nexport default function _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n idx += 1;\n }\n refFrom[idx] = value;\n refTo[idx] = copiedValue;\n for (var key in value) {\n if (value.hasOwnProperty(key)) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n }\n return copiedValue;\n };\n switch (type(value)) {\n case 'Object':\n return copy(Object.create(Object.getPrototypeOf(value)));\n case 'Array':\n return copy([]);\n case 'Date':\n return new Date(value.valueOf());\n case 'RegExp':\n return _cloneRegExp(value);\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n return value.slice();\n default:\n return value;\n }\n}","import _clone from \"./internal/_clone.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates a deep copy of the source that can be used in place of the source\n * object without retaining any references to it.\n * The source object may contain (nested) `Array`s and `Object`s,\n * `Number`s, `String`s, `Boolean`s and `Date`s.\n * `Function`s are assigned by reference rather than copied.\n *\n * Dispatches to a `clone` method if present.\n *\n * Note that if the source object has multiple nodes that share a reference,\n * the returned object will have the same structure, but the references will\n * be pointed to the location within the cloned value.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\n\nvar clone = /*#__PURE__*/\n_curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, [], [], true);\n});\nexport default clone;","export default function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}","import _isArray from \"./_isArray.js\";\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implementation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\nexport default function _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n if (length === 0) {\n return fn();\n }\n var obj = arguments[length - 1];\n return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\nvar slice = /*#__PURE__*/\n_curry3(/*#__PURE__*/\n_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\nexport default slice;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\nvar tail = /*#__PURE__*/\n_curry1(/*#__PURE__*/\n_checkForMethod('tail', /*#__PURE__*/\nslice(1, Infinity)));\nexport default tail;","import _arity from \"./internal/_arity.js\";\nimport _pipe from \"./internal/_pipe.js\";\nimport reduce from \"./reduce.js\";\nimport tail from \"./tail.js\";\n/**\n * Performs left-to-right function composition. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n * @symb R.pipe(f, g, h)(a)(b) = h(g(f(a)))(b)\n */\n\nexport default function pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n return _arity(arguments[0].length, reduce(_pipe, arguments[0], tail(arguments)));\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse = /*#__PURE__*/\n_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\nexport default reverse;","import pipe from \"./pipe.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left function composition. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n * @symb R.compose(f, g, h)(a)(b) = f(g(h(a)))(b)\n */\n\nexport default function compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n return pipe.apply(this, reverse(arguments));\n}","import nth from \"./nth.js\";\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\n\nvar head = /*#__PURE__*/\nnth(0);\nexport default head;","export default function _identity(x) {\n return x;\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _identity from \"./internal/_identity.js\";\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity = /*#__PURE__*/\n_curry1(_identity);\nexport default identity;","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _arrayFromIterator from \"./_arrayFromIterator.js\";\nimport _includesWith from \"./_includesWith.js\";\nimport _functionName from \"./_functionName.js\";\nimport _has from \"./_has.js\";\nimport _objectIs from \"./_objectIs.js\";\nimport keys from \"../keys.js\";\nimport type from \"../type.js\";\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparison of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n var b = _arrayFromIterator(bIterator);\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n } // if *a* array contains any element that is not included in *b*\n\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n var typeA = type(a);\n if (typeA !== type(b)) {\n return false;\n }\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n break;\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n break;\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n break;\n }\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n var keysA = keys(a);\n if (keysA.length !== keys(b).length) {\n return false;\n }\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\n }\n return true;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _equals from \"./internal/_equals.js\";\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\n\nvar equals = /*#__PURE__*/\n_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\nexport default equals;","import equals from \"../equals.js\";\nexport default function _indexOf(list, a, idx) {\n var inf, item; // Array.prototype.indexOf doesn't exist below IE9\n\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n while (idx < list.length) {\n item = list[idx];\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n } // non-zero numbers can utilise Set\n\n return list.indexOf(a, idx);\n // all these types can utilise Set\n\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n }\n } // anything else not covered above, defer to R.equals\n\n while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n}","import _indexOf from \"./_indexOf.js\";\nexport default function _includes(a, list) {\n return _indexOf(list, a, 0) >= 0;\n}","export default function _quote(s) {\n var escaped = s.replace(/\\\\/g, '\\\\\\\\').replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t').replace(/\\v/g, '\\\\v').replace(/\\0/g, '\\\\0');\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n}","/**\n * Polyfill from <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString>.\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\nexport default _toISOString;","export default function _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}","export default function _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n return result;\n}","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XFilter = /*#__PURE__*/\nfunction () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n return XFilter;\n}();\nvar _xfilter = /*#__PURE__*/\n_curry2(function _xfilter(f, xf) {\n return new XFilter(f, xf);\n});\nexport default _xfilter;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _filter from \"./internal/_filter.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xfilter from \"./internal/_xfilter.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar filter = /*#__PURE__*/\n_curry2(/*#__PURE__*/\n_dispatchable(['fantasy-land/filter', 'filter'], _xfilter, function (pred, filterable) {\n return _isObject(filterable) ? _reduce(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n return acc;\n }, {}, keys(filterable)) :\n // else\n _filter(pred, filterable);\n}));\nexport default filter;","import _complement from \"./internal/_complement.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport filter from \"./filter.js\";\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 !== 0;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar reject = /*#__PURE__*/\n_curry2(function reject(pred, filterable) {\n return filter(_complement(pred), filterable);\n});\nexport default reject;","import _includes from \"./_includes.js\";\nimport _map from \"./_map.js\";\nimport _quote from \"./_quote.js\";\nimport _toISOString from \"./_toISOString.js\";\nimport keys from \"../keys.js\";\nimport reject from \"../reject.js\";\nexport default function _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return _includes(y, xs) ? '<Circular>' : _toString(y, xs);\n }; // mapPairs :: (Object, [String]) -> [String]\n\n var mapPairs = function (obj, keys) {\n return _map(function (k) {\n return _quote(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + _map(recur, x).join(', ') + '))';\n case '[object Array]':\n return '[' + _map(recur, x).concat(mapPairs(x, reject(function (k) {\n return /^\\d+$/.test(k);\n }, keys(x)))).join(', ') + ']';\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString(x))) + ')';\n case '[object Null]':\n return 'null';\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : _quote(x);\n case '[object Undefined]':\n return 'undefined';\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n return '{' + mapPairs(x, keys(x)).join(', ') + '}';\n }\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _toString from \"./internal/_toString.js\";\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\n\nvar toString = /*#__PURE__*/\n_curry1(function toString(val) {\n return _toString(val, []);\n});\nexport default toString;","import _curry2 from \"./internal/_curry2.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport _isString from \"./internal/_isString.js\";\nimport toString from \"./toString.js\";\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: `R.concat` expects both arguments to be of the same type,\n * unlike the native `Array.prototype.concat` method. It will throw\n * an error if you `concat` an Array with a non-Array value.\n *\n * Dispatches to the `concat` method of the first argument, if present.\n * Can also concatenate two members of a [fantasy-land\n * compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of\n * `secondList`.\n *\n * @example\n *\n * R.concat('ABC', 'DEF'); // 'ABCDEF'\n * R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n * R.concat([], []); //=> []\n */\n\nvar concat = /*#__PURE__*/\n_curry2(function concat(a, b) {\n if (_isArray(a)) {\n if (_isArray(b)) {\n return a.concat(b);\n }\n throw new TypeError(toString(b) + ' is not an array');\n }\n if (_isString(a)) {\n if (_isString(b)) {\n return a + b;\n }\n throw new TypeError(toString(b) + ' is not a string');\n }\n if (a != null && _isFunction(a['fantasy-land/concat'])) {\n return a['fantasy-land/concat'](b);\n }\n if (a != null && _isFunction(a.concat)) {\n return a.concat(b);\n }\n throw new TypeError(toString(a) + ' does not have a method named \"concat\" or \"fantasy-land/concat\"');\n});\nexport default concat;","import _curry2 from \"./internal/_curry2.js\";\nimport _map from \"./internal/_map.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Accepts a converging function and a list of branching functions and returns\n * a new function. The arity of the new function is the same as the arity of\n * the longest branching function. When invoked, this new function is applied\n * to some arguments, and each branching function is applied to those same\n * arguments. The results of each branching function are passed as arguments\n * to the converging function to produce the return value.\n *\n * @func\n * @memberOf R\n * @since v0.4.2\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [((a, b, ...) -> x1), ((a, b, ...) -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} after A function. `after` will be invoked with the return values of\n * `fn1` and `fn2` as its arguments.\n * @param {Array} functions A list of functions.\n * @return {Function} A new function.\n * @see R.useWith\n * @example\n *\n * const average = R.converge(R.divide, [R.sum, R.length])\n * average([1, 2, 3, 4, 5, 6, 7]) //=> 4\n *\n * const strangeConcat = R.converge(R.concat, [R.toUpper, R.toLower])\n * strangeConcat(\"Yodel\") //=> \"YODELyodel\"\n *\n * @symb R.converge(f, [g, h])(a, b) = f(g(a, b), h(a, b))\n */\n\nvar converge = /*#__PURE__*/\n_curry2(function converge(after, fns) {\n return curryN(reduce(max, 0, pluck('length', fns)), function () {\n var args = arguments;\n var context = this;\n return after.apply(context, _map(function (fn) {\n return fn.apply(context, args);\n }, fns));\n });\n});\nexport default converge;","import _curryN from \"./_curryN.js\";\nimport _has from \"./_has.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XReduceBy = /*#__PURE__*/\nfunction () {\n function XReduceBy(valueFn, valueAcc, keyFn, xf) {\n this.valueFn = valueFn;\n this.valueAcc = valueAcc;\n this.keyFn = keyFn;\n this.xf = xf;\n this.inputs = {};\n }\n XReduceBy.prototype['@@transducer/init'] = _xfBase.init;\n XReduceBy.prototype['@@transducer/result'] = function (result) {\n var key;\n for (key in this.inputs) {\n if (_has(key, this.inputs)) {\n result = this.xf['@@transducer/step'](result, this.inputs[key]);\n if (result['@@transducer/reduced']) {\n result = result['@@transducer/value'];\n break;\n }\n }\n }\n this.inputs = null;\n return this.xf['@@transducer/result'](result);\n };\n XReduceBy.prototype['@@transducer/step'] = function (result, input) {\n var key = this.keyFn(input);\n this.inputs[key] = this.inputs[key] || [key, this.valueAcc];\n this.inputs[key][1] = this.valueFn(this.inputs[key][1], input);\n return result;\n };\n return XReduceBy;\n}();\nvar _xreduceBy = /*#__PURE__*/\n_curryN(4, [], function _xreduceBy(valueFn, valueAcc, keyFn, xf) {\n return new XReduceBy(valueFn, valueAcc, keyFn, xf);\n});\nexport default _xreduceBy;","import _clone from \"./internal/_clone.js\";\nimport _curryN from \"./internal/_curryN.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _has from \"./internal/_has.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _reduced from \"./internal/_reduced.js\";\nimport _xreduceBy from \"./internal/_xreduceBy.js\";\n/**\n * Groups the elements of the list according to the result of calling\n * the String-returning function `keyFn` on each element and reduces the elements\n * of each group to a single value via the reducer function `valueFn`.\n *\n * The value function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to short circuit the iteration.\n *\n * This function is basically a more general [`groupBy`](#groupBy) function.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category List\n * @sig ((a, b) -> a) -> a -> (b -> String) -> [b] -> {String: a}\n * @param {Function} valueFn The function that reduces the elements of each group to a single\n * value. Receives two values, accumulator for a particular group and the current element.\n * @param {*} acc The (initial) accumulator value for each group.\n * @param {Function} keyFn The function that maps the list's element into a key.\n * @param {Array} list The array to group.\n * @return {Object} An object with the output of `keyFn` for keys, mapped to the output of\n * `valueFn` for elements which produced that key when passed to `keyFn`.\n * @see R.groupBy, R.reduce, R.reduced\n * @example\n *\n * const groupNames = (acc, {name}) => acc.concat(name)\n * const toGrade = ({score}) =>\n * score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A'\n *\n * var students = [\n * {name: 'Abby', score: 83},\n * {name: 'Bart', score: 62},\n * {name: 'Curt', score: 88},\n * {name: 'Dora', score: 92},\n * ]\n *\n * reduceBy(groupNames, [], toGrade, students)\n * //=> {\"A\": [\"Dora\"], \"B\": [\"Abby\", \"Curt\"], \"F\": [\"Bart\"]}\n */\n\nvar reduceBy = /*#__PURE__*/\n_curryN(4, [], /*#__PURE__*/\n_dispatchable([], _xreduceBy, function reduceBy(valueFn, valueAcc, keyFn, list) {\n return _reduce(function (acc, elt) {\n var key = keyFn(elt);\n var value = valueFn(_has(key, acc) ? acc[key] : _clone(valueAcc, [], [], false), elt);\n if (value && value['@@transducer/reduced']) {\n return _reduced(acc);\n }\n acc[key] = value;\n return acc;\n }, {}, list);\n}));\nexport default reduceBy;","import _includes from \"./_includes.js\";\nvar _Set = /*#__PURE__*/\nfunction () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n }; //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n }; //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n\n return _Set;\n}();\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n return false;\n }\n } // these types can all utilise the native Set\n\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n return false;\n }\n }\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n return false;\n }\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n return false;\n }\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n return false;\n }\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n return false;\n }\n return true;\n }\n\n /* falls through */\n\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n return false;\n } // scan through all previously applied items\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n} // A simple Set type that honours R.equals semantics\n\nexport default _Set;","import _curry2 from \"./internal/_curry2.js\";\nimport _Set from \"./internal/_Set.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Objects and Arrays are compared in terms of\n * value equality, not reference equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.differenceWith, R.symmetricDifference, R.symmetricDifferenceWith, R.without\n * @example\n *\n * R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]\n * R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]\n * R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]\n */\n\nvar difference = /*#__PURE__*/\n_curry2(function difference(first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n var secondLen = second.length;\n var toFilterOut = new _Set();\n for (var i = 0; i < secondLen; i += 1) {\n toFilterOut.add(second[i]);\n }\n while (idx < firstLen) {\n if (toFilterOut.add(first[idx])) {\n out[out.length] = first[idx];\n }\n idx += 1;\n }\n return out;\n});\nexport default difference;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Removes the sub-list of `list` starting at index `start` and containing\n * `count` elements. _Note that this is not destructive_: it returns a copy of\n * the list with the changes.\n * <small>No lists have been harmed in the application of this function.</small>\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} start The position to start removing elements\n * @param {Number} count The number of elements to remove\n * @param {Array} list The list to remove from\n * @return {Array} A new Array with `count` elements from `start` removed.\n * @see R.without\n * @example\n *\n * R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]\n */\n\nvar remove = /*#__PURE__*/\n_curry3(function remove(start, count, list) {\n var result = Array.prototype.slice.call(list, 0);\n result.splice(start, count);\n return result;\n});\nexport default remove;","import _curry2 from \"./internal/_curry2.js\";\nimport _dissoc from \"./internal/_dissoc.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport assoc from \"./assoc.js\";\n/**\n * Makes a shallow clone of an object. Note that this copies and flattens\n * prototype properties onto the new object as well. All non-primitive\n * properties are copied by reference.\n *\n * @private\n * @param {String|Integer} prop The prop operating\n * @param {Object|Array} obj The object to clone\n * @return {Object|Array} A new object equivalent to the original.\n */\n\nfunction _shallowCloneObject(prop, obj) {\n if (_isInteger(prop) && _isArray(obj)) {\n return [].concat(obj);\n }\n var result = {};\n for (var p in obj) {\n result[p] = obj[p];\n }\n return result;\n}\n/**\n * Makes a shallow clone of an object, omitting the property at the given path.\n * Note that this copies and flattens prototype properties onto the new object\n * as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.11.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {Array} path The path to the value to omit\n * @param {Object} obj The object to clone\n * @return {Object} A new object without the property at path\n * @see R.assocPath\n * @example\n *\n * R.dissocPath(['a', 'b', 'c'], {a: {b: {c: 42}}}); //=> {a: {b: {}}}\n */\n\nvar dissocPath = /*#__PURE__*/\n_curry2(function dissocPath(path, obj) {\n if (obj == null) {\n return obj;\n }\n switch (path.length) {\n case 0:\n return obj;\n case 1:\n return _dissoc(path[0], obj);\n default:\n var head = path[0];\n var tail = Array.prototype.slice.call(path, 1);\n if (obj[head] == null) {\n return _shallowCloneObject(head, obj);\n } else {\n return assoc(head, dissocPath(tail, obj[head]), obj);\n }\n }\n});\nexport default dissocPath;","import _isInteger from \"./_isInteger.js\";\nimport _isArray from \"./_isArray.js\";\nimport remove from \"../remove.js\";\n/**\n * Returns a new object that does not contain a `prop` property.\n *\n * @private\n * @param {String|Number} prop The name of the property to dissociate\n * @param {Object|Array} obj The object to clone\n * @return {Object} A new object equivalent to the original but without the specified property\n */\n\nexport default function _dissoc(prop, obj) {\n if (obj == null) {\n return obj;\n }\n if (_isInteger(prop) && _isArray(obj)) {\n return remove(prop, 1, obj);\n }\n var result = {};\n for (var p in obj) {\n result[p] = obj[p];\n }\n delete result[prop];\n return result;\n}","import _curry2 from \"./internal/_curry2.js\";\nimport dissocPath from \"./dissocPath.js\";\n/**\n * Returns a new object that does not contain a `prop` property.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Object\n * @sig String -> {k: v} -> {k: v}\n * @param {String} prop The name of the property to dissociate\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original but without the specified property\n * @see R.assoc, R.omit\n * @example\n *\n * R.dissoc('b', {a: 1, b: 2, c: 3}); //=> {a: 1, c: 3}\n */\n\nvar dissoc = /*#__PURE__*/\n_curry2(function dissoc(prop, obj) {\n return dissocPath([prop], obj);\n});\nexport default dissoc;","import _curry2 from \"./_curry2.js\";\nimport _reduce from \"./_reduce.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XDropLastWhile = /*#__PURE__*/\nfunction () {\n function XDropLastWhile(fn, xf) {\n this.f = fn;\n this.retained = [];\n this.xf = xf;\n }\n XDropLastWhile.prototype['@@transducer/init'] = _xfBase.init;\n XDropLastWhile.prototype['@@transducer/result'] = function (result) {\n this.retained = null;\n return this.xf['@@transducer/result'](result);\n };\n XDropLastWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.retain(result, input) : this.flush(result, input);\n };\n XDropLastWhile.prototype.flush = function (result, input) {\n result = _reduce(this.xf['@@transducer/step'], result, this.retained);\n this.retained = [];\n return this.xf['@@transducer/step'](result, input);\n };\n XDropLastWhile.prototype.retain = function (result, input) {\n this.retained.push(input);\n return result;\n };\n return XDropLastWhile;\n}();\nvar _xdropLastWhile = /*#__PURE__*/\n_curry2(function _xdropLastWhile(fn, xf) {\n return new XDropLastWhile(fn, xf);\n});\nexport default _xdropLastWhile;","import nth from \"./nth.js\";\n/**\n * Returns the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.init, R.head, R.tail\n * @example\n *\n * R.last(['fi', 'fo', 'fum']); //=> 'fum'\n * R.last([]); //=> undefined\n *\n * R.last('abc'); //=> 'c'\n * R.last(''); //=> ''\n */\n\nvar last = /*#__PURE__*/\nnth(-1);\nexport default last;","import _curry1 from \"./internal/_curry1.js\";\nimport _isArguments from \"./internal/_isArguments.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _isString from \"./internal/_isString.js\";\nimport _isTypedArray from \"./internal/_isTypedArray.js\";\n/**\n * Returns the empty value of its argument's type. Ramda defines the empty\n * value of Array (`[]`), Object (`{}`), String (`''`),\n * TypedArray (`Uint8Array []`, `Float32Array []`, etc), and Arguments. Other\n * types are supported if they define `<Type>.empty`,\n * `<Type>.prototype.empty` or implement the\n * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).\n *\n * Dispatches to the `empty` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> a\n * @param {*} x\n * @return {*}\n * @example\n *\n * R.empty(Just(42)); //=> Nothing()\n * R.empty([1, 2, 3]); //=> []\n * R.empty('unicorns'); //=> ''\n * R.empty({x: 1, y: 2}); //=> {}\n * R.empty(Uint8Array.from('123')); //=> Uint8Array []\n */\n\nvar empty = /*#__PURE__*/\n_curry1(function empty(x) {\n return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : _isArray(x) ? [] : _isString(x) ? '' : _isObject(x) ? {} : _isArguments(x) ? function () {\n return arguments;\n }() : _isTypedArray(x) ? x.constructor.from('') : void 0 // else\n ;\n});\nexport default empty;","/**\n * Tests whether or not an object is a typed array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is a typed array, `false` otherwise.\n * @example\n *\n * _isTypedArray(new Uint8Array([])); //=> true\n * _isTypedArray(new Float32Array([])); //=> true\n * _isTypedArray([]); //=> false\n * _isTypedArray(null); //=> false\n * _isTypedArray({}); //=> false\n */\nexport default function _isTypedArray(val) {\n var type = Object.prototype.toString.call(val);\n return type === '[object Uint8ClampedArray]' || type === '[object Int8Array]' || type === '[object Uint8Array]' || type === '[object Int16Array]' || type === '[object Uint16Array]' || type === '[object Int32Array]' || type === '[object Uint32Array]' || type === '[object Float32Array]' || type === '[object Float64Array]' || type === '[object BigInt64Array]' || type === '[object BigUint64Array]';\n}","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XFind = /*#__PURE__*/\nfunction () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n return this.xf['@@transducer/result'](result);\n };\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, input));\n }\n return result;\n };\n return XFind;\n}();\nvar _xfind = /*#__PURE__*/\n_curry2(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\nexport default _xfind;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfind from \"./internal/_xfind.js\";\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar find = /*#__PURE__*/\n_curry2(/*#__PURE__*/\n_dispatchable(['find'], _xfind, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n idx += 1;\n }\n}));\nexport default find;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XFindIndex = /*#__PURE__*/\nfunction () {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n XFindIndex.prototype['@@transducer/init'] = _xfBase.init;\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n return this.xf['@@transducer/result'](result);\n };\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, this.idx));\n }\n return result;\n };\n return XFindIndex;\n}();\nvar _xfindIndex = /*#__PURE__*/\n_curry2(function _xfindIndex(f, xf) {\n return new XFindIndex(f, xf);\n});\nexport default _xfindIndex;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindIndex from \"./internal/_xfindIndex.js\";\n/**\n * Returns the index of the first element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce, R.indexOf\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.findIndex(R.propEq('a', 2))(xs); //=> 1\n * R.findIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findIndex = /*#__PURE__*/\n_curry2(/*#__PURE__*/\n_dispatchable([], _xfindIndex, function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n}));\nexport default findIndex;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XFindLast = /*#__PURE__*/\nfunction () {\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFindLast.prototype['@@transducer/init'] = _xfBase.init;\n XFindLast.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n XFindLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n return result;\n };\n return XFindLast;\n}();\nvar _xfindLast = /*#__PURE__*/\n_curry2(function _xfindLast(f, xf) {\n return new XFindLast(f, xf);\n});\nexport default _xfindLast;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindLast from \"./internal/_xfindLast.js\";\n/**\n * Returns the last element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}\n * R.findLast(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar findLast = /*#__PURE__*/\n_curry2(/*#__PURE__*/\n_dispatchable([], _xfindLast, function findLast(fn, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n idx -= 1;\n }\n}));\nexport default findLast;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XFindLastIndex = /*#__PURE__*/\nfunction () {\n function XFindLastIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.lastIdx = -1;\n }\n XFindLastIndex.prototype['@@transducer/init'] = _xfBase.init;\n XFindLastIndex.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.lastIdx));\n };\n XFindLastIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n if (this.f(input)) {\n this.lastIdx = this.idx;\n }\n return result;\n };\n return XFindLastIndex;\n}();\nvar _xfindLastIndex = /*#__PURE__*/\n_curry2(function _xfindLastIndex(f, xf) {\n return new XFindLastIndex(f, xf);\n});\nexport default _xfindLastIndex;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindLastIndex from \"./internal/_xfindLastIndex.js\";\n/**\n * Returns the index of the last element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce, R.lastIndexOf\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLastIndex(R.propEq('a', 1))(xs); //=> 1\n * R.findLastIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findLastIndex = /*#__PURE__*/\n_curry2(/*#__PURE__*/\n_dispatchable([], _xfindLastIndex, function findLastIndex(fn, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n if (fn(list[idx])) {\n return idx;\n }\n idx -= 1;\n }\n return -1;\n}));\nexport default findLastIndex;","import _curry1 from \"./internal/_curry1.js\";\nimport _makeFlat from \"./internal/_makeFlat.js\";\n/**\n * Returns a new list by pulling every item out of it (and all its sub-arrays)\n * and putting them in a new array, depth-first.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b]\n * @param {Array} list The array to consider.\n * @return {Array} The flattened list.\n * @see R.unnest\n * @example\n *\n * R.flatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]);\n * //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n */\n\nvar flatten = /*#__PURE__*/\n_curry1(/*#__PURE__*/\n_makeFlat(true));\nexport default flatten;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates a new object from a list key-value pairs. If a key appears in\n * multiple pairs, the rightmost pair is included in the object.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [[k,v]] -> {k: v}\n * @param {Array} pairs An array of two-element arrays that will be the keys and values of the output object.\n * @return {Object} The object made by pairing up `keys` and `values`.\n * @see R.toPairs, R.pair\n * @example\n *\n * R.fromPairs([['a', 1], ['b', 2], ['c', 3]]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar fromPairs = /*#__PURE__*/\n_curry1(function fromPairs(pairs) {\n var result = {};\n var idx = 0;\n while (idx < pairs.length) {\n result[pairs[idx][0]] = pairs[idx][1];\n idx += 1;\n }\n return result;\n});\nexport default fromPairs;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport reduceBy from \"./reduceBy.js\";\n/**\n * Splits a list into sub-lists stored in an object, based on the result of\n * calling a key-returning function on each element, and grouping the\n * results according to values returned.\n *\n * Dispatches to the `groupBy` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @typedefn Idx = String | Int | Symbol\n * @sig Idx a => (b -> a) -> [b] -> {a: [b]}\n * @param {Function} fn Function :: a -> Idx\n * @param {Array} list The array to group\n * @return {Object} An object with the output of `fn` for keys, mapped to arrays of elements\n * that produced that key when passed to `fn`.\n * @see R.reduceBy, R.transduce, R.indexBy\n * @example\n *\n * const byGrade = R.groupBy(function(student) {\n * const score = student.score;\n * return score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A';\n * });\n * const students = [{name: 'Abby', score: 84},\n * {name: 'Eddy', score: 58},\n * // ...\n * {name: 'Jack', score: 69}];\n * byGrade(students);\n * // {\n * // 'A': [{name: 'Dianne', score: 99}],\n * // 'B': [{name: 'Abby', score: 84}]\n * // // ...,\n * // 'F': [{name: 'Eddy', score: 58}]\n * // }\n */\n\nvar groupBy = /*#__PURE__*/\n_curry2(/*#__PURE__*/\n_checkForMethod('groupBy', /*#__PURE__*/\nreduceBy(function (acc, item) {\n acc.push(item);\n return acc;\n}, [])));\nexport default groupBy;","import add from \"./add.js\";\n/**\n * Increments its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n + 1\n * @see R.dec\n * @example\n *\n * R.inc(42); //=> 43\n */\n\nvar inc = /*#__PURE__*/\nadd(1);\nexport default inc;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Also works with strings.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.includes(3, [1, 2, 3]); //=> true\n * R.includes(4, [1, 2, 3]); //=> false\n * R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.includes([42], [[42]]); //=> true\n * R.includes('ba', 'banana'); //=>true\n */\n\nvar includes = /*#__PURE__*/\n_curry2(_includes);\nexport default includes;","import slice from \"./slice.js\";\n/**\n * Returns all but the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.last, R.head, R.tail\n * @example\n *\n * R.init([1, 2, 3]); //=> [1, 2]\n * R.init([1, 2]); //=> [1]\n * R.init([1]); //=> []\n * R.init([]); //=> []\n *\n * R.init('abc'); //=> 'ab'\n * R.init('ab'); //=> 'a'\n * R.init('a'); //=> ''\n * R.init(''); //=> ''\n */\n\nvar init = /*#__PURE__*/\nslice(0, -1);\nexport default init;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Inserts the supplied element into the list, at the specified `index`. _Note that\n\n * this is not destructive_: it returns a copy of the list with the changes.\n * <small>No lists have been harmed in the application of this function.</small>\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} index The position to insert the element\n * @param {*} elt The element to insert into the Array\n * @param {Array} list The list to insert into\n * @return {Array} A new Array with `elt` inserted at `index`.\n * @example\n *\n * R.insert(2, 'x', [1,2,3,4]); //=> [1,2,'x',3,4]\n */\n\nvar insert = /*#__PURE__*/\n_curry3(function insert(idx, elt, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n var result = Array.prototype.slice.call(list, 0);\n result.splice(idx, 0, elt);\n return result;\n});\nexport default insert;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Inserts the sub-list into the list, at the specified `index`. _Note that this is not\n * destructive_: it returns a copy of the list with the changes.\n * <small>No lists have been harmed in the application of this function.</small>\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig Number -> [a] -> [a] -> [a]\n * @param {Number} index The position to insert the sub-list\n * @param {Array} elts The sub-list to insert into the Array\n * @param {Array} list The list to insert the sub-list into\n * @return {Array} A new Array with `elts` inserted starting at `index`.\n * @example\n *\n * R.insertAll(2, ['x','y','z'], [1,2,3,4]); //=> [1,2,'x','y','z',3,4]\n */\n\nvar insertAll = /*#__PURE__*/\n_curry3(function insertAll(idx, elts, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n return [].concat(Array.prototype.slice.call(list, 0, idx), elts, Array.prototype.slice.call(list, idx));\n});\nexport default insertAll;","import _curry2 from \"./_curry2.js\";\nimport _Set from \"./_Set.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XUniqBy = /*#__PURE__*/\nfunction () {\n function XUniqBy(f, xf) {\n this.xf = xf;\n this.f = f;\n this.set = new _Set();\n }\n XUniqBy.prototype['@@transducer/init'] = _xfBase.init;\n XUniqBy.prototype['@@transducer/result'] = _xfBase.result;\n XUniqBy.prototype['@@transducer/step'] = function (result, input) {\n return this.set.add(this.f(input)) ? this.xf['@@transducer/step'](result, input) : result;\n };\n return XUniqBy;\n}();\nvar _xuniqBy = /*#__PURE__*/\n_curry2(function _xuniqBy(f, xf) {\n return new XUniqBy(f, xf);\n});\nexport default _xuniqBy;","import identity from \"./identity.js\";\nimport uniqBy from \"./uniqBy.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list. [`R.equals`](#equals) is used to determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniq([1, 1, 2, 1]); //=> [1, 2]\n * R.uniq([1, '1']); //=> [1, '1']\n * R.uniq([[42], [42]]); //=> [[42]]\n */\n\nvar uniq = /*#__PURE__*/\nuniqBy(identity);\nexport default uniq;","import _Set from \"./internal/_Set.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xuniqBy from \"./internal/_xuniqBy.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied function to\n * each list element. Prefers the first item if the supplied function produces\n * the same value on two items. [`R.equals`](#equals) is used for comparison.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> b) -> [a] -> [a]\n * @param {Function} fn A function used to produce a value to use during comparisons.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]\n */\n\nvar uniqBy = /*#__PURE__*/\n_curry2(/*#__PURE__*/\n_dispatchable([], _xuniqBy, function (fn, list) {\n var set = new _Set();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n if (set.add(appliedItem)) {\n result.push(item);\n }\n idx += 1;\n }\n return result;\n}));\nexport default uniqBy;","import _has from \"./_has.js\"; // Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n while (idx < length) {\n var source = arguments[idx];\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n idx += 1;\n }\n return output;\n}\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _clone from \"./internal/_clone.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport _isTransformer from \"./internal/_isTransformer.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _stepCat from \"./internal/_stepCat.js\";\n/**\n * Transforms the items of the list with the transducer and appends the\n * transformed items to the accumulator using an appropriate iterator function\n * based on the accumulator type.\n *\n * The accumulator can be an array, string, object or a transformer. Iterated\n * items will be appended to arrays and concatenated to strings. Objects will\n * be merged directly or 2-item arrays will be merged as key, value pairs.\n *\n * The accumulator can also be a transformer object that provides a 2-arity\n * reducing iterator function, step, 0-arity initial value function, init, and\n * 1-arity result extraction function result. The step function is used as the\n * iterator function in reduce. The result function is used to convert the\n * final accumulator into the return type and in most cases is R.identity. The\n * init function is used to provide the initial accumulator.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the\n * transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig a -> (b -> b) -> [c] -> a\n * @param {*} acc The initial accumulator value.\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.transduce\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n *\n * R.into([], transducer, numbers); //=> [2, 3]\n *\n * const intoArray = R.into([]);\n * intoArray(transducer, numbers); //=> [2, 3]\n */\n\nvar into = /*#__PURE__*/\n_curry3(function into(acc, xf, list) {\n return _isTransformer(acc) ? _reduce(xf(acc), acc['@@transducer/init'](), list) : _reduce(xf(_stepCat(acc)), _clone(acc, [], [], false), list);\n});\nexport default into;","import _curry2 from \"./internal/_curry2.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport curryN from \"./curryN.js\";\nimport toString from \"./toString.js\";\n/**\n * Turns a named method with a specified arity into a function that can be\n * called directly supplied with arguments and a target object.\n *\n * The returned function is curried and accepts `arity + 1` parameters where\n * the final parameter is the target object.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> String -> (a -> b -> ... -> n -> Object -> *)\n * @param {Number} arity Number of arguments the returned function should take\n * before the target object.\n * @param {String} method Name of any of the target object's methods to call.\n * @return {Function} A new curried function.\n * @see R.construct\n * @example\n *\n * const sliceFrom = R.invoker(1, 'slice');\n * sliceFrom(6, 'abcdefghijklm'); //=> 'ghijklm'\n * const sliceFrom6 = R.invoker(2, 'slice')(6);\n * sliceFrom6(8, 'abcdefghijklm'); //=> 'gh'\n *\n * const dog = {\n * speak: async () => 'Woof!'\n * };\n * const speak = R.invoker(0, 'speak');\n * speak(dog).then(console.log) //~> 'Woof!'\n *\n * @symb R.invoker(0, 'method')(o) = o['method']()\n * @symb R.invoker(1, 'method')(a, o) = o['method'](a)\n * @symb R.invoker(2, 'method')(a, b, o) = o['method'](a, b)\n */\n\nvar invoker = /*#__PURE__*/\n_curry2(function invoker(arity, method) {\n return curryN(arity + 1, function () {\n var target = arguments[arity];\n if (target != null && _isFunction(target[method])) {\n return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity));\n }\n throw new TypeError(toString(target) + ' does not have a method named \"' + method + '\"');\n });\n});\nexport default invoker;","import _curry1 from \"./internal/_curry1.js\";\nimport empty from \"./empty.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the given value is its type's empty value; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> Boolean\n * @param {*} x\n * @return {Boolean}\n * @see R.empty\n * @example\n *\n * R.isEmpty([1, 2, 3]); //=> false\n * R.isEmpty([]); //=> true\n * R.isEmpty(''); //=> true\n * R.isEmpty(null); //=> false\n * R.isEmpty({}); //=> true\n * R.isEmpty({length: 0}); //=> false\n * R.isEmpty(Uint8Array.from('')); //=> true\n */\n\nvar isEmpty = /*#__PURE__*/\n_curry1(function isEmpty(x) {\n return x != null && equals(x, empty(x));\n});\nexport default isEmpty;","import invoker from \"./invoker.js\";\n/**\n * Returns a string made by inserting the `separator` between each element and\n * concatenating all the elements into a single string.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig String -> [a] -> String\n * @param {Number|String} separator The string used to separate the elements.\n * @param {Array} xs The elements to join into a string.\n * @return {String} str The string made by concatenating `xs` with `separator`.\n * @see R.split\n * @example\n *\n * const spacer = R.join(' ');\n * spacer(['a', 2, 3.4]); //=> 'a 2 3.4'\n * R.join('|', [1, 2, 3]); //=> '1|2|3'\n */\n\nvar join = /*#__PURE__*/\ninvoker(1, 'join');\nexport default join;","import _curry1 from \"./internal/_curry1.js\";\nimport converge from \"./converge.js\";\n/**\n * juxt applies a list of functions to a list of values.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Function\n * @sig [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])\n * @param {Array} fns An array of functions\n * @return {Function} A function that returns a list of values after applying each of the original `fns` to its parameters.\n * @see R.applySpec\n * @example\n *\n * const getRange = R.juxt([Math.min, Math.max]);\n * getRange(3, 4, 9, -3); //=> [-3, 9]\n * @symb R.juxt([f, g, h])(a, b) = [f(a, b), g(a, b), h(a, b)]\n */\n\nvar juxt = /*#__PURE__*/\n_curry1(function juxt(fns) {\n return converge(function () {\n return Array.prototype.slice.call(arguments, 0);\n }, fns);\n});\nexport default juxt;","export default function _isNumber(x) {\n return Object.prototype.toString.call(x) === '[object Number]';\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _isNumber from \"./internal/_isNumber.js\";\n/**\n * Returns the number of elements in the array by returning `list.length`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [a] -> Number\n * @param {Array} list The array to inspect.\n * @return {Number} The length of the array.\n * @example\n *\n * R.length([]); //=> 0\n * R.length([1, 2, 3]); //=> 3\n */\n\nvar length = /*#__PURE__*/\n_curry1(function length(list) {\n return list != null && _isNumber(list.length) ? list.length : NaN;\n});\nexport default length;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\n/**\n * Returns a lens for the given getter and setter functions. The getter \"gets\"\n * the value of the focus; the setter \"sets\" the value of the focus. The setter\n * should not mutate the data structure.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> ((a, s) -> s) -> Lens s a\n * @param {Function} getter\n * @param {Function} setter\n * @return {Lens}\n * @see R.view, R.set, R.over, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lens(R.prop('x'), R.assoc('x'));\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lens = /*#__PURE__*/\n_curry2(function lens(getter, setter) {\n return function (toFunctorFn) {\n return function (target) {\n return map(function (focus) {\n return setter(focus, target);\n }, toFunctorFn(getter(target)));\n };\n };\n});\nexport default lens;","import _curry3 from \"./internal/_curry3.js\";\nimport adjust from \"./adjust.js\";\nimport always from \"./always.js\";\n/**\n * Returns a new copy of the array with the element at the provided index\n * replaced with the given value.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} idx The index to update.\n * @param {*} x The value to exist at the given index of the returned array.\n * @param {Array|Arguments} list The source array-like object to be updated.\n * @return {Array} A copy of `list` with the value at index `idx` replaced with `x`.\n * @see R.adjust\n * @example\n *\n * R.update(1, '_', ['a', 'b', 'c']); //=> ['a', '_', 'c']\n * R.update(-1, '_', ['a', 'b', 'c']); //=> ['a', 'b', '_']\n * @symb R.update(-1, a, [b, c]) = [b, a]\n * @symb R.update(0, a, [b, c]) = [a, c]\n * @symb R.update(1, a, [b, c]) = [b, a]\n */\n\nvar update = /*#__PURE__*/\n_curry3(function update(idx, x, list) {\n return adjust(idx, always(x), list);\n});\nexport default update;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport nth from \"./nth.js\";\n/**\n * Retrieves the values at given paths of an object.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Object\n * @typedefn Idx = [String | Int | Symbol]\n * @sig [Idx] -> {a} -> [a | Undefined]\n * @param {Array} pathsArray The array of paths to be fetched.\n * @param {Object} obj The object to retrieve the nested properties from.\n * @return {Array} A list consisting of values at paths specified by \"pathsArray\".\n * @see R.path\n * @example\n *\n * R.paths([['a', 'b'], ['p', 0, 'q']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, 3]\n * R.paths([['a', 'b'], ['p', 'r']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, undefined]\n */\n\nvar paths = /*#__PURE__*/\n_curry2(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n p = paths[idx];\n val = _isInteger(p) ? nth(p, val) : val[p];\n idx += 1;\n }\n return val;\n });\n});\nexport default paths;","import _curry2 from \"./internal/_curry2.js\";\nimport paths from \"./paths.js\";\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop, R.nth\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n * R.path(['a', 'b', 0], {a: {b: [1, 2, 3]}}); //=> 1\n * R.path(['a', 'b', -2], {a: {b: [1, 2, 3]}}); //=> 2\n */\n\nvar path = /*#__PURE__*/\n_curry2(function path(pathAr, obj) {\n return paths([pathAr], obj)[0];\n});\nexport default path;","import _curry1 from \"./internal/_curry1.js\";\nimport assocPath from \"./assocPath.js\";\nimport lens from \"./lens.js\";\nimport path from \"./path.js\";\n/**\n * Returns a lens whose focus is the specified path.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig [Idx] -> Lens s a\n * @param {Array} path The path to use.\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xHeadYLens = R.lensPath(['x', 0, 'y']);\n *\n * R.view(xHeadYLens, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> 2\n * R.set(xHeadYLens, 1, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: 1, z: 3}, {y: 4, z: 5}]}\n * R.over(xHeadYLens, R.negate, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: -2, z: 3}, {y: 4, z: 5}]}\n */\n\nvar lensPath = /*#__PURE__*/\n_curry1(function lensPath(p) {\n return lens(path(p), assocPath(p));\n});\nexport default lensPath;","import _curry1 from \"./internal/_curry1.js\";\nimport assoc from \"./assoc.js\";\nimport lens from \"./lens.js\";\nimport prop from \"./prop.js\";\n/**\n * Returns a lens whose focus is the specified property.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig String -> Lens s a\n * @param {String} k\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lensProp = /*#__PURE__*/\n_curry1(function lensProp(k) {\n return lens(prop(k), assoc(k));\n});\nexport default lensProp;","import add from \"./add.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Adds together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The sum of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.sum([2,4,6,8,100,1]); //=> 121\n */\n\nvar sum = /*#__PURE__*/\nreduce(add, 0);\nexport default sum;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\n\nvar mergeWithKey = /*#__PURE__*/\n_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n return result;\n});\nexport default mergeWithKey;","import _curry3 from \"./internal/_curry3.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport mergeWithKey from \"./mergeWithKey.js\";\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWithKey = /*#__PURE__*/\n_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\nexport default mergeDeepWithKey;","import _curry2 from \"./internal/_curry2.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepRight, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepLeft({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 10, contact: { email: 'moo@example.com' }}\n */\n\nvar mergeDeepLeft = /*#__PURE__*/\n_curry2(function mergeDeepLeft(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return lVal;\n }, lObj, rObj);\n});\nexport default mergeDeepLeft;","import _curry2 from \"./internal/_curry2.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\n\nvar mergeDeepRight = /*#__PURE__*/\n_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\nexport default mergeDeepRight;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\n\nvar mergeRight = /*#__PURE__*/\n_curry2(function mergeRight(l, r) {\n return _objectAssign({}, l, r);\n});\nexport default mergeRight;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the smaller of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.minBy, R.max\n * @example\n *\n * R.min(789, 123); //=> 123\n * R.min('a', 'b'); //=> 'a'\n */\n\nvar min = /*#__PURE__*/\n_curry2(function min(a, b) {\n return b < a ? b : a;\n});\nexport default min;","import _curry1 from \"./internal/_curry1.js\";\nimport _of from \"./internal/_of.js\";\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\n\nvar of = /*#__PURE__*/\n_curry1(_of);\nexport default of;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\n\nvar omit = /*#__PURE__*/\n_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _curry2 from \"./internal/_curry2.js\";\nimport _assertPromise from \"./internal/_assertPromise.js\";\n/**\n * Returns the result of applying the onFailure function to the value inside\n * a failed promise. This is useful for handling rejected promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig (e -> b) -> (Promise e a) -> (Promise e b)\n * @sig (e -> (Promise f b)) -> (Promise e a) -> (Promise f b)\n * @param {Function} onFailure The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(null, onFailure)`\n * @see R.andThen\n * @example\n *\n * const failedFetch = id => Promise.reject('bad ID');\n * const useDefault = () => ({ firstName: 'Bob', lastName: 'Loblaw' });\n *\n * //recoverFromFailure :: String -> Promise ({ firstName, lastName })\n * const recoverFromFailure = R.pipe(\n * failedFetch,\n * R.otherwise(useDefault),\n * R.andThen(R.pick(['firstName', 'lastName'])),\n * );\n * recoverFromFailure(12345).then(console.log);\n */\n\nvar otherwise = /*#__PURE__*/\n_curry2(function otherwise(f, p) {\n _assertPromise('otherwise', p);\n return p.then(null, f);\n});\nexport default otherwise;","import _curry3 from \"./internal/_curry3.js\"; // `Identity` is a functor that holds a single value, where `map` simply\n// transforms the held value with the provided function.\n\nvar Identity = function (x) {\n return {\n value: x,\n map: function (f) {\n return Identity(f(x));\n }\n };\n};\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the result of applying the given function to\n * the focused value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> (a -> a) -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.view, R.set, R.lens, R.lensIndex, R.lensProp, R.lensPath\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz']\n */\n\nvar over = /*#__PURE__*/\n_curry3(function over(lens, f, x) {\n // The value returned by the getter function is first transformed with `f`,\n // then set as the value of an `Identity`. This is then mapped over with the\n // setter function of the lens.\n return lens(function (y) {\n return Identity(f(y));\n })(x).value;\n});\nexport default over;","import _concat from \"./internal/_concat.js\";\nimport _createPartialApplicator from \"./internal/_createPartialApplicator.js\";\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided initially followed by the arguments provided to `g`.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [a, b, c, ...] -> ((d, e, f, ..., n) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partialRight, R.curry\n * @example\n *\n * const multiply2 = (a, b) => a * b;\n * const double = R.partial(multiply2, [2]);\n * double(3); //=> 6\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const sayHello = R.partial(greet, ['Hello']);\n * const sayHelloToMs = R.partial(sayHello, ['Ms.']);\n * sayHelloToMs('Jane', 'Jones'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partial(f, [a, b])(c, d) = f(a, b, c, d)\n */\n\nvar partial = /*#__PURE__*/\n_createPartialApplicator(_concat);\nexport default partial;","import filter from \"./filter.js\";\nimport juxt from \"./juxt.js\";\nimport reject from \"./reject.js\";\n/**\n * Takes a predicate and a list or other `Filterable` object and returns the\n * pair of filterable objects of the same type of elements which do and do not\n * satisfy, the predicate, respectively. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> [f a, f a]\n * @param {Function} pred A predicate to determine which side the element belongs to.\n * @param {Array} filterable the list (or other filterable) to partition.\n * @return {Array} An array, containing first the subset of elements that satisfy the\n * predicate, and second the subset of elements that do not satisfy.\n * @see R.filter, R.reject\n * @example\n *\n * R.partition(R.includes('s'), ['sss', 'ttt', 'foo', 'bars']);\n * // => [ [ 'sss', 'bars' ], [ 'ttt', 'foo' ] ]\n *\n * R.partition(R.includes('s'), { a: 'sss', b: 'ttt', foo: 'bars' });\n * // => [ { a: 'sss', foo: 'bars' }, { b: 'ttt' } ]\n */\n\nvar partition = /*#__PURE__*/\njuxt([filter, reject]);\nexport default partition;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object containing only the keys specified. If\n * the key does not exist, the property is ignored.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.omit, R.props\n * @example\n *\n * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}\n */\n\nvar pick = /*#__PURE__*/\n_curry2(function pick(names, obj) {\n var result = {};\n var idx = 0;\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n idx += 1;\n }\n return result;\n});\nexport default pick;","import _curry3 from \"./_curry3.js\";\nimport _xfBase from \"./_xfBase.js\";\nimport _promap from \"./_promap.js\";\nvar XPromap = /*#__PURE__*/\nfunction () {\n function XPromap(f, g, xf) {\n this.xf = xf;\n this.f = f;\n this.g = g;\n }\n XPromap.prototype['@@transducer/init'] = _xfBase.init;\n XPromap.prototype['@@transducer/result'] = _xfBase.result;\n XPromap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, _promap(this.f, this.g, input));\n };\n return XPromap;\n}();\nvar _xpromap = /*#__PURE__*/\n_curry3(function _xpromap(f, g, xf) {\n return new XPromap(f, g, xf);\n});\nexport default _xpromap;","import _curry3 from \"./internal/_curry3.js\";\nimport prop from \"./prop.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\n\nvar propEq = /*#__PURE__*/\n_curry3(function propEq(name, val, obj) {\n return equals(val, prop(name, obj));\n});\nexport default propEq;","import _curry3 from \"./internal/_curry3.js\";\nimport always from \"./always.js\";\nimport over from \"./over.js\";\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the given value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> a -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.view, R.over, R.lens, R.lensIndex, R.lensProp, R.lensPath\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.set(xLens, 8, {x: 1, y: 2}); //=> {x: 8, y: 2}\n */\n\nvar set = /*#__PURE__*/\n_curry3(function set(lens, v, x) {\n return over(lens, always(v), x);\n});\nexport default set;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Sorts the list according to the supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord b => (a -> b) -> [a] -> [a]\n * @param {Function} fn\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted by the keys generated by `fn`.\n * @example\n *\n * const sortByFirstItem = R.sortBy(R.prop(0));\n * const pairs = [[-1, 1], [-2, 2], [-3, 3]];\n * sortByFirstItem(pairs); //=> [[-3, 3], [-2, 2], [-1, 1]]\n *\n * const sortByNameCaseInsensitive = R.sortBy(R.compose(R.toLower, R.prop('name')));\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const bob = {\n * name: 'Bob',\n * age: -10\n * };\n * const clara = {\n * name: 'clara',\n * age: 314.159\n * };\n * const people = [clara, bob, alice];\n * sortByNameCaseInsensitive(people); //=> [alice, bob, clara]\n */\n\nvar sortBy = /*#__PURE__*/\n_curry2(function sortBy(fn, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n });\n});\nexport default sortBy;","import invoker from \"./invoker.js\";\n/**\n * Splits a string into an array of strings based on the given\n * separator.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig (String | RegExp) -> String -> [String]\n * @param {String|RegExp} sep The pattern.\n * @param {String} str The string to separate into an array.\n * @return {Array} The array of strings from `str` separated by `sep`.\n * @see R.join\n * @example\n *\n * const pathComponents = R.split('/');\n * R.tail(pathComponents('/usr/local/bin/node')); //=> ['usr', 'local', 'bin', 'node']\n *\n * R.split('.', 'a.b.c.xyz.d'); //=> ['a', 'b', 'c', 'xyz', 'd']\n */\n\nvar split = /*#__PURE__*/\ninvoker(1, 'split');\nexport default split;","import _curry2 from \"./internal/_curry2.js\";\nimport length from \"./length.js\";\nimport slice from \"./slice.js\";\n/**\n * Splits a given list or string at a given index.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig Number -> [a] -> [[a], [a]]\n * @sig Number -> String -> [String, String]\n * @param {Number} index The index where the array/string is split.\n * @param {Array|String} array The array/string to be split.\n * @return {Array}\n * @example\n *\n * R.splitAt(1, [1, 2, 3]); //=> [[1], [2, 3]]\n * R.splitAt(5, 'hello world'); //=> ['hello', ' world']\n * R.splitAt(-1, 'foobar'); //=> ['fooba', 'r']\n */\n\nvar splitAt = /*#__PURE__*/\n_curry2(function splitAt(index, array) {\n return [slice(0, index, array), slice(index, length(array), array)];\n});\nexport default splitAt;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes a list and a predicate and returns a pair of lists with the following properties:\n *\n * - the result of concatenating the two output lists is equivalent to the input list;\n * - none of the elements of the first output list satisfies the predicate; and\n * - if the second output list is non-empty, its first element satisfies the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [[a], [a]]\n * @param {Function} pred The predicate that determines where the array is split.\n * @param {Array} list The array to be split.\n * @return {Array}\n * @example\n *\n * R.splitWhen(R.equals(2), [1, 2, 3, 1, 2, 3]); //=> [[1], [2, 3, 1, 2, 3]]\n */\n\nvar splitWhen = /*#__PURE__*/\n_curry2(function splitWhen(pred, list) {\n var idx = 0;\n var len = list.length;\n var prefix = [];\n while (idx < len && !pred(list[idx])) {\n prefix.push(list[idx]);\n idx += 1;\n }\n return [prefix, Array.prototype.slice.call(list, idx)];\n});\nexport default splitWhen;","import _cloneRegExp from \"./internal/_cloneRegExp.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _isRegExp from \"./internal/_isRegExp.js\";\nimport toString from \"./toString.js\";\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\n\nvar test = /*#__PURE__*/\n_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nexport default test;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Converts an object into an array of key, value arrays. Only the object's\n * own properties are used.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own properties.\n * @see R.fromPairs, R.keys, R.values\n * @example\n *\n * R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]\n */\n\nvar toPairs = /*#__PURE__*/\n_curry1(function toPairs(obj) {\n var pairs = [];\n for (var prop in obj) {\n if (_has(prop, obj)) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n }\n return pairs;\n});\nexport default toPairs;","import _curry1 from \"./internal/_curry1.js\";\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\n\nvar trim = !hasProtoTrim || /*#__PURE__*/\nws.trim() || ! /*#__PURE__*/\nzeroWidth.trim() ? /*#__PURE__*/\n_curry1(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) : /*#__PURE__*/\n_curry1(function trim(str) {\n return str.trim();\n});\nexport default trim;","import _curry2 from \"./_curry2.js\";\nimport _includesWith from \"./_includesWith.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XUniqWith = /*#__PURE__*/\nfunction () {\n function XUniqWith(pred, xf) {\n this.xf = xf;\n this.pred = pred;\n this.items = [];\n }\n XUniqWith.prototype['@@transducer/init'] = _xfBase.init;\n XUniqWith.prototype['@@transducer/result'] = _xfBase.result;\n XUniqWith.prototype['@@transducer/step'] = function (result, input) {\n if (_includesWith(this.pred, input, this.items)) {\n return result;\n } else {\n this.items.push(input);\n return this.xf['@@transducer/step'](result, input);\n }\n };\n return XUniqWith;\n}();\nvar _xuniqWith = /*#__PURE__*/\n_curry2(function _xuniqWith(pred, xf) {\n return new XUniqWith(pred, xf);\n});\nexport default _xuniqWith;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _includesWith from \"./internal/_includesWith.js\";\nimport _xuniqWith from \"./internal/_xuniqWith.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied predicate to\n * two list elements. Prefers the first item if two items compare equal based\n * on the predicate.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * const strEq = R.eqBy(String);\n * R.uniqWith(strEq)([1, '1', 2, 1]); //=> [1, 2]\n * R.uniqWith(strEq)([{}, {}]); //=> [{}]\n * R.uniqWith(strEq)([1, '1', 1]); //=> [1]\n * R.uniqWith(strEq)(['1', 1, 1]); //=> ['1']\n */\n\nvar uniqWith = /*#__PURE__*/\n_curry2(/*#__PURE__*/\n_dispatchable([], _xuniqWith, function (pred, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var item;\n while (idx < len) {\n item = list[idx];\n if (!_includesWith(pred, item, result)) {\n result[result.length] = item;\n }\n idx += 1;\n }\n return result;\n}));\nexport default uniqWith;","import _concat from \"./internal/_concat.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport uniqWith from \"./uniqWith.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list. Duplication is determined according to the value returned by\n * applying the supplied predicate to two list elements. If an element exists\n * in both lists, the first element from the first list will be used.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [*] -> [*] -> [*]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @see R.union\n * @example\n *\n * const l1 = [{a: 1}, {a: 2}];\n * const l2 = [{a: 1}, {a: 4}];\n * R.unionWith(R.eqBy(R.prop('a')), l1, l2); //=> [{a: 1}, {a: 2}, {a: 4}]\n */\n\nvar unionWith = /*#__PURE__*/\n_curry3(function unionWith(pred, list1, list2) {\n return uniqWith(pred, _concat(list1, list2));\n});\nexport default unionWith;","import _curry2 from \"./internal/_curry2.js\"; // `Const` is a functor that effectively ignores the function given to `map`.\n\nvar Const = function (x) {\n return {\n value: x,\n 'fantasy-land/map': function () {\n return this;\n }\n };\n};\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> s -> a\n * @param {Lens} lens\n * @param {*} x\n * @return {*}\n * @see R.set, R.over, R.lens, R.lensIndex, R.lensProp, R.lensPath\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.view(xLens, {x: 4, y: 2}); //=> 4\n */\n\nvar view = /*#__PURE__*/\n_curry2(function view(lens, x) {\n // Using `Const` effectively ignores the setter function of the `lens`,\n // leaving the value returned by the getter function unmodified.\n return lens(Const)(x).value;\n});\nexport default view;","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.moment = factory();\n})(this, function () {\n 'use strict';\n\n var hookCallback;\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n function isUndefined(input) {\n return input === void 0;\n }\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n return a;\n }\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n }\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n return false;\n };\n }\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid = flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n if (m._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [],\n updateInProgress = false;\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n function isMoment(obj) {\n return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n }\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n function deprecate(msg, fn) {\n var firstTime = true;\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n var deprecations = {};\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n }\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n var keys;\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n };\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](m);\n }\n function expandFormat(format, locale) {\n var i = 5;\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n return format;\n }\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n };\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n if (format || !formatUpper) {\n return format;\n }\n this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {\n if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {\n return tok.slice(1);\n }\n return tok;\n }).join('');\n return this._longDateFormat[key];\n }\n var defaultInvalidDate = 'Invalid date';\n function invalidDate() {\n return this._invalidDate;\n }\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n };\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\n }\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year'\n };\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n return normalizedInput;\n }\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1\n };\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({\n unit: u,\n priority: priorities[u]\n });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n var match1 = /\\d/,\n // 0 - 9\n match2 = /\\d\\d/,\n // 00 - 99\n match3 = /\\d{3}/,\n // 000 - 999\n match4 = /\\d{4}/,\n // 0000 - 9999\n match6 = /[+-]?\\d{6}/,\n // -999999 - 999999\n match1to2 = /\\d\\d?/,\n // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/,\n // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/,\n // 99999 - 999999\n match1to3 = /\\d{1,3}/,\n // 0 - 999\n match1to4 = /\\d{1,4}/,\n // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/,\n // -999999 - 999999\n matchUnsigned = /\\d+/,\n // 0 - inf\n matchSigned = /[+-]?\\d+/,\n // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi,\n // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi,\n // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/,\n // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/,\n // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/,\n // 0-99\n regexes;\n regexes = {};\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n return value;\n }\n var tokens = {};\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n var d = mom._d,\n isUTC = mom._isUTC;\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN;\n // Just in case\n }\n }\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n d = mom._d;\n isUTC = mom._isUTC;\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC ? d.setUTCMilliseconds(value) : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break;\n // See below ...\n default:\n return;\n // Just in case\n }\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC ? d.setUTCFullYear(year, month, date) : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n function mod(n, x) {\n return (n % x + x) % x;\n }\n var indexOf;\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months) ? this._months : this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n var month = value,\n date = mom.date();\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC ? mom._d.setUTCMonth(month, date) : mom._d.setMonth(month, date));\n return mom;\n }\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n }\n }\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n return date;\n }\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n return {\n week: resWeek,\n year: resYear\n };\n }\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n var defaultLocaleWeek = {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n };\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n return null;\n }\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n }\n function localeWeekdaysShort(m) {\n return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n function localeWeekdaysMin(m) {\n return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n function kFormat() {\n return this.hours() || 24;\n }\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports && isLocaleNameSane(name)) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n return globalLocale._abbr;\n }\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n if (!key) {\n return globalLocale;\n }\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n return chooseLocale(key);\n }\n function listLocales() {\n return keys(locales);\n }\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n if (a && getParsingFlags(m).overflow === -2) {\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n getParsingFlags(m).overflow = overflow;\n }\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/], ['YYYYMM', /\\d{6}/, false], ['YYYY', /\\d{4}/, false]],\n // iso time formats and regexes\n isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n return result;\n }\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^()]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n });\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n if (config._d) {\n return;\n }\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n curWeek = weekOfYear(createLocal(), dow, doy);\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n configFromArray(config);\n checkOverflow(config);\n }\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n if (!bestFormatIsValid) {\n if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n extend(config, bestMoment || tempConfig);\n }\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n configFromArray(config);\n }\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n return res;\n }\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n config._locale = config._locale || getLocale(config._l);\n if (input === null || format === undefined && input === '') {\n return createInvalid({\n nullInput: true\n });\n }\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n if (!isValid(config)) {\n config._d = null;\n }\n return config;\n }\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n return createFromConfig(c);\n }\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }),\n prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n });\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isBefore', args);\n }\n function max() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isAfter', args);\n }\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n return true;\n }\n function isValid$1() {\n return this._isValid;\n }\n function createInvalid$1() {\n return createDuration(NaN);\n }\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds + seconds * 1e3 +\n // 1000\n minutes * 6e4 +\n // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n this._data = {};\n this._locale = getLocale();\n this._bubble();\n }\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n });\n }\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n if (matches === null) {\n return null;\n }\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n this.utcOffset(input, keepLocalTime);\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n return (this.utcOffset() - input) % 60 === 0;\n }\n function isDaylightSavingTime() {\n return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n }\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n var c = {},\n other;\n copyConfig(c, this);\n c = prepareConfig(c);\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n return this._isDSTShifted;\n }\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if (match = aspNetRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (match = isoRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign)\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n ret = new Duration(duration);\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n return ret;\n }\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n function positiveMomentsDifference(base, other) {\n var res = {};\n res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n return res;\n }\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {\n milliseconds: 0,\n months: 0\n };\n }\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val;\n val = period;\n period = tmp;\n }\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n if (!mom.isValid()) {\n // No op\n return;\n }\n updateOffset = updateOffset == null ? true : updateOffset;\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;\n }\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'],\n i,\n property,\n propertyLen = properties.length;\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n return objectTest && propertyTest;\n }\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest = input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'],\n i,\n property;\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n return objectTest && propertyTest;\n }\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n }\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n function clone() {\n return new Moment(this);\n }\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n if (!this.isValid()) {\n return NaN;\n }\n that = cloneWithOffset(input, this);\n if (!that.isValid()) {\n return NaN;\n }\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n units = normalizeUnits(units);\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break;\n // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break;\n // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break;\n // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break;\n // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break;\n // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n return asFloat ? output : absFloor(output);\n }\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n return this.format(prefix + year + datetime + suffix);\n }\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n function from(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n to: this,\n from: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n function to(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n from: this,\n to: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n });\n function localeData() {\n return this._locale;\n }\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n function toDate() {\n return new Date(this.valueOf());\n }\n function toArray() {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n function isValid$2() {\n return isValid(this);\n }\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n return '';\n }\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n return '';\n }\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n return '';\n }\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {\n return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;\n }\n }\n return this.year();\n }\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.week(), this.weekday() + this.localeData()._week.dow, this.localeData()._week.dow, this.localeData()._week.doy);\n }\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n var proto = Moment.prototype;\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n function preParsePostFormat(string) {\n return string;\n }\n var proto$1 = Locale.prototype;\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n format = format || '';\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n format = format || '';\n }\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n getSetGlobalLocale('en', {\n eras: [{\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC'\n }],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n var mathAbs = Math.abs;\n function abs() {\n var data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n return this;\n }\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n data.days = days;\n data.months = months;\n data.years = years;\n return this;\n }\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n units = normalizeUnits(units);\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n function clone$1() {\n return createDuration(this);\n }\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n function weeks() {\n return absFloor(this.days() / 7);\n }\n var round = Math.round,\n thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month/week\n w: null,\n // weeks to month\n M: 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];\n if (thresholds.w != null) {\n a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];\n }\n a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n return locale.postformat(output);\n }\n var abs$1 = Math.abs;\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');\n }\n var proto$2 = Duration.prototype;\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n setHookCallback(createLocal);\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD',\n // <input type=\"date\" />\n TIME: 'HH:mm',\n // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss',\n // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS',\n // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW',\n // <input type=\"week\" />\n MONTH: 'YYYY-MM' // <input type=\"month\" />\n };\n return hooks;\n});","import * as React from 'react';\n\nimport GenLoadingSpinner from './LoadingSpinner'\n\ninterface GenButtonProps {\n alertColor?: boolean;\n bottom_margin?: boolean;\n className?: string;\n confirmMessage?: string;\n destructive?: boolean;\n disabled?: boolean;\n highlighted?: boolean;\n href?: string;\n loading?: boolean;\n name: React.ReactNode;\n onClick?: (value: React.MouseEvent) => void;\n small?: boolean;\n spanClasses?: string;\n target?: \"_blank\";\n}\n\nexport default function GenButton(props: GenButtonProps) {\n const internalOnClick = (value: React.MouseEvent) => {\n if (!props.disabled) {\n if (props.confirmMessage && !confirm(props.confirmMessage)) {\n return\n }\n\n if (props.href) {\n if (props.target === \"_blank\") {\n window.open(props.href, \"_blank\");\n } else {\n Turbolinks.visit(props.href)\n }\n } else if(props.onClick) {\n props.onClick(value);\n }\n value.stopPropagation();\n }\n };\n\n let classes = \"gen-button\";\n let spanClasses = \"bg-sky-600 border border-sky-600 button-name\"\n\n if (props.spanClasses) {\n spanClasses = `${props.spanClasses} ` + spanClasses;\n }\n\n if (props.disabled) {\n classes += \" disabled cursor-not-allowed\";\n }\n\n if (props.highlighted) {\n classes += \" highlighted\";\n\n if (!props.disabled) {\n spanClasses += \" hover:bg-sky-500\"\n }\n }\n\n if (props.destructive) {\n classes += \" destructive\"\n }\n\n if (props.small) {\n classes += \" small\";\n }\n\n if (props.alertColor) {\n classes += \" alertColor\";\n }\n\n if (props.bottom_margin) {\n classes += \" bottom_margin\";\n }\n\n if (props.className) {\n classes += ` ${props.className}`;\n }\n\n return (\n <div className={classes} onClick={internalOnClick}>\n <span className={spanClasses}>{props.loading ? <GenLoadingSpinner/> : props.name}</span>\n </div>\n );\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n return getRandomValues(rnds8);\n}","var randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import validate from './validate.js';\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr) {\n let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n //\n // Note to future-self: No, you can't remove the `toLowerCase()` call.\n // REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr) {\n let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var uuid = unsafeStringify(arr, offset);\n // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;","import REGEX from './regex.js';\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\nexport default validate;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;","import * as R from 'ramda'\n\nimport { splitInlineJSONAtIndex } from './inline_json'\n\nexport function deepFind(data, tester) {\n let result = null;\n if (data instanceof Array) {\n for(let i = 0; i < data.length; i++) {\n result = deepFind(data[i], tester);\n if (result) {\n return result;\n }\n }\n } else if (data instanceof Object) {\n if(tester(data)) {\n return data;\n }\n\n for(let prop in data) {\n if(data[prop] instanceof Object || data[prop] instanceof Array) {\n result = deepFind(data[prop], tester);\n if (result) {\n return result;\n }\n }\n }\n }\n return result;\n}\n\nexport function deepFindLineage(data, tester) {\n let result = null;\n if (data instanceof Array) {\n for(let i = 0; i < data.length; i++) {\n result = deepFindLineage(data[i], tester);\n if (result) {\n return result;\n }\n }\n } else {\n if(tester(data)) {\n return [data];\n }\n\n for(let prop in data) {\n if(data[prop] instanceof Object || data[prop] instanceof Array) {\n result = deepFindLineage(data[prop], tester);\n if (result) {\n return ([data].concat(result));\n }\n }\n }\n }\n return result;\n}\n\nexport function deepFindPath(data, tester) {\n let result = null;\n if (data instanceof Array) {\n for(let i = 0; i < data.length; i++) {\n result = deepFindPath(data[i], tester);\n if (result) {\n return [i].concat(result);\n }\n }\n } else {\n if(tester(data)) {\n return [];\n }\n\n for(let prop in data) {\n if(data[prop] instanceof Object || data[prop] instanceof Array) {\n result = deepFindPath(data[prop], tester);\n if (result) {\n return ([prop].concat(result));\n }\n }\n }\n }\n return result;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n////////////////////////////////////////////////////////////////////////////////\n\nexport function deepFindByUID(data, uid) {\n return(deepFind(data, datum => (datum.type !== undefined) && (datum.uid === uid)));\n}\n\nexport function deepFindLineageByUID(data, uid) {\n return(deepFindLineage(data, datum => (datum.type !== undefined) && (datum.uid === uid)));\n}\n\nexport function deepFindAncestorsByUID(data, uid) {\n let lineage = deepFindLineageByUID(data, uid)\n\n return lineage && R.init(lineage)\n}\n\nexport function deepFindParentByUID(data, uid) {\n let lineage = deepFindLineageByUID(data, uid)\n\n return lineage && R.last(R.init(lineage))\n}\n\nexport function deepFindSiblingBeforeByUID(data, uid) {\n let path = deepFindPathByUID(data, uid)\n\n if (R.length(path) > 0 && R.last(path) > 0) {\n let siblingLineage = R.update(-1, R.last(path) - 1, path)\n\n return R.view(R.lensPath(siblingLineage), data)\n } else {\n return undefined\n }\n}\n\nexport function deepFindOldestNotSectionAncestorByUID(data, uid) {\n let lineage = deepFindLineageByUID(data, uid)\n\n return R.find(node => node.type !== 'section', lineage)\n}\n\nexport function deepFindYoungestSectionAncestorByUID(data, uid) {\n let lineage = deepFindLineageByUID(data, uid)\n\n return R.findLast(node => node.type === 'section', lineage)\n}\n\nexport function deepFindPathByUID(data, uid) {\n return(deepFindPath(data, datum => (datum.type !== undefined) && (datum.uid === uid)));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n////////////////////////////////////////////////////////////////////////////////\n\nexport function insertBeforeNodeByUID(data, uid, toAdd) {\n let path = deepFindPathByUID(data, uid)\n let newIndex = R.last(path)\n\n return R.over(R.lensPath(R.init(path)), R.insert(newIndex, toAdd), data)\n}\n\nexport function insertAfterNodeByUID(data, uid, toAdd) {\n let path = deepFindPathByUID(data, uid)\n let newIndex = R.last(path) + 1\n\n return R.over(R.lensPath(R.init(path)), R.insert(newIndex, toAdd), data)\n}\n\nexport function insertAfterNodeByUIDAtSectionLevel(data, uid, toAdd) {\n let lineage = deepFindLineageByUID(data, uid)\n let parentSection = R.findLast(R.propEq('type', 'section'), lineage)\n\n let pathFromParent = deepFindPathByUID(parentSection, uid)\n let newParentContentKey = pathFromParent[0]\n let newParentIndex = pathFromParent[1] + 1\n\n let pathToParent = deepFindPathByUID(data, parentSection.uid)\n\n return R.over(R.lensPath(pathToParent.concat([newParentContentKey])), R.insert(newParentIndex, toAdd), data)\n}\n\nexport function deleteNodeByUID(data, uid) {\n let path = deepFindPathByUID(data, uid)\n\n return path ? R.over(R.lensPath(R.init(path)), R.remove(R.last(path), 1), data) : data\n}\n\nexport function replaceNodeByUID(data, uid, toReplaceWith) {\n let path = deepFindPathByUID(data, uid)\n\n return R.over(R.lensPath(R.init(path)), R.update(R.last(path), toReplaceWith), data)\n}\n\nexport function replaceNodeWithArrayByUID(data, uid, toReplaceWith) {\n let path = deepFindPathByUID(data, uid)\n\n let indexToReplace = R.last(path)\n let functionToReplaceWith = R.compose(R.insertAll(indexToReplace, toReplaceWith), R.remove(indexToReplace, 1))\n\n return R.over(R.lensPath(R.init(path)), functionToReplaceWith, data)\n}\n\nexport function setNodeValueByUIDAndKey(data, uid, key, newValue) {\n let mediaTypePath = deepFindPathByUID(data, uid)\n let mediaTypeLens = R.lensPath(mediaTypePath.concat([key]))\n\n return R.set(mediaTypeLens, newValue, data)\n}\n\nexport function modifyNodeValueByUIDAndKey(data, uid, key, func) {\n let mediaTypePath = deepFindPathByUID(data, uid)\n let mediaTypeLens = R.lensPath(mediaTypePath.concat([key]))\n\n return R.over(mediaTypeLens, func, data)\n}\n\nexport function siblingIndexByUID(data, uid) {\n return R.last(deepFindPathByUID(data, uid))\n}\n\nexport function siblingCountByUID(data, uid) {\n return R.length(R.view(R.lensPath(R.init(deepFindPathByUID(data, uid))), data))\n}\n\n////////////////////////////////////////////////////////////////////////////////\n////////////////////////////////////////////////////////////////////////////////\n\nexport function splitNodeAtIndex(node, contentKey, index) {\n const [content1, content2] = splitInlineJSONAtIndex(node[contentKey], index)\n\n return [\n {\n ...node,\n [contentKey]: content1\n },\n {\n ...node,\n [contentKey]: content2\n },\n ]\n}\n\n////////////////////////////////////////////////////////////////////////////////\n////////////////////////////////////////////////////////////////////////////////\nimport { v4 as uuidv4 } from 'uuid'\n\nexport function generateNode(type, args={}) {\n let defaults\n switch (type) {\n case 'paragraph':\n case 'listItem':\n defaults = {\n content: \"\"\n }\n break;\n case 'regularList':\n case 'numberedList':\n defaults = {\n content: [generateNode('listItem')]\n }\n break;\n case 'audio':\n case 'image':\n defaults = {\n title : '',\n source: 'local',\n uri: '',\n }\n break;\n case 'video':\n defaults = {\n title : '',\n source: 'reeldx',\n uri: '',\n }\n break;\n default:\n defaults = {}\n }\n\n return {\n type: type,\n uid: uuidv4(),\n ...defaults,\n ...args\n }\n}\n\nexport function newAction(action, args={}) {\n return {\n type: \"action\",\n action,\n arguments: args,\n }\n}\n\nexport function newSetNodeKVPairAction(uid, key, value, targetType?, targetId?) {\n return newAction(\"setNodeKVPair\", { uid, key, value, targetType, targetId });\n}\n\nexport function newOpenLinkAction(href) {\n return newAction(\"openLink\", { href });\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n function classNames() {\n var classes = '';\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (arg) {\n classes = appendClass(classes, parseValue(arg));\n }\n }\n return classes;\n }\n function parseValue(arg) {\n if (typeof arg === 'string' || typeof arg === 'number') {\n return arg;\n }\n if (typeof arg !== 'object') {\n return '';\n }\n if (Array.isArray(arg)) {\n return classNames.apply(null, arg);\n }\n if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n return arg.toString();\n }\n var classes = '';\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes = appendClass(classes, key);\n }\n }\n return classes;\n }\n function appendClass(value, newClass) {\n if (!newClass) {\n return value;\n }\n if (value) {\n return value + ' ' + newClass;\n }\n return value + newClass;\n }\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","import * as React from 'react';\n\nimport classNames from 'classnames'\n\nexport const switchModes = {\n ON: \"ON\",\n OFF: \"OFF\",\n MIXED: \"MIXED\"\n} as const;\n\nexport type SwitchMode = keyof typeof switchModes\n\ninterface GenSwithProps {\n value: SwitchMode;\n onClick: (mode: SwitchMode) => void;\n includeMixed?: boolean;\n}\n\nexport default function GenSwitch(\n {\n value,\n onClick,\n includeMixed,\n }: GenSwithProps,\n) {\n return (\n <span\n className=\"gen-switch\"\n onClick={(e) => {\n e.stopPropagation();\n switch (value) {\n case switchModes.ON:\n onClick(switchModes.OFF)\n break;\n case switchModes.OFF:\n onClick(includeMixed ? switchModes.MIXED : switchModes.ON)\n break;\n case switchModes.MIXED:\n default:\n onClick(switchModes.ON)\n }}\n }>\n <span className={\n classNames(\"gen-switch-slider\", `${value}`)\n }></span>\n </span>\n );\n}\n","export function stringToDate(stringToConvert: DateString | Date) {\n return (typeof stringToConvert === \"string\") ? new Date(stringToConvert) : stringToConvert;\n}\n\nexport function now() {\n return new Date();\n}\n\nexport function yesterday() {\n return now().setDate(now().getDate() - 1);\n}\n\nexport function atEarliestNow(date: Date) {\n return date < now() ? now() : date;\n}\n\nexport function translateToEffectiveDateReverse(date: DateString | Date) {\n date = stringToDate(date);\n\n if (date instanceof Date) {\n return date < now() ? new Date(0) : date;\n } else {\n return !!date;\n }\n}\n\nexport function translateToEffectiveDate(date: DateString | Date) {\n date = stringToDate(date);\n\n if (date instanceof Date) {\n return date < now() ? false : date;\n } else {\n return !!date;\n }\n}\n\nexport function areEqualEffectiveDates(dateA: DateString | Date, dateB: DateString | Date) {\n return dateA === dateB || (dateA instanceof Date && dateB instanceof Date && dateA.getTime() === dateB.getTime());\n}\n\nconst TRUNCATE_COUNT = 8;\nexport function selectionDescription(selected: Array<{id: number}>) {\n if (selected.length === 0) {\n return \"\";\n } else {\n const selectedIDs = selected.map((item) => item.id);\n if (selected.length > (TRUNCATE_COUNT + 1)) {\n return ` (${selectedIDs.slice(0, TRUNCATE_COUNT).join(\", \")}, and ${selected.length - TRUNCATE_COUNT} more)`;\n } else {\n return ` (${selectedIDs.join(\", \")})`;\n }\n }\n}\n","import axios from 'axios'\nimport pluralize from 'pluralize'\nimport * as R from 'ramda'\nimport {snakeCase} from 'lodash'\n\nimport { fullURL } from 'src/url'\n\nexport const SEED = 'item/SEED'\n\nexport const CREATE = 'item/CREATE'\nexport const READ = 'item/READ'\nexport const UPDATE = 'item/UPDATE'\nexport const DESTROY = 'item/DESTROY'\n\nconst PENDING = '_PENDING'\nconst FULFILLED = '_FULFILLED'\nconst REJECTED = '_REJECTED'\n\n// SHOULD INCLUDE DELETE_EDIT_DATA_KEYS???\n// SHOULD INCLUDE DELETE_LOCAL_DATA_KEYS???\n\nexport const SET_EDIT_DATA_FIELDS = 'item/SET_EDIT_DATA_FIELDS'\nexport const RESET_EDIT_DATA = 'item/RESET_EDIT_DATA'\nexport const SET_LOCAL_DATA_FIELDS = 'item/SET_LOCAL_DATA_FIELDS'\nexport const RESET_LOCAL_DATA = 'item/RESET_LOCAL_DATA'\n\nfunction itemsReducer(itemType, state={}, action={}, options={}) {\n if (!action.meta || action.meta.itemType != itemType) {\n return state\n }\n\n switch (action.type) {\n case READ + PENDING:\n return {...state,\n [action.meta.id]: itemReducer(state[action.meta.id], action)\n }\n case CREATE + FULFILLED:\n return {...state,\n [action.meta.id]: undefined,\n [action.payload.id]: itemReducer(state[action.meta.id], action)\n }\n case DESTROY + FULFILLED:\n return R.omit([action.meta.id], state)\n case SEED:\n case CREATE + PENDING:\n case CREATE + REJECTED:\n case READ + FULFILLED:\n case READ + REJECTED:\n case UPDATE + PENDING:\n case UPDATE + FULFILLED:\n case UPDATE + REJECTED:\n case DESTROY + PENDING:\n case DESTROY + REJECTED:\n case SET_EDIT_DATA_FIELDS:\n case RESET_EDIT_DATA:\n case SET_LOCAL_DATA_FIELDS:\n case RESET_LOCAL_DATA:\n if (state[action.meta.id]) {\n return {...state,\n [action.meta.id]: itemReducer(state[action.meta.id], action)\n }\n } else {\n return state\n }\n default:\n return state\n }\n}\n\nconst DEFAULT_EDIT_DATA = {}\nconst DEFAULT_LOCAL_DATA = {}\n\n\n// {\n// savedData: {},\n// editData: {},\n// localData: {},\n// isSyncing: false,\n// lastSyncedAt: Date.now(),\n// errors: null,\n// }\n\nfunction itemReducer(state={editData: DEFAULT_EDIT_DATA, localData: DEFAULT_LOCAL_DATA}, action={}, options={}) {\n switch (action.type) {\n case SEED:\n return {...state,\n savedData: action.payload.data\n }\n case CREATE + PENDING:\n case READ + PENDING:\n case UPDATE + PENDING:\n case DESTROY + PENDING:\n return {...state,\n isSyncing: true\n }\n case CREATE + REJECTED:\n case READ + REJECTED:\n case UPDATE + REJECTED:\n case DESTROY + REJECTED:\n return {...state,\n isSyncing: false,\n syncError: action.payload.message\n }\n case CREATE + FULFILLED:\n case UPDATE + FULFILLED:\n return {...state,\n isSyncing: false,\n lastSyncedAt: Date.now(),\n errors: null,\n editData: DEFAULT_EDIT_DATA,\n savedData: action.payload.data\n }\n case READ + FULFILLED:\n return {...state,\n isSyncing: false,\n lastSyncedAt: Date.now(),\n errors: null,\n savedData: action.payload.data\n }\n case SET_EDIT_DATA_FIELDS:\n return {...state,\n editData: {...state.editData,\n ...action.payload.fields\n }\n }\n case RESET_EDIT_DATA:\n return {...state,\n editData: DEFAULT_EDIT_DATA\n }\n case SET_LOCAL_DATA_FIELDS:\n return {...state,\n localData: {...state.localData,\n ...action.payload.fields\n }\n }\n case RESET_LOCAL_DATA:\n return {...state,\n localData: DEFAULT_LOCAL_DATA\n }\n default:\n return state\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n////////////////////////////////////////////////////////////////////////////////\n\nexport function generateItemsReducer(itemType, options={}) {\n return (state, action) => itemsReducer(itemType, state, action, options)\n}\n\n////////////////////////////////////////////////////////////////////////////////\n////////////////////////////////////////////////////////////////////////////////\n\nexport function rawItemFromStore(store, itemType, id) {\n let storeReducerName = pluralize(itemType)\n return store[storeReducerName] && store[storeReducerName][id]\n}\n\nfunction defaultDataMergeFunction(rawItem) {\n return R.mergeRight(rawItem.savedData || {}, rawItem.editData || {})\n}\n\nexport function itemFromStore(store, itemType, id, mergeFunction=defaultDataMergeFunction) {\n let rawItem = rawItemFromStore(store, itemType, id)\n return rawItem && mergeFunction(rawItem)\n}\n\nexport function itemSavedDataFromStore(store, itemType, id) {\n let rawItem = rawItemFromStore(store, itemType, id)\n return rawItem?.savedData\n}\n\nexport function itemEditDataFromStore(store, itemType, id) {\n let rawItem = rawItemFromStore(store, itemType, id)\n return rawItem?.editData\n}\n\nexport function itemLocalDataFromStore(store, itemType, id) {\n let rawItem = rawItemFromStore(store, itemType, id)\n return rawItem?.localData\n}\n\n////////////////////////////////////////////////////////////////////////////////\n////////////////////////////////////////////////////////////////////////////////\n\nfunction defaultOutTransformer(data) { return data }\n\nfunction createItemWithData(itemType, endpoint, tempId, data, outTransformer=defaultOutTransformer) {\n return {\n type: CREATE,\n meta: {\n itemType,\n tempId,\n },\n payload: axios({\n url: fullURL('/' + endpoint),\n data: outTransformer(data),\n method: 'post',\n withCredentials: true,\n headers: {'Accept': 'application/json'}\n })\n }\n}\n\nexport function createItem(itemType, endpoint, tempId, outTransformer=defaultOutTransformer) {\n return (dispatch, getState) => {\n let state = getState()\n let item = state[pluralize(itemType)][tempId]\n let editData = item.editData\n\n dispatch(createItemWithData(itemType, endpoint, tempId, editData, outTransformer=defaultOutTransformer))\n }\n}\n\nexport function readItem(itemType, endpoint, id) {\n return {\n type: READ,\n meta: {\n itemType,\n id,\n },\n payload: axios({\n url: fullURL('/' + endpoint + (id || '')),\n method: 'get',\n withCredentials: true,\n headers: {'Accept': 'application/json'}\n }),\n }\n}\n\nexport function updateItemWithData(itemType, endpoint, id, data, outTransformer=defaultOutTransformer) {\n return {\n type: UPDATE,\n meta: {\n itemType,\n id,\n },\n payload: axios({\n url: fullURL('/' + endpoint + (id || '')),\n data: {[snakeCase(itemType)]: outTransformer(data)},\n method: 'put',\n withCredentials: true,\n headers: {'Accept': 'application/json'}\n })\n }\n}\n\nexport function updateItem(itemType, endpoint, id, outTransformer=defaultOutTransformer) {\n return (dispatch, getState) => {\n let state = getState()\n let item = state[pluralize(itemType)][id]\n let editData = item.editData\n\n dispatch(updateItemWithData(itemType, endpoint, id, editData, outTransformer=defaultOutTransformer))\n }\n}\n\nexport function destroyItem(itemType, endpoint, id) {\n return {\n type: DESTROY,\n meta: {\n itemType: itemType,\n id: id\n },\n payload: axios({\n url: fullURL('/' + endpoint + (id || '')),\n method: 'delete',\n withCredentials: true,\n headers: {'Accept': 'application/json'}\n })\n }\n}\n\nexport function generateActions(itemType, endpoint) {\n let capitalizedItemType = itemType.charAt(0).toUpperCase() + itemType.slice(1)\n\n return {\n [`seed${capitalizedItemType}`]: (id, data) => { return {\n type: SET_LOCAL_DATA_FIELDS,\n meta: {itemType, id},\n payload: {data}\n }},\n [`create${capitalizedItemType}`]: (tempId) => createItem(itemType, endpoint, tempId),\n [`read${capitalizedItemType}`]: (id) => readItem(itemType, endpoint, id),\n [`update${capitalizedItemType}`]: (id) => updateItem(itemType, endpoint, id),\n [`destroy${capitalizedItemType}`]: (id) => destroyItem(itemType, endpoint, id),\n [`setEditFields${capitalizedItemType}`]: (id, fields) => { return {\n type: SET_EDIT_DATA_FIELDS,\n meta: {itemType, id},\n payload: {fields}\n }},\n [`resetEditFields${capitalizedItemType}`]: (id) => { return {\n type: RESET_LOCAL_DATA,\n meta: {itemType, id}\n }},\n [`setLocalFields${capitalizedItemType}`]: (id, fields) => { return {\n type: SET_LOCAL_DATA_FIELDS,\n meta: {itemType, id},\n payload: {fields}\n }},\n [`resetLocalFields${capitalizedItemType}`]: (id) => { return {\n type: RESET_LOCAL_DATA,\n meta: {itemType, id}\n }}\n }\n}\n","import * as React from 'react';\n\nimport classNames from 'classnames'\n\ninterface DocBookmarkProps {\n currentUser: CurrentUser;\n uid: string;\n bookmarked?: boolean;\n};\n\nexport default function DocBookmark(\n {\n currentUser,\n uid,\n bookmarked,\n }: DocBookmarkProps,\n) {\n // DISABLED BOOKMARKS FOR REELDX\n return(null)\n\n const onClick: React.MouseEventHandler<HTMLDivElement> = (e) => {\n currentUser.addState({[uid]: {\"bookmarked\": !bookmarked}});\n\n e.stopPropagation();\n };\n\n return (\n <div\n className={classNames(\"doc-bookmark-button\", {\"bookmarked\": bookmarked})}\n onClick={onClick}\n />\n );\n}\n","import * as React from 'react';\n\nimport GenButton from \"./Button\";\nimport GenLoadingSpinner from \"./LoadingSpinner\";\n\ninterface GenMoreProps {\n isSyncing: boolean;\n itemsPerPage: number;\n lastPageLength: number;\n readListPage: () => void;\n shouldInfiniteScroll?: boolean;\n}\n\nexport default function GenMore({\n isSyncing,\n itemsPerPage,\n lastPageLength,\n readListPage,\n shouldInfiniteScroll,\n}: GenMoreProps) {\n // TODO: When at react 18 change React.useRef to React.userId\n const infiniteScrollRandomKey = React.useId();\n\n const checkVisibilityForInfiniteScroll = React.useCallback(() => {\n const element = document.getElementById(infiniteScrollRandomKey);\n if (element) {\n const elementRect = element.getBoundingClientRect();\n const viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);\n const isVisible = !(elementRect.bottom < 0 || elementRect.top - viewHeight >= 0);\n\n if (isVisible) {\n readListPage();\n }\n }\n }, []);\n\n React.useEffect(() => {\n let checkVisibilityTimer: ReturnType<typeof setTimeout>;\n if (shouldInfiniteScroll) {\n window.addEventListener(\"scroll\", checkVisibilityForInfiniteScroll);\n checkVisibilityTimer = setInterval(checkVisibilityForInfiniteScroll, 500);\n }\n\n return () => {\n if (shouldInfiniteScroll) {\n window.removeEventListener(\"scroll\", checkVisibilityForInfiniteScroll);\n clearTimeout(checkVisibilityTimer);\n }\n };\n }, [checkVisibilityForInfiniteScroll, shouldInfiniteScroll]);\n\n if (isSyncing) {\n return <GenLoadingSpinner />;\n } else if (lastPageLength < itemsPerPage) {\n return (\n <div className=\"gen-list-pagination flex justify-center\">\n <GenButton name=\"End\" highlighted disabled />\n </div>\n );\n } else if (shouldInfiniteScroll) {\n return (\n <div className=\"gen-list-pagination\">\n <div id={infiniteScrollRandomKey} className=\"infinite-scroll-area\" />\n </div>\n );\n } else {\n return (\n <div className=\"gen-list-pagination flex justify-center\">\n <GenButton name=\"More\" onClick={() => readListPage()} highlighted />\n </div>\n );\n }\n}\n","export function fullURL(path: string){\n return window.location.origin + path\n}\n","import * as R from 'ramda'\n\n// HTML_STRING :: STRING\n//\n// INLINE_JSON :: {\n// text: STRING,\n// styles: [INLINE_STYLE_RANGE]\n// }\n//\n// INLINE_JSON_WITH_STARTS :: {\n// text: STRING,\n// styles: [STYLE_RANGE],\n// styleStarts: [STYLE_START]\n// }\n//\n// STYLE_RANGE :: {\n// {\n// type: STYLE_TYPES,\n// range: RANGE,\n// args : {}\n// }\n// }\n//\n// STYLE_START :: {\n// {\n// type: STYLE_TYPES,\n// start: INTEGER,\n// args : {}\n// }\n// }\n//\n// STYLE_TYPES :: 'b' | 'i' | 'u' | 's' | 'sub' | 'sup' | 'a'\n\nconst inlineJSONToHTMLStyleNames = {\n 'bold': 'b',\n 'italic': 'i',\n 'underlined': 'u',\n 'strikethrough': 's',\n 'subscript': 'sub',\n 'superscript': 'sup',\n 'link': 'a',\n} as const\n\n// TODO OTHER STYLES HERE\nconst tagTanslation = {\n 'strong': 'b',\n 'em': 'i',\n} as const\n\nconst inlineHTMLToJSONStyleNames = {\n 'b': 'bold',\n 'strong': 'bold',\n 'i': 'italic',\n 'em': 'italic',\n 'u': 'underlined',\n 's': 'strikethrough',\n 'sub': 'subscript',\n 'sup': 'superscript',\n 'a': 'link',\n} as const\n\n// TODO COMBINE SIMILAR STYLES <b>this </b><b>that</b>\n// TODO: FIX????\nexport function inlineHTMLToJSON(inlineHTML: InlineHtmlContent, prefixInlineJSON: {text: string; styles: Array<StyleRange>, styleStarts: Partial<Record<StyleType, StyleStart>>}={text: \"\", styles: [], styleStarts: {}}, offset: number=0) {\n let {\n text,\n styles,\n styleStarts\n } = prefixInlineJSON\n\n let styleRegEx = /\\<(\\/)?([^<]+)>/g\n let match = styleRegEx.exec(inlineHTML)\n\n if (match) {\n let beforeTagText = unescapeHtml(inlineHTML.slice(0, match.index))\n text = text + beforeTagText\n\n let tagContents = R.trim(match[2])\n\n let rawTagName = tagContents.split(/\\s/)[0]\n\n const tagName = (tagTanslation[rawTagName] || rawTagName) as StyleType\n let isEndTag = !!match[1]\n\n // TODO: FIGURE OUT if tagName is StyleType\n\n if (isEndTag) {\n // TODO HANDLE IF NO styleStart\n let styleStart = styleStarts[tagName]\n if (styleStart) {\n const justStyle = R.dissoc('start', styleStart) as Style\n\n styles = styles.concat([{\n ...justStyle,\n range: {\n start: styleStart.start,\n end: beforeTagText.length + offset\n }\n }])\n\n styleStarts = R.omit([tagName], styleStarts)\n }\n } else {\n let args = R.fromPairs([...tagContents.matchAll(/(\\w+)=\"([^\"]*)\"/g)].map((m) => m.slice(1,3) as [string, string]))\n\n if (!styleStarts[tagName]) {\n styleStarts = {\n ...styleStarts,\n [tagName]: {\n type: tagName,\n args,\n start: beforeTagText.length + offset\n }\n }\n }\n }\n\n let afterTagText = inlineHTML.slice(styleRegEx.lastIndex)\n\n return inlineHTMLToJSON(afterTagText, {\n text,\n styles,\n styleStarts\n }, beforeTagText.length + offset)\n } else {\n return({\n text: text + unescapeHtml(inlineHTML),\n styles\n })\n }\n}\n\nexport function inlineJSONToHTML(inlineJSON: InlineJsonContent, extraEndTags=[]) {\n return internalInlineJSONToHTML(inlineJSON.text, R.sortBy(s => s.range.start, inlineJSON.styles), R.sortBy(s => s.range.end, inlineJSON.styles))\n}\n\nfunction internalInlineJSONToHTML(text: string, sortedStarts: Array<StyleRange>, sortedEnds: Array<StyleRange>, offset: number=0, startedStack: Array<StyleRange>=[]): string {\n let nextStartStyle = sortedStarts[0]\n let nextEndStyle = sortedEnds[0]\n\n if (nextEndStyle) {\n let offestTagSpot, tags\n if (nextStartStyle && nextStartStyle.range.start < nextEndStyle.range.end) {\n tags = openHTMLTag(nextStartStyle)\n\n offestTagSpot = nextStartStyle.range.start - offset\n\n sortedStarts = sortedStarts.slice(1)\n offset = nextStartStyle.range.start\n startedStack = startedStack.concat([nextStartStyle])\n } else {\n let [startedStackBase, startedStackTop] = R.splitWhen(s => s.type === nextEndStyle.type, startedStack)\n let closeTags = R.reverse(startedStackTop).map(style => closeHTMLTag(style)).join('')\n let openTags = R.tail(startedStackTop).map(style => openHTMLTag(style)).join('')\n tags = closeTags + openTags\n\n offestTagSpot = nextEndStyle.range.end - offset\n\n sortedEnds = sortedEnds.slice(1)\n offset = nextEndStyle.range.end\n startedStack = R.concat(startedStackBase, R.tail(startedStackTop))\n }\n\n let beforeTagText = escapeHtml(text.slice(0, offestTagSpot))\n let afterTagText = text.slice(offestTagSpot)\n\n return `${beforeTagText}${tags}` + internalInlineJSONToHTML(afterTagText, sortedStarts, sortedEnds, offset, startedStack)\n } else {\n return escapeHtml(text)\n }\n}\n\nfunction openHTMLTag(style: StyleRange) {\n let attributes = style.type == \"a\" ? R.toPairs(style.args).map(([argName, argValue]) => `${argName}=\"${argValue}\"`).join(' ') : ''\n\n return `<${style.type} ${attributes}>`\n}\n\nfunction closeHTMLTag(style: StyleRange) {\n return `</${style.type}>`\n}\n\nfunction escapeHtml(text: string) {\n return text\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\")\n .replace(/\\s\\s/g, \" \")\n .replace(/\\s$/g, \" \")\n .replace(/^\\s/g, \" \")\n}\n\nfunction unescapeHtml(html: InlineHtmlContent) {\n return html\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/"/g, \"\\\"\")\n .replace(/'/g, \"'\")\n .replace(/ /g, \" \")\n}\n","export function documentDisplayTitle(document) {\n return `${documentDisplayNumber(document)} | ${document.title}`;\n}\n\nexport function documentDisplayNumber(document) {\n let displayId = document.id;\n if (document.non_ai_document_id) {\n displayId = `${document.non_ai_document_id} AI`;\n }\n\n return displayId;\n}\n","import * as React from 'react';\n\ninterface GenControlsBarProps {\n children: React.ReactElement;\n}\n\nexport default function GenControlsBar(\n {\n children,\n }: GenControlsBarProps,\n) {\n return (\n <div className=\"gen-controls-bar\">\n {children}\n </div>\n );\n}\n","import * as React from 'react';\n\ninterface GenSearchBoxProps {\n resetListPages: () => void;\n readListPage: () => void;\n setListSearch: (searchValue: string) => void;\n search: string;\n}\n\nexport default function GenSearchBox(\n {\n resetListPages,\n readListPage,\n setListSearch,\n search,\n }: GenSearchBoxProps,\n) {\n const searchTimerRef = React.useRef<ReturnType<typeof setTimeout>>();\n\n React.useEffect(\n () => () => {\n const searchTimer = searchTimerRef.current;\n if (searchTimer) { clearTimeout(searchTimer); }\n },\n [],\n );\n\n const updateSearchWithTimer = React.useCallback(() => {\n resetListPages();\n readListPage();\n searchTimerRef.current = undefined;\n }, [resetListPages, readListPage]);\n\n const handleSearchChange = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n setListSearch(e.target.value);\n\n const searchTimer = searchTimerRef.current;\n if (searchTimer) { clearTimeout(searchTimer); }\n searchTimerRef.current = setTimeout(updateSearchWithTimer, 750);\n }, [setListSearch, updateSearchWithTimer]);\n\n const handleSearchKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n const searchTimer = searchTimerRef.current;\n if (searchTimer) { clearTimeout(searchTimer); }\n searchTimerRef.current = undefined;\n\n updateSearchWithTimer();\n e.preventDefault();\n }\n }, [updateSearchWithTimer]);\n\n return (\n <form className=\"gen-search-box\" role=\"search\">\n <input\n type=\"search\"\n placeholder=\"Search...\"\n value={search || \"\"}\n onChange={handleSearchChange}\n onKeyDown={handleSearchKeyDown}\n />\n </form>\n );\n}\n","/*global define:false */\n/**\n * Copyright 2012-2017 Craig Campbell\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * Mousetrap is a simple keyboard shortcut library for Javascript with\n * no external dependencies\n *\n * @version 1.6.5\n * @url craig.is/killing/mice\n */\n(function (window, document, undefined) {\n // Check if mousetrap is used inside browser, if not, return\n if (!window) {\n return;\n }\n\n /**\n * mapping of special keycodes to their corresponding keys\n *\n * everything in this dictionary cannot use keypress events\n * so it has to be here to map to the correct keycodes for\n * keyup/keydown events\n *\n * @type {Object}\n */\n var _MAP = {\n 8: 'backspace',\n 9: 'tab',\n 13: 'enter',\n 16: 'shift',\n 17: 'ctrl',\n 18: 'alt',\n 20: 'capslock',\n 27: 'esc',\n 32: 'space',\n 33: 'pageup',\n 34: 'pagedown',\n 35: 'end',\n 36: 'home',\n 37: 'left',\n 38: 'up',\n 39: 'right',\n 40: 'down',\n 45: 'ins',\n 46: 'del',\n 91: 'meta',\n 93: 'meta',\n 224: 'meta'\n };\n\n /**\n * mapping for special characters so they can support\n *\n * this dictionary is only used incase you want to bind a\n * keyup or keydown event to one of these keys\n *\n * @type {Object}\n */\n var _KEYCODE_MAP = {\n 106: '*',\n 107: '+',\n 109: '-',\n 110: '.',\n 111: '/',\n 186: ';',\n 187: '=',\n 188: ',',\n 189: '-',\n 190: '.',\n 191: '/',\n 192: '`',\n 219: '[',\n 220: '\\\\',\n 221: ']',\n 222: '\\''\n };\n\n /**\n * this is a mapping of keys that require shift on a US keypad\n * back to the non shift equivelents\n *\n * this is so you can use keyup events with these keys\n *\n * note that this will only work reliably on US keyboards\n *\n * @type {Object}\n */\n var _SHIFT_MAP = {\n '~': '`',\n '!': '1',\n '@': '2',\n '#': '3',\n '$': '4',\n '%': '5',\n '^': '6',\n '&': '7',\n '*': '8',\n '(': '9',\n ')': '0',\n '_': '-',\n '+': '=',\n ':': ';',\n '\\\"': '\\'',\n '<': ',',\n '>': '.',\n '?': '/',\n '|': '\\\\'\n };\n\n /**\n * this is a list of special strings you can use to map\n * to modifier keys when you specify your keyboard shortcuts\n *\n * @type {Object}\n */\n var _SPECIAL_ALIASES = {\n 'option': 'alt',\n 'command': 'meta',\n 'return': 'enter',\n 'escape': 'esc',\n 'plus': '+',\n 'mod': /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? 'meta' : 'ctrl'\n };\n\n /**\n * variable to store the flipped version of _MAP from above\n * needed to check if we should use keypress or not when no action\n * is specified\n *\n * @type {Object|undefined}\n */\n var _REVERSE_MAP;\n\n /**\n * loop through the f keys, f1 to f19 and add them to the map\n * programatically\n */\n for (var i = 1; i < 20; ++i) {\n _MAP[111 + i] = 'f' + i;\n }\n\n /**\n * loop through to map numbers on the numeric keypad\n */\n for (i = 0; i <= 9; ++i) {\n // This needs to use a string cause otherwise since 0 is falsey\n // mousetrap will never fire for numpad 0 pressed as part of a keydown\n // event.\n //\n // @see https://github.com/ccampbell/mousetrap/pull/258\n _MAP[i + 96] = i.toString();\n }\n\n /**\n * cross browser add event method\n *\n * @param {Element|HTMLDocument} object\n * @param {string} type\n * @param {Function} callback\n * @returns void\n */\n function _addEvent(object, type, callback) {\n if (object.addEventListener) {\n object.addEventListener(type, callback, false);\n return;\n }\n object.attachEvent('on' + type, callback);\n }\n\n /**\n * takes the event and returns the key character\n *\n * @param {Event} e\n * @return {string}\n */\n function _characterFromEvent(e) {\n // for keypress events we should return the character as is\n if (e.type == 'keypress') {\n var character = String.fromCharCode(e.which);\n\n // if the shift key is not pressed then it is safe to assume\n // that we want the character to be lowercase. this means if\n // you accidentally have caps lock on then your key bindings\n // will continue to work\n //\n // the only side effect that might not be desired is if you\n // bind something like 'A' cause you want to trigger an\n // event when capital A is pressed caps lock will no longer\n // trigger the event. shift+a will though.\n if (!e.shiftKey) {\n character = character.toLowerCase();\n }\n return character;\n }\n\n // for non keypress events the special maps are needed\n if (_MAP[e.which]) {\n return _MAP[e.which];\n }\n if (_KEYCODE_MAP[e.which]) {\n return _KEYCODE_MAP[e.which];\n }\n\n // if it is not in the special map\n\n // with keydown and keyup events the character seems to always\n // come in as an uppercase character whether you are pressing shift\n // or not. we should make sure it is always lowercase for comparisons\n return String.fromCharCode(e.which).toLowerCase();\n }\n\n /**\n * checks if two arrays are equal\n *\n * @param {Array} modifiers1\n * @param {Array} modifiers2\n * @returns {boolean}\n */\n function _modifiersMatch(modifiers1, modifiers2) {\n return modifiers1.sort().join(',') === modifiers2.sort().join(',');\n }\n\n /**\n * takes a key event and figures out what the modifiers are\n *\n * @param {Event} e\n * @returns {Array}\n */\n function _eventModifiers(e) {\n var modifiers = [];\n if (e.shiftKey) {\n modifiers.push('shift');\n }\n if (e.altKey) {\n modifiers.push('alt');\n }\n if (e.ctrlKey) {\n modifiers.push('ctrl');\n }\n if (e.metaKey) {\n modifiers.push('meta');\n }\n return modifiers;\n }\n\n /**\n * prevents default for this event\n *\n * @param {Event} e\n * @returns void\n */\n function _preventDefault(e) {\n if (e.preventDefault) {\n e.preventDefault();\n return;\n }\n e.returnValue = false;\n }\n\n /**\n * stops propogation for this event\n *\n * @param {Event} e\n * @returns void\n */\n function _stopPropagation(e) {\n if (e.stopPropagation) {\n e.stopPropagation();\n return;\n }\n e.cancelBubble = true;\n }\n\n /**\n * determines if the keycode specified is a modifier key or not\n *\n * @param {string} key\n * @returns {boolean}\n */\n function _isModifier(key) {\n return key == 'shift' || key == 'ctrl' || key == 'alt' || key == 'meta';\n }\n\n /**\n * reverses the map lookup so that we can look for specific keys\n * to see what can and can't use keypress\n *\n * @return {Object}\n */\n function _getReverseMap() {\n if (!_REVERSE_MAP) {\n _REVERSE_MAP = {};\n for (var key in _MAP) {\n // pull out the numeric keypad from here cause keypress should\n // be able to detect the keys from the character\n if (key > 95 && key < 112) {\n continue;\n }\n if (_MAP.hasOwnProperty(key)) {\n _REVERSE_MAP[_MAP[key]] = key;\n }\n }\n }\n return _REVERSE_MAP;\n }\n\n /**\n * picks the best action based on the key combination\n *\n * @param {string} key - character for key\n * @param {Array} modifiers\n * @param {string=} action passed in\n */\n function _pickBestAction(key, modifiers, action) {\n // if no action was picked in we should try to pick the one\n // that we think would work best for this key\n if (!action) {\n action = _getReverseMap()[key] ? 'keydown' : 'keypress';\n }\n\n // modifier keys don't work as expected with keypress,\n // switch to keydown\n if (action == 'keypress' && modifiers.length) {\n action = 'keydown';\n }\n return action;\n }\n\n /**\n * Converts from a string key combination to an array\n *\n * @param {string} combination like \"command+shift+l\"\n * @return {Array}\n */\n function _keysFromString(combination) {\n if (combination === '+') {\n return ['+'];\n }\n combination = combination.replace(/\\+{2}/g, '+plus');\n return combination.split('+');\n }\n\n /**\n * Gets info for a specific key combination\n *\n * @param {string} combination key combination (\"command+s\" or \"a\" or \"*\")\n * @param {string=} action\n * @returns {Object}\n */\n function _getKeyInfo(combination, action) {\n var keys;\n var key;\n var i;\n var modifiers = [];\n\n // take the keys from this pattern and figure out what the actual\n // pattern is all about\n keys = _keysFromString(combination);\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n\n // normalize key names\n if (_SPECIAL_ALIASES[key]) {\n key = _SPECIAL_ALIASES[key];\n }\n\n // if this is not a keypress event then we should\n // be smart about using shift keys\n // this will only work for US keyboards however\n if (action && action != 'keypress' && _SHIFT_MAP[key]) {\n key = _SHIFT_MAP[key];\n modifiers.push('shift');\n }\n\n // if this key is a modifier then add it to the list of modifiers\n if (_isModifier(key)) {\n modifiers.push(key);\n }\n }\n\n // depending on what the key combination is\n // we will try to pick the best event for it\n action = _pickBestAction(key, modifiers, action);\n return {\n key: key,\n modifiers: modifiers,\n action: action\n };\n }\n function _belongsTo(element, ancestor) {\n if (element === null || element === document) {\n return false;\n }\n if (element === ancestor) {\n return true;\n }\n return _belongsTo(element.parentNode, ancestor);\n }\n function Mousetrap(targetElement) {\n var self = this;\n targetElement = targetElement || document;\n if (!(self instanceof Mousetrap)) {\n return new Mousetrap(targetElement);\n }\n\n /**\n * element to attach key events to\n *\n * @type {Element}\n */\n self.target = targetElement;\n\n /**\n * a list of all the callbacks setup via Mousetrap.bind()\n *\n * @type {Object}\n */\n self._callbacks = {};\n\n /**\n * direct map of string combinations to callbacks used for trigger()\n *\n * @type {Object}\n */\n self._directMap = {};\n\n /**\n * keeps track of what level each sequence is at since multiple\n * sequences can start out with the same sequence\n *\n * @type {Object}\n */\n var _sequenceLevels = {};\n\n /**\n * variable to store the setTimeout call\n *\n * @type {null|number}\n */\n var _resetTimer;\n\n /**\n * temporary state where we will ignore the next keyup\n *\n * @type {boolean|string}\n */\n var _ignoreNextKeyup = false;\n\n /**\n * temporary state where we will ignore the next keypress\n *\n * @type {boolean}\n */\n var _ignoreNextKeypress = false;\n\n /**\n * are we currently inside of a sequence?\n * type of action (\"keyup\" or \"keydown\" or \"keypress\") or false\n *\n * @type {boolean|string}\n */\n var _nextExpectedAction = false;\n\n /**\n * resets all sequence counters except for the ones passed in\n *\n * @param {Object} doNotReset\n * @returns void\n */\n function _resetSequences(doNotReset) {\n doNotReset = doNotReset || {};\n var activeSequences = false,\n key;\n for (key in _sequenceLevels) {\n if (doNotReset[key]) {\n activeSequences = true;\n continue;\n }\n _sequenceLevels[key] = 0;\n }\n if (!activeSequences) {\n _nextExpectedAction = false;\n }\n }\n\n /**\n * finds all callbacks that match based on the keycode, modifiers,\n * and action\n *\n * @param {string} character\n * @param {Array} modifiers\n * @param {Event|Object} e\n * @param {string=} sequenceName - name of the sequence we are looking for\n * @param {string=} combination\n * @param {number=} level\n * @returns {Array}\n */\n function _getMatches(character, modifiers, e, sequenceName, combination, level) {\n var i;\n var callback;\n var matches = [];\n var action = e.type;\n\n // if there are no events related to this keycode\n if (!self._callbacks[character]) {\n return [];\n }\n\n // if a modifier key is coming up on its own we should allow it\n if (action == 'keyup' && _isModifier(character)) {\n modifiers = [character];\n }\n\n // loop through all callbacks for the key that was pressed\n // and see if any of them match\n for (i = 0; i < self._callbacks[character].length; ++i) {\n callback = self._callbacks[character][i];\n\n // if a sequence name is not specified, but this is a sequence at\n // the wrong level then move onto the next match\n if (!sequenceName && callback.seq && _sequenceLevels[callback.seq] != callback.level) {\n continue;\n }\n\n // if the action we are looking for doesn't match the action we got\n // then we should keep going\n if (action != callback.action) {\n continue;\n }\n\n // if this is a keypress event and the meta key and control key\n // are not pressed that means that we need to only look at the\n // character, otherwise check the modifiers as well\n //\n // chrome will not fire a keypress if meta or control is down\n // safari will fire a keypress if meta or meta+shift is down\n // firefox will fire a keypress if meta or control is down\n if (action == 'keypress' && !e.metaKey && !e.ctrlKey || _modifiersMatch(modifiers, callback.modifiers)) {\n // when you bind a combination or sequence a second time it\n // should overwrite the first one. if a sequenceName or\n // combination is specified in this call it does just that\n //\n // @todo make deleting its own method?\n var deleteCombo = !sequenceName && callback.combo == combination;\n var deleteSequence = sequenceName && callback.seq == sequenceName && callback.level == level;\n if (deleteCombo || deleteSequence) {\n self._callbacks[character].splice(i, 1);\n }\n matches.push(callback);\n }\n }\n return matches;\n }\n\n /**\n * actually calls the callback function\n *\n * if your callback function returns false this will use the jquery\n * convention - prevent default and stop propogation on the event\n *\n * @param {Function} callback\n * @param {Event} e\n * @returns void\n */\n function _fireCallback(callback, e, combo, sequence) {\n // if this event should not happen stop here\n if (self.stopCallback(e, e.target || e.srcElement, combo, sequence)) {\n return;\n }\n if (callback(e, combo) === false) {\n _preventDefault(e);\n _stopPropagation(e);\n }\n }\n\n /**\n * handles a character key event\n *\n * @param {string} character\n * @param {Array} modifiers\n * @param {Event} e\n * @returns void\n */\n self._handleKey = function (character, modifiers, e) {\n var callbacks = _getMatches(character, modifiers, e);\n var i;\n var doNotReset = {};\n var maxLevel = 0;\n var processedSequenceCallback = false;\n\n // Calculate the maxLevel for sequences so we can only execute the longest callback sequence\n for (i = 0; i < callbacks.length; ++i) {\n if (callbacks[i].seq) {\n maxLevel = Math.max(maxLevel, callbacks[i].level);\n }\n }\n\n // loop through matching callbacks for this key event\n for (i = 0; i < callbacks.length; ++i) {\n // fire for all sequence callbacks\n // this is because if for example you have multiple sequences\n // bound such as \"g i\" and \"g t\" they both need to fire the\n // callback for matching g cause otherwise you can only ever\n // match the first one\n if (callbacks[i].seq) {\n // only fire callbacks for the maxLevel to prevent\n // subsequences from also firing\n //\n // for example 'a option b' should not cause 'option b' to fire\n // even though 'option b' is part of the other sequence\n //\n // any sequences that do not match here will be discarded\n // below by the _resetSequences call\n if (callbacks[i].level != maxLevel) {\n continue;\n }\n processedSequenceCallback = true;\n\n // keep a list of which sequences were matches for later\n doNotReset[callbacks[i].seq] = 1;\n _fireCallback(callbacks[i].callback, e, callbacks[i].combo, callbacks[i].seq);\n continue;\n }\n\n // if there were no sequence matches but we are still here\n // that means this is a regular match so we should fire that\n if (!processedSequenceCallback) {\n _fireCallback(callbacks[i].callback, e, callbacks[i].combo);\n }\n }\n\n // if the key you pressed matches the type of sequence without\n // being a modifier (ie \"keyup\" or \"keypress\") then we should\n // reset all sequences that were not matched by this event\n //\n // this is so, for example, if you have the sequence \"h a t\" and you\n // type \"h e a r t\" it does not match. in this case the \"e\" will\n // cause the sequence to reset\n //\n // modifier keys are ignored because you can have a sequence\n // that contains modifiers such as \"enter ctrl+space\" and in most\n // cases the modifier key will be pressed before the next key\n //\n // also if you have a sequence such as \"ctrl+b a\" then pressing the\n // \"b\" key will trigger a \"keypress\" and a \"keydown\"\n //\n // the \"keydown\" is expected when there is a modifier, but the\n // \"keypress\" ends up matching the _nextExpectedAction since it occurs\n // after and that causes the sequence to reset\n //\n // we ignore keypresses in a sequence that directly follow a keydown\n // for the same character\n var ignoreThisKeypress = e.type == 'keypress' && _ignoreNextKeypress;\n if (e.type == _nextExpectedAction && !_isModifier(character) && !ignoreThisKeypress) {\n _resetSequences(doNotReset);\n }\n _ignoreNextKeypress = processedSequenceCallback && e.type == 'keydown';\n };\n\n /**\n * handles a keydown event\n *\n * @param {Event} e\n * @returns void\n */\n function _handleKeyEvent(e) {\n // normalize e.which for key events\n // @see http://stackoverflow.com/questions/4285627/javascript-keycode-vs-charcode-utter-confusion\n if (typeof e.which !== 'number') {\n e.which = e.keyCode;\n }\n var character = _characterFromEvent(e);\n\n // no character found then stop\n if (!character) {\n return;\n }\n\n // need to use === for the character check because the character can be 0\n if (e.type == 'keyup' && _ignoreNextKeyup === character) {\n _ignoreNextKeyup = false;\n return;\n }\n self.handleKey(character, _eventModifiers(e), e);\n }\n\n /**\n * called to set a 1 second timeout on the specified sequence\n *\n * this is so after each key press in the sequence you have 1 second\n * to press the next key before you have to start over\n *\n * @returns void\n */\n function _resetSequenceTimer() {\n clearTimeout(_resetTimer);\n _resetTimer = setTimeout(_resetSequences, 1000);\n }\n\n /**\n * binds a key sequence to an event\n *\n * @param {string} combo - combo specified in bind call\n * @param {Array} keys\n * @param {Function} callback\n * @param {string=} action\n * @returns void\n */\n function _bindSequence(combo, keys, callback, action) {\n // start off by adding a sequence level record for this combination\n // and setting the level to 0\n _sequenceLevels[combo] = 0;\n\n /**\n * callback to increase the sequence level for this sequence and reset\n * all other sequences that were active\n *\n * @param {string} nextAction\n * @returns {Function}\n */\n function _increaseSequence(nextAction) {\n return function () {\n _nextExpectedAction = nextAction;\n ++_sequenceLevels[combo];\n _resetSequenceTimer();\n };\n }\n\n /**\n * wraps the specified callback inside of another function in order\n * to reset all sequence counters as soon as this sequence is done\n *\n * @param {Event} e\n * @returns void\n */\n function _callbackAndReset(e) {\n _fireCallback(callback, e, combo);\n\n // we should ignore the next key up if the action is key down\n // or keypress. this is so if you finish a sequence and\n // release the key the final key will not trigger a keyup\n if (action !== 'keyup') {\n _ignoreNextKeyup = _characterFromEvent(e);\n }\n\n // weird race condition if a sequence ends with the key\n // another sequence begins with\n setTimeout(_resetSequences, 10);\n }\n\n // loop through keys one at a time and bind the appropriate callback\n // function. for any key leading up to the final one it should\n // increase the sequence. after the final, it should reset all sequences\n //\n // if an action is specified in the original bind call then that will\n // be used throughout. otherwise we will pass the action that the\n // next key in the sequence should match. this allows a sequence\n // to mix and match keypress and keydown events depending on which\n // ones are better suited to the key provided\n for (var i = 0; i < keys.length; ++i) {\n var isFinal = i + 1 === keys.length;\n var wrappedCallback = isFinal ? _callbackAndReset : _increaseSequence(action || _getKeyInfo(keys[i + 1]).action);\n _bindSingle(keys[i], wrappedCallback, action, combo, i);\n }\n }\n\n /**\n * binds a single keyboard combination\n *\n * @param {string} combination\n * @param {Function} callback\n * @param {string=} action\n * @param {string=} sequenceName - name of sequence if part of sequence\n * @param {number=} level - what part of the sequence the command is\n * @returns void\n */\n function _bindSingle(combination, callback, action, sequenceName, level) {\n // store a direct mapped reference for use with Mousetrap.trigger\n self._directMap[combination + ':' + action] = callback;\n\n // make sure multiple spaces in a row become a single space\n combination = combination.replace(/\\s+/g, ' ');\n var sequence = combination.split(' ');\n var info;\n\n // if this pattern is a sequence of keys then run through this method\n // to reprocess each pattern one key at a time\n if (sequence.length > 1) {\n _bindSequence(combination, sequence, callback, action);\n return;\n }\n info = _getKeyInfo(combination, action);\n\n // make sure to initialize array if this is the first time\n // a callback is added for this key\n self._callbacks[info.key] = self._callbacks[info.key] || [];\n\n // remove an existing match if there is one\n _getMatches(info.key, info.modifiers, {\n type: info.action\n }, sequenceName, combination, level);\n\n // add this call back to the array\n // if it is a sequence put it at the beginning\n // if not put it at the end\n //\n // this is important because the way these are processed expects\n // the sequence ones to come first\n self._callbacks[info.key][sequenceName ? 'unshift' : 'push']({\n callback: callback,\n modifiers: info.modifiers,\n action: info.action,\n seq: sequenceName,\n level: level,\n combo: combination\n });\n }\n\n /**\n * binds multiple combinations to the same callback\n *\n * @param {Array} combinations\n * @param {Function} callback\n * @param {string|undefined} action\n * @returns void\n */\n self._bindMultiple = function (combinations, callback, action) {\n for (var i = 0; i < combinations.length; ++i) {\n _bindSingle(combinations[i], callback, action);\n }\n };\n\n // start!\n _addEvent(targetElement, 'keypress', _handleKeyEvent);\n _addEvent(targetElement, 'keydown', _handleKeyEvent);\n _addEvent(targetElement, 'keyup', _handleKeyEvent);\n }\n\n /**\n * binds an event to mousetrap\n *\n * can be a single key, a combination of keys separated with +,\n * an array of keys, or a sequence of keys separated by spaces\n *\n * be sure to list the modifier keys first to make sure that the\n * correct key ends up getting bound (the last key in the pattern)\n *\n * @param {string|Array} keys\n * @param {Function} callback\n * @param {string=} action - 'keypress', 'keydown', or 'keyup'\n * @returns void\n */\n Mousetrap.prototype.bind = function (keys, callback, action) {\n var self = this;\n keys = keys instanceof Array ? keys : [keys];\n self._bindMultiple.call(self, keys, callback, action);\n return self;\n };\n\n /**\n * unbinds an event to mousetrap\n *\n * the unbinding sets the callback function of the specified key combo\n * to an empty function and deletes the corresponding key in the\n * _directMap dict.\n *\n * TODO: actually remove this from the _callbacks dictionary instead\n * of binding an empty function\n *\n * the keycombo+action has to be exactly the same as\n * it was defined in the bind method\n *\n * @param {string|Array} keys\n * @param {string} action\n * @returns void\n */\n Mousetrap.prototype.unbind = function (keys, action) {\n var self = this;\n return self.bind.call(self, keys, function () {}, action);\n };\n\n /**\n * triggers an event that has already been bound\n *\n * @param {string} keys\n * @param {string=} action\n * @returns void\n */\n Mousetrap.prototype.trigger = function (keys, action) {\n var self = this;\n if (self._directMap[keys + ':' + action]) {\n self._directMap[keys + ':' + action]({}, keys);\n }\n return self;\n };\n\n /**\n * resets the library back to its initial state. this is useful\n * if you want to clear out the current keyboard shortcuts and bind\n * new ones - for example if you switch to another page\n *\n * @returns void\n */\n Mousetrap.prototype.reset = function () {\n var self = this;\n self._callbacks = {};\n self._directMap = {};\n return self;\n };\n\n /**\n * should we stop this event before firing off callbacks\n *\n * @param {Event} e\n * @param {Element} element\n * @return {boolean}\n */\n Mousetrap.prototype.stopCallback = function (e, element) {\n var self = this;\n\n // if the element has the class \"mousetrap\" then no need to stop\n if ((' ' + element.className + ' ').indexOf(' mousetrap ') > -1) {\n return false;\n }\n if (_belongsTo(element, self.target)) {\n return false;\n }\n\n // Events originating from a shadow DOM are re-targetted and `e.target` is the shadow host,\n // not the initial event target in the shadow tree. Note that not all events cross the\n // shadow boundary.\n // For shadow trees with `mode: 'open'`, the initial event target is the first element in\n // the event’s composed path. For shadow trees with `mode: 'closed'`, the initial event\n // target cannot be obtained.\n if ('composedPath' in e && typeof e.composedPath === 'function') {\n // For open shadow trees, update `element` so that the following check works.\n var initialEventTarget = e.composedPath()[0];\n if (initialEventTarget !== e.target) {\n element = initialEventTarget;\n }\n }\n\n // stop for input, select, and textarea\n return element.tagName == 'INPUT' || element.tagName == 'SELECT' || element.tagName == 'TEXTAREA' || element.isContentEditable;\n };\n\n /**\n * exposes _handleKey publicly so it can be overwritten by extensions\n */\n Mousetrap.prototype.handleKey = function () {\n var self = this;\n return self._handleKey.apply(self, arguments);\n };\n\n /**\n * allow custom key mappings\n */\n Mousetrap.addKeycodes = function (object) {\n for (var key in object) {\n if (object.hasOwnProperty(key)) {\n _MAP[key] = object[key];\n }\n }\n _REVERSE_MAP = null;\n };\n\n /**\n * Init the global mousetrap functions\n *\n * This method is needed to allow the global mousetrap functions to work\n * now that mousetrap is a constructor function.\n */\n Mousetrap.init = function () {\n var documentMousetrap = Mousetrap(document);\n for (var method in documentMousetrap) {\n if (method.charAt(0) !== '_') {\n Mousetrap[method] = function (method) {\n return function () {\n return documentMousetrap[method].apply(documentMousetrap, arguments);\n };\n }(method);\n }\n }\n };\n Mousetrap.init();\n\n // expose mousetrap to the global object\n window.Mousetrap = Mousetrap;\n\n // expose as a common js module\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Mousetrap;\n }\n\n // expose mousetrap as an AMD module\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return Mousetrap;\n });\n }\n})(typeof window !== 'undefined' ? window : null, typeof window !== 'undefined' ? document : null);","import * as React from 'react';\n\nimport * as R from 'ramda';\n\nimport {\n inlineHTMLToJSON,\n inlineJSONToHTML\n} from '../../src/convert'\n\nimport {\n modifyNodeValueByUIDAndKey\n} from '../../src/doc_helpers'\n\nimport {\n replaceText,\n addStyle,\n removeStyle\n} from '../../src/inline_json'\n\nimport {\n getDocRangeSelection,\n areEqualRangeSelections,\n setDocSelection\n} from '../../src/selection'\ninterface DocInlineTextProps {\n content: string;\n contentKey: string;\n editState: EditState;\n preventEditing?: boolean;\n uid: string;\n};\n\ninterface DocInlineTextState {};\nexport default class DocInlineText extends React.Component<DocInlineTextProps, DocInlineTextState> {\n constructor(props) {\n super(props)\n this.ref = React.createRef()\n }\n\n private ref: React.RefObject<HTMLSpanElement>;\n\n handleInput = () => {\n let currentlyEditing = this.props.editState.currentlyEditing\n let afterInputRangeSelection = getDocRangeSelection()\n\n if (\n currentlyEditing &&\n afterInputRangeSelection &&\n currentlyEditing.uid === afterInputRangeSelection.uid &&\n currentlyEditing.key === afterInputRangeSelection.key &&\n currentlyEditing.range\n ) {\n let oldText = inlineHTMLToJSON(this.props[currentlyEditing.key] || \"\")\n let newText = inlineHTMLToJSON(this.ref.current.innerHTML).text\n\n let newTextSpan = newText.slice(currentlyEditing.range.start, afterInputRangeSelection.range.end)\n\n this.props.editState.modifyEditJSON(json => {\n return modifyNodeValueByUIDAndKey(json, currentlyEditing.uid, currentlyEditing.key, inlineHTML => {\n let newInlineJSON = replaceText(inlineHTMLToJSON(inlineHTML), currentlyEditing.range, newTextSpan)\n\n let styleChangeRange = {\n start: currentlyEditing.range.start,\n end: afterInputRangeSelection.range.end\n }\n\n if (currentlyEditing.newlyActiveStyles) {\n currentlyEditing.newlyActiveStyles.forEach(newActiveStyle => {\n newInlineJSON = addStyle(newInlineJSON, newActiveStyle.type, styleChangeRange, newActiveStyle.args || {})\n })\n }\n\n if (currentlyEditing.newlyInactiveStyles) {\n currentlyEditing.newlyInactiveStyles.forEach(newInactiveStyle => {\n newInlineJSON = removeStyle(newInlineJSON, newInactiveStyle.type, styleChangeRange)\n })\n }\n\n return inlineJSONToHTML(newInlineJSON)\n })\n })\n\n this.props.editState.setCurrentlyEditing({...currentlyEditing, range: afterInputRangeSelection.range, newlyActiveStyles: [], newlyInactiveStyles: []})\n }\n };\n\n handlePaste = e => {\n e.preventDefault()\n\n const currentlyEditing = this.props.editState.currentlyEditing\n\n const pasteData = e.clipboardData.getData('text/plain')\n if (\n pasteData &&\n currentlyEditing &&\n currentlyEditing.uid &&\n currentlyEditing.key &&\n currentlyEditing.range\n ) {\n const lines = R.reject(R.isEmpty, R.map(R.trim, (R.split('\\n', pasteData))))\n const pasteString = R.join(\" \", lines)\n\n this.props.editState.modifyEditJSON(json => {\n return modifyNodeValueByUIDAndKey(json, currentlyEditing.uid, currentlyEditing.key, inlineHTML => {\n let newInlineJSON = replaceText(inlineHTMLToJSON(inlineHTML), currentlyEditing.range, pasteString)\n\n return inlineJSONToHTML(newInlineJSON)\n })\n })\n\n const newRangeStart = currentlyEditing.range.start + pasteString.length\n const newSelectionRange = {\n start: newRangeStart,\n end: newRangeStart\n }\n\n this.props.editState.setCurrentlyEditing({...currentlyEditing, range: newSelectionRange, newlyActiveStyles: [], newlyInactiveStyles: []})\n }\n };\n\n isEditingByProps(props) {\n let currentlyEditing = props.editState.currentlyEditing\n return currentlyEditing && currentlyEditing.uid === props.uid && currentlyEditing.key === props.contentKey && !currentlyEditing.selectionMenu\n }\n\n updateSelectionIfRelevantByProps(props, shouldDelay=false) {\n let currentlyEditing = props.editState.currentlyEditing\n\n if (this.isEditingByProps(props)) {\n let currentDocRangeSelection = getDocRangeSelection()\n if (!areEqualRangeSelections(currentDocRangeSelection, currentlyEditing)) {\n let setDocSelctionFunc = () => setDocSelection(currentlyEditing)\n if (shouldDelay) {\n setTimeout(setDocSelctionFunc, 10)\n } else {\n setDocSelctionFunc()\n }\n }\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n let shouldUpdate =\n this.props.content != nextProps.content ||\n this.isEditingByProps(this.props) != this.isEditingByProps(nextProps) ||\n this.props.editState.isEditing !== nextProps.editState.isEditing\n\n if (!shouldUpdate) { this.updateSelectionIfRelevantByProps(nextProps, true) }\n\n return shouldUpdate\n }\n\n componentDidUpdate(prevProps, prevState) {\n this.updateSelectionIfRelevantByProps(this.props)\n }\n\n componentDidMount() {\n this.updateSelectionIfRelevantByProps(this.props)\n }\n\n setAsCurrentlyEditing() {\n this.props.editState.setCurrentlyEditing({uid: this.props.uid, range: {start: 0, end: 0}, key: this.props.contentKey})\n }\n\n render() {\n if (this.props.editState.isEditing && !this.props.preventEditing) {\n let content = this.props.content\n if (content.length === 0) {\n if (!this.isEditingByProps(this.props)) {\n return <span className=\"doc-inline-text insert-text-here\" onClick={this.setAsCurrentlyEditing.bind(this)}>Insert Text Here</span>\n } else {\n content = \" \"\n }\n }\n\n return (\n <span\n className=\"doc-inline-text mousetrap\"\n data-uid={this.props.uid}\n data-contentkey={this.props.contentKey}\n dangerouslySetInnerHTML={{__html: content}}\n contentEditable\n onInput={this.handleInput}\n onPaste={this.handlePaste}\n autoCapitalize={\"off\"}\n // autoComplete={\"off\"} // TODO: ADD BACK IN?\n autoCorrect={\"off\"}\n spellCheck={false}\n onClick={(e) => e.stopPropagation()}\n ref={this.ref}\n />\n )\n } else {\n return (\n <span\n className=\"doc-inline-text mousetrap\"\n data-uid={this.props.uid}\n data-contentkey={this.props.contentKey}\n dangerouslySetInnerHTML={{__html: this.props.content || \"\"}}\n ref={this.ref}\n />\n )\n }\n }\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}","import React from 'react'\nimport { Provider, connect, batch } from 'react-redux'\n\nimport store from 'store/store'\n\nimport {\n getListFromStore,\n setEndpoint,\n readListPage,\n resetListPages,\n addListFilter,\n removeListFilter,\n setListSearch,\n resetListSearch,\n setListSort,\n resetListSort,\n setListSelected,\n resetListSelected,\n addListSelected,\n removeListSelected,\n setListItemsPerPage\n} from 'reducers/list'\n\nconst mapStateToProps = listID => (state, ownProps) => (\n {\n [listID]: getListFromStore(state, listID)\n }\n)\n\nconst mapDispatchToProps = listID => (dispatch, ownProps) => {\n return {\n [listID]: {\n mountList: (endpoint) => batch(() => {\n dispatch(setEndpoint(listID, endpoint))\n dispatch(readListPage(listID))\n }),\n setEndpoint: (endpoint) => dispatch(setEndpoint(listID, endpoint)),\n readListPage: () => dispatch(readListPage(listID)),\n resetListPages: () => dispatch(resetListPages(listID)),\n addListFilter: (filterID, filter) => dispatch(addListFilter(listID, filterID, filter)),\n removeListFilter: (filterID) => dispatch(removeListFilter(listID, filterID)),\n setListSearch: (search) => dispatch(setListSearch(listID, search)),\n resetListSearch: () => dispatch(resetListSearch(listID)),\n setListSort: (sort_by, sort_order) => dispatch(setListSort(listID, sort_by, sort_order)),\n resetListSort: () => dispatch(resetListSort(listID)),\n setListSelected: (selected) => dispatch(setListSelected(listID, selected)),\n resetListSelected: () => dispatch(resetListSelected(listID)),\n addListSelected: (addSelectedIDs) => dispatch(addListSelected(listID, addSelectedIDs)),\n removeListSelected: (removeSelectedIDs) => dispatch(removeListSelected(listID, removeSelectedIDs)),\n setListItemsPerPage: (itemsPerPage) => dispatch(setListItemsPerPage(listID, itemsPerPage))\n }\n }\n}\n\nconst mergeProps = listID => (stateProps, dispatchProps, ownProps) => {\n return {\n ...stateProps,\n ...dispatchProps,\n ...ownProps,\n [listID]: {\n ...stateProps[listID],\n ...dispatchProps[listID]\n }\n }\n}\n\nexport default function connectToList(component, possibleListIDs) {\n const listIDs = Array.isArray(possibleListIDs) ? possibleListIDs : [possibleListIDs];\n\n let ConnectedToListComponent = component;\n listIDs.forEach((listID) => {\n ConnectedToListComponent = connect(mapStateToProps(listID), mapDispatchToProps(listID), mergeProps(listID))(ConnectedToListComponent)\n })\n\n return props => {\n return <Provider store={store()}>\n <ConnectedToListComponent {...props}/>\n </Provider>\n }\n}\n","import * as React from 'react';\n\ninterface GenModalProps {\n open: boolean;\n children: React.ReactNode;\n}\n\nexport default function GenModal(\n {\n open,\n children,\n }: GenModalProps,\n) {\n if (open) {\n return (\n <div className=\"gen-modal\">\n {children}\n </div>\n );\n } else {\n return(null);\n }\n}\n","import axios from 'axios'\nimport * as R from 'ramda'\n\nimport { fullURL } from 'src/url'\n\nexport const SET_ENDPOINT = 'list/SET_ENDPOINT'\n\nexport const READ_PAGE = 'list/READ_PAGE'\nexport const RESET_PAGES = 'list/RESET_PAGES'\n\nconst PENDING = '_PENDING'\nconst FULFILLED = '_FULFILLED'\nconst REJECTED = '_REJECTED'\n\nexport const ADD_FILTER = 'list/ADD_FILTER'\nexport const REMOVE_FILTER = 'list/REMOVE_FILTER'\n\nexport const SET_SEARCH = 'list/SET_SEARCH'\nexport const RESET_SEARCH = 'list/RESET_SEARCH'\n\nexport const SET_SORT = 'list/SET_SORT'\nexport const RESET_SORT = 'list/RESET_SORT'\n\nexport const SET_SELECTED = 'list/SET_SELECTED'\nexport const RESET_SELECTED = 'list/RESET_SELECTED'\nexport const ADD_SELECTED = 'list/ADD_SELECTED'\nexport const REMOVE_SELECTED = 'list/REMOVE_SELECTED'\n\nexport const SET_ITEMS_PER_PAGE = 'list/SET_ITEMS_PER_PAGE'\n\nexport function listsReducer(state={}, action={}) {\n if (action.meta?.listID) {\n return {...state,\n [action.meta.listID]: listReducer(state[action.meta.listID], action)\n }\n } else {\n return state\n }\n}\n\nexport function getListFromStore(store, listID) {\n return store.lists[listID] || DEFAULT_STATE;\n}\n\n// {\n// listData: [],\n// localMetadata: {},\n// isSyncing: false,\n// lastSyncedAt: Date.now(),\n// errors: null,\n// nextSyncPageNumber:\n// itemsPerPage:\n// lastPageLength:\n// selected:\n// search:\n// sort_by:\n// sort_order:\n// activeFilters:\n// }\n\nconst DEFAULT_STATE = {\n isSyncing: false,\n nextSyncPageNumber: 0,\n itemsPerPage: 24,\n selected: [],\n}\n\nfunction listReducer(state=DEFAULT_STATE, action={}) {\n switch (action.type) {\n case SET_ENDPOINT:\n return {...state,\n endpoint: action.payload.endpoint\n }\n case READ_PAGE + PENDING:\n return {...state,\n isSyncing: true\n }\n case READ_PAGE + FULFILLED:\n return {...state,\n isSyncing: false,\n lastSyncedAt: Date.now(),\n errors: null,\n listData: (state.listData || []).concat(action.payload.data),\n nextSyncPageNumber: state.nextSyncPageNumber + 1,\n lastPageLength: action.payload.data.length\n }\n case READ_PAGE + REJECTED:\n return {...state,\n isSyncing: false,\n syncError: action.payload.message\n }\n case RESET_PAGES:\n return {...state,\n isSyncing: false,\n lastSyncedAt: null,\n errors: null,\n listData: null,\n nextSyncPageNumber: 0,\n lastPageLength: null\n }\n case ADD_FILTER:\n return {...state,\n activeFilters: {...state.activeFilters,\n [action.payload.filterID]: action.payload.filter\n }\n }\n case REMOVE_FILTER:\n return {...state,\n activeFilters: R.omit([action.payload.filterID], state.activeFilters)\n }\n case SET_SEARCH:\n return {...state,\n search: action.payload.search\n }\n case RESET_SEARCH:\n return R.omit(['search'], state)\n case SET_SORT:\n return {...state,\n sort_by: action.payload.sort_by,\n sort_order: action.payload.sort_order,\n }\n case RESET_SORT:\n return R.omit(['sort_by', 'sort_order'], state)\n case SET_SELECTED:\n return {...state,\n selected: action.payload.selected\n }\n case RESET_SELECTED:\n return {...state,\n selected: []\n }\n case ADD_SELECTED:\n return {...state,\n selected: R.unionWith((a, b) => a.id === b.id, state.selected, action.payload.addSelected)\n }\n case REMOVE_SELECTED:\n return {...state,\n selected: R.difference((a, b) => a.id === b.id, state.selected, action.payload.removeSelected)\n }\n case SET_ITEMS_PER_PAGE:\n return {...state,\n itemsPerPage: action.payload.itemsPerPage\n }\n default:\n return state\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n////////////////////////////////////////////////////////////////////////////////\n\nexport function setEndpoint(listID, endpoint) {\n return {\n type: SET_ENDPOINT,\n meta: {listID},\n payload: {endpoint}\n }\n}\n\n\nfunction listDataFromStore(listStore=DEFAULT_STATE) {\n let data = R.pick([\n 'ids',\n 'not_ids',\n 'search',\n 'sort_order',\n 'sort_by',\n ],\n listStore\n )\n\n if (listStore.itemsPerPage) {\n data.page = listStore.nextSyncPageNumber\n data.per_page = listStore.itemsPerPage\n }\n\n //\n // if (filterWhereQuery && filterWhereQuery.length > 0) {\n // data.where = JSON.stringify(filterWhereQuery)\n // }\n\n return data;\n}\n\nexport function readListPageWithData(listID, endpoint, data) {\n return {\n type: READ_PAGE,\n meta: {listID},\n payload: axios({\n url: fullURL('/' + endpoint),\n method: 'get',\n params: data,\n withCredentials: true,\n headers: {'Accept': 'application/json'}\n }),\n }\n}\n\nexport function readListPage(listID) {\n return (dispatch, getState) => {\n const state = getState()\n const list = state.lists[listID]\n const data = listDataFromStore(list)\n\n const endpoint = list.endpoint\n\n dispatch(readListPageWithData(listID, endpoint, data))\n }\n}\n\nexport function resetListPages(listID) {\n return {\n type: RESET_PAGES,\n meta: {listID}\n }\n}\n\nexport function addListFilter(listID, filterID, filter) {\n return {\n type: ADD_FILTER,\n meta: {listID},\n payload: {filterID, filter}\n }\n}\n\nexport function removeListFilter(listID, filterID) {\n return {\n type: REMOVE_FILTER,\n meta: {listID},\n payload: {filterID}\n }\n}\n\nexport function setListSearch(listID, search) {\n return {\n type: SET_SEARCH,\n meta: {listID},\n payload: {search}\n }\n}\n\nexport function resetListSearch(listID) {\n return {\n type: RESET_SEARCH,\n meta: {listID}\n }\n}\n\nexport function setListSort(listID, sort_by, sort_order) {\n return {\n type: SET_SORT,\n meta: {listID},\n payload: {sort_by, sort_order}\n }\n}\n\nexport function resetListSort(listID) {\n return {\n type: RESET_SORT,\n meta: {listID}\n }\n}\n\nexport function setListSelected(listID, selected) {\n return {\n type: SET_SELECTED,\n meta: {listID},\n payload: {selected}\n }\n}\n\nexport function resetListSelected(listID) {\n return {\n type: RESET_SELECTED,\n meta: {listID}\n }\n}\n\nexport function addListSelected(listID, addSelected) {\n return {\n type: ADD_SELECTED,\n meta: {listID},\n payload: {addSelected}\n }\n}\n\nexport function removeListSelected(listID, removeSelected) {\n return {\n type: REMOVE_SELECTED,\n meta: {listID},\n payload: {removeSelected}\n }\n}\n\nexport function setListItemsPerPage(listID, itemsPerPage) {\n return {\n type: SET_ITEMS_PER_PAGE,\n meta: {listID},\n payload: {itemsPerPage}\n }\n}\n","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import React from 'react';\n\nimport GenButton from 'Gen/Button'\nimport GenList from 'Gen/List'\n\nexport default class GenSelectList extends React.Component {\n onItemClick = (item) => {\n let newSelected\n if (this.props.selected.indexOf(item.id) >= 0) {\n newSelected = this.props.selected.filter(function(id){ return(id !== item.id); });\n } else {\n newSelected = this.props.selected.concat([item.id]);\n }\n\n this.props.onSelectionChange(newSelected);\n };\n\n generateView = (that) => {\n return(function(item) {\n let classes = \"gen-select-item\";\n if (that.props.selected.indexOf(item.id) >= 0) {\n classes += \" bg-sky-100\";\n }\n\n return(\n <div className={classes} onClick={() => {that.onItemClick(item);}} key={item.id}>\n {that.props.itemView(item, that.props.selected.indexOf(item.id) >= 0)}\n </div>\n );\n });\n };\n\n selectAll = (successCallback) => {\n if (this.childGenList && this.childGenList.state.currentItems) {\n this.props.onSelectionChange(this.childGenList.state.currentItems.map(function(item) { return(item.id); }));\n } else {\n this.props.onSelectionChange([]);\n }\n };\n\n deselectAll = () => {\n this.props.onSelectionChange([]);\n };\n\n render() {\n return(<div className=\"gen-select-list\">\n <div className=\"gen-select-list-buttons\">\n <div className=\"gen-select-list-buttons-left flex gap-2 items-baseline\">\n <GenButton name=\"Select All Shown\" onClick={this.selectAll} highlighted small/>\n <GenButton name=\"Deselect All\" onClick={this.deselectAll} highlighted small/>\n <span>{this.props.selected.length} selected</span>\n </div>\n <div className=\"gen-select-list-buttons-right\">\n {this.props.selectExtraButtons}\n </div>\n </div>\n <GenList\n ref={(input) => { this.childGenList = input; }}\n {...this.props}\n itemView={this.generateView(this)}\n />\n </div>);\n }\n}\n","import * as React from 'react';\n\ninterface GenLoadingSpinnerProps {\n highlighted?: boolean;\n}\n\nexport default function GenLoadingSpinner(\n {\n highlighted,\n }: GenLoadingSpinnerProps,\n) {\n let classes = \"gen-loading-spinner\";\n\n if (highlighted) {\n classes += \" highlighted\";\n }\n\n return(\n <div className={classes}>\n <div className=\"bg-sky-600 gen-loading-spinner-bounce-1\" />\n <div className=\"bg-sky-600 gen-loading-spinner-bounce-2\" />\n <div className=\"bg-sky-600 gen-loading-spinner-bounce-3\" />\n </div>\n );\n}\n","import React from 'react';\n\nimport DocumentSummary from 'Document/Summary'\n\nexport const documentListDefaults = {\n title:\"Cases\",\n itemsURL:\"/documents\",\n itemView:function(document){\n return(<DocumentSummary document={document} key={document.id}/>);\n },\n search:true,\n searchPlaceHolder: \"Search by symptom, diagnosis, or case #...\",\n sortOptions:[\n {\n \"title\": \"Case #\",\n \"value\": \"documents.id\"\n },\n {\n \"title\": \"Published\",\n \"value\": \"documents.created_at\"\n }\n ],\n filterOptions:[\n { \"title\": \"Patient Age\",\n \"options\": [\n \"Newborn\",\n \"Infant\",\n \"Toddler\",\n \"Child\",\n \"Adolescent\",\n \"Adult\",\n \"Young Adult\",\n \"Elderly\"\n ]\n },\n { \"title\": \"Organ System\",\n \"options\": [\n \"Circulatory\",\n \"Digestive\",\n \"Endocrine\",\n \"Integumentary/Dermatology\",\n \"Lymphatic\",\n \"Muscular\",\n \"Nervous\",\n \"Reproductive\",\n \"Respiratory\",\n \"Skeletal\",\n \"Urinary\"\n ]\n },\n { \"title\": \"Specialty\",\n \"options\": [\n \"Dentistry\",\n \"Dermatology\",\n \"Emergency Medicine\",\n \"Family Medicine\",\n \"Internal Medicine\",\n \"Medical Genetics\",\n \"Neurosurgery\",\n \"Neurology\",\n \"Obstetrics & Gynecology\",\n \"Orthopedics\",\n \"Pathology\",\n \"Pediatrics\",\n \"Physical Medicine & Rehabilitation\",\n \"Psychiatry\",\n \"Surgery\",\n ]\n },\n { \"title\": \"Libraries\",\n \"options\": [\n \"Developing World Medicine\",\n \"Emergency Bedside Ultrasound\",\n \"Emergency Medical Services (EMS)\",\n \"Intro to Pathology\",\n \"Kartini Clinic For Children & Families: Eating Disorders Library\",\n \"Oregon Supported Living Program With Developmental Disabilities\",\n \"ReelDx Grand Rounds: Recorded Webinar Series\"\n ]\n }\n ],\n checkboxFilterOptions:[\n {\n \"key\": \"extra_media\",\n \"filter\": \"extra_media\",\n \"label\": \"Only cases with other media\"\n }\n ]\n};\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","module.exports = require('./lib/axios');","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = function (cache) {\n // eslint-disable-next-line func-names\n return function (thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n}(Object.create(null));\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (typeof FormData === 'function' && thing instanceof FormData || toString.call(thing) === pattern || isFunction(thing.toString) && thing.toString() === pattern);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */\n) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n destObj = destObj || {};\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = function (TypedArray) {\n // eslint-disable-next-line func-names\n return function (thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n}(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};","import * as R from 'ramda'\n\n// InlineJSON\n// {\n// text: String,\n// styles: [Style],\n// }\n\n// Style\n// {\n// type: String,\n// range: Range,\n// args: {}\n// }\n\nimport {\n adjustRangeValuesAtMostToCuttoff\n} from './range'\n\nexport function replaceText(inlineJSON: InlineJsonContent, replaceRange: BaseRange, newText: string) {\n return adjustStyleRangesWithFunction({\n ...inlineJSON,\n text: inlineJSON.text.slice(0, replaceRange.start) + newText + inlineJSON.text.slice(replaceRange.end),\n }, range => adjustRangeValuesAtMostToCuttoff(range, newText.length - (replaceRange.end - replaceRange.start), replaceRange.start))\n}\n\nexport function addStyle(inlineJSON: InlineJsonContent, type: StyleType, range: BaseRange, args={}) {\n return ({\n ...inlineJSON,\n styles: combineStyleRanges(inlineJSON.styles.concat([{\n type,\n range,\n args\n }]))\n })\n}\n\nexport function removeStyle(inlineJSON: InlineJsonContent, type: StyleType, range: BaseRange) {\n const newStyles = R.flatten(inlineJSON.styles.map(style => {\n if (style.type !== type) { return style }\n\n if (range.start <= style.range.start) {\n if (range.end >= style.range.end) {\n return []\n } else if (range.end > style.range.start) {\n return {\n ...style,\n range: {\n start: range.end,\n end: style.range.end\n }\n }\n } else {\n return style\n }\n } else if (range.start < style.range.end) {\n if (range.end >= style.range.end) {\n return {\n ...style,\n range: {\n start: style.range.start,\n end: range.start\n }\n }\n } else {\n return [{\n ...style,\n range: {\n start: style.range.start,\n end: range.start\n }\n },{\n ...style,\n range: {\n start: range.end,\n end: style.range.end\n }\n }]\n }\n } else {\n return style\n }\n }))\n\n return ({\n ...inlineJSON,\n styles: newStyles\n })\n}\n\nexport function setStyleArg(inlineJSON: InlineJsonContent, type: StyleType, index: number, argKey: string, argValue: unknown) {\n let groupedStyles = R.groupBy(style => style.type, inlineJSON.styles)\n\n let groupedStyle = groupedStyles[type]\n\n groupedStyles[type] = (groupedStyle || []).map(style => {\n if (style.type === \"a\" && style.range.start <= index && style.range.end >= index) {\n return {\n ...style,\n args: {\n ...style.args,\n [argKey]: argValue\n }\n }\n } else {\n return style\n }\n })\n\n return ({\n ...inlineJSON,\n styles: R.flatten(R.values(groupedStyles))\n })\n}\n\nfunction adjustStyleRangesWithFunction(inlineJSON: InlineJsonContent, func: (range: BaseRange) => BaseRange) {\n return R.over(R.lensProp('styles'), R.map(R.over(R.lensProp('range'), func)), inlineJSON)\n}\n\n\nexport function inlineJSONBeforeIndex(inlineJSON: InlineJsonContent, index: number) {\n return {\n text: inlineJSON.text.slice(0,index),\n styles: inlineJSON.styles.filter(style => style.range.start < index).map(style => {return {...style, range: {...style.range, end: Math.min(style.range.end, index)}}})\n }\n}\n\nexport function inlineJSONAfterIndex(inlineJSON: InlineJsonContent, index: number) {\n return {\n text: inlineJSON.text.slice(index),\n styles: inlineJSON.styles.filter(style => style.range.end > index).map(style => {return {...style, range: {...style.range, start: Math.max(style.range.start, index)}}})\n }\n}\n\nfunction combineStyleRanges(styles: Array<StyleRange>) {\n let arrayOfGroupedStyles = R.values(R.groupBy(style => style.type, styles))\n let arrayOfGroupedStylesCombined = arrayOfGroupedStyles.map(groupedStyle => {\n if (!groupedStyle) { return [] }\n\n let sortedByStart = R.sortBy(style => style.range.start, groupedStyle)\n\n return sortedByStart.reduce((acc: Array<StyleRange>, style) => {\n const lastStyle = R.last(acc)\n if (!lastStyle) {\n return [style]\n } else {\n if (lastStyle.range.end < style.range.start) {\n return acc.concat([style])\n } else {\n return R.init(acc).concat([{\n ...lastStyle,\n range: {\n start: lastStyle.range.start,\n end: R.max(lastStyle.range.end, style.range.end)\n }\n }])\n }\n }\n }, [])\n })\n\n return R.flatten(arrayOfGroupedStylesCombined)\n}\n\nexport function splitInlineJSONAtIndex(inlineJSON: InlineJsonContent, index: number) {\n const [text1, text2] = R.splitAt(index, inlineJSON.text)\n const [styles1, styles2] = splitStylesAtIndex(inlineJSON.styles, index)\n\n return [\n {\n ...inlineJSON,\n text1: text1,\n styles: styles1\n },\n {\n ...inlineJSON,\n text2: text2,\n styles: styles2\n }\n ]\n}\n\nexport function splitStylesAtIndex(styles: Array<StyleRange>, index: number) {\n const unadjustedStyles1 = styles.filter(style => style.range.start < index)\n const unadjustedStyles2 = styles.filter(style => style.range.end > index)\n\n const styles1 = unadjustedStyles1.map(style => {\n return {\n ...style,\n range: {\n start: style.range.start,\n end: R.min(style.range.end, index)\n }\n }\n })\n\n const styles2 = unadjustedStyles2.map(style => {\n return {\n ...style,\n range: {\n start: style.range.start - index,\n end: style.range.end - index\n }\n }\n })\n\n return [styles1, styles2]\n}\n","import * as React from 'react';\n\ninterface GenBooleanCircleProps {\n value: boolean\n}\n\nexport default function GenBooleanCircle(props: GenBooleanCircleProps) {\n const {\n value,\n } = props;\n\n return (\n value\n ? <i className=\"fa fa-check-circle boolean-check\" />\n : <i className=\"fa fa-times-circle boolean-times\" />\n );\n}\n","import React from 'react';\n\nimport classNames from 'classnames'\n\nimport GenDirectionalButtons from 'Gen/DirectionalButtons'\nimport GenMore from 'Gen/More'\n\nimport { fullURL } from 'src/url'\n\nfunction filterKeys(object, keys) {\n let result = {};\n for (let key in object)\n if (keys.indexOf(key) > -1)\n result[key] = object[key];\n return result;\n}\n\nexport default class GenList extends React.Component {\n // React.PropTypes\n // propTypes: {\n // // ids:\n // // notIds:\n // // itemsURL:\n // // search:\n // // sortOptions:\n // // filterOptions:\n // },\n //\n static defaultProps = {\n historyPersistance: false,\n defaultItemsPerPage: 12,\n shouldInfiniteScroll: true\n };\n\n constructor(props, context) {\n super(props, context);\n const defaults = {\n currentItems: null,\n itemsPerPage: props.defaultItemsPerPage,\n pageNumber: 0,\n gettingNewPage: false,\n itemsLastRecieved: null,\n searchValue: \"\",\n searchTimer: null,\n sortValue: null,\n sortDirection: null,\n activeFilters: {},\n activeWhereFilters: {},\n activeCheckboxFilters: [],\n infiniteScrollRandomKey: Math.floor(Math.random() * 1000000)\n };\n\n const history = this.props.historyPersistance && this.getHistoryState();\n\n this.state = {\n ...defaults,\n ...history\n };\n\n this.refreshList = this.refreshList.bind(this)\n this.refreshItem = this.refreshItem.bind(this)\n }\n\n componentDidMount() {\n this.getUpdatedList();\n\n if (this.props.shouldInfiniteScroll) {\n window.addEventListener(\"scroll\", this.checkVisibilityForInfiniteScroll);\n setTimeout(this.checkVisibilityForInfiniteScroll,500);\n }\n }\n\n componentWillUnmount() {\n if (this.state.timer) {\n clearTimeout(this.state.searchTimer);\n }\n\n window.removeEventListener(\"scroll\", this.checkVisibilityForInfiniteScroll);\n }\n\n // search=string\n // page=int\n // sort_value=string\n // sort_order=string\n //\n getHistoryState = () => {\n let state = history.state;\n if (state === null) {\n state = {};\n }\n return(filterKeys(state, [\"searchValue\", \"sortValue\", \"sortDirection\", \"pageNumber\", \"activeFilters\", \"activeWhereFilters\", \"activeCheckboxFilters\"]));\n };\n\n setHistoryState = () => {\n const currentState = history.state;\n const newPartial = filterKeys(this.state, [\"searchValue\", \"sortValue\", \"sortDirection\", \"pageNumber\", \"activeFilters\", \"activeWhereFilters\", \"activeCheckboxFilters\"]);\n const newState = {...currentState, ...newPartial};\n\n history.replaceState(newState, document.title);\n };\n\n handleSearchChange = (e) => {\n this.setState({searchValue: e.target.value,\n currentItems: null,\n gettingNewPage: false,\n pageNumber: 0});\n\n if (this.state.searchTimer) { clearTimeout(this.state.searchTimer); }\n this.setState({searchTimer: setTimeout(this.updateSearchWithTimer, 1000)});\n };\n\n handleSearchKeyPress = (e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n };\n\n updateSearchWithTimer = () => {\n // this.updateUSC();\n this.getUpdatedList();\n this.setState({timer: null});\n };\n\n updateSort = (newSortValue, newSortDirection) => {\n this.setState({ sortValue: newSortValue,\n sortDirection: newSortDirection,\n currentItems: null,\n gettingNewPage: false,\n pageNumber: 0 }, this.getUpdatedList);\n };\n\n handleFilterChange = (that, newKey) => {\n return(function(newSelect){\n let newValue = newSelect.target.value;\n\n let currentActiveFilters = that.state.activeFilters;\n let newActiveFilters = {};\n for (let attr in currentActiveFilters) {\n if (attr != newKey) {\n newActiveFilters[attr] = currentActiveFilters[attr];\n }\n }\n\n if (newValue != \"All\") {\n newActiveFilters[newKey] = newValue;\n }\n\n that.setState({ activeFilters: newActiveFilters,\n currentItems: null,\n gettingNewPage: false,\n pageNumber: 0 }, that.getUpdatedList);\n });\n };\n\n handleWhereFilterChange = (that, newKey) => {\n return(function(newSelect){\n let newValue = newSelect.target.value;\n\n let currentActiveWhereFilters = that.state.activeWhereFilters;\n let newActiveWhereFilters = {};\n for (let attr in currentActiveWhereFilters) {\n if (attr != newKey) {\n newActiveWhereFilters[attr] = currentActiveWhereFilters[attr];\n }\n }\n\n if (newValue != \"All\") {\n newActiveWhereFilters[newKey] = newValue;\n }\n\n that.setState({ activeWhereFilters: newActiveWhereFilters,\n currentItems: null,\n gettingNewPage: false,\n pageNumber: 0 }, that.getUpdatedList);\n });\n };\n\n handleCheckboxFilterChange = (that, filterName) => {\n return(function(event){\n let isChecked = event.target.checked;\n\n let newActiveCheckboxFilters = that.state.activeCheckboxFilters;\n if (isChecked) {\n newActiveCheckboxFilters = newActiveCheckboxFilters.concat([filterName])\n } else {\n newActiveCheckboxFilters = newActiveCheckboxFilters.filter((val) => val != filterName)\n }\n\n that.setState({ activeCheckboxFilters: newActiveCheckboxFilters,\n currentItems: null,\n gettingNewPage: false,\n pageNumber: 0 }, that.getUpdatedList);\n });\n };\n\n moreClick = () => {\n this.setState({ pageNumber: this.state.pageNumber + 1,\n gettingNewPage: true}, this.getAdditionalPage);\n };\n\n dataForQuery = () => {\n let data = {};\n\n if (this.props.ids) {\n data.ids = this.props.ids;\n }\n\n if (this.props.notIds) {\n data.not_ids = this.props.notIds;\n }\n\n if (this.state.searchValue && this.state.searchValue.trim() !== \"\") {\n data.search = this.state.searchValue;\n }\n\n if (this.state.sortValue) {\n data.sort_order = (this.state.sortDirection === \"descending\") ? \"DESC\" : \"ASC\";\n data.sort_by = this.state.sortValue;\n }\n\n\n if (this.state.itemsPerPage) {\n if (this.state.currentItems === null) {\n data.page = 0;\n data.per_page = (this.state.pageNumber + 1) * this.state.itemsPerPage;\n } else {\n data.page = this.state.pageNumber;\n data.per_page = this.state.itemsPerPage;\n }\n }\n\n let filterValues = [];\n for(let key in this.state.activeFilters) {\n filterValues.push(this.state.activeFilters[key]);\n }\n\n let activeCheckboxFilters = this.state.activeCheckboxFilters.map(checkboxFilterKey => {\n return this.props.checkboxFilterOptions.find((checkboxFilterOption) => checkboxFilterOption[\"key\"] === checkboxFilterKey)\n })\n\n let regularCheckboxFilters = activeCheckboxFilters.filter(filter => filter.filter)\n regularCheckboxFilters.forEach(regularCheckboxFilter => {\n filterValues.push(regularCheckboxFilter.filter)\n });\n\n if (filterValues.length > 0) {\n data.filters = filterValues;\n }\n\n let whereValues = [];\n let whereCheckboxFilters = activeCheckboxFilters.filter(filter => filter.whereFilter)\n whereCheckboxFilters.forEach(whereCheckboxFilter => {\n whereValues.push(whereCheckboxFilter.whereFilter)\n });\n\n for(let key in this.state.activeWhereFilters) {\n let whereFilterOption = this.props.whereFilterOptions.find((wfo) => {return(wfo.title === key)})\n whereValues.push(whereFilterOption[\"options\"][this.state.activeWhereFilters[key]]);\n }\n if (whereValues.length > 0) {\n data.where = JSON.stringify(whereValues);\n }\n\n return data;\n };\n\n getPage = (successCallback) => {\n const params = new URLSearchParams(this.dataForQuery()).toString();\n const urlWithParams = `${fullURL(this.props.itemsURL)}?${params}`;\n\n fetch(urlWithParams, {\n headers: {\n Accept: \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then((data) => { successCallback.bind(this)(data) })\n .catch(() => {});\n };\n\n getItem = (itemId, successCallback) => {\n const params = new URLSearchParams({ids: [itemId]}).toString();\n const urlWithParams = `${fullURL(this.props.itemsURL)}?${params}`;\n\n fetch(urlWithParams, {\n headers: {\n Accept: \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then((data) => { successCallback.bind(this)(data) })\n .catch(() => {});\n }\n\n getUpdatedList = () => {\n this.getPage(function(result) {\n if (this.props.historyPersistance) { this.setHistoryState(); }\n if (result) { this.setState({currentItems: result, itemsLastRecieved: result.length}); }\n if (this.props.shouldInfiniteScroll) {\n setTimeout(this.checkVisibilityForInfiniteScroll,100);\n }\n });\n };\n\n getAdditionalPage = () => {\n this.getPage(function(result) {\n if (this.props.historyPersistance) { this.setHistoryState(); }\n this.setState({currentItems: (this.state.currentItems || []).concat(result),\n itemsLastRecieved: result.length,\n gettingNewPage: false});\n if (this.props.shouldInfiniteScroll) {\n setTimeout(this.checkVisibilityForInfiniteScroll,100);\n }\n });\n };\n\n refreshList = () => {\n this.setState({ currentItems: null,\n gettingNewPage: false,\n pageNumber: 0 }, this.getUpdatedList);\n };\n\n refreshItem = (itemId) => {\n this.getItem(itemId, function(result) {\n let returnedItem = result[0]\n let indexOfItem = this.state.currentItems.findIndex((currentItem) => currentItem.id === itemId)\n\n if (returnedItem && indexOfItem >= 0) {\n let modifiedCurrentItems = [\n ...this.state.currentItems.slice(0, indexOfItem),\n returnedItem,\n ...this.state.currentItems.slice(indexOfItem+1)\n ]\n this.setState({ currentItems: modifiedCurrentItems })\n }\n });\n }\n\n checkVisibilityForInfiniteScroll = () => {\n let element = document.getElementById(this.state.infiniteScrollRandomKey)\n if (element) {\n let elementRect = element.getBoundingClientRect();\n let viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);\n let isVisible = !(elementRect.bottom < 0 || elementRect.top - viewHeight >= 0);\n\n if (isVisible) {\n this.moreClick()\n }\n }\n };\n\n render() {\n let controlPanel = null\n\n if (this.props.search || this.props.sortOptions || this.props.checkboxFilterOptions) {\n let searchBox = null\n if (this.props.search) {\n searchBox = <form className=\"gen-list-search-bar\" role=\"search\">\n <input\n type=\"search\"\n placeholder={this.props.searchPlaceHolder || \"Search...\"}\n value={this.state.searchValue}\n onChange={this.handleSearchChange}\n onKeyPress={this.handleSearchKeyPress}\n />\n </form>;\n } else {\n searchBox = null;\n }\n\n let checkboxFilters = null\n if (this.props.checkboxFilterOptions) {\n checkboxFilters = <div className=\"gen-list-checkbox-filters\">\n {this.props.checkboxFilterOptions.map((filter) => {\n let filterOut = <div key={filter.key}>\n <label>\n <input\n type=\"checkbox\"\n value={filter.key}\n checked={this.state.activeCheckboxFilters.includes(filter.key)}\n onChange={this.handleCheckboxFilterChange(this, filter.key)}\n />\n {filter.label}\n </label>\n </div>\n\n return( filterOut );\n }, this)}\n </div>\n }\n\n let sortOptions = null\n if (this.props.sortOptions) {\n sortOptions = <GenDirectionalButtons\n buttons={this.props.sortOptions}\n selectedValue={this.state.sortValue}\n selectedDirection={this.state.sortDirection}\n onUpdate={this.updateSort}/>;\n }\n\n controlPanel = <div className=\"gen-list-control-panel\">\n <div className=\"gen-list-control-set\">\n {searchBox}\n {checkboxFilters}\n </div>\n <div className=\"gen-list-control-set\">\n {sortOptions}\n </div>\n </div>;\n }\n\n let filterPanel\n if (this.props.filterOptions || this.props.whereFilterOptions) {\n const activeFilters = this.state.activeFilters;\n const activeWhereFilters = this.state.activeWhereFilters;\n filterPanel = <div className=\"gen-list-filter-panel\">\n {this.props.filterOptions && this.props.filterOptions.map(function(filter){\n let filterOut = <div key={filter.title} className=\"gen-list-filter\">\n <h5>{filter.title}</h5>\n <select defaultValue={activeFilters[filter.title] || \"All\"} onChange={this.handleFilterChange(this, filter.title)}>\n <option value=\"All\">All</option>\n {filter.options.map(function(option){\n return(\n <option key={option} value={option}>\n {option}\n </option>\n );\n })}\n </select>\n </div>;\n\n return( filterOut );\n }, this)}\n {this.props.whereFilterOptions && this.props.whereFilterOptions.map(function(whereFilter){\n whereFilterOut = <div key={whereFilter.title} className=\"gen-list-filter\">\n <h5>{whereFilter.title}</h5>\n <select defaultValue={activeWhereFilters[whereFilter.title] || \"All\"} onChange={this.handleWhereFilterChange(this, whereFilter.title)}>\n <option value=\"All\">All</option>\n {Object.keys(whereFilter.options).map(function(option_key){\n return(\n <option key={option_key} value={option_key}>\n {option_key}\n </option>\n );\n })}\n </select>\n </div>;\n\n return( filterOut );\n }, this)}\n </div>;\n }\n\n let listItems;\n if (this.state.currentItems !== null) {\n if (this.state.currentItems.length === 0) {\n const hasActiveSearchOrFiltering =\n this.state.searchValue.length > 0 ||\n Object.keys(this.state.activeFilters).length > 0 ||\n Object.keys(this.state.activeWhereFilters).length > 0 ||\n this.state.activeCheckboxFilters.length > 0\n\n listItems = (\n <div className=\"gen-list-no-items\">\n { this.props.noItemsMessage && !hasActiveSearchOrFiltering ? <h5>{this.props.noItemsMessage}</h5> : <h1>No Items</h1> }\n </div>\n );\n } else {\n listItems = this.state.currentItems.map(item => this.props.itemView(item, {refreshList: this.refreshList, refreshItem: this.refreshItem}));\n listItems = (\n <div className={classNames(\"gen-list-items\", {\"gen-list-grid\": this.props.gridView})}>\n {this.state.currentItems.map(item => this.props.itemView(item, {refreshList: this.refreshList, refreshItem: this.refreshItem}))}\n </div>\n );\n }\n }\n\n return(\n <div className=\"gen-list\">\n {controlPanel}\n {filterPanel}\n {listItems}\n {!this.props.shouldDisableMoreButton &&\n <GenMore\n isSyncing={this.state.currentItems === null || this.state.gettingNewPage}\n itemsPerPage={this.state.itemsPerPage}\n lastPageLength={this.state.itemsLastRecieved}\n readListPage={this.moreClick}\n shouldInfiniteScroll={this.props.shouldInfiniteScroll}\n />\n }\n </div>\n );\n }\n}\n","import * as React from 'react';\n\nimport GenDirectionalButtons from './DirectionalButtons'\n\ntype SortOrder = \"DESC\" | \"ASC\"\n\ninterface GenSortButtonsProps {\n setListSort: (value: string, direction: SortOrder) => void;\n resetListPages: () => void;\n readListPage: () => void;\n sortOptions: Array<{\n disabled: boolean;\n value: string;\n title: string;\n }>;\n sort_by: string;\n sort_order: SortOrder;\n}\n\nexport default function GenSortButtons(\n {\n setListSort,\n resetListPages,\n readListPage,\n sortOptions,\n sort_by,\n sort_order,\n }: GenSortButtonsProps,\n) {\n const updateSort = (newSortValue: string, newSortDirection: \"descending\" | \"ascending\") => {\n (newSortDirection === \"descending\") ? \"DESC\" : \"ASC\"\n\n setListSort(newSortValue, newSortDirection === \"descending\" ? \"DESC\" : \"ASC\")\n resetListPages()\n readListPage()\n }\n\n return (\n <GenDirectionalButtons\n buttons={sortOptions}\n selectedValue={sort_by}\n selectedDirection={sort_order === \"DESC\" ? \"descending\" : \"ascending\"}\n onUpdate={updateSort}\n />\n );\n}\n","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n function notifyNestedSubs() {\n listeners.notify();\n }\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\nexport default Provider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"],\n _excluded2 = [\"reactReduxForwardedRef\"];\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n var latestStoreState = store.getState();\n var newChildProps, error;\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n return unsubscribeWrapper;\n}\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory,\n// options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. ' + 'You may also pass a {context : MyContext} option to connect';\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n var pure = connectOptions.pure;\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2);\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer(/*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a <Provider>, \") + \"or pass a custom React context provider to <Provider> and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n var Connect = pure ? /*#__PURE__*/React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n if (forwardRef) {\n var forwarded = /*#__PURE__*/React.forwardRef(function forwardConnectRef(props, ref) {\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n function constantSelector() {\n return constant;\n }\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n proxy.dependsOnOwnProps = true;\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n return proxy;\n };\n}","import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","export default function bindActionCreators(actionCreators, dispatch) {\n var boundActionCreators = {};\n var _loop = function _loop(key) {\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = function () {\n return dispatch(actionCreator.apply(void 0, arguments));\n };\n }\n };\n for (var key in actionCreators) {\n _loop(key);\n }\n return boundActionCreators;\n}","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state, nextOwnProps, ownProps);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, _excluded);\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"];\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded);\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default /*#__PURE__*/createConnect();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n throw err;\n }\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n var _newSelectedState = latestSelector.current(newStoreState);\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n forceRender();\n }\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return <div>{counter}</div>\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","\"use strict\";\n\nexports.__esModule = true;\nexports.message = exports.accessor = exports.disabled = exports.dateFormat = exports.numberFormat = void 0;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _elementType = _interopRequireDefault(require(\"prop-types-extra/lib/elementType\"));\nexports.elementType = _elementType.default;\nvar _createChainableTypeChecker = _interopRequireDefault(require(\"prop-types-extra/lib/utils/createChainableTypeChecker\"));\nvar _localizers = require(\"./localizers\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar numberFormat = (0, _createChainableTypeChecker.default)(function () {\n return _localizers.number.propType.apply(_localizers.number, arguments);\n});\nexports.numberFormat = numberFormat;\nvar dateFormat = (0, _createChainableTypeChecker.default)(function () {\n return _localizers.date.propType.apply(_localizers.date, arguments);\n});\nexports.dateFormat = dateFormat;\nvar disabled = (0, _createChainableTypeChecker.default)(function () {\n return _propTypes.default.bool.apply(_propTypes.default, arguments);\n});\nexports.disabled = disabled;\ndisabled.acceptsArray = _propTypes.default.oneOfType([disabled, _propTypes.default.array]);\nvar accessor = _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]);\nexports.accessor = accessor;\nvar message = _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.string, _propTypes.default.func]);\nexports.message = message;","/**\n * @license\n * Lodash <https://lodash.com/>\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;\n(function () {\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [['ary', WRAP_ARY_FLAG], ['bind', WRAP_BIND_FLAG], ['bindKey', WRAP_BIND_KEY_FLAG], ['curry', WRAP_CURRY_FLAG], ['curryRight', WRAP_CURRY_RIGHT_FLAG], ['flip', WRAP_FLIP_FLAG], ['partial', WRAP_PARTIAL_FLAG], ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], ['rearg', WRAP_REARG_FLAG]];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = ['Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array', 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object', 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array', 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A',\n '\\xc1': 'A',\n '\\xc2': 'A',\n '\\xc3': 'A',\n '\\xc4': 'A',\n '\\xc5': 'A',\n '\\xe0': 'a',\n '\\xe1': 'a',\n '\\xe2': 'a',\n '\\xe3': 'a',\n '\\xe4': 'a',\n '\\xe5': 'a',\n '\\xc7': 'C',\n '\\xe7': 'c',\n '\\xd0': 'D',\n '\\xf0': 'd',\n '\\xc8': 'E',\n '\\xc9': 'E',\n '\\xca': 'E',\n '\\xcb': 'E',\n '\\xe8': 'e',\n '\\xe9': 'e',\n '\\xea': 'e',\n '\\xeb': 'e',\n '\\xcc': 'I',\n '\\xcd': 'I',\n '\\xce': 'I',\n '\\xcf': 'I',\n '\\xec': 'i',\n '\\xed': 'i',\n '\\xee': 'i',\n '\\xef': 'i',\n '\\xd1': 'N',\n '\\xf1': 'n',\n '\\xd2': 'O',\n '\\xd3': 'O',\n '\\xd4': 'O',\n '\\xd5': 'O',\n '\\xd6': 'O',\n '\\xd8': 'O',\n '\\xf2': 'o',\n '\\xf3': 'o',\n '\\xf4': 'o',\n '\\xf5': 'o',\n '\\xf6': 'o',\n '\\xf8': 'o',\n '\\xd9': 'U',\n '\\xda': 'U',\n '\\xdb': 'U',\n '\\xdc': 'U',\n '\\xf9': 'u',\n '\\xfa': 'u',\n '\\xfb': 'u',\n '\\xfc': 'u',\n '\\xdd': 'Y',\n '\\xfd': 'y',\n '\\xff': 'y',\n '\\xc6': 'Ae',\n '\\xe6': 'ae',\n '\\xde': 'Th',\n '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u0104': 'A',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u0105': 'a',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010a': 'C',\n '\\u010c': 'C',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010b': 'c',\n '\\u010d': 'c',\n '\\u010e': 'D',\n '\\u0110': 'D',\n '\\u010f': 'd',\n '\\u0111': 'd',\n '\\u0112': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u0118': 'E',\n '\\u011a': 'E',\n '\\u0113': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u0119': 'e',\n '\\u011b': 'e',\n '\\u011c': 'G',\n '\\u011e': 'G',\n '\\u0120': 'G',\n '\\u0122': 'G',\n '\\u011d': 'g',\n '\\u011f': 'g',\n '\\u0121': 'g',\n '\\u0123': 'g',\n '\\u0124': 'H',\n '\\u0126': 'H',\n '\\u0125': 'h',\n '\\u0127': 'h',\n '\\u0128': 'I',\n '\\u012a': 'I',\n '\\u012c': 'I',\n '\\u012e': 'I',\n '\\u0130': 'I',\n '\\u0129': 'i',\n '\\u012b': 'i',\n '\\u012d': 'i',\n '\\u012f': 'i',\n '\\u0131': 'i',\n '\\u0134': 'J',\n '\\u0135': 'j',\n '\\u0136': 'K',\n '\\u0137': 'k',\n '\\u0138': 'k',\n '\\u0139': 'L',\n '\\u013b': 'L',\n '\\u013d': 'L',\n '\\u013f': 'L',\n '\\u0141': 'L',\n '\\u013a': 'l',\n '\\u013c': 'l',\n '\\u013e': 'l',\n '\\u0140': 'l',\n '\\u0142': 'l',\n '\\u0143': 'N',\n '\\u0145': 'N',\n '\\u0147': 'N',\n '\\u014a': 'N',\n '\\u0144': 'n',\n '\\u0146': 'n',\n '\\u0148': 'n',\n '\\u014b': 'n',\n '\\u014c': 'O',\n '\\u014e': 'O',\n '\\u0150': 'O',\n '\\u014d': 'o',\n '\\u014f': 'o',\n '\\u0151': 'o',\n '\\u0154': 'R',\n '\\u0156': 'R',\n '\\u0158': 'R',\n '\\u0155': 'r',\n '\\u0157': 'r',\n '\\u0159': 'r',\n '\\u015a': 'S',\n '\\u015c': 'S',\n '\\u015e': 'S',\n '\\u0160': 'S',\n '\\u015b': 's',\n '\\u015d': 's',\n '\\u015f': 's',\n '\\u0161': 's',\n '\\u0162': 'T',\n '\\u0164': 'T',\n '\\u0166': 'T',\n '\\u0163': 't',\n '\\u0165': 't',\n '\\u0167': 't',\n '\\u0168': 'U',\n '\\u016a': 'U',\n '\\u016c': 'U',\n '\\u016e': 'U',\n '\\u0170': 'U',\n '\\u0172': 'U',\n '\\u0169': 'u',\n '\\u016b': 'u',\n '\\u016d': 'u',\n '\\u016f': 'u',\n '\\u0171': 'u',\n '\\u0173': 'u',\n '\\u0174': 'W',\n '\\u0175': 'w',\n '\\u0176': 'Y',\n '\\u0177': 'y',\n '\\u0178': 'Y',\n '\\u0179': 'Z',\n '\\u017b': 'Z',\n '\\u017d': 'Z',\n '\\u017a': 'z',\n '\\u017c': 'z',\n '\\u017e': 'z',\n '\\u0132': 'IJ',\n '\\u0133': 'ij',\n '\\u0152': 'Oe',\n '\\u0153': 'oe',\n '\\u0149': \"'n\",\n '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = function () {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }();\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0:\n return func.call(thisArg);\n case 1:\n return func.call(thisArg, args[0]);\n case 2:\n return func.call(thisArg, args[0], args[1]);\n case 3:\n return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function (value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n while (fromRight ? index-- : ++index < length) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? baseSum(array, iteratee) / length : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function (object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function (key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function (value, index, collection) {\n accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : result + current;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function (key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function (value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function (key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n map.forEach(function (value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n set.forEach(function (value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n set.forEach(function (value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string) ? unicodeSize(string) : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = function () {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? 'Symbol(src)_1.' + uid : '';\n }();\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n var defineProperty = function () {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }();\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap();\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = function () {\n function object() {}\n return function (proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object();\n object.prototype = undefined;\n return result;\n };\n }();\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : start - 1,\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n if (!isArr || !isRight && arrLength == length && takeCount == length) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n outer: while (length-- && resIndex < takeCount) {\n index += dir;\n var iterIndex = -1,\n value = array[index];\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash(),\n 'map': new (Map || ListCache)(),\n 'string': new Hash()\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n this.__data__ = new MapCache();\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache();\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == 'offset' || key == 'parent') ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') ||\n // Skip index properties.\n isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if (value !== undefined && !eq(object[key], value) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function (value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || isFunc && !object) {\n result = isFlat || isFunc ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack());\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n if (isSet(value)) {\n value.forEach(function (subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function (subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function (subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function (object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n if (value === undefined && !(key in object) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function () {\n func.apply(undefined, args);\n }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n } else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer: while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n value = comparator || value !== 0 ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n } else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function (value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n if (current != null && (computed === undefined ? current === current && !isSymbol(current) : comparator(current, computed))) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : length + start;\n }\n end = end === undefined || end > length ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function (value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n predicate || (predicate = isFlattenable);\n result || (result = []);\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function (key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n var index = 0,\n length = path.length;\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return index && index == length ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined;\n }\n array = arrays[0];\n var index = -1,\n seen = caches[0];\n outer: while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n value = comparator || value !== 0 ? value : 0;\n if (!(seen ? cacheHas(seen, computed) : includes(result, computed, comparator))) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache ? cacheHas(cache, computed) : includes(arrays[othIndex], computed, comparator))) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function (value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack());\n return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n stack || (stack = new Stack());\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack());\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack();\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result)) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n baseEach(collection, function (value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function (object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function (object) {\n var objValue = get(object, path);\n return objValue === undefined && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function (srcValue, key) {\n stack || (stack = new Stack());\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n } else {\n var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + '', object, source, stack) : undefined;\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer ? customizer(objValue, srcValue, key + '', object, source, stack) : undefined;\n var isCommon = newValue === undefined;\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n } else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n } else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n } else {\n newValue = [];\n }\n } else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n } else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n } else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function (iteratee) {\n if (isArray(iteratee)) {\n return function (value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n };\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n var result = baseMap(collection, function (value, key, collection) {\n var criteria = arrayMap(iteratees, function (iteratee) {\n return iteratee(value);\n });\n return {\n 'criteria': criteria,\n 'index': ++index,\n 'value': value\n };\n });\n return baseSortBy(result, function (object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function (value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function (object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {};\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function (func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function (func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n if (start < 0) {\n start = -start > length ? 0 : length + start;\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : end - start >>> 0;\n start >>>= 0;\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n baseEach(collection, function (value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = low + high >>> 1,\n computed = array[mid];\n if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? computed <= value : computed < value;\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n } else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache();\n } else {\n seen = iteratee ? [] : result;\n }\n outer: while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n value = comparator || value !== 0 ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n } else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) {}\n return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index);\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function (result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return !start && end >= length ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function (id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) {\n return 1;\n }\n if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index = -1,\n length = props.length;\n while (++index < length) {\n var key = props[index];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function (collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function (object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n customizer = assigner.length > 3 && typeof customizer == 'function' ? (length--, customizer) : undefined;\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function (collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n while (fromRight ? index-- : ++index < length) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function (object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n function wrapper() {\n var fn = this && this !== root && this instanceof wrapper ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function (string) {\n string = toString(string);\n var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined;\n var chr = strSymbols ? strSymbols[0] : string.charAt(0);\n var trailing = strSymbols ? castSlice(strSymbols, 1).join('') : string.slice(1);\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function (string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function () {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0:\n return new Ctor();\n case 1:\n return new Ctor(args[0]);\n case 2:\n return new Ctor(args[0], args[1]);\n case 3:\n return new Ctor(args[0], args[1], args[2]);\n case 4:\n return new Ctor(args[0], args[1], args[2], args[3]);\n case 5:\n return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6:\n return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7:\n return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder);\n length -= holders.length;\n if (length < arity) {\n return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, undefined, args, holders, undefined, undefined, arity - length);\n }\n var fn = this && this !== root && this instanceof wrapper ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function (collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function (key) {\n return iteratee(iterable[key], key, iterable);\n };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function (funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func);\n }\n }\n return function () {\n var args = arguments,\n value = args[0];\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, thisArg, args, newHolders, argPos, ary, arity - length);\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function (object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function (value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function (iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function (args) {\n var thisArg = this;\n return arrayFunc(iteratees, function (iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars) ? castSlice(stringToArray(result), 0, length).join('') : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = this && this !== root && this instanceof wrapper ? Ctor : func;\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function (start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? start < end ? 1 : -1 : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function (value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG;\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, newHoldersRight, argPos, ary, arity];\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function (number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && 1 / setToArray(new Set([, -0]))[1] == INFINITY) ? noop : function (values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function (object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n var newData = [func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity];\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0);\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined;\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function (othValue, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n case arrayBufferTag:\n if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n case errorTag:\n return object.name == other.name && object.message == other.message;\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == other + '';\n case mapTag:\n var convert = mapToArray;\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function (func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = func.name + '',\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n while (length--) {\n var key = result[length],\n value = object[key];\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function (object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function (symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function (object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag(new Map()) != mapTag || Promise && getTag(Promise.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {\n getTag = function (value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString:\n return dataViewTag;\n case mapCtorString:\n return mapTag;\n case promiseCtorString:\n return promiseTag;\n case setCtorString:\n return setTag;\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n switch (data.type) {\n case 'drop':\n start += size;\n break;\n case 'dropRight':\n end -= size;\n break;\n case 'take':\n end = nativeMin(end, start + size);\n break;\n case 'takeRight':\n start = nativeMax(start, end - size);\n break;\n }\n }\n return {\n 'start': start,\n 'end': end\n };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n var index = -1,\n length = path.length,\n result = false;\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n case dataViewTag:\n return cloneDataView(object, isDeep);\n case float32Tag:\n case float64Tag:\n case int8Tag:\n case int16Tag:\n case int32Tag:\n case uint8Tag:\n case uint8ClampedTag:\n case uint16Tag:\n case uint32Tag:\n return cloneTypedArray(object, isDeep);\n case mapTag:\n return new Ctor();\n case numberTag:\n case stringTag:\n return new Ctor(object);\n case regexpTag:\n return cloneRegExp(object);\n case setTag:\n return new Ctor();\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number' ? isArrayLike(object) && isIndex(index, object.length) : type == 'string' && index in object) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function (object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue && (srcValue !== undefined || key in Object(object));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function (key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG;\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? func.length - 1 : start, 0);\n return function () {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n if (key == '__proto__') {\n return;\n }\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function (func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = reference + '';\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n return function () {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function (string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function (match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : number || match);\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return func + '';\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function (pair) {\n var value = '_.' + pair[0];\n if (bitmask & pair[1] && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if (guard ? isIterateeCall(array, size, guard) : size === undefined) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, index += size);\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function (array, values) {\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function (array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)) : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function (array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator) : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = guard || n === undefined ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = guard || n === undefined ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return array && array.length ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function (arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function (arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee, 2)) : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function (arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined, comparator) : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return array && array.length ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return array && array.length && values && values.length ? basePullAll(array, values) : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return array && array.length && values && values.length ? basePullAll(array, values, getIteratee(iteratee, 2)) : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return array && array.length && values && values.length ? basePullAll(array, values, undefined, comparator) : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function (array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n basePullAt(array, arrayMap(indexes, function (index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n } else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return array && array.length ? baseSortedUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return array && array.length ? baseSortedUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = guard || n === undefined ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = guard || n === undefined ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function (arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function (arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function (arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return array && array.length ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return array && array.length ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return array && array.length ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function (group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function (index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function (group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function (array, values) {\n return isArrayLikeObject(array) ? baseDifference(array, values) : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function (arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function (arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function (arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function (arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function (paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function (object) {\n return baseAt(object, paths);\n };\n if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function (array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n return {\n 'done': done,\n 'value': value\n };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function (result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function (result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0;\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function (collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n baseEach(collection, function (value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function (result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function (result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function () {\n return [[], []];\n });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if (guard ? isIterateeCall(collection, n, guard) : n === undefined) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function (collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function () {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function () {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = func && n == null ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function () {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function (func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function (object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function (func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function (func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || resolver != null && typeof resolver != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function () {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache)();\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function () {\n var args = arguments;\n switch (args.length) {\n case 0:\n return !predicate.call(this);\n case 1:\n return !predicate.call(this, args[0]);\n case 2:\n return !predicate.call(this, args[0], args[1]);\n case 3:\n return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function (func, transforms) {\n transforms = transforms.length == 1 && isArray(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n var funcsLength = transforms.length;\n return baseRest(function (args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function (func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function (func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function (func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function (args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '<p>' + func(text) + '</p>';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '<p>fred, barney, & pebbles</p>'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || value !== value && other !== other;\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function (value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function () {\n return arguments;\n }()) ? baseIsArguments : function (value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag;\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('<body>');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) && (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag || typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' || isObjectLike(value) && baseGetTag(value) == numberTag;\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function (value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values;\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = value < 0 ? -1 : 1;\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n return result === result ? remainder ? result - remainder : result : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0;\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function (object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function (object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function (object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function (object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function (object, sources) {\n object = Object(object);\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n if (value === undefined || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) {\n object[key] = source[key];\n }\n }\n }\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function (args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null ? object : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null ? object : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function (result, value, key) {\n if (value != null && typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function (result, value, key) {\n if (value != null && typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n baseForOwn(object, function (value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n baseForOwn(object, function (value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function (object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function (object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function (object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function (path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function (object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function (prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function (value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor() : [];\n } else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n } else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function (value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n } else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n } else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function (result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n var length = string.length;\n position = position === undefined ? length : baseClamp(toInteger(position), 0, length);\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, '\\\\$&') : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function (result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function (result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return createPadding(nativeFloor(mid), chars) + string + createPadding(nativeCeil(mid), chars);\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n return length && strLength < length ? string + createPadding(length - strLength, chars) : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n return length && strLength < length ? createPadding(length - strLength, chars) + string : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if (guard ? isIterateeCall(string, n, guard) : n === undefined) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function (result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (typeof separator == 'string' || separator != null && !isRegExp(separator))) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function (result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null ? 0 : baseClamp(toInteger(position), 0, string.length);\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<b><%- value %></b>');\n * compiled({ 'value': '<script>' });\n * // => '<b><script></b>'\n *\n * // Use the \"evaluate\" delimiter to execute JavaScript and generate HTML.\n * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the internal `print` function in \"evaluate\" delimiters.\n * var compiled = _.template('<% print(\"hello \" + user); %>!');\n * compiled({ 'user': 'barney' });\n * // => 'hello barney!'\n *\n * // Use the ES template literal delimiter as an \"interpolate\" delimiter.\n * // Disable support by replacing the \"interpolate\" delimiter.\n * var compiled = _.template('hello ${ user }!');\n * compiled({ 'user': 'pebbles' });\n * // => 'hello pebbles!'\n *\n * // Use backslashes to treat delimiters as plain text.\n * var compiled = _.template('<%= \"\\\\<%- value %\\\\>\" %>');\n * compiled({ 'value': 'ignored' });\n * // => '<%- value %>'\n *\n * // Use the `imports` option to import `jQuery` as `jq`.\n * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';\n * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the `sourceURL` option to specify a custom sourceURL for the template.\n * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });\n * compiled(data);\n * // => Find the source of \"greeting.jst\" under the Sources tab or Resources panel of the web inspector.\n *\n * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.\n * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });\n * compiled.source;\n * // => function(data) {\n * // var __t, __p = '';\n * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';\n * // return __p;\n * // }\n *\n * // Use custom template delimiters.\n * _.templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n * var compiled = _.template('hello {{ user }}!');\n * compiled({ 'user': 'mustache' });\n * // => 'hello mustache!'\n *\n * // Use the `source` property to inline compiled templates for meaningful\n * // line numbers in error messages and stack traces.\n * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\\\n * var JST = {\\\n * \"main\": ' + _.template(mainText).source + '\\\n * };\\\n * ');\n */\n function template(string, options, guard) {\n // Based on John Resig's `tmpl` implementation\n // (http://ejohn.org/blog/javascript-micro-templating/)\n // and Laura Doktorova's doT.js (https://github.com/olado/doT).\n var settings = lodash.templateSettings;\n if (guard && isIterateeCall(string, options, guard)) {\n options = undefined;\n }\n string = toString(string);\n options = assignInWith({}, options, settings, customDefaultsAssignIn);\n var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),\n importsKeys = keys(imports),\n importsValues = baseValues(imports, importsKeys);\n var isEscaping,\n isEvaluating,\n index = 0,\n interpolate = options.interpolate || reNoMatch,\n source = \"__p += '\";\n\n // Compile the regexp to match each delimiter.\n var reDelimiters = RegExp((options.escape || reNoMatch).source + '|' + interpolate.source + '|' + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' + (options.evaluate || reNoMatch).source + '|$', 'g');\n\n // Use a sourceURL for easier debugging.\n // The sourceURL gets injected into the source that's eval-ed, so be careful\n // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in\n // and escape the comment, thus injecting code that gets evaled.\n var sourceURL = '//# sourceURL=' + (hasOwnProperty.call(options, 'sourceURL') ? (options.sourceURL + '').replace(/\\s/g, ' ') : 'lodash.templateSources[' + ++templateCounter + ']') + '\\n';\n string.replace(reDelimiters, function (match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n interpolateValue || (interpolateValue = esTemplateValue);\n\n // Escape characters that can't be included in string literals.\n source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n\n // Replace delimiters with snippets.\n if (escapeValue) {\n isEscaping = true;\n source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n }\n if (evaluateValue) {\n isEvaluating = true;\n source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n }\n if (interpolateValue) {\n source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n }\n index = offset + match.length;\n\n // The JS engine embedded in Adobe products needs `match` returned in\n // order to produce the correct `offset` value.\n return match;\n });\n source += \"';\\n\";\n\n // If `variable` is not specified wrap a with-statement around the generated\n // code to add the data object to the top of the scope chain.\n var variable = hasOwnProperty.call(options, 'variable') && options.variable;\n if (!variable) {\n source = 'with (obj) {\\n' + source + '\\n}\\n';\n }\n // Throw an error if a forbidden character was found in `variable`, to prevent\n // potential command injection attacks.\n else if (reForbiddenIdentifierChars.test(variable)) {\n throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT);\n }\n\n // Cleanup code by stripping empty strings.\n source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source).replace(reEmptyStringMiddle, '$1').replace(reEmptyStringTrailing, '$1;');\n\n // Frame code as the function body.\n source = 'function(' + (variable || 'obj') + ') {\\n' + (variable ? '' : 'obj || (obj = {});\\n') + \"var __t, __p = ''\" + (isEscaping ? ', __e = _.escape' : '') + (isEvaluating ? ', __j = Array.prototype.join;\\n' + \"function print() { __p += __j.call(arguments, '') }\\n\" : ';\\n') + source + 'return __p\\n}';\n var result = attempt(function () {\n return Function(importsKeys, sourceURL + 'return ' + source).apply(undefined, importsValues);\n });\n\n // Provide the compiled function's source by its `toString` method or\n // the `source` property as a convenience for inlining compiled templates.\n result.source = source;\n if (isError(result)) {\n throw result;\n }\n return result;\n }\n\n /**\n * Converts `string`, as a whole, to lower case just like\n * [String#toLowerCase](https://mdn.io/toLowerCase).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.toLower('--Foo-Bar--');\n * // => '--foo-bar--'\n *\n * _.toLower('fooBar');\n * // => 'foobar'\n *\n * _.toLower('__FOO_BAR__');\n * // => '__foo_bar__'\n */\n function toLower(value) {\n return toString(value).toLowerCase();\n }\n\n /**\n * Converts `string`, as a whole, to upper case just like\n * [String#toUpperCase](https://mdn.io/toUpperCase).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.toUpper('--foo-bar--');\n * // => '--FOO-BAR--'\n *\n * _.toUpper('fooBar');\n * // => 'FOOBAR'\n *\n * _.toUpper('__foo_bar__');\n * // => '__FOO_BAR__'\n */\n function toUpper(value) {\n return toString(value).toUpperCase();\n }\n\n /**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\n function trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return baseTrim(string);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n return castSlice(strSymbols, start, end).join('');\n }\n\n /**\n * Removes trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimEnd(' abc ');\n * // => ' abc'\n *\n * _.trimEnd('-_-abc-_-', '_-');\n * // => '-_-abc'\n */\n function trimEnd(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.slice(0, trimmedEndIndex(string) + 1);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;\n return castSlice(strSymbols, 0, end).join('');\n }\n\n /**\n * Removes leading whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimStart(' abc ');\n * // => 'abc '\n *\n * _.trimStart('-_-abc-_-', '_-');\n * // => 'abc-_-'\n */\n function trimStart(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrimStart, '');\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n start = charsStartIndex(strSymbols, stringToArray(chars));\n return castSlice(strSymbols, start).join('');\n }\n\n /**\n * Truncates `string` if it's longer than the given maximum string length.\n * The last characters of the truncated string are replaced with the omission\n * string which defaults to \"...\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to truncate.\n * @param {Object} [options={}] The options object.\n * @param {number} [options.length=30] The maximum string length.\n * @param {string} [options.omission='...'] The string to indicate text is omitted.\n * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n * @returns {string} Returns the truncated string.\n * @example\n *\n * _.truncate('hi-diddly-ho there, neighborino');\n * // => 'hi-diddly-ho there, neighbo...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': ' '\n * });\n * // => 'hi-diddly-ho there,...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': /,? +/\n * });\n * // => 'hi-diddly-ho there...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'omission': ' [...]'\n * });\n * // => 'hi-diddly-ho there, neig [...]'\n */\n function truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH,\n omission = DEFAULT_TRUNC_OMISSION;\n if (isObject(options)) {\n var separator = 'separator' in options ? options.separator : separator;\n length = 'length' in options ? toInteger(options.length) : length;\n omission = 'omission' in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result = strSymbols ? castSlice(strSymbols, 0, end).join('') : string.slice(0, end);\n if (separator === undefined) {\n return result + omission;\n }\n if (strSymbols) {\n end += result.length - end;\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match,\n substring = result;\n if (!separator.global) {\n separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n }\n separator.lastIndex = 0;\n while (match = separator.exec(substring)) {\n var newEnd = match.index;\n }\n result = result.slice(0, newEnd === undefined ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result.lastIndexOf(separator);\n if (index > -1) {\n result = result.slice(0, index);\n }\n }\n return result + omission;\n }\n\n /**\n * The inverse of `_.escape`; this method converts the HTML entities\n * `&`, `<`, `>`, `"`, and `'` in `string` to\n * their corresponding characters.\n *\n * **Note:** No other HTML entities are unescaped. To unescape additional\n * HTML entities use a third-party library like [_he_](https://mths.be/he).\n *\n * @static\n * @memberOf _\n * @since 0.6.0\n * @category String\n * @param {string} [string=''] The string to unescape.\n * @returns {string} Returns the unescaped string.\n * @example\n *\n * _.unescape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function unescape(string) {\n string = toString(string);\n return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar) : string;\n }\n\n /**\n * Converts `string`, as space separated words, to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.upperCase('--foo-bar');\n * // => 'FOO BAR'\n *\n * _.upperCase('fooBar');\n * // => 'FOO BAR'\n *\n * _.upperCase('__foo_bar__');\n * // => 'FOO BAR'\n */\n var upperCase = createCompounder(function (result, word, index) {\n return result + (index ? ' ' : '') + word.toUpperCase();\n });\n\n /**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\n var upperFirst = createCaseFirst('toUpperCase');\n\n /**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n function words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Attempts to invoke `func`, returning either the result or the caught error\n * object. Any additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Function} func The function to attempt.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {*} Returns the `func` result or error object.\n * @example\n *\n * // Avoid throwing errors for invalid selectors.\n * var elements = _.attempt(function(selector) {\n * return document.querySelectorAll(selector);\n * }, '>_>');\n *\n * if (_.isError(elements)) {\n * elements = [];\n * }\n */\n var attempt = baseRest(function (func, args) {\n try {\n return apply(func, undefined, args);\n } catch (e) {\n return isError(e) ? e : new Error(e);\n }\n });\n\n /**\n * Binds methods of an object to the object itself, overwriting the existing\n * method.\n *\n * **Note:** This method doesn't set the \"length\" property of bound functions.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Object} object The object to bind and assign the bound methods to.\n * @param {...(string|string[])} methodNames The object method names to bind.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var view = {\n * 'label': 'docs',\n * 'click': function() {\n * console.log('clicked ' + this.label);\n * }\n * };\n *\n * _.bindAll(view, ['click']);\n * jQuery(element).on('click', view.click);\n * // => Logs 'clicked docs' when clicked.\n */\n var bindAll = flatRest(function (object, methodNames) {\n arrayEach(methodNames, function (key) {\n key = toKey(key);\n baseAssignValue(object, key, bind(object[key], object));\n });\n return object;\n });\n\n /**\n * Creates a function that iterates over `pairs` and invokes the corresponding\n * function of the first predicate to return truthy. The predicate-function\n * pairs are invoked with the `this` binding and arguments of the created\n * function.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Array} pairs The predicate-function pairs.\n * @returns {Function} Returns the new composite function.\n * @example\n *\n * var func = _.cond([\n * [_.matches({ 'a': 1 }), _.constant('matches A')],\n * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],\n * [_.stubTrue, _.constant('no match')]\n * ]);\n *\n * func({ 'a': 1, 'b': 2 });\n * // => 'matches A'\n *\n * func({ 'a': 0, 'b': 1 });\n * // => 'matches B'\n *\n * func({ 'a': '1', 'b': '2' });\n * // => 'no match'\n */\n function cond(pairs) {\n var length = pairs == null ? 0 : pairs.length,\n toIteratee = getIteratee();\n pairs = !length ? [] : arrayMap(pairs, function (pair) {\n if (typeof pair[1] != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return [toIteratee(pair[0]), pair[1]];\n });\n return baseRest(function (args) {\n var index = -1;\n while (++index < length) {\n var pair = pairs[index];\n if (apply(pair[0], this, args)) {\n return apply(pair[1], this, args);\n }\n }\n });\n }\n\n /**\n * Creates a function that invokes the predicate properties of `source` with\n * the corresponding property values of a given object, returning `true` if\n * all predicates return truthy, else `false`.\n *\n * **Note:** The created function is equivalent to `_.conformsTo` with\n * `source` partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 2, 'b': 1 },\n * { 'a': 1, 'b': 2 }\n * ];\n *\n * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));\n * // => [{ 'a': 1, 'b': 2 }]\n */\n function conforms(source) {\n return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\n function constant(value) {\n return function () {\n return value;\n };\n }\n\n /**\n * Checks `value` to determine whether a default value should be returned in\n * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,\n * or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Util\n * @param {*} value The value to check.\n * @param {*} defaultValue The default value.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * _.defaultTo(1, 10);\n * // => 1\n *\n * _.defaultTo(undefined, 10);\n * // => 10\n */\n function defaultTo(value, defaultValue) {\n return value == null || value !== value ? defaultValue : value;\n }\n\n /**\n * Creates a function that returns the result of invoking the given functions\n * with the `this` binding of the created function, where each successive\n * invocation is supplied the return value of the previous.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flowRight\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flow([_.add, square]);\n * addSquare(1, 2);\n * // => 9\n */\n var flow = createFlow();\n\n /**\n * This method is like `_.flow` except that it creates a function that\n * invokes the given functions from right to left.\n *\n * @static\n * @since 3.0.0\n * @memberOf _\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flow\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flowRight([square, _.add]);\n * addSquare(1, 2);\n * // => 9\n */\n var flowRight = createFlow(true);\n\n /**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\n function identity(value) {\n return value;\n }\n\n /**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\n function iteratee(func) {\n return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that performs a partial deep comparison between a given\n * object and `source`, returning `true` if the given object has equivalent\n * property values, else `false`.\n *\n * **Note:** The created function is equivalent to `_.isMatch` with `source`\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\n function matches(source) {\n return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that performs a partial deep comparison between the\n * value at `path` of a given object to `srcValue`, returning `true` if the\n * object value is equivalent, else `false`.\n *\n * **Note:** Partial comparisons will match empty array and empty object\n * `srcValue` values against any array or object value, respectively. See\n * `_.isEqual` for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.find(objects, _.matchesProperty('a', 4));\n * // => { 'a': 4, 'b': 5, 'c': 6 }\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\n function matchesProperty(path, srcValue) {\n return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that invokes the method at `path` of a given object.\n * Any additional arguments are provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': _.constant(2) } },\n * { 'a': { 'b': _.constant(1) } }\n * ];\n *\n * _.map(objects, _.method('a.b'));\n * // => [2, 1]\n *\n * _.map(objects, _.method(['a', 'b']));\n * // => [2, 1]\n */\n var method = baseRest(function (path, args) {\n return function (object) {\n return baseInvoke(object, path, args);\n };\n });\n\n /**\n * The opposite of `_.method`; this method creates a function that invokes\n * the method at a given path of `object`. Any additional arguments are\n * provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Object} object The object to query.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var array = _.times(3, _.constant),\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.methodOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.methodOf(object));\n * // => [2, 0]\n */\n var methodOf = baseRest(function (object, args) {\n return function (path) {\n return baseInvoke(object, path, args);\n };\n });\n\n /**\n * Adds all own enumerable string keyed function properties of a source\n * object to the destination object. If `object` is a function, then methods\n * are added to its prototype as well.\n *\n * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n * avoid conflicts caused by modifying the original.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Function|Object} [object=lodash] The destination object.\n * @param {Object} source The object of functions to add.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n * @returns {Function|Object} Returns `object`.\n * @example\n *\n * function vowels(string) {\n * return _.filter(string, function(v) {\n * return /[aeiou]/i.test(v);\n * });\n * }\n *\n * _.mixin({ 'vowels': vowels });\n * _.vowels('fred');\n * // => ['e']\n *\n * _('fred').vowels().value();\n * // => ['e']\n *\n * _.mixin({ 'vowels': vowels }, { 'chain': false });\n * _('fred').vowels();\n * // => ['e']\n */\n function mixin(object, source, options) {\n var props = keys(source),\n methodNames = baseFunctions(source, props);\n if (options == null && !(isObject(source) && (methodNames.length || !props.length))) {\n options = source;\n source = object;\n object = this;\n methodNames = baseFunctions(source, keys(source));\n }\n var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n isFunc = isFunction(object);\n arrayEach(methodNames, function (methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function () {\n var chainAll = this.__chain__;\n if (chain || chainAll) {\n var result = object(this.__wrapped__),\n actions = result.__actions__ = copyArray(this.__actions__);\n actions.push({\n 'func': func,\n 'args': arguments,\n 'thisArg': object\n });\n result.__chain__ = chainAll;\n return result;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n return object;\n }\n\n /**\n * Reverts the `_` variable to its previous value and returns a reference to\n * the `lodash` function.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @returns {Function} Returns the `lodash` function.\n * @example\n *\n * var lodash = _.noConflict();\n */\n function noConflict() {\n if (root._ === this) {\n root._ = oldDash;\n }\n return this;\n }\n\n /**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\n function noop() {\n // No operation performed.\n }\n\n /**\n * Creates a function that gets the argument at index `n`. If `n` is negative,\n * the nth argument from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [n=0] The index of the argument to return.\n * @returns {Function} Returns the new pass-thru function.\n * @example\n *\n * var func = _.nthArg(1);\n * func('a', 'b', 'c', 'd');\n * // => 'b'\n *\n * var func = _.nthArg(-2);\n * func('a', 'b', 'c', 'd');\n * // => 'c'\n */\n function nthArg(n) {\n n = toInteger(n);\n return baseRest(function (args) {\n return baseNth(args, n);\n });\n }\n\n /**\n * Creates a function that invokes `iteratees` with the arguments it receives\n * and returns their results.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to invoke.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.over([Math.max, Math.min]);\n *\n * func(1, 2, 3, 4);\n * // => [4, 1]\n */\n var over = createOver(arrayMap);\n\n /**\n * Creates a function that checks if **all** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overEvery([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => false\n *\n * func(NaN);\n * // => false\n */\n var overEvery = createOver(arrayEvery);\n\n /**\n * Creates a function that checks if **any** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overSome([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => true\n *\n * func(NaN);\n * // => false\n *\n * var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }])\n * var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]])\n */\n var overSome = createOver(arraySome);\n\n /**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\n function property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n }\n\n /**\n * The opposite of `_.property`; this method creates a function that returns\n * the value at a given path of `object`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var array = [0, 1, 2],\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.propertyOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));\n * // => [2, 0]\n */\n function propertyOf(object) {\n return function (path) {\n return object == null ? undefined : baseGet(object, path);\n };\n }\n\n /**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\n var range = createRange();\n\n /**\n * This method is like `_.range` except that it populates values in\n * descending order.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.range\n * @example\n *\n * _.rangeRight(4);\n * // => [3, 2, 1, 0]\n *\n * _.rangeRight(-4);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 5);\n * // => [4, 3, 2, 1]\n *\n * _.rangeRight(0, 20, 5);\n * // => [15, 10, 5, 0]\n *\n * _.rangeRight(0, -4, -1);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.rangeRight(0);\n * // => []\n */\n var rangeRight = createRange(true);\n\n /**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\n function stubArray() {\n return [];\n }\n\n /**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\n function stubFalse() {\n return false;\n }\n\n /**\n * This method returns a new empty object.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Object} Returns the new empty object.\n * @example\n *\n * var objects = _.times(2, _.stubObject);\n *\n * console.log(objects);\n * // => [{}, {}]\n *\n * console.log(objects[0] === objects[1]);\n * // => false\n */\n function stubObject() {\n return {};\n }\n\n /**\n * This method returns an empty string.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {string} Returns the empty string.\n * @example\n *\n * _.times(2, _.stubString);\n * // => ['', '']\n */\n function stubString() {\n return '';\n }\n\n /**\n * This method returns `true`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `true`.\n * @example\n *\n * _.times(2, _.stubTrue);\n * // => [true, true]\n */\n function stubTrue() {\n return true;\n }\n\n /**\n * Invokes the iteratee `n` times, returning an array of the results of\n * each invocation. The iteratee is invoked with one argument; (index).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.times(3, String);\n * // => ['0', '1', '2']\n *\n * _.times(4, _.constant(0));\n * // => [0, 0, 0, 0]\n */\n function times(n, iteratee) {\n n = toInteger(n);\n if (n < 1 || n > MAX_SAFE_INTEGER) {\n return [];\n }\n var index = MAX_ARRAY_LENGTH,\n length = nativeMin(n, MAX_ARRAY_LENGTH);\n iteratee = getIteratee(iteratee);\n n -= MAX_ARRAY_LENGTH;\n var result = baseTimes(length, iteratee);\n while (++index < n) {\n iteratee(index);\n }\n return result;\n }\n\n /**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\n function toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n }\n\n /**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\n function uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Adds two numbers.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {number} augend The first number in an addition.\n * @param {number} addend The second number in an addition.\n * @returns {number} Returns the total.\n * @example\n *\n * _.add(6, 4);\n * // => 10\n */\n var add = createMathOperation(function (augend, addend) {\n return augend + addend;\n }, 0);\n\n /**\n * Computes `number` rounded up to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round up.\n * @param {number} [precision=0] The precision to round up to.\n * @returns {number} Returns the rounded up number.\n * @example\n *\n * _.ceil(4.006);\n * // => 5\n *\n * _.ceil(6.004, 2);\n * // => 6.01\n *\n * _.ceil(6040, -2);\n * // => 6100\n */\n var ceil = createRound('ceil');\n\n /**\n * Divide two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} dividend The first number in a division.\n * @param {number} divisor The second number in a division.\n * @returns {number} Returns the quotient.\n * @example\n *\n * _.divide(6, 4);\n * // => 1.5\n */\n var divide = createMathOperation(function (dividend, divisor) {\n return dividend / divisor;\n }, 1);\n\n /**\n * Computes `number` rounded down to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round down.\n * @param {number} [precision=0] The precision to round down to.\n * @returns {number} Returns the rounded down number.\n * @example\n *\n * _.floor(4.006);\n * // => 4\n *\n * _.floor(0.046, 2);\n * // => 0.04\n *\n * _.floor(4060, -2);\n * // => 4000\n */\n var floor = createRound('floor');\n\n /**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\n function max(array) {\n return array && array.length ? baseExtremum(array, identity, baseGt) : undefined;\n }\n\n /**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\n function maxBy(array, iteratee) {\n return array && array.length ? baseExtremum(array, getIteratee(iteratee, 2), baseGt) : undefined;\n }\n\n /**\n * Computes the mean of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the mean.\n * @example\n *\n * _.mean([4, 2, 8, 6]);\n * // => 5\n */\n function mean(array) {\n return baseMean(array, identity);\n }\n\n /**\n * This method is like `_.mean` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be averaged.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the mean.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.meanBy(objects, function(o) { return o.n; });\n * // => 5\n *\n * // The `_.property` iteratee shorthand.\n * _.meanBy(objects, 'n');\n * // => 5\n */\n function meanBy(array, iteratee) {\n return baseMean(array, getIteratee(iteratee, 2));\n }\n\n /**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\n function min(array) {\n return array && array.length ? baseExtremum(array, identity, baseLt) : undefined;\n }\n\n /**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\n function minBy(array, iteratee) {\n return array && array.length ? baseExtremum(array, getIteratee(iteratee, 2), baseLt) : undefined;\n }\n\n /**\n * Multiply two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} multiplier The first number in a multiplication.\n * @param {number} multiplicand The second number in a multiplication.\n * @returns {number} Returns the product.\n * @example\n *\n * _.multiply(6, 4);\n * // => 24\n */\n var multiply = createMathOperation(function (multiplier, multiplicand) {\n return multiplier * multiplicand;\n }, 1);\n\n /**\n * Computes `number` rounded to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round.\n * @param {number} [precision=0] The precision to round to.\n * @returns {number} Returns the rounded number.\n * @example\n *\n * _.round(4.006);\n * // => 4\n *\n * _.round(4.006, 2);\n * // => 4.01\n *\n * _.round(4060, -2);\n * // => 4100\n */\n var round = createRound('round');\n\n /**\n * Subtract two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {number} minuend The first number in a subtraction.\n * @param {number} subtrahend The second number in a subtraction.\n * @returns {number} Returns the difference.\n * @example\n *\n * _.subtract(6, 4);\n * // => 2\n */\n var subtract = createMathOperation(function (minuend, subtrahend) {\n return minuend - subtrahend;\n }, 0);\n\n /**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\n function sum(array) {\n return array && array.length ? baseSum(array, identity) : 0;\n }\n\n /**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\n function sumBy(array, iteratee) {\n return array && array.length ? baseSum(array, getIteratee(iteratee, 2)) : 0;\n }\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return wrapped values in chain sequences.\n lodash.after = after;\n lodash.ary = ary;\n lodash.assign = assign;\n lodash.assignIn = assignIn;\n lodash.assignInWith = assignInWith;\n lodash.assignWith = assignWith;\n lodash.at = at;\n lodash.before = before;\n lodash.bind = bind;\n lodash.bindAll = bindAll;\n lodash.bindKey = bindKey;\n lodash.castArray = castArray;\n lodash.chain = chain;\n lodash.chunk = chunk;\n lodash.compact = compact;\n lodash.concat = concat;\n lodash.cond = cond;\n lodash.conforms = conforms;\n lodash.constant = constant;\n lodash.countBy = countBy;\n lodash.create = create;\n lodash.curry = curry;\n lodash.curryRight = curryRight;\n lodash.debounce = debounce;\n lodash.defaults = defaults;\n lodash.defaultsDeep = defaultsDeep;\n lodash.defer = defer;\n lodash.delay = delay;\n lodash.difference = difference;\n lodash.differenceBy = differenceBy;\n lodash.differenceWith = differenceWith;\n lodash.drop = drop;\n lodash.dropRight = dropRight;\n lodash.dropRightWhile = dropRightWhile;\n lodash.dropWhile = dropWhile;\n lodash.fill = fill;\n lodash.filter = filter;\n lodash.flatMap = flatMap;\n lodash.flatMapDeep = flatMapDeep;\n lodash.flatMapDepth = flatMapDepth;\n lodash.flatten = flatten;\n lodash.flattenDeep = flattenDeep;\n lodash.flattenDepth = flattenDepth;\n lodash.flip = flip;\n lodash.flow = flow;\n lodash.flowRight = flowRight;\n lodash.fromPairs = fromPairs;\n lodash.functions = functions;\n lodash.functionsIn = functionsIn;\n lodash.groupBy = groupBy;\n lodash.initial = initial;\n lodash.intersection = intersection;\n lodash.intersectionBy = intersectionBy;\n lodash.intersectionWith = intersectionWith;\n lodash.invert = invert;\n lodash.invertBy = invertBy;\n lodash.invokeMap = invokeMap;\n lodash.iteratee = iteratee;\n lodash.keyBy = keyBy;\n lodash.keys = keys;\n lodash.keysIn = keysIn;\n lodash.map = map;\n lodash.mapKeys = mapKeys;\n lodash.mapValues = mapValues;\n lodash.matches = matches;\n lodash.matchesProperty = matchesProperty;\n lodash.memoize = memoize;\n lodash.merge = merge;\n lodash.mergeWith = mergeWith;\n lodash.method = method;\n lodash.methodOf = methodOf;\n lodash.mixin = mixin;\n lodash.negate = negate;\n lodash.nthArg = nthArg;\n lodash.omit = omit;\n lodash.omitBy = omitBy;\n lodash.once = once;\n lodash.orderBy = orderBy;\n lodash.over = over;\n lodash.overArgs = overArgs;\n lodash.overEvery = overEvery;\n lodash.overSome = overSome;\n lodash.partial = partial;\n lodash.partialRight = partialRight;\n lodash.partition = partition;\n lodash.pick = pick;\n lodash.pickBy = pickBy;\n lodash.property = property;\n lodash.propertyOf = propertyOf;\n lodash.pull = pull;\n lodash.pullAll = pullAll;\n lodash.pullAllBy = pullAllBy;\n lodash.pullAllWith = pullAllWith;\n lodash.pullAt = pullAt;\n lodash.range = range;\n lodash.rangeRight = rangeRight;\n lodash.rearg = rearg;\n lodash.reject = reject;\n lodash.remove = remove;\n lodash.rest = rest;\n lodash.reverse = reverse;\n lodash.sampleSize = sampleSize;\n lodash.set = set;\n lodash.setWith = setWith;\n lodash.shuffle = shuffle;\n lodash.slice = slice;\n lodash.sortBy = sortBy;\n lodash.sortedUniq = sortedUniq;\n lodash.sortedUniqBy = sortedUniqBy;\n lodash.split = split;\n lodash.spread = spread;\n lodash.tail = tail;\n lodash.take = take;\n lodash.takeRight = takeRight;\n lodash.takeRightWhile = takeRightWhile;\n lodash.takeWhile = takeWhile;\n lodash.tap = tap;\n lodash.throttle = throttle;\n lodash.thru = thru;\n lodash.toArray = toArray;\n lodash.toPairs = toPairs;\n lodash.toPairsIn = toPairsIn;\n lodash.toPath = toPath;\n lodash.toPlainObject = toPlainObject;\n lodash.transform = transform;\n lodash.unary = unary;\n lodash.union = union;\n lodash.unionBy = unionBy;\n lodash.unionWith = unionWith;\n lodash.uniq = uniq;\n lodash.uniqBy = uniqBy;\n lodash.uniqWith = uniqWith;\n lodash.unset = unset;\n lodash.unzip = unzip;\n lodash.unzipWith = unzipWith;\n lodash.update = update;\n lodash.updateWith = updateWith;\n lodash.values = values;\n lodash.valuesIn = valuesIn;\n lodash.without = without;\n lodash.words = words;\n lodash.wrap = wrap;\n lodash.xor = xor;\n lodash.xorBy = xorBy;\n lodash.xorWith = xorWith;\n lodash.zip = zip;\n lodash.zipObject = zipObject;\n lodash.zipObjectDeep = zipObjectDeep;\n lodash.zipWith = zipWith;\n\n // Add aliases.\n lodash.entries = toPairs;\n lodash.entriesIn = toPairsIn;\n lodash.extend = assignIn;\n lodash.extendWith = assignInWith;\n\n // Add methods to `lodash.prototype`.\n mixin(lodash, lodash);\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return unwrapped values in chain sequences.\n lodash.add = add;\n lodash.attempt = attempt;\n lodash.camelCase = camelCase;\n lodash.capitalize = capitalize;\n lodash.ceil = ceil;\n lodash.clamp = clamp;\n lodash.clone = clone;\n lodash.cloneDeep = cloneDeep;\n lodash.cloneDeepWith = cloneDeepWith;\n lodash.cloneWith = cloneWith;\n lodash.conformsTo = conformsTo;\n lodash.deburr = deburr;\n lodash.defaultTo = defaultTo;\n lodash.divide = divide;\n lodash.endsWith = endsWith;\n lodash.eq = eq;\n lodash.escape = escape;\n lodash.escapeRegExp = escapeRegExp;\n lodash.every = every;\n lodash.find = find;\n lodash.findIndex = findIndex;\n lodash.findKey = findKey;\n lodash.findLast = findLast;\n lodash.findLastIndex = findLastIndex;\n lodash.findLastKey = findLastKey;\n lodash.floor = floor;\n lodash.forEach = forEach;\n lodash.forEachRight = forEachRight;\n lodash.forIn = forIn;\n lodash.forInRight = forInRight;\n lodash.forOwn = forOwn;\n lodash.forOwnRight = forOwnRight;\n lodash.get = get;\n lodash.gt = gt;\n lodash.gte = gte;\n lodash.has = has;\n lodash.hasIn = hasIn;\n lodash.head = head;\n lodash.identity = identity;\n lodash.includes = includes;\n lodash.indexOf = indexOf;\n lodash.inRange = inRange;\n lodash.invoke = invoke;\n lodash.isArguments = isArguments;\n lodash.isArray = isArray;\n lodash.isArrayBuffer = isArrayBuffer;\n lodash.isArrayLike = isArrayLike;\n lodash.isArrayLikeObject = isArrayLikeObject;\n lodash.isBoolean = isBoolean;\n lodash.isBuffer = isBuffer;\n lodash.isDate = isDate;\n lodash.isElement = isElement;\n lodash.isEmpty = isEmpty;\n lodash.isEqual = isEqual;\n lodash.isEqualWith = isEqualWith;\n lodash.isError = isError;\n lodash.isFinite = isFinite;\n lodash.isFunction = isFunction;\n lodash.isInteger = isInteger;\n lodash.isLength = isLength;\n lodash.isMap = isMap;\n lodash.isMatch = isMatch;\n lodash.isMatchWith = isMatchWith;\n lodash.isNaN = isNaN;\n lodash.isNative = isNative;\n lodash.isNil = isNil;\n lodash.isNull = isNull;\n lodash.isNumber = isNumber;\n lodash.isObject = isObject;\n lodash.isObjectLike = isObjectLike;\n lodash.isPlainObject = isPlainObject;\n lodash.isRegExp = isRegExp;\n lodash.isSafeInteger = isSafeInteger;\n lodash.isSet = isSet;\n lodash.isString = isString;\n lodash.isSymbol = isSymbol;\n lodash.isTypedArray = isTypedArray;\n lodash.isUndefined = isUndefined;\n lodash.isWeakMap = isWeakMap;\n lodash.isWeakSet = isWeakSet;\n lodash.join = join;\n lodash.kebabCase = kebabCase;\n lodash.last = last;\n lodash.lastIndexOf = lastIndexOf;\n lodash.lowerCase = lowerCase;\n lodash.lowerFirst = lowerFirst;\n lodash.lt = lt;\n lodash.lte = lte;\n lodash.max = max;\n lodash.maxBy = maxBy;\n lodash.mean = mean;\n lodash.meanBy = meanBy;\n lodash.min = min;\n lodash.minBy = minBy;\n lodash.stubArray = stubArray;\n lodash.stubFalse = stubFalse;\n lodash.stubObject = stubObject;\n lodash.stubString = stubString;\n lodash.stubTrue = stubTrue;\n lodash.multiply = multiply;\n lodash.nth = nth;\n lodash.noConflict = noConflict;\n lodash.noop = noop;\n lodash.now = now;\n lodash.pad = pad;\n lodash.padEnd = padEnd;\n lodash.padStart = padStart;\n lodash.parseInt = parseInt;\n lodash.random = random;\n lodash.reduce = reduce;\n lodash.reduceRight = reduceRight;\n lodash.repeat = repeat;\n lodash.replace = replace;\n lodash.result = result;\n lodash.round = round;\n lodash.runInContext = runInContext;\n lodash.sample = sample;\n lodash.size = size;\n lodash.snakeCase = snakeCase;\n lodash.some = some;\n lodash.sortedIndex = sortedIndex;\n lodash.sortedIndexBy = sortedIndexBy;\n lodash.sortedIndexOf = sortedIndexOf;\n lodash.sortedLastIndex = sortedLastIndex;\n lodash.sortedLastIndexBy = sortedLastIndexBy;\n lodash.sortedLastIndexOf = sortedLastIndexOf;\n lodash.startCase = startCase;\n lodash.startsWith = startsWith;\n lodash.subtract = subtract;\n lodash.sum = sum;\n lodash.sumBy = sumBy;\n lodash.template = template;\n lodash.times = times;\n lodash.toFinite = toFinite;\n lodash.toInteger = toInteger;\n lodash.toLength = toLength;\n lodash.toLower = toLower;\n lodash.toNumber = toNumber;\n lodash.toSafeInteger = toSafeInteger;\n lodash.toString = toString;\n lodash.toUpper = toUpper;\n lodash.trim = trim;\n lodash.trimEnd = trimEnd;\n lodash.trimStart = trimStart;\n lodash.truncate = truncate;\n lodash.unescape = unescape;\n lodash.uniqueId = uniqueId;\n lodash.upperCase = upperCase;\n lodash.upperFirst = upperFirst;\n\n // Add aliases.\n lodash.each = forEach;\n lodash.eachRight = forEachRight;\n lodash.first = head;\n mixin(lodash, function () {\n var source = {};\n baseForOwn(lodash, function (func, methodName) {\n if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n source[methodName] = func;\n }\n });\n return source;\n }(), {\n 'chain': false\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The semantic version number.\n *\n * @static\n * @memberOf _\n * @type {string}\n */\n lodash.VERSION = VERSION;\n\n // Assign default placeholders.\n arrayEach(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function (methodName) {\n lodash[methodName].placeholder = lodash;\n });\n\n // Add `LazyWrapper` methods for `_.drop` and `_.take` variants.\n arrayEach(['drop', 'take'], function (methodName, index) {\n LazyWrapper.prototype[methodName] = function (n) {\n n = n === undefined ? 1 : nativeMax(toInteger(n), 0);\n var result = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone();\n if (result.__filtered__) {\n result.__takeCount__ = nativeMin(n, result.__takeCount__);\n } else {\n result.__views__.push({\n 'size': nativeMin(n, MAX_ARRAY_LENGTH),\n 'type': methodName + (result.__dir__ < 0 ? 'Right' : '')\n });\n }\n return result;\n };\n LazyWrapper.prototype[methodName + 'Right'] = function (n) {\n return this.reverse()[methodName](n).reverse();\n };\n });\n\n // Add `LazyWrapper` methods that accept an `iteratee` value.\n arrayEach(['filter', 'map', 'takeWhile'], function (methodName, index) {\n var type = index + 1,\n isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;\n LazyWrapper.prototype[methodName] = function (iteratee) {\n var result = this.clone();\n result.__iteratees__.push({\n 'iteratee': getIteratee(iteratee, 3),\n 'type': type\n });\n result.__filtered__ = result.__filtered__ || isFilter;\n return result;\n };\n });\n\n // Add `LazyWrapper` methods for `_.head` and `_.last`.\n arrayEach(['head', 'last'], function (methodName, index) {\n var takeName = 'take' + (index ? 'Right' : '');\n LazyWrapper.prototype[methodName] = function () {\n return this[takeName](1).value()[0];\n };\n });\n\n // Add `LazyWrapper` methods for `_.initial` and `_.tail`.\n arrayEach(['initial', 'tail'], function (methodName, index) {\n var dropName = 'drop' + (index ? '' : 'Right');\n LazyWrapper.prototype[methodName] = function () {\n return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);\n };\n });\n LazyWrapper.prototype.compact = function () {\n return this.filter(identity);\n };\n LazyWrapper.prototype.find = function (predicate) {\n return this.filter(predicate).head();\n };\n LazyWrapper.prototype.findLast = function (predicate) {\n return this.reverse().find(predicate);\n };\n LazyWrapper.prototype.invokeMap = baseRest(function (path, args) {\n if (typeof path == 'function') {\n return new LazyWrapper(this);\n }\n return this.map(function (value) {\n return baseInvoke(value, path, args);\n });\n });\n LazyWrapper.prototype.reject = function (predicate) {\n return this.filter(negate(getIteratee(predicate)));\n };\n LazyWrapper.prototype.slice = function (start, end) {\n start = toInteger(start);\n var result = this;\n if (result.__filtered__ && (start > 0 || end < 0)) {\n return new LazyWrapper(result);\n }\n if (start < 0) {\n result = result.takeRight(-start);\n } else if (start) {\n result = result.drop(start);\n }\n if (end !== undefined) {\n end = toInteger(end);\n result = end < 0 ? result.dropRight(-end) : result.take(end - start);\n }\n return result;\n };\n LazyWrapper.prototype.takeRightWhile = function (predicate) {\n return this.reverse().takeWhile(predicate).reverse();\n };\n LazyWrapper.prototype.toArray = function () {\n return this.take(MAX_ARRAY_LENGTH);\n };\n\n // Add `LazyWrapper` methods to `lodash.prototype`.\n baseForOwn(LazyWrapper.prototype, function (func, methodName) {\n var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName),\n isTaker = /^(?:head|last)$/.test(methodName),\n lodashFunc = lodash[isTaker ? 'take' + (methodName == 'last' ? 'Right' : '') : methodName],\n retUnwrapped = isTaker || /^find/.test(methodName);\n if (!lodashFunc) {\n return;\n }\n lodash.prototype[methodName] = function () {\n var value = this.__wrapped__,\n args = isTaker ? [1] : arguments,\n isLazy = value instanceof LazyWrapper,\n iteratee = args[0],\n useLazy = isLazy || isArray(value);\n var interceptor = function (value) {\n var result = lodashFunc.apply(lodash, arrayPush([value], args));\n return isTaker && chainAll ? result[0] : result;\n };\n if (useLazy && checkIteratee && typeof iteratee == 'function' && iteratee.length != 1) {\n // Avoid lazy use if the iteratee has a \"length\" value other than `1`.\n isLazy = useLazy = false;\n }\n var chainAll = this.__chain__,\n isHybrid = !!this.__actions__.length,\n isUnwrapped = retUnwrapped && !chainAll,\n onlyLazy = isLazy && !isHybrid;\n if (!retUnwrapped && useLazy) {\n value = onlyLazy ? value : new LazyWrapper(this);\n var result = func.apply(value, args);\n result.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(result, chainAll);\n }\n if (isUnwrapped && onlyLazy) {\n return func.apply(this, args);\n }\n result = this.thru(interceptor);\n return isUnwrapped ? isTaker ? result.value()[0] : result.value() : result;\n };\n });\n\n // Add `Array` methods to `lodash.prototype`.\n arrayEach(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function (methodName) {\n var func = arrayProto[methodName],\n chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',\n retUnwrapped = /^(?:pop|shift)$/.test(methodName);\n lodash.prototype[methodName] = function () {\n var args = arguments;\n if (retUnwrapped && !this.__chain__) {\n var value = this.value();\n return func.apply(isArray(value) ? value : [], args);\n }\n return this[chainName](function (value) {\n return func.apply(isArray(value) ? value : [], args);\n });\n };\n });\n\n // Map minified method names to their real names.\n baseForOwn(LazyWrapper.prototype, function (func, methodName) {\n var lodashFunc = lodash[methodName];\n if (lodashFunc) {\n var key = lodashFunc.name + '';\n if (!hasOwnProperty.call(realNames, key)) {\n realNames[key] = [];\n }\n realNames[key].push({\n 'name': methodName,\n 'func': lodashFunc\n });\n }\n });\n realNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{\n 'name': 'wrapper',\n 'func': undefined\n }];\n\n // Add methods to `LazyWrapper`.\n LazyWrapper.prototype.clone = lazyClone;\n LazyWrapper.prototype.reverse = lazyReverse;\n LazyWrapper.prototype.value = lazyValue;\n\n // Add chain sequence methods to the `lodash` wrapper.\n lodash.prototype.at = wrapperAt;\n lodash.prototype.chain = wrapperChain;\n lodash.prototype.commit = wrapperCommit;\n lodash.prototype.next = wrapperNext;\n lodash.prototype.plant = wrapperPlant;\n lodash.prototype.reverse = wrapperReverse;\n lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;\n\n // Add lazy aliases.\n lodash.prototype.first = lodash.prototype.head;\n if (symIterator) {\n lodash.prototype[symIterator] = wrapperToIterator;\n }\n return lodash;\n };\n\n /*--------------------------------------------------------------------------*/\n\n // Export lodash.\n var _ = runInContext();\n\n // Some AMD build optimizers, like r.js, check for condition patterns like:\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n // Expose Lodash on the global object to prevent errors when Lodash is\n // loaded by a script tag in the presence of an AMD loader.\n // See http://requirejs.org/docs/errors.html#mismatch for more details.\n // Use `_.noConflict` to remove Lodash from the global object.\n root._ = _;\n\n // Define as an anonymous module so, through path mapping, it can be\n // referenced as the \"underscore\" module.\n define(function () {\n return _;\n });\n }\n // Check for `exports` after `define` in case a build optimizer adds it.\n else if (freeModule) {\n // Export for Node.js.\n (freeModule.exports = _)._ = _;\n // Export for CommonJS support.\n freeExports._ = _;\n } else {\n // Export to the global object.\n root._ = _;\n }\n}).call(this);","import {\n generateItemsReducer,\n generateActions,\n itemFromStore,\n itemEditDataFromStore,\n itemLocalDataFromStore\n} from \"reducers/item\"\n\nconst itemType = \"activity\"\nconst endpoint = \"activities/\"\n\nexport const activitiesReducer = generateItemsReducer(itemType)\n\nexport const {\n seedActivity,\n createActivity,\n readActivity,\n updateActivity,\n destroyActivity,\n setEditFieldsActivity,\n resetEditFieldsActivity,\n setLocalFieldsActivity,\n resetLocalFieldsActivity,\n} = generateActions(itemType, endpoint)\n\nexport const activityFromStore = (store, id) => itemFromStore(store, itemType, id)\nexport const activityEditDataFromStore = (store, id) => itemEditDataFromStore(store, itemType, id)\nexport const activityLocalDataFromStore = (store, id) => itemLocalDataFromStore(store, itemType, id)\n","\"use strict\";\n\nexports.__esModule = true;\nexports.setNumber = setNumber;\nexports.setDate = setDate;\nexports.date = exports.number = void 0;\nvar _invariant = _interopRequireDefault(require(\"invariant\"));\nvar _ = require(\"./_\");\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar localePropType = _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]);\nvar REQUIRED_NUMBER_FORMATS = ['default'];\nvar REQUIRED_DATE_FORMATS = ['default', 'date', 'time', 'header', 'footer', 'weekday', 'dayOfMonth', 'month', 'year', 'decade', 'century'];\nvar _numberLocalizer = createWrapper('NumberPicker');\nvar number = {\n propType: function propType() {\n var _numberLocalizer2;\n return (_numberLocalizer2 = _numberLocalizer).propType.apply(_numberLocalizer2, arguments);\n },\n getFormat: function getFormat(key, format) {\n return format || _numberLocalizer.formats[key];\n },\n parse: function parse() {\n var _numberLocalizer3;\n return (_numberLocalizer3 = _numberLocalizer).parse.apply(_numberLocalizer3, arguments);\n },\n format: function format() {\n var _numberLocalizer4;\n return (_numberLocalizer4 = _numberLocalizer).format.apply(_numberLocalizer4, arguments);\n },\n decimalChar: function decimalChar() {\n var _numberLocalizer5;\n return (_numberLocalizer5 = _numberLocalizer).decimalChar.apply(_numberLocalizer5, arguments);\n },\n precision: function precision() {\n var _numberLocalizer6;\n return (_numberLocalizer6 = _numberLocalizer).precision.apply(_numberLocalizer6, arguments);\n }\n};\nexports.number = number;\nfunction setNumber(_ref) {\n var format = _ref.format,\n _parse = _ref.parse,\n formats = _ref.formats,\n _ref$propType = _ref.propType,\n propType = _ref$propType === void 0 ? localePropType : _ref$propType,\n _ref$decimalChar = _ref.decimalChar,\n decimalChar = _ref$decimalChar === void 0 ? function () {\n return '.';\n } : _ref$decimalChar,\n _ref$precision = _ref.precision,\n precision = _ref$precision === void 0 ? function () {\n return null;\n } : _ref$precision;\n checkFormats(REQUIRED_NUMBER_FORMATS, formats);\n _numberLocalizer = {\n formats: formats,\n precision: precision,\n decimalChar: decimalChar,\n propType: propType,\n format: wrapFormat(format),\n parse: function parse(value, culture, format) {\n var result = _parse.call(this, value, culture, format);\n !(result == null || typeof result === 'number') ? process.env.NODE_ENV !== \"production\" ? (0, _invariant.default)(false, 'number localizer `parse(..)` must return a number, null, or undefined') : invariant(false) : void 0;\n return result;\n }\n };\n}\nvar _dateLocalizer = createWrapper('DateTimePicker');\nvar date = {\n propType: function propType() {\n var _dateLocalizer2;\n return (_dateLocalizer2 = _dateLocalizer).propType.apply(_dateLocalizer2, arguments);\n },\n getFormat: function getFormat(key, format) {\n return format || _dateLocalizer.formats[key];\n },\n parse: function parse() {\n var _dateLocalizer3;\n return (_dateLocalizer3 = _dateLocalizer).parse.apply(_dateLocalizer3, arguments);\n },\n format: function format() {\n var _dateLocalizer4;\n return (_dateLocalizer4 = _dateLocalizer).format.apply(_dateLocalizer4, arguments);\n },\n firstOfWeek: function firstOfWeek() {\n var _dateLocalizer5;\n return (_dateLocalizer5 = _dateLocalizer).firstOfWeek.apply(_dateLocalizer5, arguments);\n }\n};\nexports.date = date;\nfunction setDate(_ref2) {\n var formats = _ref2.formats,\n format = _ref2.format,\n _parse2 = _ref2.parse,\n firstOfWeek = _ref2.firstOfWeek,\n _ref2$propType = _ref2.propType,\n propType = _ref2$propType === void 0 ? localePropType : _ref2$propType;\n checkFormats(REQUIRED_DATE_FORMATS, formats);\n _dateLocalizer = {\n formats: formats,\n propType: propType,\n firstOfWeek: firstOfWeek,\n format: wrapFormat(format),\n parse: function parse(value, format, culture) {\n var result = _parse2.call(this, value, format, culture);\n !(result == null || result instanceof Date && !isNaN(result.getTime())) ? process.env.NODE_ENV !== \"production\" ? (0, _invariant.default)(false, 'date localizer `parse(..)` must return a valid Date, null, or undefined') : invariant(false) : void 0;\n return result;\n }\n };\n}\nvar wrapFormat = function wrapFormat(formatter) {\n return function (value, format, culture) {\n var result = typeof format === 'function' ? format(value, culture, this) : formatter.call(this, value, format, culture);\n !(result == null || typeof result === 'string') ? process.env.NODE_ENV !== \"production\" ? (0, _invariant.default)(false, '`localizer format(..)` must return a string, null, or undefined') : invariant(false) : void 0;\n return result;\n };\n};\nfunction checkFormats(required, formats) {\n if (process.env.NODE_ENV !== 'production') required.forEach(function (f) {\n return !(0, _.has)(formats, f) ? process.env.NODE_ENV !== \"production\" ? (0, _invariant.default)(false, 'localizer missing required format: `%s`', f) : invariant(false) : void 0;\n });\n}\nfunction createWrapper() {\n var dummy = {};\n if (process.env.NODE_ENV !== 'production') {\n ['formats', 'parse', 'format', 'firstOfWeek', 'precision', 'propType'].forEach(function (name) {\n return Object.defineProperty(dummy, name, {\n enumerable: true,\n get: function get() {\n throw new Error('[React Widgets] You are attempting to use a widget that requires localization ' + '(Calendar, DateTimePicker, NumberPicker). ' + 'However there is no localizer set. Please configure a localizer. \\n\\n' + 'see http://jquense.github.io/react-widgets/docs/#/i18n for more info.');\n }\n });\n });\n }\n return dummy;\n}","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","export function integerDurrationToDisplayString(value: number) {\n const seconds = value % 60;\n const minutes = Math.floor(value / 60) % 60;\n const displayEnd = `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;\n\n const hours = Math.floor(value / 3600);\n return hours > 0 ? `${String(hours).padStart(2, '0')}:${displayEnd}` : displayEnd;\n}\n\nexport function stringDateToDisplayDateString(value: DateString) {\n return value && new Date(Date.parse(value)).toLocaleString(\"en-US\", {timeZoneName: \"short\"});\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.pick = pick;\nexports.pickElementProps = pickElementProps;\nexports.omitOwn = omitOwn;\nvar whitelist = ['style', 'className', 'role', 'id', 'autocomplete', 'size', 'tabIndex', 'maxLength', 'name'];\nvar whitelistRegex = [/^aria-/, /^data-/, /^on[A-Z]\\w+/];\nfunction pick(props, componentClass) {\n var keys = Object.keys(componentClass.propTypes);\n var result = {};\n Object.keys(props).forEach(function (key) {\n if (keys.indexOf(key) === -1) return;\n result[key] = props[key];\n });\n return result;\n}\nfunction pickElementProps(component) {\n for (var _len = arguments.length, others = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n others[_key - 1] = arguments[_key];\n }\n var props = omitOwn.apply(void 0, [component].concat(others));\n var result = {};\n Object.keys(props).forEach(function (key) {\n if (whitelist.indexOf(key) !== -1 || whitelistRegex.some(function (r) {\n return !!key.match(r);\n })) result[key] = props[key];\n });\n return result;\n}\nfunction omitOwn(component) {\n var initial = Object.keys(component.constructor.propTypes);\n for (var _len2 = arguments.length, others = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n others[_key2 - 1] = arguments[_key2];\n }\n var keys = others.reduce(function (arr, compClass) {\n return arr.concat(Object.keys(compClass.propTypes));\n }, initial);\n var result = {};\n Object.keys(component.props).forEach(function (key) {\n if (keys.indexOf(key) !== -1) return;\n result[key] = component.props[key];\n });\n return result;\n}","import React from 'react';\n\nimport AddToButton from 'DocumentSetDocumentRelation/AddTo/Button'\n\nimport { documentDisplayTitle } from 'src/document_display_title'\n\nexport default function DocumentSummary(\n {\n document,\n rootDocumentSetId,\n currentUser,\n currentRoleDefinition,\n categoryId,\n },\n) {\n let mediaIcons = []\n\n if(document.description.indexOf('extra_video') !== -1) {\n mediaIcons.push(<i key=\"extra_video\" className=\"fa fa-video-camera\" style={{'paddingRight': '5px'}}></i>)\n }\n\n if(document.description.indexOf('extra_image') !== -1) {\n mediaIcons.push(<i key=\"extra_image\" className=\"fa fa-image\" style={{'paddingRight': '5px'}}></i>)\n }\n\n if(document.description.indexOf('extra_audio') !== -1) {\n mediaIcons.push(<i key=\"extra_audio\" className=\"fa fa-volume-up\" style={{'paddingRight': '5px'}}></i>)\n }\n\n let canAddButton = rootDocumentSetId &&\n (currentUser?.is_admin ||\n [\"Faculty\", \"Manager\", \"ReelDx_Faculty\"].includes(currentRoleDefinition?.name))\n\n let addToButton = canAddButton && <AddToButton\n rootDocumentSetId={rootDocumentSetId}\n document={document}\n currentUser={currentUser}\n currentRoleDefinition={currentRoleDefinition}\n categoryId={categoryId}\n />\n\n return (\n <div className=\"cover-wrapper\">\n {addToButton}\n\n <a className=\"cover summary\" href={\"/documents/\" + document.id}>\n <img src={document.cover_image} alt={`Case ${document.id} Cover Image`} width=\"2092\" height=\"1170\"/>\n <h4 className=\"name\">{documentDisplayTitle(document)}</h4>\n {mediaIcons.length > 0 && <h4>{mediaIcons}</h4>}\n </a>\n </div>\n );\n}\n","import {\n generateItemsReducer,\n generateActions,\n itemFromStore,\n itemEditDataFromStore,\n itemLocalDataFromStore\n} from 'reducers/item'\n\nconst itemType = \"version\"\nconst endpoint = \"versions/\"\n\nexport const versionsReducer = generateItemsReducer(itemType)\n\nexport const {\n seedVersion,\n createVersion,\n readVersion,\n updateVersion,\n destroyVersion,\n setEditFieldsVersion,\n resetEditFieldsVersion,\n setLocalFieldsVersion,\n resetLocalFieldsVersion,\n} = generateActions(itemType, endpoint)\n\nexport const versionFromStore = (store, id) => itemFromStore(store, itemType, id)\nexport const versionEditDataFromStore = (store, id) => itemEditDataFromStore(store, itemType, id)\nexport const versionLocalDataFromStore = (store, id) => itemLocalDataFromStore(store, itemType, id)\n","import * as React from 'react';\n\nimport GenButton from './Button';\n\ninterface GenSelectBarProps<Item> {\n selected: Array<Item>;\n setListSelected: (listSelected: Array<Item>) => void;\n listData: Array<Item>;\n itemType: string;\n selectionDescription: (selectItems: Array<Item>) => string;\n selectExtraButtons: React.ReactElement;\n}\n\nexport default function GenSelectBar<Item>(\n {\n selected,\n setListSelected,\n listData,\n itemType,\n selectionDescription,\n selectExtraButtons,\n }: GenSelectBarProps<Item>,\n) {\n const handleSelectAll = (e: React.MouseEvent) => {\n e.preventDefault();\n\n selected.length > 0\n ? setListSelected([])\n : setListSelected((listData || []));\n }\n\n const selectText = `Select ${listData ? listData.length + \" \" : \"\"} Shown`\n\n return (\n <div className=\"gen-select-list-buttons\">\n <div className=\"gen-select-list-buttons-left flex gap-2 items-baseline\">\n <GenButton name={selected.length > 0 ? \"Deselect All\" : selectText} onClick={handleSelectAll} highlighted small/>\n <span>{selected.length} {itemType} selected</span>\n <span>{selectionDescription && selectionDescription(selected)}</span>\n </div>\n <div className=\"gen-select-list-buttons-right\">\n {selectExtraButtons}\n </div>\n </div>\n );\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _invariant = _interopRequireDefault(require(\"invariant\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _reactDom = require(\"react-dom\");\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\nvar _activeElement = _interopRequireDefault(require(\"dom-helpers/activeElement\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _deprecated = _interopRequireDefault(require(\"prop-types-extra/lib/deprecated\"));\nvar _uncontrollable = require(\"uncontrollable\");\nvar _Widget = _interopRequireDefault(require(\"./Widget\"));\nvar _WidgetPicker = _interopRequireDefault(require(\"./WidgetPicker\"));\nvar _Popup = _interopRequireDefault(require(\"./Popup\"));\nvar _Button = _interopRequireDefault(require(\"./Button\"));\nvar _Calendar = _interopRequireDefault(require(\"./Calendar\"));\nvar _DateTimePickerInput = _interopRequireDefault(require(\"./DateTimePickerInput\"));\nvar _Select = _interopRequireDefault(require(\"./Select\"));\nvar _TimeList = _interopRequireDefault(require(\"./TimeList\"));\nvar _messages = require(\"./messages\");\nvar Props = _interopRequireWildcard(require(\"./util/Props\"));\nvar CustomPropTypes = _interopRequireWildcard(require(\"./util/PropTypes\"));\nvar _focusManager = _interopRequireDefault(require(\"./util/focusManager\"));\nvar _scrollManager = _interopRequireDefault(require(\"./util/scrollManager\"));\nvar _interaction = require(\"./util/interaction\");\nvar _dates = _interopRequireDefault(require(\"./util/dates\"));\nvar _localizers = require(\"./util/localizers\");\nvar _widgetHelpers = require(\"./util/widgetHelpers\");\nvar _Icon = require(\"./Icon\");\nvar _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _class3, _temp;\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _initializerDefineProperty(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0\n });\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n return desc;\n}\nfunction _initializerWarningHelper(descriptor, context) {\n throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and set to use loose mode. ' + 'To use proposal-class-properties in spec mode with decorators, wait for ' + 'the next major version of decorators in stage 2.');\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nvar NEXT_VIEW = {\n date: 'time',\n time: 'date'\n};\nvar isBothOrNeither = function isBothOrNeither(a, b) {\n return a && b || !a && !b;\n};\nvar propTypes = _extends({}, _Calendar.default.ControlledComponent.propTypes, {\n /**\n * @example ['valuePicker', [ ['new Date()', null] ]]\n */\n value: _propTypes.default.instanceOf(Date),\n /**\n * @example ['onChangePicker', [ ['new Date()', null] ]]\n */\n onChange: _propTypes.default.func,\n /**\n * @type {(false | 'time' | 'date')}\n * @example ['openDateTime']\n */\n open: _propTypes.default.oneOf([false, 'time', 'date']),\n onToggle: _propTypes.default.func,\n /**\n * Default current date at which the calendar opens. If none is provided, opens at today's date or the `value` date (if any).\n */\n currentDate: _propTypes.default.instanceOf(Date),\n /**\n * Change event Handler that is called when the currentDate is changed. The handler is called with the currentDate object.\n */\n onCurrentDateChange: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n /**\n * The minimum Date that can be selected. Min only limits selection, it doesn't constrain the date values that\n * can be typed or pasted into the widget. If you need this behavior you can constrain values via\n * the `onChange` handler.\n *\n * @example ['prop', ['min', 'new Date()']]\n */\n min: _propTypes.default.instanceOf(Date),\n /**\n * The maximum Date that can be selected. Max only limits selection, it doesn't constrain the date values that\n * can be typed or pasted into the widget. If you need this behavior you can constrain values via\n * the `onChange` handler.\n *\n * @example ['prop', ['max', 'new Date()']]\n */\n max: _propTypes.default.instanceOf(Date),\n /**\n * The amount of minutes between each entry in the time list.\n *\n * @example ['prop', { step: 90 }]\n */\n step: _propTypes.default.number,\n culture: _propTypes.default.string,\n /**\n * A formatter used to display the date value. For more information about formats\n * visit the [Localization page](/localization)\n *\n * @example ['dateFormat', ['format', \"{ raw: 'MMM dd, yyyy' }\", null, { defaultValue: 'new Date()', time: 'false' }]]\n */\n format: CustomPropTypes.dateFormat,\n /**\n * A formatter used by the time dropdown to render times. For more information about formats visit\n * the [Localization page](/localization).\n *\n * @example ['dateFormat', ['timeFormat', \"{ time: 'medium' }\", null, { date: 'false', open: '\"time\"' }]]\n */\n timeFormat: CustomPropTypes.dateFormat,\n /**\n * A formatter to be used while the date input has focus. Useful for showing a simpler format for inputing.\n * For more information about formats visit the [Localization page](/localization)\n *\n * @example ['dateFormat', ['editFormat', \"{ date: 'short' }\", null, { defaultValue: 'new Date()', format: \"{ raw: 'MMM dd, yyyy' }\", time: 'false' }]]\n */\n editFormat: CustomPropTypes.dateFormat,\n /**\n * Enable the calendar component of the picker.\n */\n date: _propTypes.default.bool,\n /**\n * Enable the time list component of the picker.\n */\n time: _propTypes.default.bool,\n /** @ignore */\n calendar: (0, _deprecated.default)(_propTypes.default.bool, 'Use `date` instead'),\n /**\n * A customize the rendering of times but providing a custom component.\n */\n timeComponent: CustomPropTypes.elementType,\n /** Specify the element used to render the calendar dropdown icon. */\n dateIcon: _propTypes.default.node,\n /** Specify the element used to render the time list dropdown icon. */\n timeIcon: _propTypes.default.node,\n dropUp: _propTypes.default.bool,\n popupTransition: CustomPropTypes.elementType,\n placeholder: _propTypes.default.string,\n name: _propTypes.default.string,\n autoFocus: _propTypes.default.bool,\n /**\n * @example ['disabled', ['new Date()']]\n */\n disabled: CustomPropTypes.disabled,\n /**\n * @example ['readOnly', ['new Date()']]\n */\n readOnly: CustomPropTypes.disabled,\n /**\n * Determines how the widget parses the typed date string into a Date object. You can provide an array of formats to try,\n * or provide a function that returns a date to handle parsing yourself. When `parse` is unspecified and\n * the `format` prop is a `string` parse will automatically use that format as its default.\n */\n parse: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string), _propTypes.default.string, _propTypes.default.func]),\n /** @ignore */\n tabIndex: _propTypes.default.any,\n /** @ignore */\n 'aria-labelledby': _propTypes.default.string,\n /** @ignore */\n 'aria-describedby': _propTypes.default.string,\n onKeyDown: _propTypes.default.func,\n onKeyPress: _propTypes.default.func,\n onBlur: _propTypes.default.func,\n onFocus: _propTypes.default.func,\n /** Adds a css class to the input container element. */\n containerClassName: _propTypes.default.string,\n inputProps: _propTypes.default.object,\n isRtl: _propTypes.default.bool,\n messages: _propTypes.default.shape({\n dateButton: _propTypes.default.string,\n timeButton: _propTypes.default.string\n })\n /**\n * ---\n * subtitle: DatePicker, TimePicker\n * localized: true\n * shortcuts:\n * - { key: alt + down arrow, label: open calendar or time }\n * - { key: alt + up arrow, label: close calendar or time }\n * - { key: down arrow, label: move focus to next item }\n * - { key: up arrow, label: move focus to previous item }\n * - { key: home, label: move focus to first item }\n * - { key: end, label: move focus to last item }\n * - { key: enter, label: select focused item }\n * - { key: any key, label: search list for item starting with key }\n * ---\n *\n * @public\n * @extends Calendar\n */\n});\nvar DateTimePicker = (0, _reactLifecyclesCompat.polyfill)(_class = (_class2 = (_temp = _class3 = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(DateTimePicker, _React$Component);\n function DateTimePicker() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _initializerDefineProperty(_this, \"handleChange\", _descriptor, _assertThisInitialized(_assertThisInitialized(_this)));\n _initializerDefineProperty(_this, \"handleKeyDown\", _descriptor2, _assertThisInitialized(_assertThisInitialized(_this)));\n _initializerDefineProperty(_this, \"handleKeyPress\", _descriptor3, _assertThisInitialized(_assertThisInitialized(_this)));\n _initializerDefineProperty(_this, \"handleDateSelect\", _descriptor4, _assertThisInitialized(_assertThisInitialized(_this)));\n _initializerDefineProperty(_this, \"handleTimeSelect\", _descriptor5, _assertThisInitialized(_assertThisInitialized(_this)));\n _initializerDefineProperty(_this, \"handleCalendarClick\", _descriptor6, _assertThisInitialized(_assertThisInitialized(_this)));\n _initializerDefineProperty(_this, \"handleTimeClick\", _descriptor7, _assertThisInitialized(_assertThisInitialized(_this)));\n _this.attachCalRef = function (ref) {\n return _this.calRef = ref;\n };\n _this.attachTimeRef = function (ref) {\n return _this.timeRef = ref;\n };\n _this.attachInputRef = function (ref) {\n return _this.inputRef = ref;\n };\n _this.parse = function (string) {\n var _this$props = _this.props,\n parse = _this$props.parse,\n culture = _this$props.culture,\n editFormat = _this$props.editFormat;\n var format = getFormat(_this.props, true);\n !(parse || format || editFormat) ? process.env.NODE_ENV !== \"production\" ? (0, _invariant.default)(false, 'React Widgets: there are no specified `parse` formats provided and the `format` prop is a function. ' + 'the DateTimePicker is unable to parse `%s` into a dateTime, ' + 'please provide either a parse function or localizer compatible `format` prop', string) : invariant(false) : void 0;\n var date;\n var formats = [format, editFormat];\n if (typeof parse == 'function') {\n date = parse(string, culture);\n if (date) return date;\n } else {\n // parse is a string format or array of string formats\n formats = formats.concat(parse).filter(Boolean);\n }\n for (var i = 0; i < formats.length; i++) {\n date = _localizers.date.parse(string, formats[i], culture);\n if (date) return date;\n }\n return null;\n };\n _this.inputId = (0, _widgetHelpers.instanceId)(_assertThisInitialized(_assertThisInitialized(_this)), '_input');\n _this.dateId = (0, _widgetHelpers.instanceId)(_assertThisInitialized(_assertThisInitialized(_this)), '_date');\n _this.listId = (0, _widgetHelpers.instanceId)(_assertThisInitialized(_assertThisInitialized(_this)), '_listbox');\n _this.activeCalendarId = (0, _widgetHelpers.instanceId)(_assertThisInitialized(_assertThisInitialized(_this)), '_calendar_active_cell');\n _this.activeOptionId = (0, _widgetHelpers.instanceId)(_assertThisInitialized(_assertThisInitialized(_this)), '_listbox_active_option');\n _this.handleScroll = (0, _scrollManager.default)(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.focusManager = (0, _focusManager.default)(_assertThisInitialized(_assertThisInitialized(_this)), {\n didHandle: function didHandle(focused) {\n if (!focused) _this.close();\n }\n });\n _this.state = {\n focused: false,\n messages: (0, _messages.getMessages)(_this.props.messages)\n };\n return _this;\n }\n DateTimePicker.getDerivedStateFromProps = function getDerivedStateFromProps(_ref) {\n var messages = _ref.messages;\n return {\n messages: (0, _messages.getMessages)(messages)\n };\n };\n var _proto = DateTimePicker.prototype;\n _proto.renderInput = function renderInput(owns) {\n var _this$props2 = this.props,\n open = _this$props2.open,\n value = _this$props2.value,\n editFormat = _this$props2.editFormat,\n culture = _this$props2.culture,\n placeholder = _this$props2.placeholder,\n disabled = _this$props2.disabled,\n readOnly = _this$props2.readOnly,\n name = _this$props2.name,\n tabIndex = _this$props2.tabIndex,\n autoFocus = _this$props2.autoFocus,\n inputProps = _this$props2.inputProps,\n ariaLabelledby = _this$props2['aria-labelledby'],\n ariaDescribedby = _this$props2['aria-describedby'];\n var focused = this.state.focused;\n var inputReadOnly = inputProps ? inputProps.readOnly : null;\n var activeId = null;\n if (open === 'time') {\n activeId = this.activeOptionId;\n } else if (open === 'date') {\n activeId = this.activeCalendarId;\n }\n return _react.default.createElement(_DateTimePickerInput.default, _extends({}, inputProps, {\n id: this.inputId,\n ref: this.attachInputRef,\n role: \"combobox\",\n name: name,\n value: value,\n tabIndex: tabIndex,\n autoFocus: autoFocus,\n placeholder: placeholder,\n disabled: disabled,\n readOnly: inputReadOnly != null ? inputReadOnly : readOnly,\n format: getFormat(this.props),\n editFormat: editFormat,\n editing: focused,\n culture: culture,\n parse: this.parse,\n onChange: this.handleChange,\n \"aria-haspopup\": true,\n \"aria-activedescendant\": activeId,\n \"aria-labelledby\": ariaLabelledby,\n \"aria-describedby\": ariaDescribedby,\n \"aria-expanded\": !!open,\n \"aria-owns\": owns\n }));\n };\n _proto.renderButtons = function renderButtons() {\n var _this$props3 = this.props,\n date = _this$props3.date,\n dateIcon = _this$props3.dateIcon,\n time = _this$props3.time,\n timeIcon = _this$props3.timeIcon,\n disabled = _this$props3.disabled,\n readOnly = _this$props3.readOnly;\n if (!date && !time) {\n return null;\n }\n var messages = this.state.messages;\n return _react.default.createElement(_Select.default, {\n bordered: true\n }, date && _react.default.createElement(_Button.default, {\n icon: dateIcon,\n label: messages.dateButton(),\n disabled: disabled || readOnly,\n onClick: this.handleCalendarClick\n }), time && _react.default.createElement(_Button.default, {\n icon: timeIcon,\n label: messages.timeButton(),\n disabled: disabled || readOnly,\n onClick: this.handleTimeClick\n }));\n };\n _proto.renderCalendar = function renderCalendar() {\n var _this2 = this;\n var activeCalendarId = this.activeCalendarId,\n inputId = this.inputId,\n dateId = this.dateId;\n var _this$props4 = this.props,\n open = _this$props4.open,\n value = _this$props4.value,\n popupTransition = _this$props4.popupTransition,\n dropUp = _this$props4.dropUp,\n onCurrentDateChange = _this$props4.onCurrentDateChange,\n currentDate = _this$props4.currentDate;\n var calendarProps = Props.pick(this.props, _Calendar.default.ControlledComponent); // manually include the last controlled default Props\n\n calendarProps.defaultView = this.props.defaultView;\n return _react.default.createElement(_Popup.default, {\n dropUp: dropUp,\n open: open === 'date',\n className: \"rw-calendar-popup\",\n transition: popupTransition\n }, _react.default.createElement(_Calendar.default, _extends({}, calendarProps, {\n id: dateId,\n activeId: activeCalendarId,\n tabIndex: \"-1\",\n value: value,\n autoFocus: false,\n onChange: this.handleDateSelect // #75: need to aggressively reclaim focus from the calendar otherwise\n // disabled header/footer buttons will drop focus completely from the widget\n ,\n\n onNavigate: function onNavigate() {\n return _this2.focus();\n },\n currentDate: currentDate,\n onCurrentDateChange: onCurrentDateChange,\n \"aria-hidden\": !open,\n \"aria-live\": \"polite\",\n \"aria-labelledby\": inputId,\n ref: this.attachCalRef\n })));\n };\n _proto.renderTimeList = function renderTimeList() {\n var _this3 = this;\n var activeOptionId = this.activeOptionId,\n inputId = this.inputId,\n listId = this.listId;\n var _this$props5 = this.props,\n open = _this$props5.open,\n value = _this$props5.value,\n min = _this$props5.min,\n max = _this$props5.max,\n step = _this$props5.step,\n currentDate = _this$props5.currentDate,\n dropUp = _this$props5.dropUp,\n date = _this$props5.date,\n culture = _this$props5.culture,\n timeFormat = _this$props5.timeFormat,\n timeComponent = _this$props5.timeComponent,\n timeListProps = _this$props5.timeListProps,\n popupTransition = _this$props5.popupTransition;\n return _react.default.createElement(_Popup.default, {\n dropUp: dropUp,\n transition: popupTransition,\n open: open === 'time',\n onEntering: function onEntering() {\n return _this3.timeRef.forceUpdate();\n }\n }, _react.default.createElement(\"div\", null, _react.default.createElement(_TimeList.default, {\n id: listId,\n min: min,\n max: max,\n step: step,\n listProps: timeListProps,\n currentDate: currentDate,\n activeId: activeOptionId,\n format: timeFormat,\n culture: culture,\n value: dateOrNull(value),\n onMove: this.handleScroll,\n onSelect: this.handleTimeSelect,\n preserveDate: !!date,\n itemComponent: timeComponent,\n \"aria-labelledby\": inputId,\n \"aria-live\": open && 'polite',\n \"aria-hidden\": !open,\n messages: this.state.messages,\n ref: this.attachTimeRef\n })));\n };\n _proto.render = function render() {\n var _this$props6 = this.props,\n className = _this$props6.className,\n date = _this$props6.date,\n time = _this$props6.time,\n open = _this$props6.open,\n disabled = _this$props6.disabled,\n readOnly = _this$props6.readOnly,\n dropUp = _this$props6.dropUp,\n containerClassName = _this$props6.containerClassName;\n var focused = this.state.focused;\n var elementProps = Props.pickElementProps(this, _Calendar.default.ControlledComponent);\n var shouldRenderList = (0, _widgetHelpers.isFirstFocusedRender)(this);\n var shouldRenderTimeList = !!(shouldRenderList && time);\n var shouldRenderCalendar = !!(shouldRenderList && date);\n var owns = '';\n if (shouldRenderCalendar && open === 'date') owns += this.dateId;\n if (shouldRenderTimeList && open === 'time') owns += ' ' + this.listId;\n return _react.default.createElement(_Widget.default, _extends({}, elementProps, {\n open: !!open,\n dropUp: dropUp,\n focused: focused,\n disabled: disabled,\n readOnly: readOnly,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.focusManager.handleBlur,\n onFocus: this.focusManager.handleFocus,\n className: (0, _classnames.default)(className, 'rw-datetime-picker')\n }), _react.default.createElement(_WidgetPicker.default, {\n className: containerClassName\n }, this.renderInput(owns.trim()), this.renderButtons()), shouldRenderTimeList && this.renderTimeList(), shouldRenderCalendar && this.renderCalendar());\n };\n _proto.focus = function focus() {\n if (this.inputRef && (0, _activeElement.default)() !== (0, _reactDom.findDOMNode)(this.inputRef)) this.inputRef.focus();\n };\n _proto.toggle = function toggle(view) {\n var open = this.props.open;\n if (!open || open !== view) this.open(view);else this.close();\n };\n _proto.open = function open(view) {\n var _this$props7 = this.props,\n open = _this$props7.open,\n date = _this$props7.date,\n time = _this$props7.time,\n onToggle = _this$props7.onToggle;\n if (!view) {\n if (time) view = 'time';\n if (date) view = 'date';\n if (isBothOrNeither(date, time)) view = NEXT_VIEW[open] || 'date';\n }\n if (open !== view) (0, _widgetHelpers.notify)(onToggle, view);\n };\n _proto.close = function close() {\n if (this.props.open) (0, _widgetHelpers.notify)(this.props.onToggle, false);\n };\n _proto.inRangeValue = function inRangeValue(value) {\n if (value == null) return value;\n return _dates.default.max(_dates.default.min(value, this.props.max), this.props.min);\n };\n return DateTimePicker;\n}(_react.default.Component), _class3.displayName = 'DateTimePicker', _class3.propTypes = propTypes, _class3.defaultProps = _extends({}, _Calendar.default.ControlledComponent.defaultProps, {\n value: null,\n min: new Date(1900, 0, 1),\n max: new Date(2099, 11, 31),\n date: true,\n time: true,\n open: false,\n dateIcon: _Icon.calendar,\n timeIcon: _Icon.clock\n}), _temp), _descriptor = _applyDecoratedDescriptor(_class2.prototype, \"handleChange\", [_interaction.widgetEditable], {\n enumerable: true,\n initializer: function initializer() {\n var _this4 = this;\n return function (date, str, constrain) {\n var _this4$props = _this4.props,\n onChange = _this4$props.onChange,\n value = _this4$props.value;\n if (constrain) date = _this4.inRangeValue(date);\n if (onChange) {\n if (date == null || value == null) {\n if (date != value //eslint-disable-line eqeqeq\n ) onChange(date, str);\n } else if (!_dates.default.eq(date, value)) {\n onChange(date, str);\n }\n }\n };\n }\n}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, \"handleKeyDown\", [_interaction.widgetEditable], {\n enumerable: true,\n initializer: function initializer() {\n var _this5 = this;\n return function (e) {\n var _this5$props = _this5.props,\n open = _this5$props.open,\n onKeyDown = _this5$props.onKeyDown;\n (0, _widgetHelpers.notify)(onKeyDown, [e]);\n if (e.defaultPrevented) return;\n if (e.key === 'Escape' && open) _this5.close();else if (e.altKey) {\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n _this5.open();\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n _this5.close();\n }\n } else if (open) {\n if (open === 'date') _this5.calRef.handleKeyDown(e);\n if (open === 'time') _this5.timeRef.handleKeyDown(e);\n }\n };\n }\n}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, \"handleKeyPress\", [_interaction.widgetEditable], {\n enumerable: true,\n initializer: function initializer() {\n var _this6 = this;\n return function (e) {\n (0, _widgetHelpers.notify)(_this6.props.onKeyPress, [e]);\n if (e.defaultPrevented) return;\n };\n }\n}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, \"handleDateSelect\", [_interaction.widgetEditable], {\n enumerable: true,\n initializer: function initializer() {\n var _this7 = this;\n return function (date) {\n var format = getFormat(_this7.props),\n dateTime = _dates.default.merge(date, _this7.props.value, _this7.props.currentDate),\n dateStr = formatDate(date, format, _this7.props.culture);\n _this7.close();\n (0, _widgetHelpers.notify)(_this7.props.onSelect, [dateTime, dateStr]);\n _this7.handleChange(dateTime, dateStr, true);\n _this7.focus();\n };\n }\n}), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, \"handleTimeSelect\", [_interaction.widgetEditable], {\n enumerable: true,\n initializer: function initializer() {\n var _this8 = this;\n return function (datum) {\n var format = getFormat(_this8.props),\n dateTime = _dates.default.merge(_this8.props.value, datum.date, _this8.props.currentDate),\n dateStr = formatDate(datum.date, format, _this8.props.culture);\n _this8.close();\n (0, _widgetHelpers.notify)(_this8.props.onSelect, [dateTime, dateStr]);\n _this8.handleChange(dateTime, dateStr, true);\n _this8.focus();\n };\n }\n}), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, \"handleCalendarClick\", [_interaction.widgetEditable], {\n enumerable: true,\n initializer: function initializer() {\n var _this9 = this;\n return function () {\n _this9.focus();\n _this9.toggle('date');\n };\n }\n}), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, \"handleTimeClick\", [_interaction.widgetEditable], {\n enumerable: true,\n initializer: function initializer() {\n var _this10 = this;\n return function () {\n _this10.focus();\n _this10.toggle('time');\n };\n }\n}), _class2)) || _class;\nvar _default = (0, _uncontrollable.uncontrollable)(DateTimePicker, {\n open: 'onToggle',\n value: 'onChange',\n currentDate: 'onCurrentDateChange'\n}, ['focus']);\nexports.default = _default;\nfunction getFormat(props) {\n var isDate = props.date != null ? props.date : true;\n var isTime = props.time != null ? props.time : true;\n return props.format ? props.format : isDate && isTime || !isDate && !isTime ? _localizers.date.getFormat('default') : _localizers.date.getFormat(isDate ? 'date' : 'time');\n}\nfunction formatDate(date, format, culture) {\n var val = '';\n if (date instanceof Date && !isNaN(date.getTime())) val = _localizers.date.format(date, format, culture);\n return val;\n}\nfunction dateOrNull(dt) {\n if (dt && !isNaN(dt.getTime())) return dt;\n return null;\n}\nmodule.exports = exports[\"default\"];","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _dateArithmetic = _interopRequireDefault(require(\"date-arithmetic\"));\nvar _localizers = require(\"./localizers\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nvar dates = _extends({}, _dateArithmetic.default, {\n monthsInYear: function monthsInYear(year) {\n var date = new Date(year, 0, 1);\n return [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(function (i) {\n return dates.month(date, i);\n });\n },\n firstVisibleDay: function firstVisibleDay(date, culture) {\n var firstOfMonth = dates.startOf(date, 'month');\n return dates.startOf(firstOfMonth, 'week', _localizers.date.firstOfWeek(culture));\n },\n lastVisibleDay: function lastVisibleDay(date, culture) {\n var endOfMonth = dates.endOf(date, 'month');\n return dates.endOf(endOfMonth, 'week', _localizers.date.firstOfWeek(culture));\n },\n visibleDays: function visibleDays(date, culture) {\n var current = dates.firstVisibleDay(date, culture);\n var last = dates.lastVisibleDay(date, culture);\n var days = [];\n while (dates.lte(current, last, 'day')) {\n days.push(current);\n current = dates.add(current, 1, 'day');\n }\n return days;\n },\n merge: function merge(date, time, defaultDate) {\n if (time == null && date == null) return null;\n if (time == null) time = defaultDate || new Date();\n if (date == null) date = defaultDate || new Date();\n date = dates.startOf(date, 'day');\n date = dates.hours(date, dates.hours(time));\n date = dates.minutes(date, dates.minutes(time));\n date = dates.seconds(date, dates.seconds(time));\n return dates.milliseconds(date, dates.milliseconds(time));\n },\n today: function today() {\n return dates.startOf(new Date(), 'day');\n },\n tomorrow: function tomorrow() {\n return dates.add(dates.startOf(new Date(), 'day'), 1, 'day');\n }\n});\nvar _default = dates;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(prevProps, prevState);\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n if (typeof Component.getDerivedStateFromProps !== 'function' && typeof prototype.getSnapshotBeforeUpdate !== 'function') {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {\n var componentName = Component.displayName || Component.name;\n var newApiName = typeof Component.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';\n throw Error('Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' + componentName + ' uses ' + newApiName + ' but also contains the following legacy lifecycles:' + (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') + (foundWillReceivePropsName !== null ? '\\n ' + foundWillReceivePropsName : '') + (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') + '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' + 'https://fb.me/react-async-component-lifecycle-hooks');\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error('Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype');\n }\n prototype.componentWillUpdate = componentWillUpdate;\n var componentDidUpdate = prototype.componentDidUpdate;\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(prevProps, prevState, maybeSnapshot) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag ? this.__reactInternalSnapshot : maybeSnapshot;\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n return Component;\n}\nexport { polyfill };","import * as React from 'react';\n\nimport classNames from 'classnames'\n\nimport GenMore from './More'\nimport GenCheckboxFilter from './CheckboxFilter'\nimport GenCheckboxesFilter from './CheckboxesFilter'\nimport GenDirectionalButtons from './DirectionalButtons'\nimport GenFilterGroup from './FilterGroup'\nimport GenButton from './Button'\nimport GenLoadingSpinner from './LoadingSpinner'\nimport GenYMWDFilter from './YMWDFilter'\n\nimport { fullURL } from '../../src/url'\n\nfunction filterKeys(object, keys) {\n let result = {};\n for (let key in object)\n if (keys.indexOf(key) > -1)\n result[key] = object[key];\n return result;\n}\n\nconst historyToStore = [\n \"searchValue\",\n \"sortValue\",\n \"sortDirection\",\n \"pageNumber\",\n \"filterValues\",\n \"activeCheckboxFilters\"\n]\n\nfunction renderFilters(filters, filterValues, setStateFilterValues) {\n return filters.map((filter) => {\n let keyToUse = filter.key || filter.title\n\n let filterValueChangeFunction = (filterValue) => {\n let newFilterValues = filterValues\n newFilterValues[keyToUse] = filterValue\n setStateFilterValues(newFilterValues)\n }\n\n switch (filter.type) {\n case \"filter_group\":\n let filterChildren = renderFilters(filter.filters, filterValues, setStateFilterValues)\n\n return <GenFilterGroup\n key={keyToUse}\n title={filter.title}\n >\n {filterChildren}\n </GenFilterGroup>\n case 'checkbox':\n return <GenCheckboxFilter\n key={keyToUse}\n title={filter.title}\n value={filterValues[keyToUse]}\n onChange={filterValueChangeFunction}\n />\n case 'checkboxes':\n return <GenCheckboxesFilter\n key={keyToUse}\n title={filter.title}\n displayLikeFilterGroup={filter.displayLikeFilterGroup}\n options={filter.options}\n value={filterValues[keyToUse]}\n onChange={filterValueChangeFunction}\n />\n case 'ymwd':\n return <GenYMWDFilter\n key={keyToUse}\n title={filter.title}\n displayLikeFilterGroup={filter.displayLikeFilterGroup}\n value={filterValues[keyToUse]}\n onChange={filterValueChangeFunction}\n />\n default:\n return null\n }\n })\n}\n\nfunction gerenateFilterWhereQuery(filters, filterValues) {\n return filters.map((filter) => {\n let keyToUse = filter.key || filter.title\n\n switch (filter.type) {\n case \"filter_group\":\n return gerenateFilterWhereQuery(filter.filters, filterValues)\n case 'checkbox':\n switch (filter.dataType) {\n case \"MDATA\":\n if (filterValues[keyToUse]) {\n const mdataColumn = filter.mdataTable ? `${filter.mdataTable}.mdata` : \"mdata\"\n return [\"@>\", mdataColumn, {[filter.mdataKey || keyToUse]: filter.mdataValue}]\n }\n }\n break;\n case 'checkboxes':\n let values = filterValues[keyToUse]\n if (values && values.length > 0) {\n let whereArrays = values.map((value) => {\n switch (filter.dataType) {\n case \"MDATA\":\n if (filter.dataCount === \"MDATA_MANY\") {\n value = [value]\n }\n\n const mdataColumn = filter.mdataTable ? `${filter.mdataTable}.mdata` : \"mdata\"\n return [\"@>\", mdataColumn, {[keyToUse]: value}]\n case \"REGULAR\":\n return [\"=\", keyToUse, value]\n case \"BOOLEAN\":\n const opp = value ? \"is_not_null\" : \"is_null\"\n return [opp, keyToUse]\n }\n })\n\n if (whereArrays.length > 0) {\n whereArrays = [\"or\"].concat(whereArrays)\n }\n\n return whereArrays\n }\n break;\n case 'ymwd':\n let value = filterValues[keyToUse]\n if (value) {\n const mdataColumn = filter.mdataTable ? `${filter.mdataTable}.mdata` : \"mdata\"\n const mdataKey = `${mdataColumn}->>${keyToUse}::int`\n return ['and', ['>=', mdataKey, value.min], ['<=', mdataKey, value.max]]\n }\n break;\n }\n\n return null\n }).filter((v) => {return v !== null && v.length != 0})\n}\n\nexport default class GenSidebarList extends React.Component {\n // React.PropTypes\n // propTypes: {\n // // ids:\n // // notIds:\n // // itemsURL:\n // // search:\n // // sortOptions:\n // // filterOptions:\n // },\n //\n static defaultProps = {\n historyPersistance: false,\n defaultItemsPerPage: 12,\n shouldInfiniteScroll: true\n };\n\n constructor(props, context) {\n super(props, context);\n const defaults = {\n currentItems: null,\n itemsPerPage: props.defaultItemsPerPage,\n pageNumber: 0,\n gettingNewPage: false,\n itemsLastRecieved: null,\n searchValue: \"\",\n searchTimer: null,\n sortValue: null,\n sortDirection: null,\n activeCheckboxFilters: [],\n filterValues: {},\n infiniteScrollRandomKey: Math.floor(Math.random() * 1000000),\n showMobileFilters: false\n };\n\n const history = this.getHistoryState();\n\n this.state = {\n ...defaults,\n ...history\n };\n }\n\n componentDidMount() {\n this.getUpdatedList();\n\n if (this.props.shouldInfiniteScroll) {\n window.addEventListener(\"scroll\", this.checkVisibilityForInfiniteScroll);\n setTimeout(this.checkVisibilityForInfiniteScroll,500);\n }\n }\n\n componentWillUnmount() {\n if (this.state.timer) {\n clearTimeout(this.state.searchTimer);\n }\n\n window.removeEventListener(\"scroll\", this.checkVisibilityForInfiniteScroll);\n }\n\n handleToggleMobileFilters() {\n this.setState({showMobileFilters: !this.state.showMobileFilters})\n }\n\n /////////////\n // HISTORY //\n /////////////\n getHistoryState = () => {\n let state = history.state;\n if (state === null) {\n state = {};\n }\n return(filterKeys(state, historyToStore));\n };\n\n setHistoryState = () => {\n const currentState = history.state;\n const newPartial = filterKeys(this.state, historyToStore);\n const newState = {...currentState, ...newPartial};\n\n history.replaceState(newState, document.title);\n };\n\n ////////////\n // SEARCH //\n ////////////\n handleSearchChange = (e) => {\n this.setState({searchValue: e.target.value,\n currentItems: null,\n gettingNewPage: false,\n pageNumber: 0});\n\n if (this.state.searchTimer) { clearTimeout(this.state.searchTimer); }\n this.setState({searchTimer: setTimeout(this.updateSearchWithTimer, 1000)});\n };\n\n handleSearchKeyPress = (e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n };\n\n updateSearchWithTimer = () => {\n this.getUpdatedList();\n this.setState({timer: null});\n };\n\n //////////\n // SORT //\n //////////\n updateSort = (newSortValue, newSortDirection) => {\n this.setState({ sortValue: newSortValue,\n sortDirection: newSortDirection,\n currentItems: null,\n gettingNewPage: false,\n pageNumber: 0 }, this.getUpdatedList);\n };\n\n ////////////\n // FILTER //\n ////////////\n handleCheckboxFilterChange = (that, filterName) => {\n return(function(event){\n let isChecked = event.target.checked;\n\n let newActiveCheckboxFilters = that.state.activeCheckboxFilters;\n if (isChecked) {\n newActiveCheckboxFilters = newActiveCheckboxFilters.concat([filterName])\n } else {\n newActiveCheckboxFilters = newActiveCheckboxFilters.filter((val) => val != filterName)\n }\n\n that.setState({ activeCheckboxFilters: newActiveCheckboxFilters,\n currentItems: null,\n gettingNewPage: false,\n pageNumber: 0 }, that.getUpdatedList);\n });\n };\n\n handleFilterChange = (newFilterValues) => {\n this.setState({\n filterValues: newFilterValues,\n currentItems: null,\n gettingNewPage: false,\n pageNumber: 0\n }, this.getUpdatedList)\n };\n\n moreClick = () => {\n this.setState({ pageNumber: this.state.pageNumber + 1,\n gettingNewPage: true}, this.getAdditionalPage);\n };\n\n dataForQuery = () => {\n let data = {};\n\n if (this.props.ids) {\n data.ids = this.props.ids;\n }\n\n if (this.props.notIds) {\n data.not_ids = this.props.notIds;\n }\n\n if (this.state.searchValue && this.state.searchValue.trim() !== \"\") {\n data.search = this.state.searchValue;\n }\n\n if (this.state.sortValue) {\n data.sort_order = (this.state.sortDirection === \"descending\") ? \"DESC\" : \"ASC\";\n data.sort_by = this.state.sortValue;\n }\n\n\n if (this.state.itemsPerPage) {\n if (this.state.currentItems === null) {\n data.page = 0;\n data.per_page = (this.state.pageNumber + 1) * this.state.itemsPerPage;\n } else {\n data.page = this.state.pageNumber;\n data.per_page = this.state.itemsPerPage;\n }\n }\n\n let filterValues = [];\n this.state.activeCheckboxFilters.forEach((checkboxFilterName) => {\n filterValues.push(this.props.checkboxFilterOptions.find((filterOption) => filterOption[\"key\"] == checkboxFilterName)[\"filter\"])\n })\n\n if (filterValues.length > 0) {\n data.filters = filterValues;\n }\n\n let filterWhereQuery\n if (this.props.filters) {\n filterWhereQuery = gerenateFilterWhereQuery(\n this.props.filters,\n this.state.filterValues,\n )\n }\n\n if (filterWhereQuery && filterWhereQuery.length > 0) {\n data.where = JSON.stringify(filterWhereQuery)\n }\n\n return data;\n };\n\n getPage = (successCallback) => {\n const params = new URLSearchParams(this.dataForQuery()).toString();\n const urlWithParams = `${fullURL(this.props.itemsURL)}?${params}`;\n\n fetch(urlWithParams, {\n headers: {\n Accept: \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then((data) => { successCallback.bind(this)(data) })\n .catch(() => {});\n };\n\n getUpdatedList = () => {\n this.getPage(function(result) {\n if (this.props.historyPersistance) { this.setHistoryState(); }\n this.setState({currentItems: result,\n itemsLastRecieved: result.length});\n if (this.props.shouldInfiniteScroll) {\n setTimeout(this.checkVisibilityForInfiniteScroll,100);\n }\n });\n };\n\n getAdditionalPage = () => {\n this.getPage(function(result) {\n if (this.props.historyPersistance) { this.setHistoryState(); }\n this.setState({currentItems: (this.state.currentItems || []).concat(result),\n itemsLastRecieved: result.length,\n gettingNewPage: false});\n if (this.props.shouldInfiniteScroll) {\n setTimeout(this.checkVisibilityForInfiniteScroll,100);\n }\n });\n };\n\n checkVisibilityForInfiniteScroll = () => {\n let element = document.getElementById(this.state.infiniteScrollRandomKey)\n if (element) {\n let elementRect = element.getBoundingClientRect();\n let viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);\n let isVisible = !(elementRect.bottom < 0 || elementRect.top - viewHeight >= 0);\n\n if (isVisible) {\n this.moreClick()\n }\n }\n };\n\n handleCreateCategory = () => {\n let data = {};\n\n // Search\n if (this.state.searchValue && (this.state.searchValue !== \"\")) {\n data.search = this.state.searchValue;\n }\n\n // Filters\n let filterValues = [];\n this.state.activeCheckboxFilters.forEach((checkboxFilterName) => {\n filterValues.push(this.props.checkboxFilterOptions.find((filterOption) => filterOption[\"key\"] == checkboxFilterName)[\"filter\"])\n })\n\n if (filterValues.length > 0) {\n data.filters = filterValues;\n }\n\n let filterWhereQuery\n if (this.props.filters) {\n filterWhereQuery = gerenateFilterWhereQuery(\n this.props.filters,\n this.state.filterValues,\n )\n }\n\n if (filterWhereQuery && filterWhereQuery.length > 0) {\n data.where = JSON.stringify(filterWhereQuery)\n }\n\n let url = fullURL(\"/categories/new\") + \"?\" + (new URLSearchParams({search_filters: JSON.stringify(data)})).toString();\n\n return url;\n };\n\n render() {\n // SEARCH\n let searchBox = null\n if (this.props.search) {\n let searchBarClass = \"gen-list-search-bar\"\n if (this.props.searchPlaceHolder) {\n searchBarClass = searchBarClass + \" gen-list-search-bar-long\"\n }\n\n searchBox = <form key=\"search\" className={searchBarClass} role=\"search\">\n <input\n type=\"search\"\n placeholder={this.props.searchPlaceHolder || \"Search...\"}\n value={this.state.searchValue}\n onChange={this.handleSearchChange}\n onKeyPress={this.handleSearchKeyPress}\n />\n </form>;\n }\n\n // SORT\n let sortOptions = null\n if (this.props.sortOptions) {\n sortOptions = <GenDirectionalButtons\n key=\"sort-options\"\n buttons={this.props.sortOptions}\n selectedValue={this.state.sortValue}\n selectedDirection={this.state.sortDirection}\n onUpdate={this.updateSort}\n />\n }\n\n // Filters\n let filters=[]\n if (this.props.filters) {\n filters = renderFilters(\n this.props.filters,\n this.state.filterValues,\n this.handleFilterChange\n )\n }\n\n // Filters\n let checkboxFilters = null\n if (this.props.checkboxFilterOptions) {\n checkboxFilters = <div key=\"checkbox-filters\" className=\"gen-list-checkbox-filters mb-2\">\n {this.props.checkboxFilterOptions.map((filter) => {\n return <div key={filter.key}>\n <label>\n <input\n type=\"checkbox\"\n value={filter.key}\n checked={this.state.activeCheckboxFilters.includes(filter.key)}\n onChange={this.handleCheckboxFilterChange(this, filter.key)}\n />\n {filter.label}\n </label>\n </div>\n }, this)}\n </div>\n }\n\n let listItems\n let closeFiltersButton\n if (!this.state.currentItems) {\n closeFiltersButton = <GenButton\n name={<GenLoadingSpinner highlighted={true}/>}\n loading={this.state.loading}\n onClick={this.handleToggleMobileFilters.bind(this)}\n highlighted={true}\n />\n } else if (this.state.currentItems.length === 0) {\n listItems = <div key=\"no-items\" className=\"gen-list-no-items\"><h1>No Items</h1></div>\n closeFiltersButton = <GenButton\n name={\"No Matches\"}\n loading={this.state.loading}\n onClick={this.handleToggleMobileFilters.bind(this)}\n highlighted={true}\n alertColor={true}\n />\n } else {\n listItems = this.state.currentItems.map((item) => {\n return(this.props.itemView(item))\n })\n\n listItems = <div key=\"gen-list-items\" className={classNames(\"gen-list-items\", {\"gen-list-grid\": this.props.gridView})}>{listItems}</div>\n\n closeFiltersButton = <GenButton\n name={\"View Matches\"}\n loading={this.state.loading}\n onClick={this.handleToggleMobileFilters.bind(this)}\n highlighted={true}\n />\n }\n\n let activeFilterCount = this.state.activeCheckboxFilters.length +\n Object.values(this.state.filterValues).filter((val) => ![null, undefined].includes(val) && val.length !== 0).length\n\n let filterCount = \"\"\n if (activeFilterCount > 0) {\n filterCount = ` (${activeFilterCount} Active)`\n }\n\n return(\n <div className=\"gen-sidebar-list\">\n {!this.props.hideSidebar &&\n <div className=\"gen-list-controls\">\n <div className=\"gen-list-title\">\n <h1>{this.props.title}</h1>\n {<GenButton\n name={<span><i className=\"fa fa-filter\"></i>{filterCount}</span>}\n highlighted={true}\n loading={this.state.loading}\n onClick={this.handleToggleMobileFilters.bind(this)}\n />}\n </div>\n\n <div className=\"gen-list-search\">\n {searchBox}\n </div>\n\n <div className={classNames(\"gen-list-mobile-controls-panel\", \"fitlers\", {'active-mobile-panel': this.state.showMobileFilters})}>\n <div className=\"gen-list-mobile-controls-panel-header\">\n <h4>Filters</h4>\n {closeFiltersButton}\n </div>\n <div className=\"gen-list-mobile-controls-panel-body\">\n <div className=\"gen-list-controls-actions\">\n <div className=\"gen-list-controls-action\">\n {this.props.actions}\n </div>\n </div>\n\n <div className=\"gen-list-sort-2\">\n {sortOptions}\n </div>\n\n <div className=\"gen-list-filters\">\n {checkboxFilters}\n {filters}\n </div>\n </div>\n </div>\n\n {this.props.canCreateCategory && <GenButton\n className=\"absolute-create-category\"\n key=\"Create Filtered Category\"\n name=\"Create Filtered Category\"\n href={this.handleCreateCategory()}\n disabled={activeFilterCount == 0 && this.state.searchValue == \"\"}\n highlighted\n />}\n </div>\n }\n\n <div className=\"gen-list-list\">\n <div className=\"gen-list-before-list\">\n {this.props.beforeListContent}\n </div>\n\n <div className=\"gen-list-list\">\n {listItems}\n {!this.props.shouldDisableMoreButton &&\n <GenMore\n isSyncing={this.state.currentItems === null || this.state.gettingNewPage}\n itemsPerPage={this.state.itemsPerPage}\n lastPageLength={this.state.itemsLastRecieved}\n readListPage={this.moreClick}\n shouldInfiniteScroll={this.props.shouldInfiniteScroll}\n />\n }\n </div>\n\n <div className=\"gen-list-after-list\">\n {this.props.afterListContent}\n </div>\n </div>\n </div>\n );\n }\n}\n","import * as React from 'react';\n\n// TODO: CHANGE TO 'DESC '\ntype sortDirection = 'ascending' | 'descending'\n\ninterface GenDirectionButtonProps {\n disabled: boolean;\n value: string;\n title: string;\n}\n\ninterface GenDirectionalButtonsProps {\n buttons: Array<GenDirectionButtonProps>,\n disabled?: boolean,\n onUpdate: (value: string, direction: sortDirection) => void,\n selectedDirection: sortDirection,\n selectedValue: string,\n}\n\nexport default function GenDirectionalButtons({\n buttons,\n disabled,\n onUpdate,\n selectedDirection,\n selectedValue,\n}: GenDirectionalButtonsProps) {\n const onButtonClick = (value: string) => {\n let direction: sortDirection = 'ascending';\n if (selectedValue === value) {\n direction = selectedDirection === 'ascending' ? 'descending' : 'ascending';\n }\n\n onUpdate(value, direction);\n };\n\n const renderedButtons = buttons.map((button) => {\n let classes = \"gen-directional-button\";\n let spanClasses = \"bg-sky-600 hover:bg-sky-500\"\n\n if (disabled || button.disabled) {\n classes += \" disabled\";\n }\n\n if (button.value === selectedValue) {\n classes += \" selected \" + selectedDirection;\n } else {\n spanClasses = \"bg-white hover:bg-slate-100\"\n }\n\n // TODO: CHANGE TO BUTTON NOT DIV\n return(\n <div className={classes} key={button.value} onClick={() => onButtonClick(button.value)}>\n <span className={spanClasses}>{button.title}</span>\n </div>\n );\n })\n\n return (\n <div className=\"gen-directional-buttons\">\n {renderedButtons}\n </div>\n );\n}\n","import * as React from 'react';\n\ninterface DocExtraProps {\n editState: EditState;\n subtype: string;\n content: string;\n};\n\nexport default function DocExtra(props: DocExtraProps) {\n const {\n editState,\n subtype,\n content,\n } = props;\n\n if (!editState.isEditor) { return(null); }\n\n switch(subtype){\n case \"error\":\n return <p className=\"doc-extra doc-extra-error\" dangerouslySetInnerHTML={{__html: content}}/>;\n case \"warning\":\n return <p className=\"doc-extra doc-extra-warning\" dangerouslySetInnerHTML={{__html: content}}/>;\n default:\n return <p className=\"doc-extra doc-extra-unknown\" dangerouslySetInnerHTML={{__html: content}}/>;\n }\n}\n","/* global define */\n\n(function (root, pluralize) {\n /* istanbul ignore else */\n if (typeof require === 'function' && typeof exports === 'object' && typeof module === 'object') {\n // Node.\n module.exports = pluralize();\n } else if (typeof define === 'function' && define.amd) {\n // AMD, registers as an anonymous module.\n define(function () {\n return pluralize();\n });\n } else {\n // Browser global.\n root.pluralize = pluralize();\n }\n})(this, function () {\n // Rule storage - pluralize and singularize need to be run sequentially,\n // while other rules can be optimized using an object for instant lookups.\n var pluralRules = [];\n var singularRules = [];\n var uncountables = {};\n var irregularPlurals = {};\n var irregularSingles = {};\n\n /**\n * Sanitize a pluralization rule to a usable regular expression.\n *\n * @param {(RegExp|string)} rule\n * @return {RegExp}\n */\n function sanitizeRule(rule) {\n if (typeof rule === 'string') {\n return new RegExp('^' + rule + '$', 'i');\n }\n return rule;\n }\n\n /**\n * Pass in a word token to produce a function that can replicate the case on\n * another word.\n *\n * @param {string} word\n * @param {string} token\n * @return {Function}\n */\n function restoreCase(word, token) {\n // Tokens are an exact match.\n if (word === token) return token;\n\n // Lower cased words. E.g. \"hello\".\n if (word === word.toLowerCase()) return token.toLowerCase();\n\n // Upper cased words. E.g. \"WHISKY\".\n if (word === word.toUpperCase()) return token.toUpperCase();\n\n // Title cased words. E.g. \"Title\".\n if (word[0] === word[0].toUpperCase()) {\n return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase();\n }\n\n // Lower cased words. E.g. \"test\".\n return token.toLowerCase();\n }\n\n /**\n * Interpolate a regexp string.\n *\n * @param {string} str\n * @param {Array} args\n * @return {string}\n */\n function interpolate(str, args) {\n return str.replace(/\\$(\\d{1,2})/g, function (match, index) {\n return args[index] || '';\n });\n }\n\n /**\n * Replace a word using a rule.\n *\n * @param {string} word\n * @param {Array} rule\n * @return {string}\n */\n function replace(word, rule) {\n return word.replace(rule[0], function (match, index) {\n var result = interpolate(rule[1], arguments);\n if (match === '') {\n return restoreCase(word[index - 1], result);\n }\n return restoreCase(match, result);\n });\n }\n\n /**\n * Sanitize a word by passing in the word and sanitization rules.\n *\n * @param {string} token\n * @param {string} word\n * @param {Array} rules\n * @return {string}\n */\n function sanitizeWord(token, word, rules) {\n // Empty string or doesn't need fixing.\n if (!token.length || uncountables.hasOwnProperty(token)) {\n return word;\n }\n var len = rules.length;\n\n // Iterate over the sanitization rules and use the first one to match.\n while (len--) {\n var rule = rules[len];\n if (rule[0].test(word)) return replace(word, rule);\n }\n return word;\n }\n\n /**\n * Replace a word with the updated word.\n *\n * @param {Object} replaceMap\n * @param {Object} keepMap\n * @param {Array} rules\n * @return {Function}\n */\n function replaceWord(replaceMap, keepMap, rules) {\n return function (word) {\n // Get the correct token and case restoration functions.\n var token = word.toLowerCase();\n\n // Check against the keep object map.\n if (keepMap.hasOwnProperty(token)) {\n return restoreCase(word, token);\n }\n\n // Check against the replacement map for a direct word replacement.\n if (replaceMap.hasOwnProperty(token)) {\n return restoreCase(word, replaceMap[token]);\n }\n\n // Run all the rules against the word.\n return sanitizeWord(token, word, rules);\n };\n }\n\n /**\n * Check if a word is part of the map.\n */\n function checkWord(replaceMap, keepMap, rules, bool) {\n return function (word) {\n var token = word.toLowerCase();\n if (keepMap.hasOwnProperty(token)) return true;\n if (replaceMap.hasOwnProperty(token)) return false;\n return sanitizeWord(token, token, rules) === token;\n };\n }\n\n /**\n * Pluralize or singularize a word based on the passed in count.\n *\n * @param {string} word The word to pluralize\n * @param {number} count How many of the word exist\n * @param {boolean} inclusive Whether to prefix with the number (e.g. 3 ducks)\n * @return {string}\n */\n function pluralize(word, count, inclusive) {\n var pluralized = count === 1 ? pluralize.singular(word) : pluralize.plural(word);\n return (inclusive ? count + ' ' : '') + pluralized;\n }\n\n /**\n * Pluralize a word.\n *\n * @type {Function}\n */\n pluralize.plural = replaceWord(irregularSingles, irregularPlurals, pluralRules);\n\n /**\n * Check if a word is plural.\n *\n * @type {Function}\n */\n pluralize.isPlural = checkWord(irregularSingles, irregularPlurals, pluralRules);\n\n /**\n * Singularize a word.\n *\n * @type {Function}\n */\n pluralize.singular = replaceWord(irregularPlurals, irregularSingles, singularRules);\n\n /**\n * Check if a word is singular.\n *\n * @type {Function}\n */\n pluralize.isSingular = checkWord(irregularPlurals, irregularSingles, singularRules);\n\n /**\n * Add a pluralization rule to the collection.\n *\n * @param {(string|RegExp)} rule\n * @param {string} replacement\n */\n pluralize.addPluralRule = function (rule, replacement) {\n pluralRules.push([sanitizeRule(rule), replacement]);\n };\n\n /**\n * Add a singularization rule to the collection.\n *\n * @param {(string|RegExp)} rule\n * @param {string} replacement\n */\n pluralize.addSingularRule = function (rule, replacement) {\n singularRules.push([sanitizeRule(rule), replacement]);\n };\n\n /**\n * Add an uncountable word rule.\n *\n * @param {(string|RegExp)} word\n */\n pluralize.addUncountableRule = function (word) {\n if (typeof word === 'string') {\n uncountables[word.toLowerCase()] = true;\n return;\n }\n\n // Set singular and plural references for the word.\n pluralize.addPluralRule(word, '$0');\n pluralize.addSingularRule(word, '$0');\n };\n\n /**\n * Add an irregular word definition.\n *\n * @param {string} single\n * @param {string} plural\n */\n pluralize.addIrregularRule = function (single, plural) {\n plural = plural.toLowerCase();\n single = single.toLowerCase();\n irregularSingles[single] = plural;\n irregularPlurals[plural] = single;\n };\n\n /**\n * Irregular rules.\n */\n [\n // Pronouns.\n ['I', 'we'], ['me', 'us'], ['he', 'they'], ['she', 'they'], ['them', 'them'], ['myself', 'ourselves'], ['yourself', 'yourselves'], ['itself', 'themselves'], ['herself', 'themselves'], ['himself', 'themselves'], ['themself', 'themselves'], ['is', 'are'], ['was', 'were'], ['has', 'have'], ['this', 'these'], ['that', 'those'],\n // Words ending in with a consonant and `o`.\n ['echo', 'echoes'], ['dingo', 'dingoes'], ['volcano', 'volcanoes'], ['tornado', 'tornadoes'], ['torpedo', 'torpedoes'],\n // Ends with `us`.\n ['genus', 'genera'], ['viscus', 'viscera'],\n // Ends with `ma`.\n ['stigma', 'stigmata'], ['stoma', 'stomata'], ['dogma', 'dogmata'], ['lemma', 'lemmata'], ['schema', 'schemata'], ['anathema', 'anathemata'],\n // Other irregular rules.\n ['ox', 'oxen'], ['axe', 'axes'], ['die', 'dice'], ['yes', 'yeses'], ['foot', 'feet'], ['eave', 'eaves'], ['goose', 'geese'], ['tooth', 'teeth'], ['quiz', 'quizzes'], ['human', 'humans'], ['proof', 'proofs'], ['carve', 'carves'], ['valve', 'valves'], ['looey', 'looies'], ['thief', 'thieves'], ['groove', 'grooves'], ['pickaxe', 'pickaxes'], ['passerby', 'passersby']].forEach(function (rule) {\n return pluralize.addIrregularRule(rule[0], rule[1]);\n });\n\n /**\n * Pluralization rules.\n */\n [[/s?$/i, 's'], [/[^\\u0000-\\u007F]$/i, '$0'], [/([^aeiou]ese)$/i, '$1'], [/(ax|test)is$/i, '$1es'], [/(alias|[^aou]us|t[lm]as|gas|ris)$/i, '$1es'], [/(e[mn]u)s?$/i, '$1s'], [/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i, '$1'], [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1i'], [/(alumn|alg|vertebr)(?:a|ae)$/i, '$1ae'], [/(seraph|cherub)(?:im)?$/i, '$1im'], [/(her|at|gr)o$/i, '$1oes'], [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i, '$1a'], [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i, '$1a'], [/sis$/i, 'ses'], [/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i, '$1$2ves'], [/([^aeiouy]|qu)y$/i, '$1ies'], [/([^ch][ieo][ln])ey$/i, '$1ies'], [/(x|ch|ss|sh|zz)$/i, '$1es'], [/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i, '$1ices'], [/\\b((?:tit)?m|l)(?:ice|ouse)$/i, '$1ice'], [/(pe)(?:rson|ople)$/i, '$1ople'], [/(child)(?:ren)?$/i, '$1ren'], [/eaux$/i, '$0'], [/m[ae]n$/i, 'men'], ['thou', 'you']].forEach(function (rule) {\n return pluralize.addPluralRule(rule[0], rule[1]);\n });\n\n /**\n * Singularization rules.\n */\n [[/s$/i, ''], [/(ss)$/i, '$1'], [/(wi|kni|(?:after|half|high|low|mid|non|night|[^\\w]|^)li)ves$/i, '$1fe'], [/(ar|(?:wo|[ae])l|[eo][ao])ves$/i, '$1f'], [/ies$/i, 'y'], [/\\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i, '$1ie'], [/\\b(mon|smil)ies$/i, '$1ey'], [/\\b((?:tit)?m|l)ice$/i, '$1ouse'], [/(seraph|cherub)im$/i, '$1'], [/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i, '$1'], [/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i, '$1sis'], [/(movie|twelve|abuse|e[mn]u)s$/i, '$1'], [/(test)(?:is|es)$/i, '$1is'], [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1us'], [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i, '$1um'], [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i, '$1on'], [/(alumn|alg|vertebr)ae$/i, '$1a'], [/(cod|mur|sil|vert|ind)ices$/i, '$1ex'], [/(matr|append)ices$/i, '$1ix'], [/(pe)(rson|ople)$/i, '$1rson'], [/(child)ren$/i, '$1'], [/(eau)x?$/i, '$1'], [/men$/i, 'man']].forEach(function (rule) {\n return pluralize.addSingularRule(rule[0], rule[1]);\n });\n\n /**\n * Uncountable rules.\n */\n [\n // Singular words with no plurals.\n 'adulthood', 'advice', 'agenda', 'aid', 'aircraft', 'alcohol', 'ammo', 'analytics', 'anime', 'athletics', 'audio', 'bison', 'blood', 'bream', 'buffalo', 'butter', 'carp', 'cash', 'chassis', 'chess', 'clothing', 'cod', 'commerce', 'cooperation', 'corps', 'debris', 'diabetes', 'digestion', 'elk', 'energy', 'equipment', 'excretion', 'expertise', 'firmware', 'flounder', 'fun', 'gallows', 'garbage', 'graffiti', 'hardware', 'headquarters', 'health', 'herpes', 'highjinks', 'homework', 'housework', 'information', 'jeans', 'justice', 'kudos', 'labour', 'literature', 'machinery', 'mackerel', 'mail', 'media', 'mews', 'moose', 'music', 'mud', 'manga', 'news', 'only', 'personnel', 'pike', 'plankton', 'pliers', 'police', 'pollution', 'premises', 'rain', 'research', 'rice', 'salmon', 'scissors', 'series', 'sewage', 'shambles', 'shrimp', 'software', 'species', 'staff', 'swine', 'tennis', 'traffic', 'transportation', 'trout', 'tuna', 'wealth', 'welfare', 'whiting', 'wildebeest', 'wildlife', 'you', /pok[eé]mon$/i,\n // Regexes.\n /[^aeiou]ese$/i,\n // \"chinese\", \"japanese\"\n /deer$/i,\n // \"deer\", \"reindeer\"\n /fish$/i,\n // \"fish\", \"blowfish\", \"angelfish\"\n /measles$/i, /o[iu]s$/i,\n // \"carnivorous\"\n /pox$/i,\n // \"chickpox\", \"smallpox\"\n /sheep$/i].forEach(pluralize.addUncountableRule);\n return pluralize;\n});","\"use strict\";\n\nexports.__esModule = true;\nexports.isShallowEqual = isShallowEqual;\nexports.chunk = chunk;\nexports.groupBySortedKeys = groupBySortedKeys;\nexports.has = exports.makeArray = void 0;\nvar _warning = _interopRequireDefault(require(\"warning\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar makeArray = function makeArray(obj) {\n return obj == null ? [] : [].concat(obj);\n};\nexports.makeArray = makeArray;\nvar has = function has(o, k) {\n return o ? Object.prototype.hasOwnProperty.call(o, k) : false;\n};\nexports.has = has;\nfunction isShallowEqual(a, b) {\n if (a === b) return true;\n if (a instanceof Date && b instanceof Date) return +a === +b;\n if (typeof a !== 'object' && typeof b !== 'object') return a === b;\n if (typeof a !== typeof b) return false;\n if (a == null || b == null) return false; // if they were both null we wouldn't be here\n\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n for (var i = 0; i < keysA.length; i++) {\n if (!has(b, keysA[i]) || a[keysA[i]] !== b[keysA[i]]) return false;\n }\n return true;\n}\nfunction chunk(array, chunkSize) {\n var index = 0,\n length = array ? array.length : 0;\n var result = [];\n chunkSize = Math.max(+chunkSize || 1, 1);\n while (index < length) {\n result.push(array.slice(index, index += chunkSize));\n }\n return result;\n}\nfunction groupBySortedKeys(groupBy, data, keys) {\n var iter = typeof groupBy === 'function' ? groupBy : function (item) {\n return item[groupBy];\n }; // the keys array ensures that groups are rendered in the order they came in\n // which means that if you sort the data array it will render sorted,\n // so long as you also sorted by group\n\n keys = keys || [];\n process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(typeof groupBy !== 'string' || !data.length || has(data[0], groupBy), \"[React Widgets] You seem to be trying to group this list by a \" + (\"property `\" + groupBy + \"` that doesn't exist in the dataset items, this may be a typo\")) : void 0;\n return data.reduce(function (grps, item) {\n var group = iter(item);\n if (has(grps, group)) {\n grps[group].push(item);\n } else {\n keys.push(group);\n grps[group] = [item];\n }\n return grps;\n }, {});\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _default = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexports.default = _default;\nmodule.exports = exports[\"default\"];","import * as React from 'react';\n\nimport GenToggleButton from './ToggleButton'\n\ninterface GenToggleBarProps {\n onClick: (value: string) => void\n buttons: Array<{\n disabled: boolean;\n name: string;\n value: string;\n }>;\n value: string;\n disabled: boolean;\n}\n\nexport default function GenToggleBar(props: GenToggleBarProps) {\n const onClickFunction = (value: string) => {\n return () => { props.onClick(value) };\n };\n\n let toggleButtons = props.buttons.map((button) => {\n return (\n <GenToggleButton\n key={button.name}\n name={button.name}\n value={button.value === props.value}\n disabled={props.disabled || button.disabled}\n onClick={onClickFunction(button.value)} />\n );\n });\n\n return(\n <div className=\"gen-toggle-bar\">\n {toggleButtons}\n </div>\n );\n}\n","import React from 'react';\n\nexport default function DocumentSetDocumentRelationScheduleStatus(props) {\n const {\n showAfter,\n showUntil,\n mixedOverride,\n hideStatusText,\n hideOverride\n } = props\n\n let showAfterTime = showAfter && new Date(showAfter)\n let showUntilTime = showUntil && new Date(showUntil)\n\n let status = \"\"\n let className = \"\"\n\n if (mixedOverride) {\n status = hideStatusText ? \"\" : \"Mixed\"\n className = \"mixed-label\"\n } else if (showAfterTime && showAfterTime > new Date()) {\n status = `${(showAfterTime.getMonth() + 1)}/${showAfterTime.getDate()}/${showAfterTime.getFullYear()}`\n className = \"visible-after-label\"\n } else if (showUntilTime || hideOverride) {\n if (showUntilTime > new Date()) {\n status = `${(showUntilTime.getMonth() + 1)}/${showUntilTime.getDate()}/${showUntilTime.getFullYear()}`\n className = \"visible-until-label\"\n } else {\n status = hideStatusText ? \"\" : \"Hidden\"\n className = \"hidden-label\"\n }\n } else {\n status = hideStatusText ? \"\" : \"Visible\"\n className = \"visible-label\"\n }\n\n return <p className={className}>{status}</p>\n}\n","import * as R from \"ramda\"\n\nimport {\n generateItemsReducer,\n generateActions,\n itemFromStore,\n itemEditDataFromStore,\n itemLocalDataFromStore,\n} from 'reducers/item'\n\nconst itemType = \"documentSetDocumentState\"\nconst endpoint = \"document_set_document_states/\"\n\nexport const documentSetDocumentStatesReducer = generateItemsReducer(itemType)\n\nexport const {\n seedDocumentSetDocumentState,\n createDocumentSetDocumentState,\n readDocumentSetDocumentState,\n updateDocumentSetDocumentState,\n destroyDocumentSetDocumentState,\n setEditFieldsDocumentSetDocumentState,\n resetEditFieldsDocumentSetDocumentState,\n setLocalFieldsDocumentSetDocumentState,\n resetLocalFieldsDocumentSetDocumentState,\n} = generateActions(itemType, endpoint)\n\nexport const documentSetDocumentStateFromStore = (store, id) => itemFromStore(store, itemType, id, documentSetDocumentStateMergeFunction)\nexport const documentSetDocumentStateEditDataFromStore = (store, id) => itemEditDataFromStore(store, itemType, id)\nexport const documentSetDocumentStateLocalDataFromStore = (store, id) => itemLocalDataFromStore(store, itemType, id)\n\n\nexport function addDocumentSetDocumentState(id, state) {\n return (dispatch, getState) => {\n const newState = R.map(R.map(value => { return {value: value, updatedAt: Date.now()} }), state)\n\n let documentSetDocumentState = documentSetDocumentStateFromStore(id, getState())\n let editState = documentSetDocumentState?.editData?.state || {}\n\n dispatch(setEditFieldsDocumentSetDocumentState(id, {state: R.mergeDeepRight(editState, newState)}))\n dispatch(updateDocumentSetDocumentState(id))\n }\n}\n\nexport function resetDocumentSetDocumentState(id) {\n return (dispatch, getState) => {\n dispatch(setEditFieldsDocumentSetDocumentState(id, {startRetry: true}))\n dispatch(updateDocumentSetDocumentState(id))\n }\n}\n\nfunction documentSetDocumentStateMergeFunction(rawItem) {\n return R.mergeWithKey(\n (key, oldV, newV) => key === \"state\" ? R.mergeDeepRight(oldV, newV) : newV,\n rawItem.savedData || {},\n rawItem.editData || {}\n )\n}\n","// Selection\n// {\n// range: Range\n// uid: String\n// key: String\n// }\n\n\nexport function getDOMSelection() {\n let domSelection = window.getSelection()\n return domSelection.rangeCount > 0 ? domSelection : null\n}\n\nexport function getDOMRange() {\n let domSelection = getDOMSelection()\n return domSelection ? domSelection.getRangeAt(0) : null\n}\n\nexport function getDocRangeSelection() {\n return domRangeToDocRange(getDOMRange())\n}\n\nexport function clearAllDocRangeSelection() {\n if (getDocRangeSelection()) { window.getSelection().removeAllRanges() }\n}\n\nexport function domRangeToDocRange(domRange) {\n if (!domRange) { return null }\n\n let ancestorInlineTextNode = getAncestorInlineTextNodeFromChildNode(domRange.startContainer)\n if (!ancestorInlineTextNode) { return null }\n\n let start = 0\n let end = 0\n if (!(ancestorInlineTextNode.dataset.isempty === 'true')) {\n let startContainerOffset = findTextOffsetNodeInNode(ancestorInlineTextNode, domRange.startContainer)\n let endContainerOffset = findTextOffsetNodeInNode(ancestorInlineTextNode, domRange.endContainer)\n\n if (startContainerOffset === null || endContainerOffset === null) { return null }\n\n start = startContainerOffset + domRange.startOffset\n end = endContainerOffset + domRange.endOffset\n }\n\n return {\n range: {\n start: start,\n end: end\n },\n uid: ancestorInlineTextNode.dataset.uid,\n key: ancestorInlineTextNode.dataset.contentkey\n }\n}\n\n\nexport function areEqualRangeSelections(selection1, selection2) {\n return selection1 && selection2 &&\n selection1.uid === selection2.uid &&\n selection1.key === selection2.key &&\n selection1.range && selection2.range &&\n selection1.range.start === selection2.range.start &&\n selection1.range.end === selection2.range.end\n}\n\nfunction nodeTextLength(node) {\n return (node.nodeType === Node.TEXT_NODE) ? node.textContent.length : 0\n}\n\nfunction findTextOffsetNodeInNode(parentNode, childNode) {\n if (parentNode === childNode) {return 0}\n\n let newWalker = document.createTreeWalker(parentNode, NodeFilter.SHOW_ALL)\n\n let offset = 0\n while(newWalker.nextNode()) {\n let currentNode = newWalker.currentNode\n\n if (currentNode === childNode) {\n return offset\n } else {\n offset = offset + nodeTextLength(currentNode)\n }\n }\n\n return null\n}\n\nexport function isNodeInlineText(node) {\n return !!node.classList && node.classList.contains(\"doc-inline-text\")\n}\n\nexport function getAncestorInlineTextNodeFromChildNode(node) {\n if (!node) { return null }\n\n return isNodeInlineText(node) ? node : getAncestorInlineTextNodeFromChildNode(node.parentNode)\n}\n\nexport function getAncestorInlineTextNodeFromUIDAndContentKey(uid, key) {\n return document.querySelector('[data-uid=\"' + uid + '\"][data-contentkey=\"' + key + '\"].doc-inline-text')\n}\n\nexport function setDocSelection(docSelection) {\n let domRange = docSelectionToDOMRange(docSelection)\n if (domRange) { setDOMRange(domRange) }\n}\n\nexport function setDOMRange(domRange) {\n let domSelection = window.getSelection()\n domSelection.removeAllRanges()\n domSelection.addRange(domRange)\n}\n\nexport function docSelectionToDOMRange(docSelection) {\n if (!docSelection) { return null }\n\n let parentNode = getAncestorInlineTextNodeFromUIDAndContentKey(docSelection.uid, docSelection.key)\n\n if (parentNode) {\n let rangeStart = findNodeAndOffsetFromTextOffset(parentNode, docSelection.range.start)\n let rangeEnd = findNodeAndOffsetFromTextOffset(parentNode, docSelection.range.end)\n\n let domRange = document.createRange()\n domRange.setStart(...rangeStart)\n domRange.setEnd(...rangeEnd)\n return domRange\n }\n\n return null\n}\n\nfunction findNodeAndOffsetFromTextOffset(parentNode, textOffset): [any, any] {\n if (textOffset === 0) { return [parentNode, 0] }\n\n let newWalker = document.createTreeWalker(parentNode, NodeFilter.SHOW_ALL)\n\n let currentOffset = 0\n let currentNode\n while(newWalker.nextNode()) {\n currentNode = newWalker.currentNode\n\n let newOffset = currentOffset + nodeTextLength(currentNode)\n if (newOffset >= textOffset) {\n return [currentNode, textOffset - currentOffset]\n } else {\n currentOffset = newOffset\n }\n }\n\n if (currentNode) {\n // If range exceeds end of parentNode\n // place at end of last child\n return [currentNode, nodeTextLength(currentNode)]\n } else {\n // If parent had no nodes\n // Place at start of parent\n return [parentNode, 0]\n }\n}\n","export const DISPLAY_MODES = {\n EDIT: 'DISPLAY_MODE/EDIT',\n EDIT_FULL: 'DISPLAY_MODE/EDIT_FULL',\n FACULTY: 'DISPLAY_MODE/FACULTY',\n STUDENT: 'DISPLAY_MODE/STUDENT',\n}\n\nexport function displayTraitsBasedOnMode(displayMode) {\n let isUnlocked, isForcedUncollapsed, isEditDisplayMode\n switch (displayMode) {\n case DISPLAY_MODES.EDIT:\n return {\n isUnlocked: true,\n isForcedUncollapsed: false,\n isEditDisplayMode: true,\n }\n case DISPLAY_MODES.EDIT_FULL:\n return {\n isUnlocked: true,\n isForcedUncollapsed: true,\n isEditDisplayMode: true,\n }\n case DISPLAY_MODES.FACULTY:\n return {\n isUnlocked: true,\n isForcedUncollapsed: false,\n isEditDisplayMode: false,\n }\n case DISPLAY_MODES.STUDENT:\n default:\n return {\n isUnlocked: false,\n isForcedUncollapsed: false,\n isEditDisplayMode: false,\n }\n }\n}\n\nexport function displayModeDisplayName(displayMode) {\n return {\n [DISPLAY_MODES.EDIT]: \"Edit\",\n [DISPLAY_MODES.EDIT_FULL]: \"Edit (Full)\",\n [DISPLAY_MODES.STUDENT]: \"Student Preview\",\n [DISPLAY_MODES.FACULTY]: \"Faculty Preview\",\n }[displayMode]\n}\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n['ERR_BAD_OPTION_VALUE', 'ERR_BAD_OPTION', 'ECONNABORTED', 'ETIMEDOUT', 'ERR_NETWORK', 'ERR_FR_TOO_MANY_REDIRECTS', 'ERR_DEPRECATED', 'ERR_BAD_RESPONSE', 'ERR_BAD_REQUEST', 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function (code) {\n descriptors[code] = {\n value: code\n };\n});\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {\n value: true\n});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function (error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n AxiosError.call(axiosError, error.message, code, config, request, response);\n axiosError.name = error.name;\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n};\nmodule.exports = AxiosError;","import React from \"react\";\n\nimport classNames from \"classnames\";\n\nexport default function ActivityReviewSummary(props) {\n const {\n activity,\n activityUserState,\n } = props;\n\n return (\n activity.content.flat().map((node) => {\n let suggestedResponse;\n if (node.feedback) {\n suggestedResponse = (\n <div>\n <b>Correct Answer:</b>\n <div className=\"suggested-response\">\n {node.feedback}\n </div>\n </div>\n );\n }\n\n switch (node.type) {\n case \"paragraph\": {\n return (\n <p\n key={node.uid}\n dangerouslySetInnerHTML={{__html: node.content}}\n style={{marginBottom: \"20px\"}}\n />\n );\n }\n case \"textInput\": {\n return (\n <div key={node.uid} style={{marginBottom: \"20px\"}}>\n <b>Student Response:</b>\n <div className=\"student-response\">\n <p>{activityUserState && activityUserState.state[node.uid]?.value?.value}</p>\n </div>\n {suggestedResponse}\n </div>\n );\n }\n case \"multipleChoice\": {\n const answeredValues = node.content.map((multipleChoiceAnswer) => {\n const answered = activityUserState && activityUserState.state[multipleChoiceAnswer.uid]?.value?.value;\n\n return (\n <li\n key={multipleChoiceAnswer.uid}\n className={\n classNames(\n \"doc-multiple-choice-answer\",\n multipleChoiceAnswer.answer ? \"correct\" : \"incorrect\",\n {answered},\n )\n }\n >\n <span className=\"doc-multiple-choice-answer-outer\"><span className=\"doc-multiple-choice-answer-inner\" /></span>\n <span className=\"doc-multiple-choice-answer-title\">{multipleChoiceAnswer.content}</span>\n {(multipleChoiceAnswer.value || multipleChoiceAnswer.answer) && (\n <span style={{marginLeft: \"10px\"}}>\n {multipleChoiceAnswer.answer ? <i className=\"fa fa-check text-green-600\" /> : <i className=\"fa fa-times text-red-700\" /> }\n </span>\n )}\n </li>\n );\n });\n\n return (\n <div>\n <b>Student Response:</b>\n <div className=\"student-response\">\n <ul>\n {answeredValues}\n </ul>\n </div>\n {suggestedResponse}\n </div>\n );\n }\n default:\n return null;\n // TODO ADD ERROR\n }\n })\n );\n}\n","import * as React from 'react';\n\nimport GenCycleButton from './CycleButton'\n\ninterface GenToggleButtonProps {\n name: string,\n onName?: string,\n disabled?: boolean,\n value: boolean,\n onClick: () => void,\n}\n\nexport default function GenToggleButton(\n {\n name,\n onName,\n disabled,\n value,\n onClick,\n }: GenToggleButtonProps,\n) {\n return (\n <GenCycleButton\n states={[\n { \"button\" : {\n \"name\" : name,\n \"highlighted\" : false,\n \"disabled\" : false\n },\n \"value\" : false,\n \"nextValue\" : true\n },\n { \"button\" : {\n \"name\" : (onName || name),\n \"highlighted\" : true,\n \"disabled\" : false\n },\n \"value\" : true,\n \"nextValue\" : false\n }\n ]}\n disabled={disabled}\n currentValue={value}\n onClick={onClick} />\n );\n}\n","import * as React from 'react';\n\nimport GenButton from './Button'\n\ninterface GenCycleButtonProps<Value> {\n currentValue: Value;\n disabled?: boolean;\n onClick: (value: Value) => void;\n states: Array<{\n value: Value;\n nextValue: Value;\n button: {\n name: string;\n highlighted?: boolean;\n disabled?: boolean;\n }\n }>\n}\n\nexport default function GenCycleButton<Value>(props: GenCycleButtonProps<Value>) {\n let currentValue = props.currentValue;\n let maybeCurrentStateObject = props.states.filter(function(state){\n return(state.value === currentValue);\n })[0];\n\n const currentStateObject = maybeCurrentStateObject ? maybeCurrentStateObject : props.states[0];\n\n const internalOnClick = () => {\n props.onClick(currentStateObject.nextValue);\n };\n\n return (\n <GenButton\n name={currentStateObject.button.name}\n highlighted={currentStateObject.button.highlighted}\n disabled={currentStateObject.button.disabled || props.disabled}\n onClick={internalOnClick} />\n );\n}\n","import * as React from 'react';\n\nimport GenModal from '../../Gen/Modal'\nimport GenButton from '../../Gen/Button'\n\nimport AddToList from '../AddTo/List'\n\nimport { documentDisplayTitle } from '../../../src/document_display_title'\n\nconst ALLOWED_ROLE_NAMES = [\"Faculty\", \"Manager\", \"Partner\", \"ReelDx_Faculty\"]\nconst ADMIN_NAMES = [\"Manager\"]\n\ninterface DocAddToButtonProps {\n document: any;\n rootDocumentSetId: number;\n currentUser: any;\n currentRoleDefinition: any;\n categoryId?: number;\n};\n\ninterface DocAddToButtonState {\n modalOpen: Boolean;\n};\n\nexport default class AddToButton extends React.Component<DocAddToButtonProps, DocAddToButtonState> {\n state = {\n modalOpen: false,\n }\n\n handleToggleModalOpen = (e) => {\n this.setState({\n modalOpen: !this.state.modalOpen\n })\n }\n\n render() {\n const {\n document,\n rootDocumentSetId,\n currentUser,\n currentRoleDefinition,\n categoryId\n } = this.props\n\n const isUserAllowed = currentUser?.is_admin || ALLOWED_ROLE_NAMES.includes(currentRoleDefinition?.name)\n if (!isUserAllowed) { return null }\n\n const canAddToUnownedDocumentSets = currentUser?.is_admin || ADMIN_NAMES.includes(currentRoleDefinition?.name)\n\n return(<>\n <button title=\"Add to course\" className=\"bg-sky-600 hover:bg-sky-500 p-2 button add-to-button\" onClick={this.handleToggleModalOpen}>\n <i className=\"fa fa-plus\"></i>\n </button>\n\n <GenModal open={this.state.modalOpen}>\n <div className=\"gen-modal-panel add-to-modal\">\n <div className=\"add-to-button-modal-header\">\n <h1>Adding Case to Course</h1>\n\n <div className=\"gen-button-right-group\">\n <GenButton\n name=\"Close\"\n highlighted\n small\n onClick={this.handleToggleModalOpen}\n />\n </div>\n </div>\n\n <div className='case-info'>\n <img\n src={document.cover_image}\n alt={`Case ${document.id} Cover Image`}\n />\n\n <h5>{documentDisplayTitle(document)}</h5>\n </div>\n\n <AddToList\n rootDocumentSetId={rootDocumentSetId}\n documentId={document.id}\n canAddToUnownedDocumentSets={canAddToUnownedDocumentSets}\n userId={currentUser?.id}\n showsOwnershipCheckbox\n categoryId={categoryId}\n />\n </div>\n </GenModal>\n </>);\n }\n}\n","import * as React from 'react';\n\ninterface GenPanelHeaderProps {\n children: React.ReactElement;\n rightContent: React.ReactElement;\n}\n\nexport default function GenPanelHeader(\n {\n children,\n rightContent,\n }: GenPanelHeaderProps,\n) {\n return (\n <div className=\"gen-panel-header\">\n <div className=\"gen-panel-header-title\">\n <h1>{children}</h1>\n </div>\n <div className=\"gen-panel-header-right-content\">\n {rightContent}\n </div>\n </div>\n );\n}\n","import * as React from 'react';\nimport * as ReactDOM from \"react-dom\";\n\nimport * as R from 'ramda'\n\nimport classNames from 'classnames'\n\nimport DocActivity from './Activity'\nimport DocAudio from './Audio'\nimport DocBookmark from './Bookmark'\nimport DocButton from './Button'\nimport DocCheckbox from './Checkbox'\nimport DocCompletionNotice from './CompletionNotice'\nimport DocExtra from './Extra'\nimport DocImage from './Image'\nimport DocImageGallery from './ImageGallery'\nimport DocMatcher from './Matcher'\nimport DocMultipleChoice from './MultipleChoice'\nimport DocNumberedList from './NumberedList'\nimport DocOpenAiChat from './OpenAiChat'\nimport DocParagraph from './Paragraph'\nimport DocRatingBar from './RatingBar'\nimport DocRegularList from './RegularList'\nimport DocSliderBar from './SliderBar'\nimport DocTextInput from './TextInput'\nimport DocVideo from './Video'\n\nimport DocInlineText from './InlineText'\n\nimport DocSectionScheduleStatus from './SectionScheduleStatus'\n\nimport AddToButton from '../DocumentSetDocumentRelation/AddTo/Button'\n\nimport { documentDisplayNumber } from '../../src/document_display_title'\n\ninterface DocSectionProps extends SectionNode, EveryNodeArgs {\n currentGroup: CurrentGroup;\n aboveContent: any;\n headerColor: any;\n isRootSection: any;\n rightContent: any;\n scheduableSectionUIDs: any;\n titleBadge: any;\n reportButton: any;\n imagingTypes: Array<ImagingType>;\n};\n\ninterface DocSectionState {\n\n};\n\nexport default class DocSection extends React.Component<DocSectionProps, DocSectionState> {\n onHeaderClick() {\n const {\n collapsed,\n collapsible,\n inactiveBoolean,\n nested,\n uid,\n\n currentUser,\n displayState,\n } = this.props;\n\n if (inactiveBoolean) { return }\n\n if (!nested) {\n displayState.openSection(uid);\n } else if(collapsible) {\n if (collapsed) {\n currentUser.logEvent(uid, \"section_uncollapsed\");\n }\n\n currentUser.addState({[uid]: {\"collapsed\": !collapsed}});\n }\n };\n\n getSnapshotBeforeUpdate(prevProps, prevState) {\n if (prevProps.collapsed !== this.props.collapsed) {\n return (ReactDOM.findDOMNode(this) as Element)?.getBoundingClientRect();\n }\n\n return null\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (snapshot && prevProps.collapsed !== this.props.collapsed) {\n const prevBoundingClientRect = snapshot;\n const currBoundingClientRect = (ReactDOM.findDOMNode(this) as Element).getBoundingClientRect();\n if (this.props.collapsed && currBoundingClientRect) {\n if (prevBoundingClientRect.bottom < 0) {\n window.scrollBy(0, currBoundingClientRect.height - prevBoundingClientRect.height);\n } else if (prevBoundingClientRect.top < 0) {\n window.scrollBy(0, currBoundingClientRect.top);\n }\n }\n }\n }\n\n render() {\n const {\n aboveContent,\n classes,\n collapsed,\n collapsible,\n content,\n headerColor,\n inactive,\n inactiveBoolean,\n isRootSection,\n nested,\n rightContent,\n scheduableSectionUIDs,\n title,\n titleBadge,\n uid,\n reportButton,\n\n currentDocument,\n currentDocumentSetDocumentRelation,\n currentGroup,\n currentRoleDefinition,\n currentUser,\n currentVersion,\n displayState,\n editState,\n\n currentActivityUserState,\n } = this.props;\n\n\n let htmlClass = classNames(\n \"doc-section\",\n {\n \"nested\": nested,\n \"collapsible\": collapsible,\n \"collapsed\": collapsed,\n \"inactive\": inactiveBoolean\n }\n )\n\n let hideBadge\n if (currentDocumentSetDocumentRelation && scheduableSectionUIDs.includes(uid)) {\n let shouldHide = false\n let parseHideUntil: boolean | Date = false\n if (currentDocumentSetDocumentRelation.drawer_schedules[uid]) {\n let hideUntil = currentDocumentSetDocumentRelation.drawer_schedules[uid].hide_until\n parseHideUntil = (typeof hideUntil === 'string') ? new Date(hideUntil) : hideUntil\n shouldHide = (parseHideUntil instanceof Date) ? new Date() < new Date(hideUntil) : hideUntil\n }\n\n if (currentRoleDefinition.isLearner) {\n if (shouldHide) { return null }\n } else {\n hideBadge = <DocSectionScheduleStatus hideUntil={parseHideUntil}/>\n }\n }\n\n let headerClasses = classNames(\n \"doc-section-header\",\n {\"display-root\": isRootSection}\n )\n\n let mediaIcons = []\n if (classes) {\n classes.forEach((childClass) => {\n switch (childClass) {\n case \"extra_video\":\n mediaIcons.push(<i key=\"extra_video\" className=\"fa fa-video-camera\" style={{'paddingLeft': '5px'}} />);\n break;\n case \"extra_image\":\n mediaIcons.push(<i key=\"extra_image\" className=\"fa fa-image\" style={{'paddingLeft': '5px'}} />);\n break;\n case \"extra_audio\":\n mediaIcons.push(<i key=\"extra_audio\" className=\"fa fa-volume-up\" style={{'paddingLeft': '5px'}} />);\n break;\n default:\n }\n })\n }\n\n let coverImage;\n if (isRootSection && editState.isEditing && displayState.documentType !== \"Activity\") {\n coverImage = (\n <img\n className=\"doc-section-header-cover-image\"\n src={`${currentVersion.aws_folder_url}/compressed/images/${currentVersion.cover_image}`}\n onClick={a => editState.setCurrentlyEditing({menu: 'mediaMenu', mediaType: 'image', isCoverImage: true})}\n />\n )\n }\n\n let collapsedIndicator;\n let readerTags = {}\n if (collapsible) {\n readerTags = {\n role: 'button',\n 'aria-label': `Toggle ${title}`,\n 'aria-expanded': !collapsed,\n 'aria-disabled': inactive,\n }\n\n collapsedIndicator = (\n <span className=\"doc-section-collapsed-indicator\">\n <i className={`fa fa-caret-${collapsed ? \"right\" : \"down\"}`} />\n </span>\n );\n }\n\n const sectionHeader = (\n <div className={headerClasses} onClick={this.onHeaderClick.bind(this)} {...readerTags} style={headerColor && {'backgroundColor': headerColor}}>\n <h1 className=\"doc-section-header-title\">\n {collapsedIndicator}\n {coverImage}\n {isRootSection && currentDocument.type !== \"Activity\" && `${documentDisplayNumber(currentDocument)} | `}\n <DocInlineText content={title} uid={uid} contentKey=\"title\" editState={editState}/>\n {mediaIcons}\n </h1>\n {inactiveBoolean &&\n <div className=\"skill-badge bg-sky-600 mr-2\">\n <i className=\"fa fa-lock\"></i>\n </div>\n }\n {titleBadge &&\n <div className=\"doc-section-header-title-badge\">\n {titleBadge}\n </div>\n }\n {isRootSection && !editState.isEditor &&\n <AddToButton\n document={currentDocument}\n rootDocumentSetId={currentGroup.root_document_set_id}\n currentUser={currentUser}\n currentRoleDefinition={currentRoleDefinition}\n />\n }\n {(rightContent || hideBadge) &&\n <div className=\"doc-section-right-content\">\n {rightContent}\n {hideBadge}\n </div>\n }\n <DocBookmark {...this.props} />\n </div>\n )\n\n let visibleContent, renderedAboveContent, renderedReportButton\n if (!displayState.isForcedUncollapsed && ((!isRootSection && !nested) || collapsed || inactiveBoolean)) {\n visibleContent = [];\n } else {\n if (reportButton) {\n renderedReportButton = reportButton;\n }\n\n visibleContent = content.filter(node => node.invisible !== true);\n\n if (aboveContent) {\n renderedAboveContent = (\n <div className=\"doc-section-body-above-content\">\n {aboveContent}\n </div>\n )\n }\n }\n\n const passToEveryNode = {\n currentDocument: currentDocument,\n currentVersion: currentVersion,\n currentUser: currentUser,\n displayState: displayState,\n editState: editState,\n\n currentDocumentSetDocumentRelation: currentDocumentSetDocumentRelation,\n currentRoleDefinition: currentRoleDefinition,\n scheduableSectionUIDs: scheduableSectionUIDs,\n\n currentActivityUserState: currentActivityUserState,\n }\n\n let contentNodes = visibleContent.map((node, index) => {\n if (node.hasOwnProperty(\"inactive\") && node.inactive !== 0) {\n node.inactiveBoolean = node.inactive === 2;\n } else {\n node.inactiveBoolean = inactiveBoolean;\n }\n\n if (R.includes(node.type, ['section', 'image', 'video']) && index > 0) {\n node.imagingTypes = this.props.imagingTypes\n }\n\n let nodeContent = {\n key: node.uid,\n ...node,\n ...passToEveryNode,\n }\n\n switch(node.type){\n case \"section\":\n return <DocSection {...nodeContent} />\n case \"paragraph\":\n return <DocParagraph {...nodeContent} />\n case \"regularList\":\n return <DocRegularList {...nodeContent} />\n case \"numberedList\":\n return <DocNumberedList {...nodeContent} />\n case \"extra\":\n return <DocExtra {...nodeContent} />\n case \"image\":\n return <DocImage {...nodeContent} />\n case \"imageGallery\":\n return <DocImageGallery {...nodeContent} />\n case \"video\":\n return <DocVideo {...nodeContent} />\n case \"audio\":\n return <DocAudio {...nodeContent} />\n case \"checkbox\":\n return <DocCheckbox {...nodeContent} />\n case \"textInput\":\n return <DocTextInput {...nodeContent} />\n case \"sliderBar\":\n return <DocSliderBar {...nodeContent} />\n case \"ratingBar\":\n return <DocRatingBar {...nodeContent} />\n case \"multipleChoice\":\n return <DocMultipleChoice {...nodeContent} />\n case \"matcher\":\n return <DocMatcher {...nodeContent} />\n case \"button\":\n return <DocButton {...nodeContent} />\n case \"activity\":\n return <DocActivity {...nodeContent} />\n case \"openAiChat\":\n return <DocOpenAiChat {...nodeContent} />\n case \"completionNotice\":\n return <DocCompletionNotice {...nodeContent} />\n default:\n // TODO: ADD WARNING IF IN DISPLAY MORE\n return null\n }\n });\n\n const sectionBody = (\n <div className=\"doc-section-body relative\">\n {renderedAboveContent}\n {contentNodes}\n {renderedReportButton}\n </div>\n )\n\n return (\n <div className={htmlClass}>\n {sectionHeader}\n {/* {isRootSection && <DocCompletionNotice {...passToEveryNode} />} */}\n {sectionBody}\n </div>\n )\n }\n}\n","import * as React from 'react';\n\nimport * as R from 'ramda'\n\nimport {\n setNodeValueByUIDAndKey\n} from '../../src/doc_helpers'\n\nimport DocBookmark from './Bookmark'\nimport DocInlineText from './InlineText'\n\ninterface DocImageProps extends ImageNode, EveryNodeArgs {\n imagingType?: ImagingType;\n imagingTypes?: Array<ImagingType>;\n inGallery?: boolean;\n};\n\ninterface DocImageState {\n imageModalOn: boolean;\n};\n\nexport default class DocImage extends React.Component<DocImageProps, DocImageState> {\n state = {\n imageModalOn: false\n };\n\n imageURL() {\n switch (this.props.source) {\n case \"reeldx\":\n return `${this.props.currentVersion.aws_folder_url}/images/${this.props.uri}`\n case \"local\":\n default:\n return `${this.props.currentVersion.aws_folder_url}/compressed/images/${this.props.uri}`\n }\n };\n\n onImageEditClick() {\n if (this.props.editState.isEditing) {\n this.props.editState.setCurrentlyEditing({uid: this.props.uid, menu: 'mediaMenu', mediaType: 'image'});\n }\n }\n\n toggleImageModal() {\n this.setState({imageModalOn: !this.state.imageModalOn});\n };\n\n handleImagingTypeChange(e) {\n this.props.editState.modifyEditJSON(json =>\n setNodeValueByUIDAndKey(json, this.props.uid, 'imagingType', e.target.value)\n )\n }\n\n render() {\n let imageModal;\n if (this.state.imageModalOn) {\n imageModal = <div className=\"image-modal-outter\" onClick={this.toggleImageModal.bind(this)}>\n <div className=\"image-modal-inner\">\n <img src={this.imageURL()} alt={this.props.title}/>\n <i className=\"fa fa-compress doc-image-compress-button\"></i>\n </div>\n </div>;\n }\n\n let image =\n <figure className=\"doc-image\">\n <div onClick={this.toggleImageModal.bind(this)}>\n <img src={this.imageURL()} alt={this.props.title}/>\n <i className=\"fa fa-expand doc-image-expand-button\"></i>\n </div>\n <figcaption>\n <DocInlineText content={this.props.title} uid={this.props.uid} contentKey=\"title\" editState={this.props.editState}/>\n </figcaption>\n {imageModal}\n <DocBookmark {...this.props} />\n {this.props.editState.isEditing &&\n <>\n <i className=\"fa fa-cog bg-sky-600 p-2 doc-media-edit-button\" onClick={this.onImageEditClick.bind(this)}> Edit Image</i>\n {'imagingTypes' in this.props && R.length(this.props.imagingTypes) > 0 &&\n <select value={this.props.imagingType} onChange={this.handleImagingTypeChange.bind(this)} className=\"tag-select\">\n <option value=\"\">Select Imaging Type</option>\n {this.props.imagingTypes.map((t) => <option value={t} key={t}>{t}</option>)}\n </select>\n }\n </>\n }\n </figure>;\n\n if (this.props.inGallery) {\n return image\n } else {\n return (\n <div className=\"doc-image-single\">\n {image}\n </div>\n )\n }\n }\n}\n","import * as React from 'react';\n\nimport DocInlineText from './InlineText'\n\ninterface DocListItemProps extends ListItemNode, EveryNodeArgs {};\n\nexport default function DocListItem(props: DocListItemProps) {\n const {\n content,\n uid,\n editState,\n } = props\n\n return (\n <li className=\"doc-list-item\">\n <DocInlineText content={content} uid={uid} contentKey=\"content\" editState={editState}/>\n </li>\n );\n}\n","import * as React from 'react';\n\ninterface DocVideoJWPlayerProps {\n coverImageURL?: any;\n hasCaptions: any;\n onVideoCompleteEvent?: any;\n onVideoPlayEvent?: any;\n shouldLoop: any;\n videoURL: any;\n\n videoKey?: string; // TODO: GET RID OF?\n};\n\ninterface DocVideoJWPlayerState {\n\n};\n\ninterface JwPlayerSettings {\n androidhls: boolean,\n playlist: Array<{\n image: string;\n sources: Array<{\n file: string\n }>;\n tracks?: Array<{\n kind: \"captions\",\n file: string,\n label: string,\n }>\n }>\n repeat: boolean,\n}\n\nexport default class DocVideoJWPlayer extends React.Component<DocVideoJWPlayerProps, DocVideoJWPlayerState> {\n constructor(props) {\n super(props);\n\n this.jwPlayerId = `jw-player-${Math.floor(Math.random() * 1000000000)}`\n }\n\n private jwPlayerId: string;\n private jwPlayer: any;\n private startTime: any;\n\n componentDidMount() {\n const {\n coverImageURL,\n hasCaptions,\n onVideoPlayEvent,\n shouldLoop=false,\n videoURL,\n } = this.props\n\n let jwplayerSettings: JwPlayerSettings = {\n \"androidhls\": true,\n \"playlist\": [{\n \"image\": coverImageURL || videoURL + \"/thumbnail_00002.png\",\n \"sources\" : [{\n \"file\": videoURL + \"/index.m3u8\"\n },{\n \"file\": videoURL + \"/index.mpd\"\n },{\n \"file\": videoURL + \"/main.mp4\"\n }]\n }],\n \"repeat\": shouldLoop\n }\n\n if (hasCaptions) {\n jwplayerSettings.playlist[0].tracks = [{\n \"kind\": \"captions\",\n \"file\": videoURL + \"/captions.vtt\",\n \"label\": \"English\"\n }]\n }\n\n this.jwPlayer = jwplayer(this.jwPlayerId).setup(jwplayerSettings);\n this.startTime = this.jwPlayer.getPosition()\n\n if (onVideoPlayEvent) {\n this.jwPlayer.on('play', this.handleJWPlayerPlay.bind(this));\n this.jwPlayer.on('pause', this.handleJWPlayerPause.bind(this));\n this.jwPlayer.on('complete', this.handleJWPlayerComplete.bind(this));\n }\n }\n\n componentWillUnmount() {\n const {\n onVideoPlayEvent,\n } = this.props\n\n if (onVideoPlayEvent && this.jwPlayer) {\n this.jwPlayer.off('play', this.handleJWPlayerPlay.bind(this));\n this.jwPlayer.off('pause', this.handleJWPlayerPause.bind(this));\n this.jwPlayer.off('complete', this.handleJWPlayerComplete.bind(this));\n }\n }\n\n handleJWPlayerPlay = () => {\n this.startTime = this.jwPlayer.getPosition()\n };\n\n handleJWPlayerPause = () => {\n this.props.onVideoPlayEvent(this.jwPlayerTimeDiff());\n this.startTime = this.jwPlayer.getPosition()\n };\n\n handleJWPlayerComplete = () => {\n this.props.onVideoPlayEvent(this.jwPlayerTimeDiff());\n this.startTime = this.jwPlayer.getPosition()\n\n if (this.props.onVideoCompleteEvent) {\n this.props.onVideoCompleteEvent();\n }\n };\n\n jwPlayerTimeDiff = () => {\n let timeDiff = this.jwPlayer.getPosition() - this.startTime;\n return (timeDiff > 0 ? timeDiff : 0);\n };\n\n render() {\n return <div>\n <div id={this.jwPlayerId} className=\"video-wrapper jw-player\"/>\n </div>\n }\n}\n","import * as React from 'react';\n\nimport GenLoadingSpinner from './LoadingSpinner'\n\ninterface GenPostButtonType {\n disabled?: boolean;\n highlighted?: boolean;\n small?: boolean;\n loading?: boolean;\n url: string;\n data: {[x: string]: unknown};\n name: string;\n}\n\nexport default function GenPostButton(\n {\n disabled,\n highlighted,\n small,\n loading,\n url,\n data,\n name,\n }: GenPostButtonType,\n) {\n let classes = \"gen-button\";\n\n if (disabled) {\n classes += \" disabled\";\n }\n\n if (highlighted) {\n classes += \" highlighted\";\n }\n\n if (small) {\n classes += \" small\";\n }\n\n if (loading) {\n return(\n <div className={classes}>\n <span className=\"button-name\"><GenLoadingSpinner/></span>\n </div>\n );\n } else {\n return (\n <div className={classes}>\n <form action={url} method='POST'>\n <input type='hidden' name='authenticity_token' value={(document.head.querySelector(\"meta[name='csrf-token']\") as HTMLMetaElement).content} />\n {Object.keys(data).map((key, index) => {\n return <input type='hidden' key={key} name={key} value={JSON.stringify(data[key])} />;\n })}\n <input key='submit' type='submit' value={name} />\n </form>\n </div>\n );\n }\n}\n","import * as React from 'react';\n\ntype SortOrder = \"DESC\" | \"ASC\"\n\ninterface GenTableDisplayProps<Item> {\n sort_by: string;\n sort_order: SortOrder;\n setListSort: (value: string, direction: SortOrder) => void;\n resetListPages: () => void;\n readListPage: () => void;\n selected: Array<Item>;\n setListSelected: (selected: Array<Item>) => void;\n listData: Array<Item>;\n columns: Array<{\n calculated_class_name: (item: Item) => string;\n calculated_value: (item: Item) => string;\n center_column_header: boolean;\n column_width: number;\n key: string;\n sort_column: string;\n title: string;\n }>;\n}\n\nexport default function GenTableDisplay<Item extends {id: number}>(\n {\n sort_by,\n sort_order,\n setListSort,\n resetListPages,\n readListPage,\n selected,\n setListSelected,\n columns,\n listData,\n }: GenTableDisplayProps<Item>,\n) {\n const updateSort = (newSortValue: string) => {\n if (!newSortValue) { return null }\n\n let newSortDirection: SortOrder = sort_by === newSortValue && sort_order === 'ASC' ? 'DESC' : 'ASC'\n\n setListSort(newSortValue, newSortDirection)\n resetListPages()\n readListPage()\n };\n\n const onItemClick = (item: Item) => {\n const isSelected = selected.some(sItem => sItem.id === item.id);\n let newSelectedItems = isSelected ? selected.filter(sItem => sItem.id !== item.id) : selected.concat([item])\n setListSelected(newSelectedItems)\n };\n\n let tableHeaderCells = columns.map((column) => {\n let orderClass\n let className = \"\"\n if (column.center_column_header) {\n className = className + \" edit-documents-access-table-centered-header\"\n }\n\n if (column.sort_column) {\n className = className + \" sort_cell\"\n if (column.sort_column !== sort_by) {\n orderClass = \"fa fa-sort\"\n } else if (sort_order === 'ASC') {\n orderClass = \"fa fa-sort-asc\"\n } else {\n orderClass = \"fa fa-sort-desc\"\n }\n }\n\n if (column.column_width) {\n className = className + ` ${column.column_width}-column-size`\n }\n\n return <td key={column.key || column.title} onClick={() => {updateSort(column.sort_column)}} className={className}>\n {column.title}\n <span> <i className={orderClass}></i></span>\n </td>\n })\n\n let tableHeader = <tr key='table-header'>\n <td key=\"select-box\" className=\"select-box\"></td>\n {tableHeaderCells}\n </tr>\n\n let itemRows = (listData || []).map(item => {\n let cells = columns.map(column => {\n let className = (column.calculated_class_name) ? column.calculated_class_name(item) : \"\"\n return <td key={column.key || column.title} className={className}>{column.calculated_value(item)}</td>\n })\n\n let isSelected = selected.some(sItem => sItem.id === item.id)\n\n return <tr key={item.id} className={isSelected ? \"bg-sky-100\" : \"\"}>\n <td key=\"select-box\" className=\"select-box\">\n <input\n type=\"checkbox\"\n checked={isSelected}\n onChange={() => {onItemClick(item)}} />\n </td>\n {cells}\n </tr>\n })\n\n return <div className=\"gen-table\">\n <table>\n <thead>\n {tableHeader}\n </thead>\n <tbody>\n {itemRows}\n </tbody>\n </table>\n </div>\n}\n","export function sortBasedOnType<T extends string | number>(a: T, b: T) {\n if (typeof a === \"string\" && typeof b === \"string\") {\n return a.localeCompare(b);\n } else if (a > b) {\n return 1;\n } else if (a < b) {\n return -1;\n } else {\n return 0;\n }\n}\n","export function areAllSubstringsInValues(substrings: Array<string>, values: Array<string>) {\n return substrings.every((substring) => values.some((value) => value.toString().toLowerCase().indexOf(substring) >= 0));\n}\n","import React from \"react\";\n\nimport GenLoadingSpinner from \"./LoadingSpinner\";\nimport GenToggleBar from \"./ToggleBar\";\n\nimport { sortBasedOnType } from \"../../src/sort_utilities\";\nimport { areAllSubstringsInValues } from \"../../src/string_utilities\";\n\nfunction findInSummary(summary, grouping, key) {\n return grouping ? summary[grouping]?.[key] : summary[key];\n}\n\nexport default class GenGroupableTable extends React.Component {\n constructor(props) {\n super(props);\n\n let defaultReport = props.reports[0];\n if (props.defaultReportKey) {\n defaultReport = props.reports.find((report) => report.key === props.defaultReportKey);\n }\n\n let collapsedRows = [];\n if (props.collapsedRowIds) {\n collapsedRows = props.collapsedRowIds;\n }\n\n const defaults = {\n currentReport: defaultReport,\n currentGrouping: defaultReport.groupings && defaultReport.groupings[0].key,\n searchValue: \"\",\n sortKey: null,\n sortDirection: null,\n collapsed: collapsedRows,\n loading: true,\n };\n this.state = defaults;\n\n this.setState = this.setState.bind(this);\n }\n\n componentDidMount() {\n this.getData();\n }\n\n getData = () => {\n const {\n currentReport,\n } = this.state;\n\n fetch(currentReport.dataUrl, {\n headers: {\n Accept: \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then((data) => { this.setState(data, this.sortAndFilterData); })\n .catch(() => { alert(\"There was an issue loading the report. Please try again.\"); });\n };\n\n orderedSettings() {\n const {\n currentReport,\n currentGrouping,\n } = this.state;\n\n return currentReport.settings.reduce((acc, setting) => {\n if (setting.grouping === currentGrouping) {\n acc[0].push(setting);\n } else {\n acc[1].push(setting);\n }\n\n return acc;\n }, [[], []]).flat();\n }\n\n groupTypes() {\n const {\n currentGrouping,\n } = this.state;\n\n const {currentReport} = this.state;\n\n if (currentGrouping === currentReport.groupings[0].key) {\n return {\n groupItemType: currentReport.groupings[0].key,\n unitItemType: currentReport.groupings[1].key,\n };\n } else {\n return {\n groupItemType: currentReport.groupings[1].key,\n unitItemType: currentReport.groupings[0].key,\n };\n }\n }\n\n sortAndFilterFlatData() {\n const {\n currentReport,\n searchValue,\n sortKey,\n usage_lookup_by_user_id,\n users,\n } = this.state;\n\n let items = users.map((user) => (\n {\n ...user,\n ...usage_lookup_by_user_id[user.id],\n }\n ));\n\n // FILTER\n if (searchValue && searchValue.trim() !== \"\") {\n const searchWords = searchValue.toLowerCase().split(\" \").filter((word) => word !== \"\");\n const searchableSettings = currentReport.settings.filter((setting) => setting.searchable);\n\n items = items.filter((item) => {\n const itemSearchableValues = searchableSettings.map((setting) => item[setting.key]);\n return areAllSubstringsInValues(searchWords, itemSearchableValues);\n });\n }\n\n // SORT\n if (sortKey) {\n items = items.sort((a, b) => sortBasedOnType(a[sortKey], b[sortKey]));\n }\n\n this.setState({\n processedItems: items,\n loading: false,\n });\n }\n\n sortAndFilterGroupedData() {\n const {\n currentGrouping,\n searchValue,\n sortDirection,\n sortGroup,\n sortKey,\n usage_lookup_by_user_id_and_document_id,\n } = this.state;\n\n const { groupItemType, unitItemType } = this.groupTypes();\n\n const {\n [`${groupItemType}s`]: groupItems,\n [`${unitItemType}s`]: unitItems,\n } = this.state;\n\n if (!groupItems || !unitItems) { return; }\n\n const orderedSettings = this.orderedSettings();\n\n // CREATE SUMMARIES\n let groupedSummaries = groupItems.map((groupItem) => {\n const headerSummary = {\n [groupItemType]: groupItem,\n };\n\n const unitSummaries = unitItems.map((unitItem) => {\n const usage = groupItemType === \"document\"\n ? usage_lookup_by_user_id_and_document_id[unitItem.id][groupItem.id]\n : usage_lookup_by_user_id_and_document_id[groupItem.id][unitItem.id];\n\n if (usage) {\n return {\n [groupItemType]: groupItem,\n [unitItemType]: unitItem,\n ...usage,\n };\n } else {\n return null;\n }\n }).filter((s) => s);\n\n return {\n headerSummary,\n unitSummaries,\n };\n });\n\n // FILTER\n if (searchValue && searchValue.trim() !== \"\") {\n const searchWords = searchValue.toLowerCase().split(\" \").filter((word) => word !== \"\");\n const groupSettings = orderedSettings.filter((setting) => setting.grouping === groupItemType && setting.searchable);\n const notGroupSettings = orderedSettings.filter((setting) => setting.grouping !== groupItemType && setting.searchable);\n\n groupedSummaries = groupedSummaries.map((groupedSummary) => {\n let {unitSummaries} = groupedSummary;\n\n const groupSearchValues = groupSettings.map((setting) => groupedSummary.headerSummary[setting.grouping][setting.key]);\n if (!areAllSubstringsInValues(searchWords, groupSearchValues)) {\n unitSummaries = unitSummaries.filter((unitSummary) => {\n const notGroupSearchValues = notGroupSettings.map((setting) => (setting.grouping ? unitSummary[setting.grouping][setting.key] : unitSummary[setting.key]));\n return areAllSubstringsInValues(searchWords, notGroupSearchValues);\n });\n }\n\n return {\n ...groupedSummary,\n unitSummaries,\n };\n }).filter((groupedSummary) => groupedSummary.unitSummaries.length > 0);\n }\n\n // SORT\n if (sortKey) {\n if (sortGroup === currentGrouping) {\n groupedSummaries = groupedSummaries.sort((a, b) => sortBasedOnType(findInSummary(a.headerSummary, sortGroup, sortKey), findInSummary(b.headerSummary, sortGroup, sortKey)));\n if (sortDirection === \"descending\") { groupedSummaries.reverse(); }\n } else {\n groupedSummaries.forEach((groupSummary) => {\n groupSummary.unitSummaries = groupSummary.unitSummaries.sort((a, b) => sortBasedOnType(findInSummary(a, sortGroup, sortKey), findInSummary(b, sortGroup, sortKey)));\n if (sortDirection === \"descending\") { groupSummary.unitSummaries.reverse(); }\n });\n }\n }\n\n this.setState({\n processedItems: groupedSummaries,\n loading: false,\n });\n }\n\n sortAndFilterData = () => {\n const {\n currentReport,\n } = this.state;\n\n if (currentReport.groupings) {\n return this.sortAndFilterGroupedData();\n } else {\n return this.sortAndFilterFlatData();\n }\n };\n\n toggleCollapseOnClick(value) {\n const {\n collapsed,\n } = this.state;\n\n if (collapsed.includes(value)) {\n return (() => {\n this.setState({\n collapsed: collapsed.filter((oldValue) => oldValue !== value),\n });\n });\n } else {\n return (() => {\n this.setState({\n collapsed: collapsed.concat([value]),\n });\n });\n }\n }\n\n renderFlatRows() {\n const {\n currentReport,\n processedItems,\n } = this.state;\n\n const currentReportSettings = currentReport.settings;\n const rows = processedItems.map((item) => (\n <tr key={item.id}>\n {currentReportSettings.map((setting) => {\n let value = item[setting.key];\n\n if (setting.displayFunction) {\n value = setting.displayFunction(value, item, this.setState);\n }\n\n return <th key={setting.key} style={{textAlign: (setting.align || \"left\")}}>{value}</th>;\n })}\n </tr>\n ));\n\n return (rows);\n }\n\n renderGroupedRows() {\n const {\n processedItems,\n collapsed,\n } = this.state;\n\n const orderedSettings = this.orderedSettings();\n\n const { groupItemType, unitItemType } = this.groupTypes();\n\n const rows = processedItems.map((groupSummary) => {\n const groupItemId = groupSummary.headerSummary[groupItemType].id;\n\n const isClosed = collapsed.includes(groupItemId);\n\n const headerRow = (\n <tr key={groupItemId}>\n <th key=\"collapse\" onClick={this.toggleCollapseOnClick(groupItemId)}>\n {isClosed\n ? <i className=\"fa fa-plus-square report-collapse-button\" />\n : <i className=\"fa fa-minus-square report-collapse-button\" />}\n </th>\n {orderedSettings.map((setting) => {\n const value = findInSummary(groupSummary.headerSummary, setting.grouping, setting.key);\n\n return <th key={setting.key} style={{textAlign: (setting.align || \"left\")}}>{value}</th>;\n })}\n </tr>\n );\n\n let subRows = [];\n if (!isClosed) {\n subRows = groupSummary.unitSummaries.map((unitSummary) => {\n const unitItemId = unitSummary[unitItemType].id;\n\n return (\n <tr key={`${groupItemId}---${unitItemId}`}\n id={`row-${groupItemId}-${unitItemId}`}\n data-reviewable-row>\n <td key=\"collapse\" />\n {orderedSettings.map((setting) => {\n let value = findInSummary(unitSummary, setting.grouping, setting.key);\n\n if (setting.displayFunction) {\n value = setting.displayFunction(value, unitSummary, this.setState);\n }\n\n return <td key={setting.key} style={{textAlign: (setting.align || \"left\")}}>{value}</td>;\n })}\n </tr>\n );\n });\n }\n\n return [\n headerRow,\n ...subRows,\n ];\n }).flat();\n\n return (rows);\n }\n\n renderRows() {\n const {\n currentReport,\n } = this.state;\n\n if (currentReport.groupings) {\n return this.renderGroupedRows();\n } else {\n return this.renderFlatRows();\n }\n }\n\n onHeaderClick(newSortGroup, newSortKey) {\n const {\n sortGroup,\n sortKey,\n sortDirection,\n } = this.state;\n\n const newSortDirection = sortGroup === newSortGroup\n && sortKey === newSortKey\n && sortDirection === \"ascending\"\n ? \"descending\" : \"ascending\";\n\n this.setState({\n sortGroup: newSortGroup,\n sortKey: newSortKey,\n sortDirection: newSortDirection,\n loading: true,\n }, this.sortAndFilterData);\n }\n\n onSearchChange = e => {\n if (this.searchTimer) {\n clearTimeout(this.searchTimer);\n }\n\n this.searchTimer = setTimeout(this.sortAndFilterData, 1000);\n\n this.setState({\n searchValue: e.target.value,\n loading: true,\n });\n };\n\n onReportTypeButtonsClick = value => {\n const {\n reports,\n } = this.props;\n\n const newReport = reports.find((report) => report.key === value);\n\n this.setState({\n currentReport: newReport,\n currentGrouping: newReport.groupings && newReport.groupings[0].key,\n collapsed: [],\n loading: true,\n }, () => { setTimeout(this.getData, 200); });\n };\n\n onGroupByButtonsClick = value => {\n this.setState({\n currentGrouping: value,\n collapsed: [],\n loading: true,\n }, this.sortAndFilterData);\n };\n\n render() {\n const {\n reports,\n } = this.props;\n\n const {\n currentReport,\n currentGrouping,\n loading,\n processedItems,\n reviewRow,\n searchValue,\n sortDirection,\n sortGroup,\n sortKey,\n } = this.state;\n\n // Order Columns\n const orderedSettings = this.orderedSettings();\n\n // HeaderCells\n const headerCells = orderedSettings.map((setting) => {\n const isSorted = sortGroup === setting.grouping && sortKey === setting.key;\n return (\n <th\n key={setting.key}\n onClick={() => this.onHeaderClick(setting.grouping, setting.key)}\n style={{width: `${setting.width || 20}px`, textAlign: (setting.align || \"left\")}}\n >\n {setting.title} {isSorted && <i className={`fa fa-angle-${sortDirection === \"ascending\" ? \"down\" : \"up\"}`} />}\n </th>\n );\n });\n\n let rows;\n let renderedLoading;\n if (loading) {\n renderedLoading = <GenLoadingSpinner key=\"loading-spinner\" />;\n } else {\n rows = this.renderRows();\n }\n\n const reportKeyButtons = reports.map((report) => ({name: report.name, value: report.key}));\n\n let reviewModal;\n if (currentReport.reviewModal && reviewRow) {\n const ReviewModalComponent = currentReport.reviewModal;\n reviewModal = (\n <ReviewModalComponent\n reviewRow={reviewRow}\n processedItems={processedItems}\n closeReviewRow={() => {\n this.setState({\n reviewRow: null,\n });\n }}\n reloadData={() => {\n this.setState({\n loading: true,\n }, this.getData);\n }}\n selectNewReviewRow={(newReviewRow) => {\n this.setState({\n reviewRow: newReviewRow,\n });\n }}\n {...(currentReport.extraModalData || {})}\n />\n );\n }\n\n return (\n <div className=\"panel-group\">\n <div className=\"gen-list-control-panel\">\n <form className=\"gen-list-search-bar\" role=\"search\">\n <input\n type=\"search\"\n placeholder=\"Search...\"\n value={searchValue}\n onChange={this.onSearchChange}\n onKeyPress={(e) => { if (e.key === \"Enter\") { e.preventDefault(); } }}\n />\n </form>\n\n {!!currentReport.groupings\n && (\n <div className=\"document-set-report-group-controls\">\n <span className=\"document-set-report-group-controls-label\">Group By: </span>\n <GenToggleBar\n buttons={currentReport.groupings.map((grouping) => ({name: grouping.name, value: grouping.key}))}\n value={currentGrouping}\n onClick={this.onGroupByButtonsClick}\n />\n {currentReport.exportUrl && <a className=\"gen-button export-link\" href={currentReport.exportUrl}><span className=\"button-name\">Export</span></a>}\n </div>\n )}\n\n <div className=\"document-set-report-group-controls\">\n <span className=\"document-set-report-group-controls-label\">Report Type: </span>\n <GenToggleBar buttons={reportKeyButtons} value={currentReport.key} onClick={this.onReportTypeButtonsClick} />\n </div>\n </div>\n <div className=\"panel\" style={{overflowX: \"auto\"}}>\n <table className=\"document-set-report-table\">\n <thead key=\"table-head\">\n <tr>\n {!!currentReport.groupings && <th key=\"collapse\" style={{width: \"20px\"}} />}\n {headerCells}\n </tr>\n </thead>\n <tbody>\n {rows}\n </tbody>\n </table>\n {renderedLoading}\n </div>\n {reviewModal}\n </div>\n );\n }\n}\n","import * as R from \"ramda\"\n\nimport {\n generateItemsReducer,\n generateActions,\n itemFromStore,\n itemEditDataFromStore,\n itemLocalDataFromStore\n} from \"reducers/item\"\n\nconst itemType = \"activityUserState\"\nconst endpoint = \"activity_user_states/\"\n\nexport const activityUserStatesReducer = generateItemsReducer(itemType)\n\nexport const {\n seedActivityUserState,\n createActivityUserState,\n readActivityUserState,\n updateActivityUserState,\n destroyActivityUserState,\n setEditFieldsActivityUserState,\n resetEditFieldsActivityUserState,\n setLocalFieldsActivityUserState,\n resetLocalFieldsActivityUserState,\n} = generateActions(itemType, endpoint)\n\nexport const activityUserStateFromStore = (store, id) => itemFromStore(store, itemType, id, activityUserStateMergeFunction)\nexport const activityUserStateEditDataFromStore = (store, id) => itemEditDataFromStore(store, itemType, id)\nexport const activityUserStateLocalDataFromStore = (store, id) => itemLocalDataFromStore(store, itemType, id)\n\nexport function addActivityUserState(id, state) {\n return (dispatch, getState) => {\n const newState = R.map(R.map(value => { return {value: value, updatedAt: Date.now()} }), state)\n\n let activityUserState = activityUserStateFromStore(id, getState())\n let editState = activityUserState?.editData?.state || {}\n\n dispatch(setEditFieldsActivityUserState(id, {state: R.mergeDeepRight(editState, newState)}))\n dispatch(updateActivityUserState(id))\n }\n}\n\nfunction activityUserStateMergeFunction(rawItem) {\n return R.mergeWithKey(\n (key, oldV, newV) => key === \"state\" ? R.mergeDeepRight(oldV, newV) : newV,\n rawItem.savedData || {},\n rawItem.editData || {}\n )\n}\n\nfunction defaultDataMergeFunction(rawItem) {\n return R.mergeRight(rawItem.savedData || {}, rawItem.editData || {})\n}\n","var g;\n\n// This works in non-strict mode\ng = function () {\n return this;\n}();\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\nmodule.exports = isArray;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\nvar invariant = function (condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\nmodule.exports = invariant;","import * as React from 'react'\n\nimport ReactS3Uploader, { S3Response } from 'react-s3-uploader'\n\nimport classNames from 'classnames'\n\nimport axios from 'axios'\n\nconst acceptedTypesByMediaType = {\n \"image\": \"image/*\",\n \"audio\": \"audio/*\",\n \"video\": \"video/mp4,video/*\"\n}\n\ninterface GenMediaUploadButtonProps {\n onError?: (error: string) => void;\n documentId: number;\n mediaType: \"audio\" | \"image\" | \"video\";\n onSuccess: () => void;\n mediaOptions?: {is_silent: true};\n titleEnding?: string;\n editState: EditState;\n};\n\ninterface GenMediaUploadButtonState {\n progressPercent?: number;\n};\n\nexport default class GenMediaUploadButton extends React.Component<GenMediaUploadButtonProps, GenMediaUploadButtonState> {\n constructor(props: GenMediaUploadButtonProps) {\n super(props)\n\n this.state = {}\n }\n\n onUploadProgress = (progressEvent: number) => {\n this.setState({progressPercent: progressEvent})\n };\n\n onUploadError = (error: string) => {\n const {\n onError\n } = this.props\n\n console.log(\"ERROR:\", error)\n alert(\"Error Uploading\")\n\n if (onError) { onError(error) }\n this.setState({progressPercent: undefined})\n };\n\n onUploadFinish = (response: S3Response) => {\n const {\n documentId,\n mediaType,\n onError,\n onSuccess,\n mediaOptions,\n } = this.props\n\n console.log(\"FINISH:\", response)\n\n let fileUrl = new URL(response.signedUrl)\n let originalPath = fileUrl.pathname\n\n console.log(\"File Path:\", originalPath)\n\n const csrfToken = (document.querySelector('[name=csrf-token]') as HTMLMetaElement).content\n axios.defaults.headers.common['X-CSRF-TOKEN'] = csrfToken\n\n axios.post(`/documents/${documentId}/media_assets`, {\n media_asset: {\n original_upload_path: originalPath,\n media_type: mediaType,\n ...mediaOptions\n },\n })\n .then((response) => {\n if (onSuccess) { onSuccess() }\n this.setState({progressPercent: undefined})\n })\n .catch((error) => {\n console.log(\"ERROR:\", error)\n alert(\"Error Uploading\")\n\n if (onError) { onError(error) }\n this.setState({progressPercent: undefined})\n })\n };\n\n render() {\n const {\n mediaType,\n titleEnding=''\n } = this.props\n\n const {\n progressPercent,\n } = this.state;\n\n const hasProgress = typeof(progressPercent) === 'number'\n const uploadID = `upload_${mediaType}${titleEnding}`\n\n return <span className=\"doc-media-upload-button\">\n <label htmlFor={uploadID} className={classNames('bg-sky-600 hover:bg-sky-500 p-2 button', {disabled: hasProgress})}>\n {hasProgress ? 'Uploading' : `Upload New ${titleEnding}`}\n <ReactS3Uploader\n signingUrl={`/media_assets/signed_url`}\n signingUrlMethod=\"GET\"\n accept={acceptedTypesByMediaType[mediaType]}\n s3path=\"/uploads/\"\n onProgress={this.onUploadProgress}\n onError={this.onUploadError}\n onFinish={this.onUploadFinish}\n id={uploadID}\n style={{display: 'none'}}\n uploadRequestHeaders={{}}\n />\n </label>\n {hasProgress && <div className=\"progress progress-striped active\">\n <div className=\"bar\" style={{width: `${progressPercent * 0.95}%`}}></div>\n </div>}\n </span>\n }\n}\n","import * as React from 'react';\n\nimport classNames from 'classnames'\n\ninterface GenListDisplayProps<Item> {\n selected: Array<Item>;\n setListSelected: (selected: Array<Item>) => void;\n listData: Array<Item>;\n renderItem: (item: Item) => React.ReactElement;\n}\n\nexport default function GenListDisplay<Item extends {id: number}>(\n {\n selected,\n setListSelected,\n listData,\n renderItem,\n }: GenListDisplayProps<Item>,\n) {\n const onItemClick = (item: Item) => {\n const isSelected = selected.some(sItem => sItem.id === item.id);\n let newSelectedItems = isSelected ? selected.filter(sItem => sItem.id !== item.id) : selected.concat([item])\n setListSelected(newSelectedItems)\n };\n\n const renderedItems = (listData || []).map(item => {\n const isSelected = selected.some(sItem => sItem.id === item.id);\n\n return (\n <div\n key={item.id}\n className={classNames(\"panel\", \"gen-list-display-panel\", isSelected ? \"selected\" : \"\")}\n onClick={() => {onItemClick(item)}}\n >\n {renderItem(item)}\n </div>\n );\n })\n\n return (\n <div className=\"gen-list-display\">\n {renderedItems}\n </div>\n )\n}\n","import {\n generateItemsReducer,\n generateActions,\n itemFromStore,\n itemLocalDataFromStore\n} from 'reducers/item'\n\nconst itemType = \"document\"\nconst endpoint = \"documents/\"\n\nexport const documentsReducer = generateItemsReducer(itemType)\n\nexport const {\n seedDocument,\n createDocument,\n readDocument,\n updateDocument,\n destroyDocument,\n setEditFieldsDocument,\n resetEditFieldsDocument,\n setLocalFieldsDocument,\n resetLocalFieldsDocument,\n} = generateActions(itemType, endpoint)\n\nexport const documentFromStore = (store, id) => itemFromStore(store, itemType, id)\nexport const documentLocalDataFromStore = (store, id) => itemLocalDataFromStore(store, itemType, id)\n","import * as R from 'ramda'\n\nexport function isCollapsedRange(range: BaseRange) {\n return range.start >= range.end\n}\n\nexport function adjustRangeValues(range: BaseRange, offset: number, cutoff: number=0) {\n return adjustRangeValuesWithFunction(range, val => val >= cutoff ? val + offset : val)\n}\n\nexport function adjustRangeValuesAtMostToCuttoff(range: BaseRange, offset: number, cutoff: number=0) {\n return adjustRangeValuesWithFunction(range, val => val >= cutoff ? R.max(val + offset, cutoff) : val)\n}\n\nfunction adjustRangeValuesWithFunction(range: BaseRange, func: (val: number) => number) {\n return R.compose(R.over<BaseRange, number>(R.lensProp('start'), func), R.over(R.lensProp('end'), func))(range)\n}\n\nfunction combineRanges(ranges: Array<BaseRange>) {\n return R.sortBy(range => range.start, ranges).reduce((acc: Array<BaseRange>, range: BaseRange) => {\n let lastRange = R.last(acc)\n if (!lastRange) {\n return [range]\n } else if (lastRange.end < range.start) {\n return acc.concat([range])\n } else {\n return R.init(acc).concat([{\n start: lastRange.start,\n end: R.max(lastRange.end, range.end)\n }])\n }\n }, [])\n}\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\nmodule.exports = root;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _captialize = require('./captialize');\nObject.defineProperty(exports, 'captialize', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_captialize).default;\n }\n});\nvar _clamp = require('./clamp');\nObject.defineProperty(exports, 'clamp', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_clamp).default;\n }\n});\nvar _distanceTo = require('./distance-to');\nObject.defineProperty(exports, 'distanceTo', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_distanceTo).default;\n }\n});\nvar _isDefined = require('./is-defined');\nObject.defineProperty(exports, 'isDefined', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_isDefined).default;\n }\n});\nvar _isNumber = require('./is-number');\nObject.defineProperty(exports, 'isNumber', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_isNumber).default;\n }\n});\nvar _isObject = require('./is-object');\nObject.defineProperty(exports, 'isObject', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_isObject).default;\n }\n});\nvar _length = require('./length');\nObject.defineProperty(exports, 'length', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_length).default;\n }\n});\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\nfunction noop() {}\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\nprocess.listeners = function (name) {\n return [];\n};\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\nmodule.exports = CanceledError;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = height;\nvar _offset = _interopRequireDefault(require(\"./offset\"));\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\nfunction height(node, client) {\n var win = (0, _isWindow.default)(node);\n return win ? win.innerHeight : client ? node.clientHeight : (0, _offset.default)(node).height;\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = getWindow;\nfunction getWindow(node) {\n return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false;\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar Loading = function Loading() {\n return _react.default.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"rw-i rw-loading\"\n });\n};\nvar Button = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Button, _React$Component);\n function Button() {\n return _React$Component.apply(this, arguments) || this;\n }\n var _proto = Button.prototype;\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n disabled = _this$props.disabled,\n label = _this$props.label,\n icon = _this$props.icon,\n busy = _this$props.busy,\n active = _this$props.active,\n children = _this$props.children,\n _this$props$variant = _this$props.variant,\n variant = _this$props$variant === void 0 ? 'primary' : _this$props$variant,\n _this$props$spinner = _this$props.spinner,\n spinner = _this$props$spinner === void 0 ? _react.default.createElement(Loading, null) : _this$props$spinner,\n _this$props$component = _this$props.component,\n Tag = _this$props$component === void 0 ? 'button' : _this$props$component,\n props = _objectWithoutProperties(_this$props, [\"className\", \"disabled\", \"label\", \"icon\", \"busy\", \"active\", \"children\", \"variant\", \"spinner\", \"component\"]);\n var type = props.type;\n if (Tag === 'button') type = type || 'button';\n return _react.default.createElement(Tag, _extends({}, props, {\n tabIndex: \"-1\",\n title: label,\n type: type,\n disabled: disabled,\n \"aria-disabled\": disabled,\n \"aria-label\": label,\n className: (0, _classnames.default)(className, 'rw-btn', active && !disabled && 'rw-state-active', variant && 'rw-btn-' + variant)\n }), busy ? spinner : icon, children);\n };\n return Button;\n}(_react.default.Component);\nButton.propTypes = {\n disabled: _propTypes.default.bool,\n label: _propTypes.default.string,\n icon: _propTypes.default.node,\n busy: _propTypes.default.bool,\n active: _propTypes.default.bool,\n variant: _propTypes.default.oneOf(['primary', 'select']),\n component: _propTypes.default.any,\n spinner: _propTypes.default.node\n};\nvar _default = Button;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","var LIFECYCLE_HOOKS = {\n componentWillMount: true,\n componentDidMount: true,\n componentWillReceiveProps: true,\n getSnapshotBeforeUpdate: true,\n shouldComponentUpdate: true,\n componentWillUpdate: true,\n componentDidUpdate: true,\n componentWillUnmount: true\n};\nvar STATIC_HOOKS = {\n getDerivedStateFromProps: true\n};\nfunction wrap(base, method, isStatic) {\n var before = true;\n if (Array.isArray(method)) {\n before = method[0] !== 'after';\n method = method[1];\n }\n if (!base) return method;\n return function wrappedLifecyclehook() {\n var ctx = isStatic ? null : this;\n before && method.apply(ctx, arguments);\n base.apply(ctx, arguments);\n !before && method.apply(ctx, arguments);\n };\n}\nmodule.exports = function spyOnComponent(component, hooks) {\n var originals = Object.create(null);\n for (var key in hooks) if (STATIC_HOOKS[key]) component.constructor[key] = wrap(originals[key] = component.constructor[key], hooks[key], true);\n for (var key in hooks) if (LIFECYCLE_HOOKS[key]) component[key] = wrap(originals[key] = component[key], hooks[key]);\n return function reset(key) {\n var subject = STATIC_HOOKS[key] ? component.constructor : component;\n if (key && key in originals) subject[key] = originals[key];else for (key in originals) subject[key] = originals[key];\n };\n};\nmodule.exports.mixin = function mixinIntoComponent(componentClass, hooks) {\n spyOnComponent(componentClass.prototype, hooks);\n return componentClass;\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _dates = _interopRequireDefault(require(\"./util/dates\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar VIEW_UNITS = ['month', 'year', 'decade', 'century'];\nfunction clamp(date, min, max) {\n return _dates.default.max(_dates.default.min(date, max), min);\n}\nvar CalendarView = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CalendarView, _React$Component);\n function CalendarView() {\n return _React$Component.apply(this, arguments) || this;\n }\n var _proto = CalendarView.prototype;\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n activeId = _this$props.activeId,\n props = _objectWithoutProperties(_this$props, [\"className\", \"activeId\"]);\n return _react.default.createElement(\"table\", _extends({}, props, {\n role: \"grid\",\n tabIndex: \"-1\",\n \"aria-activedescendant\": activeId || null,\n className: (0, _classnames.default)(className, 'rw-nav-view', 'rw-calendar-grid')\n }));\n };\n return CalendarView;\n}(_react.default.Component);\nCalendarView.propTypes = {\n activeId: _propTypes.default.string\n};\nvar CalendarViewCell = /*#__PURE__*/\nfunction (_React$Component2) {\n _inheritsLoose(CalendarViewCell, _React$Component2);\n function CalendarViewCell() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component2.call.apply(_React$Component2, [this].concat(args)) || this;\n _this.handleChange = function () {\n var _this$props2 = _this.props,\n onChange = _this$props2.onChange,\n min = _this$props2.min,\n max = _this$props2.max,\n date = _this$props2.date;\n onChange(clamp(date, min, max));\n };\n return _this;\n }\n var _proto2 = CalendarViewCell.prototype;\n _proto2.isEmpty = function isEmpty() {\n var _this$props3 = this.props,\n unit = _this$props3.unit,\n min = _this$props3.min,\n max = _this$props3.max,\n date = _this$props3.date;\n return !_dates.default.inRange(date, min, max, unit);\n };\n _proto2.isEqual = function isEqual(date) {\n return _dates.default.eq(this.props.date, date, this.props.unit);\n };\n _proto2.isFocused = function isFocused() {\n return !this.props.disabled && !this.isEmpty() && this.isEqual(this.props.focused);\n };\n _proto2.isNow = function isNow() {\n return this.props.now && this.isEqual(this.props.now);\n };\n _proto2.isOffView = function isOffView() {\n var _this$props4 = this.props,\n viewUnit = _this$props4.viewUnit,\n focused = _this$props4.focused,\n date = _this$props4.date;\n return date && focused && viewUnit && _dates.default[viewUnit](date) !== _dates.default[viewUnit](focused);\n };\n _proto2.isSelected = function isSelected() {\n return this.props.selected && this.isEqual(this.props.selected);\n };\n _proto2.render = function render() {\n var _this$props5 = this.props,\n children = _this$props5.children,\n activeId = _this$props5.activeId,\n label = _this$props5.label,\n disabled = _this$props5.disabled;\n var isDisabled = disabled || this.isEmpty();\n return _react.default.createElement(\"td\", {\n role: \"gridcell\",\n id: this.isFocused() ? activeId : null,\n title: label,\n \"aria-label\": label,\n \"aria-readonly\": disabled,\n \"aria-selected\": this.isSelected(),\n onClick: !isDisabled ? this.handleChange : undefined,\n className: (0, _classnames.default)('rw-cell', this.isNow() && 'rw-now', isDisabled && 'rw-state-disabled', this.isEmpty() && 'rw-cell-not-allowed', this.isOffView() && 'rw-cell-off-range', this.isFocused() && 'rw-state-focus', this.isSelected() && 'rw-state-selected')\n }, children);\n };\n return CalendarViewCell;\n}(_react.default.Component);\nCalendarViewCell.propTypes = {\n id: _propTypes.default.string,\n activeId: _propTypes.default.string.isRequired,\n label: _propTypes.default.string,\n now: _propTypes.default.instanceOf(Date),\n date: _propTypes.default.instanceOf(Date),\n selected: _propTypes.default.instanceOf(Date),\n focused: _propTypes.default.instanceOf(Date),\n min: _propTypes.default.instanceOf(Date),\n max: _propTypes.default.instanceOf(Date),\n unit: _propTypes.default.oneOf(['day'].concat(VIEW_UNITS)),\n viewUnit: _propTypes.default.oneOf(VIEW_UNITS),\n onChange: _propTypes.default.func.isRequired,\n disabled: _propTypes.default.bool\n};\nCalendarView.Body = function (props) {\n return _react.default.createElement(\"tbody\", _extends({\n className: \"rw-calendar-body\"\n }, props));\n};\nCalendarView.Row = function (props) {\n return _react.default.createElement(\"tr\", _extends({\n role: \"row\",\n className: \"rw-calendar-row\"\n }, props));\n};\nCalendarView.Cell = CalendarViewCell;\nvar _default = CalendarView;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.notify = notify;\nexports.instanceId = instanceId;\nexports.isFirstFocusedRender = isFirstFocusedRender;\nvar idCount = 0;\nfunction uniqueId(prefix) {\n return '' + ((prefix == null ? '' : prefix) + ++idCount);\n}\nfunction notify(handler, args) {\n handler && handler.apply(null, [].concat(args));\n}\nfunction instanceId(component, suffix) {\n if (suffix === void 0) {\n suffix = '';\n }\n component.__id || (component.__id = uniqueId('rw_'));\n return (component.props.id || component.__id) + suffix;\n}\n/**\n * Allows for defering popup rendering untill the widget is focused,\n * or has been opened (in order to not remove it suddenly on close)\n */\n\nfunction isFirstFocusedRender(component) {\n return component._firstFocus || (component.state.focused || !!component.props.open) && (component._firstFocus = true);\n}","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\nmodule.exports = isObject;","import React from \"react\";\n\nimport GenButton from \"../Gen/Button\";\nimport GenModal from \"../Gen/Modal\";\n\nimport ActivityReviewSummary from \"./ReviewSummary\";\n\nimport { documentDisplayTitle } from 'src/document_display_title'\n\nexport default class ActivityReviewModal extends React.Component {\n constructor(props) {\n super(props);\n\n const {\n activityUserState,\n } = props;\n\n this.state = {\n reviewComment: activityUserState.review_comment,\n };\n }\n\n postActivityUserStateData(id, data) {\n const {\n afterSave,\n } = this.props;\n\n fetch(`/activity_user_states/${id}`, {\n method: \"PATCH\",\n body: JSON.stringify({activity_user_state: data}),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(() => { afterSave(); })\n .catch(() => { alert(\"There was an error saving your review.\"); });\n }\n\n render() {\n const {\n reviewComment,\n } = this.state;\n\n const {\n activity,\n activityUserState,\n document,\n user,\n afterCancel,\n } = this.props;\n\n return (\n <GenModal open className=\"activity-review-modal\">\n <div className=\"gen-modal-panel\">\n <div className=\"review-modal-header\">\n <h1>Review {activity.name} Skill</h1>\n <p style={{marginBottom: \"5px\"}}><strong>Case:</strong> <a href={`/documents/${document.id}`} target=\"_blank\" rel=\"noreferrer\">{documentDisplayTitle(document)}</a></p>\n <p style={{marginBottom: \"5px\"}}><strong>Student's Name:</strong> {user.first_name} {user.last_name}</p>\n <p style={{marginBottom: \"5px\"}}><strong>Student's Email:</strong> {user.email}</p>\n </div>\n\n <hr />\n\n <div className=\"review-modal-feedback\">\n <div>\n <p>Feedback:</p>\n <textarea\n style={{resize: \"none\"}}\n rows=\"4\"\n value={reviewComment}\n disabled={activityUserState.reviewed}\n onChange={(e) => { this.setState({reviewComment: e.target.value}); }}\n />\n </div>\n <div>\n <div className=\"review-buttons\">\n <GenButton\n name=\"Save Draft\"\n highlighted\n disabled={activityUserState.reviewed}\n onClick={() => {\n this.postActivityUserStateData(activityUserState.id, {\n review_comment: reviewComment,\n });\n }}\n />\n <GenButton\n name=\"Submit Review\"\n highlighted\n disabled={activityUserState.reviewed}\n onClick={() => {\n this.postActivityUserStateData(activityUserState.id, {\n review_comment: reviewComment,\n reviewed_at: (new Date()).toISOString(),\n });\n }}\n />\n <GenButton\n name=\"Close\"\n highlighted\n onClick={afterCancel}\n />\n </div>\n </div>\n </div>\n\n <hr />\n\n <div className=\"activity\">\n <ActivityReviewSummary\n activity={activity}\n activityUserState={activityUserState}\n />\n </div>\n\n </div>\n </GenModal>\n );\n }\n}\n","import * as React from 'react';\n\n// GenCheckbox :: {\n// title: String,\n// value: Any\n// onChange: function\n// }\n\ninterface GenCheckboxFilterProps {\n title: string;\n value: boolean;\n onChange: (value: boolean) => void;\n}\n\nexport default function GenCheckboxFilter(props: GenCheckboxFilterProps) {\n const {\n title,\n value,\n onChange\n } = props\n\n return(\n <div className=\"gen-checkbox-filter mb-2\">\n <label>\n <input\n id={title}\n name={title}\n type=\"checkbox\"\n checked={value || false}\n onChange={() => onChange(!value)}\n />\n {title}\n </label>\n </div>\n )\n}\n","import * as React from 'react';\n\ninterface GenCheckboxesFilterProps {\n displayLikeFilterGroup: boolean;\n onChange: (values?: Array<string>) => void;\n options: Array<{\n displayName: string;\n value: string;\n }>;\n title: string;\n value: Array<string>;\n}\n\nexport default function GenCheckboxesFilter(props: GenCheckboxesFilterProps) {\n let classes = 'gen-list-filter-2'\n let title = <h5>{props.title}</h5>\n\n if (props.displayLikeFilterGroup) {\n classes += ' like-checkbox-filters'\n title = <h4>{props.title}</h4>\n }\n\n return (\n <div className={classes}>\n <div className=\"gen-list-filter-title\" onClick={() => {props.onChange(props.value ? undefined : [])}}>\n {title}\n <div className=\"cursor-pointer\"><span>{props.value ? \"All\" : \"Filter\"}</span></div>\n </div>\n {props.value && <div className=\"gen-list-filter-options\">\n {props.options.map((option) => {\n let optionName, optionValue\n if (typeof option === 'object') {\n optionName = option.displayName;\n optionValue = option.value;\n } else {\n optionName = option\n optionValue = option\n }\n\n let key = props.title + \"-\" + optionName\n\n let isChecked = props.value.includes(optionValue)\n let onChange = () => {\n let newValue = props.value\n if (isChecked) {\n newValue = newValue.filter((o) => {return o !== optionValue})\n } else {\n newValue = newValue.concat([optionValue])\n }\n\n props.onChange(newValue)\n }\n\n return(\n <div key={key} className=\"gen-list-filter-option\">\n <label>\n <input\n id={key}\n name={key}\n type=\"checkbox\"\n checked={isChecked}\n onChange={onChange}\n />\n {optionName}\n </label>\n </div>\n )\n })}\n </div>}\n </div>\n );\n}\n","import * as React from 'react';\n\ninterface GenFilterGroupProps {\n title: string;\n children: React.ReactElement;\n}\n\nexport default function GenFilterGroup(\n {\n title,\n children,\n }: GenFilterGroupProps,\n) {\n return (\n <div className=\"gen-list-filter-group\">\n <h4>{title}</h4>\n <div className=\"gen-list-filter-group-filters\">\n {children}\n </div>\n </div>\n );\n}\n","import * as React from 'react';\nimport InputRange from 'react-input-range';\nimport 'react-input-range/lib/css/index.css'\n\nenum YMWD {\n YEARS = \"YEARS\",\n MONTHS = \"MONTHS\",\n WEEKS = \"WEEKS\",\n DAYS = \"DAYS\"\n}\n\nconst YMWD_CONVERT_TO_DAYS = {\n YEARS: 365,\n MONTHS: 30,\n WEEKS: 7,\n DAYS: 1\n} as const\n\nconst YMWD_MAXIMUM_TIME_UNIT_VALUE = {\n YEARS: 110,\n MONTHS: 24,\n WEEKS: 24,\n DAYS: 30\n} as const\n\nconst DEFAULT_STATE = {\n timeUnit: YMWD.YEARS,\n internalTimeUnitValue: {\n min: 0,\n max: YMWD_MAXIMUM_TIME_UNIT_VALUE[YMWD.YEARS]\n }\n}\n\ninterface GenYMWDFilterValue {\n min: number;\n max: number;\n}\n\ninterface GenYMWDFilterProps {\n displayLikeFilterGroup: boolean;\n onChange: (value: GenYMWDFilterValue) => void;\n title: string;\n value: GenYMWDFilterValue;\n}\n\ninterface GenYMWDFilterState {\n timeUnit: YMWD;\n internalTimeUnitValue: GenYMWDFilterValue;\n}\n\nexport default class GenYMWDFilter extends React.Component<GenYMWDFilterProps, GenYMWDFilterState> {\n constructor(props, context) {\n super(props, context);\n\n if (props.value?.max) {\n let timeUnits = Object.values(YMWD).reverse()\n let timeUnit = timeUnits.find((timeUnit) => {\n let unitDays = YMWD_CONVERT_TO_DAYS[timeUnit]\n let unitMax = YMWD_MAXIMUM_TIME_UNIT_VALUE[timeUnit]\n let maxDays = unitDays * unitMax\n\n return (props.value.max <= maxDays) && (props.value.max % unitDays === 0)\n })\n\n this.state = {\n timeUnit: timeUnit,\n internalTimeUnitValue: this.divideRange(props.value, YMWD_CONVERT_TO_DAYS[timeUnit])\n }\n } else {\n this.state = DEFAULT_STATE\n }\n }\n\n toggleFilter() {\n if (this.props.value) {\n this.props.onChange(null)\n } else {\n this.resetFilter()\n }\n }\n\n resetFilter() {\n this.setState(DEFAULT_STATE, this.syncExternal)\n }\n\n handleTimeUnitChange(event) {\n let timeUnit = event.target.value\n let newTimeRange = {\n min: 0,\n max: YMWD_MAXIMUM_TIME_UNIT_VALUE[timeUnit]\n }\n\n this.setState({\n timeUnit: event.target.value,\n internalTimeUnitValue: newTimeRange\n }, this.syncExternal)\n }\n\n handleInternalChange(internalTimeUnitValue) {\n this.setState({internalTimeUnitValue: internalTimeUnitValue})\n }\n\n handleExternalChange(internalTimeUnitValue) {\n this.setState({internalTimeUnitValue: internalTimeUnitValue}, this.syncExternal)\n }\n\n syncExternal() {\n this.props.onChange(this.convertDisplayRangeToDayRange(this.state.internalTimeUnitValue))\n }\n\n divideRange(range, integer) {\n return {\n min: range.min/integer,\n max: range.max/integer\n }\n }\n\n multiplyRange(range, integer) {\n return {\n min: range.min * integer,\n max: range.max * integer\n }\n }\n\n currentConversion() {\n return YMWD_CONVERT_TO_DAYS[this.state.timeUnit]\n }\n\n convertDayRangeToDisplayRange(dayRange) {\n return this.divideRange(dayRange, this.currentConversion())\n }\n\n convertDisplayRangeToDayRange(displayRange) {\n const range = this.multiplyRange(displayRange, this.currentConversion());\n range.min = Math.max(1, range.min);\n return range;\n }\n\n render() {\n let classes = 'gen-list-filter-2 gen-list-ymwd-filter'\n let title = <h5>{this.props.title}</h5>\n\n if (this.props.displayLikeFilterGroup) {\n classes += ' like-checkbox-filters'\n title = <h4>{this.props.title}</h4>\n }\n\n return <div className={classes}>\n <div className=\"gen-list-filter-title\">\n {title}\n <div className=\"cursor-pointer\"><span onClick={this.toggleFilter.bind(this)}>{this.props.value ? \"All\" : \"Filter\"}</span></div>\n </div>\n {this.props.value && <div className=\"gen-list-filter-body\">\n <div style={{marginTop: '5px'}}>\n <select value={this.state.timeUnit} onChange={this.handleTimeUnitChange.bind(this)} style={{width: '100%'}}>\n {Object.values(YMWD).map((unit) => <option key={unit} value={unit}>{unit.charAt(0).toUpperCase() + unit.slice(1).toLowerCase()}</option>)}\n </select>\n </div>\n <div style={{margin: '5px 10px'}}>\n <InputRange\n minValue={0}\n maxValue={YMWD_MAXIMUM_TIME_UNIT_VALUE[this.state.timeUnit]}\n value={this.state.internalTimeUnitValue}\n onChange={this.handleInternalChange.bind(this)}\n onChangeComplete={this.handleExternalChange.bind(this)}\n />\n </div>\n </div>}\n </div>\n }\n}\n","import React from 'react';\n\nimport CardiovascularImage from \"images/category_icons/Cardiovascular.svg\"\nimport DermatologyImage from \"images/category_icons/Dermatology.svg\"\nimport EENTImage from \"images/category_icons/EENT.svg\"\nimport EmergencyMedicineImage from \"images/category_icons/EmergencyMedicine.svg\"\nimport EndocrinologyImage from \"images/category_icons/Endocrinology.svg\"\nimport FamilyMedicineImage from \"images/category_icons/FamilyMedicine.svg\"\nimport GastroenterologyImage from \"images/category_icons/Gastroenterology.svg\"\nimport GeriatricsImage from \"images/category_icons/Geriatrics.svg\"\nimport InterdisciplinaryImage from \"images/category_icons/Interdisciplinary.svg\"\nimport MusculoskeletalImage from \"images/category_icons/Musculoskeletal.svg\"\nimport NephrologyImage from \"images/category_icons/Nephrology.svg\"\nimport NeurologyImage from \"images/category_icons/Neurology.svg\"\nimport NursingImage from \"images/category_icons/Nursing.svg\"\nimport OBGYNImage from \"images/category_icons/OBGYN.svg\"\nimport PediatricsImage from \"images/category_icons/Pediatrics.svg\"\nimport PhysicianAssistantImage from \"images/category_icons/PhysicianAssistant.svg\"\nimport PsychologyImage from \"images/category_icons/Psychology.svg\"\nimport PulmonologyImage from \"images/category_icons/Pulmonology.svg\"\n\nconst IMAGE_LOOKUP = {\n \"Cardiovascular\": CardiovascularImage,\n \"Dermatology\": DermatologyImage,\n \"EENT\": EENTImage,\n \"Emergency Medicine\": EmergencyMedicineImage,\n \"Endocrinology\": EndocrinologyImage,\n \"Family Medicine\": FamilyMedicineImage,\n \"Gastroenterology\": GastroenterologyImage,\n \"Geriatrics\": GeriatricsImage,\n \"Interdisciplinary\": InterdisciplinaryImage,\n \"Musculoskeletal\": MusculoskeletalImage,\n \"Nephrology\": NephrologyImage,\n \"Neurology\": NeurologyImage,\n \"Nursing\": NursingImage,\n \"OBGYN\": OBGYNImage,\n \"Pediatrics\": PediatricsImage,\n \"Physician Assistant\": PhysicianAssistantImage,\n \"Psychology\": PsychologyImage,\n \"Pulmonology\": PulmonologyImage,\n}\n\nconst DIFFICULTY_LOOKUP = {\n [1]: \"Easy\",\n [2]: \"Intermediate\",\n [3]: \"Difficult\",\n}\n\nfunction DifficultyGraph(props) {\n return (\n <div className=\"flex flex-row items-end\">\n {\n [1,2,3].map(i => {\n const color = props.difficulty < i ? \"#C5CFCD\" : \"#3B8D87\"\n const height = 4 + (i * 8)\n\n return (\n <svg key={i} xmlns=\"http://www.w3.org/2000/svg\" className=\"m-0.5\" width=\"8\" height={height} viewBox={`0 0 8 ${height}`} fill=\"none\">\n <path d=\"M8 0H0V28H8V0Z\" fill={color} />\n </svg>\n )\n })\n }\n </div>\n );\n}\n\nexport default function CatalogSummary(props) {\n const {\n documentSet,\n } = props;\n\n return(\n <div className=\"border-solid border-2\">\n <a className=\"\" href={\"/catalog/\" + documentSet.id}>\n <div className=\"relative\">\n <img src={documentSet.cover_image} alt={`Course ${documentSet.id} Cover Image`} width=\"2092\" height=\"1170\"/>\n\n <div className=\"absolute bottom-0 w-full\">\n <h3 className=\"m-2 p-2 bg-slate-200/[.80] rounded-lg text-center\">{documentSet.name}</h3>\n </div>\n </div>\n\n <div className=\"flex flex-wrap w-full justify-between gap-y-3 p-2\">\n <div className=\"flex flex-wrap gap-y-3\">\n {(documentSet.categories || []).map(category =>\n <div key={category} className=\"flex items-center bg-slate-200 rounded-lg py-2 px-3 mr-3\">\n <div className=\"mr-4\">\n <img src={IMAGE_LOOKUP[category]} className=\"h-7\" />\n </div>\n <h4>\n {category}\n </h4>\n </div>\n )}\n </div>\n\n <div className=\"bg-slate-200 rounded-lg py-2 px-3\">\n <DifficultyGraph difficulty={documentSet.difficulty}/>\n </div>\n </div>\n\n <p className=\"p-2\">{documentSet.description}</p>\n\n <div className=\"flex justify-between p-2\">\n <div>\n {\n documentSet.contributor?.profile_image &&\n <img src={documentSet.contributor.profile_image} />\n }\n\n <h4>{documentSet.contributor?.name}</h4>\n </div>\n\n <div>\n <h4>\n {(new Date(documentSet.created_at)).toLocaleDateString(\"en-US\", {year: 'numeric', month: 'long', day: 'numeric'})}\n </h4>\n </div>\n </div>\n </a>\n </div>\n );\n}","import React from \"react\";\n\nimport * as R from \"ramda\";\n\nimport GenButton from \"../Gen/Button\";\nimport GenLoadingSpinner from \"../Gen/LoadingSpinner\";\nimport GenModal from \"../Gen/Modal\";\n\nimport ActivityReviewSummary from \"../Activity/ReviewSummary\";\n\nimport { stringDateToDisplayDateString } from \"../../src/time_display\";\n\nimport { documentDisplayTitle } from 'src/document_display_title'\n\nconst drawerUidsInOrder = [\n \"vitals\",\n \"differential\",\n \"workup\",\n \"diagnosis\",\n \"outcomes\",\n \"care\",\n \"keypoints\",\n];\n\nfunction uidIndex(placementUid) {\n const foundIndex = drawerUidsInOrder.indexOf(placementUid);\n return foundIndex >= 0 ? foundIndex : drawerUidsInOrder.length;\n}\n\nfunction beforeInsideIndex(placementBefore, placementInside) {\n if (placementBefore && !placementInside) {\n return 0;\n } else if (placementBefore && placementInside) {\n return 1;\n } else if (!placementBefore && placementInside) {\n return 2;\n } else {\n return 3;\n }\n}\n\nfunction activityOrderIndices({\n placement_uid, placement_before, placement_inside, order,\n}) {\n return [uidIndex(placement_uid), beforeInsideIndex(placement_before, placement_inside), order];\n}\n\nexport default class CatalogReviewModal extends React.Component {\n constructor(props) {\n super(props);\n\n const {\n review_comment,\n } = props;\n\n this.state = {\n reviewComment: review_comment,\n loading: true,\n };\n }\n\n componentDidMount() {\n this.getData();\n }\n\n getData() {\n const {\n documentSetId,\n document,\n user,\n } = this.props;\n\n fetch(`/activity_report/${documentSetId}/${document.id}/${user.id}`, {\n headers: {\n Accept: \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then((data) => {\n this.setState({\n ...data,\n loading: false,\n });\n })\n .catch(() => { alert(\"There was an issue loading the data. Please try again.\"); });\n }\n\n postDocumentSetDocumentStateData(id, data) {\n const {\n afterSave,\n } = this.props;\n\n fetch(`/document_set_document_states/${id}`, {\n method: \"PUT\",\n body: JSON.stringify({document_set_document_state: data}),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(() => { afterSave(); })\n .catch(() => { alert(\"There was an error saving your review.\"); });\n }\n\n render() {\n const {\n activities,\n activity_user_states_by_activity_id,\n loading,\n reviewComment,\n } = this.state;\n\n const {\n afterCancel,\n allItems,\n document,\n documentSetId,\n review_submitted,\n setReviewRow,\n submitted_at,\n user,\n } = this.props;\n\n let renderReview;\n if (loading) {\n renderReview = <GenLoadingSpinner />;\n } else {\n const renderedActivities = R.sortBy((activity) => activityOrderIndices(activity), activities).map((activity) => (\n <div key={activity.uid}>\n <h3>{activity.name}</h3>\n <ActivityReviewSummary\n activity={activity}\n activityUserState={activity_user_states_by_activity_id[activity.id]}\n />\n <hr />\n </div>\n ));\n\n renderReview = (\n <div>\n <div className=\"review-modal-feedback\" style={{marginBottom: \"10px\"}}>\n <div>\n <p>Feedback:</p>\n <textarea\n style={{resize: \"none\"}}\n rows=\"4\"\n value={reviewComment}\n disabled={review_submitted}\n onChange={(e) => { this.setState({reviewComment: e.target.value}); }}\n />\n </div>\n <div>\n <div className=\"review-buttons\">\n <GenButton\n name=\"Save Draft\"\n highlighted\n disabled={review_submitted}\n onClick={() => {\n this.postDocumentSetDocumentStateData(`${documentSetId}/${document.id}/${user.id}`, {\n review_comment: reviewComment,\n });\n }}\n />\n <GenButton\n name=\"Submit Review\"\n highlighted\n disabled={review_submitted}\n onClick={() => {\n this.postDocumentSetDocumentStateData(`${documentSetId}/${document.id}/${user.id}`, {\n review_comment: reviewComment,\n reviewed_at: (new Date()).toISOString(),\n });\n }}\n />\n <GenButton\n name=\"Close\"\n highlighted\n onClick={afterCancel}\n />\n </div>\n </div>\n </div>\n\n <hr />\n\n <div className=\"activity\">\n {renderedActivities}\n </div>\n </div>\n );\n }\n\n const sumbittedItems = allItems.filter((item) => item.submitted_at);\n const totalReviewableCount = sumbittedItems.length;\n const reviewIndex = sumbittedItems.findIndex((item) => item.user.id === user.id && item.document.id === document.id);\n\n const reviewNavigation = (\n <div className=\"absolute top-0 right-10 flex items-center\">\n <GenButton\n name={<span><i className=\"fa fa-chevron-left\" /> Prev</span>}\n highlighted\n disabled={reviewIndex === 0}\n onClick={() => {\n const newRow = sumbittedItems[reviewIndex - 1];\n setReviewRow(newRow);\n this.setState({\n reviewComment: newRow.review_comment,\n loading: true,\n }, this.getData.bind(this));\n }}\n />\n <div className=\"p-3 border-solid\">{reviewIndex + 1}/{totalReviewableCount}</div>\n <GenButton\n name={<span>Next <i className=\"fa fa-chevron-right\" /></span>}\n highlighted\n disabled={reviewIndex === totalReviewableCount - 1}\n onClick={() => {\n const newRow = sumbittedItems[reviewIndex + 1];\n setReviewRow(newRow);\n this.setState({\n reviewComment: newRow.review_comment,\n loading: true,\n }, this.getData.bind(this));\n }}\n />\n </div>\n );\n\n return (\n <GenModal open className=\"activity-review-modal\">\n <div className=\"gen-modal-panel\">\n <div className=\"review-modal-header relative\">\n <h1>Case {document.id} Review</h1>\n <p style={{marginBottom: \"5px\"}}><strong>Case:</strong> <a href={`/documents/${document.id}`} target=\"_blank\" rel=\"noreferrer\">{documentDisplayTitle(document)}</a></p>\n <p style={{marginBottom: \"5px\"}}><strong>Student's Name:</strong> {user.first_name} {user.last_name}</p>\n <p style={{marginBottom: \"5px\"}}><strong>Student's Email:</strong> {user.email}</p>\n <p style={{marginBottom: \"5px\"}}><strong>Submission Time:</strong> {stringDateToDisplayDateString(submitted_at)}</p>\n\n {reviewNavigation}\n </div>\n\n <hr />\n\n {renderReview}\n </div>\n </GenModal>\n );\n }\n}\n","import React from 'react';\n\nimport GenList from 'Gen/List'\n\nimport AddToSummary from 'DocumentSetDocumentRelation/AddTo/Summary'\n\nexport default function AddToList(props) {\n const {\n rootDocumentSetId,\n documentId,\n showsOwnershipCheckbox,\n userId,\n canAddToUnownedDocumentSets,\n categoryId\n } = props\n\n return (<GenList\n itemsURL={\"/document_sets/\" + rootDocumentSetId + \"/document_sets\"}\n itemView={(documentSet) => {\n let locked = documentSet.locked\n let isOwner = documentSet.owner_id && documentSet.owner_id == userId\n let enabled = !locked || isOwner || canAddToUnownedDocumentSets\n\n return(\n <AddToSummary\n enabled={enabled}\n key={documentSet.id}\n documentSet={documentSet}\n documentId={documentId}\n includesDoc={documentSet.nested_document_ids.includes(documentId)}\n categoryId={categoryId}\n />\n );\n }}\n search\n sortOptions={[\n {\n \"title\": \"Name\",\n \"value\": \"document_sets.name\"\n },\n {\n \"title\": \"Owner\",\n \"value\": \"users.last_name\"\n }\n ]}\n checkboxFilterOptions={showsOwnershipCheckbox && [\n {\n \"key\": \"owner\",\n \"whereFilter\": [\"=\", \"document_sets.owner_id\", userId],\n \"label\": \"Only courses that I own\"\n }\n ]}\n />);\n}\n","import React from 'react';\n\nimport GenPanelHeader from 'Gen/PanelHeader'\nimport GenButton from 'Gen/Button'\n\nimport { fullURL } from 'src/url'\n\nexport default class AddToSummary extends React.Component {\n state = {\n canAdd: !this.props.includesDoc\n }\n\n onAddClicked = () => {\n if (!this.props.documentId) {\n return;\n }\n\n this.setState({ canAdd: false })\n\n let data = {\n documentIds: [this.props.documentId],\n event: \"add_to_course_button\",\n categoryId: this.props.categoryId,\n };\n\n let url = fullURL(`/document_sets/${this.props.documentSet.id}/document_set_document_relations/create_batch_list`)\n\n fetch(url, {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then(() => {})\n .catch(() => {});\n };\n\n onRemoveClicked = () => {\n if (!this.props.documentId) {\n return;\n }\n\n this.setState({ canAdd: true })\n\n let data = {\n documentIds: [this.props.documentId],\n event: \"add_to_course_button\",\n categoryId: this.props.categoryId\n };\n\n let url = fullURL(`/document_sets/${this.props.documentSet.id}/document_set_document_relations/destroy_batch_list`)\n\n fetch(url, {\n method: \"DELETE\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then(() => {})\n .catch(() => {});\n }\n\n render() {\n const {\n enabled,\n documentSet\n } = this.props\n\n let button\n let buttonIcon = this.state.canAdd ? \"fa-plus\" : \"fa-minus\"\n\n if (!enabled) {\n button = <GenButton name={<i title=\"You don't have permission to edit this course\" className={`fa ${buttonIcon}`}></i>} disabled/>\n } else if (this.state.canAdd) {\n button = <GenButton name={<i title=\"Add to course\" className={`fa ${buttonIcon}`}></i>} highlighted onClick={this.onAddClicked.bind(this)}/>\n } else {\n button = <GenButton name={<i title=\"Remove from course\" className={`fa ${buttonIcon}`}></i>} destructive onClick={this.onRemoveClicked.bind(this)}/>\n }\n\n return(\n <div className=\"panel summary\">\n <GenPanelHeader rightContent={button}>\n <a\n target=\"_blank\"\n href={\"/document_sets/\" + documentSet.id}\n onClick={this.handleTitleClick}\n className=\"name\">\n {documentSet.name}\n </a>\n </GenPanelHeader>\n\n <p className=\"description\">{documentSet.description}</p>\n {documentSet.owner_full_name && <p> <strong> Course Owner: </strong> {documentSet.owner_full_name}</p>}\n </div>\n );\n }\n}\n","import * as React from 'react';\n\nimport * as R from \"ramda\";\n\nimport DocSection from \"./Section\";\nimport GenButton from \"../Gen/Button\";\n\nimport DocQuestionReportButton from \"./QuestionReportButton\";\n\nimport {\n deepFind,\n deepFindByUID,\n generateNode,\n newSetNodeKVPairAction,\n} from \"../../src/doc_helpers\";\n\ninterface DocActivityProps extends ActivityNode, EveryNodeArgs {};\n\nexport default function DocActivity(props: DocActivityProps) {\n const {\n documentSetDocumentActivity,\n activityUserState,\n\n onComplete,\n onCompleteTitle,\n\n inactive,\n inactiveBoolean,\n\n currentDocument,\n currentDocumentSetDocumentRelation,\n currentRoleDefinition,\n currentVersion,\n currentUser,\n displayState,\n editState,\n } = props;\n\n const {activity} = documentSetDocumentActivity;\n const activityUserStateLongId = currentDocumentSetDocumentRelation ? `${activity.id}/${currentDocumentSetDocumentRelation.document_set_id}/${currentDocument.id}` : `${activity.id}/${currentDocument.id}`;\n\n const showAfter = typeof documentSetDocumentActivity.show_after === \"string\" ? new Date(documentSetDocumentActivity.show_after) : null;\n const dueAt = typeof documentSetDocumentActivity.due_at === \"string\" ? new Date(documentSetDocumentActivity.due_at) : null;\n\n const currentUserForActivity = {\n ...currentUser,\n addState: (state) => currentUser.addActivityUserState(activity.id, state),\n addStateTargetType: \"activity\",\n addStateTargetId: activity.id,\n logEvent: () => {},\n };\n\n const hasStarted = !showAfter || showAfter.getTime() < new Date().getTime();\n\n const hasBeenSubmitted = activityUserState.state?.submit_button?.inactive?.value === 2;\n const submittedAt = hasBeenSubmitted ? activityUserState.state?.submit_button?.inactive?.updatedAt : undefined;\n\n let badgeText = \"\";\n if (currentRoleDefinition.isLearner) {\n if (!hasStarted) {\n return null;\n } if (hasBeenSubmitted) {\n const formattedSubmittedAt = (new Date(submittedAt)).toLocaleDateString(\"en-US\");\n\n badgeText = `Submitted: ${formattedSubmittedAt}`;\n\n if (activityUserState.reviewed_at) {\n badgeText += \" (Reviewed)\";\n }\n } else {\n badgeText = dueAt ? `Due: ${dueAt.toLocaleDateString(\"en-US\")}` : \"Due\";\n }\n } else if (!hasStarted) {\n badgeText = `Activates: ${showAfter.toLocaleDateString(\"en-US\")}`;\n } else {\n badgeText = dueAt ? `Due: ${dueAt.toLocaleDateString(\"en-US\")}` : \"Active\";\n }\n\n const activityContent = activity.content;\n const hasTextInputs = deepFind(activityContent, (node) => node.type === \"textInput\");\n const hasOpenAiChats = deepFind(activityContent, (node) => node.type === \"openAiChat\");\n\n let activitySections;\n if (Array.isArray(activityContent[0])) {\n activitySections = [{\n type: \"section\",\n uid: \"root\",\n title: activity.name,\n content: activityContent,\n level: activity.placement_inside ? 2 : 1,\n }];\n } else {\n activitySections = activityContent;\n }\n\n activitySections = activitySections.map((activitySection, activitySectionIndex) => {\n const isFirstSection = activitySectionIndex === 0;\n const isLastSection = activitySectionIndex === activitySections.length - 1;\n\n let activityBlocks = Array.isArray(activitySection.content[0]) ? activitySection.content : [activitySection.content];\n activityBlocks = activityBlocks.map((activityBlock, activityBlockIndex) => {\n const isFirstBlock = activityBlockIndex === 0;\n const isLastBlock = activityBlockIndex === activityBlocks.length - 1;\n\n const activityBlockInputNodes = activityBlock.filter((node) => [\"textInput\", \"multipleChoice\", \"openAiChat\"].includes(node.type));\n\n const buttonUid = isLastBlock && isLastSection ? \"submit_button\" : (isFirstSection ? `submit_button_${activityBlockIndex}` : `submit_button_${activitySectionIndex}_${activityBlockIndex}`);\n let buttonActions = activityBlockInputNodes.map((inputNode) => newSetNodeKVPairAction(inputNode.uid, \"inactive\", 2));\n\n if (activity.is_graded) {\n buttonActions = buttonActions.concat(activityBlockInputNodes.map((inputNode) => newSetNodeKVPairAction(inputNode.uid, \"graded\", true)));\n }\n\n if (isLastBlock) {\n if (activity.is_graded) {\n const scoreableNodes = activityBlocks.flatMap((ab) => ab.filter((node) => [\"multipleChoice\"].includes(node.type)));\n const nodeScores = scoreableNodes.map((scorableNode) => {\n const isCorrect = scorableNode.content.every((answerOption) => !!answerOption.answer === !!activityUserState.state?.[answerOption.uid]?.value?.value);\n\n return isCorrect ? 1.0 : 0.0\n })\n\n if (nodeScores.length > 0) {\n const grade_percentage = R.sum(nodeScores) / nodeScores.length;\n buttonActions = buttonActions.concat(newSetNodeKVPairAction(\"root\", \"grade_percentage\", grade_percentage));\n }\n }\n\n const otherActivityBlocks = R.init(activityBlocks);\n const otherActivityNodes = otherActivityBlocks.flat().filter((node) => node.type !== \"button\");\n const showOtherActivityNodesActions = otherActivityNodes.map((node) => newSetNodeKVPairAction(node.uid, \"invisible\", false));\n\n buttonActions = buttonActions.concat(\n newSetNodeKVPairAction(buttonUid, \"inactive\", 2),\n ...showOtherActivityNodesActions,\n );\n\n if (isLastSection) {\n if (onComplete) {\n buttonActions = buttonActions.concat(onComplete)\n }\n } else {\n const nextActivitySection = activitySections[activitySectionIndex + 1];\n const showNextSection = [\n newSetNodeKVPairAction(nextActivitySection.uid, \"invisible\", false),\n newSetNodeKVPairAction(nextActivitySection.uid, \"collapsed\", false),\n ];\n\n buttonActions = buttonActions.concat(showNextSection)\n }\n } else {\n const hideCurrentNodes = activityBlock.map((node) => newSetNodeKVPairAction(node.uid, \"invisible\", true));\n\n const nextActivityBlock = activityBlocks[activityBlockIndex + 1];\n const showNextNodes = nextActivityBlock.map((node) => newSetNodeKVPairAction(node.uid, \"invisible\", false));\n\n const isNextActivityBlockLast = activityBlockIndex + 1 === activityBlocks.length - 1;\n const nextNextActivityButtonUid = isNextActivityBlockLast && isLastSection ? \"submit_button\" : (isFirstSection ? `submit_button_${activityBlockIndex + 1}` : `submit_button_${activitySectionIndex}_${activityBlockIndex + 1}`);\n\n buttonActions = buttonActions.concat(\n ...hideCurrentNodes,\n newSetNodeKVPairAction(buttonUid, \"invisible\", true),\n ...showNextNodes,\n newSetNodeKVPairAction(nextNextActivityButtonUid, \"invisible\", false),\n );\n }\n\n const submitButtonTitle = activitySection.submitButtonTitle;\n\n activityBlock = activityBlock.concat([\n generateNode(\"button\", {\n uid: buttonUid,\n title: isLastBlock && (submitButtonTitle || onCompleteTitle) ? (submitButtonTitle || onCompleteTitle) : \"Submit\",\n invisible: !isFirstBlock,\n onClick: buttonActions,\n })\n ]);\n\n\n return activityBlock;\n });\n\n return {\n ...activitySection,\n content: activityBlocks.flat(),\n nested: true,\n collapsible: !activity.placement_inside,\n collapsed: !activity.placement_inside,\n inactive: inactive,\n inactiveBoolean: inactiveBoolean,\n invisible: !isFirstSection,\n }\n })\n\n const state = activityUserState.state || {};\n const strippedState = R.map(R.map((valueData) => valueData.value), state);\n\n R.toPairs(strippedState).forEach(([uid, kvs]) => {\n const node = deepFindByUID(activitySections, uid);\n if (node) {\n R.toPairs(kvs).forEach(([key, value]) => {\n node[key] = value;\n });\n }\n });\n\n if (hasBeenSubmitted) {\n activitySections.forEach((activitySection) => {\n activitySection.content\n .filter((node) => node.type === \"textInput\")\n .forEach((node) => {\n node.inactive = 2;\n });\n });\n }\n\n let activityReview;\n if (activityUserState.reviewed_at) {\n activityReview = (\n <div className=\"activity-review\">\n <h4>Review:</h4>\n <div className=\"activity-review-inside\">\n <p>{activityUserState.review_comment}</p>\n </div>\n </div>\n );\n }\n\n let questionReportButton;\n if (!hasTextInputs) {\n questionReportButton = <DocQuestionReportButton/>\n }\n\n let exportPdfButton;\n if (hasTextInputs || hasOpenAiChats) {\n exportPdfButton = (\n <GenButton\n name=\"Export PDF\"\n href={`/activity_user_states/${activityUserStateLongId}.pdf`}\n target=\"_blank\"\n highlighted\n />\n )\n }\n\n let editActivityButton;\n if (currentUser.is_admin || currentRoleDefinition?.name === \"ReelDx_Faculty\") {\n editActivityButton = (\n <GenButton\n name=\"Edit Activity\"\n href={`/activities/${activity.id}/edit`}\n target=\"_blank\"\n highlighted\n />\n )\n }\n\n return (\n activitySections.filter((section) => !section.invisible).map((activitySection, activitySectionIndex) => (\n <DocSection\n key={activitySection.uid}\n {...activitySection}\n headerColor=\"#F1F3F3\"\n titleBadge={<div className=\"skill-badge bg-sky-600\">Activity</div>}\n rightContent={(\n <>\n {editActivityButton}\n {exportPdfButton}\n <div className=\"doc-due-date-badge due-at\">{badgeText}</div>\n </>\n )}\n aboveContent={activitySectionIndex === 0 && activityReview}\n currentDocument={currentDocument}\n currentVersion={currentVersion}\n editState={editState}\n currentUser={currentUserForActivity}\n currentRoleDefinition={currentRoleDefinition}\n currentDocumentSetDocumentRelation={currentDocumentSetDocumentRelation}\n currentActivityUserState={activityUserState}\n scheduableSectionUIDs={[]}\n reportButton={questionReportButton}\n displayState={displayState}\n />\n ))\n );\n}\n","import * as React from 'react';\n\nimport DocBookmark from './Bookmark'\nimport DocExtra from './Extra'\nimport DocInlineText from './InlineText'\n\ninterface DocAudioProps extends AudioBlockNode, EveryNodeArgs {};\n\nexport default function DocAudio(props: DocAudioProps) {\n const {\n currentVersion,\n editState,\n source,\n title,\n uid,\n uri,\n } = props;\n\n let renderedTitle = <figcaption>\n <DocInlineText\n content={title}\n uid={uid}\n contentKey=\"title\"\n editState={editState}\n />\n </figcaption>;\n\n switch (source) {\n case \"local\":\n if (!('aws_folder_url' in currentVersion)) { return }\n\n return (\n <div className=\"doc-audio doc-audio-local\">\n <audio preload=\"none\" controls>\n <source src={currentVersion.aws_folder_url + \"/original/audios/\" + uri} />\n </audio>\n {renderedTitle}\n <DocBookmark {...props} />\n </div>\n );\n case \"soundcloud\":\n return (\n <div className=\"doc-audio doc-audio-soundcloud\">\n <iframe width=\"100%\" height=\"450\" scrolling=\"no\" frameBorder=\"no\" src={\"https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/\" + uri + \"&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&visual=true\"}></iframe>\n {renderedTitle}\n <DocBookmark {...props} />\n </div>\n );\n default:\n return (\n <DocExtra\n subtype=\"error\"\n content={\"Unknown audio source type: \" + source}\n editState={editState}\n />\n );\n }\n}\n","import * as React from 'react';\n\nimport classNames from 'classnames'\n\nimport DocBookmark from './Bookmark'\nimport DocInlineText from './InlineText'\n\nimport { performActions } from '../../src/doc_actions'\n\ninterface DocButtonProps extends ButtonNode, EveryNodeArgs {};\n\nexport default function DocButton(props: DocButtonProps) {\n const onClick = () => {\n if (props.inactiveBoolean) {return null;}\n\n performActions(props.onClick, props.currentUser)\n };\n\n return (\n <div className={classNames(\"doc-button-slice\", {\"inactive\": props.inactiveBoolean})}>\n <button className=\"text-white bg-sky-600 hover:bg-sky-500 p-2 doc-button\" onClick={onClick}>\n <DocInlineText content={props.title} uid={props.uid} contentKey=\"title\" editState={props.editState} preventEditing/>\n </button>\n <DocBookmark {...props} />\n </div>\n );\n}\n","import * as React from 'react';\n\nimport classNames from 'classnames'\n\nimport DocBookmark from './Bookmark'\nimport DocInlineText from './InlineText'\n\ninterface DocCheckboxProps extends CheckboxNode, EveryNodeArgs {};\n\nexport default function DocCheckbox(props: DocCheckboxProps) {\n const onChanged: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n props.currentUser.addState({[e.target.id]: {\"value\": e.target.checked}});\n };\n\n const onClick: React.MouseEventHandler<HTMLInputElement | HTMLLabelElement> = (e) => {\n e.stopPropagation();\n };\n\n return (\n <div className={classNames(\"doc-checkbox\", {\"inactive\": props.inactiveBoolean})}>\n <input type=\"checkbox\" id={props.uid} disabled={props.inactiveBoolean} checked={props.value} onChange={onChanged} onClick={onClick}/>\n <label htmlFor={props.uid} onClick={onClick}>\n <span className=\"doc-checkbox-outer\"><span className=\"doc-checkbox-inner\"></span></span>\n <span className=\"doc-checkbox-title\">\n <DocInlineText content={props.content} uid={props.uid} contentKey=\"content\" editState={props.editState}/>\n </span>\n </label>\n <DocBookmark {...props} />\n </div>\n );\n}\n","import * as React from 'react';\n\nimport GenButton from '../Gen/Button'\n\n\ninterface DocCompletionNoticeProps extends EveryNodeArgs {\n grade_percentage: number;\n attempt_index: number;\n nextDocumentSetDocumentRelationId: number;\n};\n\nexport default function DocCompletionNotice(props: DocCompletionNoticeProps) {\n const {\n grade_percentage,\n attempt_index,\n nextDocumentSetDocumentRelationId,\n currentDocumentSetDocumentRelation,\n currentUser,\n } = props;\n\n if (!currentDocumentSetDocumentRelation) { return }\n\n let continueButton;\n if (nextDocumentSetDocumentRelationId) {\n continueButton = (\n <GenButton\n name=\"Continue to Next Case\"\n highlighted\n href={`/document_set_document_relations/${nextDocumentSetDocumentRelationId}`}\n />\n );\n }\n\n if (typeof grade_percentage !== \"number\") {\n return (\n <div className=\"doc-completion-notice pt-5\">\n <div className=\"doc-notice-green\">\n <h3>Congratulations!</h3>\n\n <p>You completed this case.</p>\n\n <div className=\"flex gap-3 mt-2\">\n {continueButton}\n </div>\n </div>\n </div>\n )\n }\n\n\n const renderedGrade = `${(grade_percentage * 100).toFixed(2)}%`\n const renderedPassingGrade = `${(currentDocumentSetDocumentRelation.document_set.passing_percentage * 100).toFixed()}%`\n if (grade_percentage > currentDocumentSetDocumentRelation.document_set.passing_percentage) {\n return (\n <div className=\"doc-completion-notice pt-5\">\n <div className=\"doc-notice-green\">\n <h3>Score: {renderedGrade}</h3>\n\n <p>Congratulations! You passed this case.</p>\n\n <div className=\"flex gap-3 mt-2\">\n {continueButton}\n </div>\n </div>\n </div>\n )\n } else if(attempt_index + 1 < currentDocumentSetDocumentRelation.document_set.attempt_limit) {\n return (\n <div className=\"doc-completion-notice pt-5\">\n <div className=\"doc-notice-red\">\n <h3>Score: {renderedGrade}</h3>\n\n <p>You did not complete a high enough percentage of the questions to receive a passing grade. A passing grade is {renderedPassingGrade}. Would you like to re-take? You may only do so once.</p>\n\n <div className=\"flex gap-3 mt-2\">\n <GenButton\n name=\"Retake\"\n highlighted\n onClick={() => {\n currentUser.resetDocumentSetDocumentState();\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }}\n />\n\n {continueButton}\n </div>\n </div>\n </div>\n )\n } else {\n return (\n <div className=\"doc-completion-notice pt-5\">\n <div className=\"doc-notice-red\">\n <h3>Score: {renderedGrade}</h3>\n\n <p>You did not complete a high enough percentage of the questions to receive a passing grade. A passing grade is {renderedPassingGrade}. Unfortunately you can no longer retake this case.</p>\n\n <div className=\"flex gap-3 mt-2\">\n {continueButton}\n </div>\n </div>\n </div>\n )\n }\n}\n","import * as React from 'react';\n\nimport DocBookmark from './Bookmark'\nimport DocImage from './Image'\n\ninterface DocImageGalleryProps extends ImageGalleryNode, EveryNodeArgs {};\n\nexport default function DocImageGallery(props: DocImageGalleryProps) {\n let images = props.images.map((image) => {\n const passToEveryNode = {\n currentDocument: props.currentDocument,\n currentVersion: props.currentVersion,\n currentUser: props.currentUser,\n displayState: props.displayState,\n editState: props.editState,\n\n currentDocumentSetDocumentRelation: props.currentDocumentSetDocumentRelation,\n currentRoleDefinition: props.currentRoleDefinition,\n }\n\n return (\n <div className=\"doc-image-gallery-slide\" key={image.uid}>\n <DocImage\n {...image}\n {...passToEveryNode}\n inGallery\n />\n </div>\n )\n });\n\n return (\n <div className=\"doc-image-gallery\">\n <div className=\"doc-image-gallery-scroller\">\n {images}\n </div>\n <DocBookmark {...props} />\n </div>\n );\n}\n","import * as React from 'react';\n\nimport classNames from 'classnames'\n\nimport DocBookmark from './Bookmark'\nimport DocInlineText from './InlineText'\n\ninterface DocMatcherProps extends MatcherNode, EveryNodeArgs {};\n\ninterface DocMatcherState {\n\n};\n\nexport default class DocMatcher extends React.Component<DocMatcherProps, DocMatcherState> {\n state = {\n activeMatchItemUID: null,\n activeMatchItemLetter: null\n };\n\n onMatchItemClick = (futureUID: string, futureLetter: string, e: React.MouseEvent<HTMLDivElement>) => {\n e.stopPropagation();\n\n if (this.props.inactiveBoolean) {return null;}\n\n let pastUID = this.state.activeMatchItemUID;\n let pastLetter = this.state.activeMatchItemLetter;\n\n if (pastUID) {\n if (pastUID === futureUID) {\n this.setState({activeMatchItemUID: null, activeMatchItemLetter: null});\n } else if (pastLetter === futureLetter) {\n this.setState({activeMatchItemUID: futureUID, activeMatchItemLetter: futureLetter});\n } else {\n this.setState({activeMatchItemUID: null, activeMatchItemLetter: null});\n\n let aUID, bUID;\n if (futureLetter === \"a\") {\n aUID = futureUID;\n bUID = pastUID;\n } else {\n aUID = pastUID;\n bUID = futureUID;\n }\n\n let filteredValues = (this.props.value || []).filter(value => value[0] !== aUID && value[1] !== bUID);\n\n let futureValues = filteredValues.concat([[aUID, bUID]]);\n\n this.props.currentUser.addState({[this.props.uid]: {\"value\": futureValues}});\n }\n } else {\n this.setState({activeMatchItemUID: futureUID, activeMatchItemLetter: futureLetter});\n }\n };\n\n renderMatcherRow(pair: readonly [MatcherItemNode, MatcherItemNode], isMatched: boolean) {\n let [a, b] = pair;\n\n let aClasses = classNames(\"doc-matcher-item doc-matcher-item-a\", {'selected': a.uid === this.state.activeMatchItemUID});\n let bClasses = classNames(\"doc-matcher-item doc-matcher-item-b\", {'selected': b.uid === this.state.activeMatchItemUID});\n\n return (\n <div className={classNames('doc-matcher-row', {'doc-matcher-matched-row': isMatched})} key={a.uid + b.uid}>\n <div className={aClasses} onClick={this.onMatchItemClick.bind(this, a.uid, \"a\")}>\n <p>\n <DocInlineText content={a.content} uid={a.uid} contentKey=\"content\" editState={this.props.editState}/>\n </p>\n </div>\n <div className={bClasses} onClick={this.onMatchItemClick.bind(this, b.uid, \"b\")}>\n <p>\n <DocInlineText content={b.content} uid={b.uid} contentKey=\"content\" editState={this.props.editState}/>\n </p>\n </div>\n </div>\n )\n }\n\n render() {\n let classes = classNames(\"doc-matcher\", {\"inactive\": this.props.inactiveBoolean})\n\n let restAs = this.props.contentA;\n let restBs = this.props.contentB;\n let valueIdPairs = this.props.value || [];\n\n let matchedPairs = valueIdPairs.map(valueIdPair => {\n let valueA = restAs.find(a => a.uid === valueIdPair[0]);\n let valueB = restBs.find(b => b.uid === valueIdPair[1]);\n\n if ((valueA !== undefined) && (valueB !== undefined)) {\n restAs = restAs.filter(a => a.uid !== valueIdPair[0]);\n restBs = restBs.filter(b => b.uid !== valueIdPair[1]);\n return([valueA, valueB] as const);\n } else {\n return(null);\n }\n }).filter(matchPair => matchPair !== null);\n\n let unmatchedPairs = restAs.map((restA, i) => [restAs[i], restBs[i]] as const);\n\n let matchedRows = matchedPairs.map(matchedPair => this.renderMatcherRow(matchedPair, true))\n let unmatchedRows = unmatchedPairs.map(unmatchedPair => this.renderMatcherRow(unmatchedPair, false))\n\n return (\n <div className={classes}>\n {matchedRows}\n {unmatchedRows}\n <DocBookmark {...this.props} />\n </div>\n )\n }\n}\n","import * as React from 'react';\n\nimport classNames from \"classnames\";\n\nimport DocBookmark from \"./Bookmark\";\nimport DocInlineText from \"./InlineText\";\n\ninterface DocMultipleChoiceProps extends MultipleChoiceNode, EveryNodeArgs {};\n\nexport default function DocMultipleChoice(props: DocMultipleChoiceProps) {\n const {\n uid,\n content,\n multipleSelect,\n editState,\n graded,\n inactiveBoolean,\n currentUser,\n feedback,\n } = props;\n\n const onValueChanged = (e) => {\n const state = {[e.target.id]: {value: e.target.checked}};\n\n if (!multipleSelect) {\n content\n .filter((answerOption) => answerOption.value && answerOption.uid !== e.target.id)\n .forEach((answerOption) => { state[answerOption.uid] = {value: false}; });\n }\n\n currentUser.addState(state);\n };\n\n const answers = content.map((answer) => (\n <li key={answer.uid} className={classNames(\"doc-multiple-choice-answer\", {answered: answer.value, [answer.answer ? \"correct\" : \"incorrect\"]: graded})}>\n { editState.isEditing && (\n <input\n type=\"checkbox\"\n checked={answer.answer}\n onChange={() => { editState.handleKeyValueChange(answer.uid, \"answer\", !answer.answer) }}\n />\n )}\n <input\n type=\"checkbox\"\n id={answer.uid}\n className=\"value-checkbox\"\n disabled={inactiveBoolean}\n checked={answer.value}\n onChange={onValueChanged}\n />\n <label\n htmlFor={answer.uid}\n >\n <span className=\"doc-multiple-choice-answer-outer\"><span className=\"doc-multiple-choice-answer-inner\" /></span>\n <span className=\"doc-multiple-choice-answer-title\">\n <DocInlineText content={answer.content} uid={answer.uid} contentKey=\"content\" editState={editState} />\n </span>\n {graded && (answer.value || answer.answer) && (\n <span style={{marginLeft: \"10px\"}}>\n {answer.answer ? <i className=\"fa fa-check text-green-600\"></i> : <i className=\"fa fa-times text-red-700\"></i> }\n </span>\n )}\n </label>\n </li>\n ));\n\n let renderedFeedback;\n if (graded || editState.isEditing) {\n let feedbackAnswers = content.map((answer) => (\n <li key={answer.uid} className=\"doc-multiple-choice-answer\">\n <DocInlineText content={answer.content} uid={answer.uid} contentKey=\"content\" editState={editState} />\n <span style={{marginLeft: \"10px\"}}>\n {answer.answer ? <i className=\"fa fa-check text-green-600\"></i> : <i className=\"fa fa-times text-red-700\"></i> }\n {answer.feedback}\n </span>\n </li>\n ))\n\n let renderedExtraFeedback;\n if (editState.isEditing) {\n renderedExtraFeedback = (\n <textarea\n value={feedback}\n onChange={(e) => editState.handleKeyValueChange(uid, \"feedback\", e.target.value)}\n onClick={() => editState.setCurrentlyEditing(null)}\n />\n )\n } else if(feedback) {\n renderedExtraFeedback = feedback.split(/\\r?\\n/).map((splitFeedback, i) => (\n <p key={i}>\n {splitFeedback}\n </p>\n ))\n }\n\n renderedFeedback = (\n <div className=\"border-solid border-2 border-black p-3 mt-3\">\n <h4>Correct Answers:</h4>\n {feedbackAnswers}\n <hr />\n {renderedExtraFeedback}\n </div>\n )\n }\n\n const instructions = multipleSelect ?\n <i>Select all that apply</i> :\n <i>Select the best answer</i>\n\n return (\n <ul className={classNames(\"doc-multiple-choice\", {inactive: inactiveBoolean, graded})}>\n {instructions}\n {answers}\n {renderedFeedback}\n <DocBookmark {...props} />\n </ul>\n );\n}\n","import * as React from 'react';\n\nimport DocBookmark from './Bookmark'\nimport DocListItem from './ListItem'\n\ninterface DocNumberedListProps extends NumberedListNode, EveryNodeArgs {};\n\nexport default function DocNumberedList(props: DocNumberedListProps) {\n let listItems = props.content.map(listItem => {\n return (\n <DocListItem\n key={listItem.uid}\n {...listItem}\n currentDocument={props.currentDocument}\n currentVersion={props.currentVersion}\n currentRoleDefinition={props.currentRoleDefinition}\n currentDocumentSetDocumentRelation={props.currentDocumentSetDocumentRelation}\n currentUser={props.currentUser}\n displayState={props.displayState}\n editState={props.editState}\n />\n );\n });\n\n return (\n <ol className=\"doc-numbered-list\">\n {listItems}\n <DocBookmark {...props} />\n </ol>\n );\n}\n","import * as React from 'react';\n\nimport DocBookmark from './Bookmark'\nimport DocInlineText from './InlineText'\n\ninterface DocParagraphProps extends ParagraphNode, EveryNodeArgs {};\n\nexport default function DocParagraph(props: DocParagraphProps) {\n return (\n <div className=\"doc-paragraph\">\n <p>\n <DocInlineText content={props.content} uid={props.uid} contentKey=\"content\" editState={props.editState}/>\n </p>\n <DocBookmark {...props} />\n </div>\n );\n}\n","import * as React from 'react';\n\nimport classNames from 'classnames'\n\nimport DocBookmark from './Bookmark'\n\ninterface DocRatingBarProps extends RatingBarNode, EveryNodeArgs {};\n\nexport default function DocRatingBar(props: DocRatingBarProps) {\n const {\n currentUser,\n inactiveBoolean,\n maxValue = 5,\n uid,\n value = 0,\n } = props;\n\n let stars = [];\n for (let i = 0; i < maxValue; i++) {\n stars.push(\n <span\n className={classNames(\"doc-rating-bar-star\", {\"doc-rating-bar-star-active\": i >= maxValue - value})}\n key={i}\n onClick={(e) => {\n e.stopPropagation();\n\n if (inactiveBoolean) {return null;}\n\n currentUser.addState({[uid]: {\"value\": maxValue - i}});\n }}\n >\n ☆\n </span>\n );\n }\n\n return (\n <div className={classNames(\"doc-rating-bar\", {\"inactive\": inactiveBoolean})}>\n {stars}\n <DocBookmark {...props} />\n </div>\n );\n}\n","import * as React from 'react';\n\nimport DocBookmark from './Bookmark'\nimport DocListItem from './ListItem'\n\ninterface DocRegularListProps extends RegularListNode, EveryNodeArgs {};\n\nexport default function DocRegularList(props: DocRegularListProps) {\n let listItems = props.content.map(listItem => {\n return (\n <DocListItem\n key={listItem.uid}\n {...listItem}\n currentDocument={props.currentDocument}\n currentVersion={props.currentVersion}\n currentRoleDefinition={props.currentRoleDefinition}\n currentDocumentSetDocumentRelation={props.currentDocumentSetDocumentRelation}\n currentUser={props.currentUser}\n displayState={props.displayState}\n editState={props.editState}\n />\n );\n });\n\n return (\n <ul className=\"doc-regular-list\">\n {listItems}\n <DocBookmark {...props} />\n </ul>\n );\n}\n","import * as React from 'react';\n\nimport classNames from 'classnames'\n\nimport DocBookmark from './Bookmark'\n\ninterface DocSliderBarProps extends SliderBarNode, EveryNodeArgs {};\n\ninterface DocSliderBarState {\n\n};\n\nexport default class DocSliderBar extends React.Component<DocSliderBarProps, DocSliderBarState> {\n state = {\n value: this.props.value ? this.props.value : this.props.minValue,\n timer: null\n };\n\n componentWillReceiveProps(newProps: DocSliderBarProps) {\n if ((newProps.value != this.props.value) && (newProps.value != this.state.value)) {\n this.setState({value: newProps.value});\n }\n }\n\n componentWillUnmount() {\n if (this.state.timer) {\n clearTimeout(this.state.timer);\n this.updateUSCWithTimer();\n }\n }\n\n handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n this.setState({value: parseInt(e.target.value)});\n\n if (this.state.timer) { clearTimeout(this.state.timer); }\n this.setState({timer: setTimeout(this.updateUSCWithTimer, 2000)});\n };\n\n updateUSC = () => {\n this.props.currentUser.addState({[this.props.uid]: {\"value\": this.state.value}});\n };\n\n updateUSCWithTimer = () => {\n this.updateUSC();\n this.setState({timer: null});\n };\n\n render() {\n return (\n <div className={classNames(\"doc-slider-bar\", {\"inactive\": this.props.inactiveBoolean})}>\n <input type=\"range\" min={this.props.minValue} max={this.props.maxValue} step={this.props.step} disabled={this.props.inactiveBoolean} value={this.state.value} onChange={this.handleChange}/>\n {this.props.showValue ? <h6>{this.state.value}</h6> : \"\"}\n <DocBookmark {...this.props} />\n </div>\n )\n }\n}\n","import * as React from 'react';\n\nimport classNames from 'classnames'\n\nimport DocBookmark from './Bookmark'\n\ninterface DocTextInputProps extends TextInputNode, EveryNodeArgs {};\n\ninterface DocTextInputState {\n\n};\nexport default class DocTextInput extends React.Component<DocTextInputProps, DocTextInputState> {\n state = {\n value: this.props.value,\n timer: null\n };\n\n componentWillUnmount() {\n if (this.state.timer) {\n clearTimeout(this.state.timer);\n this.updateUSCWithTimer();\n }\n }\n\n handleChange(e: React.ChangeEvent<HTMLTextAreaElement>) {\n this.setState({value: e.target.value});\n\n if (this.state.timer) { clearTimeout(this.state.timer); }\n this.setState({timer: setTimeout(this.updateUSCWithTimer.bind(this), 2000)});\n };\n\n updateUSC() {\n this.props.currentUser.addState({[this.props.uid]: {\"value\": this.state.value}});\n };\n\n updateUSCWithTimer() {\n this.updateUSC();\n this.setState({value: null, timer: null});\n };\n\n render() {\n let feedback;\n if (this.props.graded && this.props.feedback) {\n feedback = (\n <div className=\"border-solid border-2 border-black p-3\">\n <h4>Sample Response:</h4>\n {this.props.feedback}\n </div>\n )\n }\n\n return (\n <div className={classNames(\"doc-text-input\", {\"inactive\": this.props.inactiveBoolean})}>\n <textarea\n cols={40}\n rows={this.props.boxLines}\n maxLength={this.props.characterLimit}\n disabled={this.props.inactiveBoolean}\n value={this.state.value || this.props.value}\n onChange={this.handleChange.bind(this)}\n />\n <i>Instructions: Your answer is saved automatically. Once you submit, you will not be able to edit the text.</i>\n <DocBookmark {...this.props} />\n {feedback}\n </div>\n )\n }\n}\n","import * as React from 'react';\n\nimport * as R from 'ramda'\n\nimport {\n setNodeValueByUIDAndKey\n} from '../../src/doc_helpers'\n\nimport DocBookmark from './Bookmark'\nimport DocExtra from './Extra'\n\nimport DocInlineText from './InlineText'\n\nimport DocVideoJWPlayer from './VideoJWPlayer'\n\nimport { performActions } from '../../src/doc_actions'\n\ninterface DocVideoProps extends VideoNode, EveryNodeArgs {};\n\nexport default function DocVideo(props: DocVideoProps) {\n const onVideoEditClick = () => {\n if (props.editState.isEditing) {\n props.editState.setCurrentlyEditing({uid: props.uid, menu: 'mediaMenu', mediaType: 'video'})\n }\n }\n\n const handleImagingTypeChange = (e) => {\n props.editState.modifyEditJSON(json =>\n setNodeValueByUIDAndKey(json, props.uid, 'imagingType', e.target.value)\n )\n }\n\n let video;\n switch (props.source) {\n case \"local\":\n const videoURL = props.currentVersion.aws_folder_url +\n \"/original/videos/\" +\n props.uri\n\n video = <video preload=\"none\" controls>\n <source src={videoURL} />\n </video>\n\n break;\n case \"youtube\":\n video = <iframe width=\"560\" height=\"315\" src={\"https://www.youtube.com/embed/\" + props.uri} frameBorder=\"0\" allowFullScreen></iframe>\n\n break;\n case \"vimeo\":\n video = <iframe src={\"https://player.vimeo.com/video/\" + props.uri} width=\"500\" height=\"281\" frameBorder=\"0\" allowFullScreen></iframe>\n\n break;\n case \"reeldx\":\n let mediaAsset = props.currentDocument.media_assets.find(media_asset => media_asset.media_key === props.uri)\n\n let coverImageURL\n if (props.cover) {\n coverImageURL = `${props.currentVersion.aws_folder_url}/compressed/images/${props.cover}`\n }\n\n video = <DocVideoJWPlayer\n key={props.uri}\n videoURL={`https://d3o9veyy7wy4ai.cloudfront.net/${props.uri}`}\n coverImageURL={coverImageURL}\n hasCaptions={!!mediaAsset?.three_play_media_captions_processed_at || !mediaAsset} // TEMP: !mediaAsset enables captions even if file is not attached\n shouldLoop={!!mediaAsset?.is_silent}\n onVideoPlayEvent={time => props.currentUser.logEvent(props.uid, \"video_played\", time)}\n onVideoCompleteEvent={() => props.onVideoComplete && performActions(props.onVideoComplete, props.currentUser)}\n />\n\n break;\n default:\n return (\n <DocExtra\n subtype=\"error\"\n content={\"Unknown video source type: \" + props.source}\n editState={props.editState}\n />\n );\n }\n\n return (\n <div className={`doc-video doc-video-${props.source}`}>\n <div className=\"doc-video-wrapper\">\n {video}\n {props.editState.isEditing &&\n <>\n <i className=\"fa fa-cog bg-sky-600 p-2 doc-media-edit-button\" onClick={onVideoEditClick}> Edit Video</i>\n {'imagingTypes' in props && R.length(props.imagingTypes) > 0 &&\n <select value={props.imagingType} onChange={handleImagingTypeChange} className=\"tag-select\">\n <option value=\"\">Select Imaging Type</option>\n {props.imagingTypes.map((t) => <option value={t} key={t}>{t}</option>)}\n </select>\n }\n </>\n }\n </div>\n <figcaption>\n <DocInlineText content={props.title} uid={props.uid} contentKey=\"title\" editState={props.editState}/>\n </figcaption>\n <figcaption>\n {props.extraTitle}\n </figcaption>\n <DocBookmark {...props} />\n </div>\n );\n\n}\n","import * as React from 'react';\n\ninterface DocSectionScheduleStateProps {\n hideUntil: Date | boolean;\n};\n\nexport default function DocSectionScheduleStatus(props: DocSectionScheduleStateProps) {\n const {\n hideUntil,\n } = props\n\n let status\n let className = 'doc-section-schedule-status '\n if (hideUntil) {\n if (hideUntil instanceof Date) {\n if (hideUntil > new Date()) {\n status = `Hidden Until: ${(hideUntil.getMonth() + 1)}/${hideUntil.getDate()}/${hideUntil.getFullYear()}`\n className += \"visible-after-label\"\n } else {\n status = \"Visible\"\n className += \"visible-label\"\n }\n } else {\n status = \"Hidden\"\n className += \"hidden-label\"\n }\n } else {\n status = \"Visible\"\n className += \"visible-label\"\n }\n\n return <p className={className}>{status}</p>\n}\n","import * as React from 'react';\n\nimport GenButton from \"../Gen/Button\";\nimport GenModal from \"../Gen/Modal\";\n\ninterface DocQuestionReportButtonProps {};\n\nexport default function DocQuestionReportButton(props: DocQuestionReportButtonProps) {\n const [openModal, setOpenModel] = React.useState(false);\n const [responseText, setResponseText] = React.useState(\"\");\n\n const submitResponse = () => {\n setOpenModel(false);\n }\n\n const cancelResponse = () => {\n setOpenModel(false);\n }\n\n let modal\n if (openModal) {\n modal = <GenModal open>\n <div className=\"gen-modal-panel\">\n <h3>How can this question be improved?</h3>\n <textarea\n value={responseText}\n onChange={(e) => setResponseText(e.target.value)}\n placeholder=\"Enter Answer Here\"\n rows={4}\n />\n <div className=\"flex gap-3\">\n <GenButton\n name=\"Submit\"\n onClick={submitResponse}\n />\n <GenButton\n name=\"Cancel\"\n onClick={cancelResponse}\n />\n </div>\n </div>\n </GenModal>\n }\n\n return (\n <div className=\"absolute right-2 top-1\">\n <button className=\"flex items-center gap-1 hover:opacity-80\" onClick={() => setOpenModel(true)}>\n <i className=\"fa fa-exclamation-circle text-2xl\"></i>\n <span className=\"font-bold pt-1\">REPORT</span>\n </button>\n {modal}\n </div>\n )\n}\n","import * as React from 'react';\n\nimport GenButton from \"../Gen/Button\";\nimport GenMediaDuplicationTool from \"../Gen/MediaDuplicationTool\";\nimport GenMediaUploadButton from \"../Gen/MediaUploadButton\";\nimport GenModal from \"../Gen/Modal\";\n\nimport DocVideoJWPlayer from \"./VideoJWPlayer\";\n\nimport {capitalize} from \"lodash\";\n\nimport {\n setNodeValueByUIDAndKey,\n deleteNodeByUID,\n} from \"../../src/doc_helpers\";\n\ninterface DocMediaModalProps {\n currentDocument: CurrentDocument;\n currentVersion: CurrentVersion;\n editState: EditState;\n readDocument: () => void;\n currentUser: CurrentUser;\n currentRoleDefinition: CurrentRoleDefinition;\n}\n\nexport default function DocMediaModal(props: DocMediaModalProps) {\n const {\n currentDocument,\n currentVersion,\n editState,\n } = props;\n\n if (!(editState.currentlyEditing && editState.currentlyEditing.menu === \"mediaMenu\")) { return null; }\n\n const {mediaType} = editState.currentlyEditing;\n\n const mediaItems = mediaType === \"video\" ? currentDocument.media_assets : currentDocument[`${mediaType}s`];\n const renderedMediaItems = (mediaItems || []).map((mediaItem) => {\n const newURI = mediaType === \"video\" ? mediaItem.media_key : mediaItem;\n\n const selectMediaItem = () => {\n if (editState.currentlyEditing.isCoverImage) {\n editState.setEditFieldsVersion({cover_image: newURI});\n } else {\n editState.modifyEditJSON((json) => setNodeValueByUIDAndKey(json, editState.currentlyEditing.uid, \"uri\", newURI));\n }\n editState.setCurrentlyEditing(null);\n };\n\n let preview; let displayName; let\n extraControls;\n switch (mediaType) {\n case \"audio\":\n preview = <i className=\"fa fa-music\" />;\n displayName = mediaItem;\n break;\n case \"image\":\n preview = <img src={`${currentVersion.aws_folder_url}/compressed/${mediaType}s/${mediaItem}`} />;\n displayName = mediaItem;\n break;\n case \"video\":\n preview = (\n <DocVideoJWPlayer\n videoKey={`media-menu-${mediaItem.media_key}`}\n videoURL={`https://d3o9veyy7wy4ai.cloudfront.net/${mediaItem.media_key}`}\n hasCaptions={!!mediaItem?.three_play_media_captions_processed_at}\n shouldLoop={mediaItem.is_silent}\n />\n );\n\n displayName = `${mediaItem.name} (ID: ${mediaItem.id})`;\n extraControls = (\n <>\n <GenButton name=\"Download mp4\" href={mediaItem.main_mp4_url} target=\"_blank\" highlighted small />\n <GenButton name=\"Download Original\" href={mediaItem.original_url} target=\"_blank\" highlighted small />\n {!!mediaItem.three_play_media_captions_processed_at && (\n <>\n <GenButton name=\"Download vtt\" href={mediaItem.vtt_captions_url} target=\"_blank\" highlighted small />\n <GenButton name=\"Download srt\" href={mediaItem.srt_captions_url} target=\"_blank\" highlighted small />\n </>\n )}\n </>\n );\n }\n\n return (\n <div key={newURI}>\n {preview}\n <h6 style={{margin: \"5px 0\"}}>{displayName}</h6>\n <div className=\"flex gap-2\">\n <GenButton name=\"Select\" onClick={selectMediaItem} highlighted small />\n {extraControls}\n </div>\n <hr className=\"my-6\" />\n </div>\n );\n });\n\n let ultrasoundUploadButton;\n let extraBottomTools;\n if (mediaType === \"video\") {\n ultrasoundUploadButton = (\n <GenMediaUploadButton\n documentId={currentDocument.id}\n mediaType={mediaType}\n editState={editState}\n onSuccess={() => props.readDocument()}\n titleEnding=\"Loop\"\n mediaOptions={{is_silent: true}}\n />\n );\n\n extraBottomTools = (\n <GenMediaDuplicationTool\n documentId={currentDocument.id}\n onSuccess={() => props.readDocument()}\n />\n );\n }\n\n const deleteMediaFunction = () => {\n editState.modifyEditJSON((json) => deleteNodeByUID(json, editState.currentlyEditing.uid));\n editState.setCurrentlyEditing(null);\n };\n\n return (\n <GenModal open>\n <div className=\"gen-modal-panel\">\n <div className=\"clearfix\">\n <h4 style={{float: \"left\"}}>{capitalize(mediaType)}s</h4>\n <div style={{float: \"right\"}} className=\"flex gap-2\">\n <GenButton\n name=\"Delete\"\n onClick={deleteMediaFunction}\n highlighted\n />\n <GenMediaUploadButton\n documentId={currentDocument.id}\n mediaType={mediaType}\n editState={editState}\n onSuccess={() => props.readDocument()}\n />\n {ultrasoundUploadButton}\n <GenButton name={<i className=\"fa fa-times\" />} onClick={() => editState.setCurrentlyEditing(null)} highlighted />\n </div>\n </div>\n <hr className=\"my-6\" />\n <div>\n {renderedMediaItems}\n </div>\n {extraBottomTools}\n </div>\n </GenModal>\n );\n}\n","import * as React from \"react\";\n\nimport GenButton from \"./Button\";\n\nfunction parseInputStringForInt(inputString: string) {\n const regexMatch = inputString.match(/\\d+/)?.[0]\n\n if (!regexMatch) { return undefined }\n\n const digitMatch = parseInt(regexMatch);\n return isNaN(digitMatch) ? undefined : digitMatch;\n}\n\ninterface GenMediaDuplicationToolProps {\n onSuccess: () => void;\n onError?: (error: string) => void;\n documentId: number;\n}\n\nexport default function GenMediaDuplicationTool(props: GenMediaDuplicationToolProps) {\n const {\n onSuccess,\n onError,\n documentId,\n } = props;\n\n const [mediaAssetId, setMediaAssetId] = React.useState<number>();\n const [duration, setDuration] = React.useState<number>();\n const [isProcessing, setIsProcessing] = React.useState(false);\n\n const submitFunction = () => {\n setIsProcessing(true);\n\n fetch(`/media_assets/${mediaAssetId}/duplicate`, {\n method: \"POST\",\n body: JSON.stringify({\n media_asset: {\n duration,\n document_id: documentId,\n },\n }),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`) }\n\n return response.json();\n })\n .then(() => {\n if (onSuccess) { onSuccess(); }\n setIsProcessing(false);\n })\n .catch((error) => {\n alert(\"Error Duplicating Media\");\n\n if (onError) { onError(error); }\n setIsProcessing(false);\n });\n };\n\n return (\n <div>\n <h3>Duplicate and Shorten Video:</h3>\n <label>Video Id:</label>\n <input\n type=\"text\"\n name=\"title\"\n value={mediaAssetId || \"\"}\n onChange={(e) => setMediaAssetId(parseInputStringForInt(e.target.value))}\n />\n\n <label>Duration in Seconds:</label>\n <input\n type=\"text\"\n name=\"title\"\n value={duration || \"\"}\n onChange={(e) => setDuration(parseInputStringForInt(e.target.value))}\n />\n\n <GenButton\n name=\"Duplicate\"\n loading={isProcessing}\n disabled={!mediaAssetId}\n onClick={submitFunction}\n />\n </div>\n );\n}\n","import * as React from 'react';\n\nimport * as R from 'ramda'\n\nimport GenButton from '../Gen/Button'\nimport GenModal from '../Gen/Modal'\n\nimport {\n deepFindByUID,\n setNodeValueByUIDAndKey,\n} from '../../src/doc_helpers'\n\nconst EDIT_METADATA_LOOKUP_BY_TYPE = {\n openAiChat: [\n {\n key: \"aiInstructions\",\n inputType: \"textarea\",\n label: \"AI Prompt\",\n },\n {\n key: 'assistantDisplayName',\n inputType: \"textinput\",\n label: \"AI Display Name\",\n },\n {\n key: 'assistantDisplayImage',\n inputType: \"textinput\",\n label: \"AI Display Image\",\n extraExplination: \"Use a file name for an image uploaded to the case this activity is used in. If blank then display name will be used.\",\n },\n {\n key: 'userDisplayName',\n inputType: \"textinput\",\n label: \"User Display Name\",\n },\n {\n key: 'userDisplayImage',\n inputType: \"textinput\",\n label: \"User Display Image\",\n extraExplination: \"Use a file name for an image uploaded to the case this activity is used in. If blank then display name will be used.\",\n },\n {\n key: 'placeholderText',\n inputType: \"textinput\",\n label: \"Placeholder Text\",\n },\n {\n key: 'startWithAssistant',\n inputType: \"checkbox\",\n label: \"Start with AI\",\n },\n ],\n}\n\ninterface DocEdtMetadataProps {\n editState: any;\n mergedJSON: BlockContent;\n currentDocument: CurrentDocument;\n currentVersion: CurrentVersion;\n currentUser: CurrentUser;\n currentRoleDefinition: CurrentRoleDefinition;\n};\n\nexport default function DocEditMetadataModal(props: DocEdtMetadataProps) {\n const {\n editState,\n mergedJSON,\n } = props\n\n if (!editState.isEditor || !editState.editMetadataUid) {\n return null;\n }\n\n const editMetadataNode = deepFindByUID(mergedJSON, editState.editMetadataUid)\n\n let metadataInputs = EDIT_METADATA_LOOKUP_BY_TYPE[editMetadataNode.type].map((keyMetadata) => {\n let inputInput;\n switch (keyMetadata.inputType) {\n case \"textarea\":\n inputInput = (\n <textarea rows={10} value={editMetadataNode[keyMetadata.key] || \"\"} onChange={(e) => {\n editState.modifyEditJSON(json => {\n return setNodeValueByUIDAndKey(json, editState.editMetadataUid, keyMetadata.key, e.target.value);\n })}}\n />\n )\n\n break;\n case \"textinput\":\n inputInput = (\n <input type=\"text\" value={editMetadataNode[keyMetadata.key] || \"\"} onChange={(e) => {\n editState.modifyEditJSON(json => {\n return setNodeValueByUIDAndKey(json, editState.editMetadataUid, [keyMetadata.key], !e.target.value || R.isEmpty(e.target.value) ? \"\" : e.target.value);\n })}}\n />\n )\n\n break;\n case \"checkbox\":\n inputInput = (\n <input type=\"checkbox\" checked={!!editMetadataNode.startWithAssistant} onChange={(e) => {\n editState.modifyEditJSON(json => {\n return setNodeValueByUIDAndKey(json, editState.editMetadataUid, 'startWithAssistant', e.target.checked);\n })}}\n />\n )\n\n break;\n default:\n break;\n }\n\n return (\n <div key={keyMetadata.key}>\n <label>{keyMetadata.label || keyMetadata.key}:</label>\n {keyMetadata.extraExplination && <p>{keyMetadata.extraExplination}</p>}\n {inputInput}\n </div>\n );\n })\n\n return (\n <GenModal open>\n <div className=\"gen-modal-panel\">\n <h1>Settings for {editMetadataNode.type}</h1>\n\n <div>\n <label>UID: {editMetadataNode.uid}</label>\n </div>\n\n {metadataInputs}\n\n <GenButton\n name=\"Close\"\n highlighted\n onClick={() => editState.setEditMetadata(null)}\n />\n </div>\n </GenModal>\n )\n}\n","import * as React from 'react';\n\nimport * as R from 'ramda'\n\nimport GenButton from '../Gen/Button'\nimport GenPostButton from '../Gen/PostButton'\n\nimport {\n inlineHTMLToJSON,\n inlineJSONToHTML\n} from '../../src/convert'\n\nimport {\n DISPLAY_MODES,\n displayModeDisplayName,\n} from '../../src/display_mode'\n\nimport {\n generateNode,\n insertAfterNodeByUIDAtSectionLevel,\n setNodeValueByUIDAndKey,\n modifyNodeValueByUIDAndKey,\n replaceNodeByUID,\n replaceNodeWithArrayByUID,\n} from '../../src/doc_helpers'\n\nimport {\n setStyleArg\n} from '../../src/inline_json'\n\nimport {\n generateStyleFunction\n} from '../../src/style'\n\nimport { fullURL } from '../../src/url'\n\nfunction isCurrentlyEditingText(currentlyEditing) {\n return currentlyEditing?.uid && currentlyEditing?.range && currentlyEditing?.key\n}\n\ninterface DocTopBarProps {\n editState: EditState;\n currentDocument: CurrentDocument;\n displayState: DisplayState;\n currentVersion: CurrentVersion;\n currentUser: CurrentUser;\n currentRoleDefinition: CurrentRoleDefinition;\n currentDocumentSetDocumentRelation: CurrentDocumentSetDocumentRelation;\n};\n\nexport default function DocTopBar(props: DocTopBarProps) {\n const {\n editState,\n currentDocument,\n displayState,\n } = props\n\n const onListButtonClickGenerator = (listType) => {\n const {\n editState,\n } = props\n\n return () => {\n let node = editState.currentlyEditingNode\n\n let newNode = generateNode(listType)\n let newListItem = newNode.content[0]\n\n const newRangeSelection = editState.currentlyEditing?.range || {start: 0, end: 0}\n\n switch (node.type) {\n case \"listItem\":\n let parentList = R.findLast(node => (R.includes(node.type, [\"regularList\", \"numberedList\"])), editState.currentlyEditingAncestors)\n\n if (parentList.type === listType) {\n const newParagraph = generateNode('paragraph', {content: node.content})\n\n editState.modifyEditJSON(json => {\n let replaceWithArray = []\n\n const indexOfNode = parentList.content.findIndex(childNode => childNode.uid === node.uid)\n const numberOfSiblings = parentList.content.length\n\n if (indexOfNode > 0) {\n const newFirstList = R.over(R.lensProp('content'), R.slice(0, indexOfNode), parentList)\n replaceWithArray = R.append(newFirstList, replaceWithArray)\n }\n\n replaceWithArray = R.append(newParagraph, replaceWithArray)\n\n if (numberOfSiblings > indexOfNode + 1) {\n const newSecondList = generateNode(listType, {content: R.slice(indexOfNode + 1, Infinity, parentList.content)})\n replaceWithArray = R.append(newSecondList, replaceWithArray)\n }\n\n return replaceNodeWithArrayByUID(json, parentList.uid, replaceWithArray)\n })\n\n editState.setCurrentlyEditing({uid: newParagraph.uid, range: newRangeSelection, key: 'content'})\n } else {\n editState.modifyEditJSON(json => setNodeValueByUIDAndKey(json, parentList.uid, 'type', listType))\n }\n break;\n case \"paragraph\":\n newListItem.content = node.content\n\n editState.modifyEditJSON(json => replaceNodeByUID(json, editState.currentlyEditing.uid, newNode))\n editState.setCurrentlyEditing({uid: newListItem.uid, range: newRangeSelection, key: 'content'})\n break;\n default:\n editState.modifyEditJSON(json => insertAfterNodeByUIDAtSectionLevel(json, editState.currentlyEditing.uid, newNode))\n editState.setCurrentlyEditing({uid: newListItem.uid, range: newRangeSelection, key: 'content'})\n }\n }\n }\n\n const onMediaButtonClickGenerate = (mediaType) => {\n const {\n editState,\n currentDocument,\n } = props\n\n return () => {\n const newKey = {\n image: currentDocument?.images?.[0],\n audio: currentDocument?.audios?.[0],\n video: currentDocument?.media_assets?.[0]?.media_key,\n }[mediaType]\n\n const newNodeArgs = {\n image: {uri: newKey},\n audio: {uri: newKey, source: 'local'},\n video: {uri: newKey, soure: 'reeldx'},\n }[mediaType]\n\n const newNode = generateNode(mediaType, newNodeArgs)\n\n editState.modifyEditJSON(json => insertAfterNodeByUIDAtSectionLevel(json, editState.currentlyEditing.uid, newNode))\n editState.setCurrentlyEditing({uid: newNode.uid, menu: 'mediaMenu', mediaType: mediaType})\n }\n }\n\n if (editState.isEditor) {\n let styleButtons = ([\n ['bold', 'b'],\n ['italic', 'i'],\n ['underline', 'u'],\n ['subscript', 'sub'],\n ['superscript', 'sup'],\n ['link', 'a']\n ] as const).map(([styleName, tagName]) => {\n let activeStyle = editState.currentlyActiveStyles?.find(style => style.type === tagName)\n let newlyActive = editState.currentlyEditing?.['newlyActiveStyles']?.find(style => style.type === tagName)\n let newlyInactive = editState.currentlyEditing?.['newlyInactiveStyles']?.find(style => style.type === tagName)\n\n let extraControls\n if ((activeStyle || newlyActive) && !newlyInactive) {\n if (styleName === 'link') {\n let handleChange, linkValue\n if (activeStyle) {\n // Update Current Style\n linkValue = activeStyle.args?.href || \"\"\n handleChange = (event) => {\n let newLinkValue = event.target.value\n editState.modifyEditJSON(json => {\n return modifyNodeValueByUIDAndKey(json, editState.currentlyEditing.uid, editState.currentlyEditing.key, inlineHTML => {\n let newInlineJSON = setStyleArg(inlineHTMLToJSON(inlineHTML), tagName, editState.currentlyEditing.range.start, 'href', newLinkValue)\n return inlineJSONToHTML(newInlineJSON)\n })\n })\n }\n } else {\n // Update newlyActiveStyles\n linkValue = newlyActive.args?.href || \"\"\n handleChange = (event) => {\n let newLinkValue = event.target.value\n editState.setCurrentlyEditing({...editState.currentlyEditing,\n newlyActiveStyles: editState.currentlyEditing.newlyActiveStyles.map(style => style.type === 'a' ? R.assoc('args', {href: newLinkValue}, style) : style)\n })\n }\n }\n\n extraControls = <input\n value={linkValue}\n onChange={handleChange}\n style={{width: '200px'}}\n type='text'\n onFocus={(e) => editState.setCurrentlyEditing({...editState.currentlyEditing,\n selectionMenu: 'link'\n })}\n onBlur={(e) => editState.setCurrentlyEditing({...editState.currentlyEditing,\n selectionMenu: undefined\n })}\n />\n }\n }\n\n return (\n <React.Fragment key={styleName}>\n <GenButton\n spanClasses={ (activeStyle || newlyActive) && !newlyInactive ? 'bg-sky-600' : 'bg-white' }\n key={styleName}\n highlighted={(activeStyle || newlyActive) && !newlyInactive}\n disabled={!isCurrentlyEditingText(editState.currentlyEditing)}\n name={<i className={`fa fa-${styleName}`}></i>}\n onClick={generateStyleFunction(tagName, editState)}\n />\n {extraControls}\n </React.Fragment>\n )\n })\n\n return (\n <div className=\"doc-top-bar\">\n <div>\n <GenButton\n name={<i className=\"fa fa-save\"></i>}\n highlighted\n disabled={!editState.hasUnsavedChanges}\n onClick={editState.save}\n />\n {displayState.documentType !== \"Activity\" && (\n <GenPostButton\n name=\"Publish\"\n highlighted\n disabled={editState.hasUnsavedChanges}\n url={fullURL(`/documents/${currentDocument.id}/publish`)}\n data={{}}\n />\n )}\n <div className=\"doc-top-bar-divider\"/>\n <select className=\"my-1 doc-mode-selection\" value={displayState.displayMode} onChange={(e) => displayState.setDisplayMode(e.target.value)}>\n {Object.values(DISPLAY_MODES).map(displayMode => <option key={displayMode} value={displayMode}>{displayModeDisplayName(displayMode)}</option>)}\n </select>\n <div className=\"doc-top-bar-divider\"/>\n <GenButton\n spanClasses=\"bg-white\"\n name={<i className=\"fa fa-undo\"></i>}\n disabled={editState.undoQueue.length === 0}\n onClick={editState.undo}\n />\n <GenButton\n spanClasses=\"bg-white\"\n name={<i className=\"fa fa-repeat\"></i>}\n disabled={editState.redoQueue.length === 0}\n onClick={editState.redo}\n />\n <div className=\"doc-top-bar-divider\"/>\n <GenButton\n spanClasses={editState.currentlyEditingNode?.type === 'listItem' ? 'bg-sky-600' : 'bg-white'}\n name={<i className=\"fa fa-list-ul\"></i>}\n disabled={!isCurrentlyEditingText(editState.currentlyEditing)}\n highlighted={editState.currentlyEditingNode?.type === 'listItem'}\n onClick={onListButtonClickGenerator('regularList')}\n />\n <GenButton\n spanClasses={editState.currentlyEditingNode?.type === 'numberedList' ? 'bg-sky-600' : 'bg-white'}\n name={<i className=\"fa fa-list-ol\"></i>}\n disabled={!isCurrentlyEditingText(editState.currentlyEditing)}\n highlighted={editState.currentlyEditingNode?.type === 'numberedList'}\n onClick={onListButtonClickGenerator('numberedList')}\n />\n <GenButton\n spanClasses={editState.currentlyEditingNode?.type === 'image' ? 'bg-sky-600' : 'bg-white'}\n name={<i className=\"fa fa-image\"></i>}\n disabled={!isCurrentlyEditingText(editState.currentlyEditing)}\n highlighted={editState.currentlyEditingNode?.type === 'image'}\n onClick={onMediaButtonClickGenerate('image')}\n />\n <GenButton\n spanClasses={editState.currentlyEditingNode?.type === 'audio' ? 'bg-sky-600' : 'bg-white'}\n name={<i className=\"fa fa-music\"></i>}\n disabled={!isCurrentlyEditingText(editState.currentlyEditing)}\n highlighted={editState.currentlyEditingNode?.type === 'audio'}\n onClick={onMediaButtonClickGenerate('audio')}\n />\n <GenButton\n spanClasses={editState.currentlyEditingNode?.type === 'video' ? 'bg-sky-600' : 'bg-white'}\n name={<i className=\"fa fa-video-camera\"></i>}\n disabled={!isCurrentlyEditingText(editState.currentlyEditing)}\n highlighted={editState.currentlyEditingNode?.type === 'video'}\n onClick={onMediaButtonClickGenerate('video')}\n />\n <div className=\"doc-top-bar-divider\"/>\n {styleButtons}\n </div>\n <div>\n </div>\n </div>\n )\n } else {\n return null\n }\n}\n","import React from 'react';\n\nimport CaptureSummary from 'Document/CaptureSummary'\n\nexport const captureListDefaults = {\n title:\"My Cases\",\n itemsURL:\"/captures\",\n itemView:function(document){\n return(<CaptureSummary document={document} key={document.id}/>);\n },\n search:true,\n searchPlaceHolder: \"Search by title, or case #...\",\n sortOptions:[\n {\n \"title\": \"Case #\",\n \"value\": \"documents.id\"\n },\n {\n \"title\": \"Published\",\n \"value\": \"documents.created_at\"\n }\n ]\n};\n","import React from 'react';\n\nexport default function CaptureSummary(\n {\n document,\n },\n) {\n const options = { year: 'numeric', month: 'long', day: 'numeric' };\n let created_at_date = new Date(document.created_at);\n let formatted_date = created_at_date.toLocaleDateString(\"en-US\", options);\n\n return (\n <a href={\"/documents/\" + document.id} style={{width: \"100%\"}}>\n <div className=\"capture_summary_row\">\n <div className=\"capture_summary_header\">\n <h1> {document.title} </h1>\n </div>\n <div className=\"capture_summary_details\">\n <p> <strong> Created: </strong> {formatted_date} <br/> </p>\n <p> <strong> Status: </strong> {document.pretty_status} </p>\n <p> <strong> Patient Age: </strong> {document.pretty_age} </p>\n </div>\n </div>\n </a>\n );\n}\n","import * as React from 'react';\n\ninterface GenPanelProps {\n className: string\n children: React.ReactElement;\n}\n\nexport default function GenPanel(\n {\n className,\n children,\n }: GenPanelProps,\n) {\n return (\n <div className={`gen-panel ${className}`}>\n {children}\n </div>\n );\n}\n","import * as React from 'react';\n\ninterface GenPanelSliceProps {\n children: React.ReactElement;\n}\n\nexport default function GenPanelSlice(\n {\n children,\n }: GenPanelSliceProps,\n) {\n return (\n <div className=\"gen-panel-slice\">\n {children}\n </div>\n );\n}\n","import React from 'react';\n\nexport default function DocumentSetSummary(props) {\n const {\n documentSet,\n } = props;\n\n return (\n <div className=\"panel\">\n <h1 className=\"name\">\n <a href={\"/document_sets/\" + documentSet.id} style={{color: \"#0570c7\"}}>\n {documentSet.name}\n </a>\n </h1>\n <p className=\"description\">{documentSet.description}</p>\n {documentSet.owner_full_name && <p> <strong> Course Owner: </strong> {documentSet.owner_full_name}</p>}\n </div>\n );\n}\n\n// Badge to add back in later\n// {documentSet.badge_url &&\n// <img src={documentSet.badge_url} alt=\"Course Badge\" class=\"ml-2 inline-block max-h-10\"/>\n// }\n","import React from 'react';\n\nimport classNames from 'classnames'\n\nimport DocumentSetDocumentRelationScheduleStatus from 'DocumentSetDocumentRelation/ScheduleStatus'\n\nimport { documentDisplayTitle } from 'src/document_display_title'\n\nexport default function DocumentSetDocumentRelationSummary(props) {\n const {\n documentSetDocumentRelation,\n documentSet,\n show_status,\n isLearner,\n } = props;\n\n const {\n document_set_document_activities,\n document_set_document_state,\n document,\n } = documentSetDocumentRelation;\n\n const activeActivities = document_set_document_activities.filter(\n dsda => !dsda.show_after || new Date() > new Date(dsda.show_after)\n )\n const skillBadge = `${activeActivities.length} ${activeActivities.length > 1 ? 'Activities' : 'Activity'}`\n const reviewedActivities = activeActivities.filter(dsda => Boolean(dsda.reviewed_at))\n const reviewedBadge = `${reviewedActivities.length} Reviewed`\n\n let gradeBadge;\n if (documentSetDocumentRelation.is_completed) {\n const renderedPercent = `${Math.round(document_set_document_state.grade_percentage * 100)}%`\n\n if (document_set_document_state.grade_percentage > documentSet.passing_percentage) {\n gradeBadge = <div className=\"skill-badge bg-green-600\"><i className=\"fa fa-check\"></i> {renderedPercent}</div>\n } else if(document_set_document_state.attempt_index + 1 < documentSet.attempt_limit) {\n gradeBadge = <div className=\"skill-badge bg-red-600\"><i className=\"fa fa-refresh\"></i> {renderedPercent}</div>\n } else {\n gradeBadge = <div className=\"skill-badge bg-red-600\"><i className=\"fa fa-times\"></i> {renderedPercent}</div>\n }\n }\n\n return(\n <a className=\"cover-wrapper cover summary\" href={documentSetDocumentRelation.is_locked ? \"#\" : `/document_set_document_relations/${documentSetDocumentRelation.id}`}>\n {show_status && <div className=\"visibility-status-bar\">\n <DocumentSetDocumentRelationScheduleStatus\n showAfter={documentSetDocumentRelation.show_after}\n showUntil={documentSetDocumentRelation.show_until}\n />\n </div>}\n <div className=\"skill-badges flex flex-col items-end gap-2\">\n { gradeBadge }\n {\n documentSetDocumentRelation.is_locked &&\n <div className=\"skill-badge bg-sky-600\"><i className=\"fa fa-lock\"></i></div>\n }\n {\n !documentSetDocumentRelation.is_gated && activeActivities.length > 0 &&\n <div className=\"skill-badge bg-sky-600\">{skillBadge}</div>\n }\n {\n !documentSetDocumentRelation.is_gated && isLearner && activeActivities.length > 0 && reviewedActivities.length > 0 &&\n <div className=\"skill-badge bg-sky-600\">{reviewedBadge}</div>\n }\n </div>\n <img className={classNames({\"locked-cover\": documentSetDocumentRelation.is_locked})} src={document.cover_image} alt={`Case ${document.id} Cover Image`}/>\n <h4 className=\"name\">{documentDisplayTitle(document)}</h4>\n </a>\n );\n}\n","import React from 'react'\n\nexport default function DocumentUserSummary(\n {\n documentUser,\n },\n) {\n return (\n <div className=\"panel\">\n <h1>{documentUser.user.first_name} {documentUser.user.last_name}</h1>\n <p>{documentUser.user.email}</p>\n </div>\n );\n}\n","import React from 'react';\n\nimport GenButton from 'Gen/Button'\nimport GenMore from 'Gen/More'\n\nimport { fullURL } from 'src/url'\n\nfunction filterKeys(object, keys) {\n let result = {};\n for (let key in object)\n if (keys.indexOf(key) > -1)\n result[key] = object[key];\n return result;\n}\n\nexport default class GenTable extends React.Component {\n // React.PropTypes\n // propTypes: {\n // // ids:\n // // notIds:\n // // itemsURL:\n // // search:\n // // sortOptions:\n // // filterOptions:\n // },\n //\n static defaultProps = {\n historyPersistance: false,\n defaultItemsPerPage: 12,\n };\n\n constructor(props, context) {\n super(props, context);\n const defaults = {\n currentItems: null,\n itemsPerPage: props.defaultItemsPerPage,\n pageNumber: 0,\n gettingNewPage: false,\n itemsLastRecieved: null,\n searchValue: \"\",\n searchTimer: null,\n sortValue: null,\n sortDirection: null,\n activeFilters: {},\n activeWhereFilters: {}\n };\n\n const history = this.getHistoryState();\n\n this.state = {\n ...defaults,\n ...history\n };\n }\n\n componentDidMount() {\n this.getUpdatedList();\n }\n\n componentWillUnmount() {\n if (this.state.timer) {\n clearTimeout(this.state.searchTimer);\n }\n }\n\n // search=string\n // page=int\n // sort_value=string\n // sort_order=string\n //\n getHistoryState = () => {\n let state = history.state;\n if (state === null) {\n state = {};\n }\n return(filterKeys(state, [\"searchValue\", \"sortValue\", \"sortDirection\", \"pageNumber\", \"activeFilters\", \"activeWhereFilters\"]));\n };\n\n setHistoryState = () => {\n const currentState = history.state;\n const newPartial = filterKeys(this.state, [\"searchValue\", \"sortValue\", \"sortDirection\", \"pageNumber\", \"activeFilters\", \"activeWhereFilters\"]);\n const newState = {...currentState, ...newPartial};\n\n history.replaceState(newState, document.title);\n };\n\n handleSearchChange = (e) => {\n this.setState({searchValue: e.target.value,\n currentItems: null,\n gettingNewPage: false,\n pageNumber: 0});\n\n if (this.state.searchTimer) { clearTimeout(this.state.searchTimer); }\n this.setState({searchTimer: setTimeout(this.updateSearchWithTimer, 1000)});\n };\n\n handleSearchKeyPress = (e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n };\n\n updateSearchWithTimer = () => {\n // this.updateUSC();\n this.getUpdatedList();\n this.setState({timer: null});\n };\n\n updateSort = (newSortValue) => {\n let newSortDirection = 'ascending'\n if (newSortValue === this.state.sortValue && this.state.sortDirection === 'ascending') {\n newSortDirection = 'descending'\n }\n\n this.setState({ sortValue: newSortValue,\n sortDirection: newSortDirection,\n currentItems: null,\n gettingNewPage: false,\n pageNumber: 0 }, this.getUpdatedList);\n };\n\n handleFilterChange = (that, newKey) => {\n return(function(newSelect){\n let newValue = newSelect.target.value;\n\n let currentActiveFilters = that.state.activeFilters;\n let newActiveFilters = {};\n for (let attr in currentActiveFilters) {\n if (attr != newKey) {\n newActiveFilters[attr] = currentActiveFilters[attr];\n }\n }\n\n if (newValue != \"All\") {\n newActiveFilters[newKey] = newValue;\n }\n\n that.setState({ activeFilters: newActiveFilters,\n currentItems: null,\n gettingNewPage: false,\n pageNumber: 0 }, that.getUpdatedList);\n });\n };\n\n handleWhereFilterChange = (that, newKey) => {\n return(function(newSelect){\n let newValue = newSelect.target.value;\n\n let currentActiveWhereFilters = that.state.activeWhereFilters;\n let newActiveWhereFilters = {};\n for (let attr in currentActiveWhereFilters) {\n if (attr != newKey) {\n newActiveWhereFilters[attr] = currentActiveWhereFilters[attr];\n }\n }\n\n if (newValue != \"All\") {\n newActiveWhereFilters[newKey] = newValue;\n }\n\n that.setState({ activeWhereFilters: newActiveWhereFilters,\n currentItems: null,\n gettingNewPage: false,\n pageNumber: 0 }, that.getUpdatedList);\n });\n };\n\n moreClick = () => {\n this.setState({ pageNumber: this.state.pageNumber + 1,\n gettingNewPage: true}, this.getAdditionalPage);\n };\n\n dataForQuery = () => {\n let data = {};\n\n if (this.props.ids) {\n data.ids = this.props.ids;\n }\n\n if (this.props.notIds) {\n data.not_ids = this.props.notIds;\n }\n\n if (this.state.searchValue && this.state.searchValue.trim() !== \"\") {\n data.search = this.state.searchValue;\n }\n\n if (this.state.sortValue) {\n data.sort_order = (this.state.sortDirection === \"descending\") ? \"DESC\" : \"ASC\";\n data.sort_by = this.state.sortValue;\n }\n\n\n if (this.state.itemsPerPage) {\n if (this.state.currentItems === null) {\n data.page = 0;\n data.per_page = (this.state.pageNumber + 1) * this.state.itemsPerPage;\n } else {\n data.page = this.state.pageNumber;\n data.per_page = this.state.itemsPerPage;\n }\n }\n\n let filterValues = [];\n for(let key in this.state.activeFilters) {\n filterValues.push(this.state.activeFilters[key]);\n }\n if (filterValues.length > 0) {\n data.filters = filterValues;\n }\n\n let whereValues = [];\n for(let key in this.state.activeWhereFilters) {\n let whereFilterOption = this.props.whereFilterOptions.find((wfo) => {return(wfo.title === key)})\n whereValues.push(whereFilterOption[\"options\"][this.state.activeWhereFilters[key]]);\n }\n if (whereValues.length > 0) {\n data.where = JSON.stringify(whereValues);\n }\n\n return data;\n };\n\n getPage = (successCallback) => {\n const params = new URLSearchParams(this.dataForQuery()).toString();\n const urlWithParams = `${fullURL(this.props.itemsURL)}?${params}`;\n\n fetch(urlWithParams, {\n headers: {\n Accept: \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then((data) => { successCallback.bind(this)(data) })\n .catch(() => {});\n };\n\n getUpdatedList = () => {\n this.getPage(function(result) {\n if (this.props.historyPersistance) { this.setHistoryState(); }\n this.setState({currentItems: result,\n itemsLastRecieved: result.length});\n });\n };\n\n getAdditionalPage = () => {\n this.getPage(function(result) {\n if (this.props.historyPersistance) { this.setHistoryState(); }\n this.setState({currentItems: (this.state.currentItems || []).concat(result),\n itemsLastRecieved: result.length,\n gettingNewPage: false});\n });\n };\n\n onItemClick = (item) => {\n let newSelected\n let selectedKey = this.props.selectedKey || \"id\"\n if (this.props.selected.indexOf(item[selectedKey]) >= 0) {\n newSelected = this.props.selected.filter(function(id){ return(id !== item[selectedKey]); });\n } else {\n newSelected = this.props.selected.concat([item[selectedKey]]);\n }\n\n this.props.onSelectionChange(newSelected);\n };\n\n selectAll = (successCallback) => {\n let selectedKey = this.props.selectedKey || \"id\"\n if (this.state.currentItems) {\n this.props.onSelectionChange(this.state.currentItems.map(function(item) { return(item[selectedKey]); }));\n } else {\n this.props.onSelectionChange([]);\n }\n };\n\n deselectAll = () => {\n this.props.onSelectionChange([]);\n };\n\n render() {\n let controlPanel\n if (this.props.search || this.props.filterOptions || this.props.whereFilterOptions) {\n let searchBox = null\n if (this.props.search) {\n searchBox = <form className=\"gen-list-search-bar\" role=\"search\">\n <input type=\"search\" placeholder=\"Search...\" value={this.state.searchValue} onChange={this.handleSearchChange} onKeyPress={this.handleSearchKeyPress} />\n </form>;\n }\n\n let filterOptions\n if (this.props.filterOptions || this.props.whereFilterOptions) {\n let activeFilters = this.state.activeFilters;\n let activeWhereFilters = this.state.activeWhereFilters;\n filterOptions = <div className=\"gen-list-filters\">\n {this.props.filterOptions && this.props.filterOptions.map(function(filter){\n let filterOut = <div key={filter.title} className=\"gen-list-filter\">\n <h6>{filter.title}</h6>\n <select defaultValue={activeFilters[filter.title] || \"All\"} onChange={this.handleFilterChange(this, filter.title)}>\n <option value=\"All\">All</option>\n {filter.options.map(function(option){\n return(\n <option key={option} value={option}>\n {option}\n </option>\n );\n })}\n </select>\n </div>;\n\n return( filterOut );\n }, this)}\n {this.props.whereFilterOptions && this.props.whereFilterOptions.map(function(whereFilter){\n let whereFilterOut = <div key={whereFilter.title} className=\"gen-list-filter\">\n <h6>{whereFilter.title}</h6>\n <select defaultValue={activeWhereFilters[whereFilter.title] || \"All\"} onChange={this.handleWhereFilterChange(this, whereFilter.title)}>\n <option value=\"All\">All</option>\n {Object.keys(whereFilter.options).map(function(option_key){\n return(\n <option key={option_key} value={option_key}>\n {option_key}\n </option>\n );\n })}\n </select>\n </div>;\n\n return( whereFilterOut );\n }, this)}\n </div>;\n }\n\n controlPanel = <div className=\"gen-list-control-panel\">\n {searchBox}\n {filterOptions}\n </div>;\n }\n\n let tableHeaderCells = this.props.columns.map((column) => {\n let orderArrow = null\n if (column.sort_column === this.state.sortValue) {\n if (this.state.sortDirection === 'ascending') {\n orderArrow = <span>▼</span>\n } else {\n orderArrow = <span>▲</span>\n }\n }\n\n let className = \"sort_cell \"\n if (column.column_width) {\n className = className + column.column_width + \"-column-size\"\n }\n\n return <td key={column.title} onClick={() => {this.updateSort(column.sort_column)}} className={className}>\n {column.title}\n {orderArrow}\n </td>\n })\n\n let tableHeader = <tr>\n <td key=\"select-box\" className=\"select-box\"></td>\n {tableHeaderCells}\n </tr>\n\n let itemRows\n if (this.state.currentItems === null) {\n itemRows = [];\n } else if (this.state.currentItems.length === 0) {\n itemRows = [];\n } else {\n itemRows = this.state.currentItems.map((item) => {\n let cells = this.props.columns.map(function(column) {\n let className = \"\"\n if (column.column_width) {\n className = column.column_width + \"-column-size\"\n }\n\n return <td key={column.title} className={className}>{column.calculated_value(item)}</td>\n })\n\n // Note: tailwind classes added dynamically will not be included in the build, unless it is\n // referenced somewhere else explicitly or added to the safelist in tailwind.config.js\n let classes = \"\"\n let selectedKey = (this.props.selectedKey) || \"id\"\n if (this.props.selected.indexOf(item[selectedKey]) >= 0) {\n classes = \"bg-sky-100\"\n }\n\n return <tr key={item[selectedKey]} className={classes}>\n <td key=\"select-box\" className=\"select-box\">\n <input\n type=\"checkbox\"\n checked={this.props.selected.indexOf(item[selectedKey]) >= 0}\n onChange={() => {this.onItemClick(item)}} />\n </td>\n {cells}\n </tr>\n });\n }\n\n return(\n <div className=\"gen-table\">\n <div className=\"gen-select-list-buttons\">\n <div className=\"gen-select-list-buttons-left flex gap-2 items-baseline\">\n <GenButton name={`Select ${this.state.currentItems ? this.state.currentItems.length + \" \" : \"\"}Shown`} onClick={this.selectAll} highlighted small/>\n <GenButton name=\"Deselect All\" onClick={this.deselectAll} highlighted small/>\n <span>{this.props.selected.length} selected</span>\n </div>\n <div className=\"gen-select-list-buttons-right\">\n {this.props.selectExtraButtons}\n </div>\n </div>\n {controlPanel}\n <table>\n <thead>\n {tableHeader}\n </thead>\n <tbody>\n {itemRows}\n </tbody>\n </table>\n <GenMore\n isSyncing={this.state.currentItems === null || this.state.gettingNewPage}\n itemsPerPage={this.state.itemsPerPage}\n lastPageLength={this.state.itemsLastRecieved}\n readListPage={this.moreClick}\n shouldInfiniteScroll={this.props.shouldInfiniteScroll}\n />\n </div>\n );\n }\n}\n","import React from \"react\";\n\nimport Moment from \"moment\";\n\nfunction hostnameWithoutSubdomain() {\n return window.location.host.split(\".\").slice(-2).join(\".\");\n}\n\nexport default function GroupSummary(\n {\n group,\n shouldShowExpiration,\n },\n) {\n let expirationView;\n if (group.expiration_date && shouldShowExpiration) {\n const momentTime = Moment(group.expiration_date);\n const inThePast = momentTime < (new Date());\n const formattedDate = momentTime.format(\"MMMM Do YYYY h:mm a\");\n\n if (inThePast) {\n expirationView = <span style={{color: \"red\"}}>Expired At: {formattedDate}</span>;\n } else {\n expirationView = <span style={{color: \"black\"}}>Expires At: {formattedDate}</span>;\n }\n }\n\n return (\n <div className=\"gen-select-item\">\n <h1 className=\"name\"><a href={`//${group.subdomain}.${hostnameWithoutSubdomain()}`}>{group.name}</a></h1>\n {expirationView}\n <p className=\"description\">{group.description}</p>\n </div>\n );\n}\n","import React from 'react';\n\nexport const groupListDefaults = {\n itemsURL:\"/groups\",\n search:true,\n sortOptions:[\n {\n \"title\": \"Name\",\n \"value\": \"groups.name\"\n },\n {\n \"title\": \"ID\",\n \"value\": \"groups.id\"\n }\n ]\n};\n","import React from 'react';\n\nexport default function UserSummary(\n {\n user,\n },\n) {\n return (\n <div className=\"panel\">\n <h1 className=\"full_name\">\n <a href={\"/users/\" + user.id}>\n <span className=\"first_name\">{user.first_name}</span> <span className=\"last_name\">{user.last_name}</span>\n </a>\n </h1>\n <p className=\"email\">{user.email}</p>\n </div>\n );\n}\n","import React from 'react'\n\nexport default function VersionSummary(\n {\n version,\n },\n) {\n return (\n <div className=\"panel\">\n <h1 className=\"name\">\n <a href={\"/versions/\" + version.id}>\n {version.updated_at}\n </a>\n </h1>\n <p>ID: {version.id}</p>\n </div>\n );\n}\n","var adapters = {\n logger: self.console,\n WebSocket: self.WebSocket\n};\nvar logger = {\n log() {\n if (this.enabled) {\n for (var _len = arguments.length, messages = new Array(_len), _key = 0; _key < _len; _key++) {\n messages[_key] = arguments[_key];\n }\n messages.push(Date.now());\n adapters.logger.log(\"[ActionCable]\", ...messages);\n }\n }\n};\nconst now = () => new Date().getTime();\nconst secondsSince = time => (now() - time) / 1e3;\nclass ConnectionMonitor {\n constructor(connection) {\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`);\n }\n }\n stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n }\n isRunning() {\n return this.startedAt && !this.stoppedAt;\n }\n recordPing() {\n this.pingedAt = now();\n }\n recordConnect() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n }\n recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n }\n startPolling() {\n this.stopPolling();\n this.poll();\n }\n stopPolling() {\n clearTimeout(this.pollTimeout);\n }\n poll() {\n this.pollTimeout = setTimeout(() => {\n this.reconnectIfStale();\n this.poll();\n }, this.getPollInterval());\n }\n getPollInterval() {\n const {\n staleThreshold: staleThreshold,\n reconnectionBackoffRate: reconnectionBackoffRate\n } = this.constructor;\n const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10));\n const jitterMax = this.reconnectAttempts === 0 ? 1 : reconnectionBackoffRate;\n const jitter = jitterMax * Math.random();\n return staleThreshold * 1e3 * backoff * (1 + jitter);\n }\n reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`);\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`);\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n }\n get refreshedAt() {\n return this.pingedAt ? this.pingedAt : this.startedAt;\n }\n connectionIsStale() {\n return secondsSince(this.refreshedAt) > this.constructor.staleThreshold;\n }\n disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n }\n visibilityDidChange() {\n if (document.visibilityState === \"visible\") {\n setTimeout(() => {\n if (this.connectionIsStale() || !this.connection.isOpen()) {\n logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`);\n this.connection.reopen();\n }\n }, 200);\n }\n }\n}\nConnectionMonitor.staleThreshold = 6;\nConnectionMonitor.reconnectionBackoffRate = .15;\nvar INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\"\n },\n default_mount_path: \"/cable\",\n protocols: [\"actioncable-v1-json\", \"actioncable-unsupported\"]\n};\nconst {\n message_types: message_types,\n protocols: protocols\n} = INTERNAL;\nconst supportedProtocols = protocols.slice(0, protocols.length - 1);\nconst indexOf = [].indexOf;\nclass Connection {\n constructor(consumer) {\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n }\n open() {\n if (this.isActive()) {\n logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`);\n return false;\n } else {\n logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${protocols}`);\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n }\n close() {\n let {\n allowReconnect: allowReconnect\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n allowReconnect: true\n };\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isOpen()) {\n return this.webSocket.close();\n }\n }\n reopen() {\n logger.log(`Reopening WebSocket, current state is ${this.getState()}`);\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`);\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n }\n getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n }\n isOpen() {\n return this.isState(\"open\");\n }\n isActive() {\n return this.isState(\"open\", \"connecting\");\n }\n isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n }\n isState() {\n for (var _len2 = arguments.length, states = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n states[_key2] = arguments[_key2];\n }\n return indexOf.call(states, this.getState()) >= 0;\n }\n getState() {\n if (this.webSocket) {\n for (let state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n return null;\n }\n installEventHandlers() {\n for (let eventName in this.events) {\n const handler = this.events[eventName].bind(this);\n this.webSocket[`on${eventName}`] = handler;\n }\n }\n uninstallEventHandlers() {\n for (let eventName in this.events) {\n this.webSocket[`on${eventName}`] = function () {};\n }\n }\n}\nConnection.reopenDelay = 500;\nConnection.prototype.events = {\n message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n const {\n identifier: identifier,\n message: message,\n reason: reason,\n reconnect: reconnect,\n type: type\n } = JSON.parse(event.data);\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n case message_types.disconnect:\n logger.log(`Disconnecting. Reason: ${reason}`);\n return this.close({\n allowReconnect: reconnect\n });\n case message_types.ping:\n return this.monitor.recordPing();\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier);\n return this.subscriptions.notify(identifier, \"connected\");\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open() {\n logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`);\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close(event) {\n logger.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error() {\n logger.log(\"WebSocket onerror event\");\n }\n};\nconst extend = function (object, properties) {\n if (properties != null) {\n for (let key in properties) {\n const value = properties[key];\n object[key] = value;\n }\n }\n return object;\n};\nclass Subscription {\n constructor(consumer) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let mixin = arguments.length > 2 ? arguments[2] : undefined;\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n perform(action) {\n let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n data.action = action;\n return this.send(data);\n }\n send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n }\n unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n }\n}\nclass SubscriptionGuarantor {\n constructor(subscriptions) {\n this.subscriptions = subscriptions;\n this.pendingSubscriptions = [];\n }\n guarantee(subscription) {\n if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`);\n this.pendingSubscriptions.push(subscription);\n } else {\n logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`);\n }\n this.startGuaranteeing();\n }\n forget(subscription) {\n logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`);\n this.pendingSubscriptions = this.pendingSubscriptions.filter(s => s !== subscription);\n }\n startGuaranteeing() {\n this.stopGuaranteeing();\n this.retrySubscribing();\n }\n stopGuaranteeing() {\n clearTimeout(this.retryTimeout);\n }\n retrySubscribing() {\n this.retryTimeout = setTimeout(() => {\n if (this.subscriptions && typeof this.subscriptions.subscribe === \"function\") {\n this.pendingSubscriptions.map(subscription => {\n logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`);\n this.subscriptions.subscribe(subscription);\n });\n }\n }, 500);\n }\n}\nclass Subscriptions {\n constructor(consumer) {\n this.consumer = consumer;\n this.guarantor = new SubscriptionGuarantor(this);\n this.subscriptions = [];\n }\n create(channelName, mixin) {\n const channel = channelName;\n const params = typeof channel === \"object\" ? channel : {\n channel: channel\n };\n const subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n }\n add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.subscribe(subscription);\n return subscription;\n }\n remove(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n }\n reject(identifier) {\n return this.findAll(identifier).map(subscription => {\n this.forget(subscription);\n this.notify(subscription, \"rejected\");\n return subscription;\n });\n }\n forget(subscription) {\n this.guarantor.forget(subscription);\n this.subscriptions = this.subscriptions.filter(s => s !== subscription);\n return subscription;\n }\n findAll(identifier) {\n return this.subscriptions.filter(s => s.identifier === identifier);\n }\n reload() {\n return this.subscriptions.map(subscription => this.subscribe(subscription));\n }\n notifyAll(callbackName) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return this.subscriptions.map(subscription => this.notify(subscription, callbackName, ...args));\n }\n notify(subscription, callbackName) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {\n args[_key4 - 2] = arguments[_key4];\n }\n let subscriptions;\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [subscription];\n }\n return subscriptions.map(subscription => typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined);\n }\n subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription);\n }\n }\n confirmSubscription(identifier) {\n logger.log(`Subscription confirmed ${identifier}`);\n this.findAll(identifier).map(subscription => this.guarantor.forget(subscription));\n }\n sendCommand(subscription, command) {\n const {\n identifier: identifier\n } = subscription;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n }\n}\nclass Consumer {\n constructor(url) {\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n }\n get url() {\n return createWebSocketURL(this._url);\n }\n send(data) {\n return this.connection.send(data);\n }\n connect() {\n return this.connection.open();\n }\n disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n }\n ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n }\n}\nfunction createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n if (url && !/^wss?:/i.test(url)) {\n const a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n}\nfunction createConsumer() {\n let url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getConfig(\"url\") || INTERNAL.default_mount_path;\n return new Consumer(url);\n}\nfunction getConfig(name) {\n const element = document.head.querySelector(`meta[name='action-cable-${name}']`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n}\nexport { Connection, ConnectionMonitor, Consumer, INTERNAL, Subscription, SubscriptionGuarantor, Subscriptions, adapters, createConsumer, createWebSocketURL, getConfig, logger };","// Action Cable provides the framework to deal with WebSockets in Rails.\n// You can generate new channels where WebSocket features live using the `bin/rails generate channel` command.\n\nimport { createConsumer } from \"@rails/actioncable\"\n\nexport default createConsumer()\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return '';\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position);\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value);\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value);\n }\n\n // ?\n return '';\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column);\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end);\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1;\n}","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport { stringifyPosition } from 'unist-util-stringify-position';\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason` at `place` from `origin`.\n *\n * When an error is passed in as `reason`, the `stack` is copied.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n *\n * > 👉 **Note**: you should use markdown.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // To do: next major: expose `undefined` everywhere instead of `null`.\n constructor(reason, place, origin) {\n /** @type {[string | null, string | null]} */\n const parts = [null, null];\n /** @type {Position} */\n let position = {\n // @ts-expect-error: we always follows the structure of `position`.\n start: {\n line: null,\n column: null\n },\n // @ts-expect-error: \"\n end: {\n line: null,\n column: null\n }\n };\n super();\n if (typeof place === 'string') {\n origin = place;\n place = undefined;\n }\n if (typeof origin === 'string') {\n const index = origin.indexOf(':');\n if (index === -1) {\n parts[1] = origin;\n } else {\n parts[0] = origin.slice(0, index);\n parts[1] = origin.slice(index + 1);\n }\n }\n if (place) {\n // Node.\n if ('type' in place || 'position' in place) {\n if (place.position) {\n // To do: next major: deep clone.\n // @ts-expect-error: looks like a position.\n position = place.position;\n }\n }\n // Position.\n else if ('start' in place || 'end' in place) {\n // @ts-expect-error: looks like a position.\n // To do: next major: deep clone.\n position = place;\n }\n // Point.\n else if ('line' in place || 'column' in place) {\n // To do: next major: deep clone.\n position.start = place;\n }\n }\n\n // Fields from `Error`.\n /**\n * Serialized positional info of error.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(place) || '1:1';\n\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = typeof reason === 'object' ? reason.message : reason;\n\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack = '';\n if (typeof reason === 'object' && reason.stack) {\n this.stack = reason.stack;\n }\n\n /**\n * Reason for message.\n *\n * > 👉 **Note**: you should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message;\n\n /* eslint-disable no-unused-expressions */\n /**\n * State of problem.\n *\n * * `true` — marks associated file as no longer processable (error)\n * * `false` — necessitates a (potential) change (warning)\n * * `null | undefined` — for things that might not need changing (info)\n *\n * @type {boolean | null | undefined}\n */\n this.fatal;\n\n /**\n * Starting line of error.\n *\n * @type {number | null}\n */\n this.line = position.start.line;\n\n /**\n * Starting column of error.\n *\n * @type {number | null}\n */\n this.column = position.start.column;\n\n /**\n * Full unist position.\n *\n * @type {Position | null}\n */\n this.position = position;\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | null}\n */\n this.source = parts[0];\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | null}\n */\n this.ruleId = parts[1];\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | null}\n */\n this.file;\n\n // The following fields are “well knownâ€.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | null}\n */\n this.actual;\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array<string> | null}\n */\n this.expected;\n\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | null}\n */\n this.url;\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | null}\n */\n this.note;\n /* eslint-enable no-unused-expressions */\n }\n}\nVFileMessage.prototype.file = '';\nVFileMessage.prototype.name = '';\nVFileMessage.prototype.reason = '';\nVFileMessage.prototype.message = '';\nVFileMessage.prototype.stack = '';\nVFileMessage.prototype.fatal = null;\nVFileMessage.prototype.column = null;\nVFileMessage.prototype.line = null;\nVFileMessage.prototype.source = null;\nVFileMessage.prototype.ruleId = null;\nVFileMessage.prototype.position = null;","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {\n basename,\n dirname,\n extname,\n join,\n sep: '/'\n};\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string');\n }\n assertPath(path);\n let start = 0;\n let end = -1;\n let index = path.length;\n /** @type {boolean | undefined} */\n let seenNonSlash;\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1;\n break;\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true;\n end = index + 1;\n }\n }\n return end < 0 ? '' : path.slice(start, end);\n }\n if (ext === path) {\n return '';\n }\n let firstNonSlashEnd = -1;\n let extIndex = ext.length - 1;\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true;\n firstNonSlashEnd = index + 1;\n }\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n if (start === end) {\n end = firstNonSlashEnd;\n } else if (end < 0) {\n end = path.length;\n }\n return path.slice(start, end);\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path);\n if (path.length === 0) {\n return '.';\n }\n let end = -1;\n let index = path.length;\n /** @type {boolean | undefined} */\n let unmatchedSlash;\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index;\n break;\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true;\n }\n }\n return end < 0 ? path.charCodeAt(0) === 47 /* `/` */ ? '/' : '.' : end === 1 && path.charCodeAt(0) === 47 /* `/` */ ? '//' : path.slice(0, end);\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path);\n let index = path.length;\n let end = -1;\n let startPart = 0;\n let startDot = -1;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0;\n /** @type {boolean | undefined} */\n let unmatchedSlash;\n while (index--) {\n const code = path.charCodeAt(index);\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1;\n break;\n }\n continue;\n }\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true;\n end = index + 1;\n }\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index;\n } else if (preDotState !== 1) {\n preDotState = 1;\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1;\n }\n }\n if (startDot < 0 || end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array<string>} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join() {\n let index = -1;\n /** @type {string | undefined} */\n let joined;\n for (var _len = arguments.length, segments = new Array(_len), _key = 0; _key < _len; _key++) {\n segments[_key] = arguments[_key];\n }\n while (++index < segments.length) {\n assertPath(segments[index]);\n if (segments[index]) {\n joined = joined === undefined ? segments[index] : joined + '/' + segments[index];\n }\n }\n return joined === undefined ? '.' : normalize(joined);\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path);\n const absolute = path.charCodeAt(0) === 47; /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute);\n if (value.length === 0 && !absolute) {\n value = '.';\n }\n if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/';\n }\n return absolute ? '/' + value : value;\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = '';\n let lastSegmentLength = 0;\n let lastSlash = -1;\n let dots = 0;\n let index = -1;\n /** @type {number | undefined} */\n let code;\n /** @type {number} */\n let lastSlashIndex;\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index);\n } else if (code === 47 /* `/` */) {\n break;\n } else {\n code = 47; /* `/` */\n }\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (result.length < 2 || lastSegmentLength !== 2 || result.charCodeAt(result.length - 1) !== 46 /* `.` */ || result.charCodeAt(result.length - 2) !== 46 /* `.` */) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/');\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = '';\n lastSegmentLength = 0;\n } else {\n result = result.slice(0, lastSlashIndex);\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/');\n }\n lastSlash = index;\n dots = 0;\n continue;\n }\n } else if (result.length > 0) {\n result = '';\n lastSegmentLength = 0;\n lastSlash = index;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..';\n lastSegmentLength = 2;\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index);\n } else {\n result = path.slice(lastSlash + 1, index);\n }\n lastSegmentLength = index - lastSlash - 1;\n }\n lastSlash = index;\n dots = 0;\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++;\n } else {\n dots = -1;\n }\n }\n return result;\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n/* eslint-enable max-depth, complexity */","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {\n cwd\n};\nfunction cwd() {\n return '/';\n}","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * Check if `fileUrlOrPath` looks like a URL.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>\nexport function isUrl(fileUrlOrPath) {\n return fileUrlOrPath !== null && typeof fileUrlOrPath === 'object' &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.href &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.origin;\n}","/// <reference lib=\"dom\" />\n\nimport { isUrl } from './minurl.shared.js';\n\n// See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>\n\n/**\n * @param {string | URL} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path);\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The \"path\" argument must be of type string or an instance of URL. Received `' + path + '`');\n error.code = 'ERR_INVALID_ARG_TYPE';\n throw error;\n }\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file');\n error.code = 'ERR_INVALID_URL_SCHEME';\n throw error;\n }\n return getPathFromURLPosix(path);\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('File URL host must be \"localhost\" or empty on darwin');\n error.code = 'ERR_INVALID_FILE_URL_HOST';\n throw error;\n }\n const pathname = url.pathname;\n let index = -1;\n while (++index < pathname.length) {\n if (pathname.charCodeAt(index) === 37 /* `%` */ && pathname.charCodeAt(index + 1) === 50 /* `2` */) {\n const third = pathname.charCodeAt(index + 2);\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('File URL path must not include encoded / characters');\n error.code = 'ERR_INVALID_FILE_URL_PATH';\n throw error;\n }\n }\n }\n return decodeURIComponent(pathname);\n}\nexport { isUrl } from './minurl.shared.js';","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {Record<string, unknown> & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'} BufferEncoding\n * Encodings supported by the buffer class.\n *\n * This is a copy of the types from Node, copied to prevent Node globals from\n * being needed.\n * Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>\n *\n * @typedef {Options | URL | Value | VFile} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {Value | null | undefined} [value]\n * Set `value`.\n * @property {string | null | undefined} [cwd]\n * Set `cwd`.\n * @property {Array<string> | null | undefined} [history]\n * Set `history`.\n * @property {URL | string | null | undefined} [path]\n * Set `path`.\n * @property {string | null | undefined} [basename]\n * Set `basename`.\n * @property {string | null | undefined} [stem]\n * Set `stem`.\n * @property {string | null | undefined} [extname]\n * Set `extname`.\n * @property {string | null | undefined} [dirname]\n * Set `dirname`.\n * @property {Data | null | undefined} [data]\n * Set `data`.\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array<string>} sources\n * An array of URLs to the original source files.\n * @property {Array<string>} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array<string> | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record<string, unknown>} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template {ReporterSettings} Settings\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array<VFile>} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport bufferLike from 'is-buffer';\nimport { VFileMessage } from 'vfile-message';\nimport { path } from './minpath.js';\nimport { proc } from './minproc.js';\nimport { urlToPath, isUrl } from './minurl.js';\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n *\n * @type {Array<'basename' | 'dirname' | 'extname' | 'history' | 'path' | 'stem'>}\n */\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname'];\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Buffer` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options;\n if (!value) {\n options = {};\n } else if (typeof value === 'string' || buffer(value)) {\n options = {\n value\n };\n } else if (isUrl(value)) {\n options = {\n path: value\n };\n } else {\n options = value;\n }\n\n /**\n * Place to store custom information (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {};\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array<VFileMessage>}\n */\n this.messages = [];\n\n /**\n * List of filepaths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array<string>}\n */\n this.history = [];\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd();\n\n /* eslint-disable no-unused-expressions */\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value;\n\n // The below are non-standard, they are “well-knownâ€.\n // As in, used in several tools.\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored;\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result;\n\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map;\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1;\n while (++index < order.length) {\n const prop = order[index];\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (prop in options && options[prop] !== undefined && options[prop] !== null) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop];\n }\n }\n\n /** @type {string} */\n let prop;\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop];\n }\n }\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n */\n get path() {\n return this.history[this.history.length - 1];\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {string | URL} path\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path);\n }\n assertNonEmpty(path, 'path');\n if (this.path !== path) {\n this.history.push(path);\n }\n }\n\n /**\n * Get the parent path (example: `'~'`).\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined;\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname');\n this.path = path.join(dirname || '', this.basename);\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined;\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename');\n assertPart(basename, 'basename');\n this.path = path.join(this.dirname || '', basename);\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined;\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n */\n set extname(extname) {\n assertPart(extname, 'extname');\n assertPath(this.dirname, 'extname');\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`');\n }\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots');\n }\n }\n this.path = path.join(this.dirname, this.stem + (extname || ''));\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n */\n get stem() {\n return typeof this.path === 'string' ? path.basename(this.path, this.extname) : undefined;\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem');\n assertPart(stem, 'stem');\n this.path = path.join(this.dirname || '', stem + (this.extname || ''));\n }\n\n /**\n * Serialize the file.\n *\n * @param {BufferEncoding | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Buffer`\n * (default: `'utf8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n return (this.value || '').toString(encoding || undefined);\n }\n\n /**\n * Create a warning message associated with the file.\n *\n * Its `fatal` is set to `false` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(reason, place, origin) {\n const message = new VFileMessage(reason, place, origin);\n if (this.path) {\n message.name = this.path + ':' + message.name;\n message.file = this.path;\n }\n message.fatal = false;\n this.messages.push(message);\n return message;\n }\n\n /**\n * Create an info message associated with the file.\n *\n * Its `fatal` is set to `null` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(reason, place, origin) {\n const message = this.message(reason, place, origin);\n message.fatal = null;\n return message;\n }\n\n /**\n * Create a fatal error associated with the file.\n *\n * Its `fatal` is set to `true` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * > 👉 **Note**: a fatal error means that a file is no longer processable.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Message.\n * @throws {VFileMessage}\n * Message.\n */\n fail(reason, place, origin) {\n const message = this.message(reason, place, origin);\n message.fatal = true;\n throw message;\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {void}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error('`' + name + '` cannot be a path: did not expect `' + path.sep + '`');\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty');\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too');\n }\n}\n\n/**\n * Assert `value` is a buffer.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Buffer}\n * Whether `value` is a Node.js buffer.\n */\nfunction buffer(value) {\n return bufferLike(value);\n}","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error;\n }\n}","export default function isPlainObject(value) {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array<any>) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array<any>) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array<any>) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array<Middleware>} */\n const fns = [];\n /** @type {Pipeline} */\n const pipeline = {\n run,\n use\n };\n return pipeline;\n\n /** @type {Run} */\n function run() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n let middlewareIndex = -1;\n /** @type {Callback} */\n const callback = values.pop();\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback);\n }\n next(null, ...values);\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array<any>} output\n */\n function next(error) {\n const fn = fns[++middlewareIndex];\n let index = -1;\n if (error) {\n callback(error);\n return;\n }\n\n // Copy non-nullish input into values.\n for (var _len2 = arguments.length, output = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n output[_key2 - 1] = arguments[_key2];\n }\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index];\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output;\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output);\n } else {\n callback(null, ...output);\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError('Expected `middelware` to be a function, not ' + middelware);\n }\n fns.push(middelware);\n return pipeline;\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called;\n return wrapped;\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array<any>} parameters\n * @returns {void}\n */\n function wrapped() {\n for (var _len3 = arguments.length, parameters = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n parameters[_key3] = arguments[_key3];\n }\n const fnExpectsCallback = middleware.length > parameters.length;\n /** @type {any} */\n let result;\n if (fnExpectsCallback) {\n parameters.push(done);\n }\n try {\n result = middleware.apply(this, parameters);\n } catch (error) {\n const exception = /** @type {Error} */error;\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception;\n }\n return done(exception);\n }\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done);\n } else if (result instanceof Error) {\n done(result);\n } else {\n then(result);\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error) {\n if (!called) {\n called = true;\n for (var _len4 = arguments.length, output = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n output[_key4 - 1] = arguments[_key4];\n }\n callback(error, ...output);\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value);\n }\n}","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport { bail } from 'bail';\nimport isBuffer from 'is-buffer';\nimport extend from 'extend';\nimport isPlainObj from 'is-plain-obj';\nimport { trough } from 'trough';\nimport { VFile } from 'vfile';\n\n// Expose a frozen processor.\nexport const unified = base().freeze();\nconst own = {}.hasOwnProperty;\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n const transformers = trough();\n /** @type {Processor['attachers']} */\n const attachers = [];\n /** @type {Record<string, unknown>} */\n let namespace = {};\n /** @type {boolean|undefined} */\n let frozen;\n let freezeIndex = -1;\n\n // Data management.\n // @ts-expect-error: overloads are handled.\n processor.data = data;\n processor.Parser = undefined;\n processor.Compiler = undefined;\n\n // Lock.\n processor.freeze = freeze;\n\n // Plugins.\n processor.attachers = attachers;\n // @ts-expect-error: overloads are handled.\n processor.use = use;\n\n // API.\n processor.parse = parse;\n processor.stringify = stringify;\n // @ts-expect-error: overloads are handled.\n processor.run = run;\n processor.runSync = runSync;\n // @ts-expect-error: overloads are handled.\n processor.process = process;\n processor.processSync = processSync;\n\n // Expose.\n return processor;\n\n // Create a new processor based on the processor in the current scope.\n /** @type {Processor} */\n function processor() {\n const destination = base();\n let index = -1;\n while (++index < attachers.length) {\n destination.use(...attachers[index]);\n }\n destination.data(extend(true, {}, namespace));\n return destination;\n }\n\n /**\n * @param {string|Record<string, unknown>} [key]\n * @param {unknown} [value]\n * @returns {unknown}\n */\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen);\n namespace[key] = value;\n return processor;\n }\n\n // Get `key`.\n return own.call(namespace, key) && namespace[key] || null;\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen);\n namespace = key;\n return processor;\n }\n\n // Get space.\n return namespace;\n }\n\n /** @type {Processor['freeze']} */\n function freeze() {\n if (frozen) {\n return processor;\n }\n while (++freezeIndex < attachers.length) {\n const [attacher, ...options] = attachers[freezeIndex];\n if (options[0] === false) {\n continue;\n }\n if (options[0] === true) {\n options[0] = undefined;\n }\n\n /** @type {Transformer|void} */\n const transformer = attacher.call(processor, ...options);\n if (typeof transformer === 'function') {\n transformers.use(transformer);\n }\n }\n frozen = true;\n freezeIndex = Number.POSITIVE_INFINITY;\n return processor;\n }\n\n /**\n * @param {Pluggable|null|undefined} [value]\n * @param {...unknown} options\n * @returns {Processor}\n */\n function use(value) {\n for (var _len = arguments.length, options = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n options[_key - 1] = arguments[_key];\n }\n /** @type {Record<string, unknown>|undefined} */\n let settings;\n assertUnfrozen('use', frozen);\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, ...options);\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value);\n } else {\n addPreset(value);\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`');\n }\n if (settings) {\n namespace.settings = Object.assign(namespace.settings || {}, settings);\n }\n return processor;\n\n /**\n * @param {import('..').Pluggable<unknown[]>} value\n * @returns {void}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value);\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...options] = value;\n addPlugin(plugin, ...options);\n } else {\n addPreset(value);\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`');\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {void}\n */\n function addPreset(result) {\n addList(result.plugins);\n if (result.settings) {\n settings = Object.assign(settings || {}, result.settings);\n }\n }\n\n /**\n * @param {PluggableList|null|undefined} [plugins]\n * @returns {void}\n */\n function addList(plugins) {\n let index = -1;\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index];\n add(thing);\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`');\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {...unknown} [value]\n * @returns {void}\n */\n function addPlugin(plugin, value) {\n let index = -1;\n /** @type {Processor['attachers'][number]|undefined} */\n let entry;\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entry = attachers[index];\n break;\n }\n }\n if (entry) {\n if (isPlainObj(entry[1]) && isPlainObj(value)) {\n value = extend(true, entry[1], value);\n }\n entry[1] = value;\n } else {\n // @ts-expect-error: fine.\n attachers.push([...arguments]);\n }\n }\n }\n\n /** @type {Processor['parse']} */\n function parse(doc) {\n processor.freeze();\n const file = vfile(doc);\n const Parser = processor.Parser;\n assertParser('parse', Parser);\n if (newable(Parser, 'parse')) {\n // @ts-expect-error: `newable` checks this.\n return new Parser(String(file), file).parse();\n }\n\n // @ts-expect-error: `newable` checks this.\n return Parser(String(file), file); // eslint-disable-line new-cap\n }\n\n /** @type {Processor['stringify']} */\n function stringify(node, doc) {\n processor.freeze();\n const file = vfile(doc);\n const Compiler = processor.Compiler;\n assertCompiler('stringify', Compiler);\n assertNode(node);\n if (newable(Compiler, 'compile')) {\n // @ts-expect-error: `newable` checks this.\n return new Compiler(node, file).compile();\n }\n\n // @ts-expect-error: `newable` checks this.\n return Compiler(node, file); // eslint-disable-line new-cap\n }\n\n /**\n * @param {Node} node\n * @param {VFileCompatible|RunCallback} [doc]\n * @param {RunCallback} [callback]\n * @returns {Promise<Node>|void}\n */\n function run(node, doc, callback) {\n assertNode(node);\n processor.freeze();\n if (!callback && typeof doc === 'function') {\n callback = doc;\n doc = undefined;\n }\n if (!callback) {\n return new Promise(executor);\n }\n executor(null, callback);\n\n /**\n * @param {null|((node: Node) => void)} resolve\n * @param {(error: Error) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n // @ts-expect-error: `doc` can’t be a callback anymore, we checked.\n transformers.run(node, vfile(doc), done);\n\n /**\n * @param {Error|null} error\n * @param {Node} tree\n * @param {VFile} file\n * @returns {void}\n */\n function done(error, tree, file) {\n tree = tree || node;\n if (error) {\n reject(error);\n } else if (resolve) {\n resolve(tree);\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, tree, file);\n }\n }\n }\n }\n\n /** @type {Processor['runSync']} */\n function runSync(node, file) {\n /** @type {Node|undefined} */\n let result;\n /** @type {boolean|undefined} */\n let complete;\n processor.run(node, file, done);\n assertDone('runSync', 'run', complete);\n\n // @ts-expect-error: we either bailed on an error or have a tree.\n return result;\n\n /**\n * @param {Error|null} [error]\n * @param {Node} [tree]\n * @returns {void}\n */\n function done(error, tree) {\n bail(error);\n result = tree;\n complete = true;\n }\n }\n\n /**\n * @param {VFileCompatible} doc\n * @param {ProcessCallback} [callback]\n * @returns {Promise<VFile>|undefined}\n */\n function process(doc, callback) {\n processor.freeze();\n assertParser('process', processor.Parser);\n assertCompiler('process', processor.Compiler);\n if (!callback) {\n return new Promise(executor);\n }\n executor(null, callback);\n\n /**\n * @param {null|((file: VFile) => void)} resolve\n * @param {(error?: Error|null|undefined) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n const file = vfile(doc);\n processor.run(processor.parse(file), file, (error, tree, file) => {\n if (error || !tree || !file) {\n done(error);\n } else {\n /** @type {unknown} */\n const result = processor.stringify(tree, file);\n if (result === undefined || result === null) {\n // Empty.\n } else if (looksLikeAVFileValue(result)) {\n file.value = result;\n } else {\n file.result = result;\n }\n done(error, file);\n }\n });\n\n /**\n * @param {Error|null|undefined} [error]\n * @param {VFile|undefined} [file]\n * @returns {void}\n */\n function done(error, file) {\n if (error || !file) {\n reject(error);\n } else if (resolve) {\n resolve(file);\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, file);\n }\n }\n }\n }\n\n /** @type {Processor['processSync']} */\n function processSync(doc) {\n /** @type {boolean|undefined} */\n let complete;\n processor.freeze();\n assertParser('processSync', processor.Parser);\n assertCompiler('processSync', processor.Compiler);\n const file = vfile(doc);\n processor.process(file, done);\n assertDone('processSync', 'process', complete);\n return file;\n\n /**\n * @param {Error|null|undefined} [error]\n * @returns {void}\n */\n function done(error) {\n complete = true;\n bail(error);\n }\n }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n return typeof value === 'function' &&\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n value.prototype && (\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n // type-coverage:ignore-next-line\n keys(value.prototype) || name in value.prototype);\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record<string, unknown>} value\n * @returns {boolean}\n */\nfunction keys(value) {\n /** @type {string} */\n let key;\n for (key in value) {\n if (own.call(value, key)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Parser`');\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Compiler`');\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error('Cannot call `' + name + '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.');\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`');\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error('`' + name + '` finished async. Use `' + asyncName + '` instead');\n }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value);\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(value && typeof value === 'object' && 'message' in value && 'messages' in value);\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n return typeof value === 'string' || isBuffer(value);\n}","/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s.\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML.\n */\n\n/** @type {Options} */\nconst emptyOptions = {};\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} value\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions;\n const includeImageAlt = typeof settings.includeImageAlt === 'boolean' ? settings.includeImageAlt : true;\n const includeHtml = typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true;\n return one(value, includeImageAlt, includeHtml);\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value;\n }\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt;\n }\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml);\n }\n }\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml);\n }\n return '';\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array<string>} */\n const result = [];\n let index = -1;\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml);\n }\n return result.join('');\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Node}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object');\n}","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array<T>} items\n * Items to inject into `list`.\n * @returns {void}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length;\n let chunkStart = 0;\n /** @type {Array<unknown>} */\n let parameters;\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove = remove > 0 ? remove : 0;\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters);\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove);\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000);\n parameters.unshift(start, 0);\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters);\n chunkStart += 10000;\n start += 10000;\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {Array<T>} items\n * Items to add to `list`.\n * @returns {Array<T>}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items);\n return list;\n }\n return items;\n}","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */\n\nimport { splice } from 'micromark-util-chunked';\nconst hasOwnProperty = {}.hasOwnProperty;\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array<Extension>} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {};\n let index = -1;\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index]);\n }\n return all;\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined;\n /** @type {Record<string, unknown>} */\n const left = maybe || (all[hook] = {});\n /** @type {Record<string, unknown> | undefined} */\n const right = extension[hook];\n /** @type {string} */\n let code;\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = [];\n const value = right[code];\n constructs(\n // @ts-expect-error Looks like a list.\n left[code], Array.isArray(value) ? value : value ? [value] : []);\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * @param {Array<unknown>} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1;\n /** @type {Array<unknown>} */\n const before = [];\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;\n (list[index].add === 'after' ? existing : before).push(list[index]);\n }\n splice(existing, 0, 0, before);\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array<HtmlExtension>} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * A single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {};\n let index = -1;\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index]);\n }\n return handlers;\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined;\n const left = maybe || (all[hook] = {});\n const right = extension[hook];\n /** @type {keyof Handles} */\n let type;\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type];\n }\n }\n }\n}","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\n\n/**\n * Regular expression that matches a unicode punctuation character.\n */\nexport const unicodePunctuationRegex = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/;","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport { unicodePunctuationRegex } from './lib/unicode-punctuation-regex.js';\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n );\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/);\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2;\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32);\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32;\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex);\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/);\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check;\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code));\n }\n}","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport { markdownSpace } from 'micromark-util-character';\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `â‰` represents a tab (plus how much it expands) and `â ` represents a\n * single space.\n *\n * ```markdown\n * â‰\n * â â â â \n * â‰â \n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type);\n return prefix(code);\n }\n return ok(code);\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code);\n return prefix;\n }\n effects.exit(type);\n return ok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(this.parser.constructs.contentInitial, afterContentStartConstruct, paragraphInitial);\n /** @type {Token} */\n let previous;\n return contentStart;\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return factorySpace(effects, contentStart, 'linePrefix');\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n effects.enter('paragraph');\n return lineStart(code);\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n });\n if (previous) {\n previous.next = token;\n }\n previous = token;\n return data(code);\n }\n\n /** @type {State} */\n function data(code) {\n if (code === null) {\n effects.exit('chunkText');\n effects.exit('paragraph');\n effects.consume(code);\n return;\n }\n if (markdownLineEnding(code)) {\n effects.consume(code);\n effects.exit('chunkText');\n return lineStart;\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {InitialConstruct} */\nexport const document = {\n tokenize: initializeDocument\n};\n\n/** @type {Construct} */\nconst containerConstruct = {\n tokenize: tokenizeContainer\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeDocument(effects) {\n const self = this;\n /** @type {Array<StackItem>} */\n const stack = [];\n let continued = 0;\n /** @type {TokenizeContext | undefined} */\n let childFlow;\n /** @type {Token | undefined} */\n let childToken;\n /** @type {number} */\n let lineStartOffset;\n return start;\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued];\n self.containerState = item[1];\n return effects.attempt(item[0].continuation, documentContinue, checkNewContainers)(code);\n }\n\n // Done.\n return checkNewContainers(code);\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++;\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined;\n if (childFlow) {\n closeFlow();\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length;\n let indexBeforeFlow = indexBeforeExits;\n /** @type {Point | undefined} */\n let point;\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === 'chunkFlow') {\n point = self.events[indexBeforeFlow][1].end;\n break;\n }\n }\n exitContainers(continued);\n\n // Fix positions.\n let index = indexBeforeExits;\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point);\n index++;\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n\n // Discard the duplicate exits.\n self.events.length = index;\n return checkNewContainers(code);\n }\n return start(code);\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code);\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce†into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code);\n }\n\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack);\n }\n\n // Check if there is a new container.\n self.containerState = {};\n return effects.check(containerConstruct, thereIsANewContainer, thereIsNoNewContainer)(code);\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow();\n exitContainers(continued);\n return documentContinued(code);\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length;\n lineStartOffset = self.now().offset;\n return flowStart(code);\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {};\n return effects.attempt(containerConstruct, containerContinue, flowStart)(code);\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++;\n stack.push([self.currentConstruct, self.containerState]);\n // Try another.\n return documentContinued(code);\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow();\n exitContainers(0);\n effects.consume(code);\n return;\n }\n childFlow = childFlow || self.parser.flow(self.now());\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n });\n return flowContinue(code);\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true);\n exitContainers(0);\n effects.consume(code);\n return;\n }\n if (markdownLineEnding(code)) {\n effects.consume(code);\n writeToChild(effects.exit('chunkFlow'));\n // Get ready for the next line.\n continued = 0;\n self.interrupt = undefined;\n return start;\n }\n effects.consume(code);\n return flowContinue;\n }\n\n /**\n * @param {Token} token\n * @param {boolean | undefined} [eof]\n * @returns {void}\n */\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token);\n if (eof) stream.push(null);\n token.previous = childToken;\n if (childToken) childToken.next = token;\n childToken = token;\n childFlow.defineSkip(token.start);\n childFlow.write(stream);\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake†it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes†the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length;\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset && (\n // …and either is not ended yet…\n !childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return;\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length;\n let indexBeforeFlow = indexBeforeExits;\n /** @type {boolean | undefined} */\n let seen;\n /** @type {Point | undefined} */\n let point;\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === 'chunkFlow') {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end;\n break;\n }\n seen = true;\n }\n }\n exitContainers(continued);\n\n // Fix positions.\n index = indexBeforeExits;\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point);\n index++;\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n\n // Discard the duplicate exits.\n self.events.length = index;\n }\n }\n\n /**\n * @param {number} size\n * @returns {void}\n */\n function exitContainers(size) {\n let index = stack.length;\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index];\n self.containerState = entry[1];\n entry[0].exit.call(self, effects);\n }\n stack.length = size;\n }\n function closeFlow() {\n childFlow.write([null]);\n childToken = undefined;\n childFlow = undefined;\n self.containerState._closeFlow = undefined;\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(this.parser.constructs.document, ok, nok), 'linePrefix', this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4);\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start;\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `â ` represents a space character.\n *\n * ```markdown\n * > | â â âŠ\n * ^\n * > | âŠ\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code) ? factorySpace(effects, after, 'linePrefix')(code) : after(code);\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `â ` represents a space character.\n *\n * ```markdown\n * > | â â âŠ\n * ^\n * > | âŠ\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n */\n\nimport { splice } from 'micromark-util-chunked';\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} events\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\nexport function subtokenize(events) {\n /** @type {Record<string, number>} */\n const jumps = {};\n let index = -1;\n /** @type {Event} */\n let event;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number} */\n let otherIndex;\n /** @type {Event} */\n let otherEvent;\n /** @type {Array<Event>} */\n let parameters;\n /** @type {Array<Event>} */\n let subevents;\n /** @type {boolean | undefined} */\n let more;\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index];\n }\n event = events[index];\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (index && event[1].type === 'chunkFlow' && events[index - 1][1].type === 'listItemPrefix') {\n subevents = event[1]._tokenizer.events;\n otherIndex = 0;\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === 'lineEndingBlank') {\n otherIndex += 2;\n }\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === 'content') {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break;\n }\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true;\n otherIndex++;\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index));\n index = jumps[index];\n more = true;\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index;\n lineIndex = undefined;\n while (otherIndex--) {\n otherEvent = events[otherIndex];\n if (otherEvent[1].type === 'lineEnding' || otherEvent[1].type === 'lineEndingBlank') {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank';\n }\n otherEvent[1].type = 'lineEnding';\n lineIndex = otherIndex;\n }\n } else {\n break;\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start);\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index);\n parameters.unshift(event);\n splice(events, lineIndex, index - lineIndex + 1, parameters);\n }\n }\n }\n return !more;\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {Array<Event>} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1];\n const context = events[eventIndex][2];\n let startPosition = eventIndex - 1;\n /** @type {Array<number>} */\n const startPositions = [];\n const tokenizer = token._tokenizer || context.parser[token.contentType](token.start);\n const childEvents = tokenizer.events;\n /** @type {Array<[number, number]>} */\n const jumps = [];\n /** @type {Record<string, number>} */\n const gaps = {};\n /** @type {Array<Chunk>} */\n let stream;\n /** @type {Token | undefined} */\n let previous;\n let index = -1;\n /** @type {Token | undefined} */\n let current = token;\n let adjust = 0;\n let start = 0;\n const breaks = [start];\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition);\n if (!current._tokenizer) {\n stream = context.sliceStream(current);\n if (!current.next) {\n stream.push(null);\n }\n if (previous) {\n tokenizer.defineSkip(current.start);\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true;\n }\n tokenizer.write(stream);\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined;\n }\n }\n\n // Unravel the next token.\n previous = current;\n current = current.next;\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token;\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' && childEvents[index - 1][0] === 'enter' && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line) {\n start = index + 1;\n breaks.push(start);\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n current = current.next;\n }\n }\n\n // Help GC.\n tokenizer.events = [];\n\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n } else {\n breaks.pop();\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length;\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1]);\n const start = startPositions.pop();\n jumps.unshift([start, start + slice.length - 1]);\n splice(events, start, 2, slice);\n }\n index = -1;\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1];\n adjust += jumps[index][1] - jumps[index][0] - 1;\n }\n return gaps;\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { subtokenize } from 'micromark-util-subtokenize';\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n};\n\n/** @type {Construct} */\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n};\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous;\n return chunkStart;\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter('content');\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n });\n return chunkInside(code);\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code);\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(continuationConstruct, contentContinue, contentEnd)(code);\n }\n\n // Data.\n effects.consume(code);\n return chunkInside;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit('chunkContent');\n effects.exit('content');\n return ok(code);\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code);\n effects.exit('chunkContent');\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n });\n previous = previous.next;\n return chunkInside;\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this;\n return startLookahead;\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit('chunkContent');\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return factorySpace(effects, prefixed, 'linePrefix');\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1];\n if (!self.parser.constructs.disable.null.includes('codeIndented') && tail && tail[1].type === 'linePrefix' && tail[2].sliceSerialize(tail[1], true).length >= 4) {\n return ok(code);\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport { blankLine, content } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n const self = this;\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine, atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct)), 'linePrefix')));\n return initial;\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter('lineEndingBlank');\n effects.consume(code);\n effects.exit('lineEndingBlank');\n self.currentConstruct = undefined;\n return initial;\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n self.currentConstruct = undefined;\n return initial;\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n};\nexport const string = initializeFactory('string');\nexport const text = initializeFactory('text');\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(field === 'text' ? resolveAllLineSuffixes : undefined)\n };\n\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this;\n const constructs = this.parser.constructs[field];\n const text = effects.attempt(constructs, start, notText);\n return start;\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code);\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter('data');\n effects.consume(code);\n return data;\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data');\n return text(code);\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n function atBreak(code) {\n if (code === null) {\n return true;\n }\n const list = constructs[code];\n let index = -1;\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index];\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n return resolveAllText;\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1;\n /** @type {number | undefined} */\n let enter;\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return extraResolver ? extraResolver(events, context) : events;\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0; // Skip first.\n\n while (++eventIndex <= events.length) {\n if ((eventIndex === events.length || events[eventIndex][1].type === 'lineEnding') && events[eventIndex - 1][1].type === 'data') {\n const data = events[eventIndex - 1][1];\n const chunks = context.sliceStream(data);\n let index = chunks.length;\n let bufferIndex = -1;\n let size = 0;\n /** @type {boolean | undefined} */\n let tabs;\n while (index--) {\n const chunk = chunks[index];\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length;\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++;\n bufferIndex--;\n }\n if (bufferIndex) break;\n bufferIndex = -1;\n }\n // Number\n else if (chunk === -2) {\n tabs = true;\n size++;\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++;\n break;\n }\n }\n if (size) {\n const token = {\n type: eventIndex === events.length || tabs || size < 2 ? 'lineSuffix' : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n };\n data.end = Object.assign({}, token.start);\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token);\n } else {\n events.splice(eventIndex, 0, ['enter', token, context], ['exit', token, context]);\n eventIndex += 2;\n }\n }\n eventIndex++;\n }\n }\n return events;\n}","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array<Event>}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array<Resolver>} */\n const called = [];\n let index = -1;\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll;\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context);\n called.push(resolve);\n }\n }\n return events;\n}","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {void}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(from ? Object.assign({}, from) : {\n line: 1,\n column: 1,\n offset: 0\n }, {\n _index: 0,\n _bufferIndex: -1\n });\n /** @type {Record<string, number>} */\n const columnStart = {};\n /** @type {Array<Construct>} */\n const resolveAllConstructs = [];\n /** @type {Array<Chunk>} */\n let chunks = [];\n /** @type {Array<Token>} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | void}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n } = point;\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n function main() {\n /** @type {number} */\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array<Construct> | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array<Construct>} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) /* c8 ignore next 1 */ ? handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // @ts-expect-error Looks like a construct.\n handleListOfConstructs([constructs]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const def = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {Array<Construct>} list\n * @returns {State}\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live bindingâ€, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n restore,\n from: startEventsIndex\n };\n\n /**\n * Restore state.\n *\n * @returns {void}\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array<Chunk>} chunks\n * @param {Pick<Token, 'end' | 'start'>} token\n * @returns {Array<Chunk>}\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array<Chunk>} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array<Chunk>} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array<string>} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else switch (chunk) {\n case -5:\n {\n value = '\\r';\n break;\n }\n case -4:\n {\n value = '\\n';\n break;\n }\n case -3:\n {\n value = '\\r' + '\\n';\n break;\n }\n case -2:\n {\n value = expandTabs ? ' ' : '\\t';\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) continue;\n value = ' ';\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('thematicBreak');\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code;\n return atBreak(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence');\n return sequence(code);\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit('thematicBreak');\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return sequence;\n }\n effects.exit('thematicBreakSequence');\n return markdownSpace(code) ? factorySpace(effects, atBreak, 'whitespace')(code) : atBreak(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiDigit, markdownSpace } from 'micromark-util-character';\nimport { blankLine } from './blank-line.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/** @type {Construct} */\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n};\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n};\n\n/** @type {Construct} */\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n};\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this;\n const tail = self.events[self.events.length - 1];\n let initialSize = tail && tail[1].type === 'linePrefix' ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? 'listUnordered' : 'listOrdered');\n if (kind === 'listUnordered' ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n if (!self.containerState.type) {\n self.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix');\n return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n }\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix');\n effects.enter('listItemValue');\n return inside(code);\n }\n }\n return nok(code);\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code);\n return inside;\n }\n if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n effects.exit('listItemValue');\n return atMarker(code);\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter('listItemMarker');\n effects.consume(code);\n effects.exit('listItemMarker');\n self.containerState.marker = self.containerState.marker || code;\n return effects.check(blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code);\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace');\n effects.consume(code);\n effects.exit('listItemPrefixWhitespace');\n return endOfPrefix;\n }\n return nok(code);\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size = initialSize + self.sliceSerialize(effects.exit('listItemPrefix'), true).length;\n return ok(code);\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this;\n self.containerState._closeFlow = undefined;\n return effects.check(blankLine, onBlank, notBlank);\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(effects, ok, 'listItemIndent', self.containerState.size + 1)(code);\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return notInCurrentItem(code);\n }\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true;\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined;\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(list, ok, nok), 'linePrefix', self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, 'listItemIndent', self.containerState.size + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === 'listItemIndent' && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this;\n\n // Always populated by defaults.\n\n return factorySpace(effects, afterPrefix, 'listItemPrefixWhitespace', self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return !markdownSpace(code) && tail && tail[1].type === 'listItemPrefixWhitespace' ? ok(code) : nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState;\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n });\n state.open = true;\n }\n effects.enter('blockQuotePrefix');\n effects.enter('blockQuoteMarker');\n effects.consume(code);\n effects.exit('blockQuoteMarker');\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace');\n effects.consume(code);\n effects.exit('blockQuotePrefixWhitespace');\n effects.exit('blockQuotePrefix');\n return ok;\n }\n effects.exit('blockQuotePrefix');\n return ok(code);\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this;\n return contStart;\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n\n return factorySpace(effects, contBefore, 'linePrefix', self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n return contBefore(code);\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code);\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit('blockQuote');\n}","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport { asciiControl, markdownLineEndingOrSpace, markdownLineEnding } from 'micromark-util-character';\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryDestination(effects, ok, nok, type, literalType, literalMarkerType, rawType, stringType, max) {\n const limit = max || Number.POSITIVE_INFINITY;\n let balance = 0;\n return start;\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type);\n effects.enter(literalType);\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n return enclosedBefore;\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n return nok(code);\n }\n effects.enter(type);\n effects.enter(rawType);\n effects.enter(stringType);\n effects.enter('chunkString', {\n contentType: 'string'\n });\n return raw(code);\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n effects.exit(literalType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n effects.enter('chunkString', {\n contentType: 'string'\n });\n return enclosed(code);\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit('chunkString');\n effects.exit(stringType);\n return enclosedBefore(code);\n }\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code);\n }\n effects.consume(code);\n return code === 92 ? enclosedEscape : enclosed;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | <a\\*a>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code);\n return enclosed;\n }\n return enclosed(code);\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (!balance && (code === null || code === 41 || markdownLineEndingOrSpace(code))) {\n effects.exit('chunkString');\n effects.exit(stringType);\n effects.exit(rawType);\n effects.exit(type);\n return ok(code);\n }\n if (balance < limit && code === 40) {\n effects.consume(code);\n balance++;\n return raw;\n }\n if (code === 41) {\n effects.consume(code);\n balance--;\n return raw;\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return code === 92 ? rawEscape : raw;\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code);\n return raw;\n }\n return raw(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this;\n let size = 0;\n /** @type {boolean} */\n let seen;\n return start;\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.enter(stringType);\n return atBreak;\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (size > 999 || code === null || code === 91 || code === 93 && !seen ||\n // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n code === 94 && !size && '_hiddenFootnoteSupport' in self.parser.constructs) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit(stringType);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return atBreak;\n }\n effects.enter('chunkString', {\n contentType: 'string'\n });\n return labelInside(code);\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (code === null || code === 91 || code === 93 || markdownLineEnding(code) || size++ > 999) {\n effects.exit('chunkString');\n return atBreak(code);\n }\n effects.consume(code);\n if (!seen) seen = !markdownSpace(code);\n return code === 92 ? labelEscape : labelInside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return labelInside;\n }\n return labelInside(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n marker = code === 40 ? 41 : code;\n return begin;\n }\n return nok(code);\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n return atBreak(code);\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType);\n return begin(marker);\n }\n if (code === null) {\n return nok(code);\n }\n\n // Note: blank lines can’t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return factorySpace(effects, atBreak, 'linePrefix');\n }\n effects.enter('chunkString', {\n contentType: 'string'\n });\n return inside(code);\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString');\n return atBreak(code);\n }\n effects.consume(code);\n return code === 92 ? escape : inside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code);\n return inside;\n }\n return inside(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n seen = true;\n return start;\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, start, seen ? 'linePrefix' : 'lineSuffix')(code);\n }\n return ok(code);\n }\n}","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercaseâ€, such as U+03F4 (`Ï´`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ')\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercaseâ€, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase().toUpperCase();\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factorySpace } from 'micromark-factory-space';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n};\n\n/** @type {Construct} */\nconst titleBefore = {\n tokenize: tokenizeTitleBefore,\n partial: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this;\n /** @type {string} */\n let identifier;\n return start;\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter('definition');\n return before(code);\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return factoryLabel.call(self, effects, labelAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok, 'definitionLabel', 'definitionLabelMarker', 'definitionLabelString')(code);\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1));\n if (code === 58) {\n effects.enter('definitionMarker');\n effects.consume(code);\n effects.exit('definitionMarker');\n return markerAfter;\n }\n return nok(code);\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, destinationBefore)(code) : destinationBefore(code);\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(effects, destinationAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok, 'definitionDestination', 'definitionDestinationLiteral', 'definitionDestinationLiteralMarker', 'definitionDestinationRaw', 'definitionDestinationString')(code);\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code);\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code) ? factorySpace(effects, afterWhitespace, 'whitespace')(code) : afterWhitespace(code);\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition');\n\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier);\n\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code);\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore;\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, beforeMarker)(code) : nok(code);\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(effects, titleAfter, nok, 'definitionTitle', 'definitionTitleMarker', 'definitionTitleString')(code);\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code) ? factorySpace(effects, titleAfterOptionalWhitespace, 'whitespace')(code) : titleAfterOptionalWhitespace(code);\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n};\n\n/** @type {Construct} */\nconst furtherStart = {\n tokenize: tokenizeFurtherStart,\n partial: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter('codeIndented');\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code);\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === 'linePrefix' && tail[2].sliceSerialize(tail[1], true).length >= 4 ? atBreak(code) : nok(code);\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code);\n }\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code);\n }\n effects.enter('codeFlowValue');\n return inside(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue');\n return atBreak(code);\n }\n effects.consume(code);\n return inside;\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit('codeIndented');\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this;\n return furtherStart;\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return furtherStart;\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code);\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === 'linePrefix' && tail[2].sliceSerialize(tail[1], true).length >= 4 ? ok(code) : markdownLineEnding(code) ? furtherStart(code) : nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n};\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2;\n let contentStart = 3;\n /** @type {Token} */\n let content;\n /** @type {Token} */\n let text;\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2;\n }\n\n // Suffix whitespace, part of the closing.\n if (contentEnd - 2 > contentStart && events[contentEnd][1].type === 'whitespace') {\n contentEnd -= 2;\n }\n if (events[contentEnd][1].type === 'atxHeadingSequence' && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === 'whitespace')) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;\n }\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n };\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n };\n splice(events, contentStart, contentEnd - contentStart + 1, [['enter', content, context], ['enter', text, context], ['exit', text, context], ['exit', content, context]]);\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter('atxHeading');\n return before(code);\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('atxHeadingSequence');\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code);\n return sequenceOpen;\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence');\n return atBreak(code);\n }\n return nok(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence');\n return sequenceFurther(code);\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading');\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code);\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter('atxHeadingText');\n return data(code);\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible†hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code);\n return sequenceFurther;\n }\n effects.exit('atxHeadingSequence');\n return atBreak(code);\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText');\n return atBreak(code);\n }\n effects.consume(code);\n return data;\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n};\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length;\n /** @type {number | undefined} */\n let content;\n /** @type {number | undefined} */\n let text;\n /** @type {number | undefined} */\n let definition;\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index;\n break;\n }\n if (events[index][1].type === 'paragraph') {\n text = index;\n }\n }\n // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1);\n }\n if (!definition && events[index][1].type === 'definition') {\n definition = index;\n }\n }\n }\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n\n // Change the paragraph to setext heading text.\n events[text][1].type = 'setextHeadingText';\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context]);\n events.splice(definition + 1, 0, ['exit', events[content][1], context]);\n events[content][1].end = Object.assign({}, events[definition][1].end);\n } else {\n events[content][1] = heading;\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context]);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length;\n /** @type {boolean | undefined} */\n let paragraph;\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (self.events[index][1].type !== 'lineEnding' && self.events[index][1].type !== 'linePrefix' && self.events[index][1].type !== 'content') {\n paragraph = self.events[index][1].type === 'paragraph';\n break;\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine');\n marker = code;\n return before(code);\n }\n return nok(code);\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('setextHeadingLineSequence');\n return inside(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n effects.exit('setextHeadingLineSequence');\n return markdownSpace(code) ? factorySpace(effects, after, 'lineSuffix')(code) : after(code);\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine');\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * List of lowercase HTML “block†tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = ['address', 'article', 'aside', 'base', 'basefont', 'blockquote', 'body', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dialog', 'dir', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hr', 'html', 'iframe', 'legend', 'li', 'link', 'main', 'menu', 'menuitem', 'nav', 'noframes', 'ol', 'optgroup', 'option', 'p', 'param', 'search', 'section', 'summary', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul'];\n\n/**\n * List of lowercase HTML “raw†tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea'];","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { asciiAlpha, asciiAlphanumeric, markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { htmlBlockNames, htmlRawNames } from 'micromark-util-html-tag-name';\nimport { blankLine } from './blank-line.js';\n\n/** @type {Construct} */\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n};\n\n/** @type {Construct} */\nconst blankLineBefore = {\n tokenize: tokenizeBlankLineBefore,\n partial: true\n};\nconst nonLazyContinuationStart = {\n tokenize: tokenizeNonLazyContinuationStart,\n partial: true\n};\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length;\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break;\n }\n }\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start;\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start;\n // Remove the line prefix.\n events.splice(index - 2, 2);\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this;\n /** @type {number} */\n let marker;\n /** @type {boolean} */\n let closingTag;\n /** @type {string} */\n let buffer;\n /** @type {number} */\n let index;\n /** @type {Code} */\n let markerB;\n return start;\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('htmlFlow');\n effects.enter('htmlFlowData');\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | <x />\n * ^\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n closingTag = true;\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n marker = 3;\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n marker = 2;\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n marker = 5;\n index = 0;\n return cdataOpenInside;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n marker = 4;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n\n /**\n * After `<!-`, inside a comment, at another `-`.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n\n /**\n * After `<![`, inside CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA[';\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | </x>\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | <ab>\n * ^^\n * > | </ab>\n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (code === null || code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n const slash = code === 47;\n const name = buffer.toLowerCase();\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6;\n if (slash) {\n effects.consume(code);\n return basicSelfClosing;\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n marker = 7;\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line] ? nok(code) : closingTag ? completeClosingTagAfter(code) : completeAttributeNameBefore(code);\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > | <div/>\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return nok(code);\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | <x/>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeClosingTagAfter;\n }\n return completeEnd(code);\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | <a />\n * ^\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * > | <a >\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code);\n return completeEnd;\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameBefore;\n }\n return completeEnd(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n return completeAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | <a b>\n * ^\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameAfter;\n }\n return completeAttributeNameBefore(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n markerB = code;\n return completeAttributeValueQuoted;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n return completeAttributeValueUnquoted(code);\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * > | <a b='c'>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code);\n markerB = null;\n return completeAttributeValueQuotedAfter;\n }\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n effects.consume(code);\n return completeAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 47 || code === 60 || code === 61 || code === 62 || code === 96 || markdownLineEndingOrSpace(code)) {\n return completeAttributeNameAfter(code);\n }\n effects.consume(code);\n return completeAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | <x>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationCommentInside;\n }\n if (code === 60 && marker === 1) {\n effects.consume(code);\n return continuationRawTagOpen;\n }\n if (code === 62 && marker === 4) {\n effects.consume(code);\n return continuationClose;\n }\n if (code === 63 && marker === 3) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n if (code === 93 && marker === 5) {\n effects.consume(code);\n return continuationCdataInside;\n }\n if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n effects.exit('htmlFlowData');\n return effects.check(blankLineBefore, continuationAfter, continuationStart)(code);\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData');\n return continuationStart(code);\n }\n effects.consume(code);\n return continuation;\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(nonLazyContinuationStart, continuationStartNonLazy, continuationAfter)(code);\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return continuationBefore;\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | <x>\n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return continuationStart(code);\n }\n effects.enter('htmlFlowData');\n return continuation(code);\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after `</`, in a raw tag name.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code);\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | <!-->\n * ^\n * > | <?>\n * ^\n * > | <!q>\n * ^\n * > | <!--ab-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData');\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow');\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > | <div>\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n};\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this;\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code);\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1];\n initialPrefix = tail && tail[1].type === 'linePrefix' ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code;\n effects.enter('codeFenced');\n effects.enter('codeFencedFence');\n effects.enter('codeFencedFenceSequence');\n return sequenceOpen(code);\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++;\n effects.consume(code);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code);\n }\n effects.exit('codeFencedFenceSequence');\n return markdownSpace(code) ? factorySpace(effects, infoBefore, 'whitespace')(code) : infoBefore(code);\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence');\n return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter('codeFencedFenceInfo');\n effects.enter('chunkString', {\n contentType: 'string'\n });\n return info(code);\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString');\n effects.exit('codeFencedFenceInfo');\n return infoBefore(code);\n }\n if (markdownSpace(code)) {\n effects.exit('chunkString');\n effects.exit('codeFencedFenceInfo');\n return factorySpace(effects, metaBefore, 'whitespace')(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return info;\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code);\n }\n effects.enter('codeFencedFenceMeta');\n effects.enter('chunkString', {\n contentType: 'string'\n });\n return meta(code);\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString');\n effects.exit('codeFencedFenceMeta');\n return infoBefore(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return meta;\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code);\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return contentStart;\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, 'linePrefix', initialPrefix + 1)(code) : beforeContentChunk(code);\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter('codeFlowValue');\n return contentChunk(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue');\n return beforeContentChunk(code);\n }\n effects.consume(code);\n return contentChunk;\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit('codeFenced');\n return ok(code);\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0;\n return startBefore;\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return start;\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter('codeFencedFence');\n return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, 'linePrefix', self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter('codeFencedFenceSequence');\n return sequenceClose(code);\n }\n return nok(code);\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++;\n effects.consume(code);\n return sequenceClose;\n }\n if (size >= sizeOpen) {\n effects.exit('codeFencedFenceSequence');\n return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code) : sequenceCloseAfter(code);\n }\n return nok(code);\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence');\n return ok(code);\n }\n return nok(code);\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code);\n }\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return lineStart;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}","/**\n * Map of named character references.\n *\n * @type {Record<string, string>}\n */\nexport const characterEntities = {\n AElig: 'Æ',\n AMP: '&',\n Aacute: 'Ã',\n Abreve: 'Ä‚',\n Acirc: 'Â',\n Acy: 'Ð',\n Afr: 'ð”„',\n Agrave: 'À',\n Alpha: 'Α',\n Amacr: 'Ä€',\n And: 'â©“',\n Aogon: 'Ä„',\n Aopf: 'ð”¸',\n ApplyFunction: 'â¡',\n Aring: 'Ã…',\n Ascr: 'ð’œ',\n Assign: '≔',\n Atilde: 'Ã',\n Auml: 'Ä',\n Backslash: '∖',\n Barv: '⫧',\n Barwed: '⌆',\n Bcy: 'Б',\n Because: '∵',\n Bernoullis: 'ℬ',\n Beta: 'Î’',\n Bfr: 'ð”…',\n Bopf: 'ð”¹',\n Breve: '˘',\n Bscr: 'ℬ',\n Bumpeq: '≎',\n CHcy: 'Ч',\n COPY: '©',\n Cacute: 'Ć',\n Cap: 'â‹’',\n CapitalDifferentialD: 'â……',\n Cayleys: 'â„',\n Ccaron: 'ÄŒ',\n Ccedil: 'Ç',\n Ccirc: 'Ĉ',\n Cconint: '∰',\n Cdot: 'ÄŠ',\n Cedilla: '¸',\n CenterDot: '·',\n Cfr: 'â„',\n Chi: 'Χ',\n CircleDot: '⊙',\n CircleMinus: '⊖',\n CirclePlus: '⊕',\n CircleTimes: '⊗',\n ClockwiseContourIntegral: '∲',\n CloseCurlyDoubleQuote: 'â€',\n CloseCurlyQuote: '’',\n Colon: '∷',\n Colone: 'â©´',\n Congruent: '≡',\n Conint: '∯',\n ContourIntegral: '∮',\n Copf: 'â„‚',\n Coproduct: 'âˆ',\n CounterClockwiseContourIntegral: '∳',\n Cross: '⨯',\n Cscr: 'ð’ž',\n Cup: 'â‹“',\n CupCap: 'â‰',\n DD: 'â……',\n DDotrahd: '⤑',\n DJcy: 'Ђ',\n DScy: 'Ð…',\n DZcy: 'Ð',\n Dagger: '‡',\n Darr: '↡',\n Dashv: '⫤',\n Dcaron: 'ÄŽ',\n Dcy: 'Д',\n Del: '∇',\n Delta: 'Δ',\n Dfr: 'ð”‡',\n DiacriticalAcute: '´',\n DiacriticalDot: 'Ë™',\n DiacriticalDoubleAcute: 'Ë',\n DiacriticalGrave: '`',\n DiacriticalTilde: 'Ëœ',\n Diamond: 'â‹„',\n DifferentialD: 'â…†',\n Dopf: 'ð”»',\n Dot: '¨',\n DotDot: '⃜',\n DotEqual: 'â‰',\n DoubleContourIntegral: '∯',\n DoubleDot: '¨',\n DoubleDownArrow: '⇓',\n DoubleLeftArrow: 'â‡',\n DoubleLeftRightArrow: '⇔',\n DoubleLeftTee: '⫤',\n DoubleLongLeftArrow: '⟸',\n DoubleLongLeftRightArrow: '⟺',\n DoubleLongRightArrow: '⟹',\n DoubleRightArrow: '⇒',\n DoubleRightTee: '⊨',\n DoubleUpArrow: '⇑',\n DoubleUpDownArrow: '⇕',\n DoubleVerticalBar: '∥',\n DownArrow: '↓',\n DownArrowBar: '⤓',\n DownArrowUpArrow: '⇵',\n DownBreve: 'Ì‘',\n DownLeftRightVector: 'â¥',\n DownLeftTeeVector: '⥞',\n DownLeftVector: '↽',\n DownLeftVectorBar: '⥖',\n DownRightTeeVector: '⥟',\n DownRightVector: 'â‡',\n DownRightVectorBar: '⥗',\n DownTee: '⊤',\n DownTeeArrow: '↧',\n Downarrow: '⇓',\n Dscr: 'ð’Ÿ',\n Dstrok: 'Ä',\n ENG: 'ÅŠ',\n ETH: 'Ã',\n Eacute: 'É',\n Ecaron: 'Äš',\n Ecirc: 'Ê',\n Ecy: 'Ð',\n Edot: 'Ä–',\n Efr: 'ð”ˆ',\n Egrave: 'È',\n Element: '∈',\n Emacr: 'Ä’',\n EmptySmallSquare: 'â—»',\n EmptyVerySmallSquare: 'â–«',\n Eogon: 'Ę',\n Eopf: 'ð”¼',\n Epsilon: 'Ε',\n Equal: '⩵',\n EqualTilde: '≂',\n Equilibrium: '⇌',\n Escr: 'â„°',\n Esim: '⩳',\n Eta: 'Η',\n Euml: 'Ë',\n Exists: '∃',\n ExponentialE: 'â…‡',\n Fcy: 'Ф',\n Ffr: 'ð”‰',\n FilledSmallSquare: 'â—¼',\n FilledVerySmallSquare: 'â–ª',\n Fopf: 'ð”½',\n ForAll: '∀',\n Fouriertrf: 'ℱ',\n Fscr: 'ℱ',\n GJcy: 'Ѓ',\n GT: '>',\n Gamma: 'Γ',\n Gammad: 'Ïœ',\n Gbreve: 'Äž',\n Gcedil: 'Ä¢',\n Gcirc: 'Äœ',\n Gcy: 'Г',\n Gdot: 'Ä ',\n Gfr: 'ð”Š',\n Gg: 'â‹™',\n Gopf: 'ð”¾',\n GreaterEqual: '≥',\n GreaterEqualLess: 'â‹›',\n GreaterFullEqual: '≧',\n GreaterGreater: '⪢',\n GreaterLess: '≷',\n GreaterSlantEqual: '⩾',\n GreaterTilde: '≳',\n Gscr: 'ð’¢',\n Gt: '≫',\n HARDcy: 'Ъ',\n Hacek: 'ˇ',\n Hat: '^',\n Hcirc: 'Ĥ',\n Hfr: 'â„Œ',\n HilbertSpace: 'â„‹',\n Hopf: 'â„',\n HorizontalLine: '─',\n Hscr: 'â„‹',\n Hstrok: 'Ħ',\n HumpDownHump: '≎',\n HumpEqual: 'â‰',\n IEcy: 'Е',\n IJlig: 'IJ',\n IOcy: 'Ð',\n Iacute: 'Ã',\n Icirc: 'ÃŽ',\n Icy: 'И',\n Idot: 'Ä°',\n Ifr: 'â„‘',\n Igrave: 'ÃŒ',\n Im: 'â„‘',\n Imacr: 'Ī',\n ImaginaryI: 'â…ˆ',\n Implies: '⇒',\n Int: '∬',\n Integral: '∫',\n Intersection: 'â‹‚',\n InvisibleComma: 'â£',\n InvisibleTimes: 'â¢',\n Iogon: 'Ä®',\n Iopf: 'ð•€',\n Iota: 'Ι',\n Iscr: 'â„',\n Itilde: 'Ĩ',\n Iukcy: 'І',\n Iuml: 'Ã',\n Jcirc: 'Ä´',\n Jcy: 'Й',\n Jfr: 'ð”',\n Jopf: 'ð•',\n Jscr: 'ð’¥',\n Jsercy: 'Ј',\n Jukcy: 'Є',\n KHcy: 'Ð¥',\n KJcy: 'ÐŒ',\n Kappa: 'Κ',\n Kcedil: 'Ķ',\n Kcy: 'К',\n Kfr: 'ð”Ž',\n Kopf: 'ð•‚',\n Kscr: 'ð’¦',\n LJcy: 'Љ',\n LT: '<',\n Lacute: 'Ĺ',\n Lambda: 'Λ',\n Lang: '⟪',\n Laplacetrf: 'â„’',\n Larr: '↞',\n Lcaron: 'Ľ',\n Lcedil: 'Ä»',\n Lcy: 'Л',\n LeftAngleBracket: '⟨',\n LeftArrow: 'â†',\n LeftArrowBar: '⇤',\n LeftArrowRightArrow: '⇆',\n LeftCeiling: '⌈',\n LeftDoubleBracket: '⟦',\n LeftDownTeeVector: '⥡',\n LeftDownVector: '⇃',\n LeftDownVectorBar: '⥙',\n LeftFloor: '⌊',\n LeftRightArrow: '↔',\n LeftRightVector: '⥎',\n LeftTee: '⊣',\n LeftTeeArrow: '↤',\n LeftTeeVector: '⥚',\n LeftTriangle: '⊲',\n LeftTriangleBar: 'â§',\n LeftTriangleEqual: '⊴',\n LeftUpDownVector: '⥑',\n LeftUpTeeVector: '⥠',\n LeftUpVector: '↿',\n LeftUpVectorBar: '⥘',\n LeftVector: '↼',\n LeftVectorBar: '⥒',\n Leftarrow: 'â‡',\n Leftrightarrow: '⇔',\n LessEqualGreater: 'â‹š',\n LessFullEqual: '≦',\n LessGreater: '≶',\n LessLess: '⪡',\n LessSlantEqual: '⩽',\n LessTilde: '≲',\n Lfr: 'ð”',\n Ll: '⋘',\n Lleftarrow: '⇚',\n Lmidot: 'Ä¿',\n LongLeftArrow: '⟵',\n LongLeftRightArrow: '⟷',\n LongRightArrow: '⟶',\n Longleftarrow: '⟸',\n Longleftrightarrow: '⟺',\n Longrightarrow: '⟹',\n Lopf: 'ð•ƒ',\n LowerLeftArrow: '↙',\n LowerRightArrow: '↘',\n Lscr: 'â„’',\n Lsh: '↰',\n Lstrok: 'Å',\n Lt: '≪',\n Map: '⤅',\n Mcy: 'Ðœ',\n MediumSpace: 'âŸ',\n Mellintrf: 'ℳ',\n Mfr: 'ð”',\n MinusPlus: '∓',\n Mopf: 'ð•„',\n Mscr: 'ℳ',\n Mu: 'Îœ',\n NJcy: 'Њ',\n Nacute: 'Ń',\n Ncaron: 'Ň',\n Ncedil: 'Å…',\n Ncy: 'Ð',\n NegativeMediumSpace: '​',\n NegativeThickSpace: '​',\n NegativeThinSpace: '​',\n NegativeVeryThinSpace: '​',\n NestedGreaterGreater: '≫',\n NestedLessLess: '≪',\n NewLine: '\\n',\n Nfr: 'ð”‘',\n NoBreak: 'â ',\n NonBreakingSpace: ' ',\n Nopf: 'â„•',\n Not: '⫬',\n NotCongruent: '≢',\n NotCupCap: 'â‰',\n NotDoubleVerticalBar: '∦',\n NotElement: '∉',\n NotEqual: '≠',\n NotEqualTilde: '≂̸',\n NotExists: '∄',\n NotGreater: '≯',\n NotGreaterEqual: '≱',\n NotGreaterFullEqual: '≧̸',\n NotGreaterGreater: '≫̸',\n NotGreaterLess: '≹',\n NotGreaterSlantEqual: '⩾̸',\n NotGreaterTilde: '≵',\n NotHumpDownHump: '≎̸',\n NotHumpEqual: 'â‰Ì¸',\n NotLeftTriangle: '⋪',\n NotLeftTriangleBar: 'â§Ì¸',\n NotLeftTriangleEqual: '⋬',\n NotLess: '≮',\n NotLessEqual: '≰',\n NotLessGreater: '≸',\n NotLessLess: '≪̸',\n NotLessSlantEqual: '⩽̸',\n NotLessTilde: '≴',\n NotNestedGreaterGreater: '⪢̸',\n NotNestedLessLess: '⪡̸',\n NotPrecedes: '⊀',\n NotPrecedesEqual: '⪯̸',\n NotPrecedesSlantEqual: 'â‹ ',\n NotReverseElement: '∌',\n NotRightTriangle: 'â‹«',\n NotRightTriangleBar: 'â§Ì¸',\n NotRightTriangleEqual: 'â‹',\n NotSquareSubset: 'âŠÌ¸',\n NotSquareSubsetEqual: 'â‹¢',\n NotSquareSuperset: 'âŠÌ¸',\n NotSquareSupersetEqual: 'â‹£',\n NotSubset: '⊂⃒',\n NotSubsetEqual: '⊈',\n NotSucceeds: 'âŠ',\n NotSucceedsEqual: '⪰̸',\n NotSucceedsSlantEqual: 'â‹¡',\n NotSucceedsTilde: '≿̸',\n NotSuperset: '⊃⃒',\n NotSupersetEqual: '⊉',\n NotTilde: 'â‰',\n NotTildeEqual: '≄',\n NotTildeFullEqual: '≇',\n NotTildeTilde: '≉',\n NotVerticalBar: '∤',\n Nscr: 'ð’©',\n Ntilde: 'Ñ',\n Nu: 'Î',\n OElig: 'Å’',\n Oacute: 'Ó',\n Ocirc: 'Ô',\n Ocy: 'О',\n Odblac: 'Å',\n Ofr: 'ð”’',\n Ograve: 'Ã’',\n Omacr: 'ÅŒ',\n Omega: 'Ω',\n Omicron: 'Ο',\n Oopf: 'ð•†',\n OpenCurlyDoubleQuote: '“',\n OpenCurlyQuote: '‘',\n Or: 'â©”',\n Oscr: 'ð’ª',\n Oslash: 'Ø',\n Otilde: 'Õ',\n Otimes: '⨷',\n Ouml: 'Ö',\n OverBar: '‾',\n OverBrace: 'âž',\n OverBracket: '⎴',\n OverParenthesis: 'âœ',\n PartialD: '∂',\n Pcy: 'П',\n Pfr: 'ð”“',\n Phi: 'Φ',\n Pi: 'Î ',\n PlusMinus: '±',\n Poincareplane: 'â„Œ',\n Popf: 'â„™',\n Pr: '⪻',\n Precedes: '≺',\n PrecedesEqual: '⪯',\n PrecedesSlantEqual: '≼',\n PrecedesTilde: '≾',\n Prime: '″',\n Product: 'âˆ',\n Proportion: '∷',\n Proportional: 'âˆ',\n Pscr: 'ð’«',\n Psi: 'Ψ',\n QUOT: '\"',\n Qfr: 'ð””',\n Qopf: 'â„š',\n Qscr: 'ð’¬',\n RBarr: 'â¤',\n REG: '®',\n Racute: 'Å”',\n Rang: '⟫',\n Rarr: '↠',\n Rarrtl: '⤖',\n Rcaron: 'Ř',\n Rcedil: 'Å–',\n Rcy: 'Ð ',\n Re: 'â„œ',\n ReverseElement: '∋',\n ReverseEquilibrium: '⇋',\n ReverseUpEquilibrium: '⥯',\n Rfr: 'â„œ',\n Rho: 'Ρ',\n RightAngleBracket: '⟩',\n RightArrow: '→',\n RightArrowBar: '⇥',\n RightArrowLeftArrow: '⇄',\n RightCeiling: '⌉',\n RightDoubleBracket: '⟧',\n RightDownTeeVector: 'â¥',\n RightDownVector: '⇂',\n RightDownVectorBar: '⥕',\n RightFloor: '⌋',\n RightTee: '⊢',\n RightTeeArrow: '↦',\n RightTeeVector: '⥛',\n RightTriangle: '⊳',\n RightTriangleBar: 'â§',\n RightTriangleEqual: '⊵',\n RightUpDownVector: 'â¥',\n RightUpTeeVector: '⥜',\n RightUpVector: '↾',\n RightUpVectorBar: '⥔',\n RightVector: '⇀',\n RightVectorBar: '⥓',\n Rightarrow: '⇒',\n Ropf: 'â„',\n RoundImplies: '⥰',\n Rrightarrow: '⇛',\n Rscr: 'â„›',\n Rsh: '↱',\n RuleDelayed: '⧴',\n SHCHcy: 'Щ',\n SHcy: 'Ш',\n SOFTcy: 'Ь',\n Sacute: 'Åš',\n Sc: '⪼',\n Scaron: 'Å ',\n Scedil: 'Åž',\n Scirc: 'Åœ',\n Scy: 'С',\n Sfr: 'ð”–',\n ShortDownArrow: '↓',\n ShortLeftArrow: 'â†',\n ShortRightArrow: '→',\n ShortUpArrow: '↑',\n Sigma: 'Σ',\n SmallCircle: '∘',\n Sopf: 'ð•Š',\n Sqrt: '√',\n Square: 'â–¡',\n SquareIntersection: '⊓',\n SquareSubset: 'âŠ',\n SquareSubsetEqual: '⊑',\n SquareSuperset: 'âŠ',\n SquareSupersetEqual: '⊒',\n SquareUnion: '⊔',\n Sscr: 'ð’®',\n Star: '⋆',\n Sub: 'â‹',\n Subset: 'â‹',\n SubsetEqual: '⊆',\n Succeeds: '≻',\n SucceedsEqual: '⪰',\n SucceedsSlantEqual: '≽',\n SucceedsTilde: '≿',\n SuchThat: '∋',\n Sum: '∑',\n Sup: 'â‹‘',\n Superset: '⊃',\n SupersetEqual: '⊇',\n Supset: 'â‹‘',\n THORN: 'Þ',\n TRADE: 'â„¢',\n TSHcy: 'Ћ',\n TScy: 'Ц',\n Tab: '\\t',\n Tau: 'Τ',\n Tcaron: 'Ť',\n Tcedil: 'Å¢',\n Tcy: 'Т',\n Tfr: 'ð”—',\n Therefore: '∴',\n Theta: 'Θ',\n ThickSpace: 'âŸâ€Š',\n ThinSpace: ' ',\n Tilde: '∼',\n TildeEqual: '≃',\n TildeFullEqual: '≅',\n TildeTilde: '≈',\n Topf: 'ð•‹',\n TripleDot: '⃛',\n Tscr: 'ð’¯',\n Tstrok: 'Ŧ',\n Uacute: 'Ú',\n Uarr: '↟',\n Uarrocir: '⥉',\n Ubrcy: 'ÐŽ',\n Ubreve: 'Ŭ',\n Ucirc: 'Û',\n Ucy: 'У',\n Udblac: 'Å°',\n Ufr: 'ð”˜',\n Ugrave: 'Ù',\n Umacr: 'Ū',\n UnderBar: '_',\n UnderBrace: 'âŸ',\n UnderBracket: '⎵',\n UnderParenthesis: 'â',\n Union: '⋃',\n UnionPlus: '⊎',\n Uogon: 'Ų',\n Uopf: 'ð•Œ',\n UpArrow: '↑',\n UpArrowBar: '⤒',\n UpArrowDownArrow: '⇅',\n UpDownArrow: '↕',\n UpEquilibrium: '⥮',\n UpTee: '⊥',\n UpTeeArrow: '↥',\n Uparrow: '⇑',\n Updownarrow: '⇕',\n UpperLeftArrow: '↖',\n UpperRightArrow: '↗',\n Upsi: 'Ï’',\n Upsilon: 'Î¥',\n Uring: 'Å®',\n Uscr: 'ð’°',\n Utilde: 'Ũ',\n Uuml: 'Ãœ',\n VDash: '⊫',\n Vbar: 'â««',\n Vcy: 'Ð’',\n Vdash: '⊩',\n Vdashl: '⫦',\n Vee: 'â‹',\n Verbar: '‖',\n Vert: '‖',\n VerticalBar: '∣',\n VerticalLine: '|',\n VerticalSeparator: 'â˜',\n VerticalTilde: '≀',\n VeryThinSpace: ' ',\n Vfr: 'ð”™',\n Vopf: 'ð•',\n Vscr: 'ð’±',\n Vvdash: '⊪',\n Wcirc: 'Å´',\n Wedge: 'â‹€',\n Wfr: 'ð”š',\n Wopf: 'ð•Ž',\n Wscr: 'ð’²',\n Xfr: 'ð”›',\n Xi: 'Ξ',\n Xopf: 'ð•',\n Xscr: 'ð’³',\n YAcy: 'Я',\n YIcy: 'Ї',\n YUcy: 'Ю',\n Yacute: 'Ã',\n Ycirc: 'Ŷ',\n Ycy: 'Ы',\n Yfr: 'ð”œ',\n Yopf: 'ð•',\n Yscr: 'ð’´',\n Yuml: 'Ÿ',\n ZHcy: 'Ж',\n Zacute: 'Ź',\n Zcaron: 'Ž',\n Zcy: 'З',\n Zdot: 'Å»',\n ZeroWidthSpace: '​',\n Zeta: 'Ζ',\n Zfr: 'ℨ',\n Zopf: 'ℤ',\n Zscr: 'ð’µ',\n aacute: 'á',\n abreve: 'ă',\n ac: '∾',\n acE: '∾̳',\n acd: '∿',\n acirc: 'â',\n acute: '´',\n acy: 'а',\n aelig: 'æ',\n af: 'â¡',\n afr: 'ð”ž',\n agrave: 'à ',\n alefsym: 'ℵ',\n aleph: 'ℵ',\n alpha: 'α',\n amacr: 'Ä',\n amalg: '⨿',\n amp: '&',\n and: '∧',\n andand: 'â©•',\n andd: 'â©œ',\n andslope: '⩘',\n andv: 'â©š',\n ang: '∠',\n ange: '⦤',\n angle: '∠',\n angmsd: '∡',\n angmsdaa: '⦨',\n angmsdab: '⦩',\n angmsdac: '⦪',\n angmsdad: '⦫',\n angmsdae: '⦬',\n angmsdaf: 'â¦',\n angmsdag: '⦮',\n angmsdah: '⦯',\n angrt: '∟',\n angrtvb: '⊾',\n angrtvbd: 'â¦',\n angsph: '∢',\n angst: 'Ã…',\n angzarr: 'â¼',\n aogon: 'Ä…',\n aopf: 'ð•’',\n ap: '≈',\n apE: 'â©°',\n apacir: '⩯',\n ape: '≊',\n apid: '≋',\n apos: \"'\",\n approx: '≈',\n approxeq: '≊',\n aring: 'Ã¥',\n ascr: 'ð’¶',\n ast: '*',\n asymp: '≈',\n asympeq: 'â‰',\n atilde: 'ã',\n auml: 'ä',\n awconint: '∳',\n awint: '⨑',\n bNot: 'â«',\n backcong: '≌',\n backepsilon: '϶',\n backprime: '‵',\n backsim: '∽',\n backsimeq: 'â‹',\n barvee: '⊽',\n barwed: '⌅',\n barwedge: '⌅',\n bbrk: '⎵',\n bbrktbrk: '⎶',\n bcong: '≌',\n bcy: 'б',\n bdquo: '„',\n becaus: '∵',\n because: '∵',\n bemptyv: '⦰',\n bepsi: '϶',\n bernou: 'ℬ',\n beta: 'β',\n beth: 'ℶ',\n between: '≬',\n bfr: 'ð”Ÿ',\n bigcap: 'â‹‚',\n bigcirc: 'â—¯',\n bigcup: '⋃',\n bigodot: '⨀',\n bigoplus: 'â¨',\n bigotimes: '⨂',\n bigsqcup: '⨆',\n bigstar: '★',\n bigtriangledown: 'â–½',\n bigtriangleup: 'â–³',\n biguplus: '⨄',\n bigvee: 'â‹',\n bigwedge: 'â‹€',\n bkarow: 'â¤',\n blacklozenge: '⧫',\n blacksquare: 'â–ª',\n blacktriangle: 'â–´',\n blacktriangledown: 'â–¾',\n blacktriangleleft: 'â—‚',\n blacktriangleright: 'â–¸',\n blank: 'â£',\n blk12: 'â–’',\n blk14: 'â–‘',\n blk34: 'â–“',\n block: 'â–ˆ',\n bne: '=⃥',\n bnequiv: '≡⃥',\n bnot: 'âŒ',\n bopf: 'ð•“',\n bot: '⊥',\n bottom: '⊥',\n bowtie: '⋈',\n boxDL: 'â•—',\n boxDR: 'â•”',\n boxDl: 'â•–',\n boxDr: 'â•“',\n boxH: 'â•',\n boxHD: '╦',\n boxHU: 'â•©',\n boxHd: '╤',\n boxHu: '╧',\n boxUL: 'â•',\n boxUR: 'â•š',\n boxUl: 'â•œ',\n boxUr: 'â•™',\n boxV: 'â•‘',\n boxVH: '╬',\n boxVL: 'â•£',\n boxVR: 'â• ',\n boxVh: 'â•«',\n boxVl: 'â•¢',\n boxVr: 'â•Ÿ',\n boxbox: '⧉',\n boxdL: 'â••',\n boxdR: 'â•’',\n boxdl: 'â”',\n boxdr: '┌',\n boxh: '─',\n boxhD: 'â•¥',\n boxhU: '╨',\n boxhd: '┬',\n boxhu: 'â”´',\n boxminus: '⊟',\n boxplus: '⊞',\n boxtimes: '⊠',\n boxuL: 'â•›',\n boxuR: '╘',\n boxul: '┘',\n boxur: 'â””',\n boxv: '│',\n boxvH: '╪',\n boxvL: 'â•¡',\n boxvR: 'â•ž',\n boxvh: '┼',\n boxvl: '┤',\n boxvr: '├',\n bprime: '‵',\n breve: '˘',\n brvbar: '¦',\n bscr: 'ð’·',\n bsemi: 'â',\n bsim: '∽',\n bsime: 'â‹',\n bsol: '\\\\',\n bsolb: '⧅',\n bsolhsub: '⟈',\n bull: '•',\n bullet: '•',\n bump: '≎',\n bumpE: '⪮',\n bumpe: 'â‰',\n bumpeq: 'â‰',\n cacute: 'ć',\n cap: '∩',\n capand: 'â©„',\n capbrcup: '⩉',\n capcap: 'â©‹',\n capcup: '⩇',\n capdot: 'â©€',\n caps: '∩︀',\n caret: 'â',\n caron: 'ˇ',\n ccaps: 'â©',\n ccaron: 'Ä',\n ccedil: 'ç',\n ccirc: 'ĉ',\n ccups: 'â©Œ',\n ccupssm: 'â©',\n cdot: 'Ä‹',\n cedil: '¸',\n cemptyv: '⦲',\n cent: '¢',\n centerdot: '·',\n cfr: 'ð” ',\n chcy: 'ч',\n check: '✓',\n checkmark: '✓',\n chi: 'χ',\n cir: 'â—‹',\n cirE: '⧃',\n circ: 'ˆ',\n circeq: '≗',\n circlearrowleft: '↺',\n circlearrowright: '↻',\n circledR: '®',\n circledS: 'Ⓢ',\n circledast: '⊛',\n circledcirc: '⊚',\n circleddash: 'âŠ',\n cire: '≗',\n cirfnint: 'â¨',\n cirmid: '⫯',\n cirscir: '⧂',\n clubs: '♣',\n clubsuit: '♣',\n colon: ':',\n colone: '≔',\n coloneq: '≔',\n comma: ',',\n commat: '@',\n comp: 'âˆ',\n compfn: '∘',\n complement: 'âˆ',\n complexes: 'â„‚',\n cong: '≅',\n congdot: 'â©',\n conint: '∮',\n copf: 'ð•”',\n coprod: 'âˆ',\n copy: '©',\n copysr: 'â„—',\n crarr: '↵',\n cross: '✗',\n cscr: 'ð’¸',\n csub: 'â«',\n csube: 'â«‘',\n csup: 'â«',\n csupe: 'â«’',\n ctdot: '⋯',\n cudarrl: '⤸',\n cudarrr: '⤵',\n cuepr: 'â‹ž',\n cuesc: 'â‹Ÿ',\n cularr: '↶',\n cularrp: '⤽',\n cup: '∪',\n cupbrcap: '⩈',\n cupcap: '⩆',\n cupcup: 'â©Š',\n cupdot: 'âŠ',\n cupor: 'â©…',\n cups: '∪︀',\n curarr: '↷',\n curarrm: '⤼',\n curlyeqprec: 'â‹ž',\n curlyeqsucc: 'â‹Ÿ',\n curlyvee: 'â‹Ž',\n curlywedge: 'â‹',\n curren: '¤',\n curvearrowleft: '↶',\n curvearrowright: '↷',\n cuvee: 'â‹Ž',\n cuwed: 'â‹',\n cwconint: '∲',\n cwint: '∱',\n cylcty: 'âŒ',\n dArr: '⇓',\n dHar: '⥥',\n dagger: '†',\n daleth: 'ℸ',\n darr: '↓',\n dash: 'â€',\n dashv: '⊣',\n dbkarow: 'â¤',\n dblac: 'Ë',\n dcaron: 'Ä',\n dcy: 'д',\n dd: 'â…†',\n ddagger: '‡',\n ddarr: '⇊',\n ddotseq: 'â©·',\n deg: '°',\n delta: 'δ',\n demptyv: '⦱',\n dfisht: '⥿',\n dfr: 'ð”¡',\n dharl: '⇃',\n dharr: '⇂',\n diam: 'â‹„',\n diamond: 'â‹„',\n diamondsuit: '♦',\n diams: '♦',\n die: '¨',\n digamma: 'Ï',\n disin: '⋲',\n div: '÷',\n divide: '÷',\n divideontimes: '⋇',\n divonx: '⋇',\n djcy: 'Ñ’',\n dlcorn: '⌞',\n dlcrop: 'âŒ',\n dollar: '$',\n dopf: 'ð••',\n dot: 'Ë™',\n doteq: 'â‰',\n doteqdot: '≑',\n dotminus: '∸',\n dotplus: '∔',\n dotsquare: '⊡',\n doublebarwedge: '⌆',\n downarrow: '↓',\n downdownarrows: '⇊',\n downharpoonleft: '⇃',\n downharpoonright: '⇂',\n drbkarow: 'â¤',\n drcorn: '⌟',\n drcrop: '⌌',\n dscr: 'ð’¹',\n dscy: 'Ñ•',\n dsol: '⧶',\n dstrok: 'Ä‘',\n dtdot: '⋱',\n dtri: 'â–¿',\n dtrif: 'â–¾',\n duarr: '⇵',\n duhar: '⥯',\n dwangle: '⦦',\n dzcy: 'ÑŸ',\n dzigrarr: '⟿',\n eDDot: 'â©·',\n eDot: '≑',\n eacute: 'é',\n easter: 'â©®',\n ecaron: 'Ä›',\n ecir: '≖',\n ecirc: 'ê',\n ecolon: '≕',\n ecy: 'Ñ',\n edot: 'Ä—',\n ee: 'â…‡',\n efDot: '≒',\n efr: 'ð”¢',\n eg: '⪚',\n egrave: 'è',\n egs: '⪖',\n egsdot: '⪘',\n el: '⪙',\n elinters: 'â§',\n ell: 'â„“',\n els: '⪕',\n elsdot: '⪗',\n emacr: 'Ä“',\n empty: '∅',\n emptyset: '∅',\n emptyv: '∅',\n emsp13: ' ',\n emsp14: ' ',\n emsp: ' ',\n eng: 'Å‹',\n ensp: ' ',\n eogon: 'Ä™',\n eopf: 'ð•–',\n epar: 'â‹•',\n eparsl: '⧣',\n eplus: '⩱',\n epsi: 'ε',\n epsilon: 'ε',\n epsiv: 'ϵ',\n eqcirc: '≖',\n eqcolon: '≕',\n eqsim: '≂',\n eqslantgtr: '⪖',\n eqslantless: '⪕',\n equals: '=',\n equest: '≟',\n equiv: '≡',\n equivDD: '⩸',\n eqvparsl: '⧥',\n erDot: '≓',\n erarr: '⥱',\n escr: 'ℯ',\n esdot: 'â‰',\n esim: '≂',\n eta: 'η',\n eth: 'ð',\n euml: 'ë',\n euro: '€',\n excl: '!',\n exist: '∃',\n expectation: 'â„°',\n exponentiale: 'â…‡',\n fallingdotseq: '≒',\n fcy: 'Ñ„',\n female: '♀',\n ffilig: 'ffi',\n fflig: 'ff',\n ffllig: 'ffl',\n ffr: 'ð”£',\n filig: 'ï¬',\n fjlig: 'fj',\n flat: 'â™',\n fllig: 'fl',\n fltns: 'â–±',\n fnof: 'Æ’',\n fopf: 'ð•—',\n forall: '∀',\n fork: 'â‹”',\n forkv: 'â«™',\n fpartint: 'â¨',\n frac12: '½',\n frac13: 'â…“',\n frac14: '¼',\n frac15: 'â…•',\n frac16: 'â…™',\n frac18: 'â…›',\n frac23: 'â…”',\n frac25: 'â…–',\n frac34: '¾',\n frac35: 'â…—',\n frac38: 'â…œ',\n frac45: 'â…˜',\n frac56: 'â…š',\n frac58: 'â…',\n frac78: 'â…ž',\n frasl: 'â„',\n frown: '⌢',\n fscr: 'ð’»',\n gE: '≧',\n gEl: '⪌',\n gacute: 'ǵ',\n gamma: 'γ',\n gammad: 'Ï',\n gap: '⪆',\n gbreve: 'ÄŸ',\n gcirc: 'Ä',\n gcy: 'г',\n gdot: 'Ä¡',\n ge: '≥',\n gel: 'â‹›',\n geq: '≥',\n geqq: '≧',\n geqslant: '⩾',\n ges: '⩾',\n gescc: '⪩',\n gesdot: '⪀',\n gesdoto: '⪂',\n gesdotol: '⪄',\n gesl: '⋛︀',\n gesles: '⪔',\n gfr: 'ð”¤',\n gg: '≫',\n ggg: 'â‹™',\n gimel: 'â„·',\n gjcy: 'Ñ“',\n gl: '≷',\n glE: '⪒',\n gla: '⪥',\n glj: '⪤',\n gnE: '≩',\n gnap: '⪊',\n gnapprox: '⪊',\n gne: '⪈',\n gneq: '⪈',\n gneqq: '≩',\n gnsim: '⋧',\n gopf: 'ð•˜',\n grave: '`',\n gscr: 'â„Š',\n gsim: '≳',\n gsime: '⪎',\n gsiml: 'âª',\n gt: '>',\n gtcc: '⪧',\n gtcir: '⩺',\n gtdot: 'â‹—',\n gtlPar: '⦕',\n gtquest: '⩼',\n gtrapprox: '⪆',\n gtrarr: '⥸',\n gtrdot: 'â‹—',\n gtreqless: 'â‹›',\n gtreqqless: '⪌',\n gtrless: '≷',\n gtrsim: '≳',\n gvertneqq: '≩︀',\n gvnE: '≩︀',\n hArr: '⇔',\n hairsp: ' ',\n half: '½',\n hamilt: 'â„‹',\n hardcy: 'ÑŠ',\n harr: '↔',\n harrcir: '⥈',\n harrw: 'â†',\n hbar: 'â„',\n hcirc: 'Ä¥',\n hearts: '♥',\n heartsuit: '♥',\n hellip: '…',\n hercon: '⊹',\n hfr: 'ð”¥',\n hksearow: '⤥',\n hkswarow: '⤦',\n hoarr: '⇿',\n homtht: '∻',\n hookleftarrow: '↩',\n hookrightarrow: '↪',\n hopf: 'ð•™',\n horbar: '―',\n hscr: 'ð’½',\n hslash: 'â„',\n hstrok: 'ħ',\n hybull: 'âƒ',\n hyphen: 'â€',\n iacute: 'Ã',\n ic: 'â£',\n icirc: 'î',\n icy: 'и',\n iecy: 'е',\n iexcl: '¡',\n iff: '⇔',\n ifr: 'ð”¦',\n igrave: 'ì',\n ii: 'â…ˆ',\n iiiint: '⨌',\n iiint: 'âˆ',\n iinfin: '⧜',\n iiota: 'â„©',\n ijlig: 'ij',\n imacr: 'Ä«',\n image: 'â„‘',\n imagline: 'â„',\n imagpart: 'â„‘',\n imath: 'ı',\n imof: '⊷',\n imped: 'Ƶ',\n in: '∈',\n incare: 'â„…',\n infin: '∞',\n infintie: 'â§',\n inodot: 'ı',\n int: '∫',\n intcal: '⊺',\n integers: 'ℤ',\n intercal: '⊺',\n intlarhk: '⨗',\n intprod: '⨼',\n iocy: 'Ñ‘',\n iogon: 'į',\n iopf: 'ð•š',\n iota: 'ι',\n iprod: '⨼',\n iquest: '¿',\n iscr: 'ð’¾',\n isin: '∈',\n isinE: '⋹',\n isindot: '⋵',\n isins: 'â‹´',\n isinsv: '⋳',\n isinv: '∈',\n it: 'â¢',\n itilde: 'Ä©',\n iukcy: 'Ñ–',\n iuml: 'ï',\n jcirc: 'ĵ',\n jcy: 'й',\n jfr: 'ð”§',\n jmath: 'È·',\n jopf: 'ð•›',\n jscr: 'ð’¿',\n jsercy: 'ј',\n jukcy: 'Ñ”',\n kappa: 'κ',\n kappav: 'Ï°',\n kcedil: 'Ä·',\n kcy: 'к',\n kfr: 'ð”¨',\n kgreen: 'ĸ',\n khcy: 'Ñ…',\n kjcy: 'Ñœ',\n kopf: 'ð•œ',\n kscr: 'ð“€',\n lAarr: '⇚',\n lArr: 'â‡',\n lAtail: '⤛',\n lBarr: '⤎',\n lE: '≦',\n lEg: '⪋',\n lHar: '⥢',\n lacute: 'ĺ',\n laemptyv: '⦴',\n lagran: 'â„’',\n lambda: 'λ',\n lang: '⟨',\n langd: '⦑',\n langle: '⟨',\n lap: '⪅',\n laquo: '«',\n larr: 'â†',\n larrb: '⇤',\n larrbfs: '⤟',\n larrfs: 'â¤',\n larrhk: '↩',\n larrlp: '↫',\n larrpl: '⤹',\n larrsim: '⥳',\n larrtl: '↢',\n lat: '⪫',\n latail: '⤙',\n late: 'âª',\n lates: 'âªï¸€',\n lbarr: '⤌',\n lbbrk: 'â²',\n lbrace: '{',\n lbrack: '[',\n lbrke: '⦋',\n lbrksld: 'â¦',\n lbrkslu: 'â¦',\n lcaron: 'ľ',\n lcedil: 'ļ',\n lceil: '⌈',\n lcub: '{',\n lcy: 'л',\n ldca: '⤶',\n ldquo: '“',\n ldquor: '„',\n ldrdhar: '⥧',\n ldrushar: '⥋',\n ldsh: '↲',\n le: '≤',\n leftarrow: 'â†',\n leftarrowtail: '↢',\n leftharpoondown: '↽',\n leftharpoonup: '↼',\n leftleftarrows: '⇇',\n leftrightarrow: '↔',\n leftrightarrows: '⇆',\n leftrightharpoons: '⇋',\n leftrightsquigarrow: 'â†',\n leftthreetimes: 'â‹‹',\n leg: 'â‹š',\n leq: '≤',\n leqq: '≦',\n leqslant: '⩽',\n les: '⩽',\n lescc: '⪨',\n lesdot: 'â©¿',\n lesdoto: 'âª',\n lesdotor: '⪃',\n lesg: '⋚︀',\n lesges: '⪓',\n lessapprox: '⪅',\n lessdot: 'â‹–',\n lesseqgtr: 'â‹š',\n lesseqqgtr: '⪋',\n lessgtr: '≶',\n lesssim: '≲',\n lfisht: '⥼',\n lfloor: '⌊',\n lfr: 'ð”©',\n lg: '≶',\n lgE: '⪑',\n lhard: '↽',\n lharu: '↼',\n lharul: '⥪',\n lhblk: 'â–„',\n ljcy: 'Ñ™',\n ll: '≪',\n llarr: '⇇',\n llcorner: '⌞',\n llhard: '⥫',\n lltri: 'â—º',\n lmidot: 'Å€',\n lmoust: '⎰',\n lmoustache: '⎰',\n lnE: '≨',\n lnap: '⪉',\n lnapprox: '⪉',\n lne: '⪇',\n lneq: '⪇',\n lneqq: '≨',\n lnsim: '⋦',\n loang: '⟬',\n loarr: '⇽',\n lobrk: '⟦',\n longleftarrow: '⟵',\n longleftrightarrow: '⟷',\n longmapsto: '⟼',\n longrightarrow: '⟶',\n looparrowleft: '↫',\n looparrowright: '↬',\n lopar: '⦅',\n lopf: 'ð•',\n loplus: 'â¨',\n lotimes: '⨴',\n lowast: '∗',\n lowbar: '_',\n loz: 'â—Š',\n lozenge: 'â—Š',\n lozf: '⧫',\n lpar: '(',\n lparlt: '⦓',\n lrarr: '⇆',\n lrcorner: '⌟',\n lrhar: '⇋',\n lrhard: 'â¥',\n lrm: '‎',\n lrtri: '⊿',\n lsaquo: '‹',\n lscr: 'ð“',\n lsh: '↰',\n lsim: '≲',\n lsime: 'âª',\n lsimg: 'âª',\n lsqb: '[',\n lsquo: '‘',\n lsquor: '‚',\n lstrok: 'Å‚',\n lt: '<',\n ltcc: '⪦',\n ltcir: '⩹',\n ltdot: 'â‹–',\n lthree: 'â‹‹',\n ltimes: '⋉',\n ltlarr: '⥶',\n ltquest: 'â©»',\n ltrPar: '⦖',\n ltri: 'â—ƒ',\n ltrie: '⊴',\n ltrif: 'â—‚',\n lurdshar: '⥊',\n luruhar: '⥦',\n lvertneqq: '≨︀',\n lvnE: '≨︀',\n mDDot: '∺',\n macr: '¯',\n male: '♂',\n malt: '✠',\n maltese: '✠',\n map: '↦',\n mapsto: '↦',\n mapstodown: '↧',\n mapstoleft: '↤',\n mapstoup: '↥',\n marker: 'â–®',\n mcomma: '⨩',\n mcy: 'м',\n mdash: '—',\n measuredangle: '∡',\n mfr: 'ð”ª',\n mho: '℧',\n micro: 'µ',\n mid: '∣',\n midast: '*',\n midcir: 'â«°',\n middot: '·',\n minus: '−',\n minusb: '⊟',\n minusd: '∸',\n minusdu: '⨪',\n mlcp: 'â«›',\n mldr: '…',\n mnplus: '∓',\n models: '⊧',\n mopf: 'ð•ž',\n mp: '∓',\n mscr: 'ð“‚',\n mstpos: '∾',\n mu: 'μ',\n multimap: '⊸',\n mumap: '⊸',\n nGg: '⋙̸',\n nGt: '≫⃒',\n nGtv: '≫̸',\n nLeftarrow: 'â‡',\n nLeftrightarrow: '⇎',\n nLl: '⋘̸',\n nLt: '≪⃒',\n nLtv: '≪̸',\n nRightarrow: 'â‡',\n nVDash: '⊯',\n nVdash: '⊮',\n nabla: '∇',\n nacute: 'Å„',\n nang: '∠⃒',\n nap: '≉',\n napE: '⩰̸',\n napid: '≋̸',\n napos: 'ʼn',\n napprox: '≉',\n natur: 'â™®',\n natural: 'â™®',\n naturals: 'â„•',\n nbsp: ' ',\n nbump: '≎̸',\n nbumpe: 'â‰Ì¸',\n ncap: '⩃',\n ncaron: 'ň',\n ncedil: 'ņ',\n ncong: '≇',\n ncongdot: 'â©Ì¸',\n ncup: 'â©‚',\n ncy: 'н',\n ndash: '–',\n ne: '≠',\n neArr: '⇗',\n nearhk: '⤤',\n nearr: '↗',\n nearrow: '↗',\n nedot: 'â‰Ì¸',\n nequiv: '≢',\n nesear: '⤨',\n nesim: '≂̸',\n nexist: '∄',\n nexists: '∄',\n nfr: 'ð”«',\n ngE: '≧̸',\n nge: '≱',\n ngeq: '≱',\n ngeqq: '≧̸',\n ngeqslant: '⩾̸',\n nges: '⩾̸',\n ngsim: '≵',\n ngt: '≯',\n ngtr: '≯',\n nhArr: '⇎',\n nharr: '↮',\n nhpar: '⫲',\n ni: '∋',\n nis: '⋼',\n nisd: '⋺',\n niv: '∋',\n njcy: 'Ñš',\n nlArr: 'â‡',\n nlE: '≦̸',\n nlarr: '↚',\n nldr: '‥',\n nle: '≰',\n nleftarrow: '↚',\n nleftrightarrow: '↮',\n nleq: '≰',\n nleqq: '≦̸',\n nleqslant: '⩽̸',\n nles: '⩽̸',\n nless: '≮',\n nlsim: '≴',\n nlt: '≮',\n nltri: '⋪',\n nltrie: '⋬',\n nmid: '∤',\n nopf: 'ð•Ÿ',\n not: '¬',\n notin: '∉',\n notinE: '⋹̸',\n notindot: '⋵̸',\n notinva: '∉',\n notinvb: 'â‹·',\n notinvc: '⋶',\n notni: '∌',\n notniva: '∌',\n notnivb: '⋾',\n notnivc: '⋽',\n npar: '∦',\n nparallel: '∦',\n nparsl: '⫽⃥',\n npart: '∂̸',\n npolint: '⨔',\n npr: '⊀',\n nprcue: 'â‹ ',\n npre: '⪯̸',\n nprec: '⊀',\n npreceq: '⪯̸',\n nrArr: 'â‡',\n nrarr: '↛',\n nrarrc: '⤳̸',\n nrarrw: 'â†Ì¸',\n nrightarrow: '↛',\n nrtri: 'â‹«',\n nrtrie: 'â‹',\n nsc: 'âŠ',\n nsccue: 'â‹¡',\n nsce: '⪰̸',\n nscr: 'ð“ƒ',\n nshortmid: '∤',\n nshortparallel: '∦',\n nsim: 'â‰',\n nsime: '≄',\n nsimeq: '≄',\n nsmid: '∤',\n nspar: '∦',\n nsqsube: 'â‹¢',\n nsqsupe: 'â‹£',\n nsub: '⊄',\n nsubE: '⫅̸',\n nsube: '⊈',\n nsubset: '⊂⃒',\n nsubseteq: '⊈',\n nsubseteqq: '⫅̸',\n nsucc: 'âŠ',\n nsucceq: '⪰̸',\n nsup: '⊅',\n nsupE: '⫆̸',\n nsupe: '⊉',\n nsupset: '⊃⃒',\n nsupseteq: '⊉',\n nsupseteqq: '⫆̸',\n ntgl: '≹',\n ntilde: 'ñ',\n ntlg: '≸',\n ntriangleleft: '⋪',\n ntrianglelefteq: '⋬',\n ntriangleright: 'â‹«',\n ntrianglerighteq: 'â‹',\n nu: 'ν',\n num: '#',\n numero: 'â„–',\n numsp: ' ',\n nvDash: 'âŠ',\n nvHarr: '⤄',\n nvap: 'â‰âƒ’',\n nvdash: '⊬',\n nvge: '≥⃒',\n nvgt: '>⃒',\n nvinfin: '⧞',\n nvlArr: '⤂',\n nvle: '≤⃒',\n nvlt: '<⃒',\n nvltrie: '⊴⃒',\n nvrArr: '⤃',\n nvrtrie: '⊵⃒',\n nvsim: '∼⃒',\n nwArr: '⇖',\n nwarhk: '⤣',\n nwarr: '↖',\n nwarrow: '↖',\n nwnear: '⤧',\n oS: 'Ⓢ',\n oacute: 'ó',\n oast: '⊛',\n ocir: '⊚',\n ocirc: 'ô',\n ocy: 'о',\n odash: 'âŠ',\n odblac: 'Å‘',\n odiv: '⨸',\n odot: '⊙',\n odsold: '⦼',\n oelig: 'Å“',\n ofcir: '⦿',\n ofr: 'ð”¬',\n ogon: 'Ë›',\n ograve: 'ò',\n ogt: 'â§',\n ohbar: '⦵',\n ohm: 'Ω',\n oint: '∮',\n olarr: '↺',\n olcir: '⦾',\n olcross: '⦻',\n oline: '‾',\n olt: '⧀',\n omacr: 'Å',\n omega: 'ω',\n omicron: 'ο',\n omid: '⦶',\n ominus: '⊖',\n oopf: 'ð• ',\n opar: '⦷',\n operp: '⦹',\n oplus: '⊕',\n or: '∨',\n orarr: '↻',\n ord: 'â©',\n order: 'â„´',\n orderof: 'â„´',\n ordf: 'ª',\n ordm: 'º',\n origof: '⊶',\n oror: 'â©–',\n orslope: 'â©—',\n orv: 'â©›',\n oscr: 'â„´',\n oslash: 'ø',\n osol: '⊘',\n otilde: 'õ',\n otimes: '⊗',\n otimesas: '⨶',\n ouml: 'ö',\n ovbar: '⌽',\n par: '∥',\n para: '¶',\n parallel: '∥',\n parsim: '⫳',\n parsl: '⫽',\n part: '∂',\n pcy: 'п',\n percnt: '%',\n period: '.',\n permil: '‰',\n perp: '⊥',\n pertenk: '‱',\n pfr: 'ð”',\n phi: 'φ',\n phiv: 'Ï•',\n phmmat: 'ℳ',\n phone: '☎',\n pi: 'Ï€',\n pitchfork: 'â‹”',\n piv: 'Ï–',\n planck: 'â„',\n planckh: 'â„Ž',\n plankv: 'â„',\n plus: '+',\n plusacir: '⨣',\n plusb: '⊞',\n pluscir: '⨢',\n plusdo: '∔',\n plusdu: '⨥',\n pluse: '⩲',\n plusmn: '±',\n plussim: '⨦',\n plustwo: '⨧',\n pm: '±',\n pointint: '⨕',\n popf: 'ð•¡',\n pound: '£',\n pr: '≺',\n prE: '⪳',\n prap: '⪷',\n prcue: '≼',\n pre: '⪯',\n prec: '≺',\n precapprox: '⪷',\n preccurlyeq: '≼',\n preceq: '⪯',\n precnapprox: '⪹',\n precneqq: '⪵',\n precnsim: '⋨',\n precsim: '≾',\n prime: '′',\n primes: 'â„™',\n prnE: '⪵',\n prnap: '⪹',\n prnsim: '⋨',\n prod: 'âˆ',\n profalar: '⌮',\n profline: '⌒',\n profsurf: '⌓',\n prop: 'âˆ',\n propto: 'âˆ',\n prsim: '≾',\n prurel: '⊰',\n pscr: 'ð“…',\n psi: 'ψ',\n puncsp: ' ',\n qfr: 'ð”®',\n qint: '⨌',\n qopf: 'ð•¢',\n qprime: 'â—',\n qscr: 'ð“†',\n quaternions: 'â„',\n quatint: '⨖',\n quest: '?',\n questeq: '≟',\n quot: '\"',\n rAarr: '⇛',\n rArr: '⇒',\n rAtail: '⤜',\n rBarr: 'â¤',\n rHar: '⥤',\n race: '∽̱',\n racute: 'Å•',\n radic: '√',\n raemptyv: '⦳',\n rang: '⟩',\n rangd: '⦒',\n range: '⦥',\n rangle: '⟩',\n raquo: '»',\n rarr: '→',\n rarrap: '⥵',\n rarrb: '⇥',\n rarrbfs: '⤠',\n rarrc: '⤳',\n rarrfs: '⤞',\n rarrhk: '↪',\n rarrlp: '↬',\n rarrpl: '⥅',\n rarrsim: '⥴',\n rarrtl: '↣',\n rarrw: 'â†',\n ratail: '⤚',\n ratio: '∶',\n rationals: 'â„š',\n rbarr: 'â¤',\n rbbrk: 'â³',\n rbrace: '}',\n rbrack: ']',\n rbrke: '⦌',\n rbrksld: '⦎',\n rbrkslu: 'â¦',\n rcaron: 'Å™',\n rcedil: 'Å—',\n rceil: '⌉',\n rcub: '}',\n rcy: 'Ñ€',\n rdca: '⤷',\n rdldhar: '⥩',\n rdquo: 'â€',\n rdquor: 'â€',\n rdsh: '↳',\n real: 'â„œ',\n realine: 'â„›',\n realpart: 'â„œ',\n reals: 'â„',\n rect: 'â–',\n reg: '®',\n rfisht: '⥽',\n rfloor: '⌋',\n rfr: 'ð”¯',\n rhard: 'â‡',\n rharu: '⇀',\n rharul: '⥬',\n rho: 'Ï',\n rhov: 'ϱ',\n rightarrow: '→',\n rightarrowtail: '↣',\n rightharpoondown: 'â‡',\n rightharpoonup: '⇀',\n rightleftarrows: '⇄',\n rightleftharpoons: '⇌',\n rightrightarrows: '⇉',\n rightsquigarrow: 'â†',\n rightthreetimes: 'â‹Œ',\n ring: 'Ëš',\n risingdotseq: '≓',\n rlarr: '⇄',\n rlhar: '⇌',\n rlm: 'â€',\n rmoust: '⎱',\n rmoustache: '⎱',\n rnmid: 'â«®',\n roang: 'âŸ',\n roarr: '⇾',\n robrk: '⟧',\n ropar: '⦆',\n ropf: 'ð•£',\n roplus: '⨮',\n rotimes: '⨵',\n rpar: ')',\n rpargt: '⦔',\n rppolint: '⨒',\n rrarr: '⇉',\n rsaquo: '›',\n rscr: 'ð“‡',\n rsh: '↱',\n rsqb: ']',\n rsquo: '’',\n rsquor: '’',\n rthree: 'â‹Œ',\n rtimes: 'â‹Š',\n rtri: 'â–¹',\n rtrie: '⊵',\n rtrif: 'â–¸',\n rtriltri: '⧎',\n ruluhar: '⥨',\n rx: 'â„ž',\n sacute: 'Å›',\n sbquo: '‚',\n sc: '≻',\n scE: '⪴',\n scap: '⪸',\n scaron: 'Å¡',\n sccue: '≽',\n sce: '⪰',\n scedil: 'ÅŸ',\n scirc: 'Å',\n scnE: '⪶',\n scnap: '⪺',\n scnsim: 'â‹©',\n scpolint: '⨓',\n scsim: '≿',\n scy: 'Ñ',\n sdot: 'â‹…',\n sdotb: '⊡',\n sdote: '⩦',\n seArr: '⇘',\n searhk: '⤥',\n searr: '↘',\n searrow: '↘',\n sect: '§',\n semi: ';',\n seswar: '⤩',\n setminus: '∖',\n setmn: '∖',\n sext: '✶',\n sfr: 'ð”°',\n sfrown: '⌢',\n sharp: '♯',\n shchcy: 'щ',\n shcy: 'ш',\n shortmid: '∣',\n shortparallel: '∥',\n shy: 'Â',\n sigma: 'σ',\n sigmaf: 'Ï‚',\n sigmav: 'Ï‚',\n sim: '∼',\n simdot: '⩪',\n sime: '≃',\n simeq: '≃',\n simg: '⪞',\n simgE: '⪠',\n siml: 'âª',\n simlE: '⪟',\n simne: '≆',\n simplus: '⨤',\n simrarr: '⥲',\n slarr: 'â†',\n smallsetminus: '∖',\n smashp: '⨳',\n smeparsl: '⧤',\n smid: '∣',\n smile: '⌣',\n smt: '⪪',\n smte: '⪬',\n smtes: '⪬︀',\n softcy: 'ÑŒ',\n sol: '/',\n solb: '⧄',\n solbar: '⌿',\n sopf: 'ð•¤',\n spades: 'â™ ',\n spadesuit: 'â™ ',\n spar: '∥',\n sqcap: '⊓',\n sqcaps: '⊓︀',\n sqcup: '⊔',\n sqcups: '⊔︀',\n sqsub: 'âŠ',\n sqsube: '⊑',\n sqsubset: 'âŠ',\n sqsubseteq: '⊑',\n sqsup: 'âŠ',\n sqsupe: '⊒',\n sqsupset: 'âŠ',\n sqsupseteq: '⊒',\n squ: 'â–¡',\n square: 'â–¡',\n squarf: 'â–ª',\n squf: 'â–ª',\n srarr: '→',\n sscr: 'ð“ˆ',\n ssetmn: '∖',\n ssmile: '⌣',\n sstarf: '⋆',\n star: '☆',\n starf: '★',\n straightepsilon: 'ϵ',\n straightphi: 'Ï•',\n strns: '¯',\n sub: '⊂',\n subE: 'â«…',\n subdot: '⪽',\n sube: '⊆',\n subedot: '⫃',\n submult: 'â«',\n subnE: 'â«‹',\n subne: '⊊',\n subplus: '⪿',\n subrarr: '⥹',\n subset: '⊂',\n subseteq: '⊆',\n subseteqq: 'â«…',\n subsetneq: '⊊',\n subsetneqq: 'â«‹',\n subsim: '⫇',\n subsub: 'â«•',\n subsup: 'â«“',\n succ: '≻',\n succapprox: '⪸',\n succcurlyeq: '≽',\n succeq: '⪰',\n succnapprox: '⪺',\n succneqq: '⪶',\n succnsim: 'â‹©',\n succsim: '≿',\n sum: '∑',\n sung: '♪',\n sup1: '¹',\n sup2: '²',\n sup3: '³',\n sup: '⊃',\n supE: '⫆',\n supdot: '⪾',\n supdsub: '⫘',\n supe: '⊇',\n supedot: 'â«„',\n suphsol: '⟉',\n suphsub: 'â«—',\n suplarr: '⥻',\n supmult: 'â«‚',\n supnE: 'â«Œ',\n supne: '⊋',\n supplus: 'â«€',\n supset: '⊃',\n supseteq: '⊇',\n supseteqq: '⫆',\n supsetneq: '⊋',\n supsetneqq: 'â«Œ',\n supsim: '⫈',\n supsub: 'â«”',\n supsup: 'â«–',\n swArr: '⇙',\n swarhk: '⤦',\n swarr: '↙',\n swarrow: '↙',\n swnwar: '⤪',\n szlig: 'ß',\n target: '⌖',\n tau: 'Ï„',\n tbrk: '⎴',\n tcaron: 'Å¥',\n tcedil: 'Å£',\n tcy: 'Ñ‚',\n tdot: '⃛',\n telrec: '⌕',\n tfr: 'ð”±',\n there4: '∴',\n therefore: '∴',\n theta: 'θ',\n thetasym: 'Ï‘',\n thetav: 'Ï‘',\n thickapprox: '≈',\n thicksim: '∼',\n thinsp: ' ',\n thkap: '≈',\n thksim: '∼',\n thorn: 'þ',\n tilde: 'Ëœ',\n times: '×',\n timesb: '⊠',\n timesbar: '⨱',\n timesd: '⨰',\n tint: 'âˆ',\n toea: '⤨',\n top: '⊤',\n topbot: '⌶',\n topcir: '⫱',\n topf: 'ð•¥',\n topfork: 'â«š',\n tosa: '⤩',\n tprime: '‴',\n trade: 'â„¢',\n triangle: 'â–µ',\n triangledown: 'â–¿',\n triangleleft: 'â—ƒ',\n trianglelefteq: '⊴',\n triangleq: '≜',\n triangleright: 'â–¹',\n trianglerighteq: '⊵',\n tridot: 'â—¬',\n trie: '≜',\n triminus: '⨺',\n triplus: '⨹',\n trisb: 'â§',\n tritime: '⨻',\n trpezium: 'â¢',\n tscr: 'ð“‰',\n tscy: 'ц',\n tshcy: 'Ñ›',\n tstrok: 'ŧ',\n twixt: '≬',\n twoheadleftarrow: '↞',\n twoheadrightarrow: '↠',\n uArr: '⇑',\n uHar: '⥣',\n uacute: 'ú',\n uarr: '↑',\n ubrcy: 'Ñž',\n ubreve: 'Å',\n ucirc: 'û',\n ucy: 'у',\n udarr: '⇅',\n udblac: 'ű',\n udhar: '⥮',\n ufisht: '⥾',\n ufr: 'ð”²',\n ugrave: 'ù',\n uharl: '↿',\n uharr: '↾',\n uhblk: 'â–€',\n ulcorn: '⌜',\n ulcorner: '⌜',\n ulcrop: 'âŒ',\n ultri: 'â—¸',\n umacr: 'Å«',\n uml: '¨',\n uogon: 'ų',\n uopf: 'ð•¦',\n uparrow: '↑',\n updownarrow: '↕',\n upharpoonleft: '↿',\n upharpoonright: '↾',\n uplus: '⊎',\n upsi: 'Ï…',\n upsih: 'Ï’',\n upsilon: 'Ï…',\n upuparrows: '⇈',\n urcorn: 'âŒ',\n urcorner: 'âŒ',\n urcrop: '⌎',\n uring: 'ů',\n urtri: 'â—¹',\n uscr: 'ð“Š',\n utdot: 'â‹°',\n utilde: 'Å©',\n utri: 'â–µ',\n utrif: 'â–´',\n uuarr: '⇈',\n uuml: 'ü',\n uwangle: '⦧',\n vArr: '⇕',\n vBar: '⫨',\n vBarv: 'â«©',\n vDash: '⊨',\n vangrt: '⦜',\n varepsilon: 'ϵ',\n varkappa: 'Ï°',\n varnothing: '∅',\n varphi: 'Ï•',\n varpi: 'Ï–',\n varpropto: 'âˆ',\n varr: '↕',\n varrho: 'ϱ',\n varsigma: 'Ï‚',\n varsubsetneq: '⊊︀',\n varsubsetneqq: '⫋︀',\n varsupsetneq: '⊋︀',\n varsupsetneqq: '⫌︀',\n vartheta: 'Ï‘',\n vartriangleleft: '⊲',\n vartriangleright: '⊳',\n vcy: 'в',\n vdash: '⊢',\n vee: '∨',\n veebar: '⊻',\n veeeq: '≚',\n vellip: 'â‹®',\n verbar: '|',\n vert: '|',\n vfr: 'ð”³',\n vltri: '⊲',\n vnsub: '⊂⃒',\n vnsup: '⊃⃒',\n vopf: 'ð•§',\n vprop: 'âˆ',\n vrtri: '⊳',\n vscr: 'ð“‹',\n vsubnE: '⫋︀',\n vsubne: '⊊︀',\n vsupnE: '⫌︀',\n vsupne: '⊋︀',\n vzigzag: '⦚',\n wcirc: 'ŵ',\n wedbar: 'â©Ÿ',\n wedge: '∧',\n wedgeq: '≙',\n weierp: '℘',\n wfr: 'ð”´',\n wopf: 'ð•¨',\n wp: '℘',\n wr: '≀',\n wreath: '≀',\n wscr: 'ð“Œ',\n xcap: 'â‹‚',\n xcirc: 'â—¯',\n xcup: '⋃',\n xdtri: 'â–½',\n xfr: 'ð”µ',\n xhArr: '⟺',\n xharr: '⟷',\n xi: 'ξ',\n xlArr: '⟸',\n xlarr: '⟵',\n xmap: '⟼',\n xnis: 'â‹»',\n xodot: '⨀',\n xopf: 'ð•©',\n xoplus: 'â¨',\n xotime: '⨂',\n xrArr: '⟹',\n xrarr: '⟶',\n xscr: 'ð“',\n xsqcup: '⨆',\n xuplus: '⨄',\n xutri: 'â–³',\n xvee: 'â‹',\n xwedge: 'â‹€',\n yacute: 'ý',\n yacy: 'Ñ',\n ycirc: 'Å·',\n ycy: 'Ñ‹',\n yen: 'Â¥',\n yfr: 'ð”¶',\n yicy: 'Ñ—',\n yopf: 'ð•ª',\n yscr: 'ð“Ž',\n yucy: 'ÑŽ',\n yuml: 'ÿ',\n zacute: 'ź',\n zcaron: 'ž',\n zcy: 'з',\n zdot: 'ż',\n zeetrf: 'ℨ',\n zeta: 'ζ',\n zfr: 'ð”·',\n zhcy: 'ж',\n zigrarr: 'â‡',\n zopf: 'ð•«',\n zscr: 'ð“',\n zwj: 'â€',\n zwnj: '‌'\n};","import { characterEntities } from 'character-entities';\n\n// To do: next major: use `Object.hasOwn`.\nconst own = {}.hasOwnProperty;\n\n/**\n * Decode a single character reference (without the `&` or `;`).\n * You probably only need this when you’re building parsers yourself that follow\n * different rules compared to HTML.\n * This is optimized to be tiny in browsers.\n *\n * @param {string} value\n * `notin` (named), `#123` (deci), `#x123` (hexa).\n * @returns {string|false}\n * Decoded reference.\n */\nexport function decodeNamedCharacterReference(value) {\n return own.call(characterEntities, value) ? characterEntities[value] : false;\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this;\n let size = 0;\n /** @type {number} */\n let max;\n /** @type {(code: Code) => boolean} */\n let test;\n return start;\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterReference');\n effects.enter('characterReferenceMarker');\n effects.consume(code);\n effects.exit('characterReferenceMarker');\n return open;\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric');\n effects.consume(code);\n effects.exit('characterReferenceMarkerNumeric');\n return numeric;\n }\n effects.enter('characterReferenceValue');\n max = 31;\n test = asciiAlphanumeric;\n return value(code);\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal');\n effects.consume(code);\n effects.exit('characterReferenceMarkerHexadecimal');\n effects.enter('characterReferenceValue');\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter('characterReferenceValue');\n max = 7;\n test = asciiDigit;\n return value(code);\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit('characterReferenceValue');\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n return nok(code);\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter('characterReferenceMarker');\n effects.consume(code);\n effects.exit('characterReferenceMarker');\n effects.exit('characterReference');\n return ok;\n }\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterEscape');\n effects.enter('escapeMarker');\n effects.consume(code);\n effects.exit('escapeMarker');\n return inside;\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue');\n effects.consume(code);\n effects.exit('characterEscapeValue');\n effects.exit('characterEscape');\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return factorySpace(effects, ok, 'linePrefix');\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n while (++index < events.length) {\n const token = events[index][1];\n if (token.type === 'labelImage' || token.type === 'labelLink' || token.type === 'labelEnd') {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2);\n token.type = 'data';\n index++;\n }\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array<Event>} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === 'link' || token.type === 'labelLink' && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === 'labelImage' || token.type === 'labelLink') && !token._balanced) {\n open = index;\n if (token.type !== 'labelLink') {\n offset = 2;\n break;\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n };\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === 'labelImage' || self.events[index][1].type === 'labelLink') && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter('labelEnd');\n effects.enter('labelMarker');\n effects.consume(code);\n effects.exit('labelMarker');\n effects.exit('labelEnd');\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource');\n effects.enter('resourceMarker');\n effects.consume(code);\n effects.exit('resourceMarker');\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, 'resourceDestination', 'resourceDestinationLiteral', 'resourceDestinationLiteralMarker', 'resourceDestinationRaw', 'resourceDestinationString', 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, 'resourceTitle', 'resourceTitleMarker', 'resourceTitleString')(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter('resourceMarker');\n effects.consume(code);\n effects.exit('resourceMarker');\n effects.exit('resource');\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, 'reference', 'referenceMarker', 'referenceString')(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter('reference');\n effects.enter('referenceMarker');\n effects.consume(code);\n effects.exit('referenceMarker');\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter('referenceMarker');\n effects.consume(code);\n effects.exit('referenceMarker');\n effects.exit('reference');\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelImage');\n effects.enter('labelImageMarker');\n effects.consume(code);\n effects.exit('labelImageMarker');\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker');\n effects.consume(code);\n effects.exit('labelMarker');\n effects.exit('labelImage');\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * \n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * <p>!<a href=\\\"b\\\">^a</a></p>\n * <p>!<a href=\\\"c\\\">^a</a></p>\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport { markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return 1;\n }\n if (unicodePunctuation(code)) {\n return 2;\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\nfunction resolveAllAttention(events, context) {\n let index = -1;\n /** @type {number} */\n let open;\n /** @type {Token} */\n let group;\n /** @type {Token} */\n let text;\n /** @type {Token} */\n let openingSequence;\n /** @type {Token} */\n let closingSequence;\n /** @type {number} */\n let use;\n /** @type {Array<Event>} */\n let nextEvents;\n /** @type {number} */\n let offset;\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n\n // Number of markers to use from the sequence.\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = Object.assign({}, events[open][1].end);\n const end = Object.assign({}, events[index][1].start);\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n };\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n };\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n };\n events[open][1].end = Object.assign({}, openingSequence.start);\n events[index][1].start = Object.assign({}, closingSequence.end);\n nextEvents = [];\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n }\n\n // Opening.\n nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n // Closing.\n nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n } else {\n offset = 0;\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data';\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n const previous = this.previous;\n const before = classifyCharacter(previous);\n\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code;\n effects.enter('attentionSequence');\n return inside(code);\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n const token = effects.exit('attentionSequence');\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code);\n\n // Always populated by defaults.\n\n const open = !after || after === 2 && before || attentionMarkers.includes(code);\n const close = !before || before === 2 && after || attentionMarkers.includes(previous);\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code);\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { asciiAlpha, asciiAlphanumeric, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('autolink');\n effects.enter('autolinkMarker');\n effects.consume(code);\n effects.exit('autolinkMarker');\n effects.enter('autolinkProtocol');\n return open;\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n return emailAtext(code);\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1;\n return schemeInsideOrEmailAtext(code);\n }\n return emailAtext(code);\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code);\n size = 0;\n return urlInside;\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n size = 0;\n return emailAtext(code);\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol');\n effects.enter('autolinkMarker');\n effects.consume(code);\n effects.exit('autolinkMarker');\n effects.exit('autolink');\n return ok;\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return urlInside;\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code)) {\n effects.consume(code);\n return emailAtext;\n }\n return nok(code);\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail';\n effects.enter('autolinkMarker');\n effects.consume(code);\n effects.exit('autolinkMarker');\n effects.exit('autolink');\n return ok;\n }\n return emailValue(code);\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | a<user.name@ex-ample.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel;\n effects.consume(code);\n return next;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlpha, asciiAlphanumeric, markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code> | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('htmlText');\n effects.enter('htmlTextData');\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * > | a <![CDATA[>&<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after `<!-`, at another `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After `<![`, in CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA[';\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a <!b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After `</x`, in a tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After `<x`, in opening tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit('htmlTextData');\n effects.exit('htmlText');\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a <!--a\n * ^\n * | b-->\n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData');\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, 'linePrefix', self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData');\n return returnState(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelLink');\n effects.enter('labelMarker');\n effects.consume(code);\n effects.exit('labelMarker');\n effects.exit('labelLink');\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('hardBreakEscape');\n effects.consume(code);\n return after;\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit('hardBreakEscape');\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n};\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n /** @type {number} */\n let index;\n /** @type {number | undefined} */\n let enter;\n\n // If we start and end with an EOL or a space.\n if ((events[headEnterIndex][1].type === 'lineEnding' || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === 'lineEnding' || events[tailExitIndex][1].type === 'space')) {\n index = headEnterIndex;\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding';\n events[tailExitIndex][1].type = 'codeTextPadding';\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === 'lineEnding') {\n events[enter][1].type = 'codeTextData';\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== 96 || this.events[this.events.length - 1][1].type === 'characterEscape';\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this;\n let sizeOpen = 0;\n /** @type {number} */\n let size;\n /** @type {Token} */\n let token;\n return start;\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('codeText');\n effects.enter('codeTextSequence');\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit('codeTextSequence');\n return between(code);\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code);\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space');\n effects.consume(code);\n effects.exit('space');\n return between;\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter('codeTextSequence');\n size = 0;\n return sequenceClose(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return between;\n }\n\n // Data.\n effects.enter('codeTextData');\n return data(code);\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n effects.exit('codeTextData');\n return between(code);\n }\n effects.consume(code);\n return data;\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code);\n size++;\n return sequenceClose;\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit('codeTextSequence');\n effects.exit('codeText');\n return ok(code);\n }\n\n // More or less accents: mark as data.\n token.type = 'codeTextData';\n return data(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { text, string } from './initialize/text.js';\nimport { createTokenizer } from './create-tokenizer.js';\nimport * as defaultConstructs from './constructs.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array<Chunk>}\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n function preprocessor(value, encoding, end) {\n /** @type {Array<Chunk>} */\n const chunks = [];\n /** @type {RegExpMatchArray | null} */\n let match;\n /** @type {number} */\n let next;\n /** @type {number} */\n let startPosition;\n /** @type {number} */\n let endPosition;\n /** @type {Code} */\n let code;\n\n // @ts-expect-error `Buffer` does allow an encoding.\n value = buffer + value.toString(encoding);\n startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) chunks.push(-1);\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55295 && code < 57344 ||\n // Noncharacters.\n code > 64975 && code < 65008 /* eslint-disable no-bitwise */ || (code & 65535) === 65535 || (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||\n // Out of range\n code > 1114111) {\n return '\\uFFFD';\n }\n return String.fromCharCode(code);\n}","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string†content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract<Node, UnistParent>} Parent\n *\n * @typedef {Omit<UnistParent, 'type' | 'children'> & {type: 'fragment', children: Array<PhrasingContent>}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | undefined | null | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {Record<string, Handle>} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array<string>} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array<Transform>} transforms\n * Tree transforms.\n *\n * @typedef {Partial<Config>} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array<Node | Fragment>} stack\n * Stack of nodes.\n * @property {Array<TokenTuple>} tokenStack\n * Stack of tokens.\n * @property {<Key extends keyof CompileData>(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {<Key extends keyof CompileData>(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {<Kind extends Node>(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array<Extension | Array<Extension>> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\n// To do: micromark: create a registry of tokens?\n// To do: next major: don’t return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse } from 'micromark/lib/parse.js';\nimport { preprocess } from 'micromark/lib/preprocess.js';\nimport { postprocess } from 'micromark/lib/postprocess.js';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nexport const fromMarkdown =\n/**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n\n/**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\nfunction (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n};\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array<Event>} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n };\n /** @type {Array<number>} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === 'listOrdered' || events[index][1].type === 'listUnordered') {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n if (event[1].type === 'listUnordered' || event[1].type === 'listOrdered' || event[1].type === 'blockQuote') {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n } else if (event[1].type === 'linePrefix' || event[1].type === 'listItemValue' || event[1].type === 'listItemMarker' || event[1].type === 'listItemPrefix' || event[1].type === 'listItemPrefixWhitespace') {\n // Empty.\n } else {\n atMarker = undefined;\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === 'listItemPrefix' || containerBalance === -1 && event[0] === 'exit' && (event[1].type === 'listUnordered' || event[1].type === 'listOrdered')) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === 'lineEnding' || tailEvent[1].type === 'lineEndingBlank') {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank';\n listSpread = true;\n }\n tailEvent[1].type = 'lineEnding';\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === 'linePrefix' || tailEvent[1].type === 'blockQuotePrefix' || tailEvent[1].type === 'blockQuotePrefixWhitespace' || tailEvent[1].type === 'blockQuoteMarker' || tailEvent[1].type === 'listItemIndent') {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value;\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key];\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {void}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler]);\n // @ts-expect-error: `end` will be patched later.\n node.position = {\n start: point(token.start)\n };\n return node;\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {Node}\n * The closed node.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n return node;\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n setData('expectingFirstListItemValue');\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return;\n this.buffer();\n setData('flowCodeInside', true);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n setData('flowCodeInside');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n let tail = node.children[node.children.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n // @ts-expect-error: we’ll add `end` later.\n tail.position = {\n start: point(token.start)\n };\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n setData('atHardBreak');\n return;\n }\n if (!getData('setextHeadingSlurpLineEnding') && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n setData('atHardBreak', true);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n setData('referenceType');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n setData('referenceType');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n setData('inReference', true);\n if (node.type === 'link') {\n /** @type {Array<StaticPhrasingContent>} */\n // @ts-expect-error: Assume static phrasing content.\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n setData('inReference');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('referenceType', 'collapsed');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n setData('referenceType', 'full');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = getData('characterReferenceType');\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === 'characterReferenceMarkerNumeric' ? 10 : 16);\n setData('characterReferenceType');\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack.pop();\n tail.value += value;\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {HTML} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array<Extension | Array<Extension>>} extensions\n * @returns {void}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n } else if (key === 'transforms') {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array<Event>} events\n * @returns {Array<Event>}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport { fromMarkdown } from 'mdast-util-from-markdown';\n\n/**\n * @this {import('unified').Processor}\n * @type {import('unified').Plugin<[Options?] | void[], string, Root>}\n */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction<Root>} */\n const parser = doc => {\n // Assume options.\n const settings = /** @type {Options} */this.data('settings');\n return fromMarkdown(doc, Object.assign({}, settings, options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n }));\n };\n Object.assign(this, {\n Parser: parser\n });\n}","import { asciiAlphanumeric } from 'micromark-util-character';\nimport { encode } from 'micromark-util-encode';\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''));\n if (!protocol) {\n return value;\n }\n const colon = value.indexOf(':');\n const questionMark = value.indexOf('?');\n const numberSign = value.indexOf('#');\n const slash = value.indexOf('/');\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))) {\n return value;\n }\n return '';\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array<string>} */\n const result = [];\n let index = -1;\n let start = 0;\n let skip = 0;\n while (++index < value.length) {\n const code = value.charCodeAt(index);\n /** @type {string} */\n let replace = '';\n\n // A correct percent encoded value.\n if (code === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {\n skip = 2;\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code);\n }\n }\n // Astral.\n else if (code > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1);\n\n // A correct surrogate pair.\n if (code < 56320 && next > 56319 && next < 57344) {\n replace = String.fromCharCode(code, next);\n skip = 1;\n }\n // Lone surrogate.\n else {\n replace = '\\uFFFD';\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code);\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace));\n start = index + skip + 1;\n replace = '';\n }\n if (skip) {\n index += skip;\n skip = 0;\n }\n }\n return result.join('') + value.slice(start);\n}","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record<string, unknown>} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array<string | Props | TestFunctionAnything>} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind> | Array<Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind>>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n/**\n * @type {(\n * (() => false) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n * )}\n */\n\n/**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n// eslint-disable-next-line max-params\nfunction is(node, test, index, parent, context) {\n const check = convert(test);\n if (index !== undefined && index !== null && (typeof index !== 'number' || index < 0 || index === Number.POSITIVE_INFINITY)) {\n throw new Error('Expected positive finite index');\n }\n if (parent !== undefined && parent !== null && (!is(parent) || !parent.children)) {\n throw new Error('Expected parent node');\n }\n if ((parent === undefined || parent === null) !== (index === undefined || index === null)) {\n throw new Error('Expected both parent and index');\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string' ? Boolean(check.call(context, node, index, parent)) : false;\n};\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convert =\n/**\n * @type {(\n * (<Kind extends Node>(test: PredicateTest<Kind>) => AssertPredicate<Kind>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n\n/**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\nfunction (test) {\n if (test === undefined || test === null) {\n return ok;\n }\n if (typeof test === 'string') {\n return typeFactory(test);\n }\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test);\n }\n if (typeof test === 'function') {\n return castFactory(test);\n }\n throw new Error('Expected function, string, or object as test');\n};\n\n/**\n * @param {Array<string | Props | TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array<AssertAnything>} */\n const checks = [];\n let index = -1;\n while (++index < tests.length) {\n checks[index] = convert(tests[index]);\n }\n return castFactory(any);\n\n /**\n * @this {unknown}\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function any() {\n let index = -1;\n for (var _len = arguments.length, parameters = new Array(_len), _key = 0; _key < _len; _key++) {\n parameters[_key] = arguments[_key];\n }\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true;\n }\n return false;\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all);\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key;\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false;\n }\n return true;\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type);\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check;\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion;\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(node) {\n for (var _len2 = arguments.length, parameters = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n parameters[_key2 - 1] = arguments[_key2];\n }\n return Boolean(node && typeof node === 'object' && 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters)));\n }\n}\nfunction ok() {\n return true;\n}","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {boolean | 'skip'} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array<Ancestor>} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * Tree type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {Visitor<import('./complex-types.js').Matches<import('./complex-types.js').InclusiveDescendant<Tree>, Check>, Extract<import('./complex-types.js').InclusiveDescendant<Tree>, Parent>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n */\n\nimport { convert } from 'unist-util-is';\nimport { color } from './color.js';\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true;\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false;\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip';\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visitParents =\n/**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)\n * )}\n */\n\n/**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor<Node>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\nfunction (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor;\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test;\n test = null;\n }\n const is = convert(test);\n const step = reverse ? -1 : 1;\n factory(tree, undefined, [])();\n\n /**\n * @param {Node} node\n * @param {number | undefined} index\n * @param {Array<Parent>} parents\n */\n function factory(node, index, parents) {\n /** @type {Record<string, unknown>} */\n // @ts-expect-error: hush\n const value = node && typeof node === 'object' ? node : {};\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string' ? value.tagName :\n // `xast`\n typeof value.name === 'string' ? value.name : undefined;\n Object.defineProperty(visit, 'name', {\n value: 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n });\n }\n return visit;\n function visit() {\n /** @type {ActionTuple} */\n let result = [];\n /** @type {ActionTuple} */\n let subresult;\n /** @type {number} */\n let offset;\n /** @type {Array<Parent>} */\n let grandparents;\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents));\n if (result[0] === EXIT) {\n return result;\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step;\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node);\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)();\n if (subresult[0] === EXIT) {\n return subresult;\n }\n offset = typeof subresult[1] === 'number' ? subresult[1] : offset + step;\n }\n }\n return result;\n }\n }\n};\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {ActionTuple}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === 'number') {\n return [CONTINUE, value];\n }\n return [value];\n}","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Check if `Child` can be a child of `Ancestor`.\n *\n * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns\n * `never`.\n *\n * @template {Node} Ancestor\n * Node type.\n * @template {Node} Child\n * Node type.\n * @typedef {(\n * Ancestor extends Parent\n * ? Child extends Ancestor['children'][number]\n * ? Ancestor\n * : never\n * : never\n * )} ParentsOf\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends Node ? number | null : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends Node ? Ancestor | null : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Visited\n * Node type.\n * @template {Parent} Ancestor\n * Parent type.\n * @typedef {Visitor<Visited, ParentsOf<Ancestor, Visited>>} BuildVisitorFromMatch\n */\n\n/**\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n * @typedef {(\n * BuildVisitorFromMatch<\n * import('unist-util-visit-parents/complex-types.js').Matches<Descendant, Check>,\n * Extract<Descendant, Parent>\n * >\n * )} BuildVisitorFromDescendants\n */\n\n/**\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} [Tree=Node]\n * Node type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {(\n * BuildVisitorFromDescendants<\n * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant<Tree>,\n * Check\n * >\n * )} BuildVisitor\n */\n\nimport { visitParents } from 'unist-util-visit-parents';\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visit =\n/**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)\n * )}\n */\n\n/**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\nfunction (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor;\n visitor = test;\n test = null;\n }\n visitParents(tree, test, overload, reverse);\n\n /**\n * @param {Node} node\n * @param {Array<Parent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1];\n return visitor(node, parent ? parent.children.indexOf(node) : null, parent);\n }\n};\nexport { CONTINUE, EXIT, SKIP } from 'unist-util-visit-parents';","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start');\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end');\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * Node.\n * @returns {Position}\n * Position.\n */\nexport function position(node) {\n return {\n start: pointStart(node),\n end: pointEnd(node)\n };\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start' | 'end'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point;\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * @returns {Point}\n */\n function point(node) {\n const point = node && node.position && node.position[type] || {};\n\n // To do: next major: don’t return points when invalid.\n return {\n // @ts-expect-error: in practice, null is allowed.\n line: point.line || null,\n // @ts-expect-error: in practice, null is allowed.\n column: point.column || null,\n // @ts-expect-error: in practice, null is allowed.\n offset: point.offset > -1 ? point.offset : null\n };\n }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Definition} Definition\n */\n\n/**\n * @typedef {Root | Content} Node\n *\n * @callback GetDefinition\n * Get a definition by identifier.\n * @param {string | null | undefined} [identifier]\n * Identifier of definition.\n * @returns {Definition | null}\n * Definition corresponding to `identifier` or `null`.\n */\n\nimport { visit } from 'unist-util-visit';\nconst own = {}.hasOwnProperty;\n\n/**\n * Find definitions in `tree`.\n *\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} tree\n * Tree to check.\n * @returns {GetDefinition}\n * Getter.\n */\nexport function definitions(tree) {\n /** @type {Record<string, Definition>} */\n const cache = Object.create(null);\n if (!tree || !tree.type) {\n throw new Error('mdast-util-definitions expected node');\n }\n visit(tree, 'definition', definition => {\n const id = clean(definition.identifier);\n if (id && !own.call(cache, id)) {\n cache[id] = definition;\n }\n });\n return definition;\n\n /** @type {GetDefinition} */\n function definition(identifier) {\n const id = clean(identifier);\n // To do: next major: return `undefined` when not found.\n return id && own.call(cache, id) ? cache[id] : null;\n }\n}\n\n/**\n * @param {string | null | undefined} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase();\n}","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('hast').Element} Element\n * @typedef {import('../state.js').State} State\n */\n\nimport { normalizeUri } from 'micromark-util-sanitize-uri';\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const id = String(node.identifier).toUpperCase();\n const safeId = normalizeUri(id.toLowerCase());\n const index = state.footnoteOrder.indexOf(id);\n /** @type {number} */\n let counter;\n if (index === -1) {\n state.footnoteOrder.push(id);\n state.footnoteCounts[id] = 1;\n counter = state.footnoteOrder.length;\n } else {\n state.footnoteCounts[id]++;\n counter = index + 1;\n }\n const reuseCounter = state.footnoteCounts[id];\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + state.clobberPrefix + 'fn-' + safeId,\n id: state.clobberPrefix + 'fnref-' + safeId + (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{\n type: 'text',\n value: String(counter)\n }]\n };\n state.patch(node, link);\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n };\n state.patch(node, sup);\n return state.applyData(node, sup);\n}","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Reference} Reference\n * @typedef {import('mdast').Root} Root\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Reference>} References\n */\n\n// To do: next major: always return array.\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {References} node\n * Reference node (image, link).\n * @returns {ElementContent | Array<ElementContent>}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType;\n let suffix = ']';\n if (subtype === 'collapsed') {\n suffix += '[]';\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']';\n }\n if (node.type === 'imageReference') {\n return {\n type: 'text',\n value: '![' + node.alt + suffix\n };\n }\n const contents = state.all(node);\n const head = contents[0];\n if (head && head.type === 'text') {\n head.value = '[' + head.value;\n } else {\n contents.unshift({\n type: 'text',\n value: '['\n });\n }\n const tail = contents[contents.length - 1];\n if (tail && tail.type === 'text') {\n tail.value += suffix;\n } else {\n contents.push({\n type: 'text',\n value: suffix\n });\n }\n return contents;\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Parent>} Parents\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | null | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node);\n const loose = parent ? listLoose(parent) : listItemLoose(node);\n /** @type {Properties} */\n const properties = {};\n /** @type {Array<ElementContent>} */\n const children = [];\n if (typeof node.checked === 'boolean') {\n const head = results[0];\n /** @type {Element} */\n let paragraph;\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head;\n } else {\n paragraph = {\n type: 'element',\n tagName: 'p',\n properties: {},\n children: []\n };\n results.unshift(paragraph);\n }\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({\n type: 'text',\n value: ' '\n });\n }\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {\n type: 'checkbox',\n checked: node.checked,\n disabled: true\n },\n children: []\n });\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n properties.className = ['task-list-item'];\n }\n let index = -1;\n while (++index < results.length) {\n const child = results[index];\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (loose || index !== 0 || child.type !== 'element' || child.tagName !== 'p') {\n children.push({\n type: 'text',\n value: '\\n'\n });\n }\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children);\n } else {\n children.push(child);\n }\n }\n const tail = results[results.length - 1];\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({\n type: 'text',\n value: '\\n'\n });\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'li',\n properties,\n children\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false;\n if (node.type === 'list') {\n loose = node.spread || false;\n const children = node.children;\n let index = -1;\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index]);\n }\n }\n return loose;\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread;\n return spread === undefined || spread === null ? node.children.length > 1 : spread;\n}","const tab = 9; /* `\\t` */\nconst space = 32; /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value);\n const search = /\\r?\\n|\\r/g;\n let match = search.exec(source);\n let last = 0;\n /** @type {Array<string>} */\n const lines = [];\n while (match) {\n lines.push(trimLine(source.slice(last, match.index), last > 0, true), match[0]);\n last = match.index + match[0].length;\n match = search.exec(source);\n }\n lines.push(trimLine(source.slice(last), last > 0, false));\n return lines.join('');\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0;\n let endIndex = value.length;\n if (start) {\n let code = value.codePointAt(startIndex);\n while (code === tab || code === space) {\n startIndex++;\n code = value.codePointAt(startIndex);\n }\n }\n if (end) {\n let code = value.codePointAt(endIndex - 1);\n while (code === tab || code === space) {\n endIndex--;\n code = value.codePointAt(endIndex - 1);\n }\n }\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : '';\n}","import { blockquote } from './blockquote.js';\nimport { hardBreak } from './break.js';\nimport { code } from './code.js';\nimport { strikethrough } from './delete.js';\nimport { emphasis } from './emphasis.js';\nimport { footnoteReference } from './footnote-reference.js';\nimport { footnote } from './footnote.js';\nimport { heading } from './heading.js';\nimport { html } from './html.js';\nimport { imageReference } from './image-reference.js';\nimport { image } from './image.js';\nimport { inlineCode } from './inline-code.js';\nimport { linkReference } from './link-reference.js';\nimport { link } from './link.js';\nimport { listItem } from './list-item.js';\nimport { list } from './list.js';\nimport { paragraph } from './paragraph.js';\nimport { root } from './root.js';\nimport { strong } from './strong.js';\nimport { table } from './table.js';\nimport { tableRow } from './table-row.js';\nimport { tableCell } from './table-cell.js';\nimport { text } from './text.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/**\n * Default handlers for nodes.\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n};\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n // To do: next major: return `undefined`.\n return null;\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array<Element | Text>}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'br',\n properties: {},\n children: []\n };\n state.patch(node, result);\n return [state.applyData(node, result), {\n type: 'text',\n value: '\\n'\n }];\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : '';\n // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n // on for years in remark now.\n const lang = node.lang ? node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/) : null;\n /** @type {Properties} */\n const properties = {};\n if (lang) {\n properties.className = ['language-' + lang];\n }\n\n // Create `<code>`.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{\n type: 'text',\n value\n }]\n };\n if (node.meta) {\n result.data = {\n meta: node.meta\n };\n }\n state.patch(node, result);\n result = state.applyData(node, result);\n\n // Create `<pre>`.\n result = {\n type: 'element',\n tagName: 'pre',\n properties: {},\n children: [result]\n };\n state.patch(node, result);\n return result;\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Delete} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strikethrough(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'del',\n properties: {},\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Emphasis} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function emphasis(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'em',\n properties: {},\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../state.js').State} State\n */\n\nimport { footnoteReference } from './footnote-reference.js';\n\n// To do: when both:\n// * <https://github.com/micromark/micromark-extension-footnote>\n// * <https://github.com/syntax-tree/mdast-util-footnote>\n// …are archived, remove this (also from mdast).\n// These inline notes are not used in GFM.\n\n/**\n * Turn an mdast `footnote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Footnote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnote(state, node) {\n const footnoteById = state.footnoteById;\n let no = 1;\n while (no in footnoteById) no++;\n const identifier = String(no);\n footnoteById[identifier] = {\n type: 'footnoteDefinition',\n identifier,\n children: [{\n type: 'paragraph',\n children: node.children\n }],\n position: node.position\n };\n return footnoteReference(state, {\n type: 'footnoteReference',\n identifier,\n position: node.position\n });\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Heading} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function heading(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'h' + node.depth,\n properties: {},\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').HTML} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n * Info passed around.\n * @param {Html} node\n * mdast node.\n * @returns {Raw | Element | null}\n * hast node.\n */\nexport function html(state, node) {\n if (state.dangerous) {\n /** @type {Raw} */\n const result = {\n type: 'raw',\n value: node.value\n };\n state.patch(node, result);\n return state.applyData(node, result);\n }\n\n // To do: next major: return `undefined`.\n return null;\n}","/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport { normalizeUri } from 'micromark-util-sanitize-uri';\nimport { revert } from '../revert.js';\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ImageReference} node\n * mdast node.\n * @returns {ElementContent | Array<ElementContent>}\n * hast node.\n */\nexport function imageReference(state, node) {\n const def = state.definition(node.identifier);\n if (!def) {\n return revert(state, node);\n }\n\n /** @type {Properties} */\n const properties = {\n src: normalizeUri(def.url || ''),\n alt: node.alt\n };\n if (def.title !== null && def.title !== undefined) {\n properties.title = def.title;\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'img',\n properties,\n children: []\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport { normalizeUri } from 'micromark-util-sanitize-uri';\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Image} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function image(state, node) {\n /** @type {Properties} */\n const properties = {\n src: normalizeUri(node.url)\n };\n if (node.alt !== null && node.alt !== undefined) {\n properties.alt = node.alt;\n }\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title;\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'img',\n properties,\n children: []\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {InlineCode} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function inlineCode(state, node) {\n /** @type {Text} */\n const text = {\n type: 'text',\n value: node.value.replace(/\\r?\\n|\\r/g, ' ')\n };\n state.patch(node, text);\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: [text]\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport { normalizeUri } from 'micromark-util-sanitize-uri';\nimport { revert } from '../revert.js';\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {LinkReference} node\n * mdast node.\n * @returns {ElementContent | Array<ElementContent>}\n * hast node.\n */\nexport function linkReference(state, node) {\n const def = state.definition(node.identifier);\n if (!def) {\n return revert(state, node);\n }\n\n /** @type {Properties} */\n const properties = {\n href: normalizeUri(def.url || '')\n };\n if (def.title !== null && def.title !== undefined) {\n properties.title = def.title;\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport { normalizeUri } from 'micromark-util-sanitize-uri';\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Link} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function link(state, node) {\n /** @type {Properties} */\n const properties = {\n href: normalizeUri(node.url)\n };\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title;\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {List} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function list(state, node) {\n /** @type {Properties} */\n const properties = {};\n const results = state.all(node);\n let index = -1;\n if (typeof node.start === 'number' && node.start !== 1) {\n properties.start = node.start;\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < results.length) {\n const child = results[index];\n if (child.type === 'element' && child.tagName === 'li' && child.properties && Array.isArray(child.properties.className) && child.properties.className.includes('task-list-item')) {\n properties.className = ['contains-task-list'];\n break;\n }\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: node.ordered ? 'ol' : 'ul',\n properties,\n children: state.wrap(results, true)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Paragraph} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function paragraph(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'p',\n properties: {},\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastRoot} node\n * mdast node.\n * @returns {HastRoot | HastElement}\n * hast node.\n */\nexport function root(state, node) {\n /** @type {HastRoot} */\n const result = {\n type: 'root',\n children: state.wrap(state.all(node))\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Strong} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strong(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'strong',\n properties: {},\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport { pointStart, pointEnd } from 'unist-util-position';\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Table} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function table(state, node) {\n const rows = state.all(node);\n const firstRow = rows.shift();\n /** @type {Array<Element>} */\n const tableContent = [];\n if (firstRow) {\n /** @type {Element} */\n const head = {\n type: 'element',\n tagName: 'thead',\n properties: {},\n children: state.wrap([firstRow], true)\n };\n state.patch(node.children[0], head);\n tableContent.push(head);\n }\n if (rows.length > 0) {\n /** @type {Element} */\n const body = {\n type: 'element',\n tagName: 'tbody',\n properties: {},\n children: state.wrap(rows, true)\n };\n const start = pointStart(node.children[1]);\n const end = pointEnd(node.children[node.children.length - 1]);\n if (start.line && end.line) body.position = {\n start,\n end\n };\n tableContent.push(body);\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'table',\n properties: {},\n children: state.wrap(tableContent, true)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableCell} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function tableCell(state, node) {\n // Note: this function is normally not called: see `table-row` for how rows\n // and their cells are compiled.\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'td',\n // Assume body cell.\n properties: {},\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Parent>} Parents\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableRow} node\n * mdast node.\n * @param {Parents | null | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function tableRow(state, node, parent) {\n const siblings = parent ? parent.children : undefined;\n // Generate a body row when without parent.\n const rowIndex = siblings ? siblings.indexOf(node) : 1;\n const tagName = rowIndex === 0 ? 'th' : 'td';\n const align = parent && parent.type === 'table' ? parent.align : undefined;\n const length = align ? align.length : node.children.length;\n let cellIndex = -1;\n /** @type {Array<ElementContent>} */\n const cells = [];\n while (++cellIndex < length) {\n // Note: can also be undefined.\n const cell = node.children[cellIndex];\n /** @type {Properties} */\n const properties = {};\n const alignValue = align ? align[cellIndex] : undefined;\n if (alignValue) {\n properties.align = alignValue;\n }\n\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName,\n properties,\n children: []\n };\n if (cell) {\n result.children = state.all(cell);\n state.patch(cell, result);\n result = state.applyData(node, result);\n }\n cells.push(result);\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'tr',\n properties: {},\n children: state.wrap(cells, true)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport { trimLines } from 'trim-lines';\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastText} node\n * mdast node.\n * @returns {HastText | HastElement}\n * hast node.\n */\nexport function text(state, node) {\n /** @type {HastText} */\n const result = {\n type: 'text',\n value: trimLines(String(node.value))\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ThematicBreak} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function thematicBreak(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'hr',\n properties: {},\n children: []\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} MdastRoot\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n * @typedef {Extract<MdastNodes, MdastParent>} MdastParents\n *\n * @typedef EmbeddedHastFields\n * hast fields.\n * @property {string | null | undefined} [hName]\n * Generate a specific element with this tag name instead.\n * @property {HastProperties | null | undefined} [hProperties]\n * Generate an element with these properties instead.\n * @property {Array<HastElementContent> | null | undefined} [hChildren]\n * Generate an element with this content instead.\n *\n * @typedef {Record<string, unknown> & EmbeddedHastFields} MdastData\n * mdast data with embedded hast fields.\n *\n * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData\n * mdast node with embedded hast data.\n *\n * @typedef PointLike\n * Point-like value.\n * @property {number | null | undefined} [line]\n * Line.\n * @property {number | null | undefined} [column]\n * Column.\n * @property {number | null | undefined} [offset]\n * Offset.\n *\n * @typedef PositionLike\n * Position-like value.\n * @property {PointLike | null | undefined} [start]\n * Point-like value.\n * @property {PointLike | null | undefined} [end]\n * Point-like value.\n *\n * @callback Handler\n * Handle a node.\n * @param {State} state\n * Info passed around.\n * @param {any} node\n * mdast node to handle.\n * @param {MdastParents | null | undefined} parent\n * Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n * hast node.\n *\n * @callback HFunctionProps\n * Signature of `state` for when props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n * mdast node or unist position.\n * @param {string} tagName\n * HTML tag name.\n * @param {HastProperties} props\n * Properties.\n * @param {Array<HastElementContent> | null | undefined} [children]\n * hast content.\n * @returns {HastElement}\n * Compiled element.\n *\n * @callback HFunctionNoProps\n * Signature of `state` for when no props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n * mdast node or unist position.\n * @param {string} tagName\n * HTML tag name.\n * @param {Array<HastElementContent> | null | undefined} [children]\n * hast content.\n * @returns {HastElement}\n * Compiled element.\n *\n * @typedef HFields\n * Info on `state`.\n * @property {boolean} dangerous\n * Whether HTML is allowed.\n * @property {string} clobberPrefix\n * Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n * Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n * HTML used for the footnote label.\n * @property {HastProperties} footnoteLabelProperties\n * Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n * Label to use from backreferences back to their footnote call.\n * @property {(identifier: string) => MdastDefinition | null} definition\n * Definition cache.\n * @property {Record<string, MdastFootnoteDefinition>} footnoteById\n * Footnote definitions by their identifier.\n * @property {Array<string>} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Record<string, number>} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {Handler} unknownHandler\n * Handler for any none not in `passThrough` or otherwise handled.\n * @property {(from: MdastNodes, node: HastNodes) => void} patch\n * Copy a node’s positional info.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => Type | HastElement} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array<HastElementContent> | null | undefined} one\n * Transform an mdast node to hast.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n * Transform the children of an mdast parent to hast.\n * @property {<Type extends HastContent>(nodes: Array<Type>, loose?: boolean | null | undefined) => Array<Type | HastText>} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment\n * Like `state` but lower-level and usable on non-elements.\n * Deprecated: use `patch` and `applyData`.\n * @property {Array<string>} passThrough\n * List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Whether to persist raw HTML in markdown in the hast tree.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n * Prefix to use before the `id` attribute on footnotes to prevent it from\n * *clobbering*.\n * @property {string | null | undefined} [footnoteBackLabel='Back to content']\n * Label to use from backreferences back to their footnote call (affects\n * screen readers).\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Label to use for the footnotes section (affects screen readers).\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (note that `id: 'footnote-label'`\n * is always added as footnote calls use it with `aria-describedby` to\n * provide an accessible label).\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * Tag name to use for the footnote label.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes.\n * @property {Array<string> | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes.\n *\n * @typedef {Record<string, Handler>} Handlers\n * Handle nodes.\n *\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} State\n * Info passed around.\n */\n\nimport { visit } from 'unist-util-visit';\nimport { position, pointStart, pointEnd } from 'unist-util-position';\nimport { generated } from 'unist-util-generated';\nimport { definitions } from 'mdast-util-definitions';\nimport { handlers } from './handlers/index.js';\nconst own = {}.hasOwnProperty;\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || {};\n const dangerous = settings.allowDangerousHtml || false;\n /** @type {Record<string, MdastFootnoteDefinition>} */\n const footnoteById = {};\n\n // To do: next major: add `options` to state, remove:\n // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,\n // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,\n // `unknownHandler`.\n\n // To do: next major: move to `state.options.allowDangerousHtml`.\n state.dangerous = dangerous;\n // To do: next major: move to `state.options`.\n state.clobberPrefix = settings.clobberPrefix === undefined || settings.clobberPrefix === null ? 'user-content-' : settings.clobberPrefix;\n // To do: next major: move to `state.options`.\n state.footnoteLabel = settings.footnoteLabel || 'Footnotes';\n // To do: next major: move to `state.options`.\n state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2';\n // To do: next major: move to `state.options`.\n state.footnoteLabelProperties = settings.footnoteLabelProperties || {\n className: ['sr-only']\n };\n // To do: next major: move to `state.options`.\n state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content';\n // To do: next major: move to `state.options`.\n state.unknownHandler = settings.unknownHandler;\n // To do: next major: move to `state.options`.\n state.passThrough = settings.passThrough;\n state.handlers = {\n ...handlers,\n ...settings.handlers\n };\n\n // To do: next major: replace utility with `definitionById` object, so we\n // only walk once (as we need footnotes too).\n state.definition = definitions(tree);\n state.footnoteById = footnoteById;\n /** @type {Array<string>} */\n state.footnoteOrder = [];\n /** @type {Record<string, number>} */\n state.footnoteCounts = {};\n state.patch = patch;\n state.applyData = applyData;\n state.one = oneBound;\n state.all = allBound;\n state.wrap = wrap;\n // To do: next major: remove `augment`.\n state.augment = augment;\n visit(tree, 'footnoteDefinition', definition => {\n const id = String(definition.identifier).toUpperCase();\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.\n if (!own.call(footnoteById, id)) {\n footnoteById[id] = definition;\n }\n });\n\n // @ts-expect-error Hush, it’s fine!\n return state;\n\n /**\n * Finalise the created `right`, a hast node, from `left`, an mdast node.\n *\n * @param {MdastNodeWithData | PositionLike | null | undefined} left\n * @param {HastElementContent} right\n * @returns {HastElementContent}\n */\n /* c8 ignore start */\n // To do: next major: remove.\n function augment(left, right) {\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (left && 'data' in left && left.data) {\n /** @type {MdastData} */\n const data = left.data;\n if (data.hName) {\n if (right.type !== 'element') {\n right = {\n type: 'element',\n tagName: '',\n properties: {},\n children: []\n };\n }\n right.tagName = data.hName;\n }\n if (right.type === 'element' && data.hProperties) {\n right.properties = {\n ...right.properties,\n ...data.hProperties\n };\n }\n if ('children' in right && right.children && data.hChildren) {\n right.children = data.hChildren;\n }\n }\n if (left) {\n const ctx = 'type' in left ? left : {\n position: left\n };\n if (!generated(ctx)) {\n // @ts-expect-error: fine.\n right.position = {\n start: pointStart(ctx),\n end: pointEnd(ctx)\n };\n }\n }\n return right;\n }\n /* c8 ignore stop */\n\n /**\n * Create an element for `node`.\n *\n * @type {HFunctionProps}\n */\n /* c8 ignore start */\n // To do: next major: remove.\n function state(node, tagName, props, children) {\n if (Array.isArray(props)) {\n children = props;\n props = {};\n }\n\n // @ts-expect-error augmenting an element yields an element.\n return augment(node, {\n type: 'element',\n tagName,\n properties: props || {},\n children: children || []\n });\n }\n /* c8 ignore stop */\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | null | undefined} [parent]\n * Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n * Resulting hast node.\n */\n function oneBound(node, parent) {\n // @ts-expect-error: that’s a state :)\n return one(state, node, parent);\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n function allBound(parent) {\n // @ts-expect-error: that’s a state :)\n return all(state, parent);\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {void}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from);\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {Type | HastElement}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {Type | HastElement} */\n let result = to;\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName;\n const hChildren = from.data.hChildren;\n const hProperties = from.data.hProperties;\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName;\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent is likely to keep the content around (otherwise: pass\n // `hChildren`).\n else {\n result = {\n type: 'element',\n tagName: hName,\n properties: {},\n children: []\n };\n\n // To do: next major: take the children from the `root`, or inject the\n // raw/text/comment or so into the element?\n // if ('children' in node) {\n // // @ts-expect-error: assume `children` are allowed in elements.\n // result.children = node.children\n // } else {\n // // @ts-expect-error: assume `node` is allowed in elements.\n // result.children.push(node)\n // }\n }\n }\n if (result.type === 'element' && hProperties) {\n result.properties = {\n ...result.properties,\n ...hProperties\n };\n }\n if ('children' in result && result.children && hChildren !== null && hChildren !== undefined) {\n // @ts-expect-error: assume valid children are defined.\n result.children = hChildren;\n }\n }\n return result;\n}\n\n/**\n * Transform an mdast node into a hast node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | null | undefined} [parent]\n * Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n * Resulting hast node.\n */\n// To do: next major: do not expose, keep bound.\nexport function one(state, node, parent) {\n const type = node && node.type;\n\n // Fail on non-nodes.\n if (!type) {\n throw new Error('Expected node, got `' + node + '`');\n }\n if (own.call(state.handlers, type)) {\n return state.handlers[type](state, node, parent);\n }\n if (state.passThrough && state.passThrough.includes(type)) {\n // To do: next major: deep clone.\n // @ts-expect-error: types of passed through nodes are expected to be added manually.\n return 'children' in node ? {\n ...node,\n children: all(state, node)\n } : node;\n }\n if (state.unknownHandler) {\n return state.unknownHandler(state, node, parent);\n }\n return defaultUnknownHandler(state, node);\n}\n\n/**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n// To do: next major: do not expose, keep bound.\nexport function all(state, parent) {\n /** @type {Array<HastElementContent>} */\n const values = [];\n if ('children' in parent) {\n const nodes = parent.children;\n let index = -1;\n while (++index < nodes.length) {\n const result = one(state, nodes[index], parent);\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = result.value.replace(/^\\s+/, '');\n }\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0];\n if (head && head.type === 'text') {\n head.value = head.value.replace(/^\\s+/, '');\n }\n }\n }\n if (Array.isArray(result)) {\n values.push(...result);\n } else {\n values.push(result);\n }\n }\n }\n }\n return values;\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastText | HastElement}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {};\n /** @type {HastText | HastElement} */\n const result = 'value' in node && !(own.call(data, 'hProperties') || own.call(data, 'hChildren')) ? {\n type: 'text',\n value: node.value\n } : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: all(state, node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastContent} Type\n * Node type.\n * @param {Array<Type>} nodes\n * List of nodes to wrap.\n * @param {boolean | null | undefined} [loose=false]\n * Whether to add line endings at start and end.\n * @returns {Array<Type | HastText>}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array<Type | HastText>} */\n const result = [];\n let index = -1;\n if (loose) {\n result.push({\n type: 'text',\n value: '\\n'\n });\n }\n while (++index < nodes.length) {\n if (index) result.push({\n type: 'text',\n value: '\\n'\n });\n result.push(nodes[index]);\n }\n if (loose && nodes.length > 0) {\n result.push({\n type: 'text',\n value: '\\n'\n });\n }\n return result;\n}","/**\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef NodeLike\n * @property {PositionLike | null | undefined} [position]\n */\n\n/**\n * Check if `node` is generated.\n *\n * @param {NodeLike | null | undefined} [node]\n * Node to check.\n * @returns {boolean}\n * Whether `node` is generated (does not have positional info).\n */\nexport function generated(node) {\n return !node || !node.position || !node.position.start || !node.position.start.line || !node.position.start.column || !node.position.end || !node.position.end.line || !node.position.end.column;\n}","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Root} HastRoot\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Root} MdastRoot\n *\n * @typedef {import('./state.js').Options} Options\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n */\n\nimport { footer } from './footer.js';\nimport { createState } from './state.js';\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {HastNodes | null | undefined}\n * hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n const state = createState(tree, options);\n const node = state.one(tree, null);\n const foot = footer(state);\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push({\n type: 'text',\n value: '\\n'\n }, foot);\n }\n\n // To do: next major: always return root?\n return Array.isArray(node) ? {\n type: 'root',\n children: node\n } : node;\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\nimport { normalizeUri } from 'micromark-util-sanitize-uri';\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\nexport function footer(state) {\n /** @type {Array<ElementContent>} */\n const listItems = [];\n let index = -1;\n while (++index < state.footnoteOrder.length) {\n const def = state.footnoteById[state.footnoteOrder[index]];\n if (!def) {\n continue;\n }\n const content = state.all(def);\n const id = String(def.identifier).toUpperCase();\n const safeId = normalizeUri(id.toLowerCase());\n let referenceIndex = 0;\n /** @type {Array<ElementContent>} */\n const backReferences = [];\n while (++referenceIndex <= state.footnoteCounts[id]) {\n /** @type {Element} */\n const backReference = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + state.clobberPrefix + 'fnref-' + safeId + (referenceIndex > 1 ? '-' + referenceIndex : ''),\n dataFootnoteBackref: true,\n className: ['data-footnote-backref'],\n ariaLabel: state.footnoteBackLabel\n },\n children: [{\n type: 'text',\n value: '↩'\n }]\n };\n if (referenceIndex > 1) {\n backReference.children.push({\n type: 'element',\n tagName: 'sup',\n children: [{\n type: 'text',\n value: String(referenceIndex)\n }]\n });\n }\n if (backReferences.length > 0) {\n backReferences.push({\n type: 'text',\n value: ' '\n });\n }\n backReferences.push(backReference);\n }\n const tail = content[content.length - 1];\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1];\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' ';\n } else {\n tail.children.push({\n type: 'text',\n value: ' '\n });\n }\n tail.children.push(...backReferences);\n } else {\n content.push(...backReferences);\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {\n id: state.clobberPrefix + 'fn-' + safeId\n },\n children: state.wrap(content, true)\n };\n state.patch(def, listItem);\n listItems.push(listItem);\n }\n if (listItems.length === 0) {\n return;\n }\n return {\n type: 'element',\n tagName: 'section',\n properties: {\n dataFootnotes: true,\n className: ['footnotes']\n },\n children: [{\n type: 'element',\n tagName: state.footnoteLabelTagName,\n properties: {\n // To do: use structured clone.\n ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),\n id: 'footnote-label'\n },\n children: [{\n type: 'text',\n value: state.footnoteLabel\n }]\n }, {\n type: 'text',\n value: '\\n'\n }, {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n }, {\n type: 'text',\n value: '\\n'\n }]\n };\n}","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor<any, any, any, any>} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport { toHast } from 'mdast-util-to-hast';\n\n// Note: the `<MdastRoot, HastRoot>` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It’s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It’s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype = /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n\nfunction (destination, options) {\n return destination && 'run' in destination ? bridge(destination, options) : mutate(destination || options);\n};\nexport default remarkRehype;\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, error => {\n next(error);\n });\n };\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return node => toHast(node, options);\n}","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property;\n this.normal = normal;\n if (space) {\n this.space = space;\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {};\n/** @type {Normal} */\nSchema.prototype.normal = {};\n/** @type {string|null} */\nSchema.prototype.space = null;","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport { Schema } from './schema.js';\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n let index = -1;\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property);\n Object.assign(normal, definitions[index].normal);\n }\n return new Schema(property, normal, space);\n}","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase();\n}","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property;\n /** @type {string} */\n this.attribute = attribute;\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null;\nInfo.prototype.boolean = false;\nInfo.prototype.booleanish = false;\nInfo.prototype.overloadedBoolean = false;\nInfo.prototype.number = false;\nInfo.prototype.commaSeparated = false;\nInfo.prototype.spaceSeparated = false;\nInfo.prototype.commaOrSpaceSeparated = false;\nInfo.prototype.mustUseProperty = false;\nInfo.prototype.defined = false;","let powers = 0;\nexport const boolean = increment();\nexport const booleanish = increment();\nexport const overloadedBoolean = increment();\nexport const number = increment();\nexport const spaceSeparated = increment();\nexport const commaSeparated = increment();\nexport const commaOrSpaceSeparated = increment();\nfunction increment() {\n return 2 ** ++powers;\n}","import { Info } from './info.js';\nimport * as types from './types.js';\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types);\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1;\n super(property, attribute);\n mark(this, 'space', space);\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index];\n mark(this, checks[index], (mask & types[check]) === types[check]);\n }\n }\n }\n}\nDefinedInfo.prototype.defined = true;\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value;\n }\n}","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\nimport { normalize } from '../normalize.js';\nimport { Schema } from './schema.js';\nimport { DefinedInfo } from './defined-info.js';\nconst own = {}.hasOwnProperty;\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n /** @type {string} */\n let prop;\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop];\n const info = new DefinedInfo(prop, definition.transform(definition.attributes || {}, prop), value, definition.space);\n if (definition.mustUseProperty && definition.mustUseProperty.includes(prop)) {\n info.mustUseProperty = true;\n }\n property[prop] = info;\n normal[normalize(prop)] = prop;\n normal[normalize(info.attribute)] = prop;\n }\n }\n return new Schema(property, normal, definition.space);\n}","import { create } from './util/create.js';\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase();\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n});","import { create } from './util/create.js';\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase();\n },\n properties: {\n xmlLang: null,\n xmlBase: null,\n xmlSpace: null\n }\n});","/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute;\n}","import { caseSensitiveTransform } from './case-sensitive-transform.js';\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase());\n}","import { create } from './util/create.js';\nimport { caseInsensitiveTransform } from './util/case-insensitive-transform.js';\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {\n xmlnsxlink: 'xmlns:xlink'\n },\n transform: caseInsensitiveTransform,\n properties: {\n xmlns: null,\n xmlnsXLink: null\n }\n});","import { booleanish, number, spaceSeparated } from './util/types.js';\nimport { create } from './util/create.js';\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase();\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n});","import { boolean, overloadedBoolean, booleanish, number, spaceSeparated, commaSeparated } from './util/types.js';\nimport { create } from './util/create.js';\nimport { caseInsensitiveTransform } from './util/case-insensitive-transform.js';\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null,\n // Several. Use CSS `text-align` instead,\n aLink: null,\n // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated,\n // `<object>`. List of URIs to archives\n axis: null,\n // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null,\n // `<body>`. Use CSS `background-image` instead\n bgColor: null,\n // `<body>` and table elements. Use CSS `background-color` instead\n border: number,\n // `<table>`. Use CSS `border-width` instead,\n borderColor: null,\n // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number,\n // `<body>`\n cellPadding: null,\n // `<table>`\n cellSpacing: null,\n // `<table>`\n char: null,\n // Several table elements. When `align=char`, sets the character to align on\n charOff: null,\n // Several table elements. When `char`, offsets the alignment\n classId: null,\n // `<object>`\n clear: null,\n // `<br>`. Use CSS `clear` instead\n code: null,\n // `<object>`\n codeBase: null,\n // `<object>`\n codeType: null,\n // `<object>`\n color: null,\n // `<font>` and `<hr>`. Use CSS instead\n compact: boolean,\n // Lists. Use CSS to reduce space between items instead\n declare: boolean,\n // `<object>`\n event: null,\n // `<script>`\n face: null,\n // `<font>`. Use CSS instead\n frame: null,\n // `<table>`\n frameBorder: null,\n // `<iframe>`. Use CSS `border` instead\n hSpace: number,\n // `<img>` and `<object>`\n leftMargin: number,\n // `<body>`\n link: null,\n // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null,\n // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null,\n // `<img>`. Use a `<picture>`\n marginHeight: number,\n // `<body>`\n marginWidth: number,\n // `<body>`\n noResize: boolean,\n // `<frame>`\n noHref: boolean,\n // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean,\n // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean,\n // `<td>` and `<th>`\n object: null,\n // `<applet>`\n profile: null,\n // `<head>`\n prompt: null,\n // `<isindex>`\n rev: null,\n // `<link>`\n rightMargin: number,\n // `<body>`\n rules: null,\n // `<table>`\n scheme: null,\n // `<meta>`\n scrolling: booleanish,\n // `<frame>`. Use overflow in the child context\n standby: null,\n // `<object>`\n summary: null,\n // `<table>`\n text: null,\n // `<body>`. Use CSS `color` instead\n topMargin: number,\n // `<body>`\n valueType: null,\n // `<param>`\n version: null,\n // `<html>`. Use a doctype.\n vAlign: null,\n // Several. Use CSS `vertical-align` instead\n vLink: null,\n // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number,\n // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n});","import { boolean, number, spaceSeparated, commaSeparated, commaOrSpaceSeparated } from './util/types.js';\nimport { create } from './util/create.js';\nimport { caseSensitiveTransform } from './util/case-sensitive-transform.js';\nexport const svg = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null,\n // SEMI_COLON_SEPARATED\n keySplines: null,\n // SEMI_COLON_SEPARATED\n keyTimes: null,\n // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n});","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport { merge } from './lib/util/merge.js';\nimport { xlink } from './lib/xlink.js';\nimport { xml } from './lib/xml.js';\nimport { xmlns } from './lib/xmlns.js';\nimport { aria } from './lib/aria.js';\nimport { html as htmlBase } from './lib/html.js';\nimport { svg as svgBase } from './lib/svg.js';\nexport { find } from './lib/find.js';\nexport { hastToReact } from './lib/hast-to-react.js';\nexport { normalize } from './lib/normalize.js';\nexport const html = merge([xml, xlink, xmlns, aria, htmlBase], 'html');\nexport const svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg');","import { visit } from 'unist-util-visit';\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n *\n * @callback AllowElement\n * @param {Element} element\n * @param {number} index\n * @param {Element|Root} parent\n * @returns {boolean|undefined}\n *\n * @typedef Options\n * @property {Array<string>} [allowedElements]\n * @property {Array<string>} [disallowedElements=[]]\n * @property {AllowElement} [allowElement]\n * @property {boolean} [unwrapDisallowed=false]\n */\n\n/**\n * @type {import('unified').Plugin<[Options], Root>}\n */\nexport default function rehypeFilter(options) {\n if (options.allowedElements && options.disallowedElements) {\n throw new TypeError('Only one of `allowedElements` and `disallowedElements` should be defined');\n }\n if (options.allowedElements || options.disallowedElements || options.allowElement) {\n return tree => {\n visit(tree, 'element', (node, index, parent_) => {\n const parent = /** @type {Element|Root} */parent_;\n /** @type {boolean|undefined} */\n let remove;\n if (options.allowedElements) {\n remove = !options.allowedElements.includes(node.tagName);\n } else if (options.disallowedElements) {\n remove = options.disallowedElements.includes(node.tagName);\n }\n if (!remove && options.allowElement && typeof index === 'number') {\n remove = !options.allowElement(node, index, parent);\n }\n if (remove && typeof index === 'number') {\n if (options.unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children);\n } else {\n parent.children.splice(index, 1);\n }\n return index;\n }\n return undefined;\n });\n };\n }\n}","/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {unknown} thing\n * Thing to check (typically `Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`).\n * If a node is passed it must be a `Text` node, whose `value` field is\n * checked.\n */\nexport function whitespace(thing) {\n /** @type {string} */\n const value =\n // @ts-expect-error looks like a node.\n thing && typeof thing === 'object' && thing.type === 'text' ?\n // @ts-expect-error looks like a text.\n thing.value || '' : thing;\n\n // HTML whitespace expression.\n // See <https://infra.spec.whatwg.org/#ascii-whitespace>.\n return typeof value === 'string' && value.replace(/[ \\t\\n\\f\\r]/g, '') === '';\n}","/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\nimport { normalize } from './normalize.js';\nimport { DefinedInfo } from './util/defined-info.js';\nimport { Info } from './util/info.js';\nconst valid = /^data[-\\w.:]+$/i;\nconst dash = /-[a-z]/g;\nconst cap = /[A-Z]/g;\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nexport function find(schema, value) {\n const normal = normalize(value);\n let prop = value;\n let Type = Info;\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]];\n }\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase);\n prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1);\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4);\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab);\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes;\n }\n value = 'data' + dashes;\n }\n }\n Type = DefinedInfo;\n }\n return new Type(prop, value);\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase();\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase();\n}","/**\n * `hast` is close to `React`, but differs in a couple of cases.\n *\n * To get a React property from a hast property, check if it is in\n * `hastToReact`, if it is, then use the corresponding value,\n * otherwise, use the hast property.\n *\n * @type {Record<string, string>}\n */\nexport const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n};","import StyleToObject from './index.js';\nexport default StyleToObject;","const protocols = ['http', 'https', 'mailto', 'tel'];\n\n/**\n * @param {string} uri\n * @returns {string}\n */\nexport function uriTransformer(uri) {\n const url = (uri || '').trim();\n const first = url.charAt(0);\n if (first === '#' || first === '/') {\n return url;\n }\n const colon = url.indexOf(':');\n if (colon === -1) {\n return url;\n }\n let index = -1;\n while (++index < protocols.length) {\n const protocol = protocols[index];\n if (colon === protocol.length && url.slice(0, protocol.length).toLowerCase() === protocol) {\n return url;\n }\n }\n index = url.indexOf('?');\n if (index !== -1 && colon > index) {\n return url;\n }\n index = url.indexOf('#');\n if (index !== -1 && colon > index) {\n return url;\n }\n\n // eslint-disable-next-line no-script-url\n return 'javascript:void(0)';\n}","/**\n * @template T\n * @typedef {import('react').ComponentType<T>} ComponentType<T>\n */\n\n/**\n * @template {import('react').ElementType} T\n * @typedef {import('react').ComponentPropsWithoutRef<T>} ComponentPropsWithoutRef<T>\n */\n\n/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('unist').Position} Position\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('./complex-types.js').ReactMarkdownProps} ReactMarkdownProps\n *\n * @typedef Raw\n * @property {'raw'} type\n * @property {string} value\n *\n * @typedef Context\n * @property {Options} options\n * @property {Schema} schema\n * @property {number} listDepth\n *\n * @callback TransformLink\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformImage\n * @param {string} src\n * @param {string} alt\n * @param {string?} title\n * @returns {string}\n *\n * @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType\n *\n * @callback TransformLinkTarget\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {TransformLinkTargetType|undefined}\n *\n * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames\n *\n * To do: is `data-sourcepos` typeable?\n *\n * @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps\n * @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps\n * @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps\n * @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps\n * @typedef {ComponentPropsWithoutRef<'td'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: false}} TableDataCellProps\n * @typedef {ComponentPropsWithoutRef<'th'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: true}} TableHeaderCellProps\n * @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps\n * @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps\n *\n * @typedef {ComponentType<CodeProps>} CodeComponent\n * @typedef {ComponentType<HeadingProps>} HeadingComponent\n * @typedef {ComponentType<LiProps>} LiComponent\n * @typedef {ComponentType<OrderedListProps>} OrderedListComponent\n * @typedef {ComponentType<TableDataCellProps>} TableDataCellComponent\n * @typedef {ComponentType<TableHeaderCellProps>} TableHeaderCellComponent\n * @typedef {ComponentType<TableRowProps>} TableRowComponent\n * @typedef {ComponentType<UnorderedListProps>} UnorderedListComponent\n *\n * @typedef SpecialComponents\n * @property {CodeComponent|ReactMarkdownNames} code\n * @property {HeadingComponent|ReactMarkdownNames} h1\n * @property {HeadingComponent|ReactMarkdownNames} h2\n * @property {HeadingComponent|ReactMarkdownNames} h3\n * @property {HeadingComponent|ReactMarkdownNames} h4\n * @property {HeadingComponent|ReactMarkdownNames} h5\n * @property {HeadingComponent|ReactMarkdownNames} h6\n * @property {LiComponent|ReactMarkdownNames} li\n * @property {OrderedListComponent|ReactMarkdownNames} ol\n * @property {TableDataCellComponent|ReactMarkdownNames} td\n * @property {TableHeaderCellComponent|ReactMarkdownNames} th\n * @property {TableRowComponent|ReactMarkdownNames} tr\n * @property {UnorderedListComponent|ReactMarkdownNames} ul\n *\n * @typedef {Partial<Omit<import('./complex-types.js').NormalComponents, keyof SpecialComponents> & SpecialComponents>} Components\n *\n * @typedef Options\n * @property {boolean} [sourcePos=false]\n * @property {boolean} [rawSourcePos=false]\n * @property {boolean} [skipHtml=false]\n * @property {boolean} [includeElementIndex=false]\n * @property {null|false|TransformLink} [transformLinkUri]\n * @property {TransformImage} [transformImageUri]\n * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]\n * @property {Components} [components]\n */\n\nimport React from 'react';\nimport ReactIs from 'react-is';\nimport { whitespace } from 'hast-util-whitespace';\nimport { svg, find, hastToReact } from 'property-information';\nimport { stringify as spaces } from 'space-separated-tokens';\nimport { stringify as commas } from 'comma-separated-tokens';\nimport style from 'style-to-object';\nimport { uriTransformer } from './uri-transformer.js';\nconst own = {}.hasOwnProperty;\n\n// The table-related elements that must not contain whitespace text according\n// to React.\nconst tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr']);\n\n/**\n * @param {Context} context\n * @param {Element|Root} node\n */\nexport function childrenToReact(context, node) {\n /** @type {Array<ReactNode>} */\n const children = [];\n let childIndex = -1;\n /** @type {Comment|Doctype|Element|Raw|Text} */\n let child;\n while (++childIndex < node.children.length) {\n child = node.children[childIndex];\n if (child.type === 'element') {\n children.push(toReact(context, child, childIndex, node));\n } else if (child.type === 'text') {\n // Currently, a warning is triggered by react for *any* white space in\n // tables.\n // So we drop it.\n // See: <https://github.com/facebook/react/pull/7081>.\n // See: <https://github.com/facebook/react/pull/7515>.\n // See: <https://github.com/remarkjs/remark-react/issues/64>.\n // See: <https://github.com/remarkjs/react-markdown/issues/576>.\n if (node.type !== 'element' || !tableElements.has(node.tagName) || !whitespace(child)) {\n children.push(child.value);\n }\n } else if (child.type === 'raw' && !context.options.skipHtml) {\n // Default behavior is to show (encoded) HTML.\n children.push(child.value);\n }\n }\n return children;\n}\n\n/**\n * @param {Context} context\n * @param {Element} node\n * @param {number} index\n * @param {Element|Root} parent\n */\nfunction toReact(context, node, index, parent) {\n const options = context.options;\n const transform = options.transformLinkUri === undefined ? uriTransformer : options.transformLinkUri;\n const parentSchema = context.schema;\n /** @type {ReactMarkdownNames} */\n // @ts-expect-error assume a known HTML/SVG element.\n const name = node.tagName;\n /** @type {Record<string, unknown>} */\n const properties = {};\n let schema = parentSchema;\n /** @type {string} */\n let property;\n if (parentSchema.space === 'html' && name === 'svg') {\n schema = svg;\n context.schema = schema;\n }\n if (node.properties) {\n for (property in node.properties) {\n if (own.call(node.properties, property)) {\n addProperty(properties, property, node.properties[property], context);\n }\n }\n }\n if (name === 'ol' || name === 'ul') {\n context.listDepth++;\n }\n const children = childrenToReact(context, node);\n if (name === 'ol' || name === 'ul') {\n context.listDepth--;\n }\n\n // Restore parent schema.\n context.schema = parentSchema;\n\n // Nodes created by plugins do not have positional info, in which case we use\n // an object that matches the position interface.\n const position = node.position || {\n start: {\n line: null,\n column: null,\n offset: null\n },\n end: {\n line: null,\n column: null,\n offset: null\n }\n };\n const component = options.components && own.call(options.components, name) ? options.components[name] : name;\n const basic = typeof component === 'string' || component === React.Fragment;\n if (!ReactIs.isValidElementType(component)) {\n throw new TypeError(`Component for name \\`${name}\\` not defined or is not renderable`);\n }\n properties.key = index;\n if (name === 'a' && options.linkTarget) {\n properties.target = typeof options.linkTarget === 'function' ? options.linkTarget(String(properties.href || ''), node.children, typeof properties.title === 'string' ? properties.title : null) : options.linkTarget;\n }\n if (name === 'a' && transform) {\n properties.href = transform(String(properties.href || ''), node.children, typeof properties.title === 'string' ? properties.title : null);\n }\n if (!basic && name === 'code' && parent.type === 'element' && parent.tagName !== 'pre') {\n properties.inline = true;\n }\n if (!basic && (name === 'h1' || name === 'h2' || name === 'h3' || name === 'h4' || name === 'h5' || name === 'h6')) {\n properties.level = Number.parseInt(name.charAt(1), 10);\n }\n if (name === 'img' && options.transformImageUri) {\n properties.src = options.transformImageUri(String(properties.src || ''), String(properties.alt || ''), typeof properties.title === 'string' ? properties.title : null);\n }\n if (!basic && name === 'li' && parent.type === 'element') {\n const input = getInputElement(node);\n properties.checked = input && input.properties ? Boolean(input.properties.checked) : null;\n properties.index = getElementsBeforeCount(parent, node);\n properties.ordered = parent.tagName === 'ol';\n }\n if (!basic && (name === 'ol' || name === 'ul')) {\n properties.ordered = name === 'ol';\n properties.depth = context.listDepth;\n }\n if (name === 'td' || name === 'th') {\n if (properties.align) {\n if (!properties.style) properties.style = {};\n // @ts-expect-error assume `style` is an object\n properties.style.textAlign = properties.align;\n delete properties.align;\n }\n if (!basic) {\n properties.isHeader = name === 'th';\n }\n }\n if (!basic && name === 'tr' && parent.type === 'element') {\n properties.isHeader = Boolean(parent.tagName === 'thead');\n }\n\n // If `sourcePos` is given, pass source information (line/column info from markdown source).\n if (options.sourcePos) {\n properties['data-sourcepos'] = flattenPosition(position);\n }\n if (!basic && options.rawSourcePos) {\n properties.sourcePosition = node.position;\n }\n\n // If `includeElementIndex` is given, pass node index info to components.\n if (!basic && options.includeElementIndex) {\n properties.index = getElementsBeforeCount(parent, node);\n properties.siblingCount = getElementsBeforeCount(parent);\n }\n if (!basic) {\n properties.node = node;\n }\n\n // Ensure no React warnings are emitted for void elements w/ children.\n return children.length > 0 ? /*#__PURE__*/React.createElement(component, properties, children) : /*#__PURE__*/React.createElement(component, properties);\n}\n\n/**\n * @param {Element|Root} node\n * @returns {Element?}\n */\nfunction getInputElement(node) {\n let index = -1;\n while (++index < node.children.length) {\n const child = node.children[index];\n if (child.type === 'element' && child.tagName === 'input') {\n return child;\n }\n }\n return null;\n}\n\n/**\n * @param {Element|Root} parent\n * @param {Element} [node]\n * @returns {number}\n */\nfunction getElementsBeforeCount(parent, node) {\n let index = -1;\n let count = 0;\n while (++index < parent.children.length) {\n if (parent.children[index] === node) break;\n if (parent.children[index].type === 'element') count++;\n }\n return count;\n}\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n */\nfunction addProperty(props, prop, value, ctx) {\n const info = find(ctx.schema, prop);\n let result = value;\n\n // Ignore nullish and `NaN` values.\n // eslint-disable-next-line no-self-compare\n if (result === null || result === undefined || result !== result) {\n return;\n }\n\n // Accept `array`.\n // Most props are space-separated.\n if (Array.isArray(result)) {\n result = info.commaSeparated ? commas(result) : spaces(result);\n }\n if (info.property === 'style' && typeof result === 'string') {\n result = parseStyle(result);\n }\n if (info.space && info.property) {\n props[own.call(hastToReact, info.property) ? hastToReact[info.property] : info.property] = result;\n } else if (info.attribute) {\n props[info.attribute] = result;\n }\n}\n\n/**\n * @param {string} value\n * @returns {Record<string, string>}\n */\nfunction parseStyle(value) {\n /** @type {Record<string, string>} */\n const result = {};\n try {\n style(value, iterator);\n } catch {\n // Silent.\n }\n return result;\n\n /**\n * @param {string} name\n * @param {string} v\n */\n function iterator(name, v) {\n const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name;\n result[k.replace(/-([a-z])/g, styleReplacer)] = v;\n }\n}\n\n/**\n * @param {unknown} _\n * @param {string} $1\n */\nfunction styleReplacer(_, $1) {\n return $1.toUpperCase();\n}\n\n/**\n * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos\n * @returns {string}\n */\nfunction flattenPosition(pos) {\n return [pos.start.line, ':', pos.start.column, '-', pos.end.line, ':', pos.end.column].map(String).join('');\n}","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array<string>} */\n const tokens = [];\n const input = String(value || '');\n let index = input.indexOf(',');\n let start = 0;\n /** @type {boolean} */\n let end = false;\n while (!end) {\n if (index === -1) {\n index = input.length;\n end = true;\n }\n const token = input.slice(start, index).trim();\n if (token || !end) {\n tokens.push(token);\n }\n start = index + 1;\n index = input.indexOf(',', start);\n }\n return tokens;\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {};\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values;\n return input.join((settings.padRight ? ' ' : '') + ',' + (settings.padLeft === false ? '' : ' ')).trim();\n}","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim();\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : [];\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim();\n}","/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('react').ReactElement<{}>} ReactElement\n * @typedef {import('unified').PluggableList} PluggableList\n * @typedef {import('hast').Root} Root\n * @typedef {import('./rehype-filter.js').Options} FilterOptions\n * @typedef {import('./ast-to-react.js').Options} TransformOptions\n *\n * @typedef CoreOptions\n * @property {string} children\n *\n * @typedef PluginOptions\n * @property {PluggableList} [remarkPlugins=[]]\n * @property {PluggableList} [rehypePlugins=[]]\n * @property {import('remark-rehype').Options | undefined} [remarkRehypeOptions={}]\n *\n * @typedef LayoutOptions\n * @property {string} [className]\n *\n * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions\n *\n * @typedef Deprecation\n * @property {string} id\n * @property {string} [to]\n */\n\nimport React from 'react';\nimport { VFile } from 'vfile';\nimport { unified } from 'unified';\nimport remarkParse from 'remark-parse';\nimport remarkRehype from 'remark-rehype';\nimport PropTypes from 'prop-types';\nimport { html } from 'property-information';\nimport rehypeFilter from './rehype-filter.js';\nimport { childrenToReact } from './ast-to-react.js';\nconst own = {}.hasOwnProperty;\nconst changelog = 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md';\n\n/** @type {Record<string, Deprecation>} */\nconst deprecated = {\n plugins: {\n to: 'remarkPlugins',\n id: 'change-plugins-to-remarkplugins'\n },\n renderers: {\n to: 'components',\n id: 'change-renderers-to-components'\n },\n astPlugins: {\n id: 'remove-buggy-html-in-markdown-parser'\n },\n allowDangerousHtml: {\n id: 'remove-buggy-html-in-markdown-parser'\n },\n escapeHtml: {\n id: 'remove-buggy-html-in-markdown-parser'\n },\n source: {\n to: 'children',\n id: 'change-source-to-children'\n },\n allowNode: {\n to: 'allowElement',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n allowedTypes: {\n to: 'allowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n disallowedTypes: {\n to: 'disallowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n includeNodeIndex: {\n to: 'includeElementIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n }\n};\n\n/**\n * React component to render markdown.\n *\n * @param {ReactMarkdownOptions} options\n * @returns {ReactElement}\n */\nexport function ReactMarkdown(options) {\n for (const key in deprecated) {\n if (own.call(deprecated, key) && own.call(options, key)) {\n const deprecation = deprecated[key];\n console.warn(`[react-markdown] Warning: please ${deprecation.to ? `use \\`${deprecation.to}\\` instead of` : 'remove'} \\`${key}\\` (see <${changelog}#${deprecation.id}> for more info)`);\n delete deprecated[key];\n }\n }\n const processor = unified().use(remarkParse).use(options.remarkPlugins || []).use(remarkRehype, {\n ...options.remarkRehypeOptions,\n allowDangerousHtml: true\n }).use(options.rehypePlugins || []).use(rehypeFilter, options);\n const file = new VFile();\n if (typeof options.children === 'string') {\n file.value = options.children;\n } else if (options.children !== undefined && options.children !== null) {\n console.warn(`[react-markdown] Warning: please pass a string as \\`children\\` (not: \\`${options.children}\\`)`);\n }\n const hastNode = processor.runSync(processor.parse(file), file);\n if (hastNode.type !== 'root') {\n throw new TypeError('Expected a `root` node');\n }\n\n /** @type {ReactElement} */\n let result = /*#__PURE__*/React.createElement(React.Fragment, {}, childrenToReact({\n options,\n schema: html,\n listDepth: 0\n }, hastNode));\n if (options.className) {\n result = /*#__PURE__*/React.createElement('div', {\n className: options.className\n }, result);\n }\n return result;\n}\nReactMarkdown.propTypes = {\n // Core options:\n children: PropTypes.string,\n // Layout options:\n className: PropTypes.string,\n // Filter options:\n allowElement: PropTypes.func,\n allowedElements: PropTypes.arrayOf(PropTypes.string),\n disallowedElements: PropTypes.arrayOf(PropTypes.string),\n unwrapDisallowed: PropTypes.bool,\n // Plugin options:\n remarkPlugins: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.object, PropTypes.func, PropTypes.arrayOf(\n // prettier-ignore\n // type-coverage:ignore-next-line\n PropTypes.any)]))])),\n rehypePlugins: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.object, PropTypes.func, PropTypes.arrayOf(\n // prettier-ignore\n // type-coverage:ignore-next-line\n PropTypes.any)]))])),\n // Transform options:\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n skipHtml: PropTypes.bool,\n includeElementIndex: PropTypes.bool,\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n components: PropTypes.object\n};","import * as React from 'react';\n\nimport * as R from 'ramda'\n\nimport classNames from 'classnames';\n\nimport connectAiChatSubscription from \"../../channels/ai_chat_channel\"\n\nimport GenLoadingSpinner from \"../Gen/LoadingSpinner\";\nimport GenButton from \"../Gen/Button\";\n\nimport Markdown from 'react-markdown'\n\nfunction MessageBar(props) {\n const {\n name,\n imageSrc,\n content,\n disabled,\n } = props;\n\n let renderedData = [\n <div key=\"messageName\">\n <div style={{backgroundColor: name === \"YOU\" ? \"#0570C7\" : \"#FC8181\" }} className={`h-20 w-20 rounded-full flex justify-center items-center overflow-hidden ${disabled ? 'opacity-70' : ''}`}>\n {imageSrc ? <img src={imageSrc} className=\"min-w-full min-h-full w-auto\" /> : <span className=\"self-center text-center flex-1 text-white\"><strong>{name}</strong></span>}\n </div>\n </div>,\n <div key=\"message\" style={{backgroundColor: name === \"YOU\" ? \"#DAEEFF\" : \"#eee\" }} className=\"message-bar-messages flex-1 p-3 rounded-lg self-center\">\n {content}\n </div>\n ]\n\n if (name === \"YOU\") { renderedData.reverse(); }\n\n return (\n <div className=\"flex gap-x-2 mb-3\">\n {renderedData}\n </div>\n )\n}\n\nconst MAX_COUNT = 20\n\ninterface DocOpenAiChatProps extends OpenAiChatNode, EveryNodeArgs {};;\n\ninterface DocOpenAiChatState {\n\n};\n\nexport default class DocOpenAiChat extends React.Component<DocOpenAiChatProps, DocOpenAiChatState> {\n state = {\n loading: false,\n messages: [],\n newUserMessage: \"\",\n };\n\n private aiChatSubscription: any;\n\n componentDidMount() {\n const {\n messages = [],\n startWithAssistant,\n } = this.props;\n\n if (startWithAssistant && messages.length === 0) {\n this.submitMessages();\n }\n }\n\n componentWillUnmount() {\n if(this.aiChatSubscription) {\n this.aiChatSubscription.unsubscribe()\n this.aiChatSubscription = null\n }\n }\n\n submitNewUserMessage() {\n const {\n newUserMessage,\n } = this.state;\n\n const userMessage = {\n role: \"user\",\n content: newUserMessage,\n }\n\n this.setState({\n newUserMessage: \"\",\n })\n\n this.submitMessages([userMessage]);\n }\n\n submitMessages(newMessages=[]) {\n const {\n uid,\n currentUser,\n messages = [],\n aiInstructions,\n currentActivityUserState,\n editState,\n } = this.props;\n\n if (editState.isEditor) { return }\n\n let compiledAiInstructions = aiInstructions;\n\n if(currentActivityUserState) {\n const regex = /\\{\\{\\s*(\\w+)\\s*\\}\\}/g\n const regexMatches = compiledAiInstructions.matchAll(regex)\n\n for (const match of regexMatches) {\n const fullMatch = match[0]\n const stateKey = match[1]\n\n const renderedMessages = (currentActivityUserState.state[stateKey]?.messages?.value || [])\n .map((message) => `${message.role}: ${message.content}`)\n .join('\\n\\n');\n\n compiledAiInstructions = compiledAiInstructions.replace(fullMatch, renderedMessages);\n }\n }\n\n const introMessage = {\n role: \"system\",\n content: compiledAiInstructions\n }\n\n this.setState({\n loading: true,\n })\n\n const allMessages = [...messages, ...newMessages]\n if (newMessages.length > 0) {\n currentUser.addState({[uid]: {\"messages\": allMessages}});\n }\n\n if (!this.aiChatSubscription) {\n this.aiChatSubscription = connectAiChatSubscription({\n chatId: `${currentUser.id}::${currentActivityUserState?.id}::${uid}`,\n onMessageReceived: this.receiveMessage.bind(this)\n })\n }\n\n setTimeout(() => this.aiChatSubscription.chat([introMessage, ...allMessages]), 1000)\n }\n\n receiveMessage(message) {\n const {\n uid,\n currentUser,\n messages = [],\n } = this.props;\n\n currentUser.addState({[uid]: {\"messages\": messages.concat(message)}});\n\n this.setState({\n loading: false,\n newUserMessage: \"\",\n })\n }\n\n restartChat() {\n const {\n uid,\n currentUser,\n } = this.props;\n\n this.setState({\n newUserMessage: \"\",\n })\n\n currentUser.addState({[uid]: {\"messages\": []}});\n }\n\n onEnterPress(e) {\n const {\n inactive,\n } = this.props;\n\n const {\n loading,\n newUserMessage,\n } = this.state;\n\n if(e.keyCode == 13 && e.shiftKey == false) {\n e.preventDefault();\n\n if (!(loading || inactive || this.userMessageCount() >= MAX_COUNT || newUserMessage.length === 0)) {\n this.submitNewUserMessage();\n }\n }\n }\n\n displayNameFromAiRole(role) {\n const {\n userDisplayName,\n assistantDisplayName,\n } = this.props;\n\n if (role === \"assistant\") {\n return assistantDisplayName || \"Assistant\"\n } else {\n return userDisplayName || \"YOU\"\n }\n }\n\n displayImageSrcFromAiRole(role) {\n const {\n assistantDisplayImage,\n userDisplayImage,\n currentVersion,\n } = this.props;\n\n if (role === \"assistant\") {\n return assistantDisplayImage && `${currentVersion.aws_folder_url}/compressed/images/${assistantDisplayImage}`;\n } else {\n return userDisplayImage && `${currentVersion.aws_folder_url}/compressed/images/${userDisplayImage}`;\n }\n }\n\n userMessageCount() {\n const {\n messages = [],\n } = this.props;\n\n return messages.filter((message) => message.role === \"user\").length\n }\n\n render() {\n const {\n uid,\n messages = [],\n inactive,\n inactiveBoolean,\n editState,\n placeholderText,\n } = this.props;\n\n const {\n loading,\n newUserMessage,\n } = this.state;\n\n const userMessageCount = this.userMessageCount()\n const disableChat = editState.isEditor || loading || inactive === 2 || userMessageCount >= MAX_COUNT\n const disableSubmitChat = disableChat || newUserMessage.length === 0\n\n return (\n <div className={classNames(\"doc-text-input\", {\"inactive\": inactiveBoolean})}>\n <div>\n { messages.map((message, i) => (\n <MessageBar\n key={`message-${i}`}\n name={this.displayNameFromAiRole(message.role)}\n imageSrc={this.displayImageSrcFromAiRole(message.role)}\n content={\n message.role === \"assistant\" ?\n <Markdown>{message.content}</Markdown> :\n message.content.split(/\\n/).map((paragraph, i) => <p key={i}>{paragraph}</p>)\n }\n />\n ))}\n { loading ? (\n <MessageBar\n name={this.displayNameFromAiRole(\"assistant\")}\n imageSrc={this.displayImageSrcFromAiRole(\"assistant\")}\n content={\n <GenLoadingSpinner/>\n }\n />\n ) : (\n <MessageBar\n name={this.displayNameFromAiRole(\"user\")}\n imageSrc={this.displayImageSrcFromAiRole(\"user\")}\n disabled={disableChat}\n content={\n <div className=\"relative\">\n <textarea\n cols={40}\n rows={4}\n value={newUserMessage}\n onChange={(e) => this.setState({newUserMessage: e.target.value})}\n onKeyDown={this.onEnterPress.bind(this)}\n disabled={disableChat}\n autoFocus={!disableChat}\n placeholder={disableChat ? \"\" : (!placeholderText || R.isEmpty(placeholderText) ? \"Type a message...\" : placeholderText)}\n />\n <div className=\"absolute right-1 bottom-3\">\n <GenButton\n name={<i className=\"fa fa-arrow-right\" />}\n highlighted\n disabled={disableSubmitChat}\n onClick={() => this.submitNewUserMessage()}\n />\n </div>\n </div>\n }\n />\n )}\n <div className=\"flex justify-end gap-2 items-center\">\n <GenButton\n name=\"Restart\"\n highlighted\n disabled={loading || inactive === 2 || messages.length === 0}\n small\n onClick={() => this.restartChat()}\n confirmMessage=\"Are you sure you want to restart?\"\n />\n {userMessageCount >= MAX_COUNT ? `Maximum Reached` : `${userMessageCount + 1} of ${MAX_COUNT}`}\n </div>\n </div>\n { editState.isEditor && (\n <div style={{position: \"absolute\", top: 0, right: \"-20px\"}}>\n <GenButton\n name={<i className=\"fa fa-cog\"/>}\n highlighted\n disabled={!editState.isEditing}\n small\n onClick={() => {\n editState.setEditMetadata(uid);\n editState.setCurrentlyEditing(null);\n }}\n />\n </div>\n )}\n </div>\n )\n }\n}\n","import consumer from \"./consumer\"\n\nexport default function connectAiChatSubscription({chatId, onMessageReceived}) {\n return consumer.subscriptions.create({ channel: \"AiChatChannel\", chat_id: chatId }, {\n connected() {\n // Called when the subscription is ready for use on the server\n },\n\n disconnected() {\n // Called when the subscription has been terminated by the server\n },\n\n received(data) {\n const {\n message,\n } = data;\n\n onMessageReceived(message);\n },\n\n chat(messages) {\n this.perform(\"chat\", { messages: messages })\n }\n });\n}","import React, {useState} from 'react';\nimport useWindowSize from \"hooks/useWindowSize\";\n\nimport DocumentSummary from 'Document/Summary'\n\nimport classNames from 'classnames';\n\nexport default function CategorySummary(props) {\n const [isExpanded, setIsExpanded] = useState(false)\n const screenWidth = useWindowSize().width;\n\n const handleSeeAllClicked = () => {\n setIsExpanded(!isExpanded)\n\n // Follow-through update event to Amity\n let data = {\n userId: props.currentUser.id,\n categoryId: props.id,\n event: \"category_uncollapsed\",\n value: !isExpanded\n };\n\n let url = window.location.href + `/${props.id}/record_events_amity`;\n\n fetch(url, {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(() => {})\n .catch(() => {});\n }\n\n const handleCategoryClicked = () => {\n let data = {\n userId: props.currentUser.id,\n categoryId: props.id,\n event: \"category_entered\"\n };\n\n let url = window.location.href + `/${props.id}/record_events_amity`;\n\n fetch(url, {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(() => {})\n .catch(() => {});\n }\n\n const handleMoveCategory = (direction) => {\n let data = {\n direction: direction,\n userId: props.currentUser.id\n };\n\n let url = window.location.href;\n if (!props.favorited_by_user) {\n url += `/${props.id}/move_category`;\n } else {\n url = url.replace(\"categories\", \"category_users\");\n url += `/${props.category_user_id}/move_category`;\n }\n\n fetch(url, {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(props.positionCallback)\n .catch(() => {});\n }\n\n const handleFavoriteCategory = () => {\n let data = {\n userId: props.currentUser.id\n };\n\n let url = window.location.href + `/${props.id}/favorite_category`;\n\n fetch(url, {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(props.positionCallback)\n .catch(() => {});\n }\n\n if (props.hidden && !props.currentUser.is_admin) {\n return null;\n }\n\n let title = props.name == \"Randomizer\" ? <h3> {props.name} </h3> : <a href={\"/categories/\" + props.id} onClick={handleCategoryClicked}> <h3> {props.name} </h3> </a>;\n\n let randomizerButton = props.name == \"Randomizer\" &&\n <button title=\"Shuffle\" className=\"button bg-sky-600 hover:bg-sky-500 category-control\" onClick={() => props.itemRefreshCallback(props.id)}>\n <i className=\"fa fa-random\"></i>\n </button>\n\n let favoriteButtonClass = 'button category-control'\n if (props.currentUser.is_admin) {\n favoriteButtonClass += ' disabled'\n } else {\n favoriteButtonClass += ` ${props.favorited_by_user ? 'favorited' : ''}`\n }\n\n let favoriteButton = <button title=\"Favorite\" className={favoriteButtonClass} onClick={() => handleFavoriteCategory()} disabled={props.currentUser.is_admin}>\n <i className=\"fa fa-star\"></i>\n </button>\n\n let expandButton = <button title={isExpanded ? \"Hide\" : `See All ${props.documents.length}`} className=\"button category-control bg-sky-600 hover:bg-sky-500\" onClick={() => handleSeeAllClicked()}>\n <i className={`fa fa-${isExpanded ? 'compress' : 'expand'}`}></i>\n </button>\n\n let moveUpButtonClass = \"button category-control\"\n if (props.top_of_list) {\n moveUpButtonClass += ' disabled'\n } else {\n moveUpButtonClass += ' bg-sky-600 hover:bg-sky-500'\n }\n let moveUpButton = <button title=\"Move up\" className={moveUpButtonClass} onClick={() => handleMoveCategory(\"higher\")} disabled={props.top_of_list}>\n <i className=\"fa fa-arrow-up\"></i>\n </button>\n\n let moveDownButtonClass = \"button category-control\"\n if (props.bottom_of_list) {\n moveDownButtonClass += ' disabled'\n } else {\n moveDownButtonClass += ' bg-sky-600 hover:bg-sky-500'\n }\n let moveDownButton = <button title=\"Move down\" className={moveDownButtonClass} onClick={() => handleMoveCategory(\"lower\")} disabled={props.bottom_of_list}>\n <i className=\"fa fa-arrow-down\"></i>\n </button>\n\n let canAddPositionControls = (props.currentUser.is_admin || (!props.currentUser.is_admin && props.favorited_by_user))\n let categoryControlsContainer = <div className=\"category-control-container\">\n {expandButton}\n {randomizerButton}\n {favoriteButton}\n {canAddPositionControls && moveUpButton}\n {canAddPositionControls && moveDownButton}\n </div>\n\n let documents;\n if (props.documents && props.documents.length > 0) {\n let documentsToRender = props.documents\n if (!isExpanded) {\n documentsToRender = documentsToRender.slice(0, 3)\n }\n\n documents = (\n <div\n id={`category-list-${props.id}`}\n className={classNames(\"category-container-covers\", {\"expanded\": isExpanded})}\n >\n {documentsToRender.map(doc => {\n return <DocumentSummary\n document={doc}\n key={doc.id}\n rootDocumentSetId={props.rootDocumentSetId}\n currentUser={props.currentUser}\n currentRoleDefinition={props.currentRoleDefinition}\n categoryId={props.id}\n />;\n })}\n </div>\n )\n } else {\n documents = <p> This category has no cases to display yet. </p>;\n }\n\n return <div className={`category-container ${props.hidden && \"hidden-category-panel\"}`}>\n <div className=\"category-container-covers-container\">\n <div className=\"category-container-header\" style={{'marginBottom': 15}}>\n {title}\n </div>\n\n {documents}\n </div>\n\n {categoryControlsContainer}\n </div>\n}\n","import { useState, useEffect } from 'react';\n\n// Hook\nexport default function useWindowSize() {\n // Initialize state with undefined width/height so server and client renders match\n // Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/\n const [windowSize, setWindowSize] = useState({\n width: undefined,\n height: undefined,\n });\n\n useEffect(() => {\n // Handler to call on window resize\n function handleResize() {\n // Set window width/height to state\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n }\n\n // Add event listener\n window.addEventListener(\"resize\", handleResize);\n\n // Call handler right away so state gets updated with initial window size\n handleResize();\n\n // Remove event listener on cleanup\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []); // Empty array ensures that effect is only run on mount\n\n return windowSize;\n}\n","import * as R from 'ramda'\n\nconst STATE_ACTION_NAMES = ['setNodeInactive', 'setNodeInvisible', 'setNodeKVPair']\n\nexport function performActions(actions, currentUser) {\n const [stateActions, otherActions] = R.partition((action) => STATE_ACTION_NAMES.indexOf(action.action) >= 0, actions);\n\n const stateActionsGroupByTarget = R.groupBy((stateAction) => stateAction.arguments.targetType ? [stateAction.arguments.targetType, stateAction.arguments.targetId] : [currentUser.addStateTargetType, currentUser.addStateTargetId], stateActions);\n\n R.values(stateActionsGroupByTarget).forEach((actionsForTarget) => {\n const targetType = actionsForTarget[0].arguments.targetType\n const targetId = actionsForTarget[0].arguments.targetId\n\n let unmergedStates = actionsForTarget.map((action) => {\n switch(action.action) {\n case 'setNodeInactive':\n return {[action.arguments.uid]: {\"inactive\": action.arguments.value}}\n case 'setNodeInvisible':\n return {[action.arguments.uid]: {\"invisible\": action.arguments.value}}\n case 'setNodeKVPair':\n return {[action.arguments.uid]: {[action.arguments.key]: action.arguments.value}}\n }\n });\n\n const state = R.reduce(R.mergeDeepLeft, R.head(unmergedStates), R.tail(unmergedStates));\n\n switch (targetType) {\n case \"activity\":\n currentUser.addActivityUserState(targetId, state);\n break;\n case \"document\":\n currentUser.addDocumentUserState(state);\n break;\n default:\n currentUser.addState(state);\n break;\n }\n })\n\n otherActions.forEach((action, index, array) => {\n switch(action.action) {\n case 'openNode':\n currentUser.openSection(action.arguments.uid);\n break;\n case 'openLink':\n Turbolinks.visit(action.arguments.href);\n break;\n }\n });\n}","module.exports = require('./ReactS3Uploader');","import {\n isCollapsedRange\n} from './range'\n\nimport {\n addStyle,\n removeStyle\n} from './inline_json'\n\nimport {\n modifyNodeValueByUIDAndKey\n} from './doc_helpers'\n\nimport {\n inlineHTMLToJSON,\n inlineJSONToHTML\n} from './convert'\n\nexport function generateStyleFunction(tagName, editState) {\n let activeStyle = editState.currentlyActiveStyles?.find(style => style.type === tagName)\n let newlyActive = editState.currentlyEditing?.newlyActiveStyles?.find(style => style.type === tagName)\n let newlyInactive = editState.currentlyEditing?.newlyInactiveStyles?.find(style => style.type === tagName)\n\n return () => {\n let currentlyEditing = editState.currentlyEditing\n\n if (activeStyle) {\n if (isCollapsedRange(currentlyEditing.range)) {\n if (newlyInactive) {\n editState.setCurrentlyEditing({...currentlyEditing,\n newlyInactiveStyles: (currentlyEditing.newlyInactiveStyles || []).filter(style => style.type !== tagName)\n })\n } else {\n editState.setCurrentlyEditing({...currentlyEditing,\n newlyInactiveStyles: (currentlyEditing.newlyInactiveStyles || []).concat([{type: tagName}])\n })\n }\n } else {\n editState.modifyEditJSON(json => {\n return modifyNodeValueByUIDAndKey(json, currentlyEditing.uid, currentlyEditing.key, inlineHTML => {\n return inlineJSONToHTML(removeStyle(inlineHTMLToJSON(inlineHTML), tagName, currentlyEditing.range))\n })\n })\n }\n } else {\n if (isCollapsedRange(currentlyEditing.range)) {\n if (newlyActive) {\n editState.setCurrentlyEditing({...currentlyEditing,\n newlyActiveStyles: (currentlyEditing.newlyActiveStyles || []).filter(style => style.type !== tagName)\n })\n } else {\n editState.setCurrentlyEditing({...currentlyEditing,\n newlyActiveStyles: (currentlyEditing.newlyActiveStyles || []).concat([{type: tagName}])\n })\n }\n } else {\n editState.modifyEditJSON(json => {\n return modifyNodeValueByUIDAndKey(json, currentlyEditing.uid, currentlyEditing.key, inlineHTML => {\n return inlineJSONToHTML(addStyle(inlineHTMLToJSON(inlineHTML), tagName, currentlyEditing.range))\n })\n })\n }\n }\n }\n}\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n}();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n return enhancer(createStore)(reducer, preloadedState);\n }\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changedâ€. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n function observable() {\n var _ref;\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n}\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n var shapeAssertionError;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n var hasChanged = false;\n var nextState = {};\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n var boundActionCreators = {};\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };","import {\n generateItemsReducer,\n generateActions,\n itemFromStore,\n itemEditDataFromStore,\n itemLocalDataFromStore,\n} from 'reducers/item'\n\nconst itemType = \"documentUserState\"\nconst endpoint = \"document_user_states/\"\n\nexport const documentUserStatesReducer = generateItemsReducer(itemType)\n\nexport const {\n seedDocumentUserState,\n createDocumentUserState,\n readDocumentUserState,\n updateDocumentUserState,\n destroyDocumentUserState,\n setEditFieldsDocumentUserState,\n resetEditFieldsDocumentUserState,\n setLocalFieldsDocumentUserState,\n resetLocalFieldsDocumentUserState,\n} = generateActions(itemType, endpoint)\n\nexport const documentUserStateFromStore = (store, id) => itemFromStore(store, itemType, id)\nexport const documentUserStateEditDataFromStore = (store, id) => itemEditDataFromStore(store, itemType, id)\nexport const documentUserStateLocalDataFromStore = (store, id) => itemLocalDataFromStore(store, itemType, id)\n","import { combineReducers } from 'redux'\n\nimport { activityUserStatesReducer as activityUserStates } from 'reducers/activity_user_state'\nimport { activitiesReducer as activities } from 'reducers/activity'\nimport { documentSetDocumentStatesReducer as documentSetDocumentStates } from 'reducers/document_set_document_state'\nimport { documentUserStatesReducer as documentUserStates } from 'reducers/document_user_state'\nimport { documentsReducer as documents } from 'reducers/document'\nimport { listsReducer as lists } from 'reducers/list'\nimport { versionsReducer as versions } from 'reducers/version'\n\nexport default combineReducers({\n activityUserStates,\n activities,\n documentSetDocumentStates,\n documentUserStates,\n documents,\n lists,\n versions,\n})\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n return next(action);\n };\n };\n };\n return middleware;\n}\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import { applyMiddleware, createStore } from 'redux'\n\nimport reducer from 'reducers/index'\n\nimport thunk from 'redux-thunk'\nimport promise from 'redux-promise-middleware'\n// import { createLogger } from 'redux-logger'\n\nconst middleware = applyMiddleware(\n thunk,\n promise,\n // createLogger({})\n)\n\nexport default function store() {return createStore(reducer, middleware)}\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nexport default function isPromise(value) {\n if (value !== null && _typeof(value) === 'object') {\n return value && typeof value.then === 'function';\n }\n return false;\n}","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n module.paths = [];\n // module.parent = undefined by default\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function () {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function () {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n return module;\n};","/**\n * @copyright 2015, Andrey Popp <8mayday@gmail.com>\n *\n * The decorator may be used on classes or methods\n * ```\n * @autobind\n * class FullBound {}\n *\n * class PartBound {\n * @autobind\n * method () {}\n * }\n * ```\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = autobind;\nfunction autobind() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1) {\n return boundClass.apply(undefined, args);\n } else {\n return boundMethod.apply(undefined, args);\n }\n}\n\n/**\n * Use boundMethod to bind all methods on the target.prototype\n */\nfunction boundClass(target) {\n // (Using reflect to get all keys including symbols)\n var keys = undefined;\n // Use Reflect if exists\n if (typeof Reflect !== 'undefined' && typeof Reflect.ownKeys === 'function') {\n keys = Reflect.ownKeys(target.prototype);\n } else {\n keys = Object.getOwnPropertyNames(target.prototype);\n // use symbols if support is provided\n if (typeof Object.getOwnPropertySymbols === 'function') {\n keys = keys.concat(Object.getOwnPropertySymbols(target.prototype));\n }\n }\n keys.forEach(function (key) {\n // Ignore special case target method\n if (key === 'constructor') {\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(target.prototype, key);\n\n // Only methods need binding\n if (typeof descriptor.value === 'function') {\n Object.defineProperty(target.prototype, key, boundMethod(target, key, descriptor));\n }\n });\n return target;\n}\n\n/**\n * Return a descriptor removing the value and returning a getter\n * The getter will return a .bind version of the function\n * and memoize the result against a symbol on the instance\n */\nfunction boundMethod(target, key, descriptor) {\n var fn = descriptor.value;\n if (typeof fn !== 'function') {\n throw new Error('@autobind decorator can only be applied to methods not: ' + typeof fn);\n }\n\n // In IE11 calling Object.defineProperty has a side-effect of evaluating the\n // getter for the property which is being replaced. This causes infinite\n // recursion and an \"Out of stack space\" error.\n var definingProperty = false;\n return {\n configurable: true,\n get: function get() {\n if (definingProperty || this === target.prototype || this.hasOwnProperty(key)) {\n return fn;\n }\n var boundFn = fn.bind(this);\n definingProperty = true;\n Object.defineProperty(this, key, {\n value: boundFn,\n configurable: true,\n writable: true\n });\n definingProperty = false;\n return boundFn;\n }\n };\n}\nmodule.exports = exports['default'];","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n return (encoder || JSON.stringify)(rawValue);\n}\nvar defaults = {\n transitional: transitionalDefaults,\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n var isFileList;\n if ((isFileList = utils.isFileList(data)) || isObjectPayload && contentType === 'multipart/form-data') {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {\n 'files[]': data\n } : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n if (strictJSONParsing || forcedJSONParsing && utils.isString(data) && data.length) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n return data;\n }],\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n maxBodyLength: -1,\n env: {\n FormData: require('./env/FormData')\n },\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = style;\nvar _camelizeStyle = _interopRequireDefault(require(\"../util/camelizeStyle\"));\nvar _hyphenateStyle = _interopRequireDefault(require(\"../util/hyphenateStyle\"));\nvar _getComputedStyle2 = _interopRequireDefault(require(\"./getComputedStyle\"));\nvar _removeStyle = _interopRequireDefault(require(\"./removeStyle\"));\nvar _properties = require(\"../transition/properties\");\nvar _isTransform = _interopRequireDefault(require(\"../transition/isTransform\"));\nfunction style(node, property, value) {\n var css = '';\n var transforms = '';\n var props = property;\n if (typeof property === 'string') {\n if (value === undefined) {\n return node.style[(0, _camelizeStyle.default)(property)] || (0, _getComputedStyle2.default)(node).getPropertyValue((0, _hyphenateStyle.default)(property));\n } else {\n (props = {})[property] = value;\n }\n }\n Object.keys(props).forEach(function (key) {\n var value = props[key];\n if (!value && value !== 0) {\n (0, _removeStyle.default)(node, (0, _hyphenateStyle.default)(key));\n } else if ((0, _isTransform.default)(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += (0, _hyphenateStyle.default)(key) + \": \" + value + \";\";\n }\n });\n if (transforms) {\n css += _properties.transform + \": \" + transforms + \";\";\n }\n node.style.cssText += ';' + css;\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = exports.animationEnd = exports.animationDelay = exports.animationTiming = exports.animationDuration = exports.animationName = exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = void 0;\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\nvar transform = 'transform';\nexports.transform = transform;\nvar prefix, transitionEnd, animationEnd;\nexports.animationEnd = animationEnd;\nexports.transitionEnd = transitionEnd;\nvar transitionProperty, transitionDuration, transitionTiming, transitionDelay;\nexports.transitionDelay = transitionDelay;\nexports.transitionTiming = transitionTiming;\nexports.transitionDuration = transitionDuration;\nexports.transitionProperty = transitionProperty;\nvar animationName, animationDuration, animationTiming, animationDelay;\nexports.animationDelay = animationDelay;\nexports.animationTiming = animationTiming;\nexports.animationDuration = animationDuration;\nexports.animationName = animationName;\nif (_inDOM.default) {\n var _getTransitionPropert = getTransitionProperties();\n prefix = _getTransitionPropert.prefix;\n exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd;\n exports.animationEnd = animationEnd = _getTransitionPropert.animationEnd;\n exports.transform = transform = prefix + \"-\" + transform;\n exports.transitionProperty = transitionProperty = prefix + \"-transition-property\";\n exports.transitionDuration = transitionDuration = prefix + \"-transition-duration\";\n exports.transitionDelay = transitionDelay = prefix + \"-transition-delay\";\n exports.transitionTiming = transitionTiming = prefix + \"-transition-timing-function\";\n exports.animationName = animationName = prefix + \"-animation-name\";\n exports.animationDuration = animationDuration = prefix + \"-animation-duration\";\n exports.animationTiming = animationTiming = prefix + \"-animation-delay\";\n exports.animationDelay = animationDelay = prefix + \"-animation-timing-function\";\n}\nvar _default = {\n transform: transform,\n end: transitionEnd,\n property: transitionProperty,\n timing: transitionTiming,\n delay: transitionDelay,\n duration: transitionDuration\n};\nexports.default = _default;\nfunction getTransitionProperties() {\n var style = document.createElement('div').style;\n var vendorMap = {\n O: function O(e) {\n return \"o\" + e.toLowerCase();\n },\n Moz: function Moz(e) {\n return e.toLowerCase();\n },\n Webkit: function Webkit(e) {\n return \"webkit\" + e;\n },\n ms: function ms(e) {\n return \"MS\" + e;\n }\n };\n var vendors = Object.keys(vendorMap);\n var transitionEnd, animationEnd;\n var prefix = '';\n for (var i = 0; i < vendors.length; i++) {\n var vendor = vendors[i];\n if (vendor + \"TransitionProperty\" in style) {\n prefix = \"-\" + vendor.toLowerCase();\n transitionEnd = vendorMap[vendor]('TransitionEnd');\n animationEnd = vendorMap[vendor]('AnimationEnd');\n break;\n }\n }\n if (!transitionEnd && 'transitionProperty' in style) transitionEnd = 'transitionend';\n if (!animationEnd && 'animationName' in style) animationEnd = 'animationend';\n style = null;\n return {\n animationEnd: animationEnd,\n transitionEnd: transitionEnd,\n prefix: prefix\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nvar _spyOnComponent = _interopRequireDefault(require(\"spy-on-component\"));\nexports.spyOnComponent = _spyOnComponent.default;\nvar _autoFocus = _interopRequireDefault(require(\"./autoFocus\"));\nexports.autoFocus = _autoFocus.default;\nvar _focusManager = _interopRequireDefault(require(\"./focusManager\"));\nexports.focusManager = _focusManager.default;\nvar _mountManager = _interopRequireDefault(require(\"./mountManager\"));\nexports.mountManager = _mountManager.default;\nvar _timeoutManager = _interopRequireDefault(require(\"./timeoutManager\"));\nexports.timeoutManager = _timeoutManager.default;\nvar _mixin = _interopRequireDefault(require(\"./mixin\"));\nexports.mixin = _mixin.default;\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = spyOnMount;\nvar _spyOnComponent = _interopRequireDefault(require(\"spy-on-component\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction spyOnMount(componentInstance) {\n var mounted = true;\n (0, _spyOnComponent.default)(componentInstance, {\n componentWillUnmount: function componentWillUnmount() {\n mounted = false;\n }\n });\n return function () {\n return mounted;\n };\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.getMessages = getMessages;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar messages = {\n moveBack: 'Navigate back',\n moveForward: 'Navigate forward',\n dateButton: 'Select date',\n timeButton: 'Select time',\n openCombobox: 'open combobox',\n openDropdown: 'open dropdown',\n placeholder: '',\n filterPlaceholder: '',\n emptyList: 'There are no items in this list',\n emptyFilter: 'The filter returned no results',\n createOption: function createOption(_ref) {\n var searchTerm = _ref.searchTerm;\n return [' Create option', searchTerm && ' ', searchTerm && _react.default.createElement(\"strong\", {\n key: \"_\"\n }, \"\\\"\" + searchTerm + \"\\\"\")];\n },\n tagsLabel: 'Selected items',\n removeLabel: 'Remove selected item',\n noneSelected: 'no selected items',\n selectedItems: function selectedItems(labels) {\n return \"Selected items: \" + labels.join(', ');\n },\n // number\n increment: 'Increment value',\n decrement: 'Decrement value'\n};\nfunction getMessages(defaults) {\n if (defaults === void 0) {\n defaults = {};\n }\n var processed = {};\n Object.keys(messages).forEach(function (message) {\n var value = defaults[message];\n if (value == null) value = messages[message];\n processed[message] = typeof value === 'function' ? value : function () {\n return value;\n };\n });\n return processed;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.widgetEditable = exports.widgetEnabled = exports.isInDisabledFieldset = void 0;\nvar _reactDom = require(\"react-dom\");\nvar _matches = _interopRequireDefault(require(\"dom-helpers/query/matches\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar isInDisabledFieldset = function isInDisabledFieldset(inst) {\n var node;\n try {\n node = (0, _reactDom.findDOMNode)(inst);\n } catch (err) {\n /* ignore */\n }\n return !!node && (0, _matches.default)(node, 'fieldset[disabled] *');\n};\nexports.isInDisabledFieldset = isInDisabledFieldset;\nvar widgetEnabled = interactionDecorator(true);\nexports.widgetEnabled = widgetEnabled;\nvar widgetEditable = interactionDecorator(false);\nexports.widgetEditable = widgetEditable;\nfunction interactionDecorator(disabledOnly) {\n function wrap(method) {\n return function decoratedMethod() {\n var _this$props = this.props,\n disabled = _this$props.disabled,\n readOnly = _this$props.readOnly;\n disabled = isInDisabledFieldset(this) || disabled == true || !disabledOnly && readOnly === true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!disabled) return method.apply(this, args);\n };\n }\n return function decorate(target, key, desc) {\n if (desc.initializer) {\n var init = desc.initializer;\n desc.initializer = function () {\n return wrap(init.call(this)).bind(this);\n };\n } else desc.value = wrap(desc.value);\n return desc;\n };\n}","// Assume className is simple and can be found at top-level (window).\n// Fallback to eval to handle cases like 'My.React.ComponentName'.\n// Also, try to gracefully import Babel 6 style default exports\nvar topLevel = typeof window === \"undefined\" ? this : window;\nmodule.exports = function (className) {\n var constructor;\n // Try to access the class globally first\n constructor = topLevel[className];\n\n // If that didn't work, try eval\n if (!constructor) {\n constructor = eval(className);\n }\n\n // Lastly, if there is a default attribute try that\n if (constructor && constructor['default']) {\n constructor = constructor['default'];\n }\n return constructor;\n};","// Load React components by requiring them from \"components/\", for example:\n//\n// - \"pages/index\" -> `require(\"components/pages/index\")`\n// - \"pages/show.Header\" -> `require(\"components/pages/show\").Header`\n// - \"pages/show.Body.Content\" -> `require(\"components/pages/show\").Body.Content`\n//\nmodule.exports = function (reqctx) {\n return function (className) {\n var parts = className.split(\".\");\n var filename = parts.shift();\n var keys = parts;\n // Load the module:\n var component = reqctx(\"./\" + filename);\n // Then access each key:\n keys.forEach(function (k) {\n component = component[k];\n });\n // support `export default`\n if (component.__esModule) {\n component = component[\"default\"];\n }\n return component;\n };\n};","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\nmodule.exports = isObjectLike;","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\nmodule.exports = getNative;","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n var keys = getOwnPropertyNames(sourceComponent);\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n return targetComponent;\n}\nmodule.exports = hoistNonReactStatics;","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar isArray = function isArray(arr) {\n if (typeof Array.isArray === 'function') {\n return Array.isArray(arr);\n }\n return toStr.call(arr) === '[object Array]';\n};\nvar isPlainObject = function isPlainObject(obj) {\n if (!obj || toStr.call(obj) !== '[object Object]') {\n return false;\n }\n var hasOwnConstructor = hasOwn.call(obj, 'constructor');\n var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n // Not own constructor property must be Object\n if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n return false;\n }\n\n // Own properties are enumerated firstly, so to speed up,\n // if last one is own, then all properties are own.\n var key;\n for (key in obj) {/**/}\n return typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n if (defineProperty && options.name === '__proto__') {\n defineProperty(target, options.name, {\n enumerable: true,\n configurable: true,\n value: options.newValue,\n writable: true\n });\n } else {\n target[options.name] = options.newValue;\n }\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n if (name === '__proto__') {\n if (!hasOwn.call(obj, name)) {\n return void 0;\n } else if (gOPD) {\n // In early versions of node, obj['__proto__'] is buggy when obj has\n // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n return gOPD(obj, name).value;\n }\n }\n return obj[name];\n};\nmodule.exports = function extend() {\n var options, name, src, copy, copyIsArray, clone;\n var target = arguments[0];\n var i = 1;\n var length = arguments.length;\n var deep = false;\n\n // Handle a deep copy situation\n if (typeof target === 'boolean') {\n deep = target;\n target = arguments[1] || {};\n // skip the boolean and the target\n i = 2;\n }\n if (target == null || typeof target !== 'object' && typeof target !== 'function') {\n target = {};\n }\n for (; i < length; ++i) {\n options = arguments[i];\n // Only deal with non-null/undefined values\n if (options != null) {\n // Extend the base object\n for (name in options) {\n src = getProperty(target, name);\n copy = getProperty(options, name);\n\n // Prevent never-ending loop\n if (target !== copy) {\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && isArray(src) ? src : [];\n } else {\n clone = src && isPlainObject(src) ? src : {};\n }\n\n // Never move original objects, clone them\n setProperty(target, {\n name: name,\n newValue: extend(deep, clone, copy)\n });\n\n // Don't bring in undefined values\n } else if (typeof copy !== 'undefined') {\n setProperty(target, {\n name: name,\n newValue: copy\n });\n }\n }\n }\n }\n }\n\n // Return the modified object\n return target;\n};","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\nmodule.exports = baseGetTag;","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\nmodule.exports = toString;","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\nmodule.exports = isArrayLike;","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1,\n // Maandag is die eerste dag van die week.\n doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n }\n });\n return af;\n});","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: 'Ù¡',\n 2: 'Ù¢',\n 3: 'Ù£',\n 4: 'Ù¤',\n 5: 'Ù¥',\n 6: 'Ù¦',\n 7: 'Ù§',\n 8: 'Ù¨',\n 9: 'Ù©',\n 0: 'Ù '\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0'\n },\n pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n },\n plurals = {\n s: ['أقل من ثانية', 'ثانية واØدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m: ['أقل من دقيقة', 'دقيقة واØدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h: ['أقل من ساعة', 'ساعة واØدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['أقل من يوم', 'يوم واØد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M: ['أقل من شهر', 'شهر واØد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y: ['أقل من عام', 'عام واØد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = ['يناير', 'Ùبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوÙمبر', 'ديسمبر'];\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n return ar;\n});","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n },\n plurals = {\n s: ['أقل من ثانية', 'ثانية واØدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m: ['أقل من دقيقة', 'دقيقة واØدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h: ['أقل من ساعة', 'ساعة واØدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['أقل من يوم', 'يوم واØد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M: ['أقل من شهر', 'شهر واØد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y: ['أقل من عام', 'عام واØد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = ['جانÙÙŠ', 'ÙÙŠÙري', 'مارس', 'Ø£Ùريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', 'نوÙمبر', 'ديسمبر'];\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y')\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return arDz;\n});","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays: 'الأØد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'اØد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n return arKw;\n});","//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0'\n },\n pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n },\n plurals = {\n s: ['أقل من ثانية', 'ثانية واØدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m: ['أقل من دقيقة', 'دقيقة واØدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h: ['أقل من ساعة', 'ساعة واØدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['أقل من يوم', 'يوم واØد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M: ['أقل من شهر', 'شهر واØد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y: ['أقل من عام', 'عام واØد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = ['يناير', 'Ùبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوÙمبر', 'ديسمبر'];\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n return arLy;\n});","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'اØد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return arMa;\n});","//! moment.js locale configuration\n//! locale : Arabic (Palestine) [ar-ps]\n//! author : Majd Al-Shihabi : https://github.com/majdal\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: 'Ù¡',\n 2: 'Ù¢',\n 3: 'Ù£',\n 4: 'Ù¤',\n 5: 'Ù¥',\n 6: 'Ù¦',\n 7: 'Ù§',\n 8: 'Ù¨',\n 9: 'Ù©',\n 0: 'Ù '\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0'\n };\n var arPs = moment.defineLocale('ar-ps', {\n months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_Øزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split('_'),\n monthsShort: 'ك٢_شباط_آذار_نيسان_أيّار_Øزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n preparse: function (string) {\n return string.replace(/[٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).split('') // reversed since negative lookbehind not supported everywhere\n .reverse().join('').replace(/[١٢](?![\\u062a\\u0643])/g, function (match) {\n return numberMap[match];\n }).split('').reverse().join('').replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n return arPs;\n});","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: 'Ù¡',\n 2: 'Ù¢',\n 3: 'Ù£',\n 4: 'Ù¤',\n 5: 'Ù¥',\n 6: 'Ù¦',\n 7: 'Ù§',\n 8: 'Ù¨',\n 9: 'Ù©',\n 0: 'Ù '\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0'\n };\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n monthsShort: 'يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n return arSa;\n});","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n monthsShort: 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return arTn;\n});","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı'\n };\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays: 'Bazar_Bazar ertÉ™si_ÇərÅŸÉ™nbÉ™ axÅŸamı_ÇərÅŸÉ™nbÉ™_CümÉ™ axÅŸamı_CümÉ™_ŞənbÉ™'.split('_'),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gÉ™lÉ™n hÉ™ftÉ™] dddd [saat] LT',\n lastDay: '[dünÉ™n] LT',\n lastWeek: '[keçən hÉ™ftÉ™] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s É™vvÉ™l',\n s: 'bir neçə saniyÉ™',\n ss: '%d saniyÉ™',\n m: 'bir dÉ™qiqÉ™',\n mm: '%d dÉ™qiqÉ™',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il'\n },\n meridiemParse: /gecÉ™|sÉ™hÉ™r|gündüz|axÅŸam/,\n isPM: function (input) {\n return /^(gündüz|axÅŸam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecÉ™';\n } else if (hour < 12) {\n return 'sÉ™hÉ™r';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axÅŸam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return az;\n});","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунды_Ñекунд' : 'Ñекунду_Ñекунды_Ñекунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'меÑÑц_меÑÑцы_меÑÑцаў',\n yy: 'год_гады_гадоў'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var be = moment.defineLocale('be', {\n months: {\n format: 'ÑтудзенÑ_лютага_Ñакавіка_краÑавіка_траўнÑ_чÑрвенÑ_ліпенÑ_жніўнÑ_вераÑнÑ_каÑтрычніка_ліÑтапада_ÑнежнÑ'.split('_'),\n standalone: 'Ñтудзень_люты_Ñакавік_краÑавік_травень_чÑрвень_ліпень_жнівень_вераÑень_каÑтрычнік_ліÑтапад_Ñнежань'.split('_')\n },\n monthsShort: 'Ñтуд_лют_Ñак_краÑ_трав_чÑрв_ліп_жнів_вер_каÑÑ‚_ліÑÑ‚_Ñнеж'.split('_'),\n weekdays: {\n format: 'нÑдзелю_панÑдзелак_аўторак_Ñераду_чацвер_пÑтніцу_Ñуботу'.split('_'),\n standalone: 'нÑдзелÑ_панÑдзелак_аўторак_Ñерада_чацвер_пÑтніца_Ñубота'.split('_'),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наÑтупную)? ?\\] ?dddd/\n },\n weekdaysShort: 'нд_пн_ат_ÑÑ€_чц_пт_Ñб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ÑÑ€_чц_пт_Ñб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm'\n },\n calendar: {\n sameDay: '[Ð¡Ñ‘Ð½Ð½Ñ Ñž] LT',\n nextDay: '[Заўтра Ñž] LT',\n lastDay: '[Учора Ñž] LT',\n nextWeek: function () {\n return '[У] dddd [Ñž] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [Ñž] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [Ñž] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі Ñекунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'меÑÑц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural\n },\n meridiemParse: /ночы|раніцы|днÑ|вечара/,\n isPM: function (input) {\n return /^(днÑ|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(Ñ–|Ñ‹|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) && number % 100 !== 12 && number % 100 !== 13 ? number + '-Ñ–' : number + '-Ñ‹';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return be;\n});","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var bg = moment.defineLocale('bg', {\n months: 'Ñнуари_февруари_март_април_май_юни_юли_авгуÑÑ‚_Ñептември_октомври_ноември_декември'.split('_'),\n monthsShort: 'Ñну_фев_мар_апр_май_юни_юли_авг_Ñеп_окт_ное_дек'.split('_'),\n weekdays: 'неделÑ_понеделник_вторник_ÑÑ€Ñда_четвъртък_петък_Ñъбота'.split('_'),\n weekdaysShort: 'нед_пон_вто_ÑÑ€Ñ_чет_пет_Ñъб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Ð”Ð½ÐµÑ Ð²] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[МиналиÑ] dddd [в] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Ñлед %s',\n past: 'преди %s',\n s: 'нÑколко Ñекунди',\n ss: '%d Ñекунди',\n m: 'минута',\n mm: '%d минути',\n h: 'чаÑ',\n hh: '%d чаÑа',\n d: 'ден',\n dd: '%d дена',\n w: 'Ñедмица',\n ww: '%d Ñедмици',\n M: 'меÑец',\n MM: '%d меÑеца',\n y: 'година',\n yy: '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return bg;\n});","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_MÉ›kalo_ZuwÉ›nkalo_Zuluyekalo_Utikalo_SÉ›tanburukalo_É”kutÉ”burukalo_Nowanburukalo_Desanburukalo'.split('_'),\n monthsShort: 'Zan_Few_Mar_Awi_MÉ›_Zuw_Zul_Uti_SÉ›t_É”ku_Now_Des'.split('_'),\n weekdays: 'Kari_NtÉ›nÉ›n_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_NtÉ›_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lÉ›rÉ›] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lÉ›rÉ›] HH:mm'\n },\n calendar: {\n sameDay: '[Bi lÉ›rÉ›] LT',\n nextDay: '[Sini lÉ›rÉ›] LT',\n nextWeek: 'dddd [don lÉ›rÉ›] LT',\n lastDay: '[Kunu lÉ›rÉ›] LT',\n lastWeek: 'dddd [tÉ›mÉ›nen lÉ›rÉ›] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s kÉ”nÉ”',\n past: 'a bÉ› %s bÉ”',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lÉ›rÉ› kelen',\n hh: 'lÉ›rÉ› %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return bm;\n});","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: 'à§',\n 8: '৮',\n 9: '৯',\n 0: '০'\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n 'à§': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n var bn = moment.defineLocale('bn', {\n months: 'জানà§à§Ÿà¦¾à¦°à¦¿_ফেবà§à¦°à§à§Ÿà¦¾à¦°à¦¿_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿà§‡à¦®à§à¦¬à¦°_অকà§à¦Ÿà§‹à¦¬à¦°_নà¦à§‡à¦®à§à¦¬à¦°_ডিসেমà§à¦¬à¦°'.split('_'),\n monthsShort: 'জানà§_ফেবà§à¦°à§_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿ_অকà§à¦Ÿà§‹_নà¦à§‡_ডিসে'.split('_'),\n weekdays: 'রবিবার_সোমবার_মঙà§à¦—লবার_বà§à¦§à¦¬à¦¾à¦°_বৃহসà§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦•à§à¦°à¦¬à¦¾à¦°_শনিবার'.split('_'),\n weekdaysShort: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহসà§à¦ªà¦¤à¦¿_শà§à¦•à§à¦°_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহ_শà§à¦•à§à¦°_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়'\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেনà§à¦¡',\n ss: '%d সেকেনà§à¦¡',\n m: 'à¦à¦• মিনিট',\n mm: '%d মিনিট',\n h: 'à¦à¦• ঘনà§à¦Ÿà¦¾',\n hh: '%d ঘনà§à¦Ÿà¦¾',\n d: 'à¦à¦• দিন',\n dd: '%d দিন',\n M: 'à¦à¦• মাস',\n MM: '%d মাস',\n y: 'à¦à¦• বছর',\n yy: '%d বছর'\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দà§à¦ªà§à¦°|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত' && hour >= 4 || meridiem === 'দà§à¦ªà§à¦°' && hour < 5 || meridiem === 'বিকাল') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দà§à¦ªà§à¦°';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n return bn;\n});","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: 'à§',\n 8: '৮',\n 9: '৯',\n 0: '০'\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n 'à§': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানà§à§Ÿà¦¾à¦°à¦¿_ফেবà§à¦°à§à§Ÿà¦¾à¦°à¦¿_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿà§‡à¦®à§à¦¬à¦°_অকà§à¦Ÿà§‹à¦¬à¦°_নà¦à§‡à¦®à§à¦¬à¦°_ডিসেমà§à¦¬à¦°'.split('_'),\n monthsShort: 'জানà§_ফেবà§à¦°à§_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿ_অকà§à¦Ÿà§‹_নà¦à§‡_ডিসে'.split('_'),\n weekdays: 'রবিবার_সোমবার_মঙà§à¦—লবার_বà§à¦§à¦¬à¦¾à¦°_বৃহসà§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦•à§à¦°à¦¬à¦¾à¦°_শনিবার'.split('_'),\n weekdaysShort: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহসà§à¦ªà¦¤à¦¿_শà§à¦•à§à¦°_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহ_শà§à¦•à§à¦°_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়'\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেনà§à¦¡',\n ss: '%d সেকেনà§à¦¡',\n m: 'à¦à¦• মিনিট',\n mm: '%d মিনিট',\n h: 'à¦à¦• ঘনà§à¦Ÿà¦¾',\n hh: '%d ঘনà§à¦Ÿà¦¾',\n d: 'à¦à¦• দিন',\n dd: '%d দিন',\n M: 'à¦à¦• মাস',\n MM: '%d মাস',\n y: 'à¦à¦• বছর',\n yy: '%d বছর'\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|à¦à§‹à¦°|সকাল|দà§à¦ªà§à¦°|বিকাল|সনà§à¦§à§à¦¯à¦¾|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'à¦à§‹à¦°') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দà§à¦ªà§à¦°') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সনà§à¦§à§à¦¯à¦¾') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'à¦à§‹à¦°';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দà§à¦ªà§à¦°';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সনà§à¦§à§à¦¯à¦¾';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n return bnBd;\n});","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠'\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0'\n };\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split('_'),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[à½à¼‹à½¦à½„] LT',\n lastWeek: '[བདུན་ཕྲག་མà½à½ ་མ] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སà¾à½¢à¼‹à½†à¼',\n m: 'སà¾à½¢à¼‹à½˜à¼‹à½‚ཅིག',\n mm: '%d སà¾à½¢à¼‹à½˜',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ'\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'མཚན་མོ' && hour >= 4 || meridiem === 'ཉིན་གུང' && hour < 5 || meridiem === 'དགོང་དག') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n return bo;\n});","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh'\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z'\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n var monthsParse = [/^gen/i, /^c[ʼ\\']hwe/i, /^meu/i, /^ebr/i, /^mae/i, /^(mez|eve)/i, /^gou/i, /^eos/i, /^gwe/i, /^her/i, /^du/i, /^ker/i],\n monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [/^sul/i, /^lun/i, /^meurzh/i, /^merc[ʼ\\']her/i, /^yaou/i, /^gwener/i, /^sadorn/i],\n shortWeekdaysParse = [/^Sul/i, /^Lun/i, /^Meu/i, /^Mer/i, /^Yao/i, /^Gwe/i, /^Sad/i],\n minWeekdaysParse = [/^Su/i, /^Lu/i, /^Me([^r]|$)/i, /^Mer/i, /^Ya/i, /^Gw/i, /^Sa/i];\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./,\n // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n }\n });\n return br;\n});","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! author : Rasid Redzic : https://github.com/rasidre\n//! based on (hr) translation by Bojan Marković\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 'm':\n return withoutSuffix ? 'jedna minuta' : isFuture ? 'jednu minutu' : 'jedne minute';\n }\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jedan sat';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[proÅ¡lu] dddd [u] LT';\n case 6:\n return '[proÅ¡le] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ¡li] dddd [u] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: processRelativeTime,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return bs;\n});","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ca = moment.defineLocale('ca', {\n months: {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split('_'),\n isFormat: /D[oD]?(\\s)+MMMM/\n },\n monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm'\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return '[el] dddd [passat a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: \"d'aquà %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return ca;\n});","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = {\n standalone: 'leden_únor_bÅ™ezen_duben_kvÄ›ten_Äerven_Äervenec_srpen_zářÃ_Å™Ãjen_listopad_prosinec'.split('_'),\n format: 'ledna_února_bÅ™ezna_dubna_kvÄ›tna_Äervna_Äervence_srpna_zářÃ_Å™Ãjna_listopadu_prosince'.split('_'),\n isFormat: /DD?[o.]?(\\[[^\\[\\]]*\\]|\\s)+MMMM/\n },\n monthsShort = 'led_úno_bÅ™e_dub_kvÄ›_Ävn_Ävc_srp_zář_Å™Ãj_lis_pro'.split('_'),\n monthsParse = [/^led/i, /^úno/i, /^bÅ™e/i, /^dub/i, /^kvÄ›/i, /^(Ävn|Äerven$|Äervna)/i, /^(Ävc|Äervenec|Äervence)/i, /^srp/i, /^zář/i, /^Å™Ãj/i, /^lis/i, /^pro/i],\n // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched.\n // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'.\n monthsRegex = /^(leden|únor|bÅ™ezen|duben|kvÄ›ten|Äervenec|Äervence|Äerven|Äervna|srpen|zářÃ|Å™Ãjen|listopad|prosinec|led|úno|bÅ™e|dub|kvÄ›|Ävn|Ävc|srp|zář|Å™Ãj|lis|pro)/i;\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss':\n // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm':\n // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm':\n // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h':\n // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh':\n // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd':\n // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd':\n // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dnÃ');\n } else {\n return result + 'dny';\n }\n case 'M':\n // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mÄ›sÃc' : 'mÄ›sÃcem';\n case 'MM':\n // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mÄ›sÃce' : 'mÄ›sÃců');\n } else {\n return result + 'mÄ›sÃci';\n }\n case 'y':\n // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy':\n // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched.\n // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'.\n monthsStrictRegex: /^(leden|ledna|února|únor|bÅ™ezen|bÅ™ezna|duben|dubna|kvÄ›ten|kvÄ›tna|Äervenec|Äervence|Äerven|Äervna|srpen|srpna|zářÃ|Å™Ãjen|Å™Ãjna|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex: /^(led|úno|bÅ™e|dub|kvÄ›|Ävn|Ävc|srp|zář|Å™Ãj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'nedÄ›le_pondÄ›lÃ_úterý_stÅ™eda_Ätvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_Ät_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_Ät_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY'\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zÃtra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedÄ›li v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve stÅ™edu v] LT';\n case 4:\n return '[ve Ätvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[vÄera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou nedÄ›li v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou stÅ™edu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'pÅ™ed %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return cs;\n});","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑÑ_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),\n monthsShort: 'кӑр_нар_пуш_ака_май_Ò«Ó—Ñ€_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays: 'вырÑарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_Ñрнекун_шӑматкун'.split('_'),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_Ñрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_Ñ‹Ñ‚_юн_кҫ_ÑÑ€_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'\n },\n calendar: {\n sameDay: '[ПаÑн] LT [Ñехетре]',\n nextDay: '[Ыран] LT [Ñехетре]',\n lastDay: '[Ӗнер] LT [Ñехетре]',\n nextWeek: '[ҪитеÑ] dddd LT [Ñехетре]',\n lastWeek: '[Иртнӗ] dddd LT [Ñехетре]',\n sameElse: 'L'\n },\n relativeTime: {\n future: function (output) {\n var affix = /Ñехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';\n return output + affix;\n },\n past: '%s каÑлла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр Ñехет',\n hh: '%d Ñехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return cv;\n});","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = ['', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed',\n // 1af to 10fed\n 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return cy;\n});","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'pÃ¥ dddd [kl.] LT',\n lastDay: '[i gÃ¥r kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'fÃ¥ sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en mÃ¥ned',\n MM: '%d mÃ¥neder',\n y: 'et Ã¥r',\n yy: '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return da;\n});","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return de;\n});","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return deAt;\n});","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return deCh;\n});","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = ['Þ–Þ¬Þ‚ÞªÞ‡Þ¦ÞƒÞ©', 'ÞŠÞ¬Þ„Þ°ÞƒÞªÞ‡Þ¦ÞƒÞ©', 'Þ‰Þ§ÞƒÞ¨Þ—Þª', 'Þ‡ÞÞ•Þ°ÞƒÞ©ÞÞª', 'Þ‰Þ', 'Þ–Þ«Þ‚Þ°', 'Þ–ÞªÞÞ¦Þ‡Þ¨', 'Þ‡Þ¯ÞŽÞ¦ÞÞ°Þ“Þª', 'ÞÞ¬Þ•Þ°Þ“Þ¬Þ‰Þ°Þ„Þ¦ÞƒÞª', 'Þ‡Þ®Þ†Þ°Þ“Þ¯Þ„Þ¦ÞƒÞª', 'Þ‚Þ®ÞˆÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª', 'Þ‘Þ¨ÞÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª'],\n weekdays = ['އާދިއްތަ', 'Þ€Þ¯Þ‰Þ¦', 'Þ‡Þ¦Þ‚Þ°ÞŽÞ§ÞƒÞ¦', 'Þ„ÞªÞ‹Þ¦', 'Þ„ÞªÞƒÞ§Þްފަތި', 'Þ€ÞªÞ†ÞªÞƒÞª', 'Þ€Þ®Þ‚Þ¨Þ€Þ¨ÞƒÞª'];\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'Þ‡Þ§Þ‹Þ¨_Þ€Þ¯Þ‰Þ¦_Þ‡Þ¦Þ‚Þ°_Þ„ÞªÞ‹Þ¦_Þ„ÞªÞƒÞ§_Þ€ÞªÞ†Þª_Þ€Þ®Þ‚Þ¨'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /Þ‰Þ†|Þ‰ÞŠ/,\n isPM: function (input) {\n return 'Þ‰ÞŠ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Þ‰Þ†';\n } else {\n return 'Þ‰ÞŠ';\n }\n },\n calendar: {\n sameDay: '[Þ‰Þ¨Þ‡Þ¦Þ‹Þª] LT',\n nextDay: '[Þ‰Þ§Þ‹Þ¦Þ‰Þ§] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Þ‡Þ¨Þ‡Þ°Þ”Þ¬] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ތެރÞÞŽÞ¦Þ‡Þ¨ %s',\n past: 'Þ†ÞªÞƒÞ¨Þ‚Þ° %s',\n s: 'Þިކުންތުކޮޅެއް',\n ss: 'd% Þިކުންތު',\n m: 'Þ‰Þ¨Þ‚Þ¨Þ“Þ¬Þ‡Þ°',\n mm: 'Þ‰Þ¨Þ‚Þ¨Þ“Þª %d',\n h: 'ÞŽÞ¦Þ‘Þ¨Þ‡Þ¨ÞƒÞ¬Þ‡Þ°',\n hh: 'ÞŽÞ¦Þ‘Þ¨Þ‡Þ¨ÞƒÞª %d',\n d: 'Þ‹ÞªÞˆÞ¦Þ€Þ¬Þ‡Þ°',\n dd: 'Þ‹ÞªÞˆÞ¦ÞÞ° %d',\n M: 'Þ‰Þ¦Þ€Þ¬Þ‡Þ°',\n MM: 'Þ‰Þ¦ÞÞ° %d',\n y: 'Þ‡Þ¦Þ€Þ¦ÞƒÞ¬Þ‡Þ°',\n yy: 'Þ‡Þ¦Þ€Þ¦ÞƒÞª %d'\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 7,\n // Sunday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n return dv;\n});","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n var el = moment.defineLocale('el', {\n monthsNominativeEl: 'ΙανουάÏιος_ΦεβÏουάÏιος_ΜάÏτιος_ΑπÏίλιος_Μάιος_ΙοÏνιος_ΙοÏλιος_ΑÏγουστος_ΣεπτÎμβÏιος_ΟκτώβÏιος_ÎοÎμβÏιος_ΔεκÎμβÏιος'.split('_'),\n monthsGenitiveEl: 'ΙανουαÏίου_ΦεβÏουαÏίου_ΜαÏτίου_ΑπÏιλίου_ΜαÎου_Ιουνίου_Ιουλίου_ΑυγοÏστου_ΣεπτεμβÏίου_ΟκτωβÏίου_ÎοεμβÏίου_ΔεκεμβÏίου'.split('_'),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_ΜαÏ_ΑπÏ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Îοε_Δεκ'.split('_'),\n weekdays: 'ΚυÏιακή_ΔευτÎÏα_ΤÏίτη_ΤετάÏτη_Î Îμπτη_ΠαÏασκευή_Σάββατο'.split('_'),\n weekdaysShort: 'ΚυÏ_Δευ_ΤÏι_Τετ_Πεμ_ΠαÏ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_ΤÏ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'Î Îœ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[Î Îœ]\\.?Îœ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendarEl: {\n sameDay: '[ΣήμεÏα {}] LT',\n nextDay: '[ΑÏÏιο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το Ï€ÏοηγοÏμενο] dddd [{}] LT';\n default:\n return '[την Ï€ÏοηγοÏμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L'\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s Ï€Ïιν',\n s: 'λίγα δευτεÏόλεπτα',\n ss: '%d δευτεÏόλεπτα',\n m: 'Îνα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ÏŽÏα',\n hh: '%d ÏŽÏες',\n d: 'μία μÎÏα',\n dd: '%d μÎÏες',\n M: 'Îνας μήνας',\n MM: '%d μήνες',\n y: 'Îνας χÏόνος',\n yy: '%d χÏόνια'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4st is the first week of the year.\n }\n });\n return el;\n});","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return enAu;\n});","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n });\n return enCa;\n});","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return enGb;\n});","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return enIe;\n});","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n });\n return enIl;\n});","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n return enIn;\n});","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return enNz;\n});","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return enSg;\n});","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅgusto_septembro_oktobro_novembro_decembro'.split('_'),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aÅg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaÅdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaÅ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm'\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[HodiaÅ je] LT',\n nextDay: '[MorgaÅ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[HieraÅ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaÅ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago',\n //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return eo;\n});","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurà : https://github.com/julionc\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida'\n });\n return es;\n});","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return esDo;\n});","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida'\n });\n return esMx;\n});","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n return esUs;\n});","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat']\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return et;\n});","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm'\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return eu;\n});","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: 'Û±',\n 2: 'Û²',\n 3: 'Û³',\n 4: 'Û´',\n 5: 'Ûµ',\n 6: 'Û¶',\n 7: 'Û·',\n 8: 'Û¸',\n 9: 'Û¹',\n 0: 'Û°'\n },\n numberMap = {\n 'Û±': '1',\n 'Û²': '2',\n 'Û³': '3',\n 'Û´': '4',\n 'Ûµ': '5',\n 'Û¶': '6',\n 'Û·': '7',\n 'Û¸': '8',\n 'Û¹': '9',\n 'Û°': '0'\n };\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n monthsShort: 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n weekdays: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysShort: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysMin: 'ÛŒ_د_س_Ú†_Ù¾_ج_Ø´'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[Ùردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال'\n },\n preparse: function (string) {\n return string.replace(/[Û°-Û¹]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Ù…/,\n ordinal: '%dÙ…',\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n return fa;\n});","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', numbersPast[7], numbersPast[8], numbersPast[9]];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10 ? isFuture ? numbersFuture[number] : numbersPast[number] : number;\n }\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return fi;\n});","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm'\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return fil;\n});","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_aprÃl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_frÃggjadagur_leygardagur'.split('_'),\n weekdaysShort: 'sun_mán_týs_mik_hós_frÃ_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm'\n },\n calendar: {\n sameDay: '[à dag kl.] LT',\n nextDay: '[à morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[à gjár kl.] LT',\n lastWeek: '[sÃðstu] dddd [kl] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'um %s',\n past: '%s sÃðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tÃmi',\n hh: '%d tÃmar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return fo;\n});","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [/^janv/i, /^févr/i, /^mars/i, /^avr/i, /^mai/i, /^juin/i, /^juil/i, /^août/i, /^sept/i, /^oct/i, /^nov/i, /^déc/i];\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return fr;\n});","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n }\n });\n return frCa;\n});","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return frCh;\n});","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return fy;\n});","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = ['Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Meitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deireadh Fómhair', 'Samhain', 'Nollaig'],\n monthsShort = ['Ean', 'Feabh', 'Márt', 'Aib', 'Beal', 'Meith', 'Iúil', 'Lún', 'M.F.', 'D.F.', 'Samh', 'Noll'],\n weekdays = ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Sathairn'],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mÃ',\n MM: '%d mÃonna',\n y: 'bliain',\n yy: '%d bliain'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return ga;\n});","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = ['Am Faoilleach', 'An Gearran', 'Am Mà rt', 'An Giblean', 'An Cèitean', 'An t-Ã’gmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dà mhair', 'An t-Samhain', 'An Dùbhlachd'],\n monthsShort = ['Faoi', 'Gear', 'Mà rt', 'Gibl', 'Cèit', 'Ã’gmh', 'Iuch', 'Lùn', 'Sult', 'Dà mh', 'Samh', 'Dùbh'],\n weekdays = ['Didòmhnaich', 'Diluain', 'Dimà irt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà ', 'Ci', 'Ar', 'Ha', 'Sa'];\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-mà ireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return gd;\n});","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return gl;\n});","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['à¤à¤•à¤¾ मिणटान', 'à¤à¤• मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['à¤à¤•à¤¾ वरान', 'à¤à¤• वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['à¤à¤•à¤¾ दिसान', 'à¤à¤• दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['à¤à¤•à¤¾ मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨', 'à¤à¤• मà¥à¤¹à¤¯à¤¨à¥‹'],\n MM: [number + ' मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨à¥€', number + ' मà¥à¤¹à¤¯à¤¨à¥‡'],\n y: ['à¤à¤•à¤¾ वरà¥à¤¸à¤¾à¤¨', 'à¤à¤• वरà¥à¤¸'],\n yy: [number + ' वरà¥à¤¸à¤¾à¤‚नी', number + ' वरà¥à¤¸à¤¾à¤‚']\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone: 'जानेवारी_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€_मारà¥à¤š_à¤à¤ªà¥à¤°à¥€à¤²_मे_जून_जà¥à¤²à¤¯_ऑगसà¥à¤Ÿ_सपà¥à¤Ÿà¥‡à¤‚बर_ऑकà¥à¤Ÿà¥‹à¤¬à¤°_नोवà¥à¤¹à¥‡à¤‚बर_डिसेंबर'.split('_'),\n format: 'जानेवारीचà¥à¤¯à¤¾_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€à¤šà¥à¤¯à¤¾_मारà¥à¤šà¤¾à¤šà¥à¤¯à¤¾_à¤à¤ªà¥à¤°à¥€à¤²à¤¾à¤šà¥à¤¯à¤¾_मेयाचà¥à¤¯à¤¾_जूनाचà¥à¤¯à¤¾_जà¥à¤²à¤¯à¤¾à¤šà¥à¤¯à¤¾_ऑगसà¥à¤Ÿà¤¾à¤šà¥à¤¯à¤¾_सपà¥à¤Ÿà¥‡à¤‚बराचà¥à¤¯à¤¾_ऑकà¥à¤Ÿà¥‹à¤¬à¤°à¤¾à¤šà¥à¤¯à¤¾_नोवà¥à¤¹à¥‡à¤‚बराचà¥à¤¯à¤¾_डिसेंबराचà¥à¤¯à¤¾'.split('_'),\n isFormat: /MMMM(\\s)+D[oD]?/\n },\n monthsShort: 'जाने._फेबà¥à¤°à¥._मारà¥à¤š_à¤à¤ªà¥à¤°à¥€._मे_जून_जà¥à¤²._ऑग._सपà¥à¤Ÿà¥‡à¤‚._ऑकà¥à¤Ÿà¥‹._नोवà¥à¤¹à¥‡à¤‚._डिसें.'.split('_'),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बà¥à¤§à¤µà¤¾à¤°_बिरेसà¥à¤¤à¤¾à¤°_सà¥à¤•à¥à¤°à¤¾à¤°_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बà¥à¤§._बà¥à¤°à¥‡à¤¸à¥à¤¤._सà¥à¤•à¥à¤°._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बà¥_बà¥à¤°à¥‡_सà¥_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]'\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फालà¥à¤¯à¤¾à¤‚] LT',\n nextWeek: '[फà¥à¤¡à¤²à¥‹] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week\n doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n }\n });\n return gomDeva;\n});","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam']\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split('_'),\n isFormat: /MMMM(\\s)+D[oD]?/\n },\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]'\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week\n doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n }\n });\n return gomLatn;\n});","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: 'à«©',\n 4: '૪',\n 5: 'à««',\n 6: '૬',\n 7: 'à«',\n 8: 'à«®',\n 9: '૯',\n 0: '૦'\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n 'à«©': '3',\n '૪': '4',\n 'à««': '5',\n '૬': '6',\n 'à«': '7',\n 'à«®': '8',\n '૯': '9',\n '૦': '0'\n };\n var gu = moment.defineLocale('gu', {\n months: 'જાનà«àª¯à«àª†àª°à«€_ફેબà«àª°à«àª†àª°à«€_મારà«àªš_àªàªªà«àª°àª¿àª²_મે_જૂન_જà«àª²àª¾àªˆ_ઑગસà«àªŸ_સપà«àªŸà«‡àª®à«àª¬àª°_ઑકà«àªŸà«àª¬àª°_નવેમà«àª¬àª°_ડિસેમà«àª¬àª°'.split('_'),\n monthsShort: 'જાનà«àª¯à«._ફેબà«àª°à«._મારà«àªš_àªàªªà«àª°àª¿._મે_જૂન_જà«àª²àª¾._ઑગ._સપà«àªŸà«‡._ઑકà«àªŸà«._નવે._ડિસે.'.split('_'),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બà«àª§à«àªµàª¾àª°_ગà«àª°à«àªµàª¾àª°_શà«àª•à«àª°àªµàª¾àª°_શનિવાર'.split('_'),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બà«àª§à«_ગà«àª°à«_શà«àª•à«àª°_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બà«_ગà«_શà«_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગà«àª¯à«‡',\n LTS: 'A h:mm:ss વાગà«àª¯à«‡',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગà«àª¯à«‡',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગà«àª¯à«‡'\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમà«àª• પળો',\n ss: '%d સેકંડ',\n m: 'àªàª• મિનિટ',\n mm: '%d મિનિટ',\n h: 'àªàª• કલાક',\n hh: '%d કલાક',\n d: 'àªàª• દિવસ',\n dd: '%d દિવસ',\n M: 'àªàª• મહિનો',\n MM: '%d મહિનો',\n y: 'àªàª• વરà«àª·',\n yy: '%d વરà«àª·'\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬à«à«®à«¯à«¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n return gu;\n});","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var he = moment.defineLocale('he', {\n months: '×™× ×•×ר_פברו×ר_מרץ_×פריל_מ××™_×™×•× ×™_יולי_×וגוסט_ספטמבר_×וקטובר_× ×•×‘×ž×‘×¨_דצמבר'.split('_'),\n monthsShort: '×™× ×•×³_פבר׳_מרץ_×פר׳_מ××™_×™×•× ×™_יולי_×וג׳_ספט׳_×וק׳_× ×•×‘×³_דצמ׳'.split('_'),\n weekdays: 'ר×שון_×©× ×™_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: '×׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: '×_ב_×’_ד_×”_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[×”×™×•× ×‘Ö¾]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[×תמול ב־]LT',\n lastWeek: '[ביו×] dddd [×”×חרון בשעה] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'בעוד %s',\n past: '×œ×¤× ×™ %s',\n s: 'מספר ×©× ×™×•×ª',\n ss: '%d ×©× ×™×•×ª',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיי×';\n }\n return number + ' שעות';\n },\n d: 'יו×',\n dd: function (number) {\n if (number === 2) {\n return 'יומיי×';\n }\n return number + ' ימי×';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיי×';\n }\n return number + ' חודשי×';\n },\n y: '×©× ×”',\n yy: function (number) {\n if (number === 2) {\n return '×©× ×ª×™×™×';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' ×©× ×”';\n }\n return number + ' ×©× ×™×';\n }\n },\n meridiemParse: /××—×”\"צ|×œ×¤× ×”\"צ|×חרי הצהריי×|×œ×¤× ×™ הצהריי×|×œ×¤× ×•×ª בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(××—×”\"צ|×חרי הצהריי×|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return '×œ×¤× ×•×ª בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? '×œ×¤× ×”\"צ' : '×œ×¤× ×™ הצהריי×';\n } else if (hour < 18) {\n return isLower ? '××—×”\"צ' : '×חרי הצהריי×';\n } else {\n return 'בערב';\n }\n }\n });\n return he;\n});","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: 'à¥',\n 8: '८',\n 9: '९',\n 0: '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n },\n monthsParse = [/^जन/i, /^फ़र|फर/i, /^मारà¥à¤š/i, /^अपà¥à¤°à¥ˆ/i, /^मई/i, /^जून/i, /^जà¥à¤²/i, /^अग/i, /^सितं|सित/i, /^अकà¥à¤Ÿà¥‚/i, /^नव|नवं/i, /^दिसं|दिस/i],\n shortMonthsParse = [/^जन/i, /^फ़र/i, /^मारà¥à¤š/i, /^अपà¥à¤°à¥ˆ/i, /^मई/i, /^जून/i, /^जà¥à¤²/i, /^अग/i, /^सित/i, /^अकà¥à¤Ÿà¥‚/i, /^नव/i, /^दिस/i];\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मारà¥à¤š_अपà¥à¤°à¥ˆà¤²_मई_जून_जà¥à¤²à¤¾à¤ˆ_अगसà¥à¤¤_सितमà¥à¤¬à¤°_अकà¥à¤Ÿà¥‚बर_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°'.split('_'),\n standalone: 'जनवरी_फरवरी_मारà¥à¤š_अपà¥à¤°à¥ˆà¤²_मई_जून_जà¥à¤²à¤¾à¤ˆ_अगसà¥à¤¤_सितंबर_अकà¥à¤Ÿà¥‚बर_नवंबर_दिसंबर'.split('_')\n },\n monthsShort: 'जन._फ़र._मारà¥à¤š_अपà¥à¤°à¥ˆ._मई_जून_जà¥à¤²._अग._सित._अकà¥à¤Ÿà¥‚._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बà¥_गà¥_शà¥_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे'\n },\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n monthsRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मारà¥à¤š?|अपà¥à¤°à¥ˆà¤²|अपà¥à¤°à¥ˆ\\.?|मई?|जून?|जà¥à¤²à¤¾à¤ˆ|जà¥à¤²\\.?|अगसà¥à¤¤|अग\\.?|सितमà¥à¤¬à¤°|सितंबर|सित\\.?|अकà¥à¤Ÿà¥‚बर|अकà¥à¤Ÿà¥‚\\.?|नवमà¥à¤¬à¤°|नवंबर|नव\\.?|दिसमà¥à¤¬à¤°|दिसंबर|दिस\\.?)/i,\n monthsShortRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मारà¥à¤š?|अपà¥à¤°à¥ˆà¤²|अपà¥à¤°à¥ˆ\\.?|मई?|जून?|जà¥à¤²à¤¾à¤ˆ|जà¥à¤²\\.?|अगसà¥à¤¤|अग\\.?|सितमà¥à¤¬à¤°|सितंबर|सित\\.?|अकà¥à¤Ÿà¥‚बर|अकà¥à¤Ÿà¥‚\\.?|नवमà¥à¤¬à¤°|नवंबर|नव\\.?|दिसमà¥à¤¬à¤°|दिसंबर|दिस\\.?)/i,\n monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मारà¥à¤š?|अपà¥à¤°à¥ˆà¤²?|मई?|जून?|जà¥à¤²à¤¾à¤ˆ?|अगसà¥à¤¤?|सितमà¥à¤¬à¤°|सितंबर|सित?\\.?|अकà¥à¤Ÿà¥‚बर|अकà¥à¤Ÿà¥‚\\.?|नवमà¥à¤¬à¤°|नवंबर?|दिसमà¥à¤¬à¤°|दिसंबर?)/i,\n monthsShortStrictRegex: /^(जन\\.?|फ़र\\.?|मारà¥à¤š?|अपà¥à¤°à¥ˆ\\.?|मई?|जून?|जà¥à¤²\\.?|अग\\.?|सित\\.?|अकà¥à¤Ÿà¥‚\\.?|नव\\.?|दिस\\.?)/i,\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कà¥à¤› ही कà¥à¤·à¤£',\n ss: '%d सेकंड',\n m: 'à¤à¤• मिनट',\n mm: '%d मिनट',\n h: 'à¤à¤• घंटा',\n hh: '%d घंटे',\n d: 'à¤à¤• दिन',\n dd: '%d दिन',\n M: 'à¤à¤• महीने',\n MM: '%d महीने',\n y: 'à¤à¤• वरà¥à¤·',\n yy: '%d वरà¥à¤·'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सà¥à¤¬à¤¹|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सà¥à¤¬à¤¹') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सà¥à¤¬à¤¹';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n return hi;\n});","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'sijeÄnja_veljaÄe_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),\n standalone: 'sijeÄanj_veljaÄa_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[proÅ¡lu] [nedjelju] [u] LT';\n case 3:\n return '[proÅ¡lu] [srijedu] [u] LT';\n case 6:\n return '[proÅ¡le] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ¡li] dddd [u] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return hr;\n});","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var weekEndings = 'vasárnap hétfÅ‘n kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix ? 'néhány másodperc' : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';\n }\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfÅ‘_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return hu;\n});","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€Õ«_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€Õ«_Õ´Õ¡Ö€Õ¿Õ«_Õ¡ÕºÖ€Õ«Õ¬Õ«_Õ´Õ¡ÕµÕ«Õ½Õ«_Õ°Õ¸Ö‚Õ¶Õ«Õ½Õ«_Õ°Õ¸Ö‚Õ¬Õ«Õ½Õ«_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½Õ«_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«'.split('_'),\n standalone: 'Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€_Õ´Õ¡Ö€Õ¿_Õ¡ÕºÖ€Õ«Õ¬_Õ´Õ¡ÕµÕ«Õ½_Õ°Õ¸Ö‚Õ¶Õ«Õ½_Õ°Õ¸Ö‚Õ¬Õ«Õ½_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€'.split('_')\n },\n monthsShort: 'Õ°Õ¶Õ¾_ÖƒÕ¿Ö€_Õ´Ö€Õ¿_Õ¡ÕºÖ€_Õ´ÕµÕ½_Õ°Õ¶Õ½_Õ°Õ¬Õ½_Ö…Õ£Õ½_Õ½ÕºÕ¿_Õ°Õ¯Õ¿_Õ¶Õ´Õ¢_Õ¤Õ¯Õ¿'.split('_'),\n weekdays: 'Õ¯Õ«Ö€Õ¡Õ¯Õ«_Õ¥Ö€Õ¯Õ¸Ö‚Õ·Õ¡Õ¢Õ©Õ«_Õ¥Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ¹Õ¸Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ°Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«_Õ¸Ö‚Ö€Õ¢Õ¡Õ©_Õ·Õ¡Õ¢Õ¡Õ©'.split('_'),\n weekdaysShort: 'Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n weekdaysMin: 'Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY Õ©.',\n LLL: 'D MMMM YYYY Õ©., HH:mm',\n LLLL: 'dddd, D MMMM YYYY Õ©., HH:mm'\n },\n calendar: {\n sameDay: '[Õ¡ÕµÕ½Ö…Ö€] LT',\n nextDay: '[Õ¾Õ¡Õ²Õ¨] LT',\n lastDay: '[Õ¥Ö€Õ¥Õ¯] LT',\n nextWeek: function () {\n return 'dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT';\n },\n lastWeek: function () {\n return '[Õ¡Õ¶ÖÕ¡Õ®] dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s Õ°Õ¥Õ¿Õ¸',\n past: '%s Õ¡Õ¼Õ¡Õ»',\n s: 'Õ´Õ« Ö„Õ¡Õ¶Õ« Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶',\n ss: '%d Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶',\n m: 'Ö€Õ¸ÕºÕ¥',\n mm: '%d Ö€Õ¸ÕºÕ¥',\n h: 'ÕªÕ¡Õ´',\n hh: '%d ÕªÕ¡Õ´',\n d: 'Ö…Ö€',\n dd: '%d Ö…Ö€',\n M: 'Õ¡Õ´Õ«Õ½',\n MM: '%d Õ¡Õ´Õ«Õ½',\n y: 'Õ¿Õ¡Ö€Õ«',\n yy: '%d Õ¿Õ¡Ö€Õ«'\n },\n meridiemParse: /Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡|Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡|ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶/,\n isPM: function (input) {\n return /^(ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡';\n } else if (hour < 12) {\n return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡';\n } else if (hour < 17) {\n return 'ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡';\n } else {\n return 'Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(Õ«Õ¶|Ö€Õ¤)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-Õ«Õ¶';\n }\n return number + '-Ö€Õ¤';\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return hyAm;\n});","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun'\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n return id;\n});","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mÃnúta' : 'mÃnútu';\n case 'mm':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'mÃnútur' : 'mÃnútum');\n } else if (withoutSuffix) {\n return result + 'mÃnúta';\n }\n return result + 'mÃnútu';\n case 'hh':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_aprÃl_maÃ_júnÃ_júlÃ_ágúst_september_október_nóvember_desember'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maÃ_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm'\n },\n calendar: {\n sameDay: '[à dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[à gær kl.] LT',\n lastWeek: '[sÃðasta] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s sÃðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return is;\n});","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: function () {\n return '[Oggi a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n nextDay: function () {\n return '[Domani a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n nextWeek: function () {\n return 'dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n lastDay: function () {\n return '[Ieri a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[La scorsa] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n default:\n return '[Lo scorso] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return it;\n});","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return itCh;\n});","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ja = moment.defineLocale('ja', {\n eras: [{\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: 'ã‹¿',\n abbr: 'R'\n }, {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: 'å¹³æˆ',\n narrow: 'ã»',\n abbr: 'H'\n }, {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: 'æ˜å’Œ',\n narrow: 'ã¼',\n abbr: 'S'\n }, {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大æ£',\n narrow: 'ã½',\n abbr: 'T'\n }, {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: 'ã¾',\n abbr: 'M'\n }, {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元å‰',\n narrow: 'BC',\n abbr: 'BC'\n }],\n eraYearOrdinalRegex: /(å…ƒ|\\d+)å¹´/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === 'å…ƒ' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '日曜日_月曜日_ç«æ›œæ—¥_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: 'æ—¥_月_ç«_æ°´_木_金_土'.split('_'),\n weekdaysMin: 'æ—¥_月_ç«_æ°´_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥ dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥(ddd) HH:mm'\n },\n meridiemParse: /åˆå‰|åˆå¾Œ/i,\n isPM: function (input) {\n return input === 'åˆå¾Œ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'åˆå‰';\n } else {\n return 'åˆå¾Œ';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[æ¥é€±]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}æ—¥/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + 'å¹´';\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%så‰',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1æ—¥',\n dd: '%dæ—¥',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1å¹´',\n yy: '%då¹´'\n }\n });\n return ja;\n});","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return jv;\n});","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ka = moment.defineLocale('ka', {\n months: 'იáƒáƒœáƒ•áƒáƒ ი_თებერვáƒáƒšáƒ˜_მáƒáƒ ტი_áƒáƒžáƒ ილი_მáƒáƒ˜áƒ¡áƒ˜_ივნისი_ივლისი_áƒáƒ’ვისტáƒ_სექტემბერი_áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი_ნáƒáƒ”მბერი_დეკემბერი'.split('_'),\n monthsShort: 'იáƒáƒœ_თებ_მáƒáƒ _áƒáƒžáƒ _მáƒáƒ˜_ივნ_ივლ_áƒáƒ’ვ_სექ_áƒáƒ¥áƒ¢_ნáƒáƒ”_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირáƒ_áƒáƒ შáƒáƒ‘áƒáƒ—ი_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი_ხუთშáƒáƒ‘áƒáƒ—ი_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი_შáƒáƒ‘áƒáƒ—ი'.split('_'),\n format: 'კვირáƒáƒ¡_áƒáƒ შáƒáƒ‘áƒáƒ—ს_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ს_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ს_ხუთშáƒáƒ‘áƒáƒ—ს_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვს_შáƒáƒ‘áƒáƒ—ს'.split('_'),\n isFormat: /(წინáƒ|შემდეგ)/\n },\n weekdaysShort: 'კვი_áƒáƒ შ_სáƒáƒ›_áƒáƒ—ხ_ხუთ_პáƒáƒ _შáƒáƒ‘'.split('_'),\n weekdaysMin: 'კვ_áƒáƒ _სáƒ_áƒáƒ—_ხუ_პáƒ_შáƒ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვáƒáƒš] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინáƒ] dddd LT-ზე',\n sameElse: 'L'\n },\n relativeTime: {\n future: function (s) {\n return s.replace(/(წáƒáƒ›|წუთ|სáƒáƒáƒ—|წელ|დღ|თვ)(ი|ე)/, function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n });\n },\n past: function (s) {\n if (/(წáƒáƒ›áƒ˜|წუთი|სáƒáƒáƒ—ი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რáƒáƒ›áƒ“ენიმე წáƒáƒ›áƒ˜',\n ss: '%d წáƒáƒ›áƒ˜',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'სáƒáƒáƒ—ი',\n hh: '%d სáƒáƒáƒ—ი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი'\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (number < 20 || number <= 100 && number % 20 === 0 || number % 100 === 0) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7\n }\n });\n return ka;\n});","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші'\n };\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_Ñәуір_мамыр_мауÑым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқÑан'.split('_'),\n monthsShort: 'қаң_ақп_нау_Ñәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жекÑенбі_дүйÑенбі_ÑейÑенбі_ÑәрÑенбі_бейÑенбі_жұма_Ñенбі'.split('_'),\n weekdaysShort: 'жек_дүй_Ñей_Ñәр_бей_жұм_Ñен'.split('_'),\n weekdaysMin: 'жк_дй_Ñй_ÑÑ€_бй_жм_Ñн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Бүгін Ñағат] LT',\n nextDay: '[Ертең Ñағат] LT',\n nextWeek: 'dddd [Ñағат] LT',\n lastDay: '[Кеше Ñағат] LT',\n lastWeek: '[Өткен аптаның] dddd [Ñағат] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше Ñекунд',\n ss: '%d Ñекунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір Ñағат',\n hh: '%d Ñағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return kk;\n});","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០'\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0'\n };\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មáŸážŸáž¶_ឧសភា_មិážáž»áž“ា_កក្កដា_សីហា_កញ្ញា_ážáž»áž›áž¶_វិច្ឆិកា_ធ្នូ'.split('_'),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មáŸážŸáž¶_ឧសភា_មិážáž»áž“ា_កក្កដា_សីហា_កញ្ញា_ážáž»áž›áž¶_វិច្ឆិកា_ធ្នូ'.split('_'),\n weekdays: 'អាទិážáŸ’áž™_áž…áŸáž“្ទ_អង្គារ_ពុធ_ព្រហស្បážáž·áŸ_សុក្រ_សៅរáŸ'.split('_'),\n weekdaysShort: 'អា_áž…_អ_áž–_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_áž…_អ_áž–_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ážáŸ’ងៃនáŸáŸ‡ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្ážáž¶áž áŸáž˜áž»áž“] [ម៉ោង] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sទៀáž',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយážáŸ’ងៃ',\n dd: '%d ážáŸ’ងៃ',\n M: 'មួយážáŸ‚',\n MM: '%d ážáŸ‚',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ'\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return km;\n});","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: 'à³',\n 8: 'à³®',\n 9: '೯',\n 0: '೦'\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n 'à³': '7',\n 'à³®': '8',\n '೯': '9',\n '೦': '0'\n };\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬà³à²°à²µà²°à²¿_ಮಾರà³à²šà³_à²à²ªà³à²°à²¿à²²à³_ಮೇ_ಜೂನà³_ಜà³à²²à³†à³–_ಆಗಸà³à²Ÿà³_ಸೆಪà³à²Ÿà³†à²‚ಬರà³_ಅಕà³à²Ÿà³†à³‚ೕಬರà³_ನವೆಂಬರà³_ಡಿಸೆಂಬರà³'.split('_'),\n monthsShort: 'ಜನ_ಫೆಬà³à²°_ಮಾರà³à²šà³_à²à²ªà³à²°à²¿à²²à³_ಮೇ_ಜೂನà³_ಜà³à²²à³†à³–_ಆಗಸà³à²Ÿà³_ಸೆಪà³à²Ÿà³†à²‚_ಅಕà³à²Ÿà³†à³‚ೕ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),\n monthsParseExact: true,\n weekdays: 'à²à²¾à²¨à³à²µà²¾à²°_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬà³à²§à²µà²¾à²°_ಗà³à²°à³à²µà²¾à²°_ಶà³à²•à³à²°à²µà²¾à²°_ಶನಿವಾರ'.split('_'),\n weekdaysShort: 'à²à²¾à²¨à³_ಸೋಮ_ಮಂಗಳ_ಬà³à²§_ಗà³à²°à³_ಶà³à²•à³à²°_ಶನಿ'.split('_'),\n weekdaysMin: 'à²à²¾_ಸೋ_ಮಂ_ಬà³_ಗà³_ಶà³_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar: {\n sameDay: '[ಇಂದà³] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನà³à²¨à³†] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವೠಕà³à²·à²£à²—ಳà³',\n ss: '%d ಸೆಕೆಂಡà³à²—ಳà³',\n m: 'ಒಂದೠನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದೠಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದೠದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದೠತಿಂಗಳà³',\n MM: '%d ತಿಂಗಳà³',\n y: 'ಒಂದೠವರà³à²·',\n yy: '%d ವರà³à²·'\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬à³à³®à³¯à³¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತà³à²°à²¿|ಬೆಳಿಗà³à²—ೆ|ಮಧà³à²¯à²¾à²¹à³à²¨|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತà³à²°à²¿') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗà³à²—ೆ') {\n return hour;\n } else if (meridiem === 'ಮಧà³à²¯à²¾à²¹à³à²¨') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತà³à²°à²¿';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗà³à²—ೆ';\n } else if (hour < 17) {\n return 'ಮಧà³à²¯à²¾à²¹à³à²¨';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತà³à²°à²¿';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n return kn;\n});","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ko = moment.defineLocale('ko', {\n months: '1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”'.split('_'),\n monthsShort: '1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”'.split('_'),\n weekdays: 'ì¼ìš”ì¼_월요ì¼_화요ì¼_수요ì¼_목요ì¼_금요ì¼_í† ìš”ì¼'.split('_'),\n weekdaysShort: 'ì¼_ì›”_í™”_수_목_금_í† '.split('_'),\n weekdaysMin: 'ì¼_ì›”_í™”_수_목_금_í† '.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYYë…„ MMMM Dì¼',\n LLL: 'YYYYë…„ MMMM Dì¼ A h:mm',\n LLLL: 'YYYYë…„ MMMM Dì¼ dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYYë…„ MMMM Dì¼',\n lll: 'YYYYë…„ MMMM Dì¼ A h:mm',\n llll: 'YYYYë…„ MMMM Dì¼ dddd A h:mm'\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: 'ë‚´ì¼ LT',\n nextWeek: 'dddd LT',\n lastDay: 'ì–´ì œ LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s 후',\n past: '%s ì „',\n s: '몇 ì´ˆ',\n ss: '%dì´ˆ',\n m: '1분',\n mm: '%d분',\n h: 'í•œ 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%dì¼',\n M: 'í•œ 달',\n MM: '%d달',\n y: 'ì¼ ë…„',\n yy: '%dë…„'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ì¼|ì›”|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'ì¼';\n case 'M':\n return number + 'ì›”';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /ì˜¤ì „|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? 'ì˜¤ì „' : '오후';\n }\n });\n return ko;\n});","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: 'Ù¡',\n 2: 'Ù¢',\n 3: 'Ù£',\n 4: 'Ù¤',\n 5: 'Ù¥',\n 6: 'Ù¦',\n 7: 'Ù§',\n 8: 'Ù¨',\n 9: 'Ù©',\n 0: 'Ù '\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0'\n },\n months = ['کانونی دووەم', 'شوبات', 'ئازار', 'نیسان', 'ئایار', 'Øوزەیران', 'تەمموز', 'ئاب', 'ئەیلوول', 'تشرینی یەكەم', 'تشرینی دووەم', 'كانونی یەکەم'];\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ÛŒ_د_س_Ú†_Ù¾_Ù‡_Ø´'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك Ú•Û†Ú˜',\n dd: '%d Ú•Û†Ú˜',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ'\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n return ku;\n});","//! moment.js locale configuration\n//! locale : Northern Kurdish [ku-kmr]\n//! authors : Mazlum Özdogan : https://github.com/mergehez\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(num, withoutSuffix, key, isFuture) {\n var format = {\n s: ['çend sanîye', 'çend sanîyeyan'],\n ss: [num + ' sanîye', num + ' sanîyeyan'],\n m: ['deqîqeyek', 'deqîqeyekê'],\n mm: [num + ' deqîqe', num + ' deqîqeyan'],\n h: ['saetek', 'saetekê'],\n hh: [num + ' saet', num + ' saetan'],\n d: ['rojek', 'rojekê'],\n dd: [num + ' roj', num + ' rojan'],\n w: ['hefteyek', 'hefteyekê'],\n ww: [num + ' hefte', num + ' hefteyan'],\n M: ['mehek', 'mehekê'],\n MM: [num + ' meh', num + ' mehan'],\n y: ['salek', 'salekê'],\n yy: [num + ' sal', num + ' salan']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n // function obliqueNumSuffix(num) {\n // if(num.includes(':'))\n // num = parseInt(num.split(':')[0]);\n // else\n // num = parseInt(num);\n // return num == 0 || num % 10 == 1 ? 'ê'\n // : (num > 10 && num % 10 == 0 ? 'î' : 'an');\n // }\n function ezafeNumSuffix(num) {\n num = '' + num;\n var l = num.substring(num.length - 1),\n ll = num.length > 1 ? num.substring(num.length - 2) : '';\n if (!(ll == 12 || ll == 13) && (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')) return 'yê';\n return 'ê';\n }\n var kuKmr = moment.defineLocale('ku-kmr', {\n // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)\n // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_ÃŽlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'\n // But the names below are more well known and handy\n months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_ÃŽlon_Cotmeh_Mijdar_Berfanbar'.split('_'),\n monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_ÃŽlo_Cot_Mij_Ber'.split('_'),\n monthsParseExact: true,\n weekdays: 'YekÅŸem_DuÅŸem_Sêşem_ÇarÅŸem_PêncÅŸem_ÃŽn_Åžemî'.split('_'),\n weekdaysShort: 'Yek_Du_Sê_Çar_Pên_ÃŽn_Åžem'.split('_'),\n weekdaysMin: 'Ye_Du_Sê_Ça_Pê_ÃŽn_Åže'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'bn' : 'BN';\n } else {\n return isLower ? 'pn' : 'PN';\n }\n },\n meridiemParse: /bn|BN|pn|PN/,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[a] YYYY[an]',\n LLL: 'Do MMMM[a] YYYY[an] HH:mm',\n LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',\n ll: 'Do MMM[.] YYYY[an]',\n lll: 'Do MMM[.] YYYY[an] HH:mm',\n llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm'\n },\n calendar: {\n sameDay: '[ÃŽro di saet] LT [de]',\n nextDay: '[Sibê di saet] LT [de]',\n nextWeek: 'dddd [di saet] LT [de]',\n lastDay: '[Duh di saet] LT [de]',\n lastWeek: 'dddd[a borî di saet] LT [de]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'di %s de',\n past: 'berî %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(?:yê|ê|\\.)/,\n ordinal: function (num, period) {\n var p = period.toLowerCase();\n if (p.includes('w') || p.includes('m')) return num + '.';\n return num + ezafeNumSuffix(num);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return kuKmr;\n});","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү'\n };\n var ky = moment.defineLocale('ky', {\n months: 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split('_'),\n monthsShort: 'Ñнв_фев_март_апр_май_июнь_июль_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Бүгүн Ñаат] LT',\n nextDay: '[Ðртең Ñаат] LT',\n nextWeek: 'dddd [Ñаат] LT',\n lastDay: '[КечÑÑ Ñаат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [Ñаат] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече Ñекунд',\n ss: '%d Ñекунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир Ñаат',\n hh: '%d Ñаат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return ky;\n});","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n }\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return lb;\n});","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var lo = moment.defineLocale('lo', {\n months: 'ມັງàºàºàº™_àºàº¸àº¡àºžàº²_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_àºà»àº¥àº°àºàº»àº”_ສິງຫາ_àºàº±àº™àºàº²_ຕຸລາ_ພະຈິàº_ທັນວາ'.split('_'),\n monthsShort: 'ມັງàºàºàº™_àºàº¸àº¡àºžàº²_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_àºà»àº¥àº°àºàº»àº”_ສິງຫາ_àºàº±àº™àºàº²_ຕຸລາ_ພະຈິàº_ທັນວາ'.split('_'),\n weekdays: 'àºàº²àº—ິດ_ຈັນ_àºàº±àº‡àº„ານ_ພຸດ_ພະຫັດ_ສຸàº_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_àºàº±àº‡àº„ານ_ພຸດ_ພະຫັດ_ສຸàº_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_àºàº„_ພ_ພຫ_ສàº_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ຕàºàº™à»€àºŠàº»à»‰àº²|ຕàºàº™à»àº¥àº‡/,\n isPM: function (input) {\n return input === 'ຕàºàº™à»àº¥àº‡';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕàºàº™à»€àºŠàº»à»‰àº²';\n } else {\n return 'ຕàºàº™à»àº¥àº‡';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້àºàº·à»ˆàº™à»€àº§àº¥àº²] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[à»àº¥à»‰àº§àº™àºµà»‰à»€àº§àº¥àº²] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'àºàºµàº %s',\n past: '%sຜ່ານມາ',\n s: 'ບà»à»ˆà»€àº—ົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືàºàº™',\n MM: '%d ເດືàºàº™',\n y: '1 ປີ',\n yy: '%d ປີ'\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n }\n });\n return lo;\n});","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas MozÅ«ras : https://github.com/mmozuras\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var units = {\n ss: 'sekundÄ—_sekundžių_sekundes',\n m: 'minutÄ—_minutÄ—s_minutÄ™',\n mm: 'minutÄ—s_minuÄių_minutes',\n h: 'valanda_valandos_valandÄ…',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dienÄ…',\n dd: 'dienos_dienų_dienas',\n M: 'mÄ—nuo_mÄ—nesio_mÄ—nesį',\n MM: 'mÄ—nesiai_mÄ—nesių_mÄ—nesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus'\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundÄ—s';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix ? forms(key)[0] : isFuture ? forms(key)[1] : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || number > 10 && number < 20;\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return result + translateSingular(number, withoutSuffix, key[0], isFuture);\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjÅ«Äio_rugsÄ—jo_spalio_lapkriÄio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjÅ«tis_rugsÄ—jis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_treÄiadienį_ketvirtadienį_penktadienį_Å¡eÅ¡tadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Å '.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar: {\n sameDay: '[Å iandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[PraÄ—jusį] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieÅ¡ %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return lt;\n});","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : JÄnis Elmeris : https://github.com/JanisE\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var units = {\n ss: 'sekundes_sekundÄ“m_sekunde_sekundes'.split('_'),\n m: 'minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes'.split('_'),\n mm: 'minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes'.split('_'),\n h: 'stundas_stundÄm_stunda_stundas'.split('_'),\n hh: 'stundas_stundÄm_stunda_stundas'.split('_'),\n d: 'dienas_dienÄm_diena_dienas'.split('_'),\n dd: 'dienas_dienÄm_diena_dienas'.split('_'),\n M: 'mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i'.split('_'),\n MM: 'mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_')\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minÅ«te\", \"3 minÅ«tes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minÅ«tes\" as in \"pÄ“c 21 minÅ«tes\".\n // E.g. \"3 minÅ«tÄ“m\" as in \"pÄ“c 3 minÅ«tÄ“m\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažÄm sekundÄ“m';\n }\n var lv = moment.defineLocale('lv', {\n months: 'janvÄris_februÄris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),\n monthsShort: 'jan_feb_mar_apr_mai_jÅ«n_jÅ«l_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'svÄ“tdiena_pirmdiena_otrdiena_treÅ¡diena_ceturtdiena_piektdiena_sestdiena'.split('_'),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm'\n },\n calendar: {\n sameDay: '[Å odien pulksten] LT',\n nextDay: '[RÄ«t pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[PagÄjuÅ¡Ä] dddd [pulksten] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'pÄ“c %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return lv;\n});","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag NikaÄ <miodrag@restartit.me> : https://github.com/miodragnikac\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄe u] LT',\n lastWeek: function () {\n var lastWeekDays = ['[proÅ¡le] [nedjelje] [u] LT', '[proÅ¡log] [ponedjeljka] [u] LT', '[proÅ¡log] [utorka] [u] LT', '[proÅ¡le] [srijede] [u] LT', '[proÅ¡log] [Äetvrtka] [u] LT', '[proÅ¡log] [petka] [u] LT', '[proÅ¡le] [subote] [u] LT'];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return me;\n});","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tÄte_Hui-tanguru_PoutÅ«-te-rangi_Paenga-whÄwhÄ_Haratua_Pipiri_HÅngoingoi_Here-turi-kÅkÄ_Mahuru_Whiringa-Ä-nuku_Whiringa-Ä-rangi_Hakihea'.split('_'),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_HÅngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'RÄtapu_Mane_TÅ«rei_Wenerei_TÄite_Paraire_HÄtarei'.split('_'),\n weekdaysShort: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'),\n weekdaysMin: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm'\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hÄ“kona ruarua',\n ss: '%d hÄ“kona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return mi;\n});","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_авгуÑÑ‚_Ñептември_октомври_ноември_декември'.split('_'),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_Ñеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_Ñреда_четврток_петок_Ñабота'.split('_'),\n weekdaysShort: 'нед_пон_вто_Ñре_чет_пет_Ñаб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ÑÑ€_че_пе_Ña'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Ð”ÐµÐ½ÐµÑ Ð²Ð¾] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку Ñекунди',\n ss: '%d Ñекунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден чаÑ',\n hh: '%d чаÑа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден меÑец',\n MM: '%d меÑеци',\n y: 'една година',\n yy: '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return mk;\n});","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ml = moment.defineLocale('ml', {\n months: 'ജനàµà´µà´°à´¿_ഫെബàµà´°àµà´µà´°à´¿_മാർചàµà´šàµ_à´à´ªàµà´°à´¿àµ½_മേയàµ_ജൂൺ_ജൂലൈ_à´“à´—à´¸àµà´±àµà´±àµ_സെപàµà´±àµà´±à´‚ബർ_à´’à´•àµà´Ÿàµ‹à´¬àµ¼_നവംബർ_ഡിസംബർ'.split('_'),\n monthsShort: 'ജനàµ._ഫെബàµà´°àµ._മാർ._à´à´ªàµà´°à´¿._മേയàµ_ജൂൺ_ജൂലൈ._à´“à´—._സെപàµà´±àµà´±._à´’à´•àµà´Ÿàµ‹._നവം._ഡിസം.'.split('_'),\n monthsParseExact: true,\n weekdays: 'ഞായറാഴàµà´š_തിങàµà´•à´³à´¾à´´àµà´š_ചൊവàµà´µà´¾à´´àµà´š_à´¬àµà´§à´¨à´¾à´´àµà´š_à´µàµà´¯à´¾à´´à´¾à´´àµà´š_വെളàµà´³à´¿à´¯à´¾à´´àµà´š_ശനിയാഴàµà´š'.split('_'),\n weekdaysShort: 'ഞായർ_തിങàµà´•àµ¾_ചൊവàµà´µ_à´¬àµà´§àµ»_à´µàµà´¯à´¾à´´à´‚_വെളàµà´³à´¿_ശനി'.split('_'),\n weekdaysMin: 'à´žà´¾_തി_ചൊ_à´¬àµ_à´µàµà´¯à´¾_വെ_à´¶'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -à´¨àµ',\n LTS: 'A h:mm:ss -à´¨àµ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -à´¨àµ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -à´¨àµ'\n },\n calendar: {\n sameDay: '[ഇനàµà´¨àµ] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇനàµà´¨à´²àµ†] LT',\n lastWeek: '[à´•à´´à´¿à´žàµà´ž] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s à´•à´´à´¿à´žàµà´žàµ',\n past: '%s à´®àµàµ»à´ªàµ',\n s: 'അൽപ നിമിഷങàµà´™àµ¾',\n ss: '%d സെകàµà´•àµ»à´¡àµ',\n m: 'ഒരൠമിനിറàµà´±àµ',\n mm: '%d മിനിറàµà´±àµ',\n h: 'ഒരൠമണികàµà´•àµ‚ർ',\n hh: '%d മണികàµà´•àµ‚ർ',\n d: 'ഒരൠദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരൠമാസം',\n MM: '%d മാസം',\n y: 'ഒരൠവർഷം',\n yy: '%d വർഷം'\n },\n meridiemParse: /രാതàµà´°à´¿|രാവിലെ|ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ|വൈകàµà´¨àµà´¨àµ‡à´°à´‚|രാതàµà´°à´¿/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'രാതàµà´°à´¿' && hour >= 4 || meridiem === 'ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ' || meridiem === 'വൈകàµà´¨àµà´¨àµ‡à´°à´‚') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാതàµà´°à´¿';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ';\n } else if (hour < 20) {\n return 'വൈകàµà´¨àµà´¨àµ‡à´°à´‚';\n } else {\n return 'രാതàµà´°à´¿';\n }\n }\n });\n return ml;\n});","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'Ñ…ÑдхÑн Ñекунд' : 'Ñ…ÑдхÑн Ñекундын';\n case 'ss':\n return number + (withoutSuffix ? ' Ñекунд' : ' Ñекундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' Ñар' : ' Ñарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n var mn = moment.defineLocale('mn', {\n months: 'ÐÑгдүгÑÑÑ€ Ñар_Хоёрдугаар Ñар_Гуравдугаар Ñар_ДөрөвдүгÑÑÑ€ Ñар_Тавдугаар Ñар_Зургадугаар Ñар_Долдугаар Ñар_Ðаймдугаар Ñар_ЕÑдүгÑÑÑ€ Ñар_Ðравдугаар Ñар_Ðрван нÑгдүгÑÑÑ€ Ñар_Ðрван хоёрдугаар Ñар'.split('_'),\n monthsShort: '1 Ñар_2 Ñар_3 Ñар_4 Ñар_5 Ñар_6 Ñар_7 Ñар_8 Ñар_9 Ñар_10 Ñар_11 Ñар_12 Ñар'.split('_'),\n monthsParseExact: true,\n weekdays: 'ÐÑм_Даваа_ÐœÑгмар_Лхагва_ПүрÑв_БааÑан_БÑмба'.split('_'),\n weekdaysShort: 'ÐÑм_Дав_ÐœÑг_Лха_Пүр_Баа_БÑм'.split('_'),\n weekdaysMin: 'ÐÑ_Да_ÐœÑ_Лх_Пү_Ба_БÑ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm'\n },\n meridiemParse: /Ò®Ó¨|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Ò®Ó¨';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[ИрÑÑ…] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[ӨнгөрÑөн] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n }\n });\n return mn;\n});","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: 'à¥',\n 8: '८',\n 9: '९',\n 0: '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'à¤à¤• मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'à¤à¤• तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'à¤à¤• दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'à¤à¤• महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'à¤à¤• वरà¥à¤·';\n break;\n case 'yy':\n output = '%d वरà¥à¤·à¥‡';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'à¤à¤•à¤¾ मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'à¤à¤•à¤¾ तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'à¤à¤•à¤¾ दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'à¤à¤•à¤¾ महिनà¥à¤¯à¤¾';\n break;\n case 'MM':\n output = '%d महिनà¥à¤¯à¤¾à¤‚';\n break;\n case 'y':\n output = 'à¤à¤•à¤¾ वरà¥à¤·à¤¾';\n break;\n case 'yy':\n output = '%d वरà¥à¤·à¤¾à¤‚';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€_मारà¥à¤š_à¤à¤ªà¥à¤°à¤¿à¤²_मे_जून_जà¥à¤²à¥ˆ_ऑगसà¥à¤Ÿ_सपà¥à¤Ÿà¥‡à¤‚बर_ऑकà¥à¤Ÿà¥‹à¤¬à¤°_नोवà¥à¤¹à¥‡à¤‚बर_डिसेंबर'.split('_'),\n monthsShort: 'जाने._फेबà¥à¤°à¥._मारà¥à¤š._à¤à¤ªà¥à¤°à¤¿._मे._जून._जà¥à¤²à¥ˆ._ऑग._सपà¥à¤Ÿà¥‡à¤‚._ऑकà¥à¤Ÿà¥‹._नोवà¥à¤¹à¥‡à¤‚._डिसें.'.split('_'),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बà¥_गà¥_शà¥_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता'\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उदà¥à¤¯à¤¾] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sमधà¥à¤¯à¥‡',\n past: '%sपूरà¥à¤µà¥€',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दà¥à¤ªà¤¾à¤°à¥€|सायंकाळी|रातà¥à¤°à¥€/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (meridiem === 'दà¥à¤ªà¤¾à¤°à¥€' || meridiem === 'सायंकाळी' || meridiem === 'रातà¥à¤°à¥€') {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दà¥à¤ªà¤¾à¤°à¥€';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रातà¥à¤°à¥€';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n return mr;\n});","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return ms;\n});","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return msMy;\n});","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ä unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_DiÄ‹embru'.split('_'),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ä un_Lul_Aww_Set_Ott_Nov_DiÄ‹'.split('_'),\n weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ä imgħa_Is-Sibt'.split('_'),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ä im_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ä i_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'Ä¡urnata',\n dd: '%d Ä¡ranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return mt;\n});","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: 'á',\n 2: 'á‚',\n 3: 'áƒ',\n 4: 'á„',\n 5: 'á…',\n 6: 'á†',\n 7: 'á‡',\n 8: 'áˆ',\n 9: 'á‰',\n 0: 'á€'\n },\n numberMap = {\n 'á': '1',\n 'á‚': '2',\n 'áƒ': '3',\n 'á„': '4',\n 'á…': '5',\n 'á†': '6',\n 'á‡': '7',\n 'áˆ': '8',\n 'á‰': '9',\n 'á€': '0'\n };\n var my = moment.defineLocale('my', {\n months: 'ဇန်နá€á€«á€›á€®_ဖေဖော်á€á€«á€›á€®_မá€á€º_ဧပြီ_မေ_ဇွန်_ဇူလá€á€¯á€„်_သြဂုá€á€º_စက်á€á€„်ဘာ_အောက်á€á€á€¯á€˜á€¬_နá€á€¯á€á€„်ဘာ_ဒီဇင်ဘာ'.split('_'),\n monthsShort: 'ဇန်_ဖေ_မá€á€º_ပြီ_မေ_ဇွန်_လá€á€¯á€„်_သြ_စက်_အောက်_နá€á€¯_ဒီ'.split('_'),\n weekdays: 'á€á€”င်္ဂနွေ_á€á€”င်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပá€á€±á€¸_သောကြာ_စနေ'.split('_'),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးá€á€²á€·á€žá€±á€¬] dddd LT [မှာ]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်á€á€²á€·á€žá€±á€¬ %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'á€á€…်မá€á€”စ်',\n mm: '%d မá€á€”စ်',\n h: 'á€á€…်နာရီ',\n hh: '%d နာရီ',\n d: 'á€á€…်ရက်',\n dd: '%d ရက်',\n M: 'á€á€…်လ',\n MM: '%d လ',\n y: 'á€á€…်နှစ်',\n yy: '%d နှစ်'\n },\n preparse: function (string) {\n return string.replace(/[áá‚áƒá„á…á†á‡áˆá‰á€]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return my;\n});","//! moment.js locale configuration\n//! locale : Norwegian BokmÃ¥l [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i gÃ¥r kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'én time',\n hh: '%d timer',\n d: 'én dag',\n dd: '%d dager',\n w: 'én uke',\n ww: '%d uker',\n M: 'én mÃ¥ned',\n MM: '%d mÃ¥neder',\n y: 'ett Ã¥r',\n yy: '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return nb;\n});","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: 'à¥',\n 8: '८',\n 9: '९',\n 0: '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेबà¥à¤°à¥à¤µà¤°à¥€_मारà¥à¤š_अपà¥à¤°à¤¿à¤²_मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ_अगषà¥à¤Ÿ_सेपà¥à¤Ÿà¥‡à¤®à¥à¤¬à¤°_अकà¥à¤Ÿà¥‹à¤¬à¤°_नोà¤à¥‡à¤®à¥à¤¬à¤°_डिसेमà¥à¤¬à¤°'.split('_'),\n monthsShort: 'जन._फेबà¥à¤°à¥._मारà¥à¤š_अपà¥à¤°à¤¿._मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ._अग._सेपà¥à¤Ÿ._अकà¥à¤Ÿà¥‹._नोà¤à¥‡._डिसे.'.split('_'),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङà¥à¤—लबार_बà¥à¤§à¤¬à¤¾à¤°_बिहिबार_शà¥à¤•à¥à¤°à¤¬à¤¾à¤°_शनिबार'.split('_'),\n weekdaysShort: 'आइत._सोम._मङà¥à¤—ल._बà¥à¤§._बिहि._शà¥à¤•à¥à¤°._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बà¥._बि._शà¥._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउà¤à¤¸à¥‹|साà¤à¤/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउà¤à¤¸à¥‹') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साà¤à¤') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउà¤à¤¸à¥‹';\n } else if (hour < 20) {\n return 'साà¤à¤';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[à¤à¥‹à¤²à¤¿] LT',\n nextWeek: '[आउà¤à¤¦à¥‹] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गà¤à¤•à¥‹] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही कà¥à¤·à¤£',\n ss: '%d सेकेणà¥à¤¡',\n m: 'à¤à¤• मिनेट',\n mm: '%d मिनेट',\n h: 'à¤à¤• घणà¥à¤Ÿà¤¾',\n hh: '%d घणà¥à¤Ÿà¤¾',\n d: 'à¤à¤• दिन',\n dd: '%d दिन',\n M: 'à¤à¤• महिना',\n MM: '%d महिना',\n y: 'à¤à¤• बरà¥à¤·',\n yy: '%d बरà¥à¤·'\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n return ne;\n});","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [/^jan/i, /^feb/i, /^(maart|mrt\\.?)$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return nl;\n});","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [/^jan/i, /^feb/i, /^(maart|mrt\\.?)$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return nlBe;\n});","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_mÃ¥ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._mÃ¥._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_mÃ¥_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I gÃ¥r klokka] LT',\n lastWeek: '[FøregÃ¥ande] dddd [klokka] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein mÃ¥nad',\n MM: '%d mÃ¥nader',\n y: 'eit Ã¥r',\n yy: '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return nn;\n});","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split('_'),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split('_'),\n isFormat: /D[oD]?(\\s)+MMMM/\n },\n monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split('_'),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm'\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: \"d'aquà %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4\n }\n });\n return ocLnc;\n});","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: 'à©©',\n 4: '੪',\n 5: 'à©«',\n 6: '੬',\n 7: 'à©',\n 8: 'à©®',\n 9: '੯',\n 0: '੦'\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n 'à©©': '3',\n '੪': '4',\n 'à©«': '5',\n '੬': '6',\n 'à©': '7',\n 'à©®': '8',\n '੯': '9',\n '੦': '0'\n };\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪà©à¨°à©ˆà¨²_ਮਈ_ਜੂਨ_ਜà©à¨²à¨¾à¨ˆ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪà©à¨°à©ˆà¨²_ਮਈ_ਜੂਨ_ਜà©à¨²à¨¾à¨ˆ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n weekdays: 'à¨à¨¤à¨µà¨¾à¨°_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬà©à¨§à¨µà¨¾à¨°_ਵੀਰਵਾਰ_ਸ਼à©à©±à¨•à¨°à¨µà¨¾à¨°_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),\n weekdaysShort: 'à¨à¨¤_ਸੋਮ_ਮੰਗਲ_ਬà©à¨§_ਵੀਰ_ਸ਼à©à¨•à¨°_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'à¨à¨¤_ਸੋਮ_ਮੰਗਲ_ਬà©à¨§_ਵੀਰ_ਸ਼à©à¨•à¨°_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕà©à¨ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ'\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬à©à©®à©¯à©¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦà©à¨ªà¨¹à¨¿à¨°|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦà©à¨ªà¨¹à¨¿à¨°') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦà©à¨ªà¨¹à¨¿à¨°';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n return paIn;\n});","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsNominative = 'styczeÅ„_luty_marzec_kwiecieÅ„_maj_czerwiec_lipiec_sierpieÅ„_wrzesieÅ„_październik_listopad_grudzieÅ„'.split('_'),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅ›nia_października_listopada_grudnia'.split('_'),\n monthsParse = [/^sty/i, /^lut/i, /^mar/i, /^kwi/i, /^maj/i, /^cze/i, /^lip/i, /^sie/i, /^wrz/i, /^paź/i, /^lis/i, /^gru/i];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutÄ™';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinÄ™';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiÄ…ce' : 'miesiÄ™cy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'niedziela_poniedziaÅ‚ek_wtorek_Å›roda_czwartek_piÄ…tek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_Å›r_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Åšr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[DziÅ› o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielÄ™ o] LT';\n case 2:\n return '[We wtorek o] LT';\n case 3:\n return '[W Å›rodÄ™ o] LT';\n case 6:\n return '[W sobotÄ™ o] LT';\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszÅ‚Ä… niedzielÄ™ o] LT';\n case 3:\n return '[W zeszÅ‚Ä… Å›rodÄ™ o] LT';\n case 6:\n return '[W zeszÅ‚Ä… sobotÄ™ o] LT';\n default:\n return '[W zeszÅ‚y] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzieÅ„',\n dd: '%d dni',\n w: 'tydzieÅ„',\n ww: translate,\n M: 'miesiÄ…c',\n MM: translate,\n y: 'rok',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return pl;\n});","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6 ? '[Último] dddd [à s] LT' // Saturday + Sunday\n : '[Última] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return pt;\n});","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [à s] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [à s] HH:mm'\n },\n calendar: {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6 ? '[Último] dddd [à s] LT' // Saturday + Sunday\n : '[Última] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida'\n });\n return ptBr;\n});","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani'\n },\n separator = ' ';\n if (number % 100 >= 20 || number >= 100 && number % 100 === 0) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marÈ›i_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return ro;\n});","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунды_Ñекунд' : 'Ñекунду_Ñекунды_Ñекунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'чаÑ_чаÑа_чаÑов',\n dd: 'день_днÑ_дней',\n ww: 'неделÑ_недели_недель',\n MM: 'меÑÑц_меÑÑца_меÑÑцев',\n yy: 'год_года_лет'\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [/^Ñнв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йÑ]/i, /^июн/i, /^июл/i, /^авг/i, /^Ñен/i, /^окт/i, /^ноÑ/i, /^дек/i];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Ð¡Ð¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¼ÐµÑÑцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'ÑнварÑ_февралÑ_марта_апрелÑ_маÑ_июнÑ_июлÑ_авгуÑта_ÑентÑбрÑ_октÑбрÑ_ноÑбрÑ_декабрÑ'.split('_'),\n standalone: 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split('_')\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой ÑмыÑл менÑÑ‚ÑŒ букву на точку?\n format: 'Ñнв._февр._мар._апр._маÑ_июнÑ_июлÑ_авг._Ñент._окт._ноÑб._дек.'.split('_'),\n standalone: 'Ñнв._февр._март_апр._май_июнь_июль_авг._Ñент._окт._ноÑб._дек.'.split('_')\n },\n weekdays: {\n standalone: 'воÑкреÑенье_понедельник_вторник_Ñреда_четверг_пÑтница_Ñуббота'.split('_'),\n format: 'воÑкреÑенье_понедельник_вторник_Ñреду_четверг_пÑтницу_Ñубботу'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|Ñледующую|Ñту)? ?] ?dddd/\n },\n weekdaysShort: 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n weekdaysMin: 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸, по три буквы, Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ…, по 4 буквы, ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹ и без точки\n monthsRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n // ÐºÐ¾Ð¿Ð¸Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ³Ð¾\n monthsShortRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸\n monthsStrictRegex: /^(Ñнвар[ÑÑŒ]|феврал[ÑÑŒ]|марта?|апрел[ÑÑŒ]|ма[Ñй]|июн[ÑÑŒ]|июл[ÑÑŒ]|авгуÑта?|ÑентÑбр[ÑÑŒ]|октÑбр[ÑÑŒ]|ноÑбр[ÑÑŒ]|декабр[ÑÑŒ])/i,\n // Выражение, которое ÑоответÑтвует только Ñокращённым формам\n monthsShortStrictRegex: /^(Ñнв\\.|февр?\\.|мар[Ñ‚.]|апр\\.|ма[Ñй]|июн[ÑŒÑ.]|июл[ÑŒÑ.]|авг\\.|Ñент?\\.|окт\\.|ноÑб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar: {\n sameDay: '[СегоднÑ, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ Ñледующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð’ Ñледующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð’ Ñледующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð’ прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð’ прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'неÑколько Ñекунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'чаÑ',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделÑ',\n ww: relativeTimeWithPlural,\n M: 'меÑÑц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural\n },\n meridiemParse: /ночи|утра|днÑ|вечера/i,\n isPM: function (input) {\n return /^(днÑ|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|Ñ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-Ñ';\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return ru;\n});","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = ['جنوري', 'Ùيبروري', 'مارچ', 'اپريل', 'مئي', 'جون', 'جولاءÙ', 'آگسٽ', 'سيپٽمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ddddØŒ D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبØ|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبØ';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين Ù‡Ùتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل Ù‡Ùتي] dddd [تي] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'Ù‡Úª منٽ',\n mm: '%d منٽ',\n h: 'Ù‡Úª ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'Ù‡Úª Úينهن',\n dd: '%d Úينهن',\n M: 'Ù‡Úª مهينو',\n MM: '%d مهينا',\n y: 'Ù‡Úª سال',\n yy: '%d سال'\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return sd;\n});","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : BÃ¥rd Rolstad Henriksen : https://github.com/karamell\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var se = moment.defineLocale('se', {\n months: 'oÄ‘Ä‘ajagemánnu_guovvamánnu_njukÄamánnu_cuoÅ‹ománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_ÄakÄamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),\n monthsShort: 'oÄ‘Ä‘j_guov_njuk_cuo_mies_geas_suoi_borg_ÄakÄ_golg_skáb_juov'.split('_'),\n weekdays: 'sotnabeaivi_vuossárga_maÅ‹Å‹ebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),\n weekdaysShort: 'sotn_vuos_maÅ‹_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maÅ‹it %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return se;\n});","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවà·à¶»à·’_පෙබරවà·à¶»à·’_මà·à¶»à·Šà¶à·”_අප්â€à¶»à·šà¶½à·Š_මà·à¶ºà·’_ජූනි_ජූලි_අගà·à·ƒà·Šà¶à·”_à·ƒà·à¶´à·Šà¶à·à¶¸à·Šà¶¶à¶»à·Š_ඔක්à¶à·à¶¶à¶»à·Š_නොවà·à¶¸à·Šà¶¶à¶»à·Š_දෙසà·à¶¸à·Šà¶¶à¶»à·Š'.split('_'),\n monthsShort: 'ජන_පෙබ_මà·à¶»à·Š_අප්_මà·à¶ºà·’_ජූනි_ජූලි_අගà·_à·ƒà·à¶´à·Š_ඔක්_නොවà·_දෙසà·'.split('_'),\n weekdays: 'ඉරිදà·_සඳුදà·_අඟහරුවà·à¶¯à·_බදà·à¶¯à·_බ්â€à¶»à·„ස්පà¶à·’න්දà·_සිකුරà·à¶¯à·_සෙනසුරà·à¶¯à·'.split('_'),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදà·_බ්â€à¶»à·„_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_à·ƒ_අ_බ_බ්â€à¶»_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [à·€à·à¶±à·’] dddd, a h:mm:ss'\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'à¶à¶à·Šà¶´à¶» කිහිපය',\n ss: 'à¶à¶à·Šà¶´à¶» %d',\n m: 'මිනිà¶à·Šà¶à·”à·€',\n mm: 'මිනිà¶à·Šà¶à·” %d',\n h: 'පà·à¶º',\n hh: 'පà·à¶º %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මà·à·ƒà¶º',\n MM: 'මà·à·ƒ %d',\n y: 'වසර',\n yy: 'වසර %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2} à·€à·à¶±à·’/,\n ordinal: function (number) {\n return number + ' à·€à·à¶±à·’';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.à·€|ප.à·€./,\n isPM: function (input) {\n return input === 'ප.à·€.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.à·€.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.à·€.' : 'පෙර වරු';\n }\n }\n });\n return si;\n});","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = 'január_február_marec_aprÃl_máj_jún_júl_august_september_október_november_december'.split('_'),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss':\n // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm':\n // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm':\n // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h':\n // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh':\n // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodÃn');\n } else {\n return result + 'hodinami';\n }\n case 'd':\n // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd':\n // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dnÃ');\n } else {\n return result + 'dňami';\n }\n case 'M':\n // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM':\n // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y':\n // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy':\n // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo Å¡tvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[vÄera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return sk;\n});","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert SedovÅ¡ek : https://github.com/sedovsek\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._Äet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_Äe_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[vÄeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejÅ¡njo] [nedeljo] [ob] LT';\n case 3:\n return '[prejÅ¡njo] [sredo] [ob] LT';\n case 6:\n return '[prejÅ¡njo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejÅ¡nji] dddd [ob] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Äez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return sl;\n});","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return sq;\n});","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan JanaÄković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n return number + ' ' + word;\n }\n };\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sre._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄe u] LT',\n lastWeek: function () {\n var lastWeekDays = ['[proÅ¡le] [nedelje] [u] LT', '[proÅ¡log] [ponedeljka] [u] LT', '[proÅ¡log] [utorka] [u] LT', '[proÅ¡le] [srede] [u] LT', '[proÅ¡log] [Äetvrtka] [u] LT', '[proÅ¡log] [petka] [u] LT', '[proÅ¡le] [subote] [u] LT'];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return sr;\n});","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan JanaÄković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['Ñекунда', 'Ñекунде', 'Ñекунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један Ñат', 'једног Ñата'],\n hh: ['Ñат', 'Ñата', 'Ñати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један меÑец', 'једног меÑеца'],\n MM: ['меÑец', 'меÑеца', 'меÑеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година']\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n return number + ' ' + word;\n }\n };\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_авгуÑÑ‚_Ñептембар_октобар_новембар_децембар'.split('_'),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._Ñеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_Ñреда_четвртак_петак_Ñубота'.split('_'),\n weekdaysShort: 'нед._пон._уто._Ñре._чет._пет._Ñуб.'.split('_'),\n weekdaysMin: 'не_по_ут_ÑÑ€_че_пе_Ñу'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm'\n },\n calendar: {\n sameDay: '[Ð´Ð°Ð½Ð°Ñ Ñƒ] LT',\n nextDay: '[Ñутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [Ñреду] [у] LT';\n case 6:\n return '[у] [Ñуботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = ['[прошле] [недеље] [у] LT', '[прошлог] [понедељка] [у] LT', '[прошлог] [уторка] [у] LT', '[прошле] [Ñреде] [у] LT', '[прошлог] [четвртка] [у] LT', '[прошлог] [петка] [у] LT', '[прошле] [Ñуботе] [у] LT'];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико Ñекунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n return srCyrl;\n});","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split('_'),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka'\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return ss;\n});","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_mÃ¥ndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mÃ¥n_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_mÃ¥_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[IgÃ¥r] LT',\n nextWeek: '[PÃ¥] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'nÃ¥gra sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en mÃ¥nad',\n MM: '%d mÃ¥nader',\n y: 'ett Ã¥r',\n yy: '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? ':e' : b === 1 ? ':a' : b === 2 ? ':a' : b === 3 ? ':e' : ':e';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return sv;\n});","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return sw;\n});","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: 'à¯',\n 8: '௮',\n 9: '௯',\n 0: '௦'\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n 'à¯': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0'\n };\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிபà¯à®°à®µà®°à®¿_மாரà¯à®šà¯_à®à®ªà¯à®°à®²à¯_மே_ஜூனà¯_ஜூலை_ஆகஸà¯à®Ÿà¯_செபà¯à®Ÿà¯†à®®à¯à®ªà®°à¯_அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_டிசமà¯à®ªà®°à¯'.split('_'),\n monthsShort: 'ஜனவரி_பிபà¯à®°à®µà®°à®¿_மாரà¯à®šà¯_à®à®ªà¯à®°à®²à¯_மே_ஜூனà¯_ஜூலை_ஆகஸà¯à®Ÿà¯_செபà¯à®Ÿà¯†à®®à¯à®ªà®°à¯_அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_டிசமà¯à®ªà®°à¯'.split('_'),\n weekdays: 'ஞாயிறà¯à®±à¯à®•à¯à®•à®¿à®´à®®à¯ˆ_திஙà¯à®•à®Ÿà¯à®•à®¿à®´à®®à¯ˆ_செவà¯à®µà®¾à®¯à¯à®•à®¿à®´à®®à¯ˆ_பà¯à®¤à®©à¯à®•à®¿à®´à®®à¯ˆ_வியாழகà¯à®•à®¿à®´à®®à¯ˆ_வெளà¯à®³à®¿à®•à¯à®•à®¿à®´à®®à¯ˆ_சனிகà¯à®•à®¿à®´à®®à¯ˆ'.split('_'),\n weekdaysShort: 'ஞாயிறà¯_திஙà¯à®•à®³à¯_செவà¯à®µà®¾à®¯à¯_பà¯à®¤à®©à¯_வியாழனà¯_வெளà¯à®³à®¿_சனி'.split('_'),\n weekdaysMin: 'ஞா_தி_செ_பà¯_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm'\n },\n calendar: {\n sameDay: '[இனà¯à®±à¯] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேறà¯à®±à¯] LT',\n lastWeek: '[கடநà¯à®¤ வாரமà¯] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s இலà¯',\n past: '%s à®®à¯à®©à¯',\n s: 'ஒர௠சில விநாடிகளà¯',\n ss: '%d விநாடிகளà¯',\n m: 'ஒர௠நிமிடமà¯',\n mm: '%d நிமிடஙà¯à®•à®³à¯',\n h: 'ஒர௠மணி நேரமà¯',\n hh: '%d மணி நேரமà¯',\n d: 'ஒர௠நாளà¯',\n dd: '%d நாடà¯à®•à®³à¯',\n M: 'ஒர௠மாதமà¯',\n MM: '%d மாதஙà¯à®•à®³à¯',\n y: 'ஒர௠வரà¯à®Ÿà®®à¯',\n yy: '%d ஆணà¯à®Ÿà¯à®•à®³à¯'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வதà¯/,\n ordinal: function (number) {\n return number + 'வதà¯';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬à¯à¯®à¯¯à¯¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமமà¯|வைகறை|காலை|நணà¯à®ªà®•à®²à¯|எறà¯à®ªà®¾à®Ÿà¯|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமமà¯';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நணà¯à®ªà®•à®²à¯'; // நணà¯à®ªà®•à®²à¯\n } else if (hour < 18) {\n return ' எறà¯à®ªà®¾à®Ÿà¯'; // எறà¯à®ªà®¾à®Ÿà¯\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமமà¯';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமமà¯') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நணà¯à®ªà®•à®²à¯') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n return ta;\n});","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var te = moment.defineLocale('te', {\n months: 'జనవరి_à°«à°¿à°¬à±à°°à°µà°°à°¿_మారà±à°šà°¿_à°à°ªà±à°°à°¿à°²à±_మే_జూనà±_à°œà±à°²à±ˆ_ఆగసà±à°Ÿà±_సెపà±à°Ÿà±†à°‚బరà±_à°…à°•à±à°Ÿà±‹à°¬à°°à±_నవంబరà±_డిసెంబరà±'.split('_'),\n monthsShort: 'జన._à°«à°¿à°¬à±à°°._మారà±à°šà°¿_à°à°ªà±à°°à°¿._మే_జూనà±_à°œà±à°²à±ˆ_ఆగ._సెపà±._à°…à°•à±à°Ÿà±‹._నవ._డిసె.'.split('_'),\n monthsParseExact: true,\n weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_à°¬à±à°§à°µà°¾à°°à°‚_à°—à±à°°à±à°µà°¾à°°à°‚_à°¶à±à°•à±à°°à°µà°¾à°°à°‚_శనివారం'.split('_'),\n weekdaysShort: 'ఆది_సోమ_మంగళ_à°¬à±à°§_à°—à±à°°à±_à°¶à±à°•à±à°°_శని'.split('_'),\n weekdaysMin: 'à°†_సో_మం_à°¬à±_à°—à±_à°¶à±_à°¶'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar: {\n sameDay: '[నేడà±] LT',\n nextDay: '[రేపà±] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నినà±à°¨] LT',\n lastWeek: '[à°—à°¤] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s లో',\n past: '%s à°•à±à°°à°¿à°¤à°‚',\n s: 'కొనà±à°¨à°¿ à°•à±à°·à°£à°¾à°²à±',\n ss: '%d సెకనà±à°²à±',\n m: 'à°’à°• నిమిషం',\n mm: '%d నిమిషాలà±',\n h: 'à°’à°• à°—à°‚à°Ÿ',\n hh: '%d à°—à°‚à°Ÿà°²à±',\n d: 'à°’à°• రోజà±',\n dd: '%d రోజà±à°²à±',\n M: 'à°’à°• నెల',\n MM: '%d నెలలà±',\n y: 'à°’à°• సంవతà±à°¸à°°à°‚',\n yy: '%d సంవతà±à°¸à°°à°¾à°²à±'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}à°µ/,\n ordinal: '%dà°µ',\n meridiemParse: /రాతà±à°°à°¿|ఉదయం|మధà±à°¯à°¾à°¹à±à°¨à°‚|సాయంతà±à°°à°‚/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాతà±à°°à°¿') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధà±à°¯à°¾à°¹à±à°¨à°‚') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంతà±à°°à°‚') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాతà±à°°à°¿';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధà±à°¯à°¾à°¹à±à°¨à°‚';\n } else if (hour < 20) {\n return 'సాయంతà±à°°à°‚';\n } else {\n return 'రాతà±à°°à°¿';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n return te;\n});","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return tet;\n});","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум'\n };\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'Ñнвари_феврали_марти_апрели_майи_июни_июли_авгуÑти_ÑентÑбри_октÑбри_ноÑбри_декабри'.split('_'),\n standalone: 'Ñнвар_феврал_март_апрел_май_июн_июл_авгуÑÑ‚_ÑентÑбр_октÑбр_ноÑбр_декабр'.split('_')\n },\n monthsShort: 'Ñнв_фев_мар_апр_май_июн_июл_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays: 'Ñкшанбе_душанбе_Ñешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),\n weekdaysShort: 'Ñшб_дшб_Ñшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'Ñш_дш_Ñш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Имрӯз Ñоати] LT',\n nextDay: '[Фардо Ñоати] LT',\n lastDay: '[Дирӯз Ñоати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оÑнда Ñоати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта Ñоати] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'Ñкчанд ÑониÑ',\n m: 'Ñк дақиқа',\n mm: '%d дақиқа',\n h: 'Ñк Ñоат',\n hh: '%d Ñоат',\n d: 'Ñк рӯз',\n dd: '%d рӯз',\n M: 'Ñк моҳ',\n MM: '%d моҳ',\n y: 'Ñк Ñол',\n yy: '%d Ñол'\n },\n meridiemParse: /шаб|Ñубҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'Ñубҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'Ñубҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1th is the first week of the year.\n }\n });\n return tg;\n});","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var th = moment.defineLocale('th', {\n months: 'มà¸à¸£à¸²à¸„ม_à¸à¸¸à¸¡à¸ าพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_à¸à¸£à¸à¸Žà¸²à¸„ม_สิงหาคม_à¸à¸±à¸™à¸¢à¸²à¸¢à¸™_ตุลาคม_พฤศจิà¸à¸²à¸¢à¸™_ธันวาคม'.split('_'),\n monthsShort: 'ม.ค._à¸.พ._มี.ค._เม.ย._พ.ค._มิ.ย._à¸.ค._ส.ค._à¸.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays: 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัสบดี_ศุà¸à¸£à¹Œ_เสาร์'.split('_'),\n weekdaysShort: 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัส_ศุà¸à¸£à¹Œ_เสาร์'.split('_'),\n // yes, three characters difference\n weekdaysMin: 'à¸à¸²._จ._à¸._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /à¸à¹ˆà¸à¸™à¹€à¸—ี่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'à¸à¹ˆà¸à¸™à¹€à¸—ี่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่à¸à¸§à¸²à¸™à¸™à¸µà¹‰ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่à¹à¸¥à¹‰à¸§ เวลา] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'à¸à¸µà¸ %s',\n past: '%sที่à¹à¸¥à¹‰à¸§',\n s: 'ไม่à¸à¸µà¹ˆà¸§à¸´à¸™à¸²à¸—ี',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดืà¸à¸™',\n MM: '%d เดืà¸à¸™',\n y: '1 ปี',\n yy: '%d ปี'\n }\n });\n return th;\n});","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\"\n };\n var tk = moment.defineLocale('tk', {\n months: 'Ãanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split('_'),\n monthsShort: 'Ãan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'ÃekÅŸenbe_DuÅŸenbe_SiÅŸenbe_ÇarÅŸenbe_PenÅŸenbe_Anna_Åženbe'.split('_'),\n weekdaysShort: 'Ãek_DuÅŸ_SiÅŸ_Çar_Pen_Ann_Åžen'.split('_'),\n weekdaysMin: 'Ãk_DÅŸ_SÅŸ_Çr_Pn_An_Åžn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl'\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return tk;\n});","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm'\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return tlPh;\n});","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n function translateFuture(output) {\n var time = output;\n time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'leS' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'waQ' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'nem' : time + ' pIq';\n return time;\n }\n function translatePast(output) {\n var time = output;\n time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'Hu’' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'wen' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'ben' : time + ' ret';\n return time;\n }\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n function numberAsNoun(number) {\n var hundred = Math.floor(number % 1000 / 100),\n ten = Math.floor(number % 100 / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),\n monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L'\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return tlh;\n});","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak YiÄŸit Kaya: https://github.com/BYK\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\"\n };\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Åžubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄŸustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort: 'Oca_Åžub_Mar_Nis_May_Haz_Tem_AÄŸu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_ÇarÅŸamba_PerÅŸembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl'\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return tr;\n});","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à ] LT',\n nextDay: '[demà à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[ieiri à ] LT',\n lastWeek: '[sür el] dddd [lasteu à ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n mÃut\", \"'iens mÃut\"],\n mm: [number + ' mÃuts', '' + number + ' mÃuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars']\n };\n return isFuture ? format[key][0] : withoutSuffix ? format[key][0] : format[key][1];\n }\n return tzl;\n});","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”'.split('_'),\n monthsShort: 'ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”'.split('_'),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ â´´] LT',\n nextDay: '[ⴰⵙⴽⴰ â´´] LT',\n nextWeek: 'dddd [â´´] LT',\n lastDay: '[ⴰⵚⴰâµâµœ â´´] LT',\n lastWeek: 'dddd [â´´] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'â´·â´°â´·âµ… âµ™ ⵢⴰⵠ%s',\n past: 'ⵢⴰⵠ%s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉâµâµ“â´º',\n mm: '%d ⵎⵉâµâµ“â´º',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉâµ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰâµ',\n M: 'â´°âµ¢oⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔâµ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙâµ'\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n return tzm;\n});","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuá¸',\n mm: '%d minuá¸',\n h: 'saÉ›a',\n hh: '%d tassaÉ›in',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn'\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n return tzmLatn;\n});","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_ÙÛۋرال_مارت_ئاپرÛÙ„_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سÛنتەبىر_ئۆكتەبىر_نويابىر_دÛكابىر'.split('_'),\n monthsShort: 'يانۋار_ÙÛۋرال_مارت_ئاپرÛÙ„_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سÛنتەبىر_ئۆكتەبىر_نويابىر_دÛكابىر'.split('_'),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split('_'),\n weekdaysShort: 'ÙŠÛ•_دۈ_سە_چا_Ù¾Û•_جۈ_Ø´Û•'.split('_'),\n weekdaysMin: 'ÙŠÛ•_دۈ_سە_چا_Ù¾Û•_جۈ_Ø´Û•'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىÚD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىÚD-كۈنى، HH:mm',\n LLLL: 'ddddØŒ YYYY-يىلىM-ئاينىÚD-كۈنى، HH:mm'\n },\n meridiemParse: /ÙŠÛرىم ÙƒÛÚ†Û•|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن ÙƒÛيىن|ÙƒÛ•Ú†/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ÙŠÛرىم ÙƒÛÚ†Û•' || meridiem === 'سەھەر' || meridiem === 'چۈشتىن بۇرۇن') {\n return hour;\n } else if (meridiem === 'چۈشتىن ÙƒÛيىن' || meridiem === 'ÙƒÛ•Ú†') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'ÙŠÛرىم ÙƒÛÚ†Û•';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن ÙƒÛيىن';\n } else {\n return 'ÙƒÛ•Ú†';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[ÙƒÛلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ÙƒÛيىن',\n past: '%s بۇرۇن',\n s: 'Ù†Û•Ú†Ú†Û• سÛكونت',\n ss: '%d سÛكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر ÙƒÛˆÙ†',\n dd: '%d ÙƒÛˆÙ†',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988ç‰æ•ˆ\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n return ugCn;\n});","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунди_Ñекунд' : 'Ñекунду_Ñекунди_Ñекунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'міÑÑць_міÑÑці_міÑÑців',\n yy: 'рік_роки_років'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative: 'неділÑ_понеділок_вівторок_Ñереда_четвер_п’ÑтницÑ_Ñубота'.split('_'),\n accusative: 'неділю_понеділок_вівторок_Ñереду_четвер_п’Ñтницю_Ñуботу'.split('_'),\n genitive: 'неділі_понеділка_вівторка_Ñереди_четверга_п’Ñтниці_Ñуботи'.split('_')\n },\n nounCase;\n if (m === true) {\n return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format) ? 'accusative' : /\\[?(?:минулої|наÑтупної)? ?\\] ?dddd/.test(format) ? 'genitive' : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'ÑічнÑ_лютого_березнÑ_квітнÑ_травнÑ_червнÑ_липнÑ_ÑерпнÑ_вереÑнÑ_жовтнÑ_лиÑтопада_груднÑ'.split('_'),\n standalone: 'Ñічень_лютий_березень_квітень_травень_червень_липень_Ñерпень_вереÑень_жовтень_лиÑтопад_грудень'.split('_')\n },\n monthsShort: 'Ñіч_лют_бер_квіт_трав_черв_лип_Ñерп_вер_жовт_лиÑÑ‚_груд'.split('_'),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY Ñ€.',\n LLL: 'D MMMM YYYY Ñ€., HH:mm',\n LLLL: 'dddd, D MMMM YYYY Ñ€., HH:mm'\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька Ñекунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'міÑÑць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|днÑ|вечора/,\n isPM: function (input) {\n return /^(днÑ|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return uk;\n});","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = ['جنوری', 'Ùروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعÛ', 'ÛÙتÛ'];\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ddddØŒ D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبØ|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبØ';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[Ú©Ù„ بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[Ú¯Ø°Ø´ØªÛ Ø±ÙˆØ² بوقت] LT',\n lastWeek: '[گذشتÛ] dddd [بوقت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹÛ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماÛ',\n MM: '%d ماÛ',\n y: 'ایک سال',\n yy: '%d سال'\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return ur;\n});","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var uz = moment.defineLocale('uz', {\n months: 'Ñнвар_феврал_март_апрел_май_июн_июл_авгуÑÑ‚_ÑентÑбр_октÑбр_ноÑбр_декабр'.split('_'),\n monthsShort: 'Ñнв_фев_мар_апр_май_июн_июл_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm'\n },\n calendar: {\n sameDay: '[Бугун Ñоат] LT [да]',\n nextDay: '[Ðртага] LT [да]',\n nextWeek: 'dddd [куни Ñоат] LT [да]',\n lastDay: '[Кеча Ñоат] LT [да]',\n lastWeek: '[Утган] dddd [куни Ñоат] LT [да]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурÑат',\n ss: '%d фурÑат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир Ñоат',\n hh: '%d Ñоат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return uz;\n});","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm'\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n return uzLatn;\n});","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split('_'),\n monthsParseExact: true,\n weekdays: 'chủ nháºt_thứ hai_thứ ba_thứ tÆ°_thứ năm_thứ sáu_thứ bảy'.split('_'),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngà y mai lúc] LT',\n nextWeek: 'dddd [tuần tá»›i lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trÆ°á»›c lúc] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s tá»›i',\n past: '%s trÆ°á»›c',\n s: 'và i giây',\n ss: '%d giây',\n m: 'má»™t phút',\n mm: '%d phút',\n h: 'má»™t giá»',\n hh: '%d giá»',\n d: 'má»™t ngà y',\n dd: '%d ngà y',\n w: 'má»™t tuần',\n ww: '%d tuần',\n M: 'má»™t tháng',\n MM: '%d tháng',\n y: 'má»™t năm',\n yy: '%d năm'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return vi;\n});","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Ãp~rÃl_~Máý_~Júñé~_Júl~ý_Ãú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),\n monthsShort: 'J~áñ_~Féb_~Már_~Ãpr_~Máý_~Júñ_~Júl_~Ãúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),\n monthsParseExact: true,\n weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~FrÃd~áý_S~átúr~dáý'.split('_'),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~FrÃ_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ã~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Ã~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~mÃñ~úté',\n mm: '%d m~Ãñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return xPseudo;\n});","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var yo = moment.defineLocale('yo', {\n months: 'SẹÌrẹÌ_EÌ€reÌ€leÌ€_Ẹrẹ̀naÌ€_IÌ€gbeÌ_EÌ€bibi_OÌ€kuÌ€du_Agẹmo_OÌ€guÌn_Owewe_Ọ̀waÌ€raÌ€_BeÌluÌ_Ọ̀pẹ̀̀'.split('_'),\n monthsShort: 'SẹÌr_EÌ€rl_Ẹrn_IÌ€gb_EÌ€bi_OÌ€kuÌ€_Agẹ_OÌ€guÌ_Owe_Ọ̀waÌ€_BeÌl_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'AÌ€iÌ€kuÌ_AjeÌ_IÌ€sẹÌgun_Ọjá»ÌruÌ_Ọjá»Ìbá»_ẸtiÌ€_AÌ€baÌmẹÌta'.split('_'),\n weekdaysShort: 'AÌ€iÌ€k_AjeÌ_IÌ€sẹÌ_Ọjr_Ọjb_ẸtiÌ€_AÌ€baÌ'.split('_'),\n weekdaysMin: 'AÌ€iÌ€_Aj_IÌ€s_Ọr_Ọb_Ẹt_AÌ€b'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[OÌ€niÌ€ ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ toÌn'bá»] [ni] LT\",\n lastDay: '[AÌ€na ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ toÌlá»Ì] [ni] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'niÌ %s',\n past: '%s ká»jaÌ',\n s: 'iÌ€sẹjuÌ aayaÌ die',\n ss: 'aayaÌ %d',\n m: 'iÌ€sẹjuÌ kan',\n mm: 'iÌ€sẹjuÌ %d',\n h: 'waÌkati kan',\n hh: 'waÌkati %d',\n d: 'á»já»Ì kan',\n dd: 'á»já»Ì %d',\n M: 'osuÌ€ kan',\n MM: 'osuÌ€ %d',\n y: 'á»duÌn kan',\n yy: 'á»duÌn %d'\n },\n dayOfMonthOrdinalParse: /á»já»Ì\\s\\d{1,2}/,\n ordinal: 'á»já»Ì %d',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return yo;\n});","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥Ah点mm分',\n LLLL: 'YYYYå¹´M月Dæ—¥ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // 'ä¸åˆ'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%såŽ',\n past: '%så‰',\n s: 'å‡ ç§’',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 å°æ—¶',\n hh: '%d å°æ—¶',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 å¹´',\n yy: '%d å¹´'\n },\n week: {\n // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988ç‰æ•ˆ\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n return zhCn;\n});","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上åˆ';\n } else if (hm === 1200) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%så‰',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分é˜',\n mm: '%d 分é˜',\n h: '1 å°æ™‚',\n hh: '%d å°æ™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 å¹´',\n yy: '%d å¹´'\n }\n });\n return zhHk;\n});","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%så…§',\n past: '%så‰',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分é˜',\n mm: '%d 分é˜',\n h: '1 å°æ™‚',\n hh: '%d å°æ™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 å¹´',\n yy: '%d å¹´'\n }\n });\n return zhMo;\n});","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%så‰',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分é˜',\n mm: '%d 分é˜',\n h: '1 å°æ™‚',\n hh: '%d å°æ™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 å¹´',\n yy: '%d å¹´'\n }\n });\n return zhTw;\n});","import React from 'react';\n\nimport {capitalize} from 'lodash';\nimport pluralize from 'pluralize';\n\nimport GenSidebarList from 'Gen/SidebarList'\n\nimport CatalogSummary from 'Catalog/Summary'\n\nexport default function CatalogList(\n {\n document_set_id,\n },\n) {\n return (\n <GenSidebarList\n title={capitalize(pluralize(i18n.t(\"catalog\")))}\n search\n searchPlaceHolder={\"Search...\"}\n itemsURL={\"/document_sets/\" + document_set_id + \"/document_sets\"}\n itemView={documentSet => <CatalogSummary documentSet={documentSet} key={documentSet.id} />}\n historyPersistance\n gridView\n filters={[\n {\n key: \"categories\",\n title: \"Tags\",\n displayLikeFilterGroup: true,\n type: \"checkboxes\",\n dataType: \"MDATA\",\n dataCount: \"MDATA_MANY\",\n options: [\n \"Cardiovascular\",\n \"Dermatology\",\n \"EENT\",\n \"Emergency Medicine\",\n \"Endocrinology\",\n \"Family Medicine\",\n \"Gastroenterology\",\n \"Geriatrics\",\n \"Interdisciplinary\",\n \"Musculoskeletal\",\n \"Nephrology\",\n \"Neurology\",\n \"Nursing\",\n \"OB/GYN\",\n \"Pediatrics\",\n \"Physician Assistant\",\n \"Psychology\",\n \"Pulmonology\",\n ],\n },\n {\n key: \"difficulty\",\n title: \"Difficulty\",\n displayLikeFilterGroup: true,\n type: \"checkboxes\",\n dataType: \"REGULAR\",\n options: [\n {\n displayName: \"Easy\",\n value: 1\n },\n {\n displayName: \"Intermediate\",\n value: 2\n },\n {\n displayName: \"Hard\",\n value: 3\n },\n ]\n },\n ]}\n />\n );\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = Label;\nvar _react = require('react');\nvar _react2 = _interopRequireDefault(_react);\nvar _propTypes = require('prop-types');\nvar _propTypes2 = _interopRequireDefault(_propTypes);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\n/**\n * @ignore\n * @param {Object} props\n * @param {InputRangeClassNames} props.classNames\n * @param {Function} props.formatLabel\n * @param {string} props.type\n */\nfunction Label(props) {\n var labelValue = props.formatLabel ? props.formatLabel(props.children, props.type) : props.children;\n return _react2.default.createElement('span', {\n className: props.classNames[props.type + 'Label']\n }, _react2.default.createElement('span', {\n className: props.classNames.labelContainer\n }, labelValue));\n}\n\n/**\n * @type {Object}\n * @property {Function} children\n * @property {Function} classNames\n * @property {Function} formatLabel\n * @property {Function} type\n */\nLabel.propTypes = {\n children: _propTypes2.default.node.isRequired,\n classNames: _propTypes2.default.objectOf(_propTypes2.default.string).isRequired,\n formatLabel: _propTypes2.default.func,\n type: _propTypes2.default.string.isRequired\n};\nmodule.exports = exports['default'];","import React from \"react\";\n\nimport GenBooleanCircle from \"../Gen/BooleanCircle\";\nimport GenButton from \"../Gen/Button\";\nimport GenGroupableTable from \"../Gen/GroupableTable\";\n\nimport CatalogReviewModal from \"./ReviewModal\";\n\nimport { stringDateToDisplayDateString } from \"../../src/time_display\";\nimport { fullURL } from \"../../src/url\";\n\nconst documentSetReportSettings = [\n {\n title: \"First Name\",\n key: \"first_name\",\n searchable: true,\n width: 100,\n },\n {\n title: \"Last Name\",\n key: \"last_name\",\n searchable: true,\n width: 100,\n },\n {\n title: \"Email\",\n key: \"email\",\n searchable: true,\n width: 250,\n },\n {\n title: \"Viewed Course\",\n key: \"viewed_course\",\n displayFunction: stringDateToDisplayDateString,\n width: 200,\n align: \"center\",\n },\n {\n title: \"Completed Course\",\n key: \"completed_course\",\n displayFunction: stringDateToDisplayDateString,\n width: 200,\n align: \"center\",\n },\n];\n\nconst documentReportSettings = [\n {\n title: \"First Name\",\n key: \"first_name\",\n grouping: \"user\",\n searchable: true,\n width: 100,\n },\n {\n title: \"Last Name\",\n key: \"last_name\",\n grouping: \"user\",\n searchable: true,\n width: 100,\n },\n {\n title: \"Email\",\n key: \"email\",\n grouping: \"user\",\n searchable: true,\n width: 250,\n },\n {\n title: \"Case Id\",\n key: \"id\",\n grouping: \"document\",\n searchable: true,\n width: 75,\n displayFunction: (value, rowData) => <a href={`/documents/${rowData.document.id}`} target=\"_blank\" rel=\"noreferrer\">{value}</a>,\n },\n {\n title: \"Case Name\",\n key: \"title\",\n grouping: \"document\",\n searchable: true,\n width: 250,\n displayFunction: (value, rowData) => <a href={`/documents/${rowData.document.id}`} target=\"_blank\" rel=\"noreferrer\">{value}</a>,\n },\n {\n title: \"Submitted\",\n key: \"submitted\",\n displayFunction: (value) => <GenBooleanCircle value={value} />,\n width: 100,\n align: \"center\",\n },\n {\n title: \"Time of Submission\",\n key: \"submitted_at\",\n displayFunction: stringDateToDisplayDateString,\n width: 200,\n align: \"center\",\n },\n {\n title: \"Grade\",\n key: \"grade_percentage\",\n displayFunction: (value, rowData) => `${Math.round(value * 100)}%`,\n width: 100,\n align: \"center\",\n },\n {\n title: \"Retook\",\n key: \"attempt_index\",\n displayFunction: (value) => value > 0 ? \"Yes\" : \"No\",\n width: 100,\n align: \"center\",\n },\n {\n title: \"Review\",\n key: \"review_button\",\n displayFunction: (value, rowData, setState) => (\n <GenButton\n name=\"Review\"\n highlighted={rowData.submitted}\n disabled={!rowData.submitted}\n onClick={() => { setState({reviewRow: rowData}); }}\n />\n ),\n width: 100,\n align: \"center\",\n },\n {\n title: \"Reviewed\",\n key: \"review_submitted\",\n displayFunction: (value) => <GenBooleanCircle value={value} />,\n width: 100,\n align: \"center\",\n },\n {\n title: \"Time of Review\",\n key: \"reviewed_at\",\n displayFunction: stringDateToDisplayDateString,\n width: 200,\n align: \"center\",\n },\n {\n title: \"Review Text\",\n key: \"review_comment\",\n searchable: true,\n width: 200,\n },\n];\n\nfunction WrappedCatalogReviewModal(props) {\n const {\n documentSet,\n reviewRow,\n processedItems,\n closeReviewRow,\n reloadData,\n selectNewReviewRow,\n } = props;\n\n return (\n <CatalogReviewModal\n documentSetId={documentSet.id}\n {...reviewRow}\n allItems={processedItems.flatMap((item) => item.unitSummaries)}\n afterSave={() => {\n reloadData();\n }}\n afterCancel={() => {\n closeReviewRow();\n }}\n setReviewRow={(newReviewRow) => {\n selectNewReviewRow(newReviewRow);\n }}\n />\n );\n}\n\nexport default function CatalogReport(props) {\n const {\n documentSet,\n chooseCaseReport,\n collapsedDocumentIds,\n } = props;\n\n const reports = [\n {\n name: \"Course\",\n key: \"course\",\n dataUrl: fullURL(`/document_sets/${documentSet.id}/usage_report`),\n settings: documentSetReportSettings,\n },\n {\n name: \"Case\",\n key: \"case\",\n dataUrl: fullURL(`/document_sets/${documentSet.id}/usage_report`),\n settings: documentReportSettings,\n groupings: [\n {\n name: \"Case\",\n key: \"document\",\n },\n {\n name: \"User\",\n key: \"user\",\n },\n ],\n reviewModal: WrappedCatalogReviewModal,\n extraModalData: {documentSet},\n },\n ];\n\n return (\n <GenGroupableTable\n reports={reports}\n defaultReportKey={chooseCaseReport ? 'case' : null}\n collapsedRowIds={collapsedDocumentIds}\n />\n );\n}\n","import React from 'react';\n\nimport GenList from 'Gen/List'\n\nimport CategorySummary from 'Category/Summary'\n\nexport default function CategoryList(\n {\n rootDocumentSetId,\n currentUser,\n currentRoleDefinition,\n },\n) {\n return (\n <GenList\n shouldDisableMoreButton\n itemsURL={\"/categories\"}\n itemView={(category, genListCallbacks) => {\n return (\n <CategorySummary\n key={category.id}\n rootDocumentSetId={rootDocumentSetId}\n {...category}\n currentUser={currentUser}\n currentRoleDefinition={currentRoleDefinition}\n positionCallback={genListCallbacks.refreshList}\n itemRefreshCallback={genListCallbacks.refreshItem}\n />\n );\n }}\n search={true}\n />\n );\n}\n","import React from 'react';\n\nimport {capitalize} from 'lodash';\n\nimport GenButton from 'Gen/Button'\nimport GenSelectList from 'Gen/SelectList'\n\nimport {documentListDefaults} from 'Document/ListDefaults'\n\nimport { documentDisplayTitle } from 'src/document_display_title'\n\n\nexport default class CategoryDocumentCreateSelectList extends React.Component {\n state = {\n selectedDocumentIds : [],\n loading: false\n };\n\n handleDocumentSelectionChange = (newSelection) => {\n this.setState({selectedDocumentIds : newSelection});\n };\n\n onSubmitSuccess = () => {\n const edit_url = window.location.href;\n const update_url = edit_url.replace(\"/category_documents/new_batch_list\", \"\");\n\n Turbolinks.visit(update_url);\n };\n\n handleSubmitButton = () => {\n if (this.state.selectedDocumentIds.length === 0) {\n alert(\"Nothing Selected! You must select at least one item to add.\");\n return(null);\n }\n\n let data = {documentIds: this.state.selectedDocumentIds};\n\n let edit_url = window.location.href;\n let update_url = edit_url.replace(\"new_\", \"create_\");\n\n this.setState({loading: true});\n\n fetch(update_url, {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(this.onSubmitSuccess)\n .catch(() => {\n this.setState({loading: false});\n });\n };\n\n render() {\n let documentSelectionView = <GenSelectList\n {...documentListDefaults}\n selected={this.state.selectedDocumentIds}\n onSelectionChange={this.handleDocumentSelectionChange}\n itemsURL={\"/categories/\"+ this.props.category_id +\"/category_documents/new_batch_list\"}\n itemView={function(document){\n return(\n <div key={document.id}>\n <span>{documentDisplayTitle(document)}</span>\n </div>);\n }}\n />;\n\n\n\n return(\n <div className=\"document-set-document-relations-select-list\">\n <div className=\"submit-panel\">\n <h1>Add Cases To {capitalize(i18n.t(\"category\"))}</h1>\n <GenButton\n name=\"Add\"\n highlighted={true}\n loading={this.state.loading}\n onClick={this.handleSubmitButton}\n />\n </div>\n <div>\n {documentSelectionView}\n </div>\n </div>\n );\n }\n}\n","import React from 'react';\n\nimport {capitalize} from 'lodash';\n\nimport GenButton from 'Gen/Button'\nimport GenSelectList from 'Gen/SelectList'\n\nimport {documentListDefaults} from 'Document/ListDefaults'\n\nimport { documentDisplayTitle } from 'src/document_display_title'\n\n\nexport default class CategoryDocumentDeleteSelectList extends React.Component {\n state = {\n selectedDocumentIds : [],\n loading: false\n };\n\n handleDocumentSelectionChange = (newSelection) => {\n this.setState({selectedDocumentIds : newSelection});\n };\n\n onSubmitSuccess = () => {\n const edit_url = window.location.href;\n const update_url = edit_url.replace(\"/category_documents/delete_batch_list\", \"\");\n\n Turbolinks.visit(update_url);\n };\n\n handleSubmitButton = () => {\n if (this.state.selectedDocumentIds.length === 0) {\n alert(\"Nothing Selected! You must select at least one item to remove.\");\n return(null);\n }\n\n let data = {documentIds: this.state.selectedDocumentIds};\n\n let edit_url = window.location.href;\n let update_url = edit_url.replace(\"delete_\", \"destroy_\");\n\n this.setState({loading: true});\n\n fetch(update_url, {\n method: \"DELETE\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(this.onSubmitSuccess)\n .catch(() => {\n this.setState({loading: false});\n });\n };\n\n render() {\n let documentSelectionView = <GenSelectList\n {...documentListDefaults}\n selected={this.state.selectedDocumentIds}\n onSelectionChange={this.handleDocumentSelectionChange}\n itemsURL={\"/categories/\"+ this.props.category_id +\"/category_documents/delete_batch_list\"}\n itemView={function(document){\n return(\n <div key={document.id}>\n <span>{documentDisplayTitle(document)}</span>\n </div>);\n }}\n />;\n\n\n\n return(\n <div className=\"document-set-document-relations-select-list\">\n <div className=\"submit-panel\">\n <h1>Remove Cases From {capitalize(i18n.t(\"category\"))}</h1>\n <GenButton\n name=\"Remove\"\n highlighted={true}\n loading={this.state.loading}\n onClick={this.handleSubmitButton}\n />\n </div>\n <div>\n {documentSelectionView}\n </div>\n </div>\n );\n }\n}\n","import React from 'react';\n\nimport GenList from 'Gen/List'\n\nimport DocumentSummary from 'Document/Summary'\n\nexport default function CategoryDocumentList(\n {\n category_id,\n rootDocumentSetId,\n currentUser,\n currentRoleDefinition,\n },\n) {\n return (\n <GenList\n itemsURL={\"/categories/\" + category_id + \"/category_documents\"}\n gridView\n itemView={category_document =>\n <DocumentSummary\n document={category_document}\n key={category_document.id}\n rootDocumentSetId={rootDocumentSetId}\n currentUser={currentUser}\n currentRoleDefinition={currentRoleDefinition}\n categoryId={category_id}\n />\n }\n search\n />\n );\n}\n","import React from \"react\";\n\nimport connectToList from \"../../store/list\";\n\nimport GenMore from \"../Gen/More\";\nimport GenControlsBar from \"../Gen/ControlsBar\";\nimport GenSearchBox from \"../Gen/SearchBox\";\nimport GenSortButtons from \"../Gen/SortButtons\";\n\nconst ENDPOINT = \"contributors\";\n\nfunction ContributorList(\n {\n contributors,\n },\n) {\n React.useEffect(() => {\n contributors.mountList(ENDPOINT);\n }, []);\n\n const items = (contributors.listData || []).map((item) => (\n <div className=\"panel\" key={item.id}>\n <div className=\"gen-panel-header\">\n <div className=\"gen-panel-header-title\">\n <h1>\n <a href={`/contributors/${item.id}`}>{item.name}{item.designation && `, ${item.designation}`}</a>\n </h1>\n </div>\n\n <div className=\"gen-panel-header-right-content\">\n <div className=\"list-stat-panels\">\n <div className=\"list-stat-panel\">\n <h1>{item.cached_assignment_count.toLocaleString()}</h1>\n <h5>Assignments</h5>\n </div>\n <div className=\"list-stat-panel\">\n <h1>{item.cached_view_count.toLocaleString()}</h1>\n <h5>Views</h5>\n </div>\n </div>\n </div>\n </div>\n </div>\n ));\n\n return (\n <div>\n <GenControlsBar>\n <GenSearchBox\n {...contributors}\n />\n <GenSortButtons\n {...contributors}\n sortOptions={[\n {\n title: \"Name\",\n value: \"contributors.name\",\n },\n {\n title: \"Assignments\",\n value: \"contributors.cached_assignment_count\",\n },\n {\n title: \"Views\",\n value: \"contributors.cached_view_count\",\n },\n ]}\n />\n </GenControlsBar>\n {items}\n <GenMore\n {...contributors}\n shouldInfiniteScroll\n />\n </div>\n );\n}\n\nexport default connectToList(ContributorList, \"contributors\");\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n return url;\n};","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n var stack = [];\n function convertValue(value) {\n if (value === null) return '';\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n return value;\n }\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n stack.push(data);\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function (el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n build(value, fullKey);\n });\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n build(obj);\n return formData;\n}\nmodule.exports = toFormData;","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(timeoutErrorMessage, transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function (cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || cancel && cancel.type ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n if (!requestData) {\n requestData = null;\n }\n var protocol = parseProtocol(fullPath);\n if (protocol && ['http', 'https', 'file'].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n // Send the request\n request.send(requestData);\n });\n};","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n utils.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue);\n });\n return config;\n};","module.exports = {\n \"version\": \"0.27.2\"\n};","import React from 'react';\n\nimport GenButton from 'Gen/Button'\nimport GenSidebarList from 'Gen/SidebarList'\n\nimport {captureListDefaults} from 'Document/CaptureListDefaults'\n\nexport default function CaptureList() {\n return(\n <GenSidebarList\n {...captureListDefaults}\n historyPersistance={true}\n beforeListContent={<GenButton key=\"Create\" name=\"New Capture\" highlighted={true} href=\"/captures/new\" bottom_margin={true}/>}\n />\n );\n}\n","import React from \"react\";\n\nimport { documentDisplayTitle } from \"../../src/document_display_title\";\n\nimport connectToList from \"../../store/list\";\n\nimport GenControlsBar from \"../Gen/ControlsBar\";\nimport GenMore from \"../Gen/More\";\nimport GenSearchBox from \"../Gen/SearchBox\";\nimport GenSortButtons from \"../Gen/SortButtons\";\n\nfunction DocumentContributorList(\n {\n institution_id,\n contributor_id,\n documentContributors,\n can_open_documents,\n root_url,\n },\n) {\n React.useEffect(() => {\n const endpoint = institution_id ? `institutions/${institution_id}/document_contributors` : `contributors/${contributor_id}/document_contributors`;\n\n documentContributors.mountList(endpoint);\n }, []);\n\n const items = (documentContributors.listData || []).map((item) => {\n let title = documentDisplayTitle(item.document);\n\n if (can_open_documents) {\n title = <a href={`${root_url}documents/${item.document.id}`}>{title}</a>;\n }\n\n return (\n <div className=\"gen-panel\" key={item.id}>\n <div className=\"gen-panel-header\">\n <div className=\"gen-panel-header-image\">\n <img src={item.document.cover_image} alt={`Case ${item.document.id} Cover`} width=\"150\" />\n </div>\n <div className=\"gen-panel-header-title\">\n <h1>\n {title}\n </h1>\n {!institution_id && (\n <>\n {item.author && <h4>Author</h4>}\n {item.editor && <h4>Editor</h4>}\n {item.conflict && <p>{item.conflict}</p>}\n </>\n )}\n </div>\n <div className=\"gen-panel-header-right-content\">\n <div className=\"list-stat-panels\">\n <div className=\"list-stat-panel\">\n <h1>{item.document.cached_assignment_count.toLocaleString()}</h1>\n <h5>Assignments</h5>\n </div>\n <div className=\"list-stat-panel\">\n <h1>{item.document.cached_view_count.toLocaleString()}</h1>\n <h5>Views</h5>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n });\n\n return (\n <div>\n <GenControlsBar>\n <GenSearchBox\n {...documentContributors}\n />\n <GenSortButtons\n {...documentContributors}\n sortOptions={[\n {\n title: \"Case #\",\n value: \"documents.id\",\n },\n {\n title: \"Title\",\n value: \"documents.title\",\n },\n {\n title: \"Assignments\",\n value: \"documents.cached_assignment_count\",\n },\n {\n title: \"Views\",\n value: \"documents.cached_view_count\",\n },\n ]}\n />\n </GenControlsBar>\n {items}\n <GenMore\n {...documentContributors}\n shouldInfiniteScroll\n />\n </div>\n );\n}\n\nexport default connectToList(DocumentContributorList, \"documentContributors\");\n","import React from \"react\";\n\nimport * as R from \"ramda\";\n\nimport connectToList from \"store/list\";\n\nimport { batch } from \"react-redux\";\n\nimport {\n stringToDate,\n translateToEffectiveDateReverse,\n translateToEffectiveDate,\n areEqualEffectiveDates,\n now,\n yesterday,\n atEarliestNow,\n selectionDescription,\n} from \"src/effective_dates\"\n\nimport GenButton from \"Gen/Button\";\nimport GenModal from \"Gen/Modal\";\nimport GenMore from \"Gen/More\";\nimport DocumentSetDocumentRelationScheduleStatus from \"DocumentSetDocumentRelation/ScheduleStatus\";\nimport GenControlsBar from \"Gen/ControlsBar\";\nimport GenSearchBox from \"Gen/SearchBox\";\nimport GenSelectBar from \"Gen/SelectBar\";\nimport GenSwitch, {switchModes} from \"Gen/Switch\";\nimport GenTableDisplay from \"Gen/TableDisplay\";\n\nimport DateTimePicker from \"react-widgets/lib/DateTimePicker\";\n\nimport \"react-widgets/dist/css/react-widgets.css\";\n\nconst ITEMS_PER_PAGE = 1000; // TODO: Look into why Gen/More doesn't work in Chrome\nconst TRUNCATE_COUNT = 8;\n\n\nclass DocumentSetEditDocumentsAccessTable extends React.Component {\n state = {\n // Updating DocumentSetDocumentRelation Records\n dsdrDocumentSchedule: {},\n dsdrItemSchedules: {},\n\n // Controls\n setVisibilityProcessing: false,\n setVisibilityModalOpen: false,\n showingCaseVisibilityControls: false,\n };\n\n componentDidMount() {\n batch(() => {\n this.props.documentSetDocumentRelations.setListItemsPerPage(ITEMS_PER_PAGE);\n this.props.documentSetDocumentRelations.mountList(this.endpoint());\n });\n }\n\n endpoint() {\n return \"/document_sets/\" + this.props.document_set_id + \"/document_set_document_relations\";\n }\n\n selectedDocumentSetDocumentRelationIds() {\n return this.props.documentSetDocumentRelations.selected.map((item) => item.id);\n }\n\n handleToggleSetVisibilityModalOpen(e) {\n this.setState({\n setVisibilityModalOpen: !this.state.setVisibilityModalOpen,\n dsdrDocumentSchedule: {},\n dsdrItemSchedules: {},\n showingCaseVisibilityControls: false\n });\n };\n\n handleSetVisibilitySubmit(e) {\n const data = {\n document_set_document_relation_ids: this.selectedDocumentSetDocumentRelationIds(),\n ...this.state.dsdrDocumentSchedule,\n drawer_schedules: this.state.dsdrItemSchedules\n };\n\n const visibilityUrl = window.location.href.replace(\"/edit_documents_access\", \"/update_documents_access\");\n\n this.setState({ setVisibilityProcessing: true });\n\n fetch(visibilityUrl, {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(this.onSetVisibilitySubmitSuccess.bind(this))\n .catch(() => {\n alert(\"Error: Updating Visibility!\");\n });\n };\n\n onSetVisibilitySubmitSuccess() {\n batch(() => {\n this.props.documentSetDocumentRelations.setListSelected([]);\n this.props.documentSetDocumentRelations.resetListSearch();\n this.props.documentSetDocumentRelations.resetListPages();\n this.props.documentSetDocumentRelations.readListPage();\n });\n\n this.setState({\n dsdrDocumentSchedule: {},\n dsdrItemSchedules: {},\n setVisibilityProcessing: false,\n setVisibilityModalOpen: false,\n showingCaseVisibilityControls: false\n });\n }\n\n itemVisibilityFor(show_after) {\n const show_after_date = stringToDate(show_after);\n\n let status = \"\";\n let className = \"\";\n if (show_after && !(show_after_date instanceof Date)) {\n className = \"hidden-cell\";\n } else if (show_after_date && show_after_date > now()) {\n status = `${show_after_date.getMonth() + 1}/${show_after_date.getDate()}/${show_after_date.getFullYear()}`;\n className = \"hidden-until-cell\";\n } else {\n className = \"visible-cell\";\n }\n\n return { status: <span className=\"schedule-status\">{status}</span>, className: className };\n }\n\n defaultSwitchStates() {\n const selectedDSDRs = this.props.documentSetDocumentRelations.selected;\n\n const caseSwitchMode = selectedDSDRs.reduce((acc, dsdr) => {\n const show_after = translateToEffectiveDate(dsdr.show_after);\n const show_until = translateToEffectiveDateReverse(dsdr.show_until);\n\n if (acc.hasOwnProperty(\"switchMode\")) {\n if (!areEqualEffectiveDates(acc.show_after, show_after) || !areEqualEffectiveDates(acc.show_until, show_until)) {\n return {\n switchMode: switchModes.MIXED\n };\n }\n } else {\n return {\n switchMode: show_after || show_until ? switchModes.OFF : switchModes.ON,\n show_after: show_after,\n show_until: show_until\n };\n }\n\n return acc;\n }, {});\n\n\n const itemKeys = R.uniq(selectedDSDRs.flatMap((dsdr) => Object.keys(dsdr.drawer_schedules)));\n const itemSwitchModes = selectedDSDRs.reduce((acc, dsdr) => {\n itemKeys.forEach((key) => {\n const showAfter = R.view(R.lensPath([\"drawer_schedules\", key, \"hide_until\"]), dsdr);\n const effectiveShowAfter = translateToEffectiveDate(showAfter);\n\n if (acc.hasOwnProperty(key)) {\n if (!areEqualEffectiveDates(acc[key].hide_until, effectiveShowAfter)) {\n acc[key] = {\n switchMode: switchModes.MIXED\n };\n }\n } else {\n acc[key] = {\n switchMode: !effectiveShowAfter ? switchModes.ON : switchModes.OFF,\n hide_until: effectiveShowAfter\n };\n }\n });\n\n return acc;\n }, {});\n\n return {\n caseSwitchMode,\n itemSwitchModes\n };\n }\n\n dsdrDocumentScheduleCorrection(dsdrDocumentSchedule) {\n const {\n show_after,\n show_until\n } = dsdrDocumentSchedule;\n\n const newDsdrDocumentSchedule = {\n ...dsdrDocumentSchedule\n };\n\n if (show_after) {\n if (show_until && show_until < show_after) {\n newDsdrDocumentSchedule.show_until = show_until < yesterday() ? null : show_after;\n }\n } else {\n if (!show_until) {\n newDsdrDocumentSchedule.show_until = new Date(0);\n }\n }\n\n return newDsdrDocumentSchedule;\n }\n\n render() {\n const {\n dsdrDocumentSchedule,\n dsdrItemSchedules,\n showingCaseVisibilityControls\n } = this.state;\n\n const selectedCount = this.props.documentSetDocumentRelations.selected.length;\n\n const switchStateModes = this.defaultSwitchStates();\n\n const selectExtraButtons = [\n <GenButton\n key=\"SetSchedule\"\n name=\"Set Visibility For Selected\"\n highlighted\n small\n disabled={selectedCount === 0}\n onClick={this.handleToggleSetVisibilityModalOpen.bind(this)}\n />\n ];\n\n const defaultCaseSwitchMode = switchStateModes.caseSwitchMode.switchMode || switchModes.ON;\n const caseSwitchMode = showingCaseVisibilityControls ? showingCaseVisibilityControls : defaultCaseSwitchMode;\n\n let caseStateText;\n switch (caseSwitchMode) {\n case switchModes.ON:\n caseStateText = \"Showing\";\n break;\n case switchModes.OFF:\n caseStateText = \"Schedule Case Visibility\";\n break;\n case switchModes.MIXED:\n caseStateText = \"Selected cases will retain current settings\";\n break;\n }\n\n const show_after = dsdrDocumentSchedule.hasOwnProperty(\"show_after\") ? dsdrDocumentSchedule.show_after : switchStateModes.caseSwitchMode.show_after;\n const show_until = dsdrDocumentSchedule.hasOwnProperty(\"show_until\") ? dsdrDocumentSchedule.show_until : switchStateModes.caseSwitchMode.show_until;\n\n const dsdrDocumentScheduleComputed = {\n show_after: show_after,\n show_until: show_until\n };\n\n const caseVisibilityControls = <div className=\"case-visibility-controls\">\n <div className=\"set-visibility-row\">\n <p className=\"visibility-control-detail-paragraph\"> Show after: </p>\n <DateTimePicker\n min={now()}\n placeholder={\"optional\"}\n value={show_after instanceof Date ? show_after : null}\n onChange={(date) => this.setState({dsdrDocumentSchedule: this.dsdrDocumentScheduleCorrection({...dsdrDocumentScheduleComputed, show_after: atEarliestNow(date)})})}\n />\n <GenButton\n name=\"X\"\n highlighted\n disabled={!(show_after instanceof Date)}\n small\n className=\"clear-button\"\n onClick={() => this.setState({dsdrDocumentSchedule: this.dsdrDocumentScheduleCorrection({...dsdrDocumentScheduleComputed, show_after: null})})}\n />\n </div>\n\n <div className=\"set-visibility-row\">\n <p className=\"visibility-control-detail-paragraph\"> Show until: </p>\n <DateTimePicker\n min={show_after || now()}\n placeholder={\"optional\"}\n value={show_until instanceof Date && show_until > yesterday() ? show_until : null}\n onChange={(date) => {\n const dateToUse = date < now() ? now() : date;\n this.setState({dsdrDocumentSchedule: this.dsdrDocumentScheduleCorrection({...dsdrDocumentScheduleComputed, show_until: dateToUse})});\n }}\n />\n <GenButton\n name=\"X\"\n highlighted\n disabled={!(show_until instanceof Date) || show_until < yesterday()}\n small\n className=\"clear-button\"\n onClick={() => this.setState({dsdrDocumentSchedule: this.dsdrDocumentScheduleCorrection({...dsdrDocumentScheduleComputed, show_until: null})})}\n />\n </div>\n </div>;\n\n const scheduleItemInfos = [\n {key: \"vitals\", title: \"Vitals and Demographics\", shortTitle: \"Vitals\"},\n {key: \"differential\", title: \"Differential Diagnosis\", shortTitle: \"Diff\"},\n {key: \"workup\", title: \"Patient Workup\", shortTitle: \"Workup\"},\n {key: \"diagnosis\", title: \"Diagnosis\", shortTitle: \"Diag\"},\n {key: \"outcomes\", title: \"Actual Outcomes\", shortTitle: \"Outcomes\"},\n {key: \"care\", title: \"Standard of Care\", shortTitle: \"Stdrds\"},\n {key: \"keypoints\", title: \"Key Points\", shortTitle: \"Key Points\"}\n ];\n\n const scheduleItems = scheduleItemInfos.map((itemInfo) => {\n const itemDefaults = switchStateModes.itemSwitchModes[itemInfo.key];\n const defaultSwitchMode = (itemDefaults && itemDefaults.switchMode) || switchModes.ON;\n\n let showAfter, switchMode;\n if (dsdrItemSchedules.hasOwnProperty(itemInfo.key)) {\n showAfter = dsdrItemSchedules[itemInfo.key] && dsdrItemSchedules[itemInfo.key].hide_until;\n switchMode = !showAfter ? switchModes.ON : switchModes.OFF;\n } else {\n showAfter = itemDefaults && itemDefaults.hide_until;\n switchMode = defaultSwitchMode;\n }\n\n let stateText;\n switch (switchMode) {\n case switchModes.ON:\n stateText = \"Showing\";\n break;\n case switchModes.OFF:\n stateText = \"Hide until:\";\n break;\n case switchModes.MIXED:\n stateText = \"Selected cases will retain current settings\";\n break;\n }\n\n return <div key={itemInfo.key} className=\"drawer\">\n <strong className=\"drawer-strong\"> {itemInfo.title} </strong>\n <div>\n <div className=\"set-visibility-row\">\n <GenSwitch\n value={switchMode}\n includeMixed={defaultSwitchMode === switchModes.MIXED}\n onClick={(newSwitchMode) => {\n switch (newSwitchMode) {\n case switchModes.MIXED:\n this.setState({ dsdrItemSchedules: R.omit([itemInfo.key], dsdrItemSchedules) });\n break;\n case switchModes.ON:\n this.setState({ dsdrItemSchedules: {...dsdrItemSchedules, [itemInfo.key]: {hide_until: false}} });\n break;\n case switchModes.OFF:\n this.setState({ dsdrItemSchedules: {...dsdrItemSchedules, [itemInfo.key]: {hide_until: true}} });\n break;\n }\n }}\n />\n <p className=\"visibility-control-detail-paragraph\"> {stateText} </p>\n {switchMode === switchModes.OFF && <>\n <DateTimePicker\n min={now()}\n placeholder={\"Forever\"}\n value={showAfter instanceof Date ? showAfter : null}\n onChange={(date) => {\n const dateToUse = date < now() ? now() : date;\n this.setState({dsdrItemSchedules: {...dsdrItemSchedules, [itemInfo.key]: {hide_until: dateToUse}}});\n }}\n />\n <GenButton\n name=\"X\"\n highlighted\n disabled={!(showAfter instanceof Date)}\n small\n className=\"clear-button\"\n onClick={() => this.setState({ dsdrItemSchedules: {...dsdrItemSchedules, [itemInfo.key]: {hide_until: true}}})}\n />\n </>}\n </div>\n </div>\n </div>;\n });\n\n let caseIDs = this.props.documentSetDocumentRelations.selected.map((item) => item.document_id).sort((a, b) => a-b);\n let showMore;\n if (selectedCount > TRUNCATE_COUNT + 1) {\n if (!this.state.showAllCaseIDSummary) {\n caseIDs = caseIDs.slice(0, TRUNCATE_COUNT);\n showMore = <>and {selectedCount - TRUNCATE_COUNT} more. <a style={{\"text-decoration\": \"underline\"}}>Show All</a></>;\n } else {\n showMore = <> <a style={{\"text-decoration\": \"underline\"}}>Hide All</a></>;\n }\n }\n\n const modalCaseIDSummary = <p className='case-ids'>Changes made will affect case(s) with id(s)... {caseIDs.join(\", \")} {showMore}</p>;\n return <div>\n <GenModal open={this.state.setVisibilityModalOpen} closeModelFunction={this.handleToggleSetVisibilityModalOpen.bind(this)}>\n <div className=\"gen-modal-panel\">\n <div className=\"edit-documents-access-modal-header\">\n <h1>Set Visibility</h1>\n <div className=\"gen-button-right-group\">\n <GenButton\n name=\"Cancel\"\n highlighted\n small\n onClick={this.handleToggleSetVisibilityModalOpen.bind(this)}\n />\n <GenButton\n name=\"Save\"\n highlighted\n small\n loading={this.state.setVisibilityProcessing}\n onClick={this.handleSetVisibilitySubmit.bind(this)}\n />\n </div>\n </div>\n\n <div className=\"case-control-header\">\n <h3 className=\"visibility-h3\"> Case{(selectedCount > 1) ? \"s\" : \"\"} {`(${selectedCount} Selected)`}</h3>\n <h6 className=\"case-state-label\">\n <DocumentSetDocumentRelationScheduleStatus\n showAfter={show_after}\n showUntil={show_until}\n mixedOverride={caseSwitchMode === switchModes.MIXED}\n hideOverride={caseSwitchMode === switchModes.OFF}\n />\n </h6>\n </div>\n\n <div onClick={() => this.setState({showAllCaseIDSummary: !this.state.showAllCaseIDSummary})}>\n {modalCaseIDSummary}\n </div>\n\n <div className=\"edit-documents-access-modal-bordered-section\">\n <div className=\"case-visibility-switch-row\">\n <GenSwitch\n value={caseSwitchMode}\n includeMixed={switchStateModes.caseSwitchMode.switchMode === switchModes.MIXED}\n onClick={(newSwitchMode) => {\n let dsdrDocumentSchedule;\n switch (newSwitchMode) {\n case switchModes.ON:\n dsdrDocumentSchedule = {\n show_after: null,\n show_until: null\n };\n break;\n case switchModes.OFF:\n if (switchStateModes.caseSwitchMode.switchMode === switchModes.OFF) {\n dsdrDocumentSchedule = {};\n } else {\n dsdrDocumentSchedule = this.dsdrDocumentScheduleCorrection({\n show_after: null,\n show_until: null\n });\n }\n\n break;\n case switchModes.MIXED:\n default:\n dsdrDocumentSchedule = {};\n }\n\n this.setState({\n showingCaseVisibilityControls: newSwitchMode,\n dsdrDocumentSchedule: dsdrDocumentSchedule\n });\n }}\n />\n <h6 className=\"case-state-text\"> {caseStateText} </h6>\n </div>\n {caseSwitchMode === switchModes.OFF && caseVisibilityControls}\n </div>\n\n <h5 className=\"drawer-control-header\"> Drawers </h5>\n <div className=\"edit-documents-access-modal-bordered-section\">\n {scheduleItems}\n </div>\n </div>\n </GenModal>\n <GenSelectBar\n {...this.props.documentSetDocumentRelations}\n itemType={\"case(s)\"}\n selectExtraButtons={selectExtraButtons}\n selectionDescription={selectionDescription}\n />\n <GenControlsBar>\n <GenSearchBox\n {...this.props.documentSetDocumentRelations}\n showSearch\n />\n </GenControlsBar>\n <GenTableDisplay\n {...this.props.documentSetDocumentRelations}\n columns= {[\n {\n \"title\": \"\",\n \"sort_column\": \"\",\n \"calculated_value\": (item) => (\n <DocumentSetDocumentRelationScheduleStatus\n showAfter={item.show_after}\n showUntil={item.show_until}\n hideStatusText\n />\n )\n },\n {\n \"key\": \"Case Id\",\n \"title\": <><span className=\"adaptive-table-header\">Case </span>ID</>,\n \"sort_column\": \"documents.id\",\n \"calculated_value\": (item) => <p className=\"edit-documents-access-table-centered-paragraph\">{item.document_id}</p>,\n \"center_column_header\": true\n },\n {\n \"key\": \"Case Title\",\n \"title\": <><span className=\"adaptive-table-header\">Case </span>Title</>,\n \"column_width\": \"extra-large\",\n \"sort_column\": \"documents.title\",\n \"calculated_value\": (item) => <a href={\"/document_set_document_relations/\" + item.id}>{item.document.title}</a>,\n \"center_column_header\": true\n },\n ...scheduleItemInfos.map((itemInfo) => {\n return {\n \"title\": itemInfo.shortTitle || itemInfo.title,\n \"calculated_value\": (item) => {\n const itemSchedule = item.drawer_schedules[itemInfo.key] || {};\n return this.itemVisibilityFor(itemSchedule.hide_until).status;\n },\n \"calculated_class_name\": (item) => {\n const itemSchedule = item.drawer_schedules[itemInfo.key] || {};\n return this.itemVisibilityFor(itemSchedule.hide_until).className;\n },\n \"center_column_header\": true\n };\n })\n ]}\n />\n <GenMore\n {...this.props.documentSetDocumentRelations}\n shouldInfiniteScroll\n />\n </div>;\n }\n}\n\nexport default connectToList(DocumentSetEditDocumentsAccessTable, \"documentSetDocumentRelations\");\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = ownerDocument;\nfunction ownerDocument(node) {\n return node && node.ownerDocument || document;\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar Widget = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Widget, _React$Component);\n function Widget() {\n return _React$Component.apply(this, arguments) || this;\n }\n var _proto = Widget.prototype;\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n tabIndex = _this$props.tabIndex,\n focused = _this$props.focused,\n open = _this$props.open,\n dropUp = _this$props.dropUp,\n disabled = _this$props.disabled,\n readOnly = _this$props.readOnly,\n autofilling = _this$props.autofilling,\n _this$props$isRtl = _this$props.isRtl,\n isRtl = _this$props$isRtl === void 0 ? this.context.isRtl : _this$props$isRtl,\n props = _objectWithoutProperties(_this$props, [\"className\", \"tabIndex\", \"focused\", \"open\", \"dropUp\", \"disabled\", \"readOnly\", \"autofilling\", \"isRtl\"]);\n tabIndex = tabIndex != null ? tabIndex : '-1';\n return _react.default.createElement(\"div\", _extends({}, props, {\n tabIndex: tabIndex,\n className: (0, _classnames.default)(className, 'rw-widget', isRtl && 'rw-rtl', disabled && 'rw-state-disabled', readOnly && 'rw-state-readonly', focused && 'rw-state-focus', autofilling && 'rw-webkit-autofill', open && \"rw-open\" + (dropUp ? '-up' : ''))\n }));\n };\n return Widget;\n}(_react.default.Component);\nWidget.contextTypes = {\n isRtl: _propTypes.default.bool\n};\nWidget.propTypes = {\n tabIndex: _propTypes.default.node,\n focused: _propTypes.default.bool,\n disabled: _propTypes.default.bool,\n readOnly: _propTypes.default.bool,\n autofilling: _propTypes.default.bool,\n open: _propTypes.default.bool,\n dropUp: _propTypes.default.bool,\n isRtl: _propTypes.default.bool\n};\nvar _default = Widget;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = void 0;\nvar _on = _interopRequireDefault(require(\"./on\"));\nexports.on = _on.default;\nvar _off = _interopRequireDefault(require(\"./off\"));\nexports.off = _off.default;\nvar _filter = _interopRequireDefault(require(\"./filter\"));\nexports.filter = _filter.default;\nvar _listen = _interopRequireDefault(require(\"./listen\"));\nexports.listen = _listen.default;\nvar _default = {\n on: _on.default,\n off: _off.default,\n filter: _filter.default,\n listen: _listen.default\n};\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = void 0;\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\nvar on = function on() {};\nif (_inDOM.default) {\n on = function () {\n if (document.addEventListener) return function (node, eventName, handler, capture) {\n return node.addEventListener(eventName, handler, capture || false);\n };else if (document.attachEvent) return function (node, eventName, handler) {\n return node.attachEvent('on' + eventName, function (e) {\n e = e || window.event;\n e.target = e.target || e.srcElement;\n e.currentTarget = node;\n handler.call(node, e);\n });\n };\n }();\n}\nvar _default = on;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = void 0;\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\nvar off = function off() {};\nif (_inDOM.default) {\n off = function () {\n if (document.addEventListener) return function (node, eventName, handler, capture) {\n return node.removeEventListener(eventName, handler, capture || false);\n };else if (document.attachEvent) return function (node, eventName, handler) {\n return node.detachEvent('on' + eventName, handler);\n };\n }();\n}\nvar _default = off;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = void 0;\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\nvar _default = function () {\n // HTML DOM and SVG DOM may have different support levels,\n // so we need to check on context instead of a document root element.\n return _inDOM.default ? function (context, node) {\n if (context.contains) {\n return context.contains(node);\n } else if (context.compareDocumentPosition) {\n return context === node || !!(context.compareDocumentPosition(node) & 16);\n } else {\n return fallback(context, node);\n }\n } : fallback;\n}();\nexports.default = _default;\nfunction fallback(context, node) {\n if (node) do {\n if (node === context) return true;\n } while (node = node.parentNode);\n return false;\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = qsa;\n// Zepto.js\n// (c) 2010-2015 Thomas Fuchs\n// Zepto.js may be freely distributed under the MIT license.\nvar simpleSelectorRE = /^[\\w-]*$/;\nvar toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);\nfunction qsa(element, selector) {\n var maybeID = selector[0] === '#',\n maybeClass = selector[0] === '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector,\n isSimple = simpleSelectorRE.test(nameOnly),\n found;\n if (isSimple) {\n if (maybeID) {\n element = element.getElementById ? element : document;\n return (found = element.getElementById(nameOnly)) ? [found] : [];\n }\n if (element.getElementsByClassName && maybeClass) return toArray(element.getElementsByClassName(nameOnly));\n return toArray(element.getElementsByTagName(selector));\n }\n return toArray(element.querySelectorAll(selector));\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = camelizeStyleName;\nvar _camelize = _interopRequireDefault(require(\"./camelize\"));\n\n/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js\n */\nvar msPattern = /^-ms-/;\nfunction camelizeStyleName(string) {\n return (0, _camelize.default)(string.replace(msPattern, 'ms-'));\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = offset;\nvar _contains = _interopRequireDefault(require(\"./contains\"));\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\nvar _ownerDocument = _interopRequireDefault(require(\"../ownerDocument\"));\nfunction offset(node) {\n var doc = (0, _ownerDocument.default)(node),\n win = (0, _isWindow.default)(doc),\n docElem = doc && doc.documentElement,\n box = {\n top: 0,\n left: 0,\n height: 0,\n width: 0\n };\n if (!doc) return; // Make sure it's not a disconnected DOM node\n\n if (!(0, _contains.default)(docElem, node)) return box;\n if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect(); // IE8 getBoundingClientRect doesn't support width & height\n\n box = {\n top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),\n left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0),\n width: (box.width == null ? node.offsetWidth : box.width) || 0,\n height: (box.height == null ? node.offsetHeight : box.height) || 0\n };\n return box;\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\nvar _PropTypes = require(\"./utils/PropTypes\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\nvar Transition = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n function Transition(props, context) {\n var _this;\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n var _proto = Transition.prototype;\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n };\n };\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n if (prevProps !== this.props) {\n var status = this.state.status;\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n this.updateStatus(false, nextStatus);\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n var node = _reactDom.default.findDOMNode(this);\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n var active = true;\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n this.nextCallback.cancel = function () {\n active = false;\n };\n return this.nextCallback;\n };\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n _proto.render = function render() {\n var status = this.state.status;\n if (status === UNMOUNTED) {\n return null;\n }\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n var child = _react.default.Children.only(children);\n return _react.default.cloneElement(child, childProps);\n };\n return Transition;\n}(_react.default.Component);\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n /**\n * Normally a component is not transitioned if it is shown when the `<Transition>` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `<Transition>` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return pt.apply(void 0, [props].concat(args));\n },\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n} : {};\nfunction noop() {}\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\nexports.default = _default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createChainableTypeChecker;\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n// Mostly taken from ReactPropTypes.\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<<anonymous>>';\n var propFullNameSafe = propFullName || propName;\n if (props[propName] == null) {\n if (isRequired) {\n return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));\n }\n return null;\n }\n for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n args[_key - 6] = arguments[_key];\n }\n return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));\n }\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n}\nmodule.exports = exports['default'];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = createTimeoutManager;\nvar _spyOnComponent = _interopRequireDefault(require(\"spy-on-component\"));\nvar _mountManager = _interopRequireDefault(require(\"./mountManager\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction createTimeoutManager(componentInstance) {\n var isMounted = (0, _mountManager.default)(componentInstance);\n var timers = Object.create(null);\n var manager;\n (0, _spyOnComponent.default)(componentInstance, {\n componentWillUnmount: function componentWillUnmount() {\n for (var k in timers) {\n clearTimeout(timers[k]);\n }\n timers = null;\n }\n });\n return manager = {\n clear: function clear(key) {\n clearTimeout(timers[key]);\n },\n set: function set(key, fn, ms) {\n if (!isMounted()) return;\n manager.clear(key);\n timers[key] = setTimeout(fn, ms);\n }\n };\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.search = exports.clock = exports.calendar = exports.chevronLeft = exports.chevronRight = exports.caretDown = exports.caretUp = void 0;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar propTypes = {\n icon: _propTypes.default.string.isRequired\n};\nvar Icon = function Icon(_ref) {\n var icon = _ref.icon;\n return _react.default.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"rw-i rw-i-\" + icon\n });\n};\nIcon.propTypes = propTypes;\nvar caretUp = _react.default.createElement(Icon, {\n icon: \"caret-up\"\n});\nexports.caretUp = caretUp;\nvar caretDown = _react.default.createElement(Icon, {\n icon: \"caret-down\"\n});\nexports.caretDown = caretDown;\nvar chevronRight = _react.default.createElement(Icon, {\n icon: \"chevron-right\"\n});\nexports.chevronRight = chevronRight;\nvar chevronLeft = _react.default.createElement(Icon, {\n icon: \"chevron-left\"\n});\nexports.chevronLeft = chevronLeft;\nvar calendar = _react.default.createElement(Icon, {\n icon: \"calendar\"\n});\nexports.calendar = calendar;\nvar clock = _react.default.createElement(Icon, {\n icon: \"clock-o\"\n});\nexports.clock = clock;\nvar search = _react.default.createElement(Icon, {\n icon: \"search\"\n});\nexports.search = search;\nvar _default = Icon;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = createFocusManager;\nvar _reactComponentManagers = require(\"react-component-managers\");\nvar _interaction = require(\"./interaction\");\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction createFocusManager(inst, options) {\n var _didHandle = options.didHandle;\n return (0, _reactComponentManagers.focusManager)(inst, _extends({}, options, {\n onChange: function onChange(focused) {\n inst.setState({\n focused: focused\n });\n },\n isDisabled: function isDisabled() {\n return inst.props.disabled === true || (0, _interaction.isInDisabledFieldset)(inst);\n },\n didHandle: function didHandle(focused, event) {\n var handler = this.props[focused ? 'onFocus' : 'onBlur'];\n handler && handler(event);\n if (_didHandle && !event.isWidgetDefaultPrevented) _didHandle(focused, event);\n }\n }));\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.defaultGetDataState = defaultGetDataState;\nexports.getCommonListProps = getCommonListProps;\nexports.default = reduceToListState;\nvar _Filter = require(\"./Filter\");\nvar _ = require(\"./_\");\nvar _dataHelpers = require(\"./dataHelpers\");\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nvar EMPTY_VALUE = {};\nvar returnFalse = function returnFalse() {\n return false;\n};\nfunction defaultGetDataState(data, _ref, lastState) {\n var groupBy = _ref.groupBy;\n if (lastState === void 0) {\n lastState = {};\n }\n if (lastState.data !== data || lastState.groupBy !== groupBy) {\n if (!groupBy) return {};\n var keys = [];\n var groups = (0, _.groupBySortedKeys)(groupBy, data, keys);\n return {\n data: data,\n groupBy: groupBy,\n groups: groups,\n sortedKeys: keys,\n sequentialData: Object.keys(groups).reduce(function (flat, grp) {\n return flat.concat(groups[grp]);\n }, [])\n };\n }\n return lastState;\n}\nvar getStateGetterFromList = function getStateGetterFromList(_ref2) {\n var l = _ref2.listComponent;\n return l && l.getDataState;\n};\nvar getIsDisabled = function getIsDisabled(disabledProp, valueField) {\n return !Array.isArray(disabledProp) ? returnFalse : function (item) {\n return disabledProp.some(function (i) {\n return (0, _dataHelpers.dataValue)(item, valueField) === (0, _dataHelpers.dataValue)(i, valueField);\n });\n };\n};\nfunction getCommonListProps(list, accessors, _ref3) {\n var groupBy = _ref3.groupBy,\n optionComponent = _ref3.optionComponent,\n itemComponent = _ref3.itemComponent,\n groupComponent = _ref3.groupComponent,\n searchTerm = _ref3.searchTerm,\n listProps = _ref3.listProps;\n return _extends({\n searchTerm: searchTerm,\n groupBy: groupBy,\n groupComponent: groupComponent,\n itemComponent: itemComponent,\n optionComponent: optionComponent\n }, listProps, {\n data: list.data,\n dataState: list.state,\n textAccessor: accessors.text,\n valueAccessor: accessors.value\n });\n}\nfunction reduceToListState(nextListData, prevList, _temp) {\n var _ref4 = _temp === void 0 ? {} : _temp,\n nextProps = _ref4.nextProps,\n getDataState = _ref4.getDataState;\n var disabled = nextProps.disabled,\n valueField = nextProps.valueField,\n textField = nextProps.textField;\n getDataState = getDataState || getStateGetterFromList(nextProps) || defaultGetDataState;\n var dataState = getDataState(nextListData, nextProps, prevList && prevList.dataState);\n var data = dataState && dataState.sequentialData || nextListData;\n var isDisabled = getIsDisabled(disabled, valueField);\n var moveNext = function moveNext(item, word) {\n return isDisabled(item) || word && !_Filter.presets.startsWith((0, _dataHelpers.dataText)(item, textField).toLowerCase(), word.toLowerCase());\n };\n var list = {\n dataState: dataState,\n isDisabled: isDisabled,\n first: function first() {\n return list.next(EMPTY_VALUE);\n },\n last: function last() {\n return list.prevEnabled(data[data.length - 1]);\n },\n prev: function prev(item, word) {\n var nextIdx = Math.max(0, data.indexOf(item)) - 1;\n while (nextIdx > -1 && moveNext(data[nextIdx], word)) {\n nextIdx--;\n }\n if (nextIdx >= 0) return data[nextIdx];\n return isDisabled(item) ? null : item;\n },\n next: function next(item, word) {\n var nextIdx = data.indexOf(item) + 1;\n while (nextIdx < data.length && moveNext(data[nextIdx], word)) {\n nextIdx++;\n }\n if (nextIdx < data.length) return data[nextIdx];\n return isDisabled(item) ? null : item;\n },\n prevEnabled: function prevEnabled(item) {\n return isDisabled(item) ? list.prev(item) : item;\n },\n nextEnabled: function nextEnabled(item) {\n return isDisabled(item) ? list.next(item) : item;\n }\n };\n return list;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.dataIndexOf = dataIndexOf;\nexports.valueMatcher = valueMatcher;\nexports.dataItem = dataItem;\nexports.dataText = exports.dataValue = void 0;\nvar _ = require(\"./_\");\nvar dataValue = function dataValue(data, field) {\n var value = data;\n if (typeof field === 'function') value = field(data);else if (data == null) value = data;else if (typeof field === 'string' && typeof data === 'object' && field in data) value = data[field];\n return value;\n};\nexports.dataValue = dataValue;\nvar dataText = function dataText(item, textField) {\n var value = dataValue(item, textField);\n return value == null ? '' : value + '';\n};\nexports.dataText = dataText;\nfunction dataIndexOf(data, item, valueField) {\n var idx = -1;\n var isValueEqual = function isValueEqual(datum) {\n return valueMatcher(item, datum, valueField);\n };\n while (++idx < data.length) {\n var datum = data[idx];\n if (datum === item || isValueEqual(datum)) return idx;\n }\n return -1;\n}\n/**\n * I don't know that the shallow equal makes sense here but am too afraid to\n * remove it.\n */\n\nfunction valueMatcher(a, b, valueField) {\n return (0, _.isShallowEqual)(dataValue(a, valueField), dataValue(b, valueField));\n}\nfunction dataItem(data, item, valueField) {\n var idx = dataIndexOf(data, item, valueField);\n return idx !== -1 ? data[idx] : item;\n}","import React from \"react\";\n\nimport * as R from \"ramda\";\n\nimport connectToList from \"store/list\";\n\nimport { batch } from \"react-redux\";\n\nimport {\n stringToDate,\n areEqualEffectiveDates,\n now,\n yesterday,\n selectionDescription,\n} from \"src/effective_dates\"\n\nimport GenButton from \"Gen/Button\";\nimport GenModal from \"Gen/Modal\";\nimport GenMore from \"Gen/More\";\nimport DocumentSetDocumentRelationScheduleStatus from \"DocumentSetDocumentRelation/ScheduleStatus\";\nimport GenControlsBar from \"Gen/ControlsBar\";\nimport GenSearchBox from \"Gen/SearchBox\";\nimport GenSelectBar from \"Gen/SelectBar\";\nimport GenSwitch, {switchModes} from \"Gen/Switch\";\nimport GenTableDisplay from \"Gen/TableDisplay\";\n\nimport DateTimePicker from \"react-widgets/lib/DateTimePicker\";\n\nimport \"react-widgets/dist/css/react-widgets.css\";\n\nconst ITEMS_PER_PAGE = 1000; // TODO: Look into why Gen/More doesn't work in Chrome\nconst TRUNCATE_COUNT = 8;\n\n\nclass DocumentSetEditDocumentsActivitiesTable extends React.Component {\n state = {\n // Updating DocumentSetDocumentRelation Records\n // dsdrDocumentSchedule: {},\n dsdrItemSchedules: {},\n\n customSkill: { title: '', prompt: '' },\n\n // Controls\n setVisibilityProcessing: false,\n setDeleteProcessing: false,\n setVisibilityModalOpen: false,\n customSkillModalVisible: false,\n };\n\n componentDidMount() {\n batch(() => {\n const customSkill = this.props.activities.find(activity => activity.document_set_id != null)\n if (customSkill) {\n const title = customSkill.name\n const content = customSkill.content[0].find(item => item.uid == 'Custom_Header').content\n const prompt = />(.*)</s.exec(content)[1]\n this.setState({customSkill: { title: title, prompt: prompt }})\n }\n this.props.documentSetDocumentRelations.setListItemsPerPage(ITEMS_PER_PAGE);\n this.props.documentSetDocumentRelations.mountList(this.endpoint());\n });\n }\n\n endpoint() {\n return \"/document_sets/\" + this.props.document_set_id + \"/document_set_document_relations\";\n }\n\n selectedDocumentSetDocumentRelationIds() {\n return this.props.documentSetDocumentRelations.selected.map((item) => item.id);\n }\n\n handleToggleSetVisibilityModalOpen(e) {\n this.setState({\n setVisibilityModalOpen: !this.state.setVisibilityModalOpen,\n dsdrItemSchedules: {}\n });\n };\n\n handleSetVisibilitySubmit(e) {\n const data = {\n document_set_document_relation_ids: this.selectedDocumentSetDocumentRelationIds(),\n activity_schedules: this.state.dsdrItemSchedules\n };\n\n const visibilityUrl = window.location.href.replace(\"/edit_documents_activities\", \"/update_documents_activities\");\n\n this.setState({ setVisibilityProcessing: true });\n\n fetch(visibilityUrl, {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(this.onSetVisibilitySubmitSuccess.bind(this))\n .catch(() => {\n alert(\"Error: Could not save Skill assignments. Please retry.\");\n });\n };\n\n onSetVisibilitySubmitSuccess() {\n batch(() => {\n this.props.documentSetDocumentRelations.setListSelected([]);\n this.props.documentSetDocumentRelations.resetListSearch();\n this.props.documentSetDocumentRelations.resetListPages();\n this.props.documentSetDocumentRelations.readListPage();\n });\n\n this.setState({\n dsdrItemSchedules: {},\n setVisibilityProcessing: false,\n setDeleteProcessing: false,\n setVisibilityModalOpen: false,\n customSkillModalVisible: false,\n });\n }\n\n itemVisibilityFor(schedule) {\n let status = \"\";\n let className = \"\";\n\n if (schedule) {\n const show_after = stringToDate(schedule.show_after);\n\n if (show_after && show_after > now()) {\n status = `Activates: ${show_after.getMonth() + 1}/${show_after.getDate()}/${show_after.getFullYear()}`;\n className = \"hidden-until-cell\";\n } else {\n const due_at = stringToDate(schedule.due_at);\n\n if (!due_at) {\n status = \"Assigned\"\n } else {\n status = `Due: ${due_at.getMonth() + 1}/${due_at.getDate()}/${due_at.getFullYear()}`\n }\n\n className = \"visible-cell\";\n }\n } else {\n className = \"hidden-cell\";\n status = \"Unassigned\";\n }\n\n return { status: <span className=\"schedule-status\">{status}</span>, className: className };\n }\n\n defaultSwitchStates() {\n const selectedDSDRs = this.props.documentSetDocumentRelations.selected;\n\n const itemKeys = R.uniq(selectedDSDRs.flatMap((dsdr) => dsdr.document_set_document_activities.map((dsda) => dsda.activity_id)));\n const itemSwitchModes = selectedDSDRs.reduce((acc, dsdr) => {\n itemKeys.forEach((key) => {\n const schedule = dsdr.document_set_document_activities.find((dsdr) => dsdr.activity_id === key);\n const hasSchedule = !!schedule;\n\n let {\n show_after,\n due_at\n } = schedule || {};\n\n show_after = stringToDate(show_after);\n due_at = stringToDate(due_at);\n\n const switchMode = hasSchedule ? switchModes.ON : switchModes.OFF;\n\n if (acc.hasOwnProperty(key)) {\n if (\n acc[key].switchMode !== switchMode ||\n !areEqualEffectiveDates(acc[key].show_after, show_after) ||\n !areEqualEffectiveDates(acc[key].due_at, due_at)\n ) {\n acc[key] = {\n switchMode: switchModes.MIXED\n };\n }\n } else {\n acc[key] = {\n switchMode,\n show_after,\n due_at\n };\n }\n });\n\n return acc;\n }, {});\n\n return {\n itemSwitchModes\n };\n }\n\n scheduleCorrection(schedule) {\n const {\n show_after,\n due_at\n } = schedule;\n\n if (show_after && due_at && due_at < show_after) {\n if (due_at < yesterday()) {\n return R.omit([\"due_at\"], schedule);\n } else {\n return {...schedule, due_at: show_after};\n }\n }\n\n return schedule;\n }\n\n handleCustomSkillClick(e) {\n this.setState({\n customSkillModalVisible: ! this.state.customSkillModalVisible\n });\n }\n\n handleCustomSkillChange(e) {\n const { name, value } = event.target;\n this.setState(prevState => ({\n customSkill: {\n ...prevState.customSkill,\n [name]: value\n }\n }));\n }\n\n handleCustomSkillSubmit(e) {\n const data = {\n customSkill: this.state.customSkill\n };\n\n const url = window.location.href.replace(\"/edit_documents_activities\", \"/activity\");\n\n this.setState({ setVisibilityProcessing: true });\n\n fetch(url, {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then((data) => {\n this.updateActivities.bind(this)(data)\n this.onSetVisibilitySubmitSuccess.bind(this)()\n })\n .catch(() => {\n alert(\"Error: Could not save custom skill. Please retry.\");\n this.setState({ setVisibilityProcessing: false })\n });\n };\n\n updateActivities(data) {\n const i = this.props.activities.findIndex(activity => activity.document_set_id != null)\n if (i >= 0) {\n this.props.activities.splice(i, 1)\n }\n this.props.activities.push(data)\n }\n\n handleCustomSkillDelete(e) {\n const url = window.location.href.replace(\"/edit_documents_activities\", \"/activity\");\n\n this.setState({ setDeleteProcessing: true });\n\n fetch(url, {\n method: \"DELETE\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n this.deleteActivity.bind(this)()\n this.onSetVisibilitySubmitSuccess.bind(this)()\n })\n .catch(() => {\n alert(\"Error: Could not delete custom skill. Please retry.\");\n this.setState({ setDeleteProcessing: false })\n });\n };\n\n deleteActivity() {\n const i = this.props.activities.findIndex(activity => activity.document_set_id != null)\n if (i >= 0) {\n this.props.activities.splice(i, 1)\n }\n this.setState({customSkill: { title: '', prompt: '' }})\n }\n\n render() {\n const {\n dsdrItemSchedules\n } = this.state;\n\n const selectedCount = this.props.documentSetDocumentRelations.selected.length;\n\n const switchStateModes = this.defaultSwitchStates();\n\n const selectExtraButtons = [\n <div key=\"SetScheduleDiv\" style={{display: \"flex\", \"marginBottom\": \"10px\"}}>\n <div style={{flex: 1}}>\n Select one or more cases from the list below and schedule student skills. Set start date and due date in the next step.\n </div>\n <GenButton\n name=\"Schedule Skills\"\n highlighted\n small\n disabled={selectedCount === 0}\n onClick={this.handleToggleSetVisibilityModalOpen.bind(this)}\n />\n </div>,\n <div key=\"CustomSkillDiv\" style={{display: \"flex\"}}>\n <div style={{flex: 1}}>\n Add a custom student skill if none of the available skills fulfill your specific requirements.\n </div>\n <GenButton\n name=\"Custom Skill\"\n highlighted\n small\n onClick={this.handleCustomSkillClick.bind(this)}\n />\n </div>\n ];\n\n const scheduleItemInfos = R.sortBy((activity) => activity.name, this.props.activities).map((activity) => ({key: activity.id, title: activity.name}));\n\n const scheduleItems = scheduleItemInfos.map((itemInfo) => {\n const itemDefaults = switchStateModes.itemSwitchModes[itemInfo.key];\n\n const hasNewValues = !R.isNil(dsdrItemSchedules[itemInfo.key]);\n const newValues = dsdrItemSchedules[itemInfo.key];\n\n const defaultSwitchMode = itemDefaults?.switchMode || switchModes.OFF;\n const switchMode = hasNewValues ? (newValues ? switchModes.ON : switchModes.OFF) : defaultSwitchMode;\n\n const currentValues = hasNewValues ? newValues : itemDefaults;\n const showAfter = currentValues?.show_after;\n const dueAt = currentValues?.due_at;\n\n let stateText;\n switch (switchMode) {\n case switchModes.ON:\n stateText = \"Activates\";\n break;\n case switchModes.OFF:\n stateText = \"Unassigned\";\n break;\n case switchModes.MIXED:\n stateText = \"Selected cases will retain current settings\";\n break;\n }\n\n return <div key={itemInfo.key} className=\"drawer\">\n <strong className=\"drawer-strong\"> {itemInfo.title} </strong>\n <div>\n <div className=\"set-visibility-row\">\n <GenSwitch\n value={switchMode}\n includeMixed={defaultSwitchMode === switchModes.MIXED}\n onClick={(newSwitchMode) => {\n if (newSwitchMode === switchModes.MIXED) {\n this.setState({\n dsdrItemSchedules: {...R.omit([itemInfo.key], dsdrItemSchedules)}\n });\n } else {\n this.setState({\n dsdrItemSchedules: {...dsdrItemSchedules, [itemInfo.key]: (newSwitchMode === switchModes.ON) ? {} : false}\n });\n }\n }}\n />\n <p className=\"visibility-control-detail-paragraph\"> {stateText} </p>\n {switchMode === switchModes.ON && <>\n <DateTimePicker\n min={now()}\n placeholder={\"Now\"}\n value={showAfter instanceof Date ? showAfter : null}\n onChange={(date) => {\n const dateToUse = date < now() ? now() : date;\n this.setState({dsdrItemSchedules: {...dsdrItemSchedules, [itemInfo.key]: this.scheduleCorrection({...(currentValues || {}), show_after: dateToUse})}});\n }}\n />\n <GenButton\n name=\"X\"\n highlighted\n disabled={!(showAfter instanceof Date)}\n small\n className=\"clear-button\"\n onClick={() => this.setState({ dsdrItemSchedules: {...dsdrItemSchedules, [itemInfo.key]: R.omit([\"show_after\"], (currentValues || {}))}})}\n />\n </>}\n </div>\n {switchMode === switchModes.ON && <div className=\"set-visibility-row\">\n <p className=\"visibility-control-detail-paragraph\" style={{marginLeft: \"68px\"}}> {\"Due date\"} </p>\n {switchMode === switchModes.ON && <>\n <DateTimePicker\n min={showAfter || now()}\n placeholder={\"Never\"}\n value={dueAt instanceof Date ? dueAt : null}\n onChange={(date) => {\n const dateToUse = date < now() ? now() : date;\n this.setState({dsdrItemSchedules: {...dsdrItemSchedules, [itemInfo.key]: this.scheduleCorrection({...(currentValues || {}), due_at: dateToUse})}});\n }}\n />\n <GenButton\n name=\"X\"\n highlighted\n disabled={!(dueAt instanceof Date)}\n small\n className=\"clear-button\"\n onClick={() => this.setState({ dsdrItemSchedules: {...dsdrItemSchedules, [itemInfo.key]: R.omit([\"due_at\"], (currentValues || {}))}})}\n />\n </>}\n </div>}\n </div>\n </div>;\n });\n\n let caseIDs = this.props.documentSetDocumentRelations.selected.map((item) => item.document_id).sort((a, b) => a-b);\n let showMore;\n if (selectedCount > TRUNCATE_COUNT + 1) {\n if (!this.state.showAllCaseIDSummary) {\n caseIDs = caseIDs.slice(0, TRUNCATE_COUNT);\n showMore = <>and {selectedCount - TRUNCATE_COUNT} more. <a style={{\"text-decoration\": \"underline\"}}>Show All</a></>;\n } else {\n showMore = <> <a style={{\"text-decoration\": \"underline\"}}>Hide All</a></>;\n }\n }\n\n const modalCaseIDSummary = <p className='case-ids'>Changes made will affect case(s) with id(s)... {caseIDs.join(\", \")} {showMore}</p>;\n return <div>\n <GenModal open={this.state.setVisibilityModalOpen} closeModelFunction={this.handleToggleSetVisibilityModalOpen.bind(this)}>\n <div className=\"gen-modal-panel\">\n <div className=\"edit-documents-access-modal-header\">\n <h1>Schedule Skill</h1>\n <div className=\"gen-button-right-group\">\n <GenButton\n name=\"Cancel\"\n highlighted\n small\n onClick={this.handleToggleSetVisibilityModalOpen.bind(this)}\n />\n <GenButton\n name=\"Save\"\n highlighted\n small\n loading={this.state.setVisibilityProcessing}\n onClick={this.handleSetVisibilitySubmit.bind(this)}\n />\n </div>\n </div>\n\n <div className=\"case-control-header\">\n <h3 className=\"visibility-h3\"> Case{(selectedCount > 1) ? \"s\" : \"\"} {`(${selectedCount} Selected)`}</h3>\n </div>\n\n <div onClick={() => this.setState({showAllCaseIDSummary: !this.state.showAllCaseIDSummary})}>\n {modalCaseIDSummary}\n </div>\n\n <h5 className=\"drawer-control-header\">Skills</h5>\n <div className=\"edit-documents-access-modal-bordered-section\">\n {scheduleItems}\n </div>\n </div>\n </GenModal>\n <GenModal open={this.state.customSkillModalVisible} closeModelFunction={this.handleCustomSkillClick.bind(this)}>\n <div className=\"gen-modal-panel\">\n <div className=\"edit-documents-access-modal-header\">\n <h1>Custom Skill</h1>\n <div className=\"gen-button-right-group\">\n <GenButton\n name=\"Cancel\"\n highlighted\n small\n onClick={this.handleCustomSkillClick.bind(this)}\n />\n <GenButton\n name=\"Delete\"\n highlighted\n small\n loading={this.state.setDeleteProcessing}\n onClick={this.handleCustomSkillDelete.bind(this)}\n />\n <GenButton\n name=\"Save\"\n highlighted\n small\n loading={this.state.setVisibilityProcessing}\n onClick={this.handleCustomSkillSubmit.bind(this)}\n />\n </div>\n </div>\n <h5 className=\"drawer-control-header\">Title</h5>\n <input type=\"text\"\n name=\"title\"\n value={this.state.customSkill.title}\n onChange={this.handleCustomSkillChange.bind(this)}\n />\n <h5 className=\"drawer-control-header\">Prompt</h5>\n <textarea name=\"prompt\"\n value={this.state.customSkill.prompt}\n onChange={this.handleCustomSkillChange.bind(this)}\n rows=\"3\"\n cols=\"40\" />\n </div>\n </GenModal>\n <GenSelectBar\n {...this.props.documentSetDocumentRelations}\n itemType={\"case(s)\"}\n selectExtraButtons={selectExtraButtons}\n selectionDescription={selectionDescription}\n />\n <GenControlsBar>\n <GenSearchBox\n {...this.props.documentSetDocumentRelations}\n showSearch\n />\n </GenControlsBar>\n <GenTableDisplay\n {...this.props.documentSetDocumentRelations}\n columns= {[\n {\n \"key\": \"Case Id\",\n \"title\": <><span className=\"adaptive-table-header\">Case </span>ID</>,\n \"column_width\": \"small\",\n \"sort_column\": \"documents.id\",\n \"calculated_value\": (item) => <p className=\"edit-documents-access-table-centered-paragraph\">{item.document_id}</p>,\n \"center_column_header\": true\n },\n {\n \"key\": \"Case Title\",\n \"title\": <><span className=\"adaptive-table-header\">Case </span>Title</>,\n \"column_width\": \"large\",\n \"sort_column\": \"documents.title\",\n \"calculated_value\": (item) => <a href={\"/document_set_document_relations/\" + item.id}>{item.document.title}</a>,\n \"center_column_header\": true\n },\n ...scheduleItemInfos.map((itemInfo) => {\n return {\n \"title\": itemInfo.shortTitle || itemInfo.title,\n \"column_width\": \"medium\",\n \"calculated_value\": (item) => {\n const itemSchedule = item.document_set_document_activities.find((activity) => activity.activity_id === itemInfo.key);\n return this.itemVisibilityFor(itemSchedule).status;\n },\n \"calculated_class_name\": (item) => {\n const itemSchedule = item.document_set_document_activities.find((activity) => activity.activity_id === itemInfo.key);\n return this.itemVisibilityFor(itemSchedule).className;\n },\n \"center_column_header\": true\n };\n })\n ]}\n />\n <GenMore\n {...this.props.documentSetDocumentRelations}\n shouldInfiniteScroll\n />\n </div>;\n }\n}\n\nexport default connectToList(DocumentSetEditDocumentsActivitiesTable, \"documentSetDocumentRelations\");\n","import React from 'react';\n\nimport GenList from 'Gen/List'\n\nimport DocumentSetSummary from 'DocumentSet/Summary'\n\nexport default function DocumentSetList(\n {\n document_set_id,\n current_role_definition,\n shows_ownership_checkbox,\n user_id,\n },\n) {\n return (\n <GenList\n itemsURL={\"/document_sets/\" + document_set_id + \"/document_sets\"}\n itemView={documentSet => <DocumentSetSummary documentSet={documentSet} key={documentSet.id}/>}\n noItemsMessage={current_role_definition?.name === \"Learner\" && \"You have not been added to any courses yet. If you believe this is a mistake, please contact your instructor.\"}\n search\n sortOptions={[\n {\n \"title\": \"Name\",\n \"value\": \"document_sets.name\"\n },\n {\n \"title\": \"Owner\",\n \"value\": \"users.last_name\"\n }\n ]}\n checkboxFilterOptions={shows_ownership_checkbox && [\n {\n \"key\": \"owner\",\n \"whereFilter\": [\"=\", \"document_sets.owner_id\", user_id],\n \"label\": \"Only courses that I own\"\n }\n ]}\n />\n );\n}\n","import React from \"react\";\n\nimport {capitalize} from \"lodash\";\nimport pluralize from \"pluralize\";\nimport connectToList from \"../../store/list\";\n\nimport GenControlsBar from \"../Gen/ControlsBar\";\nimport GenListDisplay from \"../Gen/ListDisplay\";\nimport GenMore from \"../Gen/More\";\nimport GenSearchBox from \"../Gen/SearchBox\";\nimport GenSelectBar from \"../Gen/SelectBar\";\n\nconst ACTIVITIES_ENDPOINT = \"activities\";\nconst CATEGORIES_ENDPOINT = \"categories\";\n\nfunction DocumentSetNewBatchPreset(\n {\n activities,\n categories,\n },\n) {\n React.useEffect(() => {\n activities.mountList(ACTIVITIES_ENDPOINT);\n categories.mountList(CATEGORIES_ENDPOINT);\n }, []);\n\n const activitiesRender = (\n <div>\n <GenControlsBar>\n <GenSearchBox\n {...activities}\n />\n </GenControlsBar>\n <GenSelectBar\n {...activities}\n itemType=\"skill(s)\"\n />\n <GenListDisplay\n {...activities}\n renderItem={(item) => <p>{item.name}</p>}\n />\n <GenMore\n {...activities}\n shouldInfiniteScroll\n />\n </div>\n );\n\n const categoriesRender = (\n <div>\n <GenControlsBar>\n <GenSearchBox\n {...categories}\n />\n </GenControlsBar>\n <GenSelectBar\n {...categories}\n itemType=\"future course(s)\"\n />\n <GenListDisplay\n {...categories}\n renderItem={(item) => <p>{item.name}</p>}\n />\n <GenMore\n {...categories}\n shouldInfiniteScroll\n />\n </div>\n );\n\n return (\n <div className=\"two-columns\">\n <div className=\"column\">\n <div className=\"panel\">\n <h3>Skills To Add</h3>\n <input type=\"hidden\" name=\"activity_ids\" value={JSON.stringify(activities.selected.map((item) => item.id))} />\n </div>\n {activitiesRender}\n </div>\n <div className=\"column\">\n <div className=\"panel\">\n <h3>{capitalize(pluralize(i18n.t(\"category\")))} To Use</h3>\n <input type=\"hidden\" name=\"category_ids\" value={JSON.stringify(categories.selected.map((item) => item.id))} />\n </div>\n {categoriesRender}\n </div>\n </div>\n );\n}\n\nexport default connectToList(DocumentSetNewBatchPreset, [\"activities\", \"categories\"]);\n","import React from \"react\";\n\nimport * as R from \"ramda\";\n\nimport GenBooleanCircle from \"../Gen/BooleanCircle\";\nimport GenButton from \"../Gen/Button\";\nimport GenGroupableTable from \"../Gen/GroupableTable\";\n\nimport ActivityReviewModal from \"../Activity/ReviewModal\";\n\nimport {\n integerDurrationToDisplayString,\n stringDateToDisplayDateString,\n} from \"../../src/time_display\";\nimport { fullURL } from \"../../src/url\";\n\nconst documentSetReportSettings = [\n {\n title: \"First Name\",\n key: \"first_name\",\n grouping: \"user\",\n searchable: true,\n width: 100,\n },\n {\n title: \"Last Name\",\n key: \"last_name\",\n grouping: \"user\",\n searchable: true,\n width: 100,\n },\n {\n title: \"Email\",\n key: \"email\",\n grouping: \"user\",\n searchable: true,\n width: 250,\n },\n {\n title: \"Case Id\",\n key: \"id\",\n grouping: \"document\",\n searchable: true,\n width: 75,\n displayFunction: (value, rowData) => <a href={`/documents/${rowData.document.id}`} target=\"_blank\" rel=\"noreferrer\">{value}</a>,\n },\n {\n title: \"Case Name\",\n key: \"title\",\n grouping: \"document\",\n searchable: true,\n width: 250,\n displayFunction: (value, rowData) => <a href={`/documents/${rowData.document.id}`} target=\"_blank\" rel=\"noreferrer\">{value}</a>,\n },\n {\n title: \"Viewed Case\",\n key: \"case_viewed\",\n displayFunction: (value) => <GenBooleanCircle value={value} />,\n width: 100,\n align: \"center\",\n },\n {\n title: \"Viewed Video\",\n key: \"video_viewed\",\n displayFunction: (value) => <GenBooleanCircle value={value} />,\n width: 100,\n align: \"center\",\n },\n {\n title: \"Viewed Count\",\n key: \"case_times_opened\",\n width: 100,\n align: \"center\",\n },\n {\n title: \"Viewed Video Time\",\n key: \"seconds_viewed\",\n displayFunction: integerDurrationToDisplayString,\n width: 100,\n align: \"center\",\n },\n {\n title: \"Viewed Vitals\",\n key: \"vitals_viewed\",\n displayFunction: (value) => <GenBooleanCircle value={value} />,\n width: 100,\n align: \"center\",\n },\n {\n title: \"Viewed DDx\",\n key: \"differential_viewed\",\n displayFunction: (value) => <GenBooleanCircle value={value} />,\n width: 100,\n align: \"center\",\n },\n {\n title: \"Viewed Dx\",\n key: \"diagnosis_viewed\",\n displayFunction: (value) => <GenBooleanCircle value={value} />,\n width: 100,\n align: \"center\",\n },\n {\n title: \"Viewed Outcomes\",\n key: \"outcomes_viewed\",\n displayFunction: (value) => <GenBooleanCircle value={value} />,\n width: 100,\n align: \"center\",\n },\n {\n title: \"Viewed Care\",\n key: \"care_viewed\",\n displayFunction: (value) => <GenBooleanCircle value={value} />,\n width: 100,\n align: \"center\",\n },\n {\n title: \"Viewed Keypoints\",\n key: \"keypoints_viewed\",\n displayFunction: (value) => <GenBooleanCircle value={value} />,\n width: 100,\n align: \"center\",\n },\n];\n\nconst documentSetActivityReportSettings = [\n {\n title: \"First Name\",\n key: \"first_name\",\n grouping: \"user\",\n searchable: true,\n width: 100,\n },\n {\n title: \"Last Name\",\n key: \"last_name\",\n grouping: \"user\",\n searchable: true,\n width: 100,\n },\n {\n title: \"Email\",\n key: \"email\",\n grouping: \"user\",\n searchable: true,\n width: 250,\n },\n {\n title: \"Case Id\",\n key: \"id\",\n grouping: \"document\",\n searchable: true,\n width: 75,\n displayFunction: (value, rowData) => <a href={`/documents/${rowData.document.id}`} target=\"_blank\" rel=\"noreferrer\">{value}</a>,\n },\n {\n title: \"Case Name\",\n key: \"title\",\n grouping: \"document\",\n searchable: true,\n width: 250,\n displayFunction: (value, rowData) => <a href={`/documents/${rowData.document.id}`} target=\"_blank\" rel=\"noreferrer\">{value}</a>,\n },\n {\n title: \"Submitted\",\n key: \"submitted\",\n displayFunction: (value) => <GenBooleanCircle value={value} />,\n width: 100,\n align: \"center\",\n },\n {\n title: \"Time of Submission\",\n key: \"submitted_at\",\n displayFunction: stringDateToDisplayDateString,\n width: 200,\n align: \"center\",\n },\n {\n title: \"Review\",\n key: \"review_button\",\n displayFunction: (value, rowData, setState) => (\n <GenButton\n name=\"Review\"\n highlighted={rowData.submitted}\n disabled={!rowData.submitted}\n onClick={() => { setState({reviewRow: rowData}); }}\n />\n ),\n width: 100,\n align: \"center\",\n },\n {\n title: \"Reviewed\",\n key: \"review_submitted\",\n displayFunction: (value) => <GenBooleanCircle value={value} />,\n width: 100,\n align: \"center\",\n },\n {\n title: \"Time of Review\",\n key: \"reviewed_at\",\n displayFunction: stringDateToDisplayDateString,\n width: 200,\n align: \"center\",\n },\n {\n title: \"Review Text\",\n key: \"review_comment\",\n searchable: true,\n width: 200,\n },\n];\n\nfunction WrappedActivityReviewModal(props) {\n const {\n activity,\n reviewRow,\n closeReviewRow,\n reloadData,\n } = props;\n\n return (\n <ActivityReviewModal\n activity={activity}\n activityUserState={reviewRow}\n {...reviewRow}\n afterSave={() => {\n closeReviewRow();\n reloadData();\n }}\n afterCancel={() => {\n closeReviewRow();\n }}\n />\n );\n}\n\nexport default function DocumentSetReport(props) {\n const {\n activities,\n documentSet,\n chooseCaseReport,\n collapsedDocumentIds,\n } = props;\n\n const reports = [\n {\n name: \"Case Usage\",\n key: \"case_usage\",\n dataUrl: fullURL(`/document_sets/${documentSet.id}/usage_report`),\n exportUrl: fullURL(`/document_sets/${documentSet.id}/usage_report.csv`),\n settings: documentSetReportSettings,\n groupings: [\n {\n name: \"User\",\n key: \"user\",\n },\n {\n name: \"Case\",\n key: \"document\",\n },\n ],\n },\n ...R.sortBy((activity) => activity.name, activities).map((activity) => (\n {\n name: activity.name,\n key: activity.id,\n dataUrl: fullURL(`/document_sets/${documentSet.id}/activities/${activity.id}/report`),\n settings: documentSetActivityReportSettings,\n groupings: [\n {\n name: \"User\",\n key: \"user\",\n },\n {\n name: \"Case\",\n key: \"document\",\n },\n ],\n reviewModal: WrappedActivityReviewModal,\n extraModalData: {activity},\n }\n )),\n ];\n\n return (\n <GenGroupableTable\n reports={reports}\n defaultReportKey={chooseCaseReport ? 'case_usage' : null}\n collapsedRowIds={collapsedDocumentIds}\n />\n );\n}\n","import React from 'react';\n\nimport GenButton from 'Gen/Button'\nimport GenSelectList from 'Gen/SelectList'\n\nimport {documentListDefaults} from 'Document/ListDefaults'\n\nimport { documentDisplayTitle } from 'src/document_display_title'\n\nexport default class DocumentSetDocumentRelationCreateSelectList extends React.Component {\n state = {\n selectedDocumentIds : [],\n loading: false\n };\n\n handleDocumentSelectionChange = (newSelection) => {\n this.setState({selectedDocumentIds : newSelection});\n };\n\n onSubmitSuccess = () => {\n const edit_url = window.location.href;\n const update_url = edit_url.replace(\"/document_set_document_relations/new_batch_list\", \"\");\n\n Turbolinks.visit(update_url);\n };\n\n handleSubmitButton = () => {\n if (this.state.selectedDocumentIds.length === 0) {\n alert(\"Nothing Selected! You must select at least one item to add.\");\n return(null);\n }\n\n let data = {documentIds: this.state.selectedDocumentIds};\n\n let edit_url = window.location.href;\n let update_url = edit_url.replace(\"new_\", \"create_\");\n\n this.setState({loading: true});\n\n fetch(update_url, {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(this.onSubmitSuccess)\n .catch(() => {\n this.setState({loading: false});\n });\n };\n\n render() {\n let documentSelectionView = <GenSelectList\n {...documentListDefaults}\n selected={this.state.selectedDocumentIds}\n onSelectionChange={this.handleDocumentSelectionChange}\n itemsURL={\"/document_sets/\"+ this.props.document_set_id +\"/document_set_document_relations/new_batch_list\"}\n itemView={function(document){\n return(\n <div key={document.id}>\n <span>{documentDisplayTitle(document)}</span>\n </div>);\n }}\n />;\n\n\n\n return(\n <div className=\"document-set-document-relations-select-list\">\n <div className=\"submit-panel\">\n <h1>Add Cases To Course</h1>\n <GenButton\n name=\"Add\"\n highlighted={true}\n loading={this.state.loading}\n onClick={this.handleSubmitButton}\n />\n </div>\n <div>\n {documentSelectionView}\n </div>\n </div>\n );\n }\n}\n","import React from 'react';\n\nimport GenButton from 'Gen/Button'\nimport GenSelectList from 'Gen/SelectList'\n\nimport {documentListDefaults} from 'Document/ListDefaults'\n\nimport { documentDisplayTitle } from 'src/document_display_title'\n\nexport default class DocumentSetDocumentRelationDeleteSelectList extends React.Component {\n state = {\n selectedDocumentIds : [],\n loading: false\n };\n\n handleDocumentSelectionChange = (newSelection) => {\n this.setState({selectedDocumentIds : newSelection});\n };\n\n onSubmitSuccess = () => {\n const edit_url = window.location.href;\n const update_url = edit_url.replace(\"/document_set_document_relations/delete_batch_list\", \"\");\n\n Turbolinks.visit(update_url);\n };\n\n handleSubmitButton = () => {\n if (this.state.selectedDocumentIds.length === 0) {\n alert(\"Nothing Selected! You must select at least one item to remove.\");\n return(null);\n }\n\n let data = {documentIds: this.state.selectedDocumentIds};\n\n let edit_url = window.location.href;\n let update_url = edit_url.replace(\"delete_\", \"destroy_\");\n\n this.setState({loading: true});\n\n fetch(update_url, {\n method: \"DELETE\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(this.onSubmitSuccess)\n .catch(() => {\n this.setState({loading: false});\n });\n };\n\n render() {\n let documentSelectionView = <GenSelectList\n {...documentListDefaults}\n selected={this.state.selectedDocumentIds}\n onSelectionChange={this.handleDocumentSelectionChange}\n itemsURL={\"/document_sets/\"+ this.props.document_set_id +\"/document_set_document_relations/delete_batch_list\"}\n itemView={function(document){\n return(\n <div key={document.id}>\n <span>{documentDisplayTitle(document)}</span>\n </div>);\n }}\n />;\n\n\n\n return(\n <div className=\"document-set-document-relations-select-list\">\n <div className=\"submit-panel\">\n <h1>Remove Cases From Course</h1>\n <GenButton\n name=\"Remove\"\n highlighted={true}\n loading={this.state.loading}\n onClick={this.handleSubmitButton}\n />\n </div>\n <div>\n {documentSelectionView}\n </div>\n </div>\n );\n }\n}\n","import React from 'react';\n\nimport GenList from 'Gen/List'\n\nimport DocumentSetDocumentRelationSummary from 'DocumentSetDocumentRelation/Summary'\n\nimport {documentListDefaults} from 'Document/ListDefaults'\n\nexport default function DocumentSetDocumentRelationList(props) {\n const {\n document_set,\n isLearner,\n show_status,\n } = props;\n\n return(\n <GenList {...documentListDefaults}\n gridView\n itemView={(documentSetDocumentRelation) => (\n <DocumentSetDocumentRelationSummary\n key={documentSetDocumentRelation.id}\n documentSetDocumentRelation={documentSetDocumentRelation}\n show_status={show_status}\n isLearner={isLearner}\n documentSet={document_set}\n />\n )}\n itemsURL={\"/document_sets/\" + document_set.id + \"/document_set_document_relations\"}\n />\n );\n}\n","import React from 'react';\n\nimport GenPostButton from 'Gen/PostButton'\nimport GenSelectList from 'Gen/SelectList'\n\nexport default class DocumentSetUserPermissionCreateSelectList extends React.Component {\n state = {\n selectedGroupRoleDefinitionUserIds : [],\n loading: false\n };\n\n handleGroupRoleSelectionChange = (newSelection) => {\n this.setState({selectedGroupRoleDefinitionUserIds : newSelection});\n };\n\n onSubmitSuccess = () => {\n const edit_url = window.location.href;\n const update_url = edit_url.replace(\"/new_batch_list\", \"\");\n\n Turbolinks.visit(update_url);\n };\n\n handleSubmitButton = () => {\n if (this.state.selectedGroupRoleDefinitionUserIds.length === 0) {\n alert(\"No Members Selected! You must select at least one user to add from list.\");\n return(null);\n }\n\n let data = {groupRoleDefinitionUserIds: this.state.selectedGroupRoleDefinitionUserIds};\n\n let edit_url = window.location.href;\n let update_url = edit_url.replace(\"new_\", \"create_\");\n\n this.setState({loading: true});\n\n fetch(update_url, {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(this.onSubmitSuccess)\n .catch(() => {\n this.setState({loading: false});\n });\n\n };\n\n render() {\n let groupRoleSelectionView = <GenSelectList\n selected={this.state.selectedGroupRoleDefinitionUserIds}\n onSelectionChange={this.handleGroupRoleSelectionChange}\n itemView={function(role){\n return(\n <div key={role.id}>\n <span>{role.user.email} -- {role.user.first_name} {role.user.last_name} -- {role.role_definition.name}</span>\n </div>);\n }}\n\n itemsURL={\"/document_sets/\"+ this.props.document_set.id +\"/document_set_user_permissions/new_batch_list\"}\n search={true}\n sortOptions={[\n {\n \"title\": \"First Name\",\n \"value\": \"first_name\",\n },\n {\n \"title\": \"Last Name\",\n \"value\": \"last_name\"\n },\n {\n \"title\": \"Email\",\n \"value\": \"email\"\n }]}\n />;\n\n return(\n <div className=\"document-set-user-permissions-select-list\">\n <div className=\"submit-panel\">\n <h1>Add Members</h1>\n\n <GenPostButton\n name=\"Add Members\"\n key=\"AddMembers\"\n highlighted={true}\n disabled={this.state.selectedGroupRoleDefinitionUserIds.length === 0}\n url={window.location.href.replace(\"new_\", \"create_\")}\n data={{groupRoleDefinitionUserIds: this.state.selectedGroupRoleDefinitionUserIds}}\n />\n </div>\n <div>\n {groupRoleSelectionView}\n </div>\n </div>\n );\n }\n}\n","import React from 'react';\n\nimport GenButton from 'Gen/Button'\nimport GenSelectList from 'Gen/SelectList'\n\nexport default class DocumentSetUserPermissionSelectList extends React.Component {\n state = {\n selectedDocumentSetUserPermissionIds : [],\n destroyProcessing: false,\n key: 1\n };\n\n handleDocumentSetUserPermissionSelectionChange = (newSelection) => {\n this.setState({selectedDocumentSetUserPermissionIds : newSelection});\n };\n\n handleDestroySelectedDocumentSetUserPermissions = () => {\n if (this.state.selectedDocumentSetUserPermissionIds.length === 0) {\n alert(\"Nothing Selected! You must select at least one item to lend.\");\n return(null);\n }\n\n let data = {documentSetUserPermissionIds: this.state.selectedDocumentSetUserPermissionIds};\n\n let destroy_url = window.location.href + \"/destroy_batch\";\n\n this.setState({destroyProcessing: true});\n\n fetch(destroy_url, {\n method: \"DELETE\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(this.onDestroySelectedDocumentSetUserPermissionsSuccess)\n .catch(() => {\n this.setState({destroyProcessing: false});\n alert(\"Error: Removing Members!\");\n });\n };\n\n onDestroySelectedDocumentSetUserPermissionsSuccess = () => {\n this.setState({\n selectedDocumentSetUserPermissionIds : [],\n key: this.state.key + 1,\n destroyProcessing: false\n });\n alert(\"Members Removed!\");\n };\n\n render() {\n return(\n <GenSelectList\n key={this.state.key}\n selected={this.state.selectedDocumentSetUserPermissionIds}\n onSelectionChange={this.handleDocumentSetUserPermissionSelectionChange}\n selectExtraButtons={<GenButton name=\"Remove Selected Members\" highlighted={true} loading={this.state.destroyProcessing} small={true} disabled={this.state.selectedDocumentSetUserPermissionIds.length === 0} onClick={this.handleDestroySelectedDocumentSetUserPermissions}/>}\n itemView={function(documentSetUserPermission, selected){\n let checkboxClasses = \"gen-select-list-select-area\"\n if (selected) { checkboxClasses = \"bg-sky-600 \" + checkboxClasses }\n return(\n <div className=\"gen-select-list-item\" key={documentSetUserPermission.id}>\n <div className={checkboxClasses} />\n <div className=\"gen-select-list-select-item\">\n <div className=\"type-group-role-summary\">\n <div className=\"topline\">\n <h1 className=\"full-name\">\n {documentSetUserPermission.user.first_name + \" \" + documentSetUserPermission.user.last_name}\n </h1>\n </div>\n\n <p className=\"email\">{documentSetUserPermission.user.email}</p>\n </div>\n </div>\n </div>);\n }}\n itemsURL={\"/document_sets/\" + this.props.document_set_id + \"/document_set_user_permissions\"}\n search={true}\n sortOptions={[\n {\n \"title\": \"First Name\",\n \"value\": \"first_name\",\n },\n {\n \"title\": \"Last Name\",\n \"value\": \"last_name\"\n },\n {\n \"title\": \"Email\",\n \"value\": \"email\"\n },\n // {\n // \"title\": \"Role\",\n // \"value\": \"role\"\n // }\n ]}\n />\n );\n }\n}\n","import React from \"react\";\n\nimport connectToList from \"../../store/list\";\n\nimport GenControlsBar from \"../Gen/ControlsBar\";\nimport GenMore from \"../Gen/More\";\nimport GenSearchBox from \"../Gen/SearchBox\";\nimport DocumentUserSummary from \"./Summary\";\n\nfunction DocumentUserList(\n {\n documentId,\n documentUsers,\n },\n) {\n React.useEffect(() => {\n documentUsers.mountList(`/documents/${documentId}/document_users`);\n }, []);\n\n return (\n <div>\n <GenControlsBar>\n <GenSearchBox\n {...documentUsers}\n />\n </GenControlsBar>\n {documentUsers.listData?.map((documentUser) => (\n <DocumentUserSummary\n key={documentUser.id}\n documentUser={documentUser}\n />\n ))}\n <GenMore\n {...documentUsers}\n shouldInfiniteScroll\n />\n </div>\n );\n}\n\nexport default connectToList(DocumentUserList, [\"documentUsers\"]);\n","import * as React from 'react';\n\ninterface GenBreadcumbProp {\n title: string;\n key: string;\n onClick: () => void;\n}\ninterface GenBreadcrumbsProps {\n breadcrumbs: Array<GenBreadcumbProp>\n}\n\nexport default function GenBreadcrumbs(props: GenBreadcrumbsProps) {\n const breadcrumbs = props.breadcrumbs.map((breadcrumb) => {\n return <a key={breadcrumb.key} onClick={breadcrumb.onClick}>{breadcrumb.title}</a>;\n });\n\n return(\n <div className=\"gen-breadcrumbs\">\n {breadcrumbs}\n </div>\n );\n}\n","import * as React from 'react';\n\ninterface GenPanelGroupProps {\n className: string\n children: React.ReactElement;\n}\n\nexport default function GenPanelGroup(\n {\n children,\n }: GenPanelGroupProps,\n) {\n return (\n <div className=\"gen-panel-group\">\n {children}\n </div>\n );\n}\n","import React from 'react';\n\nimport DateTimePicker from 'react-widgets/lib/DateTimePicker';\n\nimport 'react-widgets/dist/css/react-widgets.css';\n\nexport default function GroupExpirationDatePicker(props) {\n return <DateTimePicker\n defaultValue={props.currentValue && new Date(props.currentValue)}\n time={false}\n {...props}\n />\n}\n","import React from \"react\";\n\nimport connectToList from \"../../store/list\";\n\nimport GenControlsBar from \"../Gen/ControlsBar\";\nimport GenMore from \"../Gen/More\";\nimport GenSearchBox from \"../Gen/SearchBox\";\nimport GenSortButtons from \"../Gen/SortButtons\";\nimport GroupSummary from \"./Summary\";\n\nfunction GroupList(\n {\n isAdmin,\n groupsPath,\n groups,\n },\n) {\n React.useEffect(() => {\n groups.mountList(groupsPath || \"/groups\");\n }, []);\n\n return (\n <div>\n <GenControlsBar>\n <GenSearchBox\n {...groups}\n />\n <GenSortButtons\n {...groups}\n sortOptions={[\n {\n title: \"Name\",\n value: \"groups.name\",\n },\n ]}\n />\n </GenControlsBar>\n {groups.listData?.map((group) => (\n <GroupSummary\n key={group.id}\n group={group}\n shouldShowExpiration={isAdmin}\n />\n ))}\n <GenMore\n {...groups}\n shouldInfiniteScroll\n />\n </div>\n );\n}\n\nexport default connectToList(GroupList, [\"groups\"]);\n","import React from 'react';\n\nimport GenButton from 'Gen/Button'\nimport GenSelectList from 'Gen/SelectList'\n\nimport {documentListDefaults} from 'Document/ListDefaults'\nimport {groupListDefaults} from 'Group/ListDefaults'\n\nimport { documentDisplayTitle } from 'src/document_display_title'\n\nexport default class GroupDocumentCreateBatchSelectList extends React.Component {\n state = {\n selectedGroupDocumentIds : [],\n selectedGroupIds : [],\n loading: false\n };\n\n handleGroupDocumentSelectionChange = (newSelection) => {\n this.setState({selectedGroupDocumentIds : newSelection});\n };\n\n handleGroupSelectionChange = (newSelection) => {\n this.setState({selectedGroupIds : newSelection});\n };\n\n onSubmitSuccess = () => {\n const edit_url = window.location.href;\n const update_url = edit_url.replace(\"/group_documents/new_batch\", \"/documents\");\n\n Turbolinks.visit(update_url);\n };\n\n handleSubmitButton = () => {\n if (this.state.selectedGroupDocumentIds.length === 0) {\n alert(\"Nothing Selected! You must select at least one item to lend.\");\n return(null);\n }\n\n if (this.state.selectedGroupIds.length === 0) {\n alert(\"Nothing Selected! You must select at least one group to lend to.\");\n return(null);\n }\n\n let data = {groupDocumentIds: this.state.selectedGroupDocumentIds, groupIds: this.state.selectedGroupIds};\n\n let edit_url = window.location.href;\n let update_url = edit_url.replace(\"new_\", \"create_\");\n\n this.setState({loading: true});\n\n fetch(update_url, {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(this.onSubmitSuccess)\n .catch(() => {\n this.setState({loading: false});\n });\n };\n\n render() {\n return(\n <div>\n <div className=\"submit-panel\">\n <h1>Lend Cases To Group</h1>\n <GenButton\n name=\"Lend\"\n highlighted={true}\n loading={this.state.loading}\n onClick={this.handleSubmitButton}\n />\n </div>\n <div className=\"two-columns\">\n <div className=\"column\">\n <div className=\"panel\">\n <h1>Groups</h1>\n </div>\n <GenSelectList\n {...groupListDefaults}\n selected={this.state.selectedGroupIds}\n onSelectionChange={this.handleGroupSelectionChange}\n defaultItemsPerPage={10000}\n itemView={(group) => (\n <div className=\"document-select-summary\" key={group.id}>\n <span>{group.id} | {group.name}</span>\n </div>\n )}\n />\n </div>\n <div className=\"column\">\n <div className=\"panel\">\n <h1>Cases</h1>\n </div>\n <GenSelectList\n {...documentListDefaults}\n selected={this.state.selectedGroupDocumentIds}\n onSelectionChange={this.handleGroupDocumentSelectionChange}\n defaultItemsPerPage={10000}\n itemView={(group_document) => (\n <div className=\"document-select-summary\" key={group_document.id}>\n <span>{documentDisplayTitle(group_document.document)}</span>\n </div>\n )}\n itemsURL={\"/group_documents/new_batch\"}\n />\n </div>\n </div>\n </div>\n );\n }\n}\n","import React from 'react';\n\nimport GenButton from 'Gen/Button'\nimport GenSelectList from 'Gen/SelectList'\n\nimport {documentListDefaults} from 'Document/ListDefaults'\n\nimport { documentDisplayTitle } from 'src/document_display_title'\n\nexport default class GroupDocumentDeleteBatchSelectList extends React.Component {\n state = {\n selectedGroupDocumentIds : [],\n selectedGroupId : this.props.groups[0].id,\n loading: false\n };\n\n handleGroupDocumentSelectionChange = (newSelection) => {\n this.setState({selectedGroupDocumentIds : newSelection});\n };\n\n handleGroupSelectionChange = (event) => {\n this.setState({selectedGroupId : event.target.value});\n };\n\n onSubmitSuccess = () => {\n let edit_url = window.location.href;\n let update_url = edit_url.replace(\"/group_documents/delete_batch\", \"/documents\");\n\n Turbolinks.visit(update_url);\n };\n\n handleSubmitButton = () => {\n if (this.state.selectedGroupDocumentIds.length === 0) {\n alert(\"Nothing Selected! You must select at least one item to revoke.\");\n return(null);\n }\n\n let data = {groupDocumentIds: this.state.selectedGroupDocumentIds, groupId: this.state.selectedGroupId};\n\n let edit_url = window.location.href;\n let update_url = edit_url.replace(\"delete_\", \"destroy_\");\n\n this.setState({loading: true});\n\n fetch(update_url, {\n method: \"DELETE\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(this.onSubmitSuccess)\n .catch(() => {\n this.setState({loading: false});\n });\n };\n\n render() {\n let groupDocumentSelectList = <GenSelectList\n {...documentListDefaults}\n selected={this.state.selectedGroupDocumentIds}\n onSelectionChange={this.handleGroupDocumentSelectionChange}\n itemView={function(group_document){\n return(\n <div className=\"document-select-summary\" key={group_document.id}>\n <span>{documentDisplayTitle(group_document.document)}</span>\n </div>);\n }}\n itemsURL={\"/group_documents/delete_batch\"}\n />;\n\n let groupOptions = this.props.groups.map(function(group){\n return(<option value={group.id}>{group.name}</option>);\n });\n\n return(\n <div className=\"document-set-document-relations-select-list\">\n <div className=\"submit-panel\">\n <h1>Revoke Cases From Group</h1>\n <GenButton\n name=\"Revoke\"\n highlighted={true}\n loading={this.state.loading}\n onClick={this.handleSubmitButton}\n />\n </div>\n <div className=\"panel\">\n <label>Group To Revoke From:</label>\n <select value={this.state.selectedGroupId} onChange={this.handleGroupSelectionChange}>\n {groupOptions}\n </select>\n </div>\n <div>\n {groupDocumentSelectList}\n </div>\n </div>\n );\n }\n}\n","import React from 'react';\n\nimport GenButton from 'Gen/Button'\nimport GenModal from 'Gen/Modal'\nimport GenTable from 'Gen/Table'\n\nexport default class GroupRoleDefinitionUserTable extends React.Component {\n state = {\n selectedGroupRoleDefinitionUserIds : [],\n destroyProcessing: false,\n setExpirationProcessing: false,\n key: 1,\n setExpirationModalOpen: false,\n setExpirationOption: 'past',\n setExpirationDay: '',\n setExpirationMonth: '',\n setExpirationYear: '',\n };\n\n handleGroupRoleDefinitionUserSelectionChange = (newSelection) => {\n this.setState({selectedGroupRoleDefinitionUserIds : newSelection});\n };\n\n handleDestroySelectedGroupRoleDefinitions = () => {\n if (this.state.selectedGroupRoleDefinitionUserIds.length === 0) {\n alert(\"Nothing Selected! You must select at least one item to lend.\");\n return(null);\n }\n\n let data = {groupRoleDefinitionUserIds: this.state.selectedGroupRoleDefinitionUserIds};\n\n let destroy_url = window.location.href + \"/destroy_batch\";\n\n this.setState({destroyProcessing: true});\n\n fetch(destroy_url, {\n method: \"DELETE\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(this.onDestroySelectedGroupRoleDefinitionsSuccess)\n .catch(() => {\n this.setState({destroyProcessing: false});\n alert(\"Error: Removing Members!\");\n });\n };\n\n handleToggleSetExpirationModalOpen = (e) => {\n this.setState({\n setExpirationModalOpen: !this.state.setExpirationModalOpen\n });\n };\n\n handleSetExpirationOptionChange = (e) => {\n this.setState({\n setExpirationOption: e.target.value\n });\n };\n\n handleSetExpirationDay = (e) => {\n this.setState({\n setExpirationDay: e.target.value\n });\n };\n\n handleSetExpirationMonth = (e) => {\n this.setState({\n setExpirationMonth: e.target.value\n });\n };\n\n handleSetExpirationYear = (e) => {\n this.setState({\n setExpirationYear: e.target.value\n });\n };\n\n intDate = () => {\n if (this.state.setExpirationMonth > 12 || this.state.setExpirationDay > 31 || this.state.setExpirationYear > 99) {\n return(NaN);\n } else {\n const date = Date.parse(this.state.setExpirationMonth + \"/\" + this.state.setExpirationDay + \"/\" + this.state.setExpirationYear);\n if (date > Date.now()) {\n return(date);\n } else {\n return(NaN);\n }\n }\n };\n\n validDate = () => {\n return(!isNaN(this.intDate()));\n };\n\n onDestroySelectedGroupRoleDefinitionsSuccess = () => {\n this.setState({\n selectedGroupRoleDefinitionUserIds : [],\n key: this.state.key + 1,\n destroyProcessing: false\n });\n alert(\"Members Removed!\");\n };\n\n handleSetExpirationSubmit = (e) => {\n if (this.state.selectedGroupRoleDefinitionUserIds.length === 0) {\n alert(\"Nothing Selected! You must select at least one item to lend.\");\n return(null);\n }\n\n let data = {\n group_role_definition_user_ids: this.state.selectedGroupRoleDefinitionUserIds,\n expiration_mode: this.state.setExpirationOption,\n };\n\n if (this.state.setExpirationOption === \"date\") {\n data.expiration_date = this.intDate();\n }\n\n let expiration_url = window.location.href + \"/update_expiration_batch\";\n\n this.setState({\n setExpirationProcessing: true,\n setExpirationModalOpen: false\n });\n\n fetch(expiration_url, {\n method: \"PATCH\",\n body: JSON.stringify(data),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`, {cause: response}) }\n\n return response.json();\n })\n .then(this.onSetExpirationSubmitSuccess)\n .catch(() => {\n this.setState({destroyProcessing: false});\n alert(\"Error: Updating Members!\");\n });\n };\n\n onSetExpirationSubmitSuccess = () => {\n this.setState({\n selectedGroupRoleDefinitionUserIds : [],\n key: this.state.key + 1,\n setExpirationProcessing: false\n });\n alert(\"Members Updated!\");\n };\n\n render() {\n let invalidDateMessage = null;\n if (!this.validDate() && this.state.setExpirationMonth.length > 0 && this.state.setExpirationDay.length > 0 && this.state.setExpirationYear.length > 0) {\n invalidDateMessage = <p>Invalid Date: Date must be valid and in the future</p>;\n }\n\n let selectExtraButtons = [\n <GenButton key=\"RemoveMembers\" name=\"Remove Selected Members\" highlighted={true} loading={this.state.destroyProcessing} small={true} disabled={this.state.selectedGroupRoleDefinitionUserIds.length === 0} onClick={this.handleDestroySelectedGroupRoleDefinitions}/>\n ];\n\n if (this.props.is_admin) {\n selectExtraButtons.unshift(<GenButton key=\"SetExpiration\" name=\"Set Expiration For Selected\" highlighted={true} loading={this.state.setExpirationProcessing} small={true} disabled={this.state.selectedGroupRoleDefinitionUserIds.length === 0} onClick={this.handleToggleSetExpirationModalOpen}/>);\n }\n\n let role_filter_options = {}\n this.props.role_definition_names.forEach(function(role_definition_name) {\n role_filter_options[role_definition_name] = [\"=\", \"role_definitions.name\", role_definition_name]\n });\n\n return(\n <div>\n <GenModal open={this.state.setExpirationModalOpen} closeModelFunction={this.handleToggleSetExpirationModalOpen}>\n <div className=\"gen-modal-panel\">\n <h1>Set Expiration</h1>\n <div>\n <form action=\"\">\n <div>\n <label><input type=\"radio\" value=\"past\" checked={this.state.setExpirationOption === \"past\"} onChange={this.handleSetExpirationOptionChange}/>Expire Now</label>\n </div>\n <div>\n <label><input type=\"radio\" value=\"never\" checked={this.state.setExpirationOption === \"never\"} onChange={this.handleSetExpirationOptionChange}/>Never Expire</label>\n </div>\n <div>\n <label><input type=\"radio\" value=\"date\" checked={this.state.setExpirationOption === \"date\"} onChange={this.handleSetExpirationOptionChange}/>Expire On Date...</label>\n </div>\n <div>\n <input type=\"text\" name=\"month\" placeholder=\"mm\"\n disabled={\"date\" != this.state.setExpirationOption}\n style={{width: 45 + 'px', display: 'inline-block'}}\n value={this.state.setExpirationMonth}\n onChange={this.handleSetExpirationMonth}/>/\n <input type=\"text\" name=\"day\" placeholder=\"dd\"\n disabled={\"date\" != this.state.setExpirationOption}\n style={{width: 45 + 'px', display: 'inline-block'}}\n value={this.state.setExpirationDay}\n onChange={this.handleSetExpirationDay}/>/\n <input type=\"text\" name=\"year\" placeholder=\"yy\"\n disabled={\"date\" != this.state.setExpirationOption}\n style={{width: 45 + 'px', display: 'inline-block'}}\n value={this.state.setExpirationYear}\n onChange={this.handleSetExpirationYear}/>\n {invalidDateMessage}\n </div>\n </form>\n <div className=\"gen-button-left-group\">\n <GenButton name=\"Set Expiration\" highlighted={true} loading={this.state.destroyProcessing} small={true} disabled={(this.state.setExpirationOption === \"date\") && !this.validDate()} onClick={this.handleSetExpirationSubmit}/>\n <GenButton name=\"Cancel\" highlighted={true} small={true} onClick={this.handleToggleSetExpirationModalOpen}/>\n </div>\n </div>\n </div>\n </GenModal>\n <GenTable\n key={this.state.key}\n selected={this.state.selectedGroupRoleDefinitionUserIds}\n onSelectionChange={this.handleGroupRoleDefinitionUserSelectionChange}\n selectExtraButtons={selectExtraButtons}\n itemsURL={\"/group_role_definition_users\"}\n defaultItemsPerPage={24}\n search={true}\n whereFilterOptions={[\n {\n \"title\": \"Role\",\n \"options\": role_filter_options\n },\n {\n \"title\": \"Subscription Status\",\n \"options\": {\n \"Invited\": [\"is_null\", \"group_role_definition_users.subscription_end\"],\n \"Active\": [\">\", \"group_role_definition_users.subscription_end\", (new Date().toISOString())],\n \"Expired\": [\"<\", \"group_role_definition_users.subscription_end\", (new Date().toISOString())]\n }\n }\n ]}\n columns= {[\n {\n \"title\": \"First Name\",\n \"sort_column\": \"users.first_name\",\n \"calculated_value\": (item) => {\n return <a href={\"group_role_definition_users/\" + item.id}>{item.user.first_name}</a>\n }\n },{\n \"title\": \"Last Name\",\n \"sort_column\": \"users.last_name\",\n \"calculated_value\": (item) => {\n return <a href={\"group_role_definition_users/\" + item.id}>{item.user.last_name}</a>\n }\n },{\n \"title\": \"Email\",\n \"column_width\": \"large\",\n \"sort_column\": \"users.email\",\n \"calculated_value\": (item) => {\n return <a href={\"group_role_definition_users/\" + item.id}>{item.user.email}</a>\n }\n },{\n \"title\": \"Role\",\n \"sort_column\": \"role_definitions.name\",\n \"calculated_value\": (item) => {return item.role_definition.name}\n },{\n \"title\": \"Subscription Start\",\n \"sort_column\": \"group_role_definition_users.subscription_start\",\n \"calculated_value\": (item) => {\n if (item.subscription_end === null){\n return(\"Invited\");\n } else {\n if (item.subscription_start === null){\n return(\"\");\n } else {\n const subscription_start_date = new Date(item.subscription_start);\n return(subscription_start_date.toISOString().slice(0, 10));\n }\n }\n }\n },{\n \"title\": \"Subscription End\",\n \"sort_column\": \"group_role_definition_users.subscription_end\",\n \"calculated_value\": (item) => {\n if (item.subscription_end === null){\n return(\"Invited\");\n } else {\n const subscription_end_date = new Date(item.subscription_end);\n if (subscription_end_date.getTime() > new Date('2100')) {\n return(\"Never Expires\");\n } else if (subscription_end_date.getTime() > Date.now()) {\n return(subscription_end_date.toISOString().slice(0, 10));\n } else {\n return(\"Expired: \" + subscription_end_date.toISOString().slice(0, 10));\n }\n }\n }\n }\n ]}\n />\n </div>\n );\n }\n}\n","import React from \"react\";\n\nimport connectToList from \"../../store/list\";\n\nimport GenMore from \"../Gen/More\";\nimport GenControlsBar from \"../Gen/ControlsBar\";\nimport GenSearchBox from \"../Gen/SearchBox\";\nimport GenSortButtons from \"../Gen/SortButtons\";\n\nconst ENDPOINT = \"institutions\";\n\nfunction InstitutionList(\n {\n institutions,\n },\n) {\n React.useEffect(() => {\n institutions.mountList(ENDPOINT);\n }, []);\n\n const items = (institutions.listData || []).map((item) => (\n <div className=\"panel\" key={item.id}>\n <h1>\n <a href={`/institutions/${item.id}`}>{item.name}</a>\n </h1>\n </div>\n ));\n\n return (\n <div>\n <GenControlsBar>\n <GenSearchBox\n {...institutions}\n />\n <GenSortButtons\n {...institutions}\n sortOptions={[\n {\n title: \"Name\",\n value: \"institutions.name\",\n },\n ]}\n />\n </GenControlsBar>\n {items}\n <GenMore\n {...institutions}\n shouldInfiniteScroll\n />\n </div>\n );\n}\n\nexport default connectToList(InstitutionList, \"institutions\");\n","import React from \"react\";\n\nimport connectToList from \"../../store/list\";\n\nimport GenMore from \"../Gen/More\";\nimport GenControlsBar from \"../Gen/ControlsBar\";\nimport GenSearchBox from \"../Gen/SearchBox\";\nimport GenSortButtons from \"../Gen/SortButtons\";\n\nfunction InstitutionContributorList(\n {\n contributor_id,\n institution_contributors,\n institution_id,\n },\n) {\n React.useEffect(() => {\n const endpoint = institution_id ? `institutions/${institution_id}/institution_contributors` : `contributors/${contributor_id}/institution_contributors`;\n\n institution_contributors.mountList(endpoint);\n }, []);\n\n const items = (institution_contributors.listData || []).map((institution_contributors) => {\n if (institution_id) {\n const {contributor} = institution_contributors;\n return (\n <div className=\"panel\" key={institution_contributors.id}>\n <div className=\"gen-panel-header\">\n <div className=\"gen-panel-header-title\">\n <h1>\n <a href={`/contributors/${contributor.id}`}>{contributor.name}{contributor.designation && `, ${contributor.designation}`}</a>\n </h1>\n </div>\n\n <div className=\"gen-panel-header-right-content\">\n <div className=\"list-stat-panels\">\n <div className=\"list-stat-panel\">\n <h1>{contributor.cached_assignment_count.toLocaleString()}</h1>\n <h5>Assignments</h5>\n </div>\n <div className=\"list-stat-panel\">\n <h1>{contributor.cached_view_count.toLocaleString()}</h1>\n <h5>Views</h5>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n } else {\n return (\n <div className=\"panel\" key={institution_contributors.id}>\n <h1>\n <a href={`/institutions/${institution_contributors.institution.id}`}>{institution_contributors.institution.name}</a>\n </h1>\n </div>\n );\n }\n });\n\n let extraSortOptions = [];\n if (institution_id) {\n extraSortOptions = [\n {\n title: \"Assignments\",\n value: \"contributors.cached_assignment_count\",\n },\n {\n title: \"Views\",\n value: \"contributors.cached_view_count\",\n },\n ];\n }\n\n return (\n <div>\n <GenControlsBar>\n <GenSearchBox\n {...institution_contributors}\n />\n <GenSortButtons\n {...institution_contributors}\n sortOptions={[\n {\n title: \"Name\",\n value: institution_id ? \"contributors.name\" : \"institutions.name\",\n },\n ...extraSortOptions,\n ]}\n />\n </GenControlsBar>\n {items}\n <GenMore\n {...institution_contributors}\n shouldInfiniteScroll\n />\n </div>\n );\n}\n\nexport default connectToList(InstitutionContributorList, \"institution_contributors\");\n","import React from 'react'\n\nimport GenButton from 'Gen/Button'\n\nimport classNames from 'classnames'\n\nimport axios from 'axios'\n\nconst INTIALIZING = 'INTIALIZING'\nconst NO_CAMERA = 'NO_CAMERA'\nconst LIVE_CAMERA = 'LIVE_CAMERA'\nconst RECORDING = 'RECORDING'\nconst PLAYING = 'PLAYING'\n\nfunction randomString() {\n return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15)\n}\n\nexport default class MediaAssetNewMediaRecorder extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n videoRecorderStatus: INTIALIZING\n }\n }\n\n componentDidMount() {\n this.startStreamByDeviceIds()\n }\n\n async getDevices() {\n try {\n const devices = await navigator.mediaDevices.enumerateDevices()\n\n this.setState({\n audioInputDevices: devices.filter(device => device.kind === 'audioinput'),\n videoInputDevices: devices.filter(device => device.kind === 'videoinput')\n })\n } catch (e) {\n console.error('navigator.getUserMedia error:', e)\n this.setState({videoRecorderStatus: NO_CAMERA})\n }\n }\n\n async startStreamByDeviceIds(audioDeviceId, videoDeviceId) {\n if (this.stream) {\n this.stream.getTracks().forEach(track => {\n track.stop()\n })\n }\n\n const constraints = {\n audio: {deviceId: audioDeviceId ? {exact: audioDeviceId} : undefined},\n video: {deviceId: videoDeviceId ? {exact: videoDeviceId} : undefined},\n }\n\n try {\n const stream = await navigator.mediaDevices.getUserMedia(constraints)\n\n this.getDevices()\n\n this.handleStream(stream)\n } catch (e) {\n console.error('navigator.getUserMedia error:', e)\n this.setState({videoRecorderStatus: NO_CAMERA})\n }\n }\n\n handleStream(stream) {\n let allTracks = stream.getTracks()\n\n let audioTrack = allTracks.find(track => track.kind === \"audio\")\n let audioDeviceId = audioTrack.getSettings().deviceId\n\n let videoTrack = allTracks.find(track => track.kind === \"video\")\n let videoDeviceId = videoTrack.getSettings().deviceId\n let facingMode = videoTrack.getSettings().facingMode\n\n this.setState({\n selectedAudioInputDeviceId: audioDeviceId,\n selectedVideoInputDeviceId: videoDeviceId,\n videoRecorderStatus: LIVE_CAMERA,\n facingMode: facingMode\n })\n\n this.stream = stream\n this.video.srcObject = stream\n this.video.autoplay = true\n this.video.muted = true\n }\n\n\n ///////////////////////\n // CAMERA SELECTION //\n /////////////////////\n\n // handleAudioInputDeviceChange(e) {\n // let selectedAudioInputDeviceId = e.target.value\n // this.setState({selectedAudioInputDeviceId: selectedAudioInputDeviceId}, () => {\n // this.startStreamByDeviceIds(this.state.selectedAudioInputDeviceId, this.state.selectedVideoInputDeviceId)\n // })\n // }\n //\n // handleVideoInputDeviceChange(e) {\n // let selectedVideoInputDeviceId = e.target.value\n // this.setState({selectedVideoInputDeviceId: selectedVideoInputDeviceId}, () => {\n // this.startStreamByDeviceIds(this.state.selectedAudioInputDeviceId, this.state.selectedVideoInputDeviceId)\n // })\n // }\n\n toggleCamera() {\n const currentDeviceIndex = this.state.videoInputDevices.findIndex(device => device.deviceId === this.state.selectedVideoInputDeviceId)\n const nextDeviceIndex = (currentDeviceIndex + 1) % this.state.videoInputDevices.length\n const nextDevice = this.state.videoInputDevices[nextDeviceIndex]\n\n this.setState({selectedVideoInputDeviceId: nextDevice.deviceId}, () => {\n this.startStreamByDeviceIds(this.state.selectedAudioInputDeviceId, this.state.selectedVideoInputDeviceId)\n })\n }\n\n ////////////////\n // RECORDING //\n //////////////\n\n startRecording() {\n this.setState({recordedFile: undefined})\n this.recordedBlobs = []\n\n // let options = {mimeType: 'video/webm;codecs=vp9'}\n let options = {mimeType: 'video/webm'}\n\n if (!MediaRecorder.isTypeSupported(options.mimeType)) {\n console.error(`${options.mimeType} is not Supported`)\n options = {mimeType: 'video/webm;codecs=vp8'}\n if (!MediaRecorder.isTypeSupported(options.mimeType)) {\n console.error(`${options.mimeType} is not Supported`)\n options = {mimeType: 'video/webm'}\n if (!MediaRecorder.isTypeSupported(options.mimeType)) {\n console.error(`${options.mimeType} is not Supported`)\n options = {mimeType: ''}\n }\n }\n }\n\n try {\n this.mediaRecorder = new MediaRecorder(this.stream, options)\n } catch (e) {\n console.error('Exception while creating MediaRecorder:', e)\n return\n }\n\n\n this.mediaRecorder.onstop = this.onRecordingStop.bind(this)\n this.mediaRecorder.ondataavailable = this.handleMediaRecorderData.bind(this)\n this.mediaRecorder.start(1000)\n\n this.setState({videoRecorderStatus: RECORDING})\n }\n\n onRecordingStop() {\n const blob = new Blob(this.recordedBlobs, {type: 'video/webm'})\n this.setState({recordedFile: blob})\n\n this.video.src = null\n this.video.srcObject = null\n this.video.src = window.URL.createObjectURL(blob)\n this.video.autoplay = false\n this.video.muted = false\n this.video.onended = this.stopPlayRecording.bind(this)\n }\n\n handleMediaRecorderData(event) {\n if (event.data && event.data.size > 0) {\n this.recordedBlobs.push(event.data)\n }\n }\n\n stopRecording() {\n console.log(\"Stop Recording\")\n this.mediaRecorder.stop()\n this.setState({videoRecorderStatus: LIVE_CAMERA})\n }\n\n discardRecording() {\n this.setState({recordedFile: undefined})\n\n this.video.src = null\n this.video.srcObject = null\n this.video.srcObject = this.stream\n this.video.autoplay = true\n this.video.muted = true\n this.video.onended = undefined\n }\n\n ///////////////\n // PLAYBACK //\n /////////////\n\n playRecording() {\n this.video.play()\n this.setState({videoRecorderStatus: PLAYING})\n }\n\n stopPlayRecording() {\n this.video.pause()\n this.video.currentTime = 0\n this.setState({videoRecorderStatus: LIVE_CAMERA})\n }\n\n\n ////////////////\n // UPLOADING //\n //////////////\n async upload() {\n console.log(this.state.recordedFile)\n\n let randomUploadFileName = `${randomString()}.webm`\n\n let signedUrl\n try {\n signedUrl = await axios({\n method: 'get',\n url: '/media_assets/signed_url',\n params: {\n objectName: randomUploadFileName,\n path: '/uploads/'\n },\n headers: {\n Accept: 'application/json'\n },\n responseType: 'json'\n })\n signedUrl = signedUrl.data.signedUrl\n } catch (e) {\n console.error('ERROR GET SIGNED URL:', e)\n }\n\n console.log(\"SIGNED URL:\", signedUrl)\n\n let file = new File([this.state.recordedFile], randomUploadFileName)\n\n let uploadResponse\n try {\n uploadResponse = await axios.put(signedUrl, file, {\n headers: {\n 'Content-Type': file.type\n },\n onUploadProgress: this.onUploadProgress.bind(this)\n })\n } catch (e) {\n console.error('ERROR UPLOAD:', e)\n }\n\n console.log(\"UPLOAD RESPONSE:\", uploadResponse)\n\n this.onUploadFinish(signedUrl)\n }\n\n onUploadProgress(progressEvent) {\n this.setState({progressPercent: progressEvent.loaded/progressEvent.total * 100})\n }\n\n onUploadError(error) {\n console.log(\"ERROR:\", error)\n alert(\"Error Uploading:\")\n // DISPLAY THERE WAS AN ERROR UPLOADING\n }\n\n onUploadFinish(fileURL) {\n console.log(\"FINISH:\", fileURL)\n\n let fileUrl = new URL(fileURL)\n let originalPath = fileUrl.pathname\n\n console.log(\"Response:\", fileURL)\n console.log(\"File Path:\", originalPath)\n\n const csrfToken = document.querySelector('[name=csrf-token]').content\n axios.defaults.headers.common['X-CSRF-TOKEN'] = csrfToken\n\n axios.post(`/documents/${this.props.document_id}/media_assets`, {\n media_asset: {\n original_upload_path: originalPath,\n media_type: 'video'\n }\n })\n .then((response) => {\n Turbolinks.visit(`/documents/${this.props.document_id}/hipaa_releases/new`)\n })\n .catch((error) => {\n console.log(error)\n alert(\"Error Uploading:\")\n })\n }\n\n render() {\n let hasProgress = typeof(this.state.progressPercent) === 'number'\n\n let controls = null\n switch (this.state.videoRecorderStatus) {\n case INTIALIZING:\n controls = <>\n <h5>Connecting to camera...</h5>\n </>\n\n break\n case LIVE_CAMERA:\n case RECORDING:\n case PLAYING:\n if (hasProgress) {\n controls = <div className=\"progress progress-striped active\">\n <div className=\"bar\" style={{width: `${this.state.progressPercent * 0.95}%`}}></div>\n </div>\n } else if (this.state.recordedFile) {\n const isPlaying = this.state.videoRecorderStatus === PLAYING\n\n controls = <>\n <GenButton\n name={<span><i className=\"fa fa-trash fa-2x\"></i><br/>Discard</span>}\n highlighted\n disabled={isPlaying}\n onClick={this.discardRecording.bind(this)}\n />\n <GenButton\n name={<span><i className={`fa ${isPlaying ? 'fa-stop-circle' : 'fa-play-circle'} fa-4x`}></i><br/>{isPlaying ? 'Stop' : 'Play'}</span>}\n highlighted\n onClick={isPlaying ? this.stopPlayRecording.bind(this) : this.playRecording.bind(this)}\n />\n <GenButton\n name={<span><i className=\"fa fa-upload fa-2x\"></i><br/>Upload</span>}\n highlighted\n disabled={isPlaying}\n onClick={this.upload.bind(this)}\n />\n </>\n } else {\n // let audioInputSelectList\n // if (this.state.audioInputDevices) {\n // audioInputSelectList = <div>\n // <select value={this.state.selectedAudioInputDeviceId} onChange={this.handleAudioInputDeviceChange.bind(this)}>\n // {this.state.audioInputDevices.map(audioInputDevice => <option key={audioInputDevice.deviceId} value={audioInputDevice.deviceId}>\n // {audioInputDevice.label}\n // </option>)}\n // </select>\n // </div>\n // }\n //\n // let videoInputSelectList\n // if (this.state.videoInputDevices) {\n // videoInputSelectList = <div>\n // <select value={this.state.selectedVideoInputDeviceId} onChange={this.handleVideoInputDeviceChange.bind(this)} disabled={this.state.videoRecorderStatus === RECORDING}>\n // {this.state.videoInputDevices.map(videoInputDevice => <option key={videoInputDevice.deviceId} value={videoInputDevice.deviceId}>\n // {videoInputDevice.label}\n // </option>)}\n // </select>\n // </div>\n // }\n\n const isRecording = this.state.videoRecorderStatus === RECORDING\n const shouldShowCameraToggle = this.state.videoInputDevices // && this.state.videoInputDevices.length > 1\n\n controls = <>\n <div className='gen-empty-flex-space'></div>\n <GenButton\n name={<span><i className={`fa ${isRecording ? 'fa-stop-circle' : 'fa-circle'} fa-4x`}></i><br/>{isRecording ? 'Stop' : 'Record'}</span>}\n highlighted\n onClick={isRecording ? this.stopRecording.bind(this) : this.startRecording.bind(this)}\n />\n {shouldShowCameraToggle ? <GenButton\n name={<span><i className=\"fa fa-camera fa-2x\"></i><br/>Switch</span>}\n highlighted\n disabled={isRecording}\n onClick={this.toggleCamera.bind(this)}\n /> : <div className='gen-empty-flex-space'></div>}\n </>\n }\n\n break\n case NO_CAMERA:\n controls = <>\n <div className=\"error\">\n <p>Error Accessing Camera</p>\n </div>\n </>\n\n break\n default:\n controls = <>\n <div className=\"error\">\n <p>Error</p>\n </div>\n </>\n }\n\n return <div className='media-asset-new-media-recorder'>\n <video\n className={classNames({mirror: !this.state.facingMode || this.state.facingMode === \"user\"})}\n ref={video => {this.video = video}}\n />\n <div className='controls-box'>\n <div className='controls-inner-box'>\n <div className='controls-title'>\n <h6>Patient Capture -- {this.props.document_id} | {this.props.document_title}</h6>\n </div>\n <div className='controls'>\n {controls}\n </div>\n </div>\n </div>\n </div>\n }\n}\n","import React from 'react'\n\nimport ReactS3Uploader from 'react-s3-uploader'\n\nimport classNames from 'classnames'\n\nimport axios from 'axios'\n\nexport default class MediaAssetNewWebkit extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {}\n }\n\n onUploadProgress(progressEvent) {\n this.setState({progressPercent: progressEvent})\n }\n\n onUploadError(error) {\n console.log(\"ERROR:\", error)\n alert(\"Error Uploading\")\n // DISPLAY THERE WAS AN ERROR UPLOADING\n }\n\n onUploadFinish(response) {\n console.log(\"FINISH:\", response)\n\n let fileUrl = new URL(response.signedUrl)\n let originalPath = fileUrl.pathname\n\n console.log(\"File Path:\", originalPath)\n\n const csrfToken = document.querySelector('[name=csrf-token]').content\n axios.defaults.headers.common['X-CSRF-TOKEN'] = csrfToken\n\n axios.post(`/documents/${this.props.document_id}/media_assets`, {\n media_asset: {\n original_upload_path: originalPath,\n media_type: 'video'\n }\n })\n .then((response) => {\n Turbolinks.visit(`/documents/${this.props.document_id}/hipaa_releases/new`)\n })\n .catch((error) => {\n console.log(error)\n alert(\"Error Uploading:\")\n })\n }\n\n render() {\n let hasProgress = typeof(this.state.progressPercent) === 'number'\n\n return <div>\n <label className={classNames('button', 'bg-sky-600 hover:bg-sky-500', {disabled: hasProgress})} style={{width: '100%'}}>\n {hasProgress ? 'Uploading Video' : 'Capture Video'}\n <ReactS3Uploader\n signingUrl=\"/media_assets/signed_url\"\n signingUrlMethod=\"GET\"\n accept=\"video/mp4,video/*\"\n s3path=\"/uploads/\"\n onProgress={this.onUploadProgress.bind(this)}\n onError={this.onUploadError.bind(this)}\n onFinish={this.onUploadFinish.bind(this)}\n id=\"video_upload_button\"\n style={{display: 'none'}}\n uploadRequestHeaders={{}}\n />\n </label>\n {hasProgress && <div className=\"progress progress-striped active\">\n <div className=\"bar\" style={{width: `${this.state.progressPercent * 0.95}%`}}></div>\n </div>}\n </div>\n }\n}\n","import React from 'react';\n\nimport GenButton from 'Gen/Button'\nimport GenCycleButton from 'Gen/CycleButton'\nimport GenToggleBar from 'Gen/ToggleBar'\nimport GenToggleButton from 'Gen/ToggleButton'\n\n//<%= react_component('Test/ComponentPreview') %>\n\nexport default class TestComponentPreview extends React.Component {\n state = {\n cycleButtonValue : \"one\",\n toggleButtonValue : false,\n toggleBarValue : \"one\"\n };\n\n onButtonClick = () => {\n alert(\"Clicked\");\n };\n\n onCycleButtonClick = (newValue) => {\n this.setState({cycleButtonValue: newValue});\n };\n\n onToggleButtonClick = (newValue) => {\n this.setState({toggleButtonValue: newValue});\n };\n\n onToggleBarClick = (newValue) => {\n this.setState({toggleBarValue: newValue});\n };\n\n render() {\n return(\n <div>\n <div>\n <h1>GenButton</h1>\n <GenButton\n name=\"Button\"\n highlighted={false}\n disabled={false}\n onClick={this.onButtonClick} />\n <GenButton\n name=\"Highlighted Button\"\n highlighted={true}\n disabled={false}\n onClick={this.onButtonClick} />\n <GenButton\n name=\"Disabled Button\"\n highlighted={false}\n disabled={true}\n onClick={this.onButtonClick} />\n <GenButton\n name=\"Disabled Highlighted Button\"\n highlighted={true}\n disabled={true}\n onClick={this.onButtonClick} />\n </div>\n\n <div>\n <h1>GenCycleButton</h1>\n <GenCycleButton\n states={[\n { \"button\" : {\n \"name\" : \"One\",\n \"highlighted\" : false,\n \"disabled\" : false\n },\n \"value\" : \"one\",\n \"nextValue\" : \"two\"\n },\n { \"button\" : {\n \"name\" : \"Two\",\n \"highlighted\" : true,\n \"disabled\" : false\n },\n \"value\" : \"two\",\n \"nextValue\" : \"three\"\n },\n { \"button\" : {\n \"name\" : \"Three\",\n \"highlighted\" : true,\n \"disabled\" : false\n },\n \"value\" : \"three\",\n \"nextValue\" : \"two\"\n }\n ]}\n disabled={false}\n currentValue={this.state.cycleButtonValue}\n onClick={this.onCycleButtonClick} />\n </div>\n\n <div>\n <h1>GenToggleButton</h1>\n <GenToggleButton\n name={\"Test\"}\n value={this.state.toggleButtonValue}\n onClick={this.onToggleButtonClick}/>\n </div>\n\n <div>\n <h1>GenToggleBar</h1>\n <GenToggleBar\n buttons={[\n { name : \"One\",\n value: \"one\",\n disabled: false},\n { name : \"Two\",\n value: \"two\",\n disabled: false},\n { name : \"Three\",\n value: \"three\",\n disabled: true},\n ]}\n value={this.state.toggleBarValue}\n onClick={this.onToggleBarClick}/>\n </div>\n </div>\n );\n }\n}\n","import React from \"react\";\n\nimport connectToList from \"../../store/list\";\n\nimport GenControlsBar from \"../Gen/ControlsBar\";\nimport GenMore from \"../Gen/More\";\nimport GenSearchBox from \"../Gen/SearchBox\";\nimport GenSortButtons from \"../Gen/SortButtons\";\nimport UserSummary from \"./Summary\";\n\nfunction UserList(\n {\n users,\n },\n) {\n React.useEffect(() => {\n users.mountList(\"/users\");\n }, []);\n\n return (\n <div>\n <GenControlsBar>\n <GenSearchBox\n {...users}\n />\n <GenSortButtons\n {...users}\n sortOptions={[\n {\n title: \"First Name\",\n value: \"users.first_name\",\n },\n {\n title: \"Last Name\",\n value: \"users.last_name\",\n },\n {\n title: \"Email\",\n value: \"users.email\",\n },\n ]}\n />\n </GenControlsBar>\n {users.listData?.map((user) => (\n <UserSummary\n key={user.id}\n user={user}\n />\n ))}\n <GenMore\n {...users}\n shouldInfiniteScroll\n />\n </div>\n );\n}\n\nexport default connectToList(UserList, [\"users\"]);\n","import React from \"react\";\n\nimport connectToList from \"../../store/list\";\n\nimport GenControlsBar from \"../Gen/ControlsBar\";\nimport GenMore from \"../Gen/More\";\nimport GenSearchBox from \"../Gen/SearchBox\";\nimport VersionSummary from \"./Summary\";\n\nfunction VersionList(\n {\n documentId,\n versions,\n },\n) {\n React.useEffect(() => {\n versions.mountList(`/documents/${documentId}/versions`);\n }, []);\n\n return (\n <div>\n <GenControlsBar>\n <GenSearchBox\n {...versions}\n />\n </GenControlsBar>\n {versions.listData?.map((version) => (\n <VersionSummary\n key={version.id}\n version={version}\n />\n ))}\n <GenMore\n {...versions}\n shouldInfiniteScroll\n />\n </div>\n );\n}\n\nexport default connectToList(VersionList, [\"versions\"]);\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;\n}\nmodule.exports = isSymbol;","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\nmodule.exports = Symbol;","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || value !== value && other !== other;\n}\nmodule.exports = eq;","import invariant from 'invariant';\nvar noop = function noop() {};\nfunction readOnlyPropType(handler, name) {\n return function (props, propName) {\n if (props[propName] !== undefined) {\n if (!props[handler]) {\n return new Error(\"You have provided a `\" + propName + \"` prop to `\" + name + \"` \" + (\"without an `\" + handler + \"` handler prop. This will render a read-only field. \") + (\"If the field should be mutable use `\" + defaultKey(propName) + \"`. \") + (\"Otherwise, set `\" + handler + \"`.\"));\n }\n }\n };\n}\nexport function uncontrolledPropTypes(controlledValues, displayName) {\n var propTypes = {};\n Object.keys(controlledValues).forEach(function (prop) {\n // add default propTypes for folks that use runtime checks\n propTypes[defaultKey(prop)] = noop;\n if (process.env.NODE_ENV !== 'production') {\n var handler = controlledValues[prop];\n !(typeof handler === 'string' && handler.trim().length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop) : invariant(false) : void 0;\n propTypes[prop] = readOnlyPropType(handler, displayName);\n }\n });\n return propTypes;\n}\nexport function isProp(props, prop) {\n return props[prop] !== undefined;\n}\nexport function defaultKey(key) {\n return 'default' + key.charAt(0).toUpperCase() + key.substr(1);\n}\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nexport function canAcceptRef(component) {\n return !!component && (typeof component !== 'function' || component.prototype && component.prototype.isReactComponent);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nimport { useCallback, useRef, useState } from 'react';\nimport * as Utils from './utils';\nfunction useUncontrolledProp(propValue, defaultValue, handler) {\n var wasPropRef = useRef(propValue !== undefined);\n var _useState = useState(defaultValue),\n stateValue = _useState[0],\n setState = _useState[1];\n var isProp = propValue !== undefined;\n var wasProp = wasPropRef.current;\n wasPropRef.current = isProp;\n /**\n * If a prop switches from controlled to Uncontrolled\n * reset its value to the defaultValue\n */\n\n if (!isProp && wasProp && stateValue !== defaultValue) {\n setState(defaultValue);\n }\n return [isProp ? propValue : stateValue, useCallback(function (value) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (handler) handler.apply(void 0, [value].concat(args));\n setState(value);\n }, [handler])];\n}\nexport { useUncontrolledProp };\nexport default function useUncontrolled(props, config) {\n return Object.keys(config).reduce(function (result, fieldName) {\n var _extends2;\n var _ref = result,\n defaultValue = _ref[Utils.defaultKey(fieldName)],\n propsValue = _ref[fieldName],\n rest = _objectWithoutPropertiesLoose(_ref, [Utils.defaultKey(fieldName), fieldName].map(_toPropertyKey));\n var handlerName = config[fieldName];\n var _useUncontrolledProp = useUncontrolledProp(propsValue, defaultValue, props[handlerName]),\n value = _useUncontrolledProp[0],\n handler = _useUncontrolledProp[1];\n return _extends({}, rest, (_extends2 = {}, _extends2[fieldName] = value, _extends2[handlerName] = handler, _extends2));\n }, props);\n}","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nvar _jsxFileName = \"/Users/jquense/src/uncontrollable/src/uncontrollable.js\";\nimport React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport invariant from 'invariant';\nimport * as Utils from './utils';\nexport default function uncontrollable(Component, controlledValues, methods) {\n if (methods === void 0) {\n methods = [];\n }\n var displayName = Component.displayName || Component.name || 'Component';\n var canAcceptRef = Utils.canAcceptRef(Component);\n var controlledProps = Object.keys(controlledValues);\n var PROPS_TO_OMIT = controlledProps.map(Utils.defaultKey);\n !(canAcceptRef || !methods.length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '[uncontrollable] stateless function components cannot pass through methods ' + 'because they have no associated instances. Check component: ' + displayName + ', ' + 'attempting to pass through methods: ' + methods.join(', ')) : invariant(false) : void 0;\n var UncontrolledComponent = /*#__PURE__*/\n function (_React$Component) {\n _inheritsLoose(UncontrolledComponent, _React$Component);\n function UncontrolledComponent() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.handlers = Object.create(null);\n controlledProps.forEach(function (propName) {\n var handlerName = controlledValues[propName];\n var handleChange = function handleChange(value) {\n if (_this.props[handlerName]) {\n var _this$props;\n _this._notifying = true;\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n (_this$props = _this.props)[handlerName].apply(_this$props, [value].concat(args));\n _this._notifying = false;\n }\n if (!_this.unmounted) _this.setState(function (_ref) {\n var _extends2;\n var values = _ref.values;\n return {\n values: _extends(Object.create(null), values, (_extends2 = {}, _extends2[propName] = value, _extends2))\n };\n });\n };\n _this.handlers[handlerName] = handleChange;\n });\n if (methods.length) _this.attachRef = function (ref) {\n _this.inner = ref;\n };\n var values = Object.create(null);\n controlledProps.forEach(function (key) {\n values[key] = _this.props[Utils.defaultKey(key)];\n });\n _this.state = {\n values: values,\n prevProps: {}\n };\n return _this;\n }\n var _proto = UncontrolledComponent.prototype;\n _proto.shouldComponentUpdate = function shouldComponentUpdate() {\n //let setState trigger the update\n return !this._notifying;\n };\n UncontrolledComponent.getDerivedStateFromProps = function getDerivedStateFromProps(props, _ref2) {\n var values = _ref2.values,\n prevProps = _ref2.prevProps;\n var nextState = {\n values: _extends(Object.create(null), values),\n prevProps: {}\n };\n controlledProps.forEach(function (key) {\n /**\n * If a prop switches from controlled to Uncontrolled\n * reset its value to the defaultValue\n */\n nextState.prevProps[key] = props[key];\n if (!Utils.isProp(props, key) && Utils.isProp(prevProps, key)) {\n nextState.values[key] = props[Utils.defaultKey(key)];\n }\n });\n return nextState;\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unmounted = true;\n };\n _proto.render = function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n innerRef = _this$props2.innerRef,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"innerRef\"]);\n PROPS_TO_OMIT.forEach(function (prop) {\n delete props[prop];\n });\n var newProps = {};\n controlledProps.forEach(function (propName) {\n var propValue = _this2.props[propName];\n newProps[propName] = propValue !== undefined ? propValue : _this2.state.values[propName];\n });\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, newProps, this.handlers, {\n ref: innerRef || this.attachRef\n }));\n };\n return UncontrolledComponent;\n }(React.Component);\n polyfill(UncontrolledComponent);\n UncontrolledComponent.displayName = \"Uncontrolled(\" + displayName + \")\";\n UncontrolledComponent.propTypes = _extends({\n innerRef: function innerRef() {}\n }, Utils.uncontrolledPropTypes(controlledValues, displayName));\n methods.forEach(function (method) {\n UncontrolledComponent.prototype[method] = function $proxiedMethod() {\n var _this$inner;\n return (_this$inner = this.inner)[method].apply(_this$inner, arguments);\n };\n });\n var WrappedComponent = UncontrolledComponent;\n if (React.forwardRef) {\n WrappedComponent = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(UncontrolledComponent, _extends({}, props, {\n innerRef: ref,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 128\n },\n __self: this\n }));\n });\n WrappedComponent.propTypes = UncontrolledComponent.propTypes;\n }\n WrappedComponent.ControlledComponent = Component;\n /**\n * useful when wrapping a Component and you want to control\n * everything\n */\n\n WrappedComponent.deferControlTo = function (newComponent, additions, nextMethods) {\n if (additions === void 0) {\n additions = {};\n }\n return uncontrollable(newComponent, _extends({}, controlledValues, additions), nextMethods);\n };\n return WrappedComponent;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","import * as React from 'react'\nimport { Provider, connect } from 'react-redux'\n\nimport Mousetrap from 'mousetrap'\nimport * as R from 'ramda'\nimport classNames from 'classnames'\n\nimport store from '../../store/store'\n\nimport DocMediaModal from './MediaModal'\nimport DocEditMetadataModal from './EditMetadataModal'\nimport DocSection from './Section'\nimport DocTopBar from './TopBar'\n\nimport GenLoadingSpinner from '../Gen/LoadingSpinner'\n\nimport {\n addActivitiesToDocument\n} from '../../src/activities'\n\nimport {\n inlineHTMLToJSON,\n inlineJSONToHTML\n} from '../../src/convert'\n\nimport {\n DISPLAY_MODES,\n displayTraitsBasedOnMode,\n} from '../../src/display_mode'\n\nimport {\n deepFindByUID,\n deepFindLineageByUID,\n deepFindOldestNotSectionAncestorByUID,\n deepFindSiblingBeforeByUID,\n deleteNodeByUID,\n generateNode,\n replaceNodeByUID,\n insertAfterNodeByUID,\n insertBeforeNodeByUID,\n modifyNodeValueByUIDAndKey,\n setNodeValueByUIDAndKey,\n siblingCountByUID,\n siblingIndexByUID,\n newSetNodeKVPairAction,\n newOpenLinkAction,\n} from '../../src/doc_helpers'\n\nimport {\n replaceText,\n inlineJSONBeforeIndex,\n inlineJSONAfterIndex\n} from '../../src/inline_json'\n\nimport {\n getDocRangeSelection\n} from '../../src/selection'\n\nimport {\n generateStyleFunction\n} from '../../src/style'\n\nimport {\n fullURL\n} from '../../src/url'\n\nimport {\n nowInSeconds\n} from '../../src/now_in_seconds'\n\nimport {\n readDocumentSetDocumentState,\n updateDocumentSetDocumentState,\n destroyDocumentSetDocumentState,\n setEditFieldsDocumentSetDocumentState,\n resetEditFieldsDocumentSetDocumentState,\n setLocalFieldsDocumentSetDocumentState,\n resetLocalFieldsDocumentSetDocumentState,\n documentSetDocumentStateFromStore,\n addDocumentSetDocumentState,\n resetDocumentSetDocumentState,\n} from '../../reducers/document_set_document_state'\n\nimport {\n readDocument,\n documentFromStore,\n} from '../../reducers/document'\n\nimport {\n readVersion,\n updateVersion,\n setEditFieldsVersion,\n setLocalFieldsVersion,\n versionFromStore,\n versionEditDataFromStore,\n versionLocalDataFromStore,\n} from '../../reducers/version'\n\nimport {\n readActivity,\n updateActivity,\n setEditFieldsActivity,\n setLocalFieldsActivity,\n activityFromStore,\n activityEditDataFromStore,\n activityLocalDataFromStore,\n} from '../../reducers/activity'\n\nimport {\n readActivityUserState,\n activityUserStateFromStore,\n addActivityUserState,\n} from '../../reducers/activity_user_state'\n\nfunction document_usc_url(document_id){ return fullURL(`/documents/${document_id}/usc`) }\nfunction document_user_log_url(document_id){ return fullURL(`/documents/${document_id}/document_user_logs/create_batch`) }\n\nconst mapStateToProps = (state, oProps) => {\n const {\n type,\n activityID,\n documentID,\n versionID,\n currentDocumentSetDocumentRelation,\n currentDocumentActivities=[],\n currentDocumentSetDocumentActivities=[],\n } = oProps\n\n if (type === \"Activity\") {\n const activityDocument = activityFromStore(state, activityID)\n return {\n currentDocument: activityDocument && {...activityDocument, type: \"Activity\"},\n currentVersion: activityFromStore(state, activityID),\n versionEditData: activityEditDataFromStore(state, activityID),\n versionLocalData: activityLocalDataFromStore(state, activityID),\n activityUserStatesByActivityId: [],\n }\n } else {\n const combinedDocumentActivities = currentDocumentActivities.concat(currentDocumentSetDocumentActivities)\n\n let documentSetDependentProps = {};\n documentSetDependentProps = {\n documentSetDocumentState: currentDocumentSetDocumentRelation && documentSetDocumentStateFromStore(state, `${currentDocumentSetDocumentRelation.document_set_id}/${documentID}`),\n activityUserStatesByActivityId: R.fromPairs(combinedDocumentActivities.map(documentSetDocumentActivities => {\n const activityId = documentSetDocumentActivities.activity.id\n const longActivityId = currentDocumentSetDocumentRelation ? `${activityId}/${currentDocumentSetDocumentRelation.document_set_id}/${documentID}` : `${activityId}/${documentID}`\n return [activityId, activityUserStateFromStore(state, longActivityId)]\n })),\n }\n\n return {\n currentDocument: documentFromStore(state, documentID),\n currentVersion: versionFromStore(state, versionID),\n versionEditData: versionEditDataFromStore(state, versionID),\n versionLocalData: versionLocalDataFromStore(state, versionID),\n ...documentSetDependentProps,\n }\n }\n}\n\nconst mapDispatchToProps = (dispatch, oProps) => {\n const {\n type,\n activityID,\n documentID,\n versionID,\n currentDocumentSetDocumentRelation,\n } = oProps;\n\n let dispatchFunctions: any = {};\n\n if (type === \"Activity\") {\n dispatchFunctions = {\n // DOCUMENT\n readDocument: () => dispatch(readActivity(activityID)),\n // VERSION\n readVersion: () => dispatch(readActivity(activityID)),\n updateVersion: () => dispatch(updateActivity(activityID)),\n setEditFieldsVersion: (fields) => dispatch(setEditFieldsActivity(activityID, fields)),\n setLocalFieldsVersion: (fields) => dispatch(setLocalFieldsActivity(activityID, fields)),\n // ACTIVITY\n readActivityUserState: (activityId) => {},\n addActivityUserState: (activityId, state) => {},\n }\n\n dispatchFunctions = {\n ...dispatchFunctions,\n setEditJSON: content => dispatchFunctions.setEditFieldsVersion({content}),\n }\n } else {\n const activityIdSuffix = currentDocumentSetDocumentRelation ? `${currentDocumentSetDocumentRelation.document_set_id}/${documentID}` : `${documentID}`\n\n dispatchFunctions = {\n // DOCUMENT\n readDocument: () => dispatch(readDocument(documentID)),\n // VERSION\n readVersion: () => dispatch(readVersion(versionID)),\n updateVersion: () => dispatch(updateVersion(versionID)),\n setEditFieldsVersion: (fields) => dispatch(setEditFieldsVersion(versionID, fields)),\n setLocalFieldsVersion: (fields) => dispatch(setLocalFieldsVersion(versionID, fields)),\n // DOCUMENT SET DOCUMENT STATE\n readDocumentSetDocumentState: () => dispatch(readDocumentSetDocumentState(`${currentDocumentSetDocumentRelation.document_set_id}/${documentID}`)),\n addDocumentSetDocumentState: (state) => dispatch(addDocumentSetDocumentState(`${currentDocumentSetDocumentRelation.document_set_id}/${documentID}`, state)),\n resetDocumentSetDocumentState: () => dispatch(resetDocumentSetDocumentState(`${currentDocumentSetDocumentRelation.document_set_id}/${documentID}`)),\n // ACTIVITY\n readActivityUserState: (activityId) => dispatch(readActivityUserState(`${activityId}/${activityIdSuffix}`)),\n addActivityUserState: (activityId, state) => dispatch(addActivityUserState(`${activityId}/${activityIdSuffix}`, state))\n }\n\n dispatchFunctions = {\n ...dispatchFunctions,\n setEditJSON: json => dispatchFunctions.setEditFieldsVersion({json}),\n }\n }\n\n return {\n ...dispatchFunctions,\n setCurrentlyEditing: currentlyEditing => dispatchFunctions.setLocalFieldsVersion({currentlyEditing}),\n setDisplayMode: displayMode => dispatchFunctions.setLocalFieldsVersion({displayMode}),\n setUndoRedoQueues: (undoQueue, redoQueue) => dispatchFunctions.setLocalFieldsVersion({undoQueue, redoQueue}),\n setEditMetadata: (editMetadataUid) => dispatchFunctions.setLocalFieldsVersion({editMetadataUid}),\n }\n}\n\ninterface DocContainerProps {\n currentDocumentActivities: Array<any>;\n currentDocumentSetDocumentActivities: Array<any>;\n currentDocumentSetDocumentRelation: any;\n readActivityUserState: (id: number) => void;\n readDocumentSetDocumentState: () => void;\n resetDocumentSetDocumentState: () => void;\n readDocument: () => void;\n readVersion: () => void;\n updateVersion: () => void;\n\n activityUserStatesByActivityId: number;\n addActivityUserState: any;\n addDocumentSetDocumentState: any;\n currentDocument: any;\n currentGroup: any;\n currentRoleDefinition: any;\n currentVersion: any;\n documentSetDocumentState: any;\n imagingTypes: Array<ImagingType>;\n isEditor: boolean;\n scheduableSectionUIDs: any;\n setCurrentlyEditing: any;\n setDisplayMode: any;\n setEditJSON: any;\n setUndoRedoQueues: any;\n type: any;\n versionLocalData: any;\n documentID: number;\n currentUser: any;\n setEditFieldsVersion: any;\n versionEditData: any;\n setEditMetadata: any;\n nextDocumentSetDocumentRelationId: number;\n};\n\ninterface DocContainerState {\n syncCounter: number;\n uscData: Array<any>;\n};\n\nclass DocContainer extends React.Component<DocContainerProps, DocContainerState> {\n state = {\n syncCounter: 0,\n uscData: [],\n }\n\n private getUSCSTimer: NodeJS.Timeout;\n\n componentDidMount() {\n const {\n currentDocumentActivities=[],\n currentDocumentSetDocumentActivities=[],\n currentDocumentSetDocumentRelation,\n readActivityUserState,\n readDocumentSetDocumentState,\n readDocument,\n readVersion,\n } = this.props;\n\n this.resetUndoRedo()\n readVersion()\n readDocument()\n\n const combinedDocumentActivities = currentDocumentActivities.concat(currentDocumentSetDocumentActivities)\n\n combinedDocumentActivities.forEach(documentSetDocumentActivity => readActivityUserState(documentSetDocumentActivity.activity.id))\n\n document.addEventListener(\"selectionchange\", this.onSelectionChange.bind(this), false)\n\n // let stateObj = { section_uid: topSectionUID };\n // for (let attrname in history.state) { stateObj[attrname] = history.state[attrname]; }\n // history.replaceState(stateObj, \"\", \"?section_uid=\" + topSectionUID);\n //\n // window.onpopstate = (event) => {\n // if (event.state) {\n // if (event.state.section_uid) {\n // this.setState({displayMode: \"normal\"});\n // }\n // }\n // };\n\n if (currentDocumentSetDocumentRelation?.is_gated) {\n readDocumentSetDocumentState()\n } else {\n this.getUSCS()\n this.getUSCSTimer = setInterval(this.getUSCS.bind(this), 60000)\n }\n\n this.logEvent(\"root\", \"section_opened\");\n\n Mousetrap.bind([\"del\", \"backspace\"], this.handleDelete.bind(this))\n Mousetrap.bind('command+backspace', this.handleDelete.bind(this))\n Mousetrap.bind('command+del', this.handleDelete.bind(this))\n Mousetrap.bind('option+backspace', this.handleDelete.bind(this))\n Mousetrap.bind('option+del', this.handleDelete.bind(this))\n Mousetrap.bind('enter', this.handleEnter.bind(this))\n Mousetrap.bind('command+b', this.handleStyleButton.bind(this, 'b'))\n Mousetrap.bind('command+i', this.handleStyleButton.bind(this, 'i'))\n Mousetrap.bind('command+u', this.handleStyleButton.bind(this, 'u'))\n Mousetrap.bind('command+shift+=', this.handleStyleButton.bind(this, 'sub'))\n Mousetrap.bind('command+=', this.handleStyleButton.bind(this, 'sup'))\n\n Mousetrap.bind('command+s', (e) => {e.preventDefault(); this.save()})\n Mousetrap.bind('command+z', (e) => {e.preventDefault(); this.undo()})\n Mousetrap.bind('command+y', (e) => {e.preventDefault(); this.redo()})\n }\n\n componentWillUnmount() {\n document.removeEventListener(\"selectionchange\", this.onSelectionChange.bind(this), false)\n\n clearInterval(this.getUSCSTimer)\n\n Mousetrap.unbind([\"del\", \"backspace\"])\n Mousetrap.unbind('enter')\n Mousetrap.unbind('command+b')\n Mousetrap.unbind('command+i')\n Mousetrap.unbind('command+u')\n Mousetrap.unbind('command+shift+=')\n Mousetrap.unbind('command+=')\n\n Mousetrap.unbind('command+s')\n Mousetrap.unbind('command+z')\n Mousetrap.unbind('command+y')\n }\n\n onSelectionChange() {\n const {\n versionLocalData,\n setCurrentlyEditing,\n } = this.props;\n\n let newDocSelection = getDocRangeSelection()\n\n if (newDocSelection && newDocSelection.uid) {\n if (!versionLocalData.currentlyEditing || !R.equals(R.pick(['uid', 'key', 'range'], versionLocalData.currentlyEditing), newDocSelection)) {\n setCurrentlyEditing(newDocSelection)\n }\n } else if (versionLocalData.currentlyEditing) {\n // setCurrentlyEditing(R.omit(['contentKey', 'range'], versionLocalData.currentlyEditing))\n }\n }\n\n save() {\n const {\n type,\n updateVersion,\n } = this.props;\n\n if (type === \"Activity\" && !confirm(\"Are you sure you want to save? Changes to the activity will push out to all users using this activity immediately.\")) {\n return;\n }\n\n updateVersion();\n }\n\n addToUndo(newJSON, newDocSelection) {\n const {\n setUndoRedoQueues,\n versionLocalData,\n } = this.props;\n\n let newUndo = [[newJSON, newDocSelection]].concat(versionLocalData.undoQueue || []);\n\n setUndoRedoQueues(newUndo, []);\n }\n\n redo() {\n const {\n versionLocalData,\n setCurrentlyEditing,\n setEditJSON,\n setUndoRedoQueues,\n currentVersion,\n } = this.props;\n\n const {\n currentlyEditing,\n undoQueue = [],\n redoQueue = [],\n } = versionLocalData\n\n if (redoQueue.length > 0) {\n let [newCurrentVersion, newDocSelection] = redoQueue[0]\n\n let newUndo = [[currentVersion.json, currentlyEditing]].concat(undoQueue)\n let newRedo = redoQueue.slice(1)\n\n setEditJSON(newCurrentVersion)\n setCurrentlyEditing(newDocSelection)\n setUndoRedoQueues(newUndo, newRedo)\n }\n }\n\n undo() {\n const {\n versionLocalData,\n currentVersion,\n setEditJSON,\n setCurrentlyEditing,\n setUndoRedoQueues,\n } = this.props;\n\n const {\n currentlyEditing,\n undoQueue = [],\n redoQueue = [],\n } = versionLocalData\n\n if (undoQueue.length > 0) {\n let [newCurrentVersion, newDocSelection] = undoQueue[0]\n\n let newUndo = undoQueue.slice(1)\n let newRedo = [[currentVersion.json, currentlyEditing]].concat(redoQueue)\n\n setEditJSON(newCurrentVersion)\n setCurrentlyEditing(newDocSelection)\n setUndoRedoQueues(newUndo, newRedo)\n }\n }\n\n resetUndoRedo() {\n const {\n setUndoRedoQueues,\n } = this.props;\n\n setUndoRedoQueues([], [])\n }\n\n openSection(uid) {\n // TODO: REVISE OPEN SECTION\n // this.setState({displayMode: \"normal\", displayRootSectionUID: uid});\n // let stateObj = { section_uid: uid };\n // history.pushState(stateObj, \"\", \"?section_uid=\" + uid);\n this.logEvent(uid, \"section_opened\");\n };\n\n logEvent(node_uid: string, event: any, data?: string) {\n let logEvent: any = {\"node_uid\": node_uid, \"event\": event, \"created_at\": nowInSeconds()};\n\n if (data !== 'undefined') {\n logEvent.data = data;\n }\n\n this.postDocumentUserLogEvents([logEvent]);\n };\n\n postDocumentUserLogEvents(events) {\n const {\n type,\n currentUser,\n documentID,\n } = this.props;\n\n if (type === \"Activity\") { return; }\n\n if (currentUser) {\n fetch(document_user_log_url(documentID), {\n method: \"POST\",\n body: JSON.stringify({\"events\": events}),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`) }\n\n return response.json();\n })\n .then(() => {})\n .catch(() => {});\n }\n };\n\n getUSCS() {\n const {\n currentUser,\n documentID,\n } = this.props;\n\n const {\n syncCounter,\n uscData,\n } = this.state\n\n if (currentUser && documentID) {\n fetch(document_usc_url(documentID) + \"?lastSyncCounter=\" + syncCounter, {\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`) }\n\n return response.json();\n })\n .then((data) => this.setState({uscData: uscData.concat(data.usc), syncCounter: data.sync_counter}))\n .catch((err) => {});\n }\n };\n\n syncUSCS(uscs) {\n const {\n currentUser,\n documentID,\n } = this.props;\n\n const {\n syncCounter,\n uscData,\n } = this.state\n\n if (currentUser) {\n fetch(document_usc_url(documentID), {\n method: \"POST\",\n body: JSON.stringify({\"usc\": uscs, \"lastSyncCounter\": syncCounter}),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`) }\n\n return response.json();\n })\n .then((data) => {\n this.setState({uscData: uscData.concat(data.usc), syncCounter: data.sync_counter})\n })\n .catch(() => {});\n } else {\n this.setState({uscData: uscData.concat(uscs), syncCounter: 0})\n }\n };\n\n addDocumentUserState(state) {\n const uscs = R.flatten(\n R.map(([uid, kvObject]) => {\n return R.map(([key, value]) => {\n return {\n uid: uid,\n [key]: value,\n timeStamp: Date.now(),\n }\n }, R.toPairs(kvObject))\n }, R.toPairs(state))\n )\n\n this.syncUSCS(uscs)\n }\n\n mergeInUSCS(json, uscs) {\n let clonedVersion = R.clone(json);\n\n for (let usc of uscs) {\n let node = deepFindByUID(clonedVersion, usc.uid);\n if (node) {\n for (let prop in usc) {\n if (prop !== \"uid\" && prop !== \"timeStamp\") {\n node[prop] = usc[prop];\n }\n }\n }\n }\n\n return clonedVersion\n };\n\n countIndiciesUntilNextSpaceAndThenAChar(string, isDelete) {\n let array\n if (isDelete) {\n array = string.split('')\n } else {\n array = string.split('').reverse()\n }\n\n let index = 0\n let isPastACharacter = false\n\n array.every ( e => {\n if (e !== ' ') {\n isPastACharacter = true\n }\n\n if (e === ' ' && isPastACharacter) {\n return false\n }\n\n index += 1\n\n return true\n })\n\n return index\n }\n\n handleDelete(event) {\n const {\n currentVersion\n } = this.props;\n\n const {\n currentlyEditing,\n currentlyEditingNode,\n setCurrentlyEditing,\n modifyEditJSON\n } = this.generateEditState()\n\n if (currentlyEditing?.range) {\n event.preventDefault()\n\n let isFNBackspace = event.keyCode === 46\n let isDelete = event.key === \"Delete\" || isFNBackspace\n\n let isAlt = event.altKey\n let isMeta = event.metaKey\n\n if (isAlt) {\n if (isDelete) {\n let substring = (currentlyEditingNode as any).content.substring(currentlyEditing.range.start, (currentlyEditingNode as any).content.length)\n let numCharsToDelete = this.countIndiciesUntilNextSpaceAndThenAChar(substring, isDelete)\n\n currentlyEditing.range.end = currentlyEditing.range.start + numCharsToDelete\n } else {\n let substring = (currentlyEditingNode as any).content.substring(0, currentlyEditing.range.start)\n let numCharsToBackspace = this.countIndiciesUntilNextSpaceAndThenAChar(substring, isDelete)\n\n currentlyEditing.range.start = currentlyEditing.range.start - numCharsToBackspace\n }\n } else if (isMeta) {\n if (isDelete) {\n currentlyEditing.range.end = (currentlyEditingNode as any).content.length\n } else {\n currentlyEditing.range.start = 0\n }\n } else if (isFNBackspace) {\n currentlyEditing.range.end = currentlyEditing.range.start + 1\n }\n\n if (currentlyEditing.range.start != currentlyEditing.range.end) {\n setCurrentlyEditing({...currentlyEditing, range: {start: currentlyEditing.range.start, end: currentlyEditing.range.start}})\n\n modifyEditJSON(json => {\n return modifyNodeValueByUIDAndKey(json, currentlyEditing.uid, currentlyEditing.key, inlineHTML => {\n return inlineJSONToHTML(replaceText(inlineHTMLToJSON(inlineHTML), currentlyEditing.range, \"\"))\n })\n })\n } else if (currentlyEditing.range.start > 0) {\n setCurrentlyEditing({...currentlyEditing, range: {start: currentlyEditing.range.start-1, end: currentlyEditing.range.start-1}})\n\n modifyEditJSON(json => {\n return modifyNodeValueByUIDAndKey(json, currentlyEditing.uid, currentlyEditing.key, inlineHTML => {\n return inlineJSONToHTML(replaceText(inlineHTMLToJSON(inlineHTML), {start: currentlyEditing.range.start-1, end: currentlyEditing.range.start}, \"\"))\n })\n })\n } else {\n switch (currentlyEditingNode.type) {\n case \"listItem\":\n if (siblingIndexByUID(currentVersion.json, currentlyEditingNode.uid) === 0) {\n const newParagraph = generateNode('paragraph', {content: currentlyEditingNode.content})\n\n modifyEditJSON(json => {\n let returnJSON = json\n\n const parentNode = deepFindOldestNotSectionAncestorByUID(json, currentlyEditingNode.uid)\n\n if (siblingCountByUID(json, currentlyEditingNode.uid) === 1) {\n returnJSON = replaceNodeByUID(returnJSON, parentNode.uid, newParagraph)\n } else {\n returnJSON = insertBeforeNodeByUID(returnJSON, parentNode.uid, newParagraph)\n returnJSON = deleteNodeByUID(returnJSON, currentlyEditingNode.uid)\n }\n\n return returnJSON\n })\n\n setCurrentlyEditing({uid: newParagraph.uid, range: {start: 0, end: 0}, key: 'content'})\n } else {\n let siblingBefore\n\n modifyEditJSON(json => {\n let returnJSON = json\n\n siblingBefore = deepFindSiblingBeforeByUID(json, currentlyEditingNode.uid)\n\n returnJSON = setNodeValueByUIDAndKey(returnJSON, siblingBefore.uid, 'content', siblingBefore.content + currentlyEditingNode.content)\n returnJSON = deleteNodeByUID(returnJSON, currentlyEditingNode.uid)\n\n return returnJSON\n })\n\n const newSelectionIndex = inlineHTMLToJSON(siblingBefore.content).text.length\n setCurrentlyEditing({uid: siblingBefore.uid, range: {start: newSelectionIndex, end: newSelectionIndex}, key: 'content'})\n }\n break;\n case \"paragraph\":\n const siblingBefore = deepFindSiblingBeforeByUID(currentVersion.json, currentlyEditingNode.uid)\n let newSelectionIndex\n\n if (siblingBefore) {\n switch (siblingBefore.type) {\n case 'paragraph':\n modifyEditJSON(json => {\n let returnJSON = json\n\n returnJSON = setNodeValueByUIDAndKey(returnJSON, siblingBefore.uid, 'content', siblingBefore.content + currentlyEditingNode.content)\n returnJSON = deleteNodeByUID(returnJSON, currentlyEditingNode.uid)\n\n return returnJSON\n })\n\n newSelectionIndex = inlineHTMLToJSON(siblingBefore.content).text.length\n setCurrentlyEditing({uid: siblingBefore.uid, range: {start: newSelectionIndex, end: newSelectionIndex}, key: 'content'})\n break;\n case 'regularList':\n case 'numberedList':\n let listItemBefore\n\n modifyEditJSON(json => {\n let returnJSON = json\n\n listItemBefore = R.last(siblingBefore.content)\n\n returnJSON = setNodeValueByUIDAndKey(returnJSON, listItemBefore.uid, 'content', listItemBefore.content + currentlyEditingNode.content)\n returnJSON = deleteNodeByUID(returnJSON, currentlyEditingNode.uid)\n\n return returnJSON\n })\n\n newSelectionIndex = inlineHTMLToJSON(listItemBefore.content).text.length\n setCurrentlyEditing({uid: listItemBefore.uid, range: {start: newSelectionIndex, end: newSelectionIndex}, key: 'content'})\n break;\n default:\n if (currentlyEditingNode.content.length === 0) {\n modifyEditJSON(json => {\n return deleteNodeByUID(json, currentlyEditingNode.uid)\n })\n\n setCurrentlyEditing(null)\n }\n }\n } else {\n if (currentlyEditingNode.content.length === 0) {\n modifyEditJSON(json => {\n return deleteNodeByUID(json, currentlyEditingNode.uid)\n })\n\n setCurrentlyEditing(null)\n }\n }\n break;\n default:\n }\n }\n }\n }\n\n handleEnter(event) {\n let {\n currentlyEditing,\n currentlyEditingNode,\n modifyEditJSON,\n setCurrentlyEditing\n } = this.generateEditState()\n\n if (currentlyEditing?.selectionMenu) {\n setCurrentlyEditing({...currentlyEditing,\n selectionMenu: undefined\n })\n } else if (currentlyEditing?.range) {\n event.preventDefault()\n\n let newNode = generateNode(currentlyEditingNode.type)\n\n if (currentlyEditingNode.type === \"section\" && currentlyEditing.key === \"title\") {\n return\n }\n\n modifyEditJSON(json => {\n let inlineText = inlineHTMLToJSON(deepFindByUID(json, currentlyEditing.uid)[currentlyEditing.key])\n\n let textBefore = inlineJSONBeforeIndex(inlineText, currentlyEditing.range.start)\n let textAfter = inlineJSONAfterIndex(inlineText, currentlyEditing.range.end)\n\n let newJSON = json\n\n newJSON = modifyNodeValueByUIDAndKey(json, currentlyEditing.uid, currentlyEditing.key, inlineHTML => {\n return inlineJSONToHTML(textBefore)\n })\n\n newNode.content = inlineJSONToHTML(textAfter)\n newJSON = insertAfterNodeByUID(newJSON, currentlyEditing.uid, newNode)\n\n return newJSON\n })\n\n setCurrentlyEditing({uid: newNode.uid, range: {start: 0, end: 0}, key: 'content'})\n }\n }\n\n handleStyleButton(tagName, event) {\n let editState = this.generateEditState()\n\n let {\n currentlyEditing,\n } = editState\n\n if (currentlyEditing?.range) {\n event.preventDefault()\n\n return generateStyleFunction(tagName, editState)()\n }\n }\n\n handleKeyValueChange(uid, key, value) {\n let editState = this.generateEditState()\n\n editState.modifyEditJSON(json => modifyNodeValueByUIDAndKey(json, uid, key, () => value))\n }\n\n generateEditState(isEditDisplayMode=true) {\n let {\n type,\n currentVersion,\n isEditor,\n setCurrentlyEditing,\n setEditFieldsVersion,\n setEditJSON,\n versionEditData,\n versionLocalData,\n setEditMetadata,\n } = this.props;\n\n let editState: EditState = {\n isEditor: isEditor\n }\n\n if (editState.isEditor) {\n editState = {\n ...editState,\n isEditing: isEditDisplayMode,\n hasUnsavedChanges: !R.isEmpty(versionEditData),\n setEditFieldsVersion: setEditFieldsVersion,\n setEditJSON: setEditJSON.bind(this),\n addToUndo: this.addToUndo.bind(this),\n undoQueue: versionLocalData.undoQueue || [],\n redoQueue: versionLocalData.redoQueue || [],\n save: this.save.bind(this),\n undo: this.undo.bind(this),\n redo: this.redo.bind(this),\n currentlyEditing: versionLocalData.currentlyEditing,\n setCurrentlyEditing: setCurrentlyEditing.bind(this),\n handleKeyValueChange: this.handleKeyValueChange.bind(this),\n setEditMetadata: setEditMetadata,\n editMetadataUid: versionLocalData.editMetadataUid,\n }\n\n if (editState.currentlyEditing && editState.currentlyEditing.uid) {\n let lineage = deepFindLineageByUID(type === \"Activity\" ? currentVersion.content : currentVersion.json, editState.currentlyEditing.uid)\n\n if (lineage) {\n editState.currentlyEditingAncestors = R.init(lineage)\n editState.currentlyEditingNode = R.last(lineage)\n\n let editingRange = editState.currentlyEditing.range\n if (editState.currentlyEditing.key && editingRange) {\n let currentlyEditingInlineJSON = inlineHTMLToJSON(editState.currentlyEditingNode[editState.currentlyEditing.key])\n\n editState.currentlyActiveStyles = currentlyEditingInlineJSON.styles.filter(style => style.range.start <= editingRange.start && style.range.end >= editingRange.end)\n }\n }\n }\n\n editState.modifyEditJSON = (modifyFunction) => {\n editState.addToUndo(type === \"Activity\" ? currentVersion.content : currentVersion.json, editState.currentlyEditing)\n editState.setEditJSON(modifyFunction(type === \"Activity\" ? currentVersion.content : currentVersion.json))\n }\n }\n\n return editState\n }\n\n render() {\n let {\n type,\n activityUserStatesByActivityId,\n addActivityUserState,\n addDocumentSetDocumentState,\n resetDocumentSetDocumentState,\n currentDocument,\n currentDocumentActivities=[],\n currentDocumentSetDocumentActivities=[],\n currentDocumentSetDocumentRelation={},\n currentGroup,\n currentRoleDefinition={},\n currentVersion,\n isEditor,\n readDocument,\n scheduableSectionUIDs,\n imagingTypes,\n setDisplayMode,\n versionLocalData,\n documentSetDocumentState,\n } = this.props;\n\n let combinedDocumentActivities = currentDocumentActivities.concat(currentDocumentSetDocumentActivities)\n\n if (!(type === \"Activity\" ? currentVersion?.content : currentVersion?.json) || !currentDocument?.id) { return <GenLoadingSpinner/> }\n\n const addDocumentUserState = currentDocumentSetDocumentRelation?.is_gated ? addDocumentSetDocumentState : this.addDocumentUserState.bind(this),\n\n // CURRENT USER\n currentUser = {\n ...this.props.currentUser,\n addDocumentUserState: addDocumentUserState,\n addActivityUserState: addActivityUserState,\n addState: addDocumentUserState,\n addStateTargetType: \"document\",\n resetDocumentSetDocumentState: resetDocumentSetDocumentState,\n logEvent: this.logEvent.bind(this),\n }\n\n currentRoleDefinition = {\n ...currentRoleDefinition,\n isLearner: currentRoleDefinition.name === \"Learner\",\n }\n\n // DISPLAY STATE\n let displayMode = versionLocalData.displayMode || (isEditor ? DISPLAY_MODES.EDIT : DISPLAY_MODES.STUDENT)\n const {\n isUnlocked,\n isForcedUncollapsed,\n isEditDisplayMode\n } = displayTraitsBasedOnMode(displayMode)\n\n let displayState = {\n displayMode,\n isUnlocked,\n isForcedUncollapsed,\n setDisplayMode: setDisplayMode,\n openSection: this.openSection.bind(this),\n documentType: type,\n }\n\n // EDIT STATE\n let editState = this.generateEditState(isEditDisplayMode)\n\n let mergedJSON = type === \"Activity\" ? currentVersion.content : currentVersion.json;\n\n if (type === \"Activity\") {\n mergedJSON = {\n type: \"section\",\n uid: \"root\",\n title: currentVersion.name,\n content: mergedJSON.map((node) => ({...node, collapsible: true, nested: true, collapsed: false})),\n }\n }\n\n mergedJSON = R.clone(mergedJSON);\n if (currentDocumentSetDocumentRelation?.is_gated) {\n const state = documentSetDocumentState?.state || {};\n const strippedState = R.map(R.map((valueData) => valueData.value), state);\n\n R.toPairs(strippedState).forEach(([uid, kvs]) => {\n const node = deepFindByUID(mergedJSON, uid);\n if (node) {\n R.toPairs(kvs).forEach(([key, value]) => {\n node[key] = value;\n });\n }\n });\n\n combinedDocumentActivities = combinedDocumentActivities.filter((dsda) => dsda.attempt_index === documentSetDocumentState.attempt_index)\n } else {\n mergedJSON = this.mergeInUSCS(mergedJSON, this.state.uscData)\n }\n\n if (combinedDocumentActivities) {\n mergedJSON = addActivitiesToDocument(mergedJSON, combinedDocumentActivities, activityUserStatesByActivityId);\n }\n\n if (currentRoleDefinition.isLearner) {\n let firstVideo;\n if (currentDocumentSetDocumentRelation?.is_gated) {\n const firstLevelContent = mergedJSON.content;\n firstVideo = firstLevelContent.find((node) => \"video\" === node.type);\n let firstNode = firstLevelContent.find((node) => [\"section\", \"activity\"].includes(node.type));\n\n if (firstVideo && !firstVideo.video_played) {\n const firstNodeAction = firstNode.type === \"activity\" ?\n newSetNodeKVPairAction(\"root\", \"collapsed\", false, \"activity\", firstNode.documentSetDocumentActivity.activity_id) :\n newSetNodeKVPairAction(firstNode.uid, \"collapsed\", false, \"document\")\n\n firstVideo.onVideoComplete = [\n newSetNodeKVPairAction(firstVideo.uid, \"video_played\", true),\n firstNodeAction,\n ];\n firstVideo.extraTitle = \"Watch the video to continue.\"\n }\n }\n\n const reduceResult = mergedJSON.content.reduce((accum, node, currentIndex, array) => {\n let {\n shouldHide,\n newJsonContent,\n } = accum;\n\n if (shouldHide || (firstVideo && !firstVideo.video_played)) {\n if ([\"section\", \"activity\"].includes(node.type)) {\n if (currentDocumentSetDocumentRelation?.is_gated) {\n return {\n shouldHide: shouldHide,\n newJsonContent: [\n ...newJsonContent,\n {\n ...node,\n inactive: 2,\n }\n ],\n };\n } else {\n return {\n shouldHide: shouldHide,\n newJsonContent: [\n ...newJsonContent,\n {\n ...node,\n invisible: true,\n }\n ],\n };\n }\n } else {\n return {\n shouldHide,\n newJsonContent: [...newJsonContent, node],\n }\n }\n } else {\n let shouldHideNext = false;\n if (node.type === \"activity\") {\n const documentSetDocumentActivity = node.documentSetDocumentActivity;\n const activity = documentSetDocumentActivity.activity;\n const activityUserState = node.activityUserState;\n const hasBeenSubmitted = activityUserState.state?.submit_button?.inactive?.value === 2\n\n shouldHideNext = !hasBeenSubmitted && (activity.placement_uid || currentDocumentSetDocumentRelation?.is_gated);\n } else if (node.type === \"section\" && currentDocumentSetDocumentRelation?.is_gated) { // SHOULD ADD LEVEL TEST????\n shouldHideNext = !node.completed_section;\n }\n\n if (currentDocumentSetDocumentRelation?.is_gated && shouldHideNext) {\n const onClickActions = [];\n let remainingNodes = array.slice(currentIndex+1);\n let nextNode = remainingNodes.find((n) => [\"section\", \"activity\"].includes(n.type));\n if (nextNode) {\n const nextNodeAction = nextNode.type === \"activity\" ?\n newSetNodeKVPairAction(\"root\", \"collapsed\", false, \"activity\", nextNode.documentSetDocumentActivity.activity_id) :\n newSetNodeKVPairAction(nextNode.uid, \"collapsed\", false, \"document\")\n\n onClickActions.push(nextNodeAction);\n } else {\n const activityScores = combinedDocumentActivities.map((documentSetDocumentActivity) => {\n const activity = documentSetDocumentActivity.activity;\n const activityUserState = activityUserStatesByActivityId[activity.id];\n return activityUserState.grade_percentage\n }).filter((gradePercentage) => typeof gradePercentage === \"number\")\n\n if (activityScores.length > 0) {\n const grade_percentage = R.sum(activityScores) / activityScores.length\n onClickActions.push(\n newSetNodeKVPairAction(mergedJSON.uid, \"grade_percentage\", grade_percentage, \"document\"),\n );\n }\n\n onClickActions.push(\n newSetNodeKVPairAction(mergedJSON.uid, \"completed_document\", true, \"document\"),\n );\n }\n\n if (node.type === \"activity\") {\n if (!nextNode) {\n node.onCompleteTitle = \"Submit and Complete Case\";\n }\n\n node.onComplete = onClickActions;\n } else if (node.type === \"section\") { // SHOULD ADD LEVEL TEST????\n onClickActions.push(\n newSetNodeKVPairAction(node.uid, \"completed_section\", true),\n newSetNodeKVPairAction(node.uid, \"collapsed\", true),\n )\n\n node.content.push(\n generateNode(\"button\", {\n uid: `${node.uid}_next_button`,\n title: nextNode ? \"Continue\" : \"Complete Case\",\n onClick: onClickActions,\n }),\n );\n }\n }\n\n return {\n shouldHide: shouldHideNext,\n newJsonContent: [...newJsonContent, node],\n }\n }\n }, {shouldHide: false, newJsonContent: []})\n mergedJSON.content = reduceResult.newJsonContent;\n\n if (currentDocumentSetDocumentRelation?.is_gated && mergedJSON.completed_document) {\n const newContent = [\n generateNode(\"completionNotice\", {\n uid: `${mergedJSON.uid}_complete_paragraph`,\n grade_percentage: documentSetDocumentState?.grade_percentage,\n attempt_index: documentSetDocumentState?.attempt_index,\n nextDocumentSetDocumentRelationId: this.props.nextDocumentSetDocumentRelationId,\n }),\n ]\n\n const lastSectionIndex = R.findLastIndex(n => n.type === \"section\" || n.type === \"activity\", mergedJSON.content);\n mergedJSON.content = R.insertAll(lastSectionIndex + 1, newContent, mergedJSON.content);\n }\n }\n\n let progressBar\n if (currentDocumentSetDocumentRelation?.is_gated) {\n let progress = 0;\n if (mergedJSON.completed_document) {\n progress = 100.0;\n } else {\n const progressSections = mergedJSON.content.filter((child) => \"section\" === child.type)\n const completedSections = progressSections.filter((section) => {\n const hasNextClicked = section.completed_section;\n\n return hasNextClicked;\n });\n\n const completedActivities = combinedDocumentActivities.filter((documentSetDocumentActivity) => {\n const activityUserState = activityUserStatesByActivityId[documentSetDocumentActivity.activity.id];\n const hasBeenSubmitted = activityUserState.state?.submit_button?.inactive?.value === 2\n\n return hasBeenSubmitted;\n })\n\n const allPossibleCount = progressSections.length + combinedDocumentActivities.length;\n const allCompletedCount = completedSections.length + completedActivities.length;\n progress = (allCompletedCount * 100.0) / allPossibleCount;\n }\n\n progressBar = (\n <div className=\"fixed bottom-0 right-20 z-40 p-3 bg-white bg-opacity-75 backdrop-blur-3xl border border-green-cyan shadow-lg\">\n <h3>Progress: {Math.floor(progress)}%</h3>\n </div>\n )\n }\n\n let caseReview;\n if (documentSetDocumentState?.reviewed_at) {\n caseReview = (\n <div className=\"activity-review\">\n <h4>Review:</h4>\n <div className=\"activity-review-inside\">\n <p>{documentSetDocumentState.review_comment}</p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"doc-container\">\n <DocTopBar\n currentDocument={currentDocument}\n currentVersion={currentVersion}\n currentUser={currentUser}\n currentRoleDefinition={currentRoleDefinition}\n currentDocumentSetDocumentRelation={currentDocumentSetDocumentRelation}\n displayState={displayState}\n editState={editState}\n />\n <div className={classNames('doc-body', `normal-display-mode`, {'edit-bar-bump': editState.isEditor})}>\n <DocSection\n isRootSection\n\n {...mergedJSON}\n currentDocument={currentDocument}\n currentVersion={currentVersion}\n currentUser={currentUser}\n currentRoleDefinition={currentRoleDefinition}\n currentGroup={currentGroup}\n currentDocumentSetDocumentRelation={currentDocumentSetDocumentRelation}\n scheduableSectionUIDs={scheduableSectionUIDs}\n imagingTypes={imagingTypes}\n displayState={displayState}\n editState={editState}\n aboveContent={caseReview}\n />\n </div>\n {editState.isEditor && <DocMediaModal\n currentDocument={currentDocument}\n currentVersion={currentVersion}\n currentUser={currentUser}\n currentRoleDefinition={currentRoleDefinition}\n editState={editState}\n readDocument={readDocument}\n />}\n {editState.isEditor && <DocEditMetadataModal\n currentDocument={currentDocument}\n currentVersion={currentVersion}\n currentUser={currentUser}\n currentRoleDefinition={currentRoleDefinition}\n editState={editState}\n mergedJSON={mergedJSON}\n />}\n {progressBar}\n </div>\n )\n }\n}\n\nexport default (props) => {\n const ConnectedDocContainer = connect(mapStateToProps, mapDispatchToProps)(DocContainer)\n\n return <Provider store={store()}>\n <ConnectedDocContainer {...props} />\n </Provider>\n}\n","export function nowInSeconds() {\n return(Math.floor(Date.now() / 1000));\n}\n","import * as R from 'ramda'\n\nimport {\n deepFindPathByUID,\n} from './doc_helpers'\n\nexport function addActivitiesToDocument(json, currentDocumentSetDocumentActivities, activityUserStatesByActivityId) {\n const groupedDocumentSetDocumentActivities = R.groupBy((documentSetDocumentActivity) => {\n const activity = documentSetDocumentActivity.activity\n return [\n activity.placement_uid,\n activity.placement_before,\n activity.placement_inside,\n ]\n }, currentDocumentSetDocumentActivities);\n\n R.values(groupedDocumentSetDocumentActivities).map((groupOfDocumentSetDocumentActivities) => {\n const sortedGroupOfDocumentSetDocumentActivities = R.sortBy((dsda) => dsda.activity.order, groupOfDocumentSetDocumentActivities);\n const activitiesToInsert = sortedGroupOfDocumentSetDocumentActivities.map((dsda) => (\n {\n type: \"activity\",\n uid: dsda.id,\n documentSetDocumentActivity: dsda,\n activityUserState: activityUserStatesByActivityId[dsda.activity.id],\n }\n ))\n\n const firstActivity = groupOfDocumentSetDocumentActivities[0].activity;\n const placementUid = firstActivity.placement_uid;\n const placementBefore = firstActivity.placement_before;\n const placementInside = firstActivity.placement_inside;\n\n let activitiesPath\n if (placementUid === \"video\") {\n const firstLevelContent = json.content;\n const videoIndex = R.findIndex((node) => \"video\" === node.type, firstLevelContent);\n\n const mainVideoPath = [\"content\", videoIndex];\n activitiesPath = placementBefore ? mainVideoPath : R.adjust(-1, R.add(2), mainVideoPath); // ADJUST TO BE BUTTON\n } else if(!placementUid) {\n // FIND LAST SECTION\n const firstLevelContent = json.content;\n const lastSectionIndex = R.findLastIndex(n => [\"section\", \"activity\"].includes(n.type), firstLevelContent);\n activitiesPath = [\"content\", lastSectionIndex + 1];\n } else {\n const placementNodePath = deepFindPathByUID(json, placementUid);\n\n activitiesPath = placementNodePath;\n if (placementInside) {\n activitiesPath = [...activitiesPath, \"content\"];\n\n if (placementBefore) {\n activitiesPath = [...activitiesPath, 0];\n } else {\n const lengthOfContent = R.path(activitiesPath, json).length;\n activitiesPath = [...activitiesPath, lengthOfContent];\n }\n } else {\n activitiesPath = placementBefore ? placementNodePath : R.adjust(-1, R.inc, placementNodePath);\n }\n }\n\n json = R.over(R.lensPath(R.init(activitiesPath)), R.insertAll(R.last(activitiesPath), activitiesToInsert), json);\n })\n\n return json;\n}\n","export function isAdmin(currentUser) {\n return currentUser && currentUser.type === \"Admin\"\n}\n\nexport function canPossiblyAccess(currentRoleDefinition, ...args) {\n return !!lookupInDefinition(currentRoleDefinition, ...args)\n}\n\nfunction lookupInDefinition(currentRoleDefinition, ...args) {\n let result = args.reduce((definition, arg) => definition === true || (typeof(definition) === \"object\" && definition[arg]), currentRoleDefinition.temp_definition)\n return result || false\n}\n","import React from 'react';\n\nimport GenButton from 'Gen/Button'\nimport GenSidebarList from 'Gen/SidebarList'\n\nimport GenPanel from 'Gen/Panel'\nimport GenPanelHeader from 'Gen/PanelHeader'\nimport GenPanelSlice from 'Gen/PanelSlice'\n\nimport DocumentSummary from 'Document/Summary'\n\nimport {documentListDefaults} from 'Document/ListDefaults'\n\nimport {canPossiblyAccess} from 'src/role_definition_helpers'\n\nexport default function DocumentList(\n {\n isWithGroupHeader,\n current_user,\n group,\n current_role_definition,\n document_mdata_definition,\n hideSidebar,\n canCreateCategory,\n },\n) {\n let groupHeader = null\n if (isWithGroupHeader) {\n let rightContent = null\n if (current_user?.is_admin) {\n rightContent = [\n <GenButton key=\"Edit\" name=\"Edit Group\" highlighted={true} href=\"/edit\"/>,\n <GenButton key=\"Duplicate\" name=\"Duplicate\" highlighted={true} href=\"/duplicate\"/>,\n <GenButton key=\"Members\" name=\"Members\" highlighted={true} href=\"/group_role_definition_users\"/>\n ]\n }\n\n groupHeader = <GenPanel>\n <GenPanelHeader rightContent={rightContent}>\n {group.name}\n </GenPanelHeader>\n <GenPanelSlice>\n {group.description}\n </GenPanelSlice>\n </GenPanel>\n }\n\n let actions = []\n if (canPossiblyAccess(current_role_definition, 'document', 'create')) {\n actions.push(<GenButton key=\"Create\" name=\"Create Case\" highlighted href=\"/documents/new\"/>)\n }\n\n if (current_user?.is_admin) {\n actions.push(<GenButton key=\"Lend\" name=\"Lend Cases\" highlighted href=\"/group_documents/new_batch\"/>)\n actions.push(<GenButton key=\"Revoke\" name=\"Revoke Cases\" highlighted href=\"/group_documents/delete_batch\"/>)\n actions.push(<GenButton key=\"Report\" name=\"Cases Report\" highlighted href=\"/documents.csv\"/>)\n }\n\n let filters = [\n {\n key: \"patient_interaction_physical_exam\",\n title: \"Only cases with a physical exam\",\n type: \"checkbox\",\n dataType: \"MDATA\",\n mdataKey: \"patient_interaction\",\n mdataValue: [\"Physical Exam\"],\n mdataTable: \"documents\",\n },\n {\n key: \"patient_interaction_procedure\",\n title: \"Only cases with a procedure\",\n type: \"checkbox\",\n dataType: \"MDATA\",\n mdataKey: \"patient_interaction\",\n mdataValue: [\"Procedure\"],\n mdataTable: \"documents\",\n },\n {\n title: \"Demographics\",\n type: \"filter_group\",\n filters: [\n {\n key: \"gender\",\n title: \"Gender\",\n type: \"checkboxes\",\n dataType: \"MDATA\",\n options: document_mdata_definition.gender.values,\n mdataTable: \"documents\",\n },\n {\n key: \"race\",\n title: \"Race\",\n type: \"checkboxes\",\n dataType: \"MDATA\",\n dataCount: \"MDATA_MANY\",\n options: document_mdata_definition.race.values,\n mdataTable: \"documents\",\n },\n {\n key: \"age_group\",\n title: \"Age Category\",\n type: \"checkboxes\",\n dataType: \"MDATA\",\n dataCount: \"MDATA_MANY\",\n options: document_mdata_definition.age_group.values,\n mdataTable: \"documents\",\n },\n {\n key: \"age\",\n title: \"Chronological Age\",\n type: \"ymwd\",\n mdataTable: \"documents\",\n }\n ]\n }, {\n key: \"organ_system\",\n title: \"Organ System\",\n displayLikeFilterGroup: true,\n type: \"checkboxes\",\n dataType: \"MDATA\",\n dataCount: \"MDATA_MANY\",\n options: document_mdata_definition.organ_system.values,\n mdataTable: \"documents\",\n }, {\n title: \"Location\",\n type: \"filter_group\",\n filters: [\n {\n key: \"clinical_location\",\n title: \"Clinical Location\",\n type: \"checkboxes\",\n dataType: \"MDATA\",\n dataCount: \"MDATA_MANY\",\n options: document_mdata_definition.clinical_location.values,\n mdataTable: \"documents\",\n },\n {\n key: \"secondary_location\",\n title: \"Secondary Location\",\n type: \"checkboxes\",\n dataType: \"MDATA\",\n dataCount: \"MDATA_MANY\",\n options: document_mdata_definition.secondary_location.values,\n mdataTable: \"documents\",\n },\n ]\n }, {\n title: \"APN Curriculum\",\n type: \"filter_group\",\n filters: [\n {\n key: \"apn_area_of_study\",\n title: \"Area of Study\",\n type: \"checkboxes\",\n dataType: \"MDATA\",\n dataCount: \"MDATA_MANY\",\n options: document_mdata_definition.apn_area_of_study.values,\n mdataTable: \"documents\",\n }\n ]\n }, {\n title: \"CoAEMSP Curriculum\",\n type: \"filter_group\",\n filters: [\n {\n key: \"coaemsp_pathology\",\n title: \"Pathology or Patient Complaint\",\n type: \"checkboxes\",\n dataType: \"MDATA\",\n dataCount: \"MDATA_MANY\",\n options: document_mdata_definition.coaemsp_pathology.values,\n mdataTable: \"documents\",\n }\n ]\n }, {\n title: \"PANCE\",\n type: \"filter_group\",\n filters: [\n {\n key: \"pance_medical_content_categories\",\n title: \"Medical Content Categories\",\n type: \"checkboxes\",\n dataType: \"MDATA\",\n dataCount: \"MDATA_MANY\",\n options: document_mdata_definition.pance_medical_content_categories.values,\n mdataTable: \"documents\",\n }\n ]\n }, {\n key: \"specialty\",\n title: \"Medical Specialty\",\n displayLikeFilterGroup: true,\n type: \"checkboxes\",\n dataType: \"MDATA\",\n dataCount: \"MDATA_MANY\",\n options: document_mdata_definition.specialty.values,\n mdataTable: \"documents\",\n }, {\n key: \"reeldx_libraries\",\n title: \"ReelDx Libraries\",\n displayLikeFilterGroup: true,\n type: \"checkboxes\",\n dataType: \"MDATA\",\n dataCount: \"MDATA_MANY\",\n options: document_mdata_definition.reeldx_libraries.values,\n mdataTable: \"documents\",\n }\n ];\n\n if (current_user?.is_admin) {\n filters = [...filters,\n {\n key: \"publish_version_id\",\n title: \"Publishing Status\",\n displayLikeFilterGroup: true,\n type: \"checkboxes\",\n dataType: \"BOOLEAN\",\n options: [\n {\n displayName: \"Published\",\n value: true\n },\n {\n displayName: \"Not Published\",\n value: false\n },\n ]\n },\n {\n key: \"circulation\",\n title: \"Circulation\",\n displayLikeFilterGroup: true,\n type: \"checkboxes\",\n dataType: \"REGULAR\",\n options: [\n {\n displayName: \"Public\",\n value: \"public_circulation\"\n },\n {\n displayName: \"Group\",\n value: \"group_circulation\"\n },\n {\n displayName: \"Invite\",\n value: \"invite_circulation\"\n },\n {\n displayName: \"None\",\n value: \"no_circulation\"\n },\n ]\n },\n ];\n }\n\n return (\n <GenSidebarList\n {...documentListDefaults}\n itemView={(group.root_document_set_id) && ((document) => {\n return (\n <DocumentSummary\n document={document}\n key={document.id}\n rootDocumentSetId={group.root_document_set_id}\n currentUser={current_user}\n currentRoleDefinition={current_role_definition}\n />\n );\n })}\n historyPersistance={true}\n hideSidebar={hideSidebar}\n gridView\n actions={actions}\n beforeListContent={groupHeader}\n filters={filters}\n canCreateCategory={canCreateCategory}\n />\n );\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _inputRange = require('./input-range/input-range');\nvar _inputRange2 = _interopRequireDefault(_inputRange);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\n/**\n * @ignore\n * @typedef {Object} ClientRect\n * @property {number} height\n * @property {number} left\n * @property {number} top\n * @property {number} width\n */\n\n/**\n * @typedef {Object} InputRangeClassNames\n * @property {string} activeTrack\n * @property {string} disabledInputRange\n * @property {string} inputRange\n * @property {string} labelContainer\n * @property {string} maxLabel\n * @property {string} minLabel\n * @property {string} slider\n * @property {string} sliderContainer\n * @property {string} track\n * @property {string} valueLabel\n */\n\n/**\n * @typedef {Function} LabelFormatter\n * @param {number} value\n * @param {string} type\n * @return {string}\n */\n\n/**\n * @ignore\n * @typedef {Object} Point\n * @property {number} x\n * @property {number} y\n */\n\n/**\n * @typedef {Object} Range\n * @property {number} min - Min value\n * @property {number} max - Max value\n */\n\nexports.default = _inputRange2.default;\nmodule.exports = exports['default'];","module.exports = __webpack_public_path__ + \"media/category_icons/Cardiovascular-c96f1778.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/Dermatology-ce0a20fe.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/EENT-727c4934.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/EmergencyMedicine-b1e0fa4a.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/Endocrinology-3cd5922f.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/FamilyMedicine-db73a8fb.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/Gastroenterology-37222835.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/Geriatrics-ba08faf3.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/Interdisciplinary-4b052ddf.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/Musculoskeletal-980e623d.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/Nephrology-4b15d65c.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/Neurology-89a01543.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/Nursing-3b6c2751.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/OBGYN-be7e2d1d.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/Pediatrics-df8475b5.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/PhysicianAssistant-a553f0ea.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/Psychology-515db908.svg\";","module.exports = __webpack_public_path__ + \"media/category_icons/Pulmonology-8177767c.svg\";","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\nfunction _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport isPromise from './isPromise.js';\n/**\n * For TypeScript support: Remember to check and make sure\n * that `index.d.ts` is also up to date with the implementation.\n */\n\nexport var ActionType = {\n Pending: 'PENDING',\n Fulfilled: 'FULFILLED',\n Rejected: 'REJECTED'\n};\n/**\n * Function: createPromise\n * Description: The main createPromise accepts a configuration\n * object and returns the middleware.\n */\n\nexport function createPromise() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaultTypes = [ActionType.Pending, ActionType.Fulfilled, ActionType.Rejected];\n var PROMISE_TYPE_SUFFIXES = config.promiseTypeSuffixes || defaultTypes;\n var PROMISE_TYPE_DELIMITER = config.promiseTypeDelimiter === undefined ? '_' : config.promiseTypeDelimiter;\n return function (ref) {\n var dispatch = ref.dispatch;\n return function (next) {\n return function (action) {\n /**\n * Instantiate variables to hold:\n * (1) the promise\n * (2) the data for optimistic updates\n */\n var promise;\n var data;\n /**\n * There are multiple ways to dispatch a promise. The first step is to\n * determine if the promise is defined:\n * (a) explicitly (action.payload.promise is the promise)\n * (b) implicitly (action.payload is the promise)\n * (c) as an async function (returns a promise when called)\n *\n * If the promise is not defined in one of these three ways, we don't do\n * anything and move on to the next middleware in the middleware chain.\n */\n // Step 1a: Is there a payload?\n\n if (action.payload) {\n var PAYLOAD = action.payload; // Step 1.1: Is the promise implicitly defined?\n\n if (isPromise(PAYLOAD)) {\n promise = PAYLOAD;\n } // Step 1.2: Is the promise explicitly defined?\n else if (isPromise(PAYLOAD.promise)) {\n promise = PAYLOAD.promise;\n data = PAYLOAD.data;\n } // Step 1.3: Is the promise returned by an async function?\n else if (typeof PAYLOAD === 'function' || typeof PAYLOAD.promise === 'function') {\n promise = PAYLOAD.promise ? PAYLOAD.promise() : PAYLOAD();\n data = PAYLOAD.promise ? PAYLOAD.data : undefined; // Step 1.3.1: Is the return of action.payload a promise?\n\n if (!isPromise(promise)) {\n // If not, move on to the next middleware.\n return next(_objectSpread({}, action, {\n payload: promise\n }));\n }\n } // Step 1.4: If there's no promise, move on to the next middleware.\n else {\n return next(action);\n } // Step 1b: If there's no payload, move on to the next middleware.\n } else {\n return next(action);\n }\n /**\n * Instantiate and define constants for:\n * (1) the action type\n * (2) the action meta\n */\n\n var TYPE = action.type;\n var META = action.meta;\n /**\n * Instantiate and define constants for the action type suffixes.\n * These are appended to the end of the action type.\n */\n\n var _PROMISE_TYPE_SUFFIXE = _slicedToArray(PROMISE_TYPE_SUFFIXES, 3),\n PENDING = _PROMISE_TYPE_SUFFIXE[0],\n FULFILLED = _PROMISE_TYPE_SUFFIXE[1],\n REJECTED = _PROMISE_TYPE_SUFFIXE[2];\n /**\n * Function: getAction\n * Description: This function constructs and returns a rejected\n * or fulfilled action object. The action object is based off the Flux\n * Standard Action (FSA).\n *\n * Given an original action with the type FOO:\n *\n * The rejected object model will be:\n * {\n * error: true,\n * type: 'FOO_REJECTED',\n * payload: ...,\n * meta: ... (optional)\n * }\n *\n * The fulfilled object model will be:\n * {\n * type: 'FOO_FULFILLED',\n * payload: ...,\n * meta: ... (optional)\n * }\n */\n\n var getAction = function getAction(newPayload, isRejected) {\n return _objectSpread({\n // Concatenate the type string property.\n type: [TYPE, isRejected ? REJECTED : FULFILLED].join(PROMISE_TYPE_DELIMITER)\n }, newPayload === null || typeof newPayload === 'undefined' ? {} : {\n payload: newPayload\n }, {}, META !== undefined ? {\n meta: META\n } : {}, {}, isRejected ? {\n error: true\n } : {});\n };\n /**\n * Function: handleReject\n * Calls: getAction to construct the rejected action\n * Description: This function dispatches the rejected action and returns\n * the original Error object. Please note the developer is responsible\n * for constructing and throwing an Error object. The middleware does not\n * construct any Errors.\n */\n\n var handleReject = function handleReject(reason) {\n var rejectedAction = getAction(reason, true);\n dispatch(rejectedAction);\n throw reason;\n };\n /**\n * Function: handleFulfill\n * Calls: getAction to construct the fullfilled action\n * Description: This function dispatches the fulfilled action and\n * returns the success object. The success object should\n * contain the value and the dispatched action.\n */\n\n var handleFulfill = function handleFulfill() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var resolvedAction = getAction(value, false);\n dispatch(resolvedAction);\n return {\n value: value,\n action: resolvedAction\n };\n };\n /**\n * First, dispatch the pending action:\n * This object describes the pending state of a promise and will include\n * any data (for optimistic updates) and/or meta from the original action.\n */\n\n next(_objectSpread({\n // Concatenate the type string.\n type: [TYPE, PENDING].join(PROMISE_TYPE_DELIMITER)\n }, data !== undefined ? {\n payload: data\n } : {}, {}, META !== undefined ? {\n meta: META\n } : {}));\n /**\n * Second, dispatch a rejected or fulfilled action and move on to the\n * next middleware.\n */\n\n return promise.then(handleFulfill, handleReject);\n };\n };\n };\n}\nexport default function middleware() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n dispatch = _ref.dispatch;\n if (typeof dispatch === 'function') {\n return createPromise()({\n dispatch: dispatch\n });\n }\n if (process && process.env && process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(\"Redux Promise Middleware: As of version 6.0.0, the middleware library supports both preconfigured and custom configured middleware. To use a custom configuration, use the \\\"createPromise\\\" export and call this function with your configuration property. To use a preconfiguration, use the default export. For more help, check the upgrading guide: https://docs.psb.design/redux-promise-middleware/upgrade-guides/v6\\n\\nFor custom configuration:\\nimport { createPromise } from 'redux-promise-middleware';\\nconst promise = createPromise({ promiseTypeSuffixes: ['LOADING', 'SUCCESS', 'ERROR'] });\\napplyMiddleware(promise);\\n\\nFor preconfiguration:\\nimport promise from 'redux-promise-middleware';\\napplyMiddleware(promise);\\n \");\n }\n return null;\n}","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n return output;\n}\nmodule.exports = StyleToObject;\nmodule.exports.default = StyleToObject; // ESM support","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\nmodule.exports = nativeCreate;","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\nmodule.exports = ListCache;","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\nmodule.exports = assocIndexOf;","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n}\nmodule.exports = getMapData;","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n}\nmodule.exports = toKey;","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function () {\n return arguments;\n}()) ? baseIsArguments : function (value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n};\nmodule.exports = isArguments;","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\nmodule.exports = identity;","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number' ? isArrayLike(object) && isIndex(index, object.length) : type == 'string' && index in object) {\n return eq(object[index], value);\n }\n return false;\n}\nmodule.exports = isIterateeCall;","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.40.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.40.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var map = {\n\t\"./af\": 167,\n\t\"./af.js\": 167,\n\t\"./ar\": 168,\n\t\"./ar-dz\": 169,\n\t\"./ar-dz.js\": 169,\n\t\"./ar-kw\": 170,\n\t\"./ar-kw.js\": 170,\n\t\"./ar-ly\": 171,\n\t\"./ar-ly.js\": 171,\n\t\"./ar-ma\": 172,\n\t\"./ar-ma.js\": 172,\n\t\"./ar-ps\": 173,\n\t\"./ar-ps.js\": 173,\n\t\"./ar-sa\": 174,\n\t\"./ar-sa.js\": 174,\n\t\"./ar-tn\": 175,\n\t\"./ar-tn.js\": 175,\n\t\"./ar.js\": 168,\n\t\"./az\": 176,\n\t\"./az.js\": 176,\n\t\"./be\": 177,\n\t\"./be.js\": 177,\n\t\"./bg\": 178,\n\t\"./bg.js\": 178,\n\t\"./bm\": 179,\n\t\"./bm.js\": 179,\n\t\"./bn\": 180,\n\t\"./bn-bd\": 181,\n\t\"./bn-bd.js\": 181,\n\t\"./bn.js\": 180,\n\t\"./bo\": 182,\n\t\"./bo.js\": 182,\n\t\"./br\": 183,\n\t\"./br.js\": 183,\n\t\"./bs\": 184,\n\t\"./bs.js\": 184,\n\t\"./ca\": 185,\n\t\"./ca.js\": 185,\n\t\"./cs\": 186,\n\t\"./cs.js\": 186,\n\t\"./cv\": 187,\n\t\"./cv.js\": 187,\n\t\"./cy\": 188,\n\t\"./cy.js\": 188,\n\t\"./da\": 189,\n\t\"./da.js\": 189,\n\t\"./de\": 190,\n\t\"./de-at\": 191,\n\t\"./de-at.js\": 191,\n\t\"./de-ch\": 192,\n\t\"./de-ch.js\": 192,\n\t\"./de.js\": 190,\n\t\"./dv\": 193,\n\t\"./dv.js\": 193,\n\t\"./el\": 194,\n\t\"./el.js\": 194,\n\t\"./en-au\": 195,\n\t\"./en-au.js\": 195,\n\t\"./en-ca\": 196,\n\t\"./en-ca.js\": 196,\n\t\"./en-gb\": 197,\n\t\"./en-gb.js\": 197,\n\t\"./en-ie\": 198,\n\t\"./en-ie.js\": 198,\n\t\"./en-il\": 199,\n\t\"./en-il.js\": 199,\n\t\"./en-in\": 200,\n\t\"./en-in.js\": 200,\n\t\"./en-nz\": 201,\n\t\"./en-nz.js\": 201,\n\t\"./en-sg\": 202,\n\t\"./en-sg.js\": 202,\n\t\"./eo\": 203,\n\t\"./eo.js\": 203,\n\t\"./es\": 204,\n\t\"./es-do\": 205,\n\t\"./es-do.js\": 205,\n\t\"./es-mx\": 206,\n\t\"./es-mx.js\": 206,\n\t\"./es-us\": 207,\n\t\"./es-us.js\": 207,\n\t\"./es.js\": 204,\n\t\"./et\": 208,\n\t\"./et.js\": 208,\n\t\"./eu\": 209,\n\t\"./eu.js\": 209,\n\t\"./fa\": 210,\n\t\"./fa.js\": 210,\n\t\"./fi\": 211,\n\t\"./fi.js\": 211,\n\t\"./fil\": 212,\n\t\"./fil.js\": 212,\n\t\"./fo\": 213,\n\t\"./fo.js\": 213,\n\t\"./fr\": 214,\n\t\"./fr-ca\": 215,\n\t\"./fr-ca.js\": 215,\n\t\"./fr-ch\": 216,\n\t\"./fr-ch.js\": 216,\n\t\"./fr.js\": 214,\n\t\"./fy\": 217,\n\t\"./fy.js\": 217,\n\t\"./ga\": 218,\n\t\"./ga.js\": 218,\n\t\"./gd\": 219,\n\t\"./gd.js\": 219,\n\t\"./gl\": 220,\n\t\"./gl.js\": 220,\n\t\"./gom-deva\": 221,\n\t\"./gom-deva.js\": 221,\n\t\"./gom-latn\": 222,\n\t\"./gom-latn.js\": 222,\n\t\"./gu\": 223,\n\t\"./gu.js\": 223,\n\t\"./he\": 224,\n\t\"./he.js\": 224,\n\t\"./hi\": 225,\n\t\"./hi.js\": 225,\n\t\"./hr\": 226,\n\t\"./hr.js\": 226,\n\t\"./hu\": 227,\n\t\"./hu.js\": 227,\n\t\"./hy-am\": 228,\n\t\"./hy-am.js\": 228,\n\t\"./id\": 229,\n\t\"./id.js\": 229,\n\t\"./is\": 230,\n\t\"./is.js\": 230,\n\t\"./it\": 231,\n\t\"./it-ch\": 232,\n\t\"./it-ch.js\": 232,\n\t\"./it.js\": 231,\n\t\"./ja\": 233,\n\t\"./ja.js\": 233,\n\t\"./jv\": 234,\n\t\"./jv.js\": 234,\n\t\"./ka\": 235,\n\t\"./ka.js\": 235,\n\t\"./kk\": 236,\n\t\"./kk.js\": 236,\n\t\"./km\": 237,\n\t\"./km.js\": 237,\n\t\"./kn\": 238,\n\t\"./kn.js\": 238,\n\t\"./ko\": 239,\n\t\"./ko.js\": 239,\n\t\"./ku\": 240,\n\t\"./ku-kmr\": 241,\n\t\"./ku-kmr.js\": 241,\n\t\"./ku.js\": 240,\n\t\"./ky\": 242,\n\t\"./ky.js\": 242,\n\t\"./lb\": 243,\n\t\"./lb.js\": 243,\n\t\"./lo\": 244,\n\t\"./lo.js\": 244,\n\t\"./lt\": 245,\n\t\"./lt.js\": 245,\n\t\"./lv\": 246,\n\t\"./lv.js\": 246,\n\t\"./me\": 247,\n\t\"./me.js\": 247,\n\t\"./mi\": 248,\n\t\"./mi.js\": 248,\n\t\"./mk\": 249,\n\t\"./mk.js\": 249,\n\t\"./ml\": 250,\n\t\"./ml.js\": 250,\n\t\"./mn\": 251,\n\t\"./mn.js\": 251,\n\t\"./mr\": 252,\n\t\"./mr.js\": 252,\n\t\"./ms\": 253,\n\t\"./ms-my\": 254,\n\t\"./ms-my.js\": 254,\n\t\"./ms.js\": 253,\n\t\"./mt\": 255,\n\t\"./mt.js\": 255,\n\t\"./my\": 256,\n\t\"./my.js\": 256,\n\t\"./nb\": 257,\n\t\"./nb.js\": 257,\n\t\"./ne\": 258,\n\t\"./ne.js\": 258,\n\t\"./nl\": 259,\n\t\"./nl-be\": 260,\n\t\"./nl-be.js\": 260,\n\t\"./nl.js\": 259,\n\t\"./nn\": 261,\n\t\"./nn.js\": 261,\n\t\"./oc-lnc\": 262,\n\t\"./oc-lnc.js\": 262,\n\t\"./pa-in\": 263,\n\t\"./pa-in.js\": 263,\n\t\"./pl\": 264,\n\t\"./pl.js\": 264,\n\t\"./pt\": 265,\n\t\"./pt-br\": 266,\n\t\"./pt-br.js\": 266,\n\t\"./pt.js\": 265,\n\t\"./ro\": 267,\n\t\"./ro.js\": 267,\n\t\"./ru\": 268,\n\t\"./ru.js\": 268,\n\t\"./sd\": 269,\n\t\"./sd.js\": 269,\n\t\"./se\": 270,\n\t\"./se.js\": 270,\n\t\"./si\": 271,\n\t\"./si.js\": 271,\n\t\"./sk\": 272,\n\t\"./sk.js\": 272,\n\t\"./sl\": 273,\n\t\"./sl.js\": 273,\n\t\"./sq\": 274,\n\t\"./sq.js\": 274,\n\t\"./sr\": 275,\n\t\"./sr-cyrl\": 276,\n\t\"./sr-cyrl.js\": 276,\n\t\"./sr.js\": 275,\n\t\"./ss\": 277,\n\t\"./ss.js\": 277,\n\t\"./sv\": 278,\n\t\"./sv.js\": 278,\n\t\"./sw\": 279,\n\t\"./sw.js\": 279,\n\t\"./ta\": 280,\n\t\"./ta.js\": 280,\n\t\"./te\": 281,\n\t\"./te.js\": 281,\n\t\"./tet\": 282,\n\t\"./tet.js\": 282,\n\t\"./tg\": 283,\n\t\"./tg.js\": 283,\n\t\"./th\": 284,\n\t\"./th.js\": 284,\n\t\"./tk\": 285,\n\t\"./tk.js\": 285,\n\t\"./tl-ph\": 286,\n\t\"./tl-ph.js\": 286,\n\t\"./tlh\": 287,\n\t\"./tlh.js\": 287,\n\t\"./tr\": 288,\n\t\"./tr.js\": 288,\n\t\"./tzl\": 289,\n\t\"./tzl.js\": 289,\n\t\"./tzm\": 290,\n\t\"./tzm-latn\": 291,\n\t\"./tzm-latn.js\": 291,\n\t\"./tzm.js\": 290,\n\t\"./ug-cn\": 292,\n\t\"./ug-cn.js\": 292,\n\t\"./uk\": 293,\n\t\"./uk.js\": 293,\n\t\"./ur\": 294,\n\t\"./ur.js\": 294,\n\t\"./uz\": 295,\n\t\"./uz-latn\": 296,\n\t\"./uz-latn.js\": 296,\n\t\"./uz.js\": 295,\n\t\"./vi\": 297,\n\t\"./vi.js\": 297,\n\t\"./x-pseudo\": 298,\n\t\"./x-pseudo.js\": 298,\n\t\"./yo\": 299,\n\t\"./yo.js\": 299,\n\t\"./zh-cn\": 300,\n\t\"./zh-cn.js\": 300,\n\t\"./zh-hk\": 301,\n\t\"./zh-hk.js\": 301,\n\t\"./zh-mo\": 302,\n\t\"./zh-mo.js\": 302,\n\t\"./zh-tw\": 303,\n\t\"./zh-tw.js\": 303\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 419;","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\nvar warning = function () {};\nif (process.env.NODE_ENV !== 'production') {\n warning = function (condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (format.length < 10 || /^[s\\W]*$/.test(format)) {\n throw new Error('The warning format should be able to uniquely identify this ' + 'warning. Please, use a more descriptive format than: ' + format);\n }\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n };\n}\nmodule.exports = warning;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n ;\n shim.isRequired = shim;\n function getShim() {\n return shim;\n }\n ;\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","var map = {\n\t\"./Activity/ReviewModal\": 95,\n\t\"./Activity/ReviewModal.jsx\": 95,\n\t\"./Activity/ReviewSummary\": 61,\n\t\"./Activity/ReviewSummary.jsx\": 61,\n\t\"./Catalog/List\": 304,\n\t\"./Catalog/List.jsx\": 304,\n\t\"./Catalog/Report\": 306,\n\t\"./Catalog/Report.jsx\": 306,\n\t\"./Catalog/ReviewModal\": 101,\n\t\"./Catalog/ReviewModal.jsx\": 101,\n\t\"./Catalog/Summary\": 100,\n\t\"./Catalog/Summary.jsx\": 100,\n\t\"./Category/List\": 307,\n\t\"./Category/List.jsx\": 307,\n\t\"./Category/Summary\": 138,\n\t\"./Category/Summary.jsx\": 138,\n\t\"./CategoryDocument/CreateSelectList\": 308,\n\t\"./CategoryDocument/CreateSelectList.jsx\": 308,\n\t\"./CategoryDocument/DeleteSelectList\": 309,\n\t\"./CategoryDocument/DeleteSelectList.jsx\": 309,\n\t\"./CategoryDocument/List\": 310,\n\t\"./CategoryDocument/List.jsx\": 310,\n\t\"./Contributor/List\": 311,\n\t\"./Contributor/List.jsx\": 311,\n\t\"./Doc/Activity\": 104,\n\t\"./Doc/Activity.tsx\": 104,\n\t\"./Doc/Audio\": 105,\n\t\"./Doc/Audio.tsx\": 105,\n\t\"./Doc/Bookmark\": 10,\n\t\"./Doc/Bookmark.tsx\": 10,\n\t\"./Doc/Button\": 106,\n\t\"./Doc/Button.tsx\": 106,\n\t\"./Doc/Checkbox\": 107,\n\t\"./Doc/Checkbox.tsx\": 107,\n\t\"./Doc/CompletionNotice\": 108,\n\t\"./Doc/CompletionNotice.tsx\": 108,\n\t\"./Doc/Container\": 369,\n\t\"./Doc/Container.tsx\": 369,\n\t\"./Doc/EditMetadataModal\": 123,\n\t\"./Doc/EditMetadataModal.tsx\": 123,\n\t\"./Doc/Extra\": 51,\n\t\"./Doc/Extra.tsx\": 51,\n\t\"./Doc/Image\": 67,\n\t\"./Doc/Image.tsx\": 67,\n\t\"./Doc/ImageGallery\": 109,\n\t\"./Doc/ImageGallery.tsx\": 109,\n\t\"./Doc/InlineText\": 18,\n\t\"./Doc/InlineText.tsx\": 18,\n\t\"./Doc/ListItem\": 68,\n\t\"./Doc/ListItem.tsx\": 68,\n\t\"./Doc/Matcher\": 110,\n\t\"./Doc/Matcher.tsx\": 110,\n\t\"./Doc/MediaModal\": 121,\n\t\"./Doc/MediaModal.tsx\": 121,\n\t\"./Doc/MultipleChoice\": 111,\n\t\"./Doc/MultipleChoice.tsx\": 111,\n\t\"./Doc/NumberedList\": 112,\n\t\"./Doc/NumberedList.tsx\": 112,\n\t\"./Doc/OpenAiChat\": 137,\n\t\"./Doc/OpenAiChat.tsx\": 137,\n\t\"./Doc/Paragraph\": 113,\n\t\"./Doc/Paragraph.tsx\": 113,\n\t\"./Doc/QuestionReportButton\": 120,\n\t\"./Doc/QuestionReportButton.tsx\": 120,\n\t\"./Doc/RatingBar\": 114,\n\t\"./Doc/RatingBar.tsx\": 114,\n\t\"./Doc/RegularList\": 115,\n\t\"./Doc/RegularList.tsx\": 115,\n\t\"./Doc/Section\": 66,\n\t\"./Doc/Section.tsx\": 66,\n\t\"./Doc/SectionScheduleStatus\": 119,\n\t\"./Doc/SectionScheduleStatus.tsx\": 119,\n\t\"./Doc/SliderBar\": 116,\n\t\"./Doc/SliderBar.tsx\": 116,\n\t\"./Doc/TextInput\": 117,\n\t\"./Doc/TextInput.tsx\": 117,\n\t\"./Doc/TopBar\": 124,\n\t\"./Doc/TopBar.tsx\": 124,\n\t\"./Doc/Video\": 118,\n\t\"./Doc/Video.tsx\": 118,\n\t\"./Doc/VideoJWPlayer\": 69,\n\t\"./Doc/VideoJWPlayer.tsx\": 69,\n\t\"./Document/CaptureList\": 322,\n\t\"./Document/CaptureList.jsx\": 322,\n\t\"./Document/CaptureListDefaults\": 125,\n\t\"./Document/CaptureListDefaults.jsx\": 125,\n\t\"./Document/CaptureSummary\": 126,\n\t\"./Document/CaptureSummary.jsx\": 126,\n\t\"./Document/List\": 370,\n\t\"./Document/List.jsx\": 370,\n\t\"./Document/ListDefaults\": 26,\n\t\"./Document/ListDefaults.jsx\": 26,\n\t\"./Document/Summary\": 42,\n\t\"./Document/Summary.jsx\": 42,\n\t\"./DocumentContributor/List\": 323,\n\t\"./DocumentContributor/List.jsx\": 323,\n\t\"./DocumentSet/EditDocumentsAccessTable\": 324,\n\t\"./DocumentSet/EditDocumentsAccessTable.jsx\": 324,\n\t\"./DocumentSet/EditDocumentsActivitiesTable\": 341,\n\t\"./DocumentSet/EditDocumentsActivitiesTable.jsx\": 341,\n\t\"./DocumentSet/List\": 342,\n\t\"./DocumentSet/List.jsx\": 342,\n\t\"./DocumentSet/NewBatchPreset\": 343,\n\t\"./DocumentSet/NewBatchPreset.jsx\": 343,\n\t\"./DocumentSet/Report\": 344,\n\t\"./DocumentSet/Report.jsx\": 344,\n\t\"./DocumentSet/Summary\": 129,\n\t\"./DocumentSet/Summary.jsx\": 129,\n\t\"./DocumentSetDocumentRelation/AddTo/Button\": 64,\n\t\"./DocumentSetDocumentRelation/AddTo/Button.tsx\": 64,\n\t\"./DocumentSetDocumentRelation/AddTo/List\": 102,\n\t\"./DocumentSetDocumentRelation/AddTo/List.jsx\": 102,\n\t\"./DocumentSetDocumentRelation/AddTo/Summary\": 103,\n\t\"./DocumentSetDocumentRelation/AddTo/Summary.jsx\": 103,\n\t\"./DocumentSetDocumentRelation/CreateSelectList\": 345,\n\t\"./DocumentSetDocumentRelation/CreateSelectList.jsx\": 345,\n\t\"./DocumentSetDocumentRelation/DeleteSelectList\": 346,\n\t\"./DocumentSetDocumentRelation/DeleteSelectList.jsx\": 346,\n\t\"./DocumentSetDocumentRelation/List\": 347,\n\t\"./DocumentSetDocumentRelation/List.jsx\": 347,\n\t\"./DocumentSetDocumentRelation/ScheduleStatus\": 56,\n\t\"./DocumentSetDocumentRelation/ScheduleStatus.jsx\": 56,\n\t\"./DocumentSetDocumentRelation/Summary\": 130,\n\t\"./DocumentSetDocumentRelation/Summary.jsx\": 130,\n\t\"./DocumentSetUserPermission/CreateSelectList\": 348,\n\t\"./DocumentSetUserPermission/CreateSelectList.jsx\": 348,\n\t\"./DocumentSetUserPermission/SelectList\": 349,\n\t\"./DocumentSetUserPermission/SelectList.jsx\": 349,\n\t\"./DocumentUser/List\": 350,\n\t\"./DocumentUser/List.jsx\": 350,\n\t\"./DocumentUser/Summary\": 131,\n\t\"./DocumentUser/Summary.jsx\": 131,\n\t\"./Gen/BooleanCircle\": 31,\n\t\"./Gen/BooleanCircle.tsx\": 31,\n\t\"./Gen/Breadcrumbs\": 351,\n\t\"./Gen/Breadcrumbs.tsx\": 351,\n\t\"./Gen/Button\": 3,\n\t\"./Gen/Button.tsx\": 3,\n\t\"./Gen/CheckboxFilter\": 96,\n\t\"./Gen/CheckboxFilter.tsx\": 96,\n\t\"./Gen/CheckboxesFilter\": 97,\n\t\"./Gen/CheckboxesFilter.tsx\": 97,\n\t\"./Gen/ControlsBar\": 15,\n\t\"./Gen/ControlsBar.tsx\": 15,\n\t\"./Gen/CycleButton\": 63,\n\t\"./Gen/CycleButton.tsx\": 63,\n\t\"./Gen/DirectionalButtons\": 50,\n\t\"./Gen/DirectionalButtons.tsx\": 50,\n\t\"./Gen/FilterGroup\": 98,\n\t\"./Gen/FilterGroup.tsx\": 98,\n\t\"./Gen/GroupableTable\": 72,\n\t\"./Gen/GroupableTable.jsx\": 72,\n\t\"./Gen/List\": 32,\n\t\"./Gen/List.jsx\": 32,\n\t\"./Gen/ListDisplay\": 80,\n\t\"./Gen/ListDisplay.tsx\": 80,\n\t\"./Gen/LoadingSpinner\": 25,\n\t\"./Gen/LoadingSpinner.tsx\": 25,\n\t\"./Gen/MediaDuplicationTool\": 122,\n\t\"./Gen/MediaDuplicationTool.tsx\": 122,\n\t\"./Gen/MediaUploadButton\": 79,\n\t\"./Gen/MediaUploadButton.tsx\": 79,\n\t\"./Gen/Modal\": 21,\n\t\"./Gen/Modal.tsx\": 21,\n\t\"./Gen/More\": 11,\n\t\"./Gen/More.tsx\": 11,\n\t\"./Gen/Panel\": 127,\n\t\"./Gen/Panel.tsx\": 127,\n\t\"./Gen/PanelGroup\": 352,\n\t\"./Gen/PanelGroup.tsx\": 352,\n\t\"./Gen/PanelHeader\": 65,\n\t\"./Gen/PanelHeader.tsx\": 65,\n\t\"./Gen/PanelSlice\": 128,\n\t\"./Gen/PanelSlice.tsx\": 128,\n\t\"./Gen/PostButton\": 70,\n\t\"./Gen/PostButton.tsx\": 70,\n\t\"./Gen/SearchBox\": 16,\n\t\"./Gen/SearchBox.tsx\": 16,\n\t\"./Gen/SelectBar\": 44,\n\t\"./Gen/SelectBar.tsx\": 44,\n\t\"./Gen/SelectList\": 24,\n\t\"./Gen/SelectList.jsx\": 24,\n\t\"./Gen/SidebarList\": 49,\n\t\"./Gen/SidebarList.jsx\": 49,\n\t\"./Gen/SortButtons\": 33,\n\t\"./Gen/SortButtons.tsx\": 33,\n\t\"./Gen/Switch\": 7,\n\t\"./Gen/Switch.tsx\": 7,\n\t\"./Gen/Table\": 132,\n\t\"./Gen/Table.jsx\": 132,\n\t\"./Gen/TableDisplay\": 71,\n\t\"./Gen/TableDisplay.tsx\": 71,\n\t\"./Gen/ToggleBar\": 55,\n\t\"./Gen/ToggleBar.tsx\": 55,\n\t\"./Gen/ToggleButton\": 62,\n\t\"./Gen/ToggleButton.tsx\": 62,\n\t\"./Gen/YMWDFilter\": 99,\n\t\"./Gen/YMWDFilter.tsx\": 99,\n\t\"./Group/ExpirationDatePicker\": 353,\n\t\"./Group/ExpirationDatePicker.jsx\": 353,\n\t\"./Group/List\": 354,\n\t\"./Group/List.jsx\": 354,\n\t\"./Group/ListDefaults\": 134,\n\t\"./Group/ListDefaults.jsx\": 134,\n\t\"./Group/Summary\": 133,\n\t\"./Group/Summary.jsx\": 133,\n\t\"./GroupDocument/CreateBatchSelectList\": 355,\n\t\"./GroupDocument/CreateBatchSelectList.jsx\": 355,\n\t\"./GroupDocument/DeleteBatchSelectList\": 356,\n\t\"./GroupDocument/DeleteBatchSelectList.jsx\": 356,\n\t\"./GroupRoleDefinitionUser/Table\": 357,\n\t\"./GroupRoleDefinitionUser/Table.jsx\": 357,\n\t\"./Institution/List\": 358,\n\t\"./Institution/List.jsx\": 358,\n\t\"./InstitutionContributor/List\": 359,\n\t\"./InstitutionContributor/List.jsx\": 359,\n\t\"./MediaAsset/NewMediaRecorder\": 360,\n\t\"./MediaAsset/NewMediaRecorder.jsx\": 360,\n\t\"./MediaAsset/NewWebkit\": 361,\n\t\"./MediaAsset/NewWebkit.jsx\": 361,\n\t\"./Test/ComponentPreview\": 362,\n\t\"./Test/ComponentPreview.jsx\": 362,\n\t\"./User/List\": 363,\n\t\"./User/List.jsx\": 363,\n\t\"./User/Summary\": 135,\n\t\"./User/Summary.jsx\": 135,\n\t\"./Version/List\": 364,\n\t\"./Version/List.jsx\": 364,\n\t\"./Version/Summary\": 136,\n\t\"./Version/Summary.jsx\": 136\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 423;","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar l = Symbol.for(\"react.element\"),\n n = Symbol.for(\"react.portal\"),\n p = Symbol.for(\"react.fragment\"),\n q = Symbol.for(\"react.strict_mode\"),\n r = Symbol.for(\"react.profiler\"),\n t = Symbol.for(\"react.provider\"),\n u = Symbol.for(\"react.context\"),\n v = Symbol.for(\"react.forward_ref\"),\n w = Symbol.for(\"react.suspense\"),\n x = Symbol.for(\"react.memo\"),\n y = Symbol.for(\"react.lazy\"),\n z = Symbol.iterator;\nfunction A(a) {\n if (null === a || \"object\" !== typeof a) return null;\n a = z && a[z] || a[\"@@iterator\"];\n return \"function\" === typeof a ? a : null;\n}\nvar B = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n C = Object.assign,\n D = {};\nfunction E(a, b, e) {\n this.props = a;\n this.context = b;\n this.refs = D;\n this.updater = e || B;\n}\nE.prototype.isReactComponent = {};\nE.prototype.setState = function (a, b) {\n if (\"object\" !== typeof a && \"function\" !== typeof a && null != a) throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");\n this.updater.enqueueSetState(this, a, b, \"setState\");\n};\nE.prototype.forceUpdate = function (a) {\n this.updater.enqueueForceUpdate(this, a, \"forceUpdate\");\n};\nfunction F() {}\nF.prototype = E.prototype;\nfunction G(a, b, e) {\n this.props = a;\n this.context = b;\n this.refs = D;\n this.updater = e || B;\n}\nvar H = G.prototype = new F();\nH.constructor = G;\nC(H, E.prototype);\nH.isPureReactComponent = !0;\nvar I = Array.isArray,\n J = Object.prototype.hasOwnProperty,\n K = {\n current: null\n },\n L = {\n key: !0,\n ref: !0,\n __self: !0,\n __source: !0\n };\nfunction M(a, b, e) {\n var d,\n c = {},\n k = null,\n h = null;\n if (null != b) for (d in void 0 !== b.ref && (h = b.ref), void 0 !== b.key && (k = \"\" + b.key), b) J.call(b, d) && !L.hasOwnProperty(d) && (c[d] = b[d]);\n var g = arguments.length - 2;\n if (1 === g) c.children = e;else if (1 < g) {\n for (var f = Array(g), m = 0; m < g; m++) f[m] = arguments[m + 2];\n c.children = f;\n }\n if (a && a.defaultProps) for (d in g = a.defaultProps, g) void 0 === c[d] && (c[d] = g[d]);\n return {\n $$typeof: l,\n type: a,\n key: k,\n ref: h,\n props: c,\n _owner: K.current\n };\n}\nfunction N(a, b) {\n return {\n $$typeof: l,\n type: a.type,\n key: b,\n ref: a.ref,\n props: a.props,\n _owner: a._owner\n };\n}\nfunction O(a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === l;\n}\nfunction escape(a) {\n var b = {\n \"=\": \"=0\",\n \":\": \"=2\"\n };\n return \"$\" + a.replace(/[=:]/g, function (a) {\n return b[a];\n });\n}\nvar P = /\\/+/g;\nfunction Q(a, b) {\n return \"object\" === typeof a && null !== a && null != a.key ? escape(\"\" + a.key) : b.toString(36);\n}\nfunction R(a, b, e, d, c) {\n var k = typeof a;\n if (\"undefined\" === k || \"boolean\" === k) a = null;\n var h = !1;\n if (null === a) h = !0;else switch (k) {\n case \"string\":\n case \"number\":\n h = !0;\n break;\n case \"object\":\n switch (a.$$typeof) {\n case l:\n case n:\n h = !0;\n }\n }\n if (h) return h = a, c = c(h), a = \"\" === d ? \".\" + Q(h, 0) : d, I(c) ? (e = \"\", null != a && (e = a.replace(P, \"$&/\") + \"/\"), R(c, b, e, \"\", function (a) {\n return a;\n })) : null != c && (O(c) && (c = N(c, e + (!c.key || h && h.key === c.key ? \"\" : (\"\" + c.key).replace(P, \"$&/\") + \"/\") + a)), b.push(c)), 1;\n h = 0;\n d = \"\" === d ? \".\" : d + \":\";\n if (I(a)) for (var g = 0; g < a.length; g++) {\n k = a[g];\n var f = d + Q(k, g);\n h += R(k, b, e, f, c);\n } else if (f = A(a), \"function\" === typeof f) for (a = f.call(a), g = 0; !(k = a.next()).done;) k = k.value, f = d + Q(k, g++), h += R(k, b, e, f, c);else if (\"object\" === k) throw b = String(a), Error(\"Objects are not valid as a React child (found: \" + (\"[object Object]\" === b ? \"object with keys {\" + Object.keys(a).join(\", \") + \"}\" : b) + \"). If you meant to render a collection of children, use an array instead.\");\n return h;\n}\nfunction S(a, b, e) {\n if (null == a) return a;\n var d = [],\n c = 0;\n R(a, d, \"\", \"\", function (a) {\n return b.call(e, a, c++);\n });\n return d;\n}\nfunction T(a) {\n if (-1 === a._status) {\n var b = a._result;\n b = b();\n b.then(function (b) {\n if (0 === a._status || -1 === a._status) a._status = 1, a._result = b;\n }, function (b) {\n if (0 === a._status || -1 === a._status) a._status = 2, a._result = b;\n });\n -1 === a._status && (a._status = 0, a._result = b);\n }\n if (1 === a._status) return a._result.default;\n throw a._result;\n}\nvar U = {\n current: null\n },\n V = {\n transition: null\n },\n W = {\n ReactCurrentDispatcher: U,\n ReactCurrentBatchConfig: V,\n ReactCurrentOwner: K\n };\nfunction X() {\n throw Error(\"act(...) is not supported in production builds of React.\");\n}\nexports.Children = {\n map: S,\n forEach: function (a, b, e) {\n S(a, function () {\n b.apply(this, arguments);\n }, e);\n },\n count: function (a) {\n var b = 0;\n S(a, function () {\n b++;\n });\n return b;\n },\n toArray: function (a) {\n return S(a, function (a) {\n return a;\n }) || [];\n },\n only: function (a) {\n if (!O(a)) throw Error(\"React.Children.only expected to receive a single React element child.\");\n return a;\n }\n};\nexports.Component = E;\nexports.Fragment = p;\nexports.Profiler = r;\nexports.PureComponent = G;\nexports.StrictMode = q;\nexports.Suspense = w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = W;\nexports.act = X;\nexports.cloneElement = function (a, b, e) {\n if (null === a || void 0 === a) throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + a + \".\");\n var d = C({}, a.props),\n c = a.key,\n k = a.ref,\n h = a._owner;\n if (null != b) {\n void 0 !== b.ref && (k = b.ref, h = K.current);\n void 0 !== b.key && (c = \"\" + b.key);\n if (a.type && a.type.defaultProps) var g = a.type.defaultProps;\n for (f in b) J.call(b, f) && !L.hasOwnProperty(f) && (d[f] = void 0 === b[f] && void 0 !== g ? g[f] : b[f]);\n }\n var f = arguments.length - 2;\n if (1 === f) d.children = e;else if (1 < f) {\n g = Array(f);\n for (var m = 0; m < f; m++) g[m] = arguments[m + 2];\n d.children = g;\n }\n return {\n $$typeof: l,\n type: a.type,\n key: c,\n ref: k,\n props: d,\n _owner: h\n };\n};\nexports.createContext = function (a) {\n a = {\n $$typeof: u,\n _currentValue: a,\n _currentValue2: a,\n _threadCount: 0,\n Provider: null,\n Consumer: null,\n _defaultValue: null,\n _globalName: null\n };\n a.Provider = {\n $$typeof: t,\n _context: a\n };\n return a.Consumer = a;\n};\nexports.createElement = M;\nexports.createFactory = function (a) {\n var b = M.bind(null, a);\n b.type = a;\n return b;\n};\nexports.createRef = function () {\n return {\n current: null\n };\n};\nexports.forwardRef = function (a) {\n return {\n $$typeof: v,\n render: a\n };\n};\nexports.isValidElement = O;\nexports.lazy = function (a) {\n return {\n $$typeof: y,\n _payload: {\n _status: -1,\n _result: a\n },\n _init: T\n };\n};\nexports.memo = function (a, b) {\n return {\n $$typeof: x,\n type: a,\n compare: void 0 === b ? null : b\n };\n};\nexports.startTransition = function (a) {\n var b = V.transition;\n V.transition = {};\n try {\n a();\n } finally {\n V.transition = b;\n }\n};\nexports.unstable_act = X;\nexports.useCallback = function (a, b) {\n return U.current.useCallback(a, b);\n};\nexports.useContext = function (a) {\n return U.current.useContext(a);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (a) {\n return U.current.useDeferredValue(a);\n};\nexports.useEffect = function (a, b) {\n return U.current.useEffect(a, b);\n};\nexports.useId = function () {\n return U.current.useId();\n};\nexports.useImperativeHandle = function (a, b, e) {\n return U.current.useImperativeHandle(a, b, e);\n};\nexports.useInsertionEffect = function (a, b) {\n return U.current.useInsertionEffect(a, b);\n};\nexports.useLayoutEffect = function (a, b) {\n return U.current.useLayoutEffect(a, b);\n};\nexports.useMemo = function (a, b) {\n return U.current.useMemo(a, b);\n};\nexports.useReducer = function (a, b, e) {\n return U.current.useReducer(a, b, e);\n};\nexports.useRef = function (a) {\n return U.current.useRef(a);\n};\nexports.useState = function (a) {\n return U.current.useState(a);\n};\nexports.useSyncExternalStore = function (a, b, e) {\n return U.current.useSyncExternalStore(a, b, e);\n};\nexports.useTransition = function () {\n return U.current.useTransition();\n};\nexports.version = \"18.3.1\";","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _desc, _value, _class;\nvar _react = require('react');\nvar _react2 = _interopRequireDefault(_react);\nvar _propTypes = require('prop-types');\nvar _propTypes2 = _interopRequireDefault(_propTypes);\nvar _autobindDecorator = require('autobind-decorator');\nvar _autobindDecorator2 = _interopRequireDefault(_autobindDecorator);\nvar _valueTransformer = require('./value-transformer');\nvar valueTransformer = _interopRequireWildcard(_valueTransformer);\nvar _defaultClassNames = require('./default-class-names');\nvar _defaultClassNames2 = _interopRequireDefault(_defaultClassNames);\nvar _label = require('./label');\nvar _label2 = _interopRequireDefault(_label);\nvar _rangePropType = require('./range-prop-type');\nvar _rangePropType2 = _interopRequireDefault(_rangePropType);\nvar _valuePropType = require('./value-prop-type');\nvar _valuePropType2 = _interopRequireDefault(_valuePropType);\nvar _slider = require('./slider');\nvar _slider2 = _interopRequireDefault(_slider);\nvar _track = require('./track');\nvar _track2 = _interopRequireDefault(_track);\nvar _utils = require('../utils');\nvar _keyCodes = require('./key-codes');\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n return desc;\n}\n\n/**\n * A React component that allows users to input numeric values within a range\n * by dragging its sliders.\n */\nvar InputRange = (_class = function (_React$Component) {\n _inherits(InputRange, _React$Component);\n _createClass(InputRange, null, [{\n key: 'propTypes',\n /**\n * @ignore\n * @override\n * @return {Object}\n */\n get: function get() {\n return {\n allowSameValues: _propTypes2.default.bool,\n ariaLabelledby: _propTypes2.default.string,\n ariaControls: _propTypes2.default.string,\n classNames: _propTypes2.default.objectOf(_propTypes2.default.string),\n disabled: _propTypes2.default.bool,\n draggableTrack: _propTypes2.default.bool,\n formatLabel: _propTypes2.default.func,\n maxValue: _rangePropType2.default,\n minValue: _rangePropType2.default,\n name: _propTypes2.default.string,\n onChangeStart: _propTypes2.default.func,\n onChange: _propTypes2.default.func.isRequired,\n onChangeComplete: _propTypes2.default.func,\n step: _propTypes2.default.number,\n value: _valuePropType2.default\n };\n }\n\n /**\n * @ignore\n * @override\n * @return {Object}\n */\n }, {\n key: 'defaultProps',\n get: function get() {\n return {\n allowSameValues: false,\n classNames: _defaultClassNames2.default,\n disabled: false,\n maxValue: 10,\n minValue: 0,\n step: 1\n };\n }\n\n /**\n * @param {Object} props\n * @param {boolean} [props.allowSameValues]\n * @param {string} [props.ariaLabelledby]\n * @param {string} [props.ariaControls]\n * @param {InputRangeClassNames} [props.classNames]\n * @param {boolean} [props.disabled = false]\n * @param {Function} [props.formatLabel]\n * @param {number|Range} [props.maxValue = 10]\n * @param {number|Range} [props.minValue = 0]\n * @param {string} [props.name]\n * @param {string} props.onChange\n * @param {Function} [props.onChangeComplete]\n * @param {Function} [props.onChangeStart]\n * @param {number} [props.step = 1]\n * @param {number|Range} props.value\n */\n }]);\n function InputRange(props) {\n _classCallCheck(this, InputRange);\n\n /**\n * @private\n * @type {?number}\n */\n var _this = _possibleConstructorReturn(this, (InputRange.__proto__ || Object.getPrototypeOf(InputRange)).call(this, props));\n _this.startValue = null;\n\n /**\n * @private\n * @type {?Component}\n */\n _this.node = null;\n\n /**\n * @private\n * @type {?Component}\n */\n _this.trackNode = null;\n\n /**\n * @private\n * @type {bool}\n */\n _this.isSliderDragging = false;\n\n /**\n * @private\n * @type {?string}\n */\n _this.lastKeyMoved = null;\n return _this;\n }\n\n /**\n * @ignore\n * @override\n * @return {void}\n */\n\n _createClass(InputRange, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.removeDocumentMouseUpListener();\n this.removeDocumentTouchEndListener();\n }\n\n /**\n * Return the CSS class name of the component\n * @private\n * @return {string}\n */\n }, {\n key: 'getComponentClassName',\n value: function getComponentClassName() {\n if (!this.props.disabled) {\n return this.props.classNames.inputRange;\n }\n return this.props.classNames.disabledInputRange;\n }\n\n /**\n * Return the bounding rect of the track\n * @private\n * @return {ClientRect}\n */\n }, {\n key: 'getTrackClientRect',\n value: function getTrackClientRect() {\n return this.trackNode.getClientRect();\n }\n\n /**\n * Return the slider key closest to a point\n * @private\n * @param {Point} position\n * @return {string}\n */\n }, {\n key: 'getKeyByPosition',\n value: function getKeyByPosition(position) {\n var values = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n var positions = valueTransformer.getPositionsFromValues(values, this.props.minValue, this.props.maxValue, this.getTrackClientRect());\n if (this.isMultiValue()) {\n var distanceToMin = (0, _utils.distanceTo)(position, positions.min);\n var distanceToMax = (0, _utils.distanceTo)(position, positions.max);\n if (distanceToMin < distanceToMax) {\n return 'min';\n }\n }\n return 'max';\n }\n\n /**\n * Return all the slider keys\n * @private\n * @return {string[]}\n */\n }, {\n key: 'getKeys',\n value: function getKeys() {\n if (this.isMultiValue()) {\n return ['min', 'max'];\n }\n return ['max'];\n }\n\n /**\n * Return true if the difference between the new and the current value is\n * greater or equal to the step amount of the component\n * @private\n * @param {Range} values\n * @return {boolean}\n */\n }, {\n key: 'hasStepDifference',\n value: function hasStepDifference(values) {\n var currentValues = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n return (0, _utils.length)(values.min, currentValues.min) >= this.props.step || (0, _utils.length)(values.max, currentValues.max) >= this.props.step;\n }\n\n /**\n * Return true if the component accepts a min and max value\n * @private\n * @return {boolean}\n */\n }, {\n key: 'isMultiValue',\n value: function isMultiValue() {\n return (0, _utils.isObject)(this.props.value);\n }\n\n /**\n * Return true if the range is within the max and min value of the component\n * @private\n * @param {Range} values\n * @return {boolean}\n */\n }, {\n key: 'isWithinRange',\n value: function isWithinRange(values) {\n if (this.isMultiValue()) {\n return values.min >= this.props.minValue && values.max <= this.props.maxValue && this.props.allowSameValues ? values.min <= values.max : values.min < values.max;\n }\n return values.max >= this.props.minValue && values.max <= this.props.maxValue;\n }\n\n /**\n * Return true if the new value should trigger a render\n * @private\n * @param {Range} values\n * @return {boolean}\n */\n }, {\n key: 'shouldUpdate',\n value: function shouldUpdate(values) {\n return this.isWithinRange(values) && this.hasStepDifference(values);\n }\n\n /**\n * Update the position of a slider\n * @private\n * @param {string} key\n * @param {Point} position\n * @return {void}\n */\n }, {\n key: 'updatePosition',\n value: function updatePosition(key, position) {\n var values = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n var positions = valueTransformer.getPositionsFromValues(values, this.props.minValue, this.props.maxValue, this.getTrackClientRect());\n positions[key] = position;\n this.lastKeyMoved = key;\n this.updatePositions(positions);\n }\n\n /**\n * Update the positions of multiple sliders\n * @private\n * @param {Object} positions\n * @param {Point} positions.min\n * @param {Point} positions.max\n * @return {void}\n */\n }, {\n key: 'updatePositions',\n value: function updatePositions(positions) {\n var values = {\n min: valueTransformer.getValueFromPosition(positions.min, this.props.minValue, this.props.maxValue, this.getTrackClientRect()),\n max: valueTransformer.getValueFromPosition(positions.max, this.props.minValue, this.props.maxValue, this.getTrackClientRect())\n };\n var transformedValues = {\n min: valueTransformer.getStepValueFromValue(values.min, this.props.step),\n max: valueTransformer.getStepValueFromValue(values.max, this.props.step)\n };\n this.updateValues(transformedValues);\n }\n\n /**\n * Update the value of a slider\n * @private\n * @param {string} key\n * @param {number} value\n * @return {void}\n */\n }, {\n key: 'updateValue',\n value: function updateValue(key, value) {\n var values = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n values[key] = value;\n this.updateValues(values);\n }\n\n /**\n * Update the values of multiple sliders\n * @private\n * @param {Range|number} values\n * @return {void}\n */\n }, {\n key: 'updateValues',\n value: function updateValues(values) {\n if (!this.shouldUpdate(values)) {\n return;\n }\n this.props.onChange(this.isMultiValue() ? values : values.max);\n }\n\n /**\n * Increment the value of a slider by key name\n * @private\n * @param {string} key\n * @return {void}\n */\n }, {\n key: 'incrementValue',\n value: function incrementValue(key) {\n var values = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n var value = values[key] + this.props.step;\n this.updateValue(key, value);\n }\n\n /**\n * Decrement the value of a slider by key name\n * @private\n * @param {string} key\n * @return {void}\n */\n }, {\n key: 'decrementValue',\n value: function decrementValue(key) {\n var values = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n var value = values[key] - this.props.step;\n this.updateValue(key, value);\n }\n\n /**\n * Listen to mouseup event\n * @private\n * @return {void}\n */\n }, {\n key: 'addDocumentMouseUpListener',\n value: function addDocumentMouseUpListener() {\n this.removeDocumentMouseUpListener();\n this.node.ownerDocument.addEventListener('mouseup', this.handleMouseUp);\n }\n\n /**\n * Listen to touchend event\n * @private\n * @return {void}\n */\n }, {\n key: 'addDocumentTouchEndListener',\n value: function addDocumentTouchEndListener() {\n this.removeDocumentTouchEndListener();\n this.node.ownerDocument.addEventListener('touchend', this.handleTouchEnd);\n }\n\n /**\n * Stop listening to mouseup event\n * @private\n * @return {void}\n */\n }, {\n key: 'removeDocumentMouseUpListener',\n value: function removeDocumentMouseUpListener() {\n this.node.ownerDocument.removeEventListener('mouseup', this.handleMouseUp);\n }\n\n /**\n * Stop listening to touchend event\n * @private\n * @return {void}\n */\n }, {\n key: 'removeDocumentTouchEndListener',\n value: function removeDocumentTouchEndListener() {\n this.node.ownerDocument.removeEventListener('touchend', this.handleTouchEnd);\n }\n\n /**\n * Handle any \"mousemove\" event received by the slider\n * @private\n * @param {SyntheticEvent} event\n * @param {string} key\n * @return {void}\n */\n }, {\n key: 'handleSliderDrag',\n value: function handleSliderDrag(event, key) {\n var _this2 = this;\n if (this.props.disabled) {\n return;\n }\n var position = valueTransformer.getPositionFromEvent(event, this.getTrackClientRect());\n this.isSliderDragging = true;\n requestAnimationFrame(function () {\n return _this2.updatePosition(key, position);\n });\n }\n\n /**\n * Handle any \"mousemove\" event received by the track\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n }, {\n key: 'handleTrackDrag',\n value: function handleTrackDrag(event, prevEvent) {\n if (this.props.disabled || !this.props.draggableTrack || this.isSliderDragging) {\n return;\n }\n var _props = this.props,\n maxValue = _props.maxValue,\n minValue = _props.minValue,\n _props$value = _props.value,\n max = _props$value.max,\n min = _props$value.min;\n var position = valueTransformer.getPositionFromEvent(event, this.getTrackClientRect());\n var value = valueTransformer.getValueFromPosition(position, minValue, maxValue, this.getTrackClientRect());\n var stepValue = valueTransformer.getStepValueFromValue(value, this.props.step);\n var prevPosition = valueTransformer.getPositionFromEvent(prevEvent, this.getTrackClientRect());\n var prevValue = valueTransformer.getValueFromPosition(prevPosition, minValue, maxValue, this.getTrackClientRect());\n var prevStepValue = valueTransformer.getStepValueFromValue(prevValue, this.props.step);\n var offset = prevStepValue - stepValue;\n var transformedValues = {\n min: min - offset,\n max: max - offset\n };\n this.updateValues(transformedValues);\n }\n\n /**\n * Handle any \"keydown\" event received by the slider\n * @private\n * @param {SyntheticEvent} event\n * @param {string} key\n * @return {void}\n */\n }, {\n key: 'handleSliderKeyDown',\n value: function handleSliderKeyDown(event, key) {\n if (this.props.disabled) {\n return;\n }\n switch (event.keyCode) {\n case _keyCodes.LEFT_ARROW:\n case _keyCodes.DOWN_ARROW:\n event.preventDefault();\n this.decrementValue(key);\n break;\n case _keyCodes.RIGHT_ARROW:\n case _keyCodes.UP_ARROW:\n event.preventDefault();\n this.incrementValue(key);\n break;\n default:\n break;\n }\n }\n\n /**\n * Handle any \"mousedown\" event received by the track\n * @private\n * @param {SyntheticEvent} event\n * @param {Point} position\n * @return {void}\n */\n }, {\n key: 'handleTrackMouseDown',\n value: function handleTrackMouseDown(event, position) {\n if (this.props.disabled) {\n return;\n }\n var _props2 = this.props,\n maxValue = _props2.maxValue,\n minValue = _props2.minValue,\n _props2$value = _props2.value,\n max = _props2$value.max,\n min = _props2$value.min;\n event.preventDefault();\n var value = valueTransformer.getValueFromPosition(position, minValue, maxValue, this.getTrackClientRect());\n var stepValue = valueTransformer.getStepValueFromValue(value, this.props.step);\n if (!this.props.draggableTrack || stepValue > max || stepValue < min) {\n this.updatePosition(this.getKeyByPosition(position), position);\n }\n }\n\n /**\n * Handle the start of any mouse/touch event\n * @private\n * @return {void}\n */\n }, {\n key: 'handleInteractionStart',\n value: function handleInteractionStart() {\n if (this.props.onChangeStart) {\n this.props.onChangeStart(this.props.value);\n }\n if (this.props.onChangeComplete && !(0, _utils.isDefined)(this.startValue)) {\n this.startValue = this.props.value;\n }\n }\n\n /**\n * Handle the end of any mouse/touch event\n * @private\n * @return {void}\n */\n }, {\n key: 'handleInteractionEnd',\n value: function handleInteractionEnd() {\n if (this.isSliderDragging) {\n this.isSliderDragging = false;\n }\n if (!this.props.onChangeComplete || !(0, _utils.isDefined)(this.startValue)) {\n return;\n }\n if (this.startValue !== this.props.value) {\n this.props.onChangeComplete(this.props.value);\n }\n this.startValue = null;\n }\n\n /**\n * Handle any \"keydown\" event received by the component\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n }, {\n key: 'handleKeyDown',\n value: function handleKeyDown(event) {\n this.handleInteractionStart(event);\n }\n\n /**\n * Handle any \"keyup\" event received by the component\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n }, {\n key: 'handleKeyUp',\n value: function handleKeyUp(event) {\n this.handleInteractionEnd(event);\n }\n\n /**\n * Handle any \"mousedown\" event received by the component\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n }, {\n key: 'handleMouseDown',\n value: function handleMouseDown(event) {\n this.handleInteractionStart(event);\n this.addDocumentMouseUpListener();\n }\n\n /**\n * Handle any \"mouseup\" event received by the component\n * @private\n * @param {SyntheticEvent} event\n */\n }, {\n key: 'handleMouseUp',\n value: function handleMouseUp(event) {\n this.handleInteractionEnd(event);\n this.removeDocumentMouseUpListener();\n }\n\n /**\n * Handle any \"touchstart\" event received by the component\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n }, {\n key: 'handleTouchStart',\n value: function handleTouchStart(event) {\n this.handleInteractionStart(event);\n this.addDocumentTouchEndListener();\n }\n\n /**\n * Handle any \"touchend\" event received by the component\n * @private\n * @param {SyntheticEvent} event\n */\n }, {\n key: 'handleTouchEnd',\n value: function handleTouchEnd(event) {\n this.handleInteractionEnd(event);\n this.removeDocumentTouchEndListener();\n }\n\n /**\n * Return JSX of sliders\n * @private\n * @return {JSX.Element}\n */\n }, {\n key: 'renderSliders',\n value: function renderSliders() {\n var _this3 = this;\n var values = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n var percentages = valueTransformer.getPercentagesFromValues(values, this.props.minValue, this.props.maxValue);\n var keys = this.props.allowSameValues && this.lastKeyMoved === 'min' ? this.getKeys().reverse() : this.getKeys();\n return keys.map(function (key) {\n var value = values[key];\n var percentage = percentages[key];\n var _props3 = _this3.props,\n maxValue = _props3.maxValue,\n minValue = _props3.minValue;\n if (key === 'min') {\n maxValue = values.max;\n } else {\n minValue = values.min;\n }\n var slider = _react2.default.createElement(_slider2.default, {\n ariaLabelledby: _this3.props.ariaLabelledby,\n ariaControls: _this3.props.ariaControls,\n classNames: _this3.props.classNames,\n formatLabel: _this3.props.formatLabel,\n key: key,\n maxValue: maxValue,\n minValue: minValue,\n onSliderDrag: _this3.handleSliderDrag,\n onSliderKeyDown: _this3.handleSliderKeyDown,\n percentage: percentage,\n type: key,\n value: value\n });\n return slider;\n });\n }\n\n /**\n * Return JSX of hidden inputs\n * @private\n * @return {JSX.Element}\n */\n }, {\n key: 'renderHiddenInputs',\n value: function renderHiddenInputs() {\n var _this4 = this;\n if (!this.props.name) {\n return [];\n }\n var isMultiValue = this.isMultiValue();\n var values = valueTransformer.getValueFromProps(this.props, isMultiValue);\n return this.getKeys().map(function (key) {\n var value = values[key];\n var name = isMultiValue ? '' + _this4.props.name + (0, _utils.captialize)(key) : _this4.props.name;\n return _react2.default.createElement('input', {\n key: key,\n type: 'hidden',\n name: name,\n value: value\n });\n });\n }\n\n /**\n * @ignore\n * @override\n * @return {JSX.Element}\n */\n }, {\n key: 'render',\n value: function render() {\n var _this5 = this;\n var componentClassName = this.getComponentClassName();\n var values = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n var percentages = valueTransformer.getPercentagesFromValues(values, this.props.minValue, this.props.maxValue);\n return _react2.default.createElement('div', {\n 'aria-disabled': this.props.disabled,\n ref: function ref(node) {\n _this5.node = node;\n },\n className: componentClassName,\n onKeyDown: this.handleKeyDown,\n onKeyUp: this.handleKeyUp,\n onMouseDown: this.handleMouseDown,\n onTouchStart: this.handleTouchStart\n }, _react2.default.createElement(_label2.default, {\n classNames: this.props.classNames,\n formatLabel: this.props.formatLabel,\n type: 'min'\n }, this.props.minValue), _react2.default.createElement(_track2.default, {\n classNames: this.props.classNames,\n draggableTrack: this.props.draggableTrack,\n ref: function ref(trackNode) {\n _this5.trackNode = trackNode;\n },\n percentages: percentages,\n onTrackDrag: this.handleTrackDrag,\n onTrackMouseDown: this.handleTrackMouseDown\n }, this.renderSliders()), _react2.default.createElement(_label2.default, {\n classNames: this.props.classNames,\n formatLabel: this.props.formatLabel,\n type: 'max'\n }, this.props.maxValue), this.renderHiddenInputs());\n }\n }]);\n return InputRange;\n}(_react2.default.Component), _applyDecoratedDescriptor(_class.prototype, 'handleSliderDrag', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleSliderDrag'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTrackDrag', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTrackDrag'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleSliderKeyDown', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleSliderKeyDown'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTrackMouseDown', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTrackMouseDown'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleInteractionStart', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleInteractionStart'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleInteractionEnd', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleInteractionEnd'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleKeyDown', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleKeyDown'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleKeyUp', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleKeyUp'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleMouseDown', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseDown'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleMouseUp', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseUp'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTouchStart', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTouchStart'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTouchEnd', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTouchEnd'), _class.prototype), _class);\nexports.default = InputRange;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nexports.getPercentageFromPosition = getPercentageFromPosition;\nexports.getValueFromPosition = getValueFromPosition;\nexports.getValueFromProps = getValueFromProps;\nexports.getPercentageFromValue = getPercentageFromValue;\nexports.getPercentagesFromValues = getPercentagesFromValues;\nexports.getPositionFromValue = getPositionFromValue;\nexports.getPositionsFromValues = getPositionsFromValues;\nexports.getPositionFromEvent = getPositionFromEvent;\nexports.getStepValueFromValue = getStepValueFromValue;\nvar _utils = require('../utils');\n\n/**\n * Convert a point into a percentage value\n * @ignore\n * @param {Point} position\n * @param {ClientRect} clientRect\n * @return {number} Percentage value\n */\nfunction getPercentageFromPosition(position, clientRect) {\n var length = clientRect.width;\n var sizePerc = position.x / length;\n return sizePerc || 0;\n}\n\n/**\n * Convert a point into a model value\n * @ignore\n * @param {Point} position\n * @param {number} minValue\n * @param {number} maxValue\n * @param {ClientRect} clientRect\n * @return {number}\n */\nfunction getValueFromPosition(position, minValue, maxValue, clientRect) {\n var sizePerc = getPercentageFromPosition(position, clientRect);\n var valueDiff = maxValue - minValue;\n return minValue + valueDiff * sizePerc;\n}\n\n/**\n * Convert props into a range value\n * @ignore\n * @param {Object} props\n * @param {boolean} isMultiValue\n * @return {Range}\n */\nfunction getValueFromProps(props, isMultiValue) {\n if (isMultiValue) {\n return _extends({}, props.value);\n }\n return {\n min: props.minValue,\n max: props.value\n };\n}\n\n/**\n * Convert a model value into a percentage value\n * @ignore\n * @param {number} value\n * @param {number} minValue\n * @param {number} maxValue\n * @return {number}\n */\nfunction getPercentageFromValue(value, minValue, maxValue) {\n var validValue = (0, _utils.clamp)(value, minValue, maxValue);\n var valueDiff = maxValue - minValue;\n var valuePerc = (validValue - minValue) / valueDiff;\n return valuePerc || 0;\n}\n\n/**\n * Convert model values into percentage values\n * @ignore\n * @param {Range} values\n * @param {number} minValue\n * @param {number} maxValue\n * @return {Range}\n */\nfunction getPercentagesFromValues(values, minValue, maxValue) {\n return {\n min: getPercentageFromValue(values.min, minValue, maxValue),\n max: getPercentageFromValue(values.max, minValue, maxValue)\n };\n}\n\n/**\n * Convert a value into a point\n * @ignore\n * @param {number} value\n * @param {number} minValue\n * @param {number} maxValue\n * @param {ClientRect} clientRect\n * @return {Point} Position\n */\nfunction getPositionFromValue(value, minValue, maxValue, clientRect) {\n var length = clientRect.width;\n var valuePerc = getPercentageFromValue(value, minValue, maxValue);\n var positionValue = valuePerc * length;\n return {\n x: positionValue,\n y: 0\n };\n}\n\n/**\n * Convert a range of values into points\n * @ignore\n * @param {Range} values\n * @param {number} minValue\n * @param {number} maxValue\n * @param {ClientRect} clientRect\n * @return {Range}\n */\nfunction getPositionsFromValues(values, minValue, maxValue, clientRect) {\n return {\n min: getPositionFromValue(values.min, minValue, maxValue, clientRect),\n max: getPositionFromValue(values.max, minValue, maxValue, clientRect)\n };\n}\n\n/**\n * Convert an event into a point\n * @ignore\n * @param {Event} event\n * @param {ClientRect} clientRect\n * @return {Point}\n */\nfunction getPositionFromEvent(event, clientRect) {\n var length = clientRect.width;\n var _ref = event.touches ? event.touches[0] : event,\n clientX = _ref.clientX;\n return {\n x: (0, _utils.clamp)(clientX - clientRect.left, 0, length),\n y: 0\n };\n}\n\n/**\n * Convert a value into a step value\n * @ignore\n * @param {number} value\n * @param {number} valuePerStep\n * @return {number}\n */\nfunction getStepValueFromValue(value, valuePerStep) {\n return Math.round(value / valuePerStep) * valuePerStep;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = captialize;\n/**\n * Captialize a string\n * @ignore\n * @param {string} string\n * @return {string}\n */\nfunction captialize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = clamp;\n/**\n * Clamp a value between a min and max value\n * @ignore\n * @param {number} value\n * @param {number} min\n * @param {number} max\n * @return {number}\n */\nfunction clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = distanceTo;\n/**\n * Calculate the distance between pointA and pointB\n * @ignore\n * @param {Point} pointA\n * @param {Point} pointB\n * @return {number} Distance\n */\nfunction distanceTo(pointA, pointB) {\n var xDiff = Math.pow(pointB.x - pointA.x, 2);\n var yDiff = Math.pow(pointB.y - pointA.y, 2);\n return Math.sqrt(xDiff + yDiff);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDefined;\n/**\n * Check if a value is defined\n * @ignore\n * @param {*} value\n * @return {boolean}\n */\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isNumber;\n/**\n * Check if a value is a number\n * @ignore\n * @param {*} value\n * @return {boolean}\n */\nfunction isNumber(value) {\n return typeof value === 'number';\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\nexports.default = isObject;\n/**\n * Check if a value is an object\n * @ignore\n * @param {*} value\n * @return {boolean}\n */\nfunction isObject(value) {\n return value !== null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object';\n}\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = length;\n/**\n * Calculate the absolute difference between two numbers\n * @ignore\n * @param {number} numA\n * @param {number} numB\n * @return {number}\n */\nfunction length(numA, numB) {\n return Math.abs(numA - numB);\n}\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Default CSS class names\n * @ignore\n * @type {InputRangeClassNames}\n */\nvar DEFAULT_CLASS_NAMES = {\n activeTrack: 'input-range__track input-range__track--active',\n disabledInputRange: 'input-range input-range--disabled',\n inputRange: 'input-range',\n labelContainer: 'input-range__label-container',\n maxLabel: 'input-range__label input-range__label--max',\n minLabel: 'input-range__label input-range__label--min',\n slider: 'input-range__slider',\n sliderContainer: 'input-range__slider-container',\n track: 'input-range__track input-range__track--background',\n valueLabel: 'input-range__label input-range__label--value'\n};\nexports.default = DEFAULT_CLASS_NAMES;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rangePropType;\nvar _utils = require('../utils');\n\n/**\n * @ignore\n * @param {Object} props - React component props\n * @return {?Error} Return Error if validation fails\n */\nfunction rangePropType(props) {\n var maxValue = props.maxValue,\n minValue = props.minValue;\n if (!(0, _utils.isNumber)(minValue) || !(0, _utils.isNumber)(maxValue)) {\n return new Error('\"minValue\" and \"maxValue\" must be a number');\n }\n if (minValue >= maxValue) {\n return new Error('\"minValue\" must be smaller than \"maxValue\"');\n }\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = valuePropType;\nvar _utils = require('../utils');\n\n/**\n * @ignore\n * @param {Object} props\n * @return {?Error} Return Error if validation fails\n */\nfunction valuePropType(props, propName) {\n var maxValue = props.maxValue,\n minValue = props.minValue;\n var value = props[propName];\n if (!(0, _utils.isNumber)(value) && (!(0, _utils.isObject)(value) || !(0, _utils.isNumber)(value.min) || !(0, _utils.isNumber)(value.max))) {\n return new Error('\"' + propName + '\" must be a number or a range object');\n }\n if ((0, _utils.isNumber)(value) && (value < minValue || value > maxValue)) {\n return new Error('\"' + propName + '\" must be in between \"minValue\" and \"maxValue\"');\n }\n if ((0, _utils.isObject)(value) && (value.min < minValue || value.min > maxValue || value.max < minValue || value.max > maxValue)) {\n return new Error('\"' + propName + '\" must be in between \"minValue\" and \"maxValue\"');\n }\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _desc, _value, _class;\nvar _react = require('react');\nvar _react2 = _interopRequireDefault(_react);\nvar _propTypes = require('prop-types');\nvar _propTypes2 = _interopRequireDefault(_propTypes);\nvar _autobindDecorator = require('autobind-decorator');\nvar _autobindDecorator2 = _interopRequireDefault(_autobindDecorator);\nvar _label = require('./label');\nvar _label2 = _interopRequireDefault(_label);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n return desc;\n}\n\n/**\n * @ignore\n */\nvar Slider = (_class = function (_React$Component) {\n _inherits(Slider, _React$Component);\n _createClass(Slider, null, [{\n key: 'propTypes',\n /**\n * Accepted propTypes of Slider\n * @override\n * @return {Object}\n * @property {Function} ariaLabelledby\n * @property {Function} ariaControls\n * @property {Function} className\n * @property {Function} formatLabel\n * @property {Function} maxValue\n * @property {Function} minValue\n * @property {Function} onSliderDrag\n * @property {Function} onSliderKeyDown\n * @property {Function} percentage\n * @property {Function} type\n * @property {Function} value\n */\n get: function get() {\n return {\n ariaLabelledby: _propTypes2.default.string,\n ariaControls: _propTypes2.default.string,\n classNames: _propTypes2.default.objectOf(_propTypes2.default.string).isRequired,\n formatLabel: _propTypes2.default.func,\n maxValue: _propTypes2.default.number,\n minValue: _propTypes2.default.number,\n onSliderDrag: _propTypes2.default.func.isRequired,\n onSliderKeyDown: _propTypes2.default.func.isRequired,\n percentage: _propTypes2.default.number.isRequired,\n type: _propTypes2.default.string.isRequired,\n value: _propTypes2.default.number.isRequired\n };\n }\n\n /**\n * @param {Object} props\n * @param {string} [props.ariaLabelledby]\n * @param {string} [props.ariaControls]\n * @param {InputRangeClassNames} props.classNames\n * @param {Function} [props.formatLabel]\n * @param {number} [props.maxValue]\n * @param {number} [props.minValue]\n * @param {Function} props.onSliderKeyDown\n * @param {Function} props.onSliderDrag\n * @param {number} props.percentage\n * @param {number} props.type\n * @param {number} props.value\n */\n }]);\n function Slider(props) {\n _classCallCheck(this, Slider);\n\n /**\n * @private\n * @type {?Component}\n */\n var _this = _possibleConstructorReturn(this, (Slider.__proto__ || Object.getPrototypeOf(Slider)).call(this, props));\n _this.node = null;\n return _this;\n }\n\n /**\n * @ignore\n * @override\n * @return {void}\n */\n\n _createClass(Slider, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.removeDocumentMouseMoveListener();\n this.removeDocumentMouseUpListener();\n this.removeDocumentTouchEndListener();\n this.removeDocumentTouchMoveListener();\n }\n\n /**\n * @private\n * @return {Object}\n */\n }, {\n key: 'getStyle',\n value: function getStyle() {\n var perc = (this.props.percentage || 0) * 100;\n var style = {\n position: 'absolute',\n left: perc + '%'\n };\n return style;\n }\n\n /**\n * Listen to mousemove event\n * @private\n * @return {void}\n */\n }, {\n key: 'addDocumentMouseMoveListener',\n value: function addDocumentMouseMoveListener() {\n this.removeDocumentMouseMoveListener();\n this.node.ownerDocument.addEventListener('mousemove', this.handleMouseMove);\n }\n\n /**\n * Listen to mouseup event\n * @private\n * @return {void}\n */\n }, {\n key: 'addDocumentMouseUpListener',\n value: function addDocumentMouseUpListener() {\n this.removeDocumentMouseUpListener();\n this.node.ownerDocument.addEventListener('mouseup', this.handleMouseUp);\n }\n\n /**\n * Listen to touchmove event\n * @private\n * @return {void}\n */\n }, {\n key: 'addDocumentTouchMoveListener',\n value: function addDocumentTouchMoveListener() {\n this.removeDocumentTouchMoveListener();\n this.node.ownerDocument.addEventListener('touchmove', this.handleTouchMove);\n }\n\n /**\n * Listen to touchend event\n * @private\n * @return {void}\n */\n }, {\n key: 'addDocumentTouchEndListener',\n value: function addDocumentTouchEndListener() {\n this.removeDocumentTouchEndListener();\n this.node.ownerDocument.addEventListener('touchend', this.handleTouchEnd);\n }\n\n /**\n * @private\n * @return {void}\n */\n }, {\n key: 'removeDocumentMouseMoveListener',\n value: function removeDocumentMouseMoveListener() {\n this.node.ownerDocument.removeEventListener('mousemove', this.handleMouseMove);\n }\n\n /**\n * @private\n * @return {void}\n */\n }, {\n key: 'removeDocumentMouseUpListener',\n value: function removeDocumentMouseUpListener() {\n this.node.ownerDocument.removeEventListener('mouseup', this.handleMouseUp);\n }\n\n /**\n * @private\n * @return {void}\n */\n }, {\n key: 'removeDocumentTouchMoveListener',\n value: function removeDocumentTouchMoveListener() {\n this.node.ownerDocument.removeEventListener('touchmove', this.handleTouchMove);\n }\n\n /**\n * @private\n * @return {void}\n */\n }, {\n key: 'removeDocumentTouchEndListener',\n value: function removeDocumentTouchEndListener() {\n this.node.ownerDocument.removeEventListener('touchend', this.handleTouchEnd);\n }\n\n /**\n * @private\n * @return {void}\n */\n }, {\n key: 'handleMouseDown',\n value: function handleMouseDown() {\n this.addDocumentMouseMoveListener();\n this.addDocumentMouseUpListener();\n }\n\n /**\n * @private\n * @return {void}\n */\n }, {\n key: 'handleMouseUp',\n value: function handleMouseUp() {\n this.removeDocumentMouseMoveListener();\n this.removeDocumentMouseUpListener();\n }\n\n /**\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n }, {\n key: 'handleMouseMove',\n value: function handleMouseMove(event) {\n this.props.onSliderDrag(event, this.props.type);\n }\n\n /**\n * @private\n * @return {void}\n */\n }, {\n key: 'handleTouchStart',\n value: function handleTouchStart() {\n this.addDocumentTouchEndListener();\n this.addDocumentTouchMoveListener();\n }\n\n /**\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n }, {\n key: 'handleTouchMove',\n value: function handleTouchMove(event) {\n this.props.onSliderDrag(event, this.props.type);\n }\n\n /**\n * @private\n * @return {void}\n */\n }, {\n key: 'handleTouchEnd',\n value: function handleTouchEnd() {\n this.removeDocumentTouchMoveListener();\n this.removeDocumentTouchEndListener();\n }\n\n /**\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n }, {\n key: 'handleKeyDown',\n value: function handleKeyDown(event) {\n this.props.onSliderKeyDown(event, this.props.type);\n }\n\n /**\n * @override\n * @return {JSX.Element}\n */\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n var style = this.getStyle();\n return _react2.default.createElement('span', {\n className: this.props.classNames.sliderContainer,\n ref: function ref(node) {\n _this2.node = node;\n },\n style: style\n }, _react2.default.createElement(_label2.default, {\n classNames: this.props.classNames,\n formatLabel: this.props.formatLabel,\n type: 'value'\n }, this.props.value), _react2.default.createElement('div', {\n 'aria-labelledby': this.props.ariaLabelledby,\n 'aria-controls': this.props.ariaControls,\n 'aria-valuemax': this.props.maxValue,\n 'aria-valuemin': this.props.minValue,\n 'aria-valuenow': this.props.value,\n className: this.props.classNames.slider,\n draggable: 'false',\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleMouseDown,\n onTouchStart: this.handleTouchStart,\n role: 'slider',\n tabIndex: '0'\n }));\n }\n }]);\n return Slider;\n}(_react2.default.Component), _applyDecoratedDescriptor(_class.prototype, 'handleMouseDown', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseDown'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleMouseUp', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseUp'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleMouseMove', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseMove'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTouchStart', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTouchStart'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTouchMove', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTouchMove'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTouchEnd', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTouchEnd'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleKeyDown', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleKeyDown'), _class.prototype), _class);\nexports.default = Slider;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _desc, _value, _class;\nvar _react = require('react');\nvar _react2 = _interopRequireDefault(_react);\nvar _propTypes = require('prop-types');\nvar _propTypes2 = _interopRequireDefault(_propTypes);\nvar _autobindDecorator = require('autobind-decorator');\nvar _autobindDecorator2 = _interopRequireDefault(_autobindDecorator);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n return desc;\n}\n\n/**\n * @ignore\n */\nvar Track = (_class = function (_React$Component) {\n _inherits(Track, _React$Component);\n _createClass(Track, null, [{\n key: 'propTypes',\n /**\n * @override\n * @return {Object}\n * @property {Function} children\n * @property {Function} classNames\n * @property {Boolean} draggableTrack\n * @property {Function} onTrackDrag\n * @property {Function} onTrackMouseDown\n * @property {Function} percentages\n */\n get: function get() {\n return {\n children: _propTypes2.default.node.isRequired,\n classNames: _propTypes2.default.objectOf(_propTypes2.default.string).isRequired,\n draggableTrack: _propTypes2.default.bool,\n onTrackDrag: _propTypes2.default.func,\n onTrackMouseDown: _propTypes2.default.func.isRequired,\n percentages: _propTypes2.default.objectOf(_propTypes2.default.number).isRequired\n };\n }\n\n /**\n * @param {Object} props\n * @param {InputRangeClassNames} props.classNames\n * @param {Boolean} props.draggableTrack\n * @param {Function} props.onTrackDrag\n * @param {Function} props.onTrackMouseDown\n * @param {number} props.percentages\n */\n }]);\n function Track(props) {\n _classCallCheck(this, Track);\n\n /**\n * @private\n * @type {?Component}\n */\n var _this = _possibleConstructorReturn(this, (Track.__proto__ || Object.getPrototypeOf(Track)).call(this, props));\n _this.node = null;\n _this.trackDragEvent = null;\n return _this;\n }\n\n /**\n * @private\n * @return {ClientRect}\n */\n\n _createClass(Track, [{\n key: 'getClientRect',\n value: function getClientRect() {\n return this.node.getBoundingClientRect();\n }\n\n /**\n * @private\n * @return {Object} CSS styles\n */\n }, {\n key: 'getActiveTrackStyle',\n value: function getActiveTrackStyle() {\n var width = (this.props.percentages.max - this.props.percentages.min) * 100 + '%';\n var left = this.props.percentages.min * 100 + '%';\n return {\n left: left,\n width: width\n };\n }\n\n /**\n * Listen to mousemove event\n * @private\n * @return {void}\n */\n }, {\n key: 'addDocumentMouseMoveListener',\n value: function addDocumentMouseMoveListener() {\n this.removeDocumentMouseMoveListener();\n this.node.ownerDocument.addEventListener('mousemove', this.handleMouseMove);\n }\n\n /**\n * Listen to mouseup event\n * @private\n * @return {void}\n */\n }, {\n key: 'addDocumentMouseUpListener',\n value: function addDocumentMouseUpListener() {\n this.removeDocumentMouseUpListener();\n this.node.ownerDocument.addEventListener('mouseup', this.handleMouseUp);\n }\n\n /**\n * @private\n * @return {void}\n */\n }, {\n key: 'removeDocumentMouseMoveListener',\n value: function removeDocumentMouseMoveListener() {\n this.node.ownerDocument.removeEventListener('mousemove', this.handleMouseMove);\n }\n\n /**\n * @private\n * @return {void}\n */\n }, {\n key: 'removeDocumentMouseUpListener',\n value: function removeDocumentMouseUpListener() {\n this.node.ownerDocument.removeEventListener('mouseup', this.handleMouseUp);\n }\n\n /**\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n }, {\n key: 'handleMouseMove',\n value: function handleMouseMove(event) {\n if (!this.props.draggableTrack) {\n return;\n }\n if (this.trackDragEvent !== null) {\n this.props.onTrackDrag(event, this.trackDragEvent);\n }\n this.trackDragEvent = event;\n }\n\n /**\n * @private\n * @return {void}\n */\n }, {\n key: 'handleMouseUp',\n value: function handleMouseUp() {\n if (!this.props.draggableTrack) {\n return;\n }\n this.removeDocumentMouseMoveListener();\n this.removeDocumentMouseUpListener();\n this.trackDragEvent = null;\n }\n\n /**\n * @private\n * @param {SyntheticEvent} event - User event\n */\n }, {\n key: 'handleMouseDown',\n value: function handleMouseDown(event) {\n var clientX = event.touches ? event.touches[0].clientX : event.clientX;\n var trackClientRect = this.getClientRect();\n var position = {\n x: clientX - trackClientRect.left,\n y: 0\n };\n this.props.onTrackMouseDown(event, position);\n if (this.props.draggableTrack) {\n this.addDocumentMouseMoveListener();\n this.addDocumentMouseUpListener();\n }\n }\n\n /**\n * @private\n * @param {SyntheticEvent} event - User event\n */\n }, {\n key: 'handleTouchStart',\n value: function handleTouchStart(event) {\n event.preventDefault();\n this.handleMouseDown(event);\n }\n\n /**\n * @override\n * @return {JSX.Element}\n */\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n var activeTrackStyle = this.getActiveTrackStyle();\n return _react2.default.createElement('div', {\n className: this.props.classNames.track,\n onMouseDown: this.handleMouseDown,\n onTouchStart: this.handleTouchStart,\n ref: function ref(node) {\n _this2.node = node;\n }\n }, _react2.default.createElement('div', {\n style: activeTrackStyle,\n className: this.props.classNames.activeTrack\n }), this.props.children);\n }\n }]);\n return Track;\n}(_react2.default.Component), _applyDecoratedDescriptor(_class.prototype, 'handleMouseMove', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseMove'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleMouseUp', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseUp'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleMouseDown', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseDown'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTouchStart', [_autobindDecorator2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTouchStart'), _class.prototype), _class);\nexports.default = Track;\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/** @ignore */\nvar DOWN_ARROW = exports.DOWN_ARROW = 40;\n\n/** @ignore */\nvar LEFT_ARROW = exports.LEFT_ARROW = 37;\n\n/** @ignore */\nvar RIGHT_ARROW = exports.RIGHT_ARROW = 39;\n\n/** @ignore */\nvar UP_ARROW = exports.UP_ARROW = 38;","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n default:\n return u;\n }\n }\n case d:\n return u;\n }\n }\n}\nfunction A(a) {\n return z(a) === m;\n}\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\nexports.isConcurrentMode = A;\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\nexports.isFragment = function (a) {\n return z(a) === e;\n};\nexports.isLazy = function (a) {\n return z(a) === t;\n};\nexports.isMemo = function (a) {\n return z(a) === r;\n};\nexports.isPortal = function (a) {\n return z(a) === d;\n};\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\nexports.typeOf = z;","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = 60103,\n c = 60106,\n d = 60107,\n e = 60108,\n f = 60114,\n g = 60109,\n h = 60110,\n k = 60112,\n l = 60113,\n m = 60120,\n n = 60115,\n p = 60116,\n q = 60121,\n r = 60122,\n u = 60117,\n v = 60129,\n w = 60131;\nif (\"function\" === typeof Symbol && Symbol.for) {\n var x = Symbol.for;\n b = x(\"react.element\");\n c = x(\"react.portal\");\n d = x(\"react.fragment\");\n e = x(\"react.strict_mode\");\n f = x(\"react.profiler\");\n g = x(\"react.provider\");\n h = x(\"react.context\");\n k = x(\"react.forward_ref\");\n l = x(\"react.suspense\");\n m = x(\"react.suspense_list\");\n n = x(\"react.memo\");\n p = x(\"react.lazy\");\n q = x(\"react.block\");\n r = x(\"react.server.block\");\n u = x(\"react.fundamental\");\n v = x(\"react.debug_trace_mode\");\n w = x(\"react.legacy_hidden\");\n}\nfunction y(a) {\n if (\"object\" === typeof a && null !== a) {\n var t = a.$$typeof;\n switch (t) {\n case b:\n switch (a = a.type, a) {\n case d:\n case f:\n case e:\n case l:\n case m:\n return a;\n default:\n switch (a = a && a.$$typeof, a) {\n case h:\n case k:\n case p:\n case n:\n case g:\n return a;\n default:\n return t;\n }\n }\n case c:\n return t;\n }\n }\n}\nvar z = g,\n A = b,\n B = k,\n C = d,\n D = p,\n E = n,\n F = c,\n G = f,\n H = e,\n I = l;\nexports.ContextConsumer = h;\nexports.ContextProvider = z;\nexports.Element = A;\nexports.ForwardRef = B;\nexports.Fragment = C;\nexports.Lazy = D;\nexports.Memo = E;\nexports.Portal = F;\nexports.Profiler = G;\nexports.StrictMode = H;\nexports.Suspense = I;\nexports.isAsyncMode = function () {\n return !1;\n};\nexports.isConcurrentMode = function () {\n return !1;\n};\nexports.isContextConsumer = function (a) {\n return y(a) === h;\n};\nexports.isContextProvider = function (a) {\n return y(a) === g;\n};\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === b;\n};\nexports.isForwardRef = function (a) {\n return y(a) === k;\n};\nexports.isFragment = function (a) {\n return y(a) === d;\n};\nexports.isLazy = function (a) {\n return y(a) === p;\n};\nexports.isMemo = function (a) {\n return y(a) === n;\n};\nexports.isPortal = function (a) {\n return y(a) === c;\n};\nexports.isProfiler = function (a) {\n return y(a) === f;\n};\nexports.isStrictMode = function (a) {\n return y(a) === e;\n};\nexports.isSuspense = function (a) {\n return y(a) === l;\n};\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === d || a === f || a === v || a === e || a === l || a === m || a === w || \"object\" === typeof a && null !== a && (a.$$typeof === p || a.$$typeof === n || a.$$typeof === g || a.$$typeof === h || a.$$typeof === k || a.$$typeof === u || a.$$typeof === q || a[0] === r) ? !0 : !1;\n};\nexports.typeOf = y;","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';\n\nvar aa = require(\"react\"),\n ca = require(\"scheduler\");\nfunction p(a) {\n for (var b = \"https://reactjs.org/docs/error-decoder.html?invariant=\" + a, c = 1; c < arguments.length; c++) b += \"&args[]=\" + encodeURIComponent(arguments[c]);\n return \"Minified React error #\" + a + \"; visit \" + b + \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";\n}\nvar da = new Set(),\n ea = {};\nfunction fa(a, b) {\n ha(a, b);\n ha(a + \"Capture\", b);\n}\nfunction ha(a, b) {\n ea[a] = b;\n for (a = 0; a < b.length; a++) da.add(b[a]);\n}\nvar ia = !(\"undefined\" === typeof window || \"undefined\" === typeof window.document || \"undefined\" === typeof window.document.createElement),\n ja = Object.prototype.hasOwnProperty,\n ka = /^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,\n la = {},\n ma = {};\nfunction oa(a) {\n if (ja.call(ma, a)) return !0;\n if (ja.call(la, a)) return !1;\n if (ka.test(a)) return ma[a] = !0;\n la[a] = !0;\n return !1;\n}\nfunction pa(a, b, c, d) {\n if (null !== c && 0 === c.type) return !1;\n switch (typeof b) {\n case \"function\":\n case \"symbol\":\n return !0;\n case \"boolean\":\n if (d) return !1;\n if (null !== c) return !c.acceptsBooleans;\n a = a.toLowerCase().slice(0, 5);\n return \"data-\" !== a && \"aria-\" !== a;\n default:\n return !1;\n }\n}\nfunction qa(a, b, c, d) {\n if (null === b || \"undefined\" === typeof b || pa(a, b, c, d)) return !0;\n if (d) return !1;\n if (null !== c) switch (c.type) {\n case 3:\n return !b;\n case 4:\n return !1 === b;\n case 5:\n return isNaN(b);\n case 6:\n return isNaN(b) || 1 > b;\n }\n return !1;\n}\nfunction v(a, b, c, d, e, f, g) {\n this.acceptsBooleans = 2 === b || 3 === b || 4 === b;\n this.attributeName = d;\n this.attributeNamespace = e;\n this.mustUseProperty = c;\n this.propertyName = a;\n this.type = b;\n this.sanitizeURL = f;\n this.removeEmptyString = g;\n}\nvar z = {};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function (a) {\n z[a] = new v(a, 0, !1, a, null, !1, !1);\n});\n[[\"acceptCharset\", \"accept-charset\"], [\"className\", \"class\"], [\"htmlFor\", \"for\"], [\"httpEquiv\", \"http-equiv\"]].forEach(function (a) {\n var b = a[0];\n z[b] = new v(b, 1, !1, a[1], null, !1, !1);\n});\n[\"contentEditable\", \"draggable\", \"spellCheck\", \"value\"].forEach(function (a) {\n z[a] = new v(a, 2, !1, a.toLowerCase(), null, !1, !1);\n});\n[\"autoReverse\", \"externalResourcesRequired\", \"focusable\", \"preserveAlpha\"].forEach(function (a) {\n z[a] = new v(a, 2, !1, a, null, !1, !1);\n});\n\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function (a) {\n z[a] = new v(a, 3, !1, a.toLowerCase(), null, !1, !1);\n});\n[\"checked\", \"multiple\", \"muted\", \"selected\"].forEach(function (a) {\n z[a] = new v(a, 3, !0, a, null, !1, !1);\n});\n[\"capture\", \"download\"].forEach(function (a) {\n z[a] = new v(a, 4, !1, a, null, !1, !1);\n});\n[\"cols\", \"rows\", \"size\", \"span\"].forEach(function (a) {\n z[a] = new v(a, 6, !1, a, null, !1, !1);\n});\n[\"rowSpan\", \"start\"].forEach(function (a) {\n z[a] = new v(a, 5, !1, a.toLowerCase(), null, !1, !1);\n});\nvar ra = /[\\-:]([a-z])/g;\nfunction sa(a) {\n return a[1].toUpperCase();\n}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function (a) {\n var b = a.replace(ra, sa);\n z[b] = new v(b, 1, !1, a, null, !1, !1);\n});\n\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function (a) {\n var b = a.replace(ra, sa);\n z[b] = new v(b, 1, !1, a, \"http://www.w3.org/1999/xlink\", !1, !1);\n});\n[\"xml:base\", \"xml:lang\", \"xml:space\"].forEach(function (a) {\n var b = a.replace(ra, sa);\n z[b] = new v(b, 1, !1, a, \"http://www.w3.org/XML/1998/namespace\", !1, !1);\n});\n[\"tabIndex\", \"crossOrigin\"].forEach(function (a) {\n z[a] = new v(a, 1, !1, a.toLowerCase(), null, !1, !1);\n});\nz.xlinkHref = new v(\"xlinkHref\", 1, !1, \"xlink:href\", \"http://www.w3.org/1999/xlink\", !0, !1);\n[\"src\", \"href\", \"action\", \"formAction\"].forEach(function (a) {\n z[a] = new v(a, 1, !1, a.toLowerCase(), null, !0, !0);\n});\nfunction ta(a, b, c, d) {\n var e = z.hasOwnProperty(b) ? z[b] : null;\n if (null !== e ? 0 !== e.type : d || !(2 < b.length) || \"o\" !== b[0] && \"O\" !== b[0] || \"n\" !== b[1] && \"N\" !== b[1]) qa(b, c, e, d) && (c = null), d || null === e ? oa(b) && (null === c ? a.removeAttribute(b) : a.setAttribute(b, \"\" + c)) : e.mustUseProperty ? a[e.propertyName] = null === c ? 3 === e.type ? !1 : \"\" : c : (b = e.attributeName, d = e.attributeNamespace, null === c ? a.removeAttribute(b) : (e = e.type, c = 3 === e || 4 === e && !0 === c ? \"\" : \"\" + c, d ? a.setAttributeNS(d, b, c) : a.setAttribute(b, c)));\n}\nvar ua = aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,\n va = Symbol.for(\"react.element\"),\n wa = Symbol.for(\"react.portal\"),\n ya = Symbol.for(\"react.fragment\"),\n za = Symbol.for(\"react.strict_mode\"),\n Aa = Symbol.for(\"react.profiler\"),\n Ba = Symbol.for(\"react.provider\"),\n Ca = Symbol.for(\"react.context\"),\n Da = Symbol.for(\"react.forward_ref\"),\n Ea = Symbol.for(\"react.suspense\"),\n Fa = Symbol.for(\"react.suspense_list\"),\n Ga = Symbol.for(\"react.memo\"),\n Ha = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nSymbol.for(\"react.debug_trace_mode\");\nvar Ia = Symbol.for(\"react.offscreen\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.cache\");\nSymbol.for(\"react.tracing_marker\");\nvar Ja = Symbol.iterator;\nfunction Ka(a) {\n if (null === a || \"object\" !== typeof a) return null;\n a = Ja && a[Ja] || a[\"@@iterator\"];\n return \"function\" === typeof a ? a : null;\n}\nvar A = Object.assign,\n La;\nfunction Ma(a) {\n if (void 0 === La) try {\n throw Error();\n } catch (c) {\n var b = c.stack.trim().match(/\\n( *(at )?)/);\n La = b && b[1] || \"\";\n }\n return \"\\n\" + La + a;\n}\nvar Na = !1;\nfunction Oa(a, b) {\n if (!a || Na) return \"\";\n Na = !0;\n var c = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n if (b) {\n if (b = function () {\n throw Error();\n }, Object.defineProperty(b.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n }), \"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(b, []);\n } catch (l) {\n var d = l;\n }\n Reflect.construct(a, [], b);\n } else {\n try {\n b.call();\n } catch (l) {\n d = l;\n }\n a.call(b.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (l) {\n d = l;\n }\n a();\n }\n } catch (l) {\n if (l && d && \"string\" === typeof l.stack) {\n for (var e = l.stack.split(\"\\n\"), f = d.stack.split(\"\\n\"), g = e.length - 1, h = f.length - 1; 1 <= g && 0 <= h && e[g] !== f[h];) h--;\n for (; 1 <= g && 0 <= h; g--, h--) if (e[g] !== f[h]) {\n if (1 !== g || 1 !== h) {\n do if (g--, h--, 0 > h || e[g] !== f[h]) {\n var k = \"\\n\" + e[g].replace(\" at new \", \" at \");\n a.displayName && k.includes(\"<anonymous>\") && (k = k.replace(\"<anonymous>\", a.displayName));\n return k;\n } while (1 <= g && 0 <= h);\n }\n break;\n }\n }\n } finally {\n Na = !1, Error.prepareStackTrace = c;\n }\n return (a = a ? a.displayName || a.name : \"\") ? Ma(a) : \"\";\n}\nfunction Pa(a) {\n switch (a.tag) {\n case 5:\n return Ma(a.type);\n case 16:\n return Ma(\"Lazy\");\n case 13:\n return Ma(\"Suspense\");\n case 19:\n return Ma(\"SuspenseList\");\n case 0:\n case 2:\n case 15:\n return a = Oa(a.type, !1), a;\n case 11:\n return a = Oa(a.type.render, !1), a;\n case 1:\n return a = Oa(a.type, !0), a;\n default:\n return \"\";\n }\n}\nfunction Qa(a) {\n if (null == a) return null;\n if (\"function\" === typeof a) return a.displayName || a.name || null;\n if (\"string\" === typeof a) return a;\n switch (a) {\n case ya:\n return \"Fragment\";\n case wa:\n return \"Portal\";\n case Aa:\n return \"Profiler\";\n case za:\n return \"StrictMode\";\n case Ea:\n return \"Suspense\";\n case Fa:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof a) switch (a.$$typeof) {\n case Ca:\n return (a.displayName || \"Context\") + \".Consumer\";\n case Ba:\n return (a._context.displayName || \"Context\") + \".Provider\";\n case Da:\n var b = a.render;\n a = a.displayName;\n a || (a = b.displayName || b.name || \"\", a = \"\" !== a ? \"ForwardRef(\" + a + \")\" : \"ForwardRef\");\n return a;\n case Ga:\n return b = a.displayName || null, null !== b ? b : Qa(a.type) || \"Memo\";\n case Ha:\n b = a._payload;\n a = a._init;\n try {\n return Qa(a(b));\n } catch (c) {}\n }\n return null;\n}\nfunction Ra(a) {\n var b = a.type;\n switch (a.tag) {\n case 24:\n return \"Cache\";\n case 9:\n return (b.displayName || \"Context\") + \".Consumer\";\n case 10:\n return (b._context.displayName || \"Context\") + \".Provider\";\n case 18:\n return \"DehydratedFragment\";\n case 11:\n return a = b.render, a = a.displayName || a.name || \"\", b.displayName || (\"\" !== a ? \"ForwardRef(\" + a + \")\" : \"ForwardRef\");\n case 7:\n return \"Fragment\";\n case 5:\n return b;\n case 4:\n return \"Portal\";\n case 3:\n return \"Root\";\n case 6:\n return \"Text\";\n case 16:\n return Qa(b);\n case 8:\n return b === za ? \"StrictMode\" : \"Mode\";\n case 22:\n return \"Offscreen\";\n case 12:\n return \"Profiler\";\n case 21:\n return \"Scope\";\n case 13:\n return \"Suspense\";\n case 19:\n return \"SuspenseList\";\n case 25:\n return \"TracingMarker\";\n case 1:\n case 0:\n case 17:\n case 2:\n case 14:\n case 15:\n if (\"function\" === typeof b) return b.displayName || b.name || null;\n if (\"string\" === typeof b) return b;\n }\n return null;\n}\nfunction Sa(a) {\n switch (typeof a) {\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return a;\n case \"object\":\n return a;\n default:\n return \"\";\n }\n}\nfunction Ta(a) {\n var b = a.type;\n return (a = a.nodeName) && \"input\" === a.toLowerCase() && (\"checkbox\" === b || \"radio\" === b);\n}\nfunction Ua(a) {\n var b = Ta(a) ? \"checked\" : \"value\",\n c = Object.getOwnPropertyDescriptor(a.constructor.prototype, b),\n d = \"\" + a[b];\n if (!a.hasOwnProperty(b) && \"undefined\" !== typeof c && \"function\" === typeof c.get && \"function\" === typeof c.set) {\n var e = c.get,\n f = c.set;\n Object.defineProperty(a, b, {\n configurable: !0,\n get: function () {\n return e.call(this);\n },\n set: function (a) {\n d = \"\" + a;\n f.call(this, a);\n }\n });\n Object.defineProperty(a, b, {\n enumerable: c.enumerable\n });\n return {\n getValue: function () {\n return d;\n },\n setValue: function (a) {\n d = \"\" + a;\n },\n stopTracking: function () {\n a._valueTracker = null;\n delete a[b];\n }\n };\n }\n}\nfunction Va(a) {\n a._valueTracker || (a._valueTracker = Ua(a));\n}\nfunction Wa(a) {\n if (!a) return !1;\n var b = a._valueTracker;\n if (!b) return !0;\n var c = b.getValue();\n var d = \"\";\n a && (d = Ta(a) ? a.checked ? \"true\" : \"false\" : a.value);\n a = d;\n return a !== c ? (b.setValue(a), !0) : !1;\n}\nfunction Xa(a) {\n a = a || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof a) return null;\n try {\n return a.activeElement || a.body;\n } catch (b) {\n return a.body;\n }\n}\nfunction Ya(a, b) {\n var c = b.checked;\n return A({}, b, {\n defaultChecked: void 0,\n defaultValue: void 0,\n value: void 0,\n checked: null != c ? c : a._wrapperState.initialChecked\n });\n}\nfunction Za(a, b) {\n var c = null == b.defaultValue ? \"\" : b.defaultValue,\n d = null != b.checked ? b.checked : b.defaultChecked;\n c = Sa(null != b.value ? b.value : c);\n a._wrapperState = {\n initialChecked: d,\n initialValue: c,\n controlled: \"checkbox\" === b.type || \"radio\" === b.type ? null != b.checked : null != b.value\n };\n}\nfunction ab(a, b) {\n b = b.checked;\n null != b && ta(a, \"checked\", b, !1);\n}\nfunction bb(a, b) {\n ab(a, b);\n var c = Sa(b.value),\n d = b.type;\n if (null != c) {\n if (\"number\" === d) {\n if (0 === c && \"\" === a.value || a.value != c) a.value = \"\" + c;\n } else a.value !== \"\" + c && (a.value = \"\" + c);\n } else if (\"submit\" === d || \"reset\" === d) {\n a.removeAttribute(\"value\");\n return;\n }\n b.hasOwnProperty(\"value\") ? cb(a, b.type, c) : b.hasOwnProperty(\"defaultValue\") && cb(a, b.type, Sa(b.defaultValue));\n null == b.checked && null != b.defaultChecked && (a.defaultChecked = !!b.defaultChecked);\n}\nfunction db(a, b, c) {\n if (b.hasOwnProperty(\"value\") || b.hasOwnProperty(\"defaultValue\")) {\n var d = b.type;\n if (!(\"submit\" !== d && \"reset\" !== d || void 0 !== b.value && null !== b.value)) return;\n b = \"\" + a._wrapperState.initialValue;\n c || b === a.value || (a.value = b);\n a.defaultValue = b;\n }\n c = a.name;\n \"\" !== c && (a.name = \"\");\n a.defaultChecked = !!a._wrapperState.initialChecked;\n \"\" !== c && (a.name = c);\n}\nfunction cb(a, b, c) {\n if (\"number\" !== b || Xa(a.ownerDocument) !== a) null == c ? a.defaultValue = \"\" + a._wrapperState.initialValue : a.defaultValue !== \"\" + c && (a.defaultValue = \"\" + c);\n}\nvar eb = Array.isArray;\nfunction fb(a, b, c, d) {\n a = a.options;\n if (b) {\n b = {};\n for (var e = 0; e < c.length; e++) b[\"$\" + c[e]] = !0;\n for (c = 0; c < a.length; c++) e = b.hasOwnProperty(\"$\" + a[c].value), a[c].selected !== e && (a[c].selected = e), e && d && (a[c].defaultSelected = !0);\n } else {\n c = \"\" + Sa(c);\n b = null;\n for (e = 0; e < a.length; e++) {\n if (a[e].value === c) {\n a[e].selected = !0;\n d && (a[e].defaultSelected = !0);\n return;\n }\n null !== b || a[e].disabled || (b = a[e]);\n }\n null !== b && (b.selected = !0);\n }\n}\nfunction gb(a, b) {\n if (null != b.dangerouslySetInnerHTML) throw Error(p(91));\n return A({}, b, {\n value: void 0,\n defaultValue: void 0,\n children: \"\" + a._wrapperState.initialValue\n });\n}\nfunction hb(a, b) {\n var c = b.value;\n if (null == c) {\n c = b.children;\n b = b.defaultValue;\n if (null != c) {\n if (null != b) throw Error(p(92));\n if (eb(c)) {\n if (1 < c.length) throw Error(p(93));\n c = c[0];\n }\n b = c;\n }\n null == b && (b = \"\");\n c = b;\n }\n a._wrapperState = {\n initialValue: Sa(c)\n };\n}\nfunction ib(a, b) {\n var c = Sa(b.value),\n d = Sa(b.defaultValue);\n null != c && (c = \"\" + c, c !== a.value && (a.value = c), null == b.defaultValue && a.defaultValue !== c && (a.defaultValue = c));\n null != d && (a.defaultValue = \"\" + d);\n}\nfunction jb(a) {\n var b = a.textContent;\n b === a._wrapperState.initialValue && \"\" !== b && null !== b && (a.value = b);\n}\nfunction kb(a) {\n switch (a) {\n case \"svg\":\n return \"http://www.w3.org/2000/svg\";\n case \"math\":\n return \"http://www.w3.org/1998/Math/MathML\";\n default:\n return \"http://www.w3.org/1999/xhtml\";\n }\n}\nfunction lb(a, b) {\n return null == a || \"http://www.w3.org/1999/xhtml\" === a ? kb(b) : \"http://www.w3.org/2000/svg\" === a && \"foreignObject\" === b ? \"http://www.w3.org/1999/xhtml\" : a;\n}\nvar mb,\n nb = function (a) {\n return \"undefined\" !== typeof MSApp && MSApp.execUnsafeLocalFunction ? function (b, c, d, e) {\n MSApp.execUnsafeLocalFunction(function () {\n return a(b, c, d, e);\n });\n } : a;\n }(function (a, b) {\n if (\"http://www.w3.org/2000/svg\" !== a.namespaceURI || \"innerHTML\" in a) a.innerHTML = b;else {\n mb = mb || document.createElement(\"div\");\n mb.innerHTML = \"<svg>\" + b.valueOf().toString() + \"</svg>\";\n for (b = mb.firstChild; a.firstChild;) a.removeChild(a.firstChild);\n for (; b.firstChild;) a.appendChild(b.firstChild);\n }\n });\nfunction ob(a, b) {\n if (b) {\n var c = a.firstChild;\n if (c && c === a.lastChild && 3 === c.nodeType) {\n c.nodeValue = b;\n return;\n }\n }\n a.textContent = b;\n}\nvar pb = {\n animationIterationCount: !0,\n aspectRatio: !0,\n borderImageOutset: !0,\n borderImageSlice: !0,\n borderImageWidth: !0,\n boxFlex: !0,\n boxFlexGroup: !0,\n boxOrdinalGroup: !0,\n columnCount: !0,\n columns: !0,\n flex: !0,\n flexGrow: !0,\n flexPositive: !0,\n flexShrink: !0,\n flexNegative: !0,\n flexOrder: !0,\n gridArea: !0,\n gridRow: !0,\n gridRowEnd: !0,\n gridRowSpan: !0,\n gridRowStart: !0,\n gridColumn: !0,\n gridColumnEnd: !0,\n gridColumnSpan: !0,\n gridColumnStart: !0,\n fontWeight: !0,\n lineClamp: !0,\n lineHeight: !0,\n opacity: !0,\n order: !0,\n orphans: !0,\n tabSize: !0,\n widows: !0,\n zIndex: !0,\n zoom: !0,\n fillOpacity: !0,\n floodOpacity: !0,\n stopOpacity: !0,\n strokeDasharray: !0,\n strokeDashoffset: !0,\n strokeMiterlimit: !0,\n strokeOpacity: !0,\n strokeWidth: !0\n },\n qb = [\"Webkit\", \"ms\", \"Moz\", \"O\"];\nObject.keys(pb).forEach(function (a) {\n qb.forEach(function (b) {\n b = b + a.charAt(0).toUpperCase() + a.substring(1);\n pb[b] = pb[a];\n });\n});\nfunction rb(a, b, c) {\n return null == b || \"boolean\" === typeof b || \"\" === b ? \"\" : c || \"number\" !== typeof b || 0 === b || pb.hasOwnProperty(a) && pb[a] ? (\"\" + b).trim() : b + \"px\";\n}\nfunction sb(a, b) {\n a = a.style;\n for (var c in b) if (b.hasOwnProperty(c)) {\n var d = 0 === c.indexOf(\"--\"),\n e = rb(c, b[c], d);\n \"float\" === c && (c = \"cssFloat\");\n d ? a.setProperty(c, e) : a[c] = e;\n }\n}\nvar tb = A({\n menuitem: !0\n}, {\n area: !0,\n base: !0,\n br: !0,\n col: !0,\n embed: !0,\n hr: !0,\n img: !0,\n input: !0,\n keygen: !0,\n link: !0,\n meta: !0,\n param: !0,\n source: !0,\n track: !0,\n wbr: !0\n});\nfunction ub(a, b) {\n if (b) {\n if (tb[a] && (null != b.children || null != b.dangerouslySetInnerHTML)) throw Error(p(137, a));\n if (null != b.dangerouslySetInnerHTML) {\n if (null != b.children) throw Error(p(60));\n if (\"object\" !== typeof b.dangerouslySetInnerHTML || !(\"__html\" in b.dangerouslySetInnerHTML)) throw Error(p(61));\n }\n if (null != b.style && \"object\" !== typeof b.style) throw Error(p(62));\n }\n}\nfunction vb(a, b) {\n if (-1 === a.indexOf(\"-\")) return \"string\" === typeof b.is;\n switch (a) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar wb = null;\nfunction xb(a) {\n a = a.target || a.srcElement || window;\n a.correspondingUseElement && (a = a.correspondingUseElement);\n return 3 === a.nodeType ? a.parentNode : a;\n}\nvar yb = null,\n zb = null,\n Ab = null;\nfunction Bb(a) {\n if (a = Cb(a)) {\n if (\"function\" !== typeof yb) throw Error(p(280));\n var b = a.stateNode;\n b && (b = Db(b), yb(a.stateNode, a.type, b));\n }\n}\nfunction Eb(a) {\n zb ? Ab ? Ab.push(a) : Ab = [a] : zb = a;\n}\nfunction Fb() {\n if (zb) {\n var a = zb,\n b = Ab;\n Ab = zb = null;\n Bb(a);\n if (b) for (a = 0; a < b.length; a++) Bb(b[a]);\n }\n}\nfunction Gb(a, b) {\n return a(b);\n}\nfunction Hb() {}\nvar Ib = !1;\nfunction Jb(a, b, c) {\n if (Ib) return a(b, c);\n Ib = !0;\n try {\n return Gb(a, b, c);\n } finally {\n if (Ib = !1, null !== zb || null !== Ab) Hb(), Fb();\n }\n}\nfunction Kb(a, b) {\n var c = a.stateNode;\n if (null === c) return null;\n var d = Db(c);\n if (null === d) return null;\n c = d[b];\n a: switch (b) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (d = !d.disabled) || (a = a.type, d = !(\"button\" === a || \"input\" === a || \"select\" === a || \"textarea\" === a));\n a = !d;\n break a;\n default:\n a = !1;\n }\n if (a) return null;\n if (c && \"function\" !== typeof c) throw Error(p(231, b, typeof c));\n return c;\n}\nvar Lb = !1;\nif (ia) try {\n var Mb = {};\n Object.defineProperty(Mb, \"passive\", {\n get: function () {\n Lb = !0;\n }\n });\n window.addEventListener(\"test\", Mb, Mb);\n window.removeEventListener(\"test\", Mb, Mb);\n} catch (a) {\n Lb = !1;\n}\nfunction Nb(a, b, c, d, e, f, g, h, k) {\n var l = Array.prototype.slice.call(arguments, 3);\n try {\n b.apply(c, l);\n } catch (m) {\n this.onError(m);\n }\n}\nvar Ob = !1,\n Pb = null,\n Qb = !1,\n Rb = null,\n Sb = {\n onError: function (a) {\n Ob = !0;\n Pb = a;\n }\n };\nfunction Tb(a, b, c, d, e, f, g, h, k) {\n Ob = !1;\n Pb = null;\n Nb.apply(Sb, arguments);\n}\nfunction Ub(a, b, c, d, e, f, g, h, k) {\n Tb.apply(this, arguments);\n if (Ob) {\n if (Ob) {\n var l = Pb;\n Ob = !1;\n Pb = null;\n } else throw Error(p(198));\n Qb || (Qb = !0, Rb = l);\n }\n}\nfunction Vb(a) {\n var b = a,\n c = a;\n if (a.alternate) for (; b.return;) b = b.return;else {\n a = b;\n do b = a, 0 !== (b.flags & 4098) && (c = b.return), a = b.return; while (a);\n }\n return 3 === b.tag ? c : null;\n}\nfunction Wb(a) {\n if (13 === a.tag) {\n var b = a.memoizedState;\n null === b && (a = a.alternate, null !== a && (b = a.memoizedState));\n if (null !== b) return b.dehydrated;\n }\n return null;\n}\nfunction Xb(a) {\n if (Vb(a) !== a) throw Error(p(188));\n}\nfunction Yb(a) {\n var b = a.alternate;\n if (!b) {\n b = Vb(a);\n if (null === b) throw Error(p(188));\n return b !== a ? null : a;\n }\n for (var c = a, d = b;;) {\n var e = c.return;\n if (null === e) break;\n var f = e.alternate;\n if (null === f) {\n d = e.return;\n if (null !== d) {\n c = d;\n continue;\n }\n break;\n }\n if (e.child === f.child) {\n for (f = e.child; f;) {\n if (f === c) return Xb(e), a;\n if (f === d) return Xb(e), b;\n f = f.sibling;\n }\n throw Error(p(188));\n }\n if (c.return !== d.return) c = e, d = f;else {\n for (var g = !1, h = e.child; h;) {\n if (h === c) {\n g = !0;\n c = e;\n d = f;\n break;\n }\n if (h === d) {\n g = !0;\n d = e;\n c = f;\n break;\n }\n h = h.sibling;\n }\n if (!g) {\n for (h = f.child; h;) {\n if (h === c) {\n g = !0;\n c = f;\n d = e;\n break;\n }\n if (h === d) {\n g = !0;\n d = f;\n c = e;\n break;\n }\n h = h.sibling;\n }\n if (!g) throw Error(p(189));\n }\n }\n if (c.alternate !== d) throw Error(p(190));\n }\n if (3 !== c.tag) throw Error(p(188));\n return c.stateNode.current === c ? a : b;\n}\nfunction Zb(a) {\n a = Yb(a);\n return null !== a ? $b(a) : null;\n}\nfunction $b(a) {\n if (5 === a.tag || 6 === a.tag) return a;\n for (a = a.child; null !== a;) {\n var b = $b(a);\n if (null !== b) return b;\n a = a.sibling;\n }\n return null;\n}\nvar ac = ca.unstable_scheduleCallback,\n bc = ca.unstable_cancelCallback,\n cc = ca.unstable_shouldYield,\n dc = ca.unstable_requestPaint,\n B = ca.unstable_now,\n ec = ca.unstable_getCurrentPriorityLevel,\n fc = ca.unstable_ImmediatePriority,\n gc = ca.unstable_UserBlockingPriority,\n hc = ca.unstable_NormalPriority,\n ic = ca.unstable_LowPriority,\n jc = ca.unstable_IdlePriority,\n kc = null,\n lc = null;\nfunction mc(a) {\n if (lc && \"function\" === typeof lc.onCommitFiberRoot) try {\n lc.onCommitFiberRoot(kc, a, void 0, 128 === (a.current.flags & 128));\n } catch (b) {}\n}\nvar oc = Math.clz32 ? Math.clz32 : nc,\n pc = Math.log,\n qc = Math.LN2;\nfunction nc(a) {\n a >>>= 0;\n return 0 === a ? 32 : 31 - (pc(a) / qc | 0) | 0;\n}\nvar rc = 64,\n sc = 4194304;\nfunction tc(a) {\n switch (a & -a) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return a & 4194240;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return a & 130023424;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 1073741824;\n default:\n return a;\n }\n}\nfunction uc(a, b) {\n var c = a.pendingLanes;\n if (0 === c) return 0;\n var d = 0,\n e = a.suspendedLanes,\n f = a.pingedLanes,\n g = c & 268435455;\n if (0 !== g) {\n var h = g & ~e;\n 0 !== h ? d = tc(h) : (f &= g, 0 !== f && (d = tc(f)));\n } else g = c & ~e, 0 !== g ? d = tc(g) : 0 !== f && (d = tc(f));\n if (0 === d) return 0;\n if (0 !== b && b !== d && 0 === (b & e) && (e = d & -d, f = b & -b, e >= f || 16 === e && 0 !== (f & 4194240))) return b;\n 0 !== (d & 4) && (d |= c & 16);\n b = a.entangledLanes;\n if (0 !== b) for (a = a.entanglements, b &= d; 0 < b;) c = 31 - oc(b), e = 1 << c, d |= a[c], b &= ~e;\n return d;\n}\nfunction vc(a, b) {\n switch (a) {\n case 1:\n case 2:\n case 4:\n return b + 250;\n case 8:\n case 16:\n case 32:\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return b + 5E3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return -1;\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction wc(a, b) {\n for (var c = a.suspendedLanes, d = a.pingedLanes, e = a.expirationTimes, f = a.pendingLanes; 0 < f;) {\n var g = 31 - oc(f),\n h = 1 << g,\n k = e[g];\n if (-1 === k) {\n if (0 === (h & c) || 0 !== (h & d)) e[g] = vc(h, b);\n } else k <= b && (a.expiredLanes |= h);\n f &= ~h;\n }\n}\nfunction xc(a) {\n a = a.pendingLanes & -1073741825;\n return 0 !== a ? a : a & 1073741824 ? 1073741824 : 0;\n}\nfunction yc() {\n var a = rc;\n rc <<= 1;\n 0 === (rc & 4194240) && (rc = 64);\n return a;\n}\nfunction zc(a) {\n for (var b = [], c = 0; 31 > c; c++) b.push(a);\n return b;\n}\nfunction Ac(a, b, c) {\n a.pendingLanes |= b;\n 536870912 !== b && (a.suspendedLanes = 0, a.pingedLanes = 0);\n a = a.eventTimes;\n b = 31 - oc(b);\n a[b] = c;\n}\nfunction Bc(a, b) {\n var c = a.pendingLanes & ~b;\n a.pendingLanes = b;\n a.suspendedLanes = 0;\n a.pingedLanes = 0;\n a.expiredLanes &= b;\n a.mutableReadLanes &= b;\n a.entangledLanes &= b;\n b = a.entanglements;\n var d = a.eventTimes;\n for (a = a.expirationTimes; 0 < c;) {\n var e = 31 - oc(c),\n f = 1 << e;\n b[e] = 0;\n d[e] = -1;\n a[e] = -1;\n c &= ~f;\n }\n}\nfunction Cc(a, b) {\n var c = a.entangledLanes |= b;\n for (a = a.entanglements; c;) {\n var d = 31 - oc(c),\n e = 1 << d;\n e & b | a[d] & b && (a[d] |= b);\n c &= ~e;\n }\n}\nvar C = 0;\nfunction Dc(a) {\n a &= -a;\n return 1 < a ? 4 < a ? 0 !== (a & 268435455) ? 16 : 536870912 : 4 : 1;\n}\nvar Ec,\n Fc,\n Gc,\n Hc,\n Ic,\n Jc = !1,\n Kc = [],\n Lc = null,\n Mc = null,\n Nc = null,\n Oc = new Map(),\n Pc = new Map(),\n Qc = [],\n Rc = \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a, b) {\n switch (a) {\n case \"focusin\":\n case \"focusout\":\n Lc = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n Mc = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n Nc = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n Oc.delete(b.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n Pc.delete(b.pointerId);\n }\n}\nfunction Tc(a, b, c, d, e, f) {\n if (null === a || a.nativeEvent !== f) return a = {\n blockedOn: b,\n domEventName: c,\n eventSystemFlags: d,\n nativeEvent: f,\n targetContainers: [e]\n }, null !== b && (b = Cb(b), null !== b && Fc(b)), a;\n a.eventSystemFlags |= d;\n b = a.targetContainers;\n null !== e && -1 === b.indexOf(e) && b.push(e);\n return a;\n}\nfunction Uc(a, b, c, d, e) {\n switch (b) {\n case \"focusin\":\n return Lc = Tc(Lc, a, b, c, d, e), !0;\n case \"dragenter\":\n return Mc = Tc(Mc, a, b, c, d, e), !0;\n case \"mouseover\":\n return Nc = Tc(Nc, a, b, c, d, e), !0;\n case \"pointerover\":\n var f = e.pointerId;\n Oc.set(f, Tc(Oc.get(f) || null, a, b, c, d, e));\n return !0;\n case \"gotpointercapture\":\n return f = e.pointerId, Pc.set(f, Tc(Pc.get(f) || null, a, b, c, d, e)), !0;\n }\n return !1;\n}\nfunction Vc(a) {\n var b = Wc(a.target);\n if (null !== b) {\n var c = Vb(b);\n if (null !== c) if (b = c.tag, 13 === b) {\n if (b = Wb(c), null !== b) {\n a.blockedOn = b;\n Ic(a.priority, function () {\n Gc(c);\n });\n return;\n }\n } else if (3 === b && c.stateNode.current.memoizedState.isDehydrated) {\n a.blockedOn = 3 === c.tag ? c.stateNode.containerInfo : null;\n return;\n }\n }\n a.blockedOn = null;\n}\nfunction Xc(a) {\n if (null !== a.blockedOn) return !1;\n for (var b = a.targetContainers; 0 < b.length;) {\n var c = Yc(a.domEventName, a.eventSystemFlags, b[0], a.nativeEvent);\n if (null === c) {\n c = a.nativeEvent;\n var d = new c.constructor(c.type, c);\n wb = d;\n c.target.dispatchEvent(d);\n wb = null;\n } else return b = Cb(c), null !== b && Fc(b), a.blockedOn = c, !1;\n b.shift();\n }\n return !0;\n}\nfunction Zc(a, b, c) {\n Xc(a) && c.delete(b);\n}\nfunction $c() {\n Jc = !1;\n null !== Lc && Xc(Lc) && (Lc = null);\n null !== Mc && Xc(Mc) && (Mc = null);\n null !== Nc && Xc(Nc) && (Nc = null);\n Oc.forEach(Zc);\n Pc.forEach(Zc);\n}\nfunction ad(a, b) {\n a.blockedOn === b && (a.blockedOn = null, Jc || (Jc = !0, ca.unstable_scheduleCallback(ca.unstable_NormalPriority, $c)));\n}\nfunction bd(a) {\n function b(b) {\n return ad(b, a);\n }\n if (0 < Kc.length) {\n ad(Kc[0], a);\n for (var c = 1; c < Kc.length; c++) {\n var d = Kc[c];\n d.blockedOn === a && (d.blockedOn = null);\n }\n }\n null !== Lc && ad(Lc, a);\n null !== Mc && ad(Mc, a);\n null !== Nc && ad(Nc, a);\n Oc.forEach(b);\n Pc.forEach(b);\n for (c = 0; c < Qc.length; c++) d = Qc[c], d.blockedOn === a && (d.blockedOn = null);\n for (; 0 < Qc.length && (c = Qc[0], null === c.blockedOn);) Vc(c), null === c.blockedOn && Qc.shift();\n}\nvar cd = ua.ReactCurrentBatchConfig,\n dd = !0;\nfunction ed(a, b, c, d) {\n var e = C,\n f = cd.transition;\n cd.transition = null;\n try {\n C = 1, fd(a, b, c, d);\n } finally {\n C = e, cd.transition = f;\n }\n}\nfunction gd(a, b, c, d) {\n var e = C,\n f = cd.transition;\n cd.transition = null;\n try {\n C = 4, fd(a, b, c, d);\n } finally {\n C = e, cd.transition = f;\n }\n}\nfunction fd(a, b, c, d) {\n if (dd) {\n var e = Yc(a, b, c, d);\n if (null === e) hd(a, b, d, id, c), Sc(a, d);else if (Uc(e, a, b, c, d)) d.stopPropagation();else if (Sc(a, d), b & 4 && -1 < Rc.indexOf(a)) {\n for (; null !== e;) {\n var f = Cb(e);\n null !== f && Ec(f);\n f = Yc(a, b, c, d);\n null === f && hd(a, b, d, id, c);\n if (f === e) break;\n e = f;\n }\n null !== e && d.stopPropagation();\n } else hd(a, b, d, null, c);\n }\n}\nvar id = null;\nfunction Yc(a, b, c, d) {\n id = null;\n a = xb(d);\n a = Wc(a);\n if (null !== a) if (b = Vb(a), null === b) a = null;else if (c = b.tag, 13 === c) {\n a = Wb(b);\n if (null !== a) return a;\n a = null;\n } else if (3 === c) {\n if (b.stateNode.current.memoizedState.isDehydrated) return 3 === b.tag ? b.stateNode.containerInfo : null;\n a = null;\n } else b !== a && (a = null);\n id = a;\n return null;\n}\nfunction jd(a) {\n switch (a) {\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 1;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"toggle\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 4;\n case \"message\":\n switch (ec()) {\n case fc:\n return 1;\n case gc:\n return 4;\n case hc:\n case ic:\n return 16;\n case jc:\n return 536870912;\n default:\n return 16;\n }\n default:\n return 16;\n }\n}\nvar kd = null,\n ld = null,\n md = null;\nfunction nd() {\n if (md) return md;\n var a,\n b = ld,\n c = b.length,\n d,\n e = \"value\" in kd ? kd.value : kd.textContent,\n f = e.length;\n for (a = 0; a < c && b[a] === e[a]; a++);\n var g = c - a;\n for (d = 1; d <= g && b[c - d] === e[f - d]; d++);\n return md = e.slice(a, 1 < d ? 1 - d : void 0);\n}\nfunction od(a) {\n var b = a.keyCode;\n \"charCode\" in a ? (a = a.charCode, 0 === a && 13 === b && (a = 13)) : a = b;\n 10 === a && (a = 13);\n return 32 <= a || 13 === a ? a : 0;\n}\nfunction pd() {\n return !0;\n}\nfunction qd() {\n return !1;\n}\nfunction rd(a) {\n function b(b, d, e, f, g) {\n this._reactName = b;\n this._targetInst = e;\n this.type = d;\n this.nativeEvent = f;\n this.target = g;\n this.currentTarget = null;\n for (var c in a) a.hasOwnProperty(c) && (b = a[c], this[c] = b ? b(f) : f[c]);\n this.isDefaultPrevented = (null != f.defaultPrevented ? f.defaultPrevented : !1 === f.returnValue) ? pd : qd;\n this.isPropagationStopped = qd;\n return this;\n }\n A(b.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var a = this.nativeEvent;\n a && (a.preventDefault ? a.preventDefault() : \"unknown\" !== typeof a.returnValue && (a.returnValue = !1), this.isDefaultPrevented = pd);\n },\n stopPropagation: function () {\n var a = this.nativeEvent;\n a && (a.stopPropagation ? a.stopPropagation() : \"unknown\" !== typeof a.cancelBubble && (a.cancelBubble = !0), this.isPropagationStopped = pd);\n },\n persist: function () {},\n isPersistent: pd\n });\n return b;\n}\nvar sd = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (a) {\n return a.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n td = rd(sd),\n ud = A({}, sd, {\n view: 0,\n detail: 0\n }),\n vd = rd(ud),\n wd,\n xd,\n yd,\n Ad = A({}, ud, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: zd,\n button: 0,\n buttons: 0,\n relatedTarget: function (a) {\n return void 0 === a.relatedTarget ? a.fromElement === a.srcElement ? a.toElement : a.fromElement : a.relatedTarget;\n },\n movementX: function (a) {\n if (\"movementX\" in a) return a.movementX;\n a !== yd && (yd && \"mousemove\" === a.type ? (wd = a.screenX - yd.screenX, xd = a.screenY - yd.screenY) : xd = wd = 0, yd = a);\n return wd;\n },\n movementY: function (a) {\n return \"movementY\" in a ? a.movementY : xd;\n }\n }),\n Bd = rd(Ad),\n Cd = A({}, Ad, {\n dataTransfer: 0\n }),\n Dd = rd(Cd),\n Ed = A({}, ud, {\n relatedTarget: 0\n }),\n Fd = rd(Ed),\n Gd = A({}, sd, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n Hd = rd(Gd),\n Id = A({}, sd, {\n clipboardData: function (a) {\n return \"clipboardData\" in a ? a.clipboardData : window.clipboardData;\n }\n }),\n Jd = rd(Id),\n Kd = A({}, sd, {\n data: 0\n }),\n Ld = rd(Kd),\n Md = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n Nd = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n Od = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction Pd(a) {\n var b = this.nativeEvent;\n return b.getModifierState ? b.getModifierState(a) : (a = Od[a]) ? !!b[a] : !1;\n}\nfunction zd() {\n return Pd;\n}\nvar Qd = A({}, ud, {\n key: function (a) {\n if (a.key) {\n var b = Md[a.key] || a.key;\n if (\"Unidentified\" !== b) return b;\n }\n return \"keypress\" === a.type ? (a = od(a), 13 === a ? \"Enter\" : String.fromCharCode(a)) : \"keydown\" === a.type || \"keyup\" === a.type ? Nd[a.keyCode] || \"Unidentified\" : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: zd,\n charCode: function (a) {\n return \"keypress\" === a.type ? od(a) : 0;\n },\n keyCode: function (a) {\n return \"keydown\" === a.type || \"keyup\" === a.type ? a.keyCode : 0;\n },\n which: function (a) {\n return \"keypress\" === a.type ? od(a) : \"keydown\" === a.type || \"keyup\" === a.type ? a.keyCode : 0;\n }\n }),\n Rd = rd(Qd),\n Sd = A({}, Ad, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n Td = rd(Sd),\n Ud = A({}, ud, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: zd\n }),\n Vd = rd(Ud),\n Wd = A({}, sd, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n Xd = rd(Wd),\n Yd = A({}, Ad, {\n deltaX: function (a) {\n return \"deltaX\" in a ? a.deltaX : \"wheelDeltaX\" in a ? -a.wheelDeltaX : 0;\n },\n deltaY: function (a) {\n return \"deltaY\" in a ? a.deltaY : \"wheelDeltaY\" in a ? -a.wheelDeltaY : \"wheelDelta\" in a ? -a.wheelDelta : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n Zd = rd(Yd),\n $d = [9, 13, 27, 32],\n ae = ia && \"CompositionEvent\" in window,\n be = null;\nia && \"documentMode\" in document && (be = document.documentMode);\nvar ce = ia && \"TextEvent\" in window && !be,\n de = ia && (!ae || be && 8 < be && 11 >= be),\n ee = String.fromCharCode(32),\n fe = !1;\nfunction ge(a, b) {\n switch (a) {\n case \"keyup\":\n return -1 !== $d.indexOf(b.keyCode);\n case \"keydown\":\n return 229 !== b.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction he(a) {\n a = a.detail;\n return \"object\" === typeof a && \"data\" in a ? a.data : null;\n}\nvar ie = !1;\nfunction je(a, b) {\n switch (a) {\n case \"compositionend\":\n return he(b);\n case \"keypress\":\n if (32 !== b.which) return null;\n fe = !0;\n return ee;\n case \"textInput\":\n return a = b.data, a === ee && fe ? null : a;\n default:\n return null;\n }\n}\nfunction ke(a, b) {\n if (ie) return \"compositionend\" === a || !ae && ge(a, b) ? (a = nd(), md = ld = kd = null, ie = !1, a) : null;\n switch (a) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (!(b.ctrlKey || b.altKey || b.metaKey) || b.ctrlKey && b.altKey) {\n if (b.char && 1 < b.char.length) return b.char;\n if (b.which) return String.fromCharCode(b.which);\n }\n return null;\n case \"compositionend\":\n return de && \"ko\" !== b.locale ? null : b.data;\n default:\n return null;\n }\n}\nvar le = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction me(a) {\n var b = a && a.nodeName && a.nodeName.toLowerCase();\n return \"input\" === b ? !!le[a.type] : \"textarea\" === b ? !0 : !1;\n}\nfunction ne(a, b, c, d) {\n Eb(d);\n b = oe(b, \"onChange\");\n 0 < b.length && (c = new td(\"onChange\", \"change\", null, c, d), a.push({\n event: c,\n listeners: b\n }));\n}\nvar pe = null,\n qe = null;\nfunction re(a) {\n se(a, 0);\n}\nfunction te(a) {\n var b = ue(a);\n if (Wa(b)) return a;\n}\nfunction ve(a, b) {\n if (\"change\" === a) return b;\n}\nvar we = !1;\nif (ia) {\n var xe;\n if (ia) {\n var ye = \"oninput\" in document;\n if (!ye) {\n var ze = document.createElement(\"div\");\n ze.setAttribute(\"oninput\", \"return;\");\n ye = \"function\" === typeof ze.oninput;\n }\n xe = ye;\n } else xe = !1;\n we = xe && (!document.documentMode || 9 < document.documentMode);\n}\nfunction Ae() {\n pe && (pe.detachEvent(\"onpropertychange\", Be), qe = pe = null);\n}\nfunction Be(a) {\n if (\"value\" === a.propertyName && te(qe)) {\n var b = [];\n ne(b, qe, a, xb(a));\n Jb(re, b);\n }\n}\nfunction Ce(a, b, c) {\n \"focusin\" === a ? (Ae(), pe = b, qe = c, pe.attachEvent(\"onpropertychange\", Be)) : \"focusout\" === a && Ae();\n}\nfunction De(a) {\n if (\"selectionchange\" === a || \"keyup\" === a || \"keydown\" === a) return te(qe);\n}\nfunction Ee(a, b) {\n if (\"click\" === a) return te(b);\n}\nfunction Fe(a, b) {\n if (\"input\" === a || \"change\" === a) return te(b);\n}\nfunction Ge(a, b) {\n return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;\n}\nvar He = \"function\" === typeof Object.is ? Object.is : Ge;\nfunction Ie(a, b) {\n if (He(a, b)) return !0;\n if (\"object\" !== typeof a || null === a || \"object\" !== typeof b || null === b) return !1;\n var c = Object.keys(a),\n d = Object.keys(b);\n if (c.length !== d.length) return !1;\n for (d = 0; d < c.length; d++) {\n var e = c[d];\n if (!ja.call(b, e) || !He(a[e], b[e])) return !1;\n }\n return !0;\n}\nfunction Je(a) {\n for (; a && a.firstChild;) a = a.firstChild;\n return a;\n}\nfunction Ke(a, b) {\n var c = Je(a);\n a = 0;\n for (var d; c;) {\n if (3 === c.nodeType) {\n d = a + c.textContent.length;\n if (a <= b && d >= b) return {\n node: c,\n offset: b - a\n };\n a = d;\n }\n a: {\n for (; c;) {\n if (c.nextSibling) {\n c = c.nextSibling;\n break a;\n }\n c = c.parentNode;\n }\n c = void 0;\n }\n c = Je(c);\n }\n}\nfunction Le(a, b) {\n return a && b ? a === b ? !0 : a && 3 === a.nodeType ? !1 : b && 3 === b.nodeType ? Le(a, b.parentNode) : \"contains\" in a ? a.contains(b) : a.compareDocumentPosition ? !!(a.compareDocumentPosition(b) & 16) : !1 : !1;\n}\nfunction Me() {\n for (var a = window, b = Xa(); b instanceof a.HTMLIFrameElement;) {\n try {\n var c = \"string\" === typeof b.contentWindow.location.href;\n } catch (d) {\n c = !1;\n }\n if (c) a = b.contentWindow;else break;\n b = Xa(a.document);\n }\n return b;\n}\nfunction Ne(a) {\n var b = a && a.nodeName && a.nodeName.toLowerCase();\n return b && (\"input\" === b && (\"text\" === a.type || \"search\" === a.type || \"tel\" === a.type || \"url\" === a.type || \"password\" === a.type) || \"textarea\" === b || \"true\" === a.contentEditable);\n}\nfunction Oe(a) {\n var b = Me(),\n c = a.focusedElem,\n d = a.selectionRange;\n if (b !== c && c && c.ownerDocument && Le(c.ownerDocument.documentElement, c)) {\n if (null !== d && Ne(c)) if (b = d.start, a = d.end, void 0 === a && (a = b), \"selectionStart\" in c) c.selectionStart = b, c.selectionEnd = Math.min(a, c.value.length);else if (a = (b = c.ownerDocument || document) && b.defaultView || window, a.getSelection) {\n a = a.getSelection();\n var e = c.textContent.length,\n f = Math.min(d.start, e);\n d = void 0 === d.end ? f : Math.min(d.end, e);\n !a.extend && f > d && (e = d, d = f, f = e);\n e = Ke(c, f);\n var g = Ke(c, d);\n e && g && (1 !== a.rangeCount || a.anchorNode !== e.node || a.anchorOffset !== e.offset || a.focusNode !== g.node || a.focusOffset !== g.offset) && (b = b.createRange(), b.setStart(e.node, e.offset), a.removeAllRanges(), f > d ? (a.addRange(b), a.extend(g.node, g.offset)) : (b.setEnd(g.node, g.offset), a.addRange(b)));\n }\n b = [];\n for (a = c; a = a.parentNode;) 1 === a.nodeType && b.push({\n element: a,\n left: a.scrollLeft,\n top: a.scrollTop\n });\n \"function\" === typeof c.focus && c.focus();\n for (c = 0; c < b.length; c++) a = b[c], a.element.scrollLeft = a.left, a.element.scrollTop = a.top;\n }\n}\nvar Pe = ia && \"documentMode\" in document && 11 >= document.documentMode,\n Qe = null,\n Re = null,\n Se = null,\n Te = !1;\nfunction Ue(a, b, c) {\n var d = c.window === c ? c.document : 9 === c.nodeType ? c : c.ownerDocument;\n Te || null == Qe || Qe !== Xa(d) || (d = Qe, \"selectionStart\" in d && Ne(d) ? d = {\n start: d.selectionStart,\n end: d.selectionEnd\n } : (d = (d.ownerDocument && d.ownerDocument.defaultView || window).getSelection(), d = {\n anchorNode: d.anchorNode,\n anchorOffset: d.anchorOffset,\n focusNode: d.focusNode,\n focusOffset: d.focusOffset\n }), Se && Ie(Se, d) || (Se = d, d = oe(Re, \"onSelect\"), 0 < d.length && (b = new td(\"onSelect\", \"select\", null, b, c), a.push({\n event: b,\n listeners: d\n }), b.target = Qe)));\n}\nfunction Ve(a, b) {\n var c = {};\n c[a.toLowerCase()] = b.toLowerCase();\n c[\"Webkit\" + a] = \"webkit\" + b;\n c[\"Moz\" + a] = \"moz\" + b;\n return c;\n}\nvar We = {\n animationend: Ve(\"Animation\", \"AnimationEnd\"),\n animationiteration: Ve(\"Animation\", \"AnimationIteration\"),\n animationstart: Ve(\"Animation\", \"AnimationStart\"),\n transitionend: Ve(\"Transition\", \"TransitionEnd\")\n },\n Xe = {},\n Ye = {};\nia && (Ye = document.createElement(\"div\").style, \"AnimationEvent\" in window || (delete We.animationend.animation, delete We.animationiteration.animation, delete We.animationstart.animation), \"TransitionEvent\" in window || delete We.transitionend.transition);\nfunction Ze(a) {\n if (Xe[a]) return Xe[a];\n if (!We[a]) return a;\n var b = We[a],\n c;\n for (c in b) if (b.hasOwnProperty(c) && c in Ye) return Xe[a] = b[c];\n return a;\n}\nvar $e = Ze(\"animationend\"),\n af = Ze(\"animationiteration\"),\n bf = Ze(\"animationstart\"),\n cf = Ze(\"transitionend\"),\n df = new Map(),\n ef = \"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a, b) {\n df.set(a, b);\n fa(b, [a]);\n}\nfor (var gf = 0; gf < ef.length; gf++) {\n var hf = ef[gf],\n jf = hf.toLowerCase(),\n kf = hf[0].toUpperCase() + hf.slice(1);\n ff(jf, \"on\" + kf);\n}\nff($e, \"onAnimationEnd\");\nff(af, \"onAnimationIteration\");\nff(bf, \"onAnimationStart\");\nff(\"dblclick\", \"onDoubleClick\");\nff(\"focusin\", \"onFocus\");\nff(\"focusout\", \"onBlur\");\nff(cf, \"onTransitionEnd\");\nha(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nha(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nha(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nha(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nfa(\"onChange\", \"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));\nfa(\"onSelect\", \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));\nfa(\"onBeforeInput\", [\"compositionend\", \"keypress\", \"textInput\", \"paste\"]);\nfa(\"onCompositionEnd\", \"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionStart\", \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\", \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));\nvar lf = \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),\n mf = new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a, b, c) {\n var d = a.type || \"unknown-event\";\n a.currentTarget = c;\n Ub(d, b, void 0, a);\n a.currentTarget = null;\n}\nfunction se(a, b) {\n b = 0 !== (b & 4);\n for (var c = 0; c < a.length; c++) {\n var d = a[c],\n e = d.event;\n d = d.listeners;\n a: {\n var f = void 0;\n if (b) for (var g = d.length - 1; 0 <= g; g--) {\n var h = d[g],\n k = h.instance,\n l = h.currentTarget;\n h = h.listener;\n if (k !== f && e.isPropagationStopped()) break a;\n nf(e, h, l);\n f = k;\n } else for (g = 0; g < d.length; g++) {\n h = d[g];\n k = h.instance;\n l = h.currentTarget;\n h = h.listener;\n if (k !== f && e.isPropagationStopped()) break a;\n nf(e, h, l);\n f = k;\n }\n }\n }\n if (Qb) throw a = Rb, Qb = !1, Rb = null, a;\n}\nfunction D(a, b) {\n var c = b[of];\n void 0 === c && (c = b[of] = new Set());\n var d = a + \"__bubble\";\n c.has(d) || (pf(b, a, 2, !1), c.add(d));\n}\nfunction qf(a, b, c) {\n var d = 0;\n b && (d |= 4);\n pf(c, a, d, b);\n}\nvar rf = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction sf(a) {\n if (!a[rf]) {\n a[rf] = !0;\n da.forEach(function (b) {\n \"selectionchange\" !== b && (mf.has(b) || qf(b, !1, a), qf(b, !0, a));\n });\n var b = 9 === a.nodeType ? a : a.ownerDocument;\n null === b || b[rf] || (b[rf] = !0, qf(\"selectionchange\", !1, b));\n }\n}\nfunction pf(a, b, c, d) {\n switch (jd(b)) {\n case 1:\n var e = ed;\n break;\n case 4:\n e = gd;\n break;\n default:\n e = fd;\n }\n c = e.bind(null, b, c, a);\n e = void 0;\n !Lb || \"touchstart\" !== b && \"touchmove\" !== b && \"wheel\" !== b || (e = !0);\n d ? void 0 !== e ? a.addEventListener(b, c, {\n capture: !0,\n passive: e\n }) : a.addEventListener(b, c, !0) : void 0 !== e ? a.addEventListener(b, c, {\n passive: e\n }) : a.addEventListener(b, c, !1);\n}\nfunction hd(a, b, c, d, e) {\n var f = d;\n if (0 === (b & 1) && 0 === (b & 2) && null !== d) a: for (;;) {\n if (null === d) return;\n var g = d.tag;\n if (3 === g || 4 === g) {\n var h = d.stateNode.containerInfo;\n if (h === e || 8 === h.nodeType && h.parentNode === e) break;\n if (4 === g) for (g = d.return; null !== g;) {\n var k = g.tag;\n if (3 === k || 4 === k) if (k = g.stateNode.containerInfo, k === e || 8 === k.nodeType && k.parentNode === e) return;\n g = g.return;\n }\n for (; null !== h;) {\n g = Wc(h);\n if (null === g) return;\n k = g.tag;\n if (5 === k || 6 === k) {\n d = f = g;\n continue a;\n }\n h = h.parentNode;\n }\n }\n d = d.return;\n }\n Jb(function () {\n var d = f,\n e = xb(c),\n g = [];\n a: {\n var h = df.get(a);\n if (void 0 !== h) {\n var k = td,\n n = a;\n switch (a) {\n case \"keypress\":\n if (0 === od(c)) break a;\n case \"keydown\":\n case \"keyup\":\n k = Rd;\n break;\n case \"focusin\":\n n = \"focus\";\n k = Fd;\n break;\n case \"focusout\":\n n = \"blur\";\n k = Fd;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n k = Fd;\n break;\n case \"click\":\n if (2 === c.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n k = Bd;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n k = Dd;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n k = Vd;\n break;\n case $e:\n case af:\n case bf:\n k = Hd;\n break;\n case cf:\n k = Xd;\n break;\n case \"scroll\":\n k = vd;\n break;\n case \"wheel\":\n k = Zd;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n k = Jd;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n k = Td;\n }\n var t = 0 !== (b & 4),\n J = !t && \"scroll\" === a,\n x = t ? null !== h ? h + \"Capture\" : null : h;\n t = [];\n for (var w = d, u; null !== w;) {\n u = w;\n var F = u.stateNode;\n 5 === u.tag && null !== F && (u = F, null !== x && (F = Kb(w, x), null != F && t.push(tf(w, F, u))));\n if (J) break;\n w = w.return;\n }\n 0 < t.length && (h = new k(h, n, null, c, e), g.push({\n event: h,\n listeners: t\n }));\n }\n }\n if (0 === (b & 7)) {\n a: {\n h = \"mouseover\" === a || \"pointerover\" === a;\n k = \"mouseout\" === a || \"pointerout\" === a;\n if (h && c !== wb && (n = c.relatedTarget || c.fromElement) && (Wc(n) || n[uf])) break a;\n if (k || h) {\n h = e.window === e ? e : (h = e.ownerDocument) ? h.defaultView || h.parentWindow : window;\n if (k) {\n if (n = c.relatedTarget || c.toElement, k = d, n = n ? Wc(n) : null, null !== n && (J = Vb(n), n !== J || 5 !== n.tag && 6 !== n.tag)) n = null;\n } else k = null, n = d;\n if (k !== n) {\n t = Bd;\n F = \"onMouseLeave\";\n x = \"onMouseEnter\";\n w = \"mouse\";\n if (\"pointerout\" === a || \"pointerover\" === a) t = Td, F = \"onPointerLeave\", x = \"onPointerEnter\", w = \"pointer\";\n J = null == k ? h : ue(k);\n u = null == n ? h : ue(n);\n h = new t(F, w + \"leave\", k, c, e);\n h.target = J;\n h.relatedTarget = u;\n F = null;\n Wc(e) === d && (t = new t(x, w + \"enter\", n, c, e), t.target = u, t.relatedTarget = J, F = t);\n J = F;\n if (k && n) b: {\n t = k;\n x = n;\n w = 0;\n for (u = t; u; u = vf(u)) w++;\n u = 0;\n for (F = x; F; F = vf(F)) u++;\n for (; 0 < w - u;) t = vf(t), w--;\n for (; 0 < u - w;) x = vf(x), u--;\n for (; w--;) {\n if (t === x || null !== x && t === x.alternate) break b;\n t = vf(t);\n x = vf(x);\n }\n t = null;\n } else t = null;\n null !== k && wf(g, h, k, t, !1);\n null !== n && null !== J && wf(g, J, n, t, !0);\n }\n }\n }\n a: {\n h = d ? ue(d) : window;\n k = h.nodeName && h.nodeName.toLowerCase();\n if (\"select\" === k || \"input\" === k && \"file\" === h.type) var na = ve;else if (me(h)) {\n if (we) na = Fe;else {\n na = De;\n var xa = Ce;\n }\n } else (k = h.nodeName) && \"input\" === k.toLowerCase() && (\"checkbox\" === h.type || \"radio\" === h.type) && (na = Ee);\n if (na && (na = na(a, d))) {\n ne(g, na, c, e);\n break a;\n }\n xa && xa(a, h, d);\n \"focusout\" === a && (xa = h._wrapperState) && xa.controlled && \"number\" === h.type && cb(h, \"number\", h.value);\n }\n xa = d ? ue(d) : window;\n switch (a) {\n case \"focusin\":\n if (me(xa) || \"true\" === xa.contentEditable) Qe = xa, Re = d, Se = null;\n break;\n case \"focusout\":\n Se = Re = Qe = null;\n break;\n case \"mousedown\":\n Te = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n Te = !1;\n Ue(g, c, e);\n break;\n case \"selectionchange\":\n if (Pe) break;\n case \"keydown\":\n case \"keyup\":\n Ue(g, c, e);\n }\n var $a;\n if (ae) b: {\n switch (a) {\n case \"compositionstart\":\n var ba = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n ba = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n ba = \"onCompositionUpdate\";\n break b;\n }\n ba = void 0;\n } else ie ? ge(a, c) && (ba = \"onCompositionEnd\") : \"keydown\" === a && 229 === c.keyCode && (ba = \"onCompositionStart\");\n ba && (de && \"ko\" !== c.locale && (ie || \"onCompositionStart\" !== ba ? \"onCompositionEnd\" === ba && ie && ($a = nd()) : (kd = e, ld = \"value\" in kd ? kd.value : kd.textContent, ie = !0)), xa = oe(d, ba), 0 < xa.length && (ba = new Ld(ba, a, null, c, e), g.push({\n event: ba,\n listeners: xa\n }), $a ? ba.data = $a : ($a = he(c), null !== $a && (ba.data = $a))));\n if ($a = ce ? je(a, c) : ke(a, c)) d = oe(d, \"onBeforeInput\"), 0 < d.length && (e = new Ld(\"onBeforeInput\", \"beforeinput\", null, c, e), g.push({\n event: e,\n listeners: d\n }), e.data = $a);\n }\n se(g, b);\n });\n}\nfunction tf(a, b, c) {\n return {\n instance: a,\n listener: b,\n currentTarget: c\n };\n}\nfunction oe(a, b) {\n for (var c = b + \"Capture\", d = []; null !== a;) {\n var e = a,\n f = e.stateNode;\n 5 === e.tag && null !== f && (e = f, f = Kb(a, c), null != f && d.unshift(tf(a, f, e)), f = Kb(a, b), null != f && d.push(tf(a, f, e)));\n a = a.return;\n }\n return d;\n}\nfunction vf(a) {\n if (null === a) return null;\n do a = a.return; while (a && 5 !== a.tag);\n return a ? a : null;\n}\nfunction wf(a, b, c, d, e) {\n for (var f = b._reactName, g = []; null !== c && c !== d;) {\n var h = c,\n k = h.alternate,\n l = h.stateNode;\n if (null !== k && k === d) break;\n 5 === h.tag && null !== l && (h = l, e ? (k = Kb(c, f), null != k && g.unshift(tf(c, k, h))) : e || (k = Kb(c, f), null != k && g.push(tf(c, k, h))));\n c = c.return;\n }\n 0 !== g.length && a.push({\n event: b,\n listeners: g\n });\n}\nvar xf = /\\r\\n?/g,\n yf = /\\u0000|\\uFFFD/g;\nfunction zf(a) {\n return (\"string\" === typeof a ? a : \"\" + a).replace(xf, \"\\n\").replace(yf, \"\");\n}\nfunction Af(a, b, c) {\n b = zf(b);\n if (zf(a) !== b && c) throw Error(p(425));\n}\nfunction Bf() {}\nvar Cf = null,\n Df = null;\nfunction Ef(a, b) {\n return \"textarea\" === a || \"noscript\" === a || \"string\" === typeof b.children || \"number\" === typeof b.children || \"object\" === typeof b.dangerouslySetInnerHTML && null !== b.dangerouslySetInnerHTML && null != b.dangerouslySetInnerHTML.__html;\n}\nvar Ff = \"function\" === typeof setTimeout ? setTimeout : void 0,\n Gf = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n Hf = \"function\" === typeof Promise ? Promise : void 0,\n Jf = \"function\" === typeof queueMicrotask ? queueMicrotask : \"undefined\" !== typeof Hf ? function (a) {\n return Hf.resolve(null).then(a).catch(If);\n } : Ff;\nfunction If(a) {\n setTimeout(function () {\n throw a;\n });\n}\nfunction Kf(a, b) {\n var c = b,\n d = 0;\n do {\n var e = c.nextSibling;\n a.removeChild(c);\n if (e && 8 === e.nodeType) if (c = e.data, \"/$\" === c) {\n if (0 === d) {\n a.removeChild(e);\n bd(b);\n return;\n }\n d--;\n } else \"$\" !== c && \"$?\" !== c && \"$!\" !== c || d++;\n c = e;\n } while (c);\n bd(b);\n}\nfunction Lf(a) {\n for (; null != a; a = a.nextSibling) {\n var b = a.nodeType;\n if (1 === b || 3 === b) break;\n if (8 === b) {\n b = a.data;\n if (\"$\" === b || \"$!\" === b || \"$?\" === b) break;\n if (\"/$\" === b) return null;\n }\n }\n return a;\n}\nfunction Mf(a) {\n a = a.previousSibling;\n for (var b = 0; a;) {\n if (8 === a.nodeType) {\n var c = a.data;\n if (\"$\" === c || \"$!\" === c || \"$?\" === c) {\n if (0 === b) return a;\n b--;\n } else \"/$\" === c && b++;\n }\n a = a.previousSibling;\n }\n return null;\n}\nvar Nf = Math.random().toString(36).slice(2),\n Of = \"__reactFiber$\" + Nf,\n Pf = \"__reactProps$\" + Nf,\n uf = \"__reactContainer$\" + Nf,\n of = \"__reactEvents$\" + Nf,\n Qf = \"__reactListeners$\" + Nf,\n Rf = \"__reactHandles$\" + Nf;\nfunction Wc(a) {\n var b = a[Of];\n if (b) return b;\n for (var c = a.parentNode; c;) {\n if (b = c[uf] || c[Of]) {\n c = b.alternate;\n if (null !== b.child || null !== c && null !== c.child) for (a = Mf(a); null !== a;) {\n if (c = a[Of]) return c;\n a = Mf(a);\n }\n return b;\n }\n a = c;\n c = a.parentNode;\n }\n return null;\n}\nfunction Cb(a) {\n a = a[Of] || a[uf];\n return !a || 5 !== a.tag && 6 !== a.tag && 13 !== a.tag && 3 !== a.tag ? null : a;\n}\nfunction ue(a) {\n if (5 === a.tag || 6 === a.tag) return a.stateNode;\n throw Error(p(33));\n}\nfunction Db(a) {\n return a[Pf] || null;\n}\nvar Sf = [],\n Tf = -1;\nfunction Uf(a) {\n return {\n current: a\n };\n}\nfunction E(a) {\n 0 > Tf || (a.current = Sf[Tf], Sf[Tf] = null, Tf--);\n}\nfunction G(a, b) {\n Tf++;\n Sf[Tf] = a.current;\n a.current = b;\n}\nvar Vf = {},\n H = Uf(Vf),\n Wf = Uf(!1),\n Xf = Vf;\nfunction Yf(a, b) {\n var c = a.type.contextTypes;\n if (!c) return Vf;\n var d = a.stateNode;\n if (d && d.__reactInternalMemoizedUnmaskedChildContext === b) return d.__reactInternalMemoizedMaskedChildContext;\n var e = {},\n f;\n for (f in c) e[f] = b[f];\n d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = b, a.__reactInternalMemoizedMaskedChildContext = e);\n return e;\n}\nfunction Zf(a) {\n a = a.childContextTypes;\n return null !== a && void 0 !== a;\n}\nfunction $f() {\n E(Wf);\n E(H);\n}\nfunction ag(a, b, c) {\n if (H.current !== Vf) throw Error(p(168));\n G(H, b);\n G(Wf, c);\n}\nfunction bg(a, b, c) {\n var d = a.stateNode;\n b = b.childContextTypes;\n if (\"function\" !== typeof d.getChildContext) return c;\n d = d.getChildContext();\n for (var e in d) if (!(e in b)) throw Error(p(108, Ra(a) || \"Unknown\", e));\n return A({}, c, d);\n}\nfunction cg(a) {\n a = (a = a.stateNode) && a.__reactInternalMemoizedMergedChildContext || Vf;\n Xf = H.current;\n G(H, a);\n G(Wf, Wf.current);\n return !0;\n}\nfunction dg(a, b, c) {\n var d = a.stateNode;\n if (!d) throw Error(p(169));\n c ? (a = bg(a, b, Xf), d.__reactInternalMemoizedMergedChildContext = a, E(Wf), E(H), G(H, a)) : E(Wf);\n G(Wf, c);\n}\nvar eg = null,\n fg = !1,\n gg = !1;\nfunction hg(a) {\n null === eg ? eg = [a] : eg.push(a);\n}\nfunction ig(a) {\n fg = !0;\n hg(a);\n}\nfunction jg() {\n if (!gg && null !== eg) {\n gg = !0;\n var a = 0,\n b = C;\n try {\n var c = eg;\n for (C = 1; a < c.length; a++) {\n var d = c[a];\n do d = d(!0); while (null !== d);\n }\n eg = null;\n fg = !1;\n } catch (e) {\n throw null !== eg && (eg = eg.slice(a + 1)), ac(fc, jg), e;\n } finally {\n C = b, gg = !1;\n }\n }\n return null;\n}\nvar kg = [],\n lg = 0,\n mg = null,\n ng = 0,\n og = [],\n pg = 0,\n qg = null,\n rg = 1,\n sg = \"\";\nfunction tg(a, b) {\n kg[lg++] = ng;\n kg[lg++] = mg;\n mg = a;\n ng = b;\n}\nfunction ug(a, b, c) {\n og[pg++] = rg;\n og[pg++] = sg;\n og[pg++] = qg;\n qg = a;\n var d = rg;\n a = sg;\n var e = 32 - oc(d) - 1;\n d &= ~(1 << e);\n c += 1;\n var f = 32 - oc(b) + e;\n if (30 < f) {\n var g = e - e % 5;\n f = (d & (1 << g) - 1).toString(32);\n d >>= g;\n e -= g;\n rg = 1 << 32 - oc(b) + e | c << e | d;\n sg = f + a;\n } else rg = 1 << f | c << e | d, sg = a;\n}\nfunction vg(a) {\n null !== a.return && (tg(a, 1), ug(a, 1, 0));\n}\nfunction wg(a) {\n for (; a === mg;) mg = kg[--lg], kg[lg] = null, ng = kg[--lg], kg[lg] = null;\n for (; a === qg;) qg = og[--pg], og[pg] = null, sg = og[--pg], og[pg] = null, rg = og[--pg], og[pg] = null;\n}\nvar xg = null,\n yg = null,\n I = !1,\n zg = null;\nfunction Ag(a, b) {\n var c = Bg(5, null, null, 0);\n c.elementType = \"DELETED\";\n c.stateNode = b;\n c.return = a;\n b = a.deletions;\n null === b ? (a.deletions = [c], a.flags |= 16) : b.push(c);\n}\nfunction Cg(a, b) {\n switch (a.tag) {\n case 5:\n var c = a.type;\n b = 1 !== b.nodeType || c.toLowerCase() !== b.nodeName.toLowerCase() ? null : b;\n return null !== b ? (a.stateNode = b, xg = a, yg = Lf(b.firstChild), !0) : !1;\n case 6:\n return b = \"\" === a.pendingProps || 3 !== b.nodeType ? null : b, null !== b ? (a.stateNode = b, xg = a, yg = null, !0) : !1;\n case 13:\n return b = 8 !== b.nodeType ? null : b, null !== b ? (c = null !== qg ? {\n id: rg,\n overflow: sg\n } : null, a.memoizedState = {\n dehydrated: b,\n treeContext: c,\n retryLane: 1073741824\n }, c = Bg(18, null, null, 0), c.stateNode = b, c.return = a, a.child = c, xg = a, yg = null, !0) : !1;\n default:\n return !1;\n }\n}\nfunction Dg(a) {\n return 0 !== (a.mode & 1) && 0 === (a.flags & 128);\n}\nfunction Eg(a) {\n if (I) {\n var b = yg;\n if (b) {\n var c = b;\n if (!Cg(a, b)) {\n if (Dg(a)) throw Error(p(418));\n b = Lf(c.nextSibling);\n var d = xg;\n b && Cg(a, b) ? Ag(d, c) : (a.flags = a.flags & -4097 | 2, I = !1, xg = a);\n }\n } else {\n if (Dg(a)) throw Error(p(418));\n a.flags = a.flags & -4097 | 2;\n I = !1;\n xg = a;\n }\n }\n}\nfunction Fg(a) {\n for (a = a.return; null !== a && 5 !== a.tag && 3 !== a.tag && 13 !== a.tag;) a = a.return;\n xg = a;\n}\nfunction Gg(a) {\n if (a !== xg) return !1;\n if (!I) return Fg(a), I = !0, !1;\n var b;\n (b = 3 !== a.tag) && !(b = 5 !== a.tag) && (b = a.type, b = \"head\" !== b && \"body\" !== b && !Ef(a.type, a.memoizedProps));\n if (b && (b = yg)) {\n if (Dg(a)) throw Hg(), Error(p(418));\n for (; b;) Ag(a, b), b = Lf(b.nextSibling);\n }\n Fg(a);\n if (13 === a.tag) {\n a = a.memoizedState;\n a = null !== a ? a.dehydrated : null;\n if (!a) throw Error(p(317));\n a: {\n a = a.nextSibling;\n for (b = 0; a;) {\n if (8 === a.nodeType) {\n var c = a.data;\n if (\"/$\" === c) {\n if (0 === b) {\n yg = Lf(a.nextSibling);\n break a;\n }\n b--;\n } else \"$\" !== c && \"$!\" !== c && \"$?\" !== c || b++;\n }\n a = a.nextSibling;\n }\n yg = null;\n }\n } else yg = xg ? Lf(a.stateNode.nextSibling) : null;\n return !0;\n}\nfunction Hg() {\n for (var a = yg; a;) a = Lf(a.nextSibling);\n}\nfunction Ig() {\n yg = xg = null;\n I = !1;\n}\nfunction Jg(a) {\n null === zg ? zg = [a] : zg.push(a);\n}\nvar Kg = ua.ReactCurrentBatchConfig;\nfunction Lg(a, b, c) {\n a = c.ref;\n if (null !== a && \"function\" !== typeof a && \"object\" !== typeof a) {\n if (c._owner) {\n c = c._owner;\n if (c) {\n if (1 !== c.tag) throw Error(p(309));\n var d = c.stateNode;\n }\n if (!d) throw Error(p(147, a));\n var e = d,\n f = \"\" + a;\n if (null !== b && null !== b.ref && \"function\" === typeof b.ref && b.ref._stringRef === f) return b.ref;\n b = function (a) {\n var b = e.refs;\n null === a ? delete b[f] : b[f] = a;\n };\n b._stringRef = f;\n return b;\n }\n if (\"string\" !== typeof a) throw Error(p(284));\n if (!c._owner) throw Error(p(290, a));\n }\n return a;\n}\nfunction Mg(a, b) {\n a = Object.prototype.toString.call(b);\n throw Error(p(31, \"[object Object]\" === a ? \"object with keys {\" + Object.keys(b).join(\", \") + \"}\" : a));\n}\nfunction Ng(a) {\n var b = a._init;\n return b(a._payload);\n}\nfunction Og(a) {\n function b(b, c) {\n if (a) {\n var d = b.deletions;\n null === d ? (b.deletions = [c], b.flags |= 16) : d.push(c);\n }\n }\n function c(c, d) {\n if (!a) return null;\n for (; null !== d;) b(c, d), d = d.sibling;\n return null;\n }\n function d(a, b) {\n for (a = new Map(); null !== b;) null !== b.key ? a.set(b.key, b) : a.set(b.index, b), b = b.sibling;\n return a;\n }\n function e(a, b) {\n a = Pg(a, b);\n a.index = 0;\n a.sibling = null;\n return a;\n }\n function f(b, c, d) {\n b.index = d;\n if (!a) return b.flags |= 1048576, c;\n d = b.alternate;\n if (null !== d) return d = d.index, d < c ? (b.flags |= 2, c) : d;\n b.flags |= 2;\n return c;\n }\n function g(b) {\n a && null === b.alternate && (b.flags |= 2);\n return b;\n }\n function h(a, b, c, d) {\n if (null === b || 6 !== b.tag) return b = Qg(c, a.mode, d), b.return = a, b;\n b = e(b, c);\n b.return = a;\n return b;\n }\n function k(a, b, c, d) {\n var f = c.type;\n if (f === ya) return m(a, b, c.props.children, d, c.key);\n if (null !== b && (b.elementType === f || \"object\" === typeof f && null !== f && f.$$typeof === Ha && Ng(f) === b.type)) return d = e(b, c.props), d.ref = Lg(a, b, c), d.return = a, d;\n d = Rg(c.type, c.key, c.props, null, a.mode, d);\n d.ref = Lg(a, b, c);\n d.return = a;\n return d;\n }\n function l(a, b, c, d) {\n if (null === b || 4 !== b.tag || b.stateNode.containerInfo !== c.containerInfo || b.stateNode.implementation !== c.implementation) return b = Sg(c, a.mode, d), b.return = a, b;\n b = e(b, c.children || []);\n b.return = a;\n return b;\n }\n function m(a, b, c, d, f) {\n if (null === b || 7 !== b.tag) return b = Tg(c, a.mode, d, f), b.return = a, b;\n b = e(b, c);\n b.return = a;\n return b;\n }\n function q(a, b, c) {\n if (\"string\" === typeof b && \"\" !== b || \"number\" === typeof b) return b = Qg(\"\" + b, a.mode, c), b.return = a, b;\n if (\"object\" === typeof b && null !== b) {\n switch (b.$$typeof) {\n case va:\n return c = Rg(b.type, b.key, b.props, null, a.mode, c), c.ref = Lg(a, null, b), c.return = a, c;\n case wa:\n return b = Sg(b, a.mode, c), b.return = a, b;\n case Ha:\n var d = b._init;\n return q(a, d(b._payload), c);\n }\n if (eb(b) || Ka(b)) return b = Tg(b, a.mode, c, null), b.return = a, b;\n Mg(a, b);\n }\n return null;\n }\n function r(a, b, c, d) {\n var e = null !== b ? b.key : null;\n if (\"string\" === typeof c && \"\" !== c || \"number\" === typeof c) return null !== e ? null : h(a, b, \"\" + c, d);\n if (\"object\" === typeof c && null !== c) {\n switch (c.$$typeof) {\n case va:\n return c.key === e ? k(a, b, c, d) : null;\n case wa:\n return c.key === e ? l(a, b, c, d) : null;\n case Ha:\n return e = c._init, r(a, b, e(c._payload), d);\n }\n if (eb(c) || Ka(c)) return null !== e ? null : m(a, b, c, d, null);\n Mg(a, c);\n }\n return null;\n }\n function y(a, b, c, d, e) {\n if (\"string\" === typeof d && \"\" !== d || \"number\" === typeof d) return a = a.get(c) || null, h(b, a, \"\" + d, e);\n if (\"object\" === typeof d && null !== d) {\n switch (d.$$typeof) {\n case va:\n return a = a.get(null === d.key ? c : d.key) || null, k(b, a, d, e);\n case wa:\n return a = a.get(null === d.key ? c : d.key) || null, l(b, a, d, e);\n case Ha:\n var f = d._init;\n return y(a, b, c, f(d._payload), e);\n }\n if (eb(d) || Ka(d)) return a = a.get(c) || null, m(b, a, d, e, null);\n Mg(b, d);\n }\n return null;\n }\n function n(e, g, h, k) {\n for (var l = null, m = null, u = g, w = g = 0, x = null; null !== u && w < h.length; w++) {\n u.index > w ? (x = u, u = null) : x = u.sibling;\n var n = r(e, u, h[w], k);\n if (null === n) {\n null === u && (u = x);\n break;\n }\n a && u && null === n.alternate && b(e, u);\n g = f(n, g, w);\n null === m ? l = n : m.sibling = n;\n m = n;\n u = x;\n }\n if (w === h.length) return c(e, u), I && tg(e, w), l;\n if (null === u) {\n for (; w < h.length; w++) u = q(e, h[w], k), null !== u && (g = f(u, g, w), null === m ? l = u : m.sibling = u, m = u);\n I && tg(e, w);\n return l;\n }\n for (u = d(e, u); w < h.length; w++) x = y(u, e, w, h[w], k), null !== x && (a && null !== x.alternate && u.delete(null === x.key ? w : x.key), g = f(x, g, w), null === m ? l = x : m.sibling = x, m = x);\n a && u.forEach(function (a) {\n return b(e, a);\n });\n I && tg(e, w);\n return l;\n }\n function t(e, g, h, k) {\n var l = Ka(h);\n if (\"function\" !== typeof l) throw Error(p(150));\n h = l.call(h);\n if (null == h) throw Error(p(151));\n for (var u = l = null, m = g, w = g = 0, x = null, n = h.next(); null !== m && !n.done; w++, n = h.next()) {\n m.index > w ? (x = m, m = null) : x = m.sibling;\n var t = r(e, m, n.value, k);\n if (null === t) {\n null === m && (m = x);\n break;\n }\n a && m && null === t.alternate && b(e, m);\n g = f(t, g, w);\n null === u ? l = t : u.sibling = t;\n u = t;\n m = x;\n }\n if (n.done) return c(e, m), I && tg(e, w), l;\n if (null === m) {\n for (; !n.done; w++, n = h.next()) n = q(e, n.value, k), null !== n && (g = f(n, g, w), null === u ? l = n : u.sibling = n, u = n);\n I && tg(e, w);\n return l;\n }\n for (m = d(e, m); !n.done; w++, n = h.next()) n = y(m, e, w, n.value, k), null !== n && (a && null !== n.alternate && m.delete(null === n.key ? w : n.key), g = f(n, g, w), null === u ? l = n : u.sibling = n, u = n);\n a && m.forEach(function (a) {\n return b(e, a);\n });\n I && tg(e, w);\n return l;\n }\n function J(a, d, f, h) {\n \"object\" === typeof f && null !== f && f.type === ya && null === f.key && (f = f.props.children);\n if (\"object\" === typeof f && null !== f) {\n switch (f.$$typeof) {\n case va:\n a: {\n for (var k = f.key, l = d; null !== l;) {\n if (l.key === k) {\n k = f.type;\n if (k === ya) {\n if (7 === l.tag) {\n c(a, l.sibling);\n d = e(l, f.props.children);\n d.return = a;\n a = d;\n break a;\n }\n } else if (l.elementType === k || \"object\" === typeof k && null !== k && k.$$typeof === Ha && Ng(k) === l.type) {\n c(a, l.sibling);\n d = e(l, f.props);\n d.ref = Lg(a, l, f);\n d.return = a;\n a = d;\n break a;\n }\n c(a, l);\n break;\n } else b(a, l);\n l = l.sibling;\n }\n f.type === ya ? (d = Tg(f.props.children, a.mode, h, f.key), d.return = a, a = d) : (h = Rg(f.type, f.key, f.props, null, a.mode, h), h.ref = Lg(a, d, f), h.return = a, a = h);\n }\n return g(a);\n case wa:\n a: {\n for (l = f.key; null !== d;) {\n if (d.key === l) {\n if (4 === d.tag && d.stateNode.containerInfo === f.containerInfo && d.stateNode.implementation === f.implementation) {\n c(a, d.sibling);\n d = e(d, f.children || []);\n d.return = a;\n a = d;\n break a;\n } else {\n c(a, d);\n break;\n }\n } else b(a, d);\n d = d.sibling;\n }\n d = Sg(f, a.mode, h);\n d.return = a;\n a = d;\n }\n return g(a);\n case Ha:\n return l = f._init, J(a, d, l(f._payload), h);\n }\n if (eb(f)) return n(a, d, f, h);\n if (Ka(f)) return t(a, d, f, h);\n Mg(a, f);\n }\n return \"string\" === typeof f && \"\" !== f || \"number\" === typeof f ? (f = \"\" + f, null !== d && 6 === d.tag ? (c(a, d.sibling), d = e(d, f), d.return = a, a = d) : (c(a, d), d = Qg(f, a.mode, h), d.return = a, a = d), g(a)) : c(a, d);\n }\n return J;\n}\nvar Ug = Og(!0),\n Vg = Og(!1),\n Wg = Uf(null),\n Xg = null,\n Yg = null,\n Zg = null;\nfunction $g() {\n Zg = Yg = Xg = null;\n}\nfunction ah(a) {\n var b = Wg.current;\n E(Wg);\n a._currentValue = b;\n}\nfunction bh(a, b, c) {\n for (; null !== a;) {\n var d = a.alternate;\n (a.childLanes & b) !== b ? (a.childLanes |= b, null !== d && (d.childLanes |= b)) : null !== d && (d.childLanes & b) !== b && (d.childLanes |= b);\n if (a === c) break;\n a = a.return;\n }\n}\nfunction ch(a, b) {\n Xg = a;\n Zg = Yg = null;\n a = a.dependencies;\n null !== a && null !== a.firstContext && (0 !== (a.lanes & b) && (dh = !0), a.firstContext = null);\n}\nfunction eh(a) {\n var b = a._currentValue;\n if (Zg !== a) if (a = {\n context: a,\n memoizedValue: b,\n next: null\n }, null === Yg) {\n if (null === Xg) throw Error(p(308));\n Yg = a;\n Xg.dependencies = {\n lanes: 0,\n firstContext: a\n };\n } else Yg = Yg.next = a;\n return b;\n}\nvar fh = null;\nfunction gh(a) {\n null === fh ? fh = [a] : fh.push(a);\n}\nfunction hh(a, b, c, d) {\n var e = b.interleaved;\n null === e ? (c.next = c, gh(b)) : (c.next = e.next, e.next = c);\n b.interleaved = c;\n return ih(a, d);\n}\nfunction ih(a, b) {\n a.lanes |= b;\n var c = a.alternate;\n null !== c && (c.lanes |= b);\n c = a;\n for (a = a.return; null !== a;) a.childLanes |= b, c = a.alternate, null !== c && (c.childLanes |= b), c = a, a = a.return;\n return 3 === c.tag ? c.stateNode : null;\n}\nvar jh = !1;\nfunction kh(a) {\n a.updateQueue = {\n baseState: a.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: {\n pending: null,\n interleaved: null,\n lanes: 0\n },\n effects: null\n };\n}\nfunction lh(a, b) {\n a = a.updateQueue;\n b.updateQueue === a && (b.updateQueue = {\n baseState: a.baseState,\n firstBaseUpdate: a.firstBaseUpdate,\n lastBaseUpdate: a.lastBaseUpdate,\n shared: a.shared,\n effects: a.effects\n });\n}\nfunction mh(a, b) {\n return {\n eventTime: a,\n lane: b,\n tag: 0,\n payload: null,\n callback: null,\n next: null\n };\n}\nfunction nh(a, b, c) {\n var d = a.updateQueue;\n if (null === d) return null;\n d = d.shared;\n if (0 !== (K & 2)) {\n var e = d.pending;\n null === e ? b.next = b : (b.next = e.next, e.next = b);\n d.pending = b;\n return ih(a, c);\n }\n e = d.interleaved;\n null === e ? (b.next = b, gh(d)) : (b.next = e.next, e.next = b);\n d.interleaved = b;\n return ih(a, c);\n}\nfunction oh(a, b, c) {\n b = b.updateQueue;\n if (null !== b && (b = b.shared, 0 !== (c & 4194240))) {\n var d = b.lanes;\n d &= a.pendingLanes;\n c |= d;\n b.lanes = c;\n Cc(a, c);\n }\n}\nfunction ph(a, b) {\n var c = a.updateQueue,\n d = a.alternate;\n if (null !== d && (d = d.updateQueue, c === d)) {\n var e = null,\n f = null;\n c = c.firstBaseUpdate;\n if (null !== c) {\n do {\n var g = {\n eventTime: c.eventTime,\n lane: c.lane,\n tag: c.tag,\n payload: c.payload,\n callback: c.callback,\n next: null\n };\n null === f ? e = f = g : f = f.next = g;\n c = c.next;\n } while (null !== c);\n null === f ? e = f = b : f = f.next = b;\n } else e = f = b;\n c = {\n baseState: d.baseState,\n firstBaseUpdate: e,\n lastBaseUpdate: f,\n shared: d.shared,\n effects: d.effects\n };\n a.updateQueue = c;\n return;\n }\n a = c.lastBaseUpdate;\n null === a ? c.firstBaseUpdate = b : a.next = b;\n c.lastBaseUpdate = b;\n}\nfunction qh(a, b, c, d) {\n var e = a.updateQueue;\n jh = !1;\n var f = e.firstBaseUpdate,\n g = e.lastBaseUpdate,\n h = e.shared.pending;\n if (null !== h) {\n e.shared.pending = null;\n var k = h,\n l = k.next;\n k.next = null;\n null === g ? f = l : g.next = l;\n g = k;\n var m = a.alternate;\n null !== m && (m = m.updateQueue, h = m.lastBaseUpdate, h !== g && (null === h ? m.firstBaseUpdate = l : h.next = l, m.lastBaseUpdate = k));\n }\n if (null !== f) {\n var q = e.baseState;\n g = 0;\n m = l = k = null;\n h = f;\n do {\n var r = h.lane,\n y = h.eventTime;\n if ((d & r) === r) {\n null !== m && (m = m.next = {\n eventTime: y,\n lane: 0,\n tag: h.tag,\n payload: h.payload,\n callback: h.callback,\n next: null\n });\n a: {\n var n = a,\n t = h;\n r = b;\n y = c;\n switch (t.tag) {\n case 1:\n n = t.payload;\n if (\"function\" === typeof n) {\n q = n.call(y, q, r);\n break a;\n }\n q = n;\n break a;\n case 3:\n n.flags = n.flags & -65537 | 128;\n case 0:\n n = t.payload;\n r = \"function\" === typeof n ? n.call(y, q, r) : n;\n if (null === r || void 0 === r) break a;\n q = A({}, q, r);\n break a;\n case 2:\n jh = !0;\n }\n }\n null !== h.callback && 0 !== h.lane && (a.flags |= 64, r = e.effects, null === r ? e.effects = [h] : r.push(h));\n } else y = {\n eventTime: y,\n lane: r,\n tag: h.tag,\n payload: h.payload,\n callback: h.callback,\n next: null\n }, null === m ? (l = m = y, k = q) : m = m.next = y, g |= r;\n h = h.next;\n if (null === h) if (h = e.shared.pending, null === h) break;else r = h, h = r.next, r.next = null, e.lastBaseUpdate = r, e.shared.pending = null;\n } while (1);\n null === m && (k = q);\n e.baseState = k;\n e.firstBaseUpdate = l;\n e.lastBaseUpdate = m;\n b = e.shared.interleaved;\n if (null !== b) {\n e = b;\n do g |= e.lane, e = e.next; while (e !== b);\n } else null === f && (e.shared.lanes = 0);\n rh |= g;\n a.lanes = g;\n a.memoizedState = q;\n }\n}\nfunction sh(a, b, c) {\n a = b.effects;\n b.effects = null;\n if (null !== a) for (b = 0; b < a.length; b++) {\n var d = a[b],\n e = d.callback;\n if (null !== e) {\n d.callback = null;\n d = c;\n if (\"function\" !== typeof e) throw Error(p(191, e));\n e.call(d);\n }\n }\n}\nvar th = {},\n uh = Uf(th),\n vh = Uf(th),\n wh = Uf(th);\nfunction xh(a) {\n if (a === th) throw Error(p(174));\n return a;\n}\nfunction yh(a, b) {\n G(wh, b);\n G(vh, a);\n G(uh, th);\n a = b.nodeType;\n switch (a) {\n case 9:\n case 11:\n b = (b = b.documentElement) ? b.namespaceURI : lb(null, \"\");\n break;\n default:\n a = 8 === a ? b.parentNode : b, b = a.namespaceURI || null, a = a.tagName, b = lb(b, a);\n }\n E(uh);\n G(uh, b);\n}\nfunction zh() {\n E(uh);\n E(vh);\n E(wh);\n}\nfunction Ah(a) {\n xh(wh.current);\n var b = xh(uh.current);\n var c = lb(b, a.type);\n b !== c && (G(vh, a), G(uh, c));\n}\nfunction Bh(a) {\n vh.current === a && (E(uh), E(vh));\n}\nvar L = Uf(0);\nfunction Ch(a) {\n for (var b = a; null !== b;) {\n if (13 === b.tag) {\n var c = b.memoizedState;\n if (null !== c && (c = c.dehydrated, null === c || \"$?\" === c.data || \"$!\" === c.data)) return b;\n } else if (19 === b.tag && void 0 !== b.memoizedProps.revealOrder) {\n if (0 !== (b.flags & 128)) return b;\n } else if (null !== b.child) {\n b.child.return = b;\n b = b.child;\n continue;\n }\n if (b === a) break;\n for (; null === b.sibling;) {\n if (null === b.return || b.return === a) return null;\n b = b.return;\n }\n b.sibling.return = b.return;\n b = b.sibling;\n }\n return null;\n}\nvar Dh = [];\nfunction Eh() {\n for (var a = 0; a < Dh.length; a++) Dh[a]._workInProgressVersionPrimary = null;\n Dh.length = 0;\n}\nvar Fh = ua.ReactCurrentDispatcher,\n Gh = ua.ReactCurrentBatchConfig,\n Hh = 0,\n M = null,\n N = null,\n O = null,\n Ih = !1,\n Jh = !1,\n Kh = 0,\n Lh = 0;\nfunction P() {\n throw Error(p(321));\n}\nfunction Mh(a, b) {\n if (null === b) return !1;\n for (var c = 0; c < b.length && c < a.length; c++) if (!He(a[c], b[c])) return !1;\n return !0;\n}\nfunction Nh(a, b, c, d, e, f) {\n Hh = f;\n M = b;\n b.memoizedState = null;\n b.updateQueue = null;\n b.lanes = 0;\n Fh.current = null === a || null === a.memoizedState ? Oh : Ph;\n a = c(d, e);\n if (Jh) {\n f = 0;\n do {\n Jh = !1;\n Kh = 0;\n if (25 <= f) throw Error(p(301));\n f += 1;\n O = N = null;\n b.updateQueue = null;\n Fh.current = Qh;\n a = c(d, e);\n } while (Jh);\n }\n Fh.current = Rh;\n b = null !== N && null !== N.next;\n Hh = 0;\n O = N = M = null;\n Ih = !1;\n if (b) throw Error(p(300));\n return a;\n}\nfunction Sh() {\n var a = 0 !== Kh;\n Kh = 0;\n return a;\n}\nfunction Th() {\n var a = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === O ? M.memoizedState = O = a : O = O.next = a;\n return O;\n}\nfunction Uh() {\n if (null === N) {\n var a = M.alternate;\n a = null !== a ? a.memoizedState : null;\n } else a = N.next;\n var b = null === O ? M.memoizedState : O.next;\n if (null !== b) O = b, N = a;else {\n if (null === a) throw Error(p(310));\n N = a;\n a = {\n memoizedState: N.memoizedState,\n baseState: N.baseState,\n baseQueue: N.baseQueue,\n queue: N.queue,\n next: null\n };\n null === O ? M.memoizedState = O = a : O = O.next = a;\n }\n return O;\n}\nfunction Vh(a, b) {\n return \"function\" === typeof b ? b(a) : b;\n}\nfunction Wh(a) {\n var b = Uh(),\n c = b.queue;\n if (null === c) throw Error(p(311));\n c.lastRenderedReducer = a;\n var d = N,\n e = d.baseQueue,\n f = c.pending;\n if (null !== f) {\n if (null !== e) {\n var g = e.next;\n e.next = f.next;\n f.next = g;\n }\n d.baseQueue = e = f;\n c.pending = null;\n }\n if (null !== e) {\n f = e.next;\n d = d.baseState;\n var h = g = null,\n k = null,\n l = f;\n do {\n var m = l.lane;\n if ((Hh & m) === m) null !== k && (k = k.next = {\n lane: 0,\n action: l.action,\n hasEagerState: l.hasEagerState,\n eagerState: l.eagerState,\n next: null\n }), d = l.hasEagerState ? l.eagerState : a(d, l.action);else {\n var q = {\n lane: m,\n action: l.action,\n hasEagerState: l.hasEagerState,\n eagerState: l.eagerState,\n next: null\n };\n null === k ? (h = k = q, g = d) : k = k.next = q;\n M.lanes |= m;\n rh |= m;\n }\n l = l.next;\n } while (null !== l && l !== f);\n null === k ? g = d : k.next = h;\n He(d, b.memoizedState) || (dh = !0);\n b.memoizedState = d;\n b.baseState = g;\n b.baseQueue = k;\n c.lastRenderedState = d;\n }\n a = c.interleaved;\n if (null !== a) {\n e = a;\n do f = e.lane, M.lanes |= f, rh |= f, e = e.next; while (e !== a);\n } else null === e && (c.lanes = 0);\n return [b.memoizedState, c.dispatch];\n}\nfunction Xh(a) {\n var b = Uh(),\n c = b.queue;\n if (null === c) throw Error(p(311));\n c.lastRenderedReducer = a;\n var d = c.dispatch,\n e = c.pending,\n f = b.memoizedState;\n if (null !== e) {\n c.pending = null;\n var g = e = e.next;\n do f = a(f, g.action), g = g.next; while (g !== e);\n He(f, b.memoizedState) || (dh = !0);\n b.memoizedState = f;\n null === b.baseQueue && (b.baseState = f);\n c.lastRenderedState = f;\n }\n return [f, d];\n}\nfunction Yh() {}\nfunction Zh(a, b) {\n var c = M,\n d = Uh(),\n e = b(),\n f = !He(d.memoizedState, e);\n f && (d.memoizedState = e, dh = !0);\n d = d.queue;\n $h(ai.bind(null, c, d, a), [a]);\n if (d.getSnapshot !== b || f || null !== O && O.memoizedState.tag & 1) {\n c.flags |= 2048;\n bi(9, ci.bind(null, c, d, e, b), void 0, null);\n if (null === Q) throw Error(p(349));\n 0 !== (Hh & 30) || di(c, b, e);\n }\n return e;\n}\nfunction di(a, b, c) {\n a.flags |= 16384;\n a = {\n getSnapshot: b,\n value: c\n };\n b = M.updateQueue;\n null === b ? (b = {\n lastEffect: null,\n stores: null\n }, M.updateQueue = b, b.stores = [a]) : (c = b.stores, null === c ? b.stores = [a] : c.push(a));\n}\nfunction ci(a, b, c, d) {\n b.value = c;\n b.getSnapshot = d;\n ei(b) && fi(a);\n}\nfunction ai(a, b, c) {\n return c(function () {\n ei(b) && fi(a);\n });\n}\nfunction ei(a) {\n var b = a.getSnapshot;\n a = a.value;\n try {\n var c = b();\n return !He(a, c);\n } catch (d) {\n return !0;\n }\n}\nfunction fi(a) {\n var b = ih(a, 1);\n null !== b && gi(b, a, 1, -1);\n}\nfunction hi(a) {\n var b = Th();\n \"function\" === typeof a && (a = a());\n b.memoizedState = b.baseState = a;\n a = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: Vh,\n lastRenderedState: a\n };\n b.queue = a;\n a = a.dispatch = ii.bind(null, M, a);\n return [b.memoizedState, a];\n}\nfunction bi(a, b, c, d) {\n a = {\n tag: a,\n create: b,\n destroy: c,\n deps: d,\n next: null\n };\n b = M.updateQueue;\n null === b ? (b = {\n lastEffect: null,\n stores: null\n }, M.updateQueue = b, b.lastEffect = a.next = a) : (c = b.lastEffect, null === c ? b.lastEffect = a.next = a : (d = c.next, c.next = a, a.next = d, b.lastEffect = a));\n return a;\n}\nfunction ji() {\n return Uh().memoizedState;\n}\nfunction ki(a, b, c, d) {\n var e = Th();\n M.flags |= a;\n e.memoizedState = bi(1 | b, c, void 0, void 0 === d ? null : d);\n}\nfunction li(a, b, c, d) {\n var e = Uh();\n d = void 0 === d ? null : d;\n var f = void 0;\n if (null !== N) {\n var g = N.memoizedState;\n f = g.destroy;\n if (null !== d && Mh(d, g.deps)) {\n e.memoizedState = bi(b, c, f, d);\n return;\n }\n }\n M.flags |= a;\n e.memoizedState = bi(1 | b, c, f, d);\n}\nfunction mi(a, b) {\n return ki(8390656, 8, a, b);\n}\nfunction $h(a, b) {\n return li(2048, 8, a, b);\n}\nfunction ni(a, b) {\n return li(4, 2, a, b);\n}\nfunction oi(a, b) {\n return li(4, 4, a, b);\n}\nfunction pi(a, b) {\n if (\"function\" === typeof b) return a = a(), b(a), function () {\n b(null);\n };\n if (null !== b && void 0 !== b) return a = a(), b.current = a, function () {\n b.current = null;\n };\n}\nfunction qi(a, b, c) {\n c = null !== c && void 0 !== c ? c.concat([a]) : null;\n return li(4, 4, pi.bind(null, b, a), c);\n}\nfunction ri() {}\nfunction si(a, b) {\n var c = Uh();\n b = void 0 === b ? null : b;\n var d = c.memoizedState;\n if (null !== d && null !== b && Mh(b, d[1])) return d[0];\n c.memoizedState = [a, b];\n return a;\n}\nfunction ti(a, b) {\n var c = Uh();\n b = void 0 === b ? null : b;\n var d = c.memoizedState;\n if (null !== d && null !== b && Mh(b, d[1])) return d[0];\n a = a();\n c.memoizedState = [a, b];\n return a;\n}\nfunction ui(a, b, c) {\n if (0 === (Hh & 21)) return a.baseState && (a.baseState = !1, dh = !0), a.memoizedState = c;\n He(c, b) || (c = yc(), M.lanes |= c, rh |= c, a.baseState = !0);\n return b;\n}\nfunction vi(a, b) {\n var c = C;\n C = 0 !== c && 4 > c ? c : 4;\n a(!0);\n var d = Gh.transition;\n Gh.transition = {};\n try {\n a(!1), b();\n } finally {\n C = c, Gh.transition = d;\n }\n}\nfunction wi() {\n return Uh().memoizedState;\n}\nfunction xi(a, b, c) {\n var d = yi(a);\n c = {\n lane: d,\n action: c,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (zi(a)) Ai(b, c);else if (c = hh(a, b, c, d), null !== c) {\n var e = R();\n gi(c, a, d, e);\n Bi(c, b, d);\n }\n}\nfunction ii(a, b, c) {\n var d = yi(a),\n e = {\n lane: d,\n action: c,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (zi(a)) Ai(b, e);else {\n var f = a.alternate;\n if (0 === a.lanes && (null === f || 0 === f.lanes) && (f = b.lastRenderedReducer, null !== f)) try {\n var g = b.lastRenderedState,\n h = f(g, c);\n e.hasEagerState = !0;\n e.eagerState = h;\n if (He(h, g)) {\n var k = b.interleaved;\n null === k ? (e.next = e, gh(b)) : (e.next = k.next, k.next = e);\n b.interleaved = e;\n return;\n }\n } catch (l) {} finally {}\n c = hh(a, b, e, d);\n null !== c && (e = R(), gi(c, a, d, e), Bi(c, b, d));\n }\n}\nfunction zi(a) {\n var b = a.alternate;\n return a === M || null !== b && b === M;\n}\nfunction Ai(a, b) {\n Jh = Ih = !0;\n var c = a.pending;\n null === c ? b.next = b : (b.next = c.next, c.next = b);\n a.pending = b;\n}\nfunction Bi(a, b, c) {\n if (0 !== (c & 4194240)) {\n var d = b.lanes;\n d &= a.pendingLanes;\n c |= d;\n b.lanes = c;\n Cc(a, c);\n }\n}\nvar Rh = {\n readContext: eh,\n useCallback: P,\n useContext: P,\n useEffect: P,\n useImperativeHandle: P,\n useInsertionEffect: P,\n useLayoutEffect: P,\n useMemo: P,\n useReducer: P,\n useRef: P,\n useState: P,\n useDebugValue: P,\n useDeferredValue: P,\n useTransition: P,\n useMutableSource: P,\n useSyncExternalStore: P,\n useId: P,\n unstable_isNewReconciler: !1\n },\n Oh = {\n readContext: eh,\n useCallback: function (a, b) {\n Th().memoizedState = [a, void 0 === b ? null : b];\n return a;\n },\n useContext: eh,\n useEffect: mi,\n useImperativeHandle: function (a, b, c) {\n c = null !== c && void 0 !== c ? c.concat([a]) : null;\n return ki(4194308, 4, pi.bind(null, b, a), c);\n },\n useLayoutEffect: function (a, b) {\n return ki(4194308, 4, a, b);\n },\n useInsertionEffect: function (a, b) {\n return ki(4, 2, a, b);\n },\n useMemo: function (a, b) {\n var c = Th();\n b = void 0 === b ? null : b;\n a = a();\n c.memoizedState = [a, b];\n return a;\n },\n useReducer: function (a, b, c) {\n var d = Th();\n b = void 0 !== c ? c(b) : b;\n d.memoizedState = d.baseState = b;\n a = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: a,\n lastRenderedState: b\n };\n d.queue = a;\n a = a.dispatch = xi.bind(null, M, a);\n return [d.memoizedState, a];\n },\n useRef: function (a) {\n var b = Th();\n a = {\n current: a\n };\n return b.memoizedState = a;\n },\n useState: hi,\n useDebugValue: ri,\n useDeferredValue: function (a) {\n return Th().memoizedState = a;\n },\n useTransition: function () {\n var a = hi(!1),\n b = a[0];\n a = vi.bind(null, a[1]);\n Th().memoizedState = a;\n return [b, a];\n },\n useMutableSource: function () {},\n useSyncExternalStore: function (a, b, c) {\n var d = M,\n e = Th();\n if (I) {\n if (void 0 === c) throw Error(p(407));\n c = c();\n } else {\n c = b();\n if (null === Q) throw Error(p(349));\n 0 !== (Hh & 30) || di(d, b, c);\n }\n e.memoizedState = c;\n var f = {\n value: c,\n getSnapshot: b\n };\n e.queue = f;\n mi(ai.bind(null, d, f, a), [a]);\n d.flags |= 2048;\n bi(9, ci.bind(null, d, f, c, b), void 0, null);\n return c;\n },\n useId: function () {\n var a = Th(),\n b = Q.identifierPrefix;\n if (I) {\n var c = sg;\n var d = rg;\n c = (d & ~(1 << 32 - oc(d) - 1)).toString(32) + c;\n b = \":\" + b + \"R\" + c;\n c = Kh++;\n 0 < c && (b += \"H\" + c.toString(32));\n b += \":\";\n } else c = Lh++, b = \":\" + b + \"r\" + c.toString(32) + \":\";\n return a.memoizedState = b;\n },\n unstable_isNewReconciler: !1\n },\n Ph = {\n readContext: eh,\n useCallback: si,\n useContext: eh,\n useEffect: $h,\n useImperativeHandle: qi,\n useInsertionEffect: ni,\n useLayoutEffect: oi,\n useMemo: ti,\n useReducer: Wh,\n useRef: ji,\n useState: function () {\n return Wh(Vh);\n },\n useDebugValue: ri,\n useDeferredValue: function (a) {\n var b = Uh();\n return ui(b, N.memoizedState, a);\n },\n useTransition: function () {\n var a = Wh(Vh)[0],\n b = Uh().memoizedState;\n return [a, b];\n },\n useMutableSource: Yh,\n useSyncExternalStore: Zh,\n useId: wi,\n unstable_isNewReconciler: !1\n },\n Qh = {\n readContext: eh,\n useCallback: si,\n useContext: eh,\n useEffect: $h,\n useImperativeHandle: qi,\n useInsertionEffect: ni,\n useLayoutEffect: oi,\n useMemo: ti,\n useReducer: Xh,\n useRef: ji,\n useState: function () {\n return Xh(Vh);\n },\n useDebugValue: ri,\n useDeferredValue: function (a) {\n var b = Uh();\n return null === N ? b.memoizedState = a : ui(b, N.memoizedState, a);\n },\n useTransition: function () {\n var a = Xh(Vh)[0],\n b = Uh().memoizedState;\n return [a, b];\n },\n useMutableSource: Yh,\n useSyncExternalStore: Zh,\n useId: wi,\n unstable_isNewReconciler: !1\n };\nfunction Ci(a, b) {\n if (a && a.defaultProps) {\n b = A({}, b);\n a = a.defaultProps;\n for (var c in a) void 0 === b[c] && (b[c] = a[c]);\n return b;\n }\n return b;\n}\nfunction Di(a, b, c, d) {\n b = a.memoizedState;\n c = c(d, b);\n c = null === c || void 0 === c ? b : A({}, b, c);\n a.memoizedState = c;\n 0 === a.lanes && (a.updateQueue.baseState = c);\n}\nvar Ei = {\n isMounted: function (a) {\n return (a = a._reactInternals) ? Vb(a) === a : !1;\n },\n enqueueSetState: function (a, b, c) {\n a = a._reactInternals;\n var d = R(),\n e = yi(a),\n f = mh(d, e);\n f.payload = b;\n void 0 !== c && null !== c && (f.callback = c);\n b = nh(a, f, e);\n null !== b && (gi(b, a, e, d), oh(b, a, e));\n },\n enqueueReplaceState: function (a, b, c) {\n a = a._reactInternals;\n var d = R(),\n e = yi(a),\n f = mh(d, e);\n f.tag = 1;\n f.payload = b;\n void 0 !== c && null !== c && (f.callback = c);\n b = nh(a, f, e);\n null !== b && (gi(b, a, e, d), oh(b, a, e));\n },\n enqueueForceUpdate: function (a, b) {\n a = a._reactInternals;\n var c = R(),\n d = yi(a),\n e = mh(c, d);\n e.tag = 2;\n void 0 !== b && null !== b && (e.callback = b);\n b = nh(a, e, d);\n null !== b && (gi(b, a, d, c), oh(b, a, d));\n }\n};\nfunction Fi(a, b, c, d, e, f, g) {\n a = a.stateNode;\n return \"function\" === typeof a.shouldComponentUpdate ? a.shouldComponentUpdate(d, f, g) : b.prototype && b.prototype.isPureReactComponent ? !Ie(c, d) || !Ie(e, f) : !0;\n}\nfunction Gi(a, b, c) {\n var d = !1,\n e = Vf;\n var f = b.contextType;\n \"object\" === typeof f && null !== f ? f = eh(f) : (e = Zf(b) ? Xf : H.current, d = b.contextTypes, f = (d = null !== d && void 0 !== d) ? Yf(a, e) : Vf);\n b = new b(c, f);\n a.memoizedState = null !== b.state && void 0 !== b.state ? b.state : null;\n b.updater = Ei;\n a.stateNode = b;\n b._reactInternals = a;\n d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = e, a.__reactInternalMemoizedMaskedChildContext = f);\n return b;\n}\nfunction Hi(a, b, c, d) {\n a = b.state;\n \"function\" === typeof b.componentWillReceiveProps && b.componentWillReceiveProps(c, d);\n \"function\" === typeof b.UNSAFE_componentWillReceiveProps && b.UNSAFE_componentWillReceiveProps(c, d);\n b.state !== a && Ei.enqueueReplaceState(b, b.state, null);\n}\nfunction Ii(a, b, c, d) {\n var e = a.stateNode;\n e.props = c;\n e.state = a.memoizedState;\n e.refs = {};\n kh(a);\n var f = b.contextType;\n \"object\" === typeof f && null !== f ? e.context = eh(f) : (f = Zf(b) ? Xf : H.current, e.context = Yf(a, f));\n e.state = a.memoizedState;\n f = b.getDerivedStateFromProps;\n \"function\" === typeof f && (Di(a, b, f, c), e.state = a.memoizedState);\n \"function\" === typeof b.getDerivedStateFromProps || \"function\" === typeof e.getSnapshotBeforeUpdate || \"function\" !== typeof e.UNSAFE_componentWillMount && \"function\" !== typeof e.componentWillMount || (b = e.state, \"function\" === typeof e.componentWillMount && e.componentWillMount(), \"function\" === typeof e.UNSAFE_componentWillMount && e.UNSAFE_componentWillMount(), b !== e.state && Ei.enqueueReplaceState(e, e.state, null), qh(a, c, e, d), e.state = a.memoizedState);\n \"function\" === typeof e.componentDidMount && (a.flags |= 4194308);\n}\nfunction Ji(a, b) {\n try {\n var c = \"\",\n d = b;\n do c += Pa(d), d = d.return; while (d);\n var e = c;\n } catch (f) {\n e = \"\\nError generating stack: \" + f.message + \"\\n\" + f.stack;\n }\n return {\n value: a,\n source: b,\n stack: e,\n digest: null\n };\n}\nfunction Ki(a, b, c) {\n return {\n value: a,\n source: null,\n stack: null != c ? c : null,\n digest: null != b ? b : null\n };\n}\nfunction Li(a, b) {\n try {\n console.error(b.value);\n } catch (c) {\n setTimeout(function () {\n throw c;\n });\n }\n}\nvar Mi = \"function\" === typeof WeakMap ? WeakMap : Map;\nfunction Ni(a, b, c) {\n c = mh(-1, c);\n c.tag = 3;\n c.payload = {\n element: null\n };\n var d = b.value;\n c.callback = function () {\n Oi || (Oi = !0, Pi = d);\n Li(a, b);\n };\n return c;\n}\nfunction Qi(a, b, c) {\n c = mh(-1, c);\n c.tag = 3;\n var d = a.type.getDerivedStateFromError;\n if (\"function\" === typeof d) {\n var e = b.value;\n c.payload = function () {\n return d(e);\n };\n c.callback = function () {\n Li(a, b);\n };\n }\n var f = a.stateNode;\n null !== f && \"function\" === typeof f.componentDidCatch && (c.callback = function () {\n Li(a, b);\n \"function\" !== typeof d && (null === Ri ? Ri = new Set([this]) : Ri.add(this));\n var c = b.stack;\n this.componentDidCatch(b.value, {\n componentStack: null !== c ? c : \"\"\n });\n });\n return c;\n}\nfunction Si(a, b, c) {\n var d = a.pingCache;\n if (null === d) {\n d = a.pingCache = new Mi();\n var e = new Set();\n d.set(b, e);\n } else e = d.get(b), void 0 === e && (e = new Set(), d.set(b, e));\n e.has(c) || (e.add(c), a = Ti.bind(null, a, b, c), b.then(a, a));\n}\nfunction Ui(a) {\n do {\n var b;\n if (b = 13 === a.tag) b = a.memoizedState, b = null !== b ? null !== b.dehydrated ? !0 : !1 : !0;\n if (b) return a;\n a = a.return;\n } while (null !== a);\n return null;\n}\nfunction Vi(a, b, c, d, e) {\n if (0 === (a.mode & 1)) return a === b ? a.flags |= 65536 : (a.flags |= 128, c.flags |= 131072, c.flags &= -52805, 1 === c.tag && (null === c.alternate ? c.tag = 17 : (b = mh(-1, 1), b.tag = 2, nh(c, b, 1))), c.lanes |= 1), a;\n a.flags |= 65536;\n a.lanes = e;\n return a;\n}\nvar Wi = ua.ReactCurrentOwner,\n dh = !1;\nfunction Xi(a, b, c, d) {\n b.child = null === a ? Vg(b, null, c, d) : Ug(b, a.child, c, d);\n}\nfunction Yi(a, b, c, d, e) {\n c = c.render;\n var f = b.ref;\n ch(b, e);\n d = Nh(a, b, c, d, f, e);\n c = Sh();\n if (null !== a && !dh) return b.updateQueue = a.updateQueue, b.flags &= -2053, a.lanes &= ~e, Zi(a, b, e);\n I && c && vg(b);\n b.flags |= 1;\n Xi(a, b, d, e);\n return b.child;\n}\nfunction $i(a, b, c, d, e) {\n if (null === a) {\n var f = c.type;\n if (\"function\" === typeof f && !aj(f) && void 0 === f.defaultProps && null === c.compare && void 0 === c.defaultProps) return b.tag = 15, b.type = f, bj(a, b, f, d, e);\n a = Rg(c.type, null, d, b, b.mode, e);\n a.ref = b.ref;\n a.return = b;\n return b.child = a;\n }\n f = a.child;\n if (0 === (a.lanes & e)) {\n var g = f.memoizedProps;\n c = c.compare;\n c = null !== c ? c : Ie;\n if (c(g, d) && a.ref === b.ref) return Zi(a, b, e);\n }\n b.flags |= 1;\n a = Pg(f, d);\n a.ref = b.ref;\n a.return = b;\n return b.child = a;\n}\nfunction bj(a, b, c, d, e) {\n if (null !== a) {\n var f = a.memoizedProps;\n if (Ie(f, d) && a.ref === b.ref) if (dh = !1, b.pendingProps = d = f, 0 !== (a.lanes & e)) 0 !== (a.flags & 131072) && (dh = !0);else return b.lanes = a.lanes, Zi(a, b, e);\n }\n return cj(a, b, c, d, e);\n}\nfunction dj(a, b, c) {\n var d = b.pendingProps,\n e = d.children,\n f = null !== a ? a.memoizedState : null;\n if (\"hidden\" === d.mode) {\n if (0 === (b.mode & 1)) b.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n }, G(ej, fj), fj |= c;else {\n if (0 === (c & 1073741824)) return a = null !== f ? f.baseLanes | c : c, b.lanes = b.childLanes = 1073741824, b.memoizedState = {\n baseLanes: a,\n cachePool: null,\n transitions: null\n }, b.updateQueue = null, G(ej, fj), fj |= a, null;\n b.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n };\n d = null !== f ? f.baseLanes : c;\n G(ej, fj);\n fj |= d;\n }\n } else null !== f ? (d = f.baseLanes | c, b.memoizedState = null) : d = c, G(ej, fj), fj |= d;\n Xi(a, b, e, c);\n return b.child;\n}\nfunction gj(a, b) {\n var c = b.ref;\n if (null === a && null !== c || null !== a && a.ref !== c) b.flags |= 512, b.flags |= 2097152;\n}\nfunction cj(a, b, c, d, e) {\n var f = Zf(c) ? Xf : H.current;\n f = Yf(b, f);\n ch(b, e);\n c = Nh(a, b, c, d, f, e);\n d = Sh();\n if (null !== a && !dh) return b.updateQueue = a.updateQueue, b.flags &= -2053, a.lanes &= ~e, Zi(a, b, e);\n I && d && vg(b);\n b.flags |= 1;\n Xi(a, b, c, e);\n return b.child;\n}\nfunction hj(a, b, c, d, e) {\n if (Zf(c)) {\n var f = !0;\n cg(b);\n } else f = !1;\n ch(b, e);\n if (null === b.stateNode) ij(a, b), Gi(b, c, d), Ii(b, c, d, e), d = !0;else if (null === a) {\n var g = b.stateNode,\n h = b.memoizedProps;\n g.props = h;\n var k = g.context,\n l = c.contextType;\n \"object\" === typeof l && null !== l ? l = eh(l) : (l = Zf(c) ? Xf : H.current, l = Yf(b, l));\n var m = c.getDerivedStateFromProps,\n q = \"function\" === typeof m || \"function\" === typeof g.getSnapshotBeforeUpdate;\n q || \"function\" !== typeof g.UNSAFE_componentWillReceiveProps && \"function\" !== typeof g.componentWillReceiveProps || (h !== d || k !== l) && Hi(b, g, d, l);\n jh = !1;\n var r = b.memoizedState;\n g.state = r;\n qh(b, d, g, e);\n k = b.memoizedState;\n h !== d || r !== k || Wf.current || jh ? (\"function\" === typeof m && (Di(b, c, m, d), k = b.memoizedState), (h = jh || Fi(b, c, h, d, r, k, l)) ? (q || \"function\" !== typeof g.UNSAFE_componentWillMount && \"function\" !== typeof g.componentWillMount || (\"function\" === typeof g.componentWillMount && g.componentWillMount(), \"function\" === typeof g.UNSAFE_componentWillMount && g.UNSAFE_componentWillMount()), \"function\" === typeof g.componentDidMount && (b.flags |= 4194308)) : (\"function\" === typeof g.componentDidMount && (b.flags |= 4194308), b.memoizedProps = d, b.memoizedState = k), g.props = d, g.state = k, g.context = l, d = h) : (\"function\" === typeof g.componentDidMount && (b.flags |= 4194308), d = !1);\n } else {\n g = b.stateNode;\n lh(a, b);\n h = b.memoizedProps;\n l = b.type === b.elementType ? h : Ci(b.type, h);\n g.props = l;\n q = b.pendingProps;\n r = g.context;\n k = c.contextType;\n \"object\" === typeof k && null !== k ? k = eh(k) : (k = Zf(c) ? Xf : H.current, k = Yf(b, k));\n var y = c.getDerivedStateFromProps;\n (m = \"function\" === typeof y || \"function\" === typeof g.getSnapshotBeforeUpdate) || \"function\" !== typeof g.UNSAFE_componentWillReceiveProps && \"function\" !== typeof g.componentWillReceiveProps || (h !== q || r !== k) && Hi(b, g, d, k);\n jh = !1;\n r = b.memoizedState;\n g.state = r;\n qh(b, d, g, e);\n var n = b.memoizedState;\n h !== q || r !== n || Wf.current || jh ? (\"function\" === typeof y && (Di(b, c, y, d), n = b.memoizedState), (l = jh || Fi(b, c, l, d, r, n, k) || !1) ? (m || \"function\" !== typeof g.UNSAFE_componentWillUpdate && \"function\" !== typeof g.componentWillUpdate || (\"function\" === typeof g.componentWillUpdate && g.componentWillUpdate(d, n, k), \"function\" === typeof g.UNSAFE_componentWillUpdate && g.UNSAFE_componentWillUpdate(d, n, k)), \"function\" === typeof g.componentDidUpdate && (b.flags |= 4), \"function\" === typeof g.getSnapshotBeforeUpdate && (b.flags |= 1024)) : (\"function\" !== typeof g.componentDidUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 4), \"function\" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 1024), b.memoizedProps = d, b.memoizedState = n), g.props = d, g.state = n, g.context = k, d = l) : (\"function\" !== typeof g.componentDidUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 4), \"function\" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 1024), d = !1);\n }\n return jj(a, b, c, d, f, e);\n}\nfunction jj(a, b, c, d, e, f) {\n gj(a, b);\n var g = 0 !== (b.flags & 128);\n if (!d && !g) return e && dg(b, c, !1), Zi(a, b, f);\n d = b.stateNode;\n Wi.current = b;\n var h = g && \"function\" !== typeof c.getDerivedStateFromError ? null : d.render();\n b.flags |= 1;\n null !== a && g ? (b.child = Ug(b, a.child, null, f), b.child = Ug(b, null, h, f)) : Xi(a, b, h, f);\n b.memoizedState = d.state;\n e && dg(b, c, !0);\n return b.child;\n}\nfunction kj(a) {\n var b = a.stateNode;\n b.pendingContext ? ag(a, b.pendingContext, b.pendingContext !== b.context) : b.context && ag(a, b.context, !1);\n yh(a, b.containerInfo);\n}\nfunction lj(a, b, c, d, e) {\n Ig();\n Jg(e);\n b.flags |= 256;\n Xi(a, b, c, d);\n return b.child;\n}\nvar mj = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0\n};\nfunction nj(a) {\n return {\n baseLanes: a,\n cachePool: null,\n transitions: null\n };\n}\nfunction oj(a, b, c) {\n var d = b.pendingProps,\n e = L.current,\n f = !1,\n g = 0 !== (b.flags & 128),\n h;\n (h = g) || (h = null !== a && null === a.memoizedState ? !1 : 0 !== (e & 2));\n if (h) f = !0, b.flags &= -129;else if (null === a || null !== a.memoizedState) e |= 1;\n G(L, e & 1);\n if (null === a) {\n Eg(b);\n a = b.memoizedState;\n if (null !== a && (a = a.dehydrated, null !== a)) return 0 === (b.mode & 1) ? b.lanes = 1 : \"$!\" === a.data ? b.lanes = 8 : b.lanes = 1073741824, null;\n g = d.children;\n a = d.fallback;\n return f ? (d = b.mode, f = b.child, g = {\n mode: \"hidden\",\n children: g\n }, 0 === (d & 1) && null !== f ? (f.childLanes = 0, f.pendingProps = g) : f = pj(g, d, 0, null), a = Tg(a, d, c, null), f.return = b, a.return = b, f.sibling = a, b.child = f, b.child.memoizedState = nj(c), b.memoizedState = mj, a) : qj(b, g);\n }\n e = a.memoizedState;\n if (null !== e && (h = e.dehydrated, null !== h)) return rj(a, b, g, d, h, e, c);\n if (f) {\n f = d.fallback;\n g = b.mode;\n e = a.child;\n h = e.sibling;\n var k = {\n mode: \"hidden\",\n children: d.children\n };\n 0 === (g & 1) && b.child !== e ? (d = b.child, d.childLanes = 0, d.pendingProps = k, b.deletions = null) : (d = Pg(e, k), d.subtreeFlags = e.subtreeFlags & 14680064);\n null !== h ? f = Pg(h, f) : (f = Tg(f, g, c, null), f.flags |= 2);\n f.return = b;\n d.return = b;\n d.sibling = f;\n b.child = d;\n d = f;\n f = b.child;\n g = a.child.memoizedState;\n g = null === g ? nj(c) : {\n baseLanes: g.baseLanes | c,\n cachePool: null,\n transitions: g.transitions\n };\n f.memoizedState = g;\n f.childLanes = a.childLanes & ~c;\n b.memoizedState = mj;\n return d;\n }\n f = a.child;\n a = f.sibling;\n d = Pg(f, {\n mode: \"visible\",\n children: d.children\n });\n 0 === (b.mode & 1) && (d.lanes = c);\n d.return = b;\n d.sibling = null;\n null !== a && (c = b.deletions, null === c ? (b.deletions = [a], b.flags |= 16) : c.push(a));\n b.child = d;\n b.memoizedState = null;\n return d;\n}\nfunction qj(a, b) {\n b = pj({\n mode: \"visible\",\n children: b\n }, a.mode, 0, null);\n b.return = a;\n return a.child = b;\n}\nfunction sj(a, b, c, d) {\n null !== d && Jg(d);\n Ug(b, a.child, null, c);\n a = qj(b, b.pendingProps.children);\n a.flags |= 2;\n b.memoizedState = null;\n return a;\n}\nfunction rj(a, b, c, d, e, f, g) {\n if (c) {\n if (b.flags & 256) return b.flags &= -257, d = Ki(Error(p(422))), sj(a, b, g, d);\n if (null !== b.memoizedState) return b.child = a.child, b.flags |= 128, null;\n f = d.fallback;\n e = b.mode;\n d = pj({\n mode: \"visible\",\n children: d.children\n }, e, 0, null);\n f = Tg(f, e, g, null);\n f.flags |= 2;\n d.return = b;\n f.return = b;\n d.sibling = f;\n b.child = d;\n 0 !== (b.mode & 1) && Ug(b, a.child, null, g);\n b.child.memoizedState = nj(g);\n b.memoizedState = mj;\n return f;\n }\n if (0 === (b.mode & 1)) return sj(a, b, g, null);\n if (\"$!\" === e.data) {\n d = e.nextSibling && e.nextSibling.dataset;\n if (d) var h = d.dgst;\n d = h;\n f = Error(p(419));\n d = Ki(f, d, void 0);\n return sj(a, b, g, d);\n }\n h = 0 !== (g & a.childLanes);\n if (dh || h) {\n d = Q;\n if (null !== d) {\n switch (g & -g) {\n case 4:\n e = 2;\n break;\n case 16:\n e = 8;\n break;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n e = 32;\n break;\n case 536870912:\n e = 268435456;\n break;\n default:\n e = 0;\n }\n e = 0 !== (e & (d.suspendedLanes | g)) ? 0 : e;\n 0 !== e && e !== f.retryLane && (f.retryLane = e, ih(a, e), gi(d, a, e, -1));\n }\n tj();\n d = Ki(Error(p(421)));\n return sj(a, b, g, d);\n }\n if (\"$?\" === e.data) return b.flags |= 128, b.child = a.child, b = uj.bind(null, a), e._reactRetry = b, null;\n a = f.treeContext;\n yg = Lf(e.nextSibling);\n xg = b;\n I = !0;\n zg = null;\n null !== a && (og[pg++] = rg, og[pg++] = sg, og[pg++] = qg, rg = a.id, sg = a.overflow, qg = b);\n b = qj(b, d.children);\n b.flags |= 4096;\n return b;\n}\nfunction vj(a, b, c) {\n a.lanes |= b;\n var d = a.alternate;\n null !== d && (d.lanes |= b);\n bh(a.return, b, c);\n}\nfunction wj(a, b, c, d, e) {\n var f = a.memoizedState;\n null === f ? a.memoizedState = {\n isBackwards: b,\n rendering: null,\n renderingStartTime: 0,\n last: d,\n tail: c,\n tailMode: e\n } : (f.isBackwards = b, f.rendering = null, f.renderingStartTime = 0, f.last = d, f.tail = c, f.tailMode = e);\n}\nfunction xj(a, b, c) {\n var d = b.pendingProps,\n e = d.revealOrder,\n f = d.tail;\n Xi(a, b, d.children, c);\n d = L.current;\n if (0 !== (d & 2)) d = d & 1 | 2, b.flags |= 128;else {\n if (null !== a && 0 !== (a.flags & 128)) a: for (a = b.child; null !== a;) {\n if (13 === a.tag) null !== a.memoizedState && vj(a, c, b);else if (19 === a.tag) vj(a, c, b);else if (null !== a.child) {\n a.child.return = a;\n a = a.child;\n continue;\n }\n if (a === b) break a;\n for (; null === a.sibling;) {\n if (null === a.return || a.return === b) break a;\n a = a.return;\n }\n a.sibling.return = a.return;\n a = a.sibling;\n }\n d &= 1;\n }\n G(L, d);\n if (0 === (b.mode & 1)) b.memoizedState = null;else switch (e) {\n case \"forwards\":\n c = b.child;\n for (e = null; null !== c;) a = c.alternate, null !== a && null === Ch(a) && (e = c), c = c.sibling;\n c = e;\n null === c ? (e = b.child, b.child = null) : (e = c.sibling, c.sibling = null);\n wj(b, !1, e, c, f);\n break;\n case \"backwards\":\n c = null;\n e = b.child;\n for (b.child = null; null !== e;) {\n a = e.alternate;\n if (null !== a && null === Ch(a)) {\n b.child = e;\n break;\n }\n a = e.sibling;\n e.sibling = c;\n c = e;\n e = a;\n }\n wj(b, !0, c, null, f);\n break;\n case \"together\":\n wj(b, !1, null, null, void 0);\n break;\n default:\n b.memoizedState = null;\n }\n return b.child;\n}\nfunction ij(a, b) {\n 0 === (b.mode & 1) && null !== a && (a.alternate = null, b.alternate = null, b.flags |= 2);\n}\nfunction Zi(a, b, c) {\n null !== a && (b.dependencies = a.dependencies);\n rh |= b.lanes;\n if (0 === (c & b.childLanes)) return null;\n if (null !== a && b.child !== a.child) throw Error(p(153));\n if (null !== b.child) {\n a = b.child;\n c = Pg(a, a.pendingProps);\n b.child = c;\n for (c.return = b; null !== a.sibling;) a = a.sibling, c = c.sibling = Pg(a, a.pendingProps), c.return = b;\n c.sibling = null;\n }\n return b.child;\n}\nfunction yj(a, b, c) {\n switch (b.tag) {\n case 3:\n kj(b);\n Ig();\n break;\n case 5:\n Ah(b);\n break;\n case 1:\n Zf(b.type) && cg(b);\n break;\n case 4:\n yh(b, b.stateNode.containerInfo);\n break;\n case 10:\n var d = b.type._context,\n e = b.memoizedProps.value;\n G(Wg, d._currentValue);\n d._currentValue = e;\n break;\n case 13:\n d = b.memoizedState;\n if (null !== d) {\n if (null !== d.dehydrated) return G(L, L.current & 1), b.flags |= 128, null;\n if (0 !== (c & b.child.childLanes)) return oj(a, b, c);\n G(L, L.current & 1);\n a = Zi(a, b, c);\n return null !== a ? a.sibling : null;\n }\n G(L, L.current & 1);\n break;\n case 19:\n d = 0 !== (c & b.childLanes);\n if (0 !== (a.flags & 128)) {\n if (d) return xj(a, b, c);\n b.flags |= 128;\n }\n e = b.memoizedState;\n null !== e && (e.rendering = null, e.tail = null, e.lastEffect = null);\n G(L, L.current);\n if (d) break;else return null;\n case 22:\n case 23:\n return b.lanes = 0, dj(a, b, c);\n }\n return Zi(a, b, c);\n}\nvar zj, Aj, Bj, Cj;\nzj = function (a, b) {\n for (var c = b.child; null !== c;) {\n if (5 === c.tag || 6 === c.tag) a.appendChild(c.stateNode);else if (4 !== c.tag && null !== c.child) {\n c.child.return = c;\n c = c.child;\n continue;\n }\n if (c === b) break;\n for (; null === c.sibling;) {\n if (null === c.return || c.return === b) return;\n c = c.return;\n }\n c.sibling.return = c.return;\n c = c.sibling;\n }\n};\nAj = function () {};\nBj = function (a, b, c, d) {\n var e = a.memoizedProps;\n if (e !== d) {\n a = b.stateNode;\n xh(uh.current);\n var f = null;\n switch (c) {\n case \"input\":\n e = Ya(a, e);\n d = Ya(a, d);\n f = [];\n break;\n case \"select\":\n e = A({}, e, {\n value: void 0\n });\n d = A({}, d, {\n value: void 0\n });\n f = [];\n break;\n case \"textarea\":\n e = gb(a, e);\n d = gb(a, d);\n f = [];\n break;\n default:\n \"function\" !== typeof e.onClick && \"function\" === typeof d.onClick && (a.onclick = Bf);\n }\n ub(c, d);\n var g;\n c = null;\n for (l in e) if (!d.hasOwnProperty(l) && e.hasOwnProperty(l) && null != e[l]) if (\"style\" === l) {\n var h = e[l];\n for (g in h) h.hasOwnProperty(g) && (c || (c = {}), c[g] = \"\");\n } else \"dangerouslySetInnerHTML\" !== l && \"children\" !== l && \"suppressContentEditableWarning\" !== l && \"suppressHydrationWarning\" !== l && \"autoFocus\" !== l && (ea.hasOwnProperty(l) ? f || (f = []) : (f = f || []).push(l, null));\n for (l in d) {\n var k = d[l];\n h = null != e ? e[l] : void 0;\n if (d.hasOwnProperty(l) && k !== h && (null != k || null != h)) if (\"style\" === l) {\n if (h) {\n for (g in h) !h.hasOwnProperty(g) || k && k.hasOwnProperty(g) || (c || (c = {}), c[g] = \"\");\n for (g in k) k.hasOwnProperty(g) && h[g] !== k[g] && (c || (c = {}), c[g] = k[g]);\n } else c || (f || (f = []), f.push(l, c)), c = k;\n } else \"dangerouslySetInnerHTML\" === l ? (k = k ? k.__html : void 0, h = h ? h.__html : void 0, null != k && h !== k && (f = f || []).push(l, k)) : \"children\" === l ? \"string\" !== typeof k && \"number\" !== typeof k || (f = f || []).push(l, \"\" + k) : \"suppressContentEditableWarning\" !== l && \"suppressHydrationWarning\" !== l && (ea.hasOwnProperty(l) ? (null != k && \"onScroll\" === l && D(\"scroll\", a), f || h === k || (f = [])) : (f = f || []).push(l, k));\n }\n c && (f = f || []).push(\"style\", c);\n var l = f;\n if (b.updateQueue = l) b.flags |= 4;\n }\n};\nCj = function (a, b, c, d) {\n c !== d && (b.flags |= 4);\n};\nfunction Dj(a, b) {\n if (!I) switch (a.tailMode) {\n case \"hidden\":\n b = a.tail;\n for (var c = null; null !== b;) null !== b.alternate && (c = b), b = b.sibling;\n null === c ? a.tail = null : c.sibling = null;\n break;\n case \"collapsed\":\n c = a.tail;\n for (var d = null; null !== c;) null !== c.alternate && (d = c), c = c.sibling;\n null === d ? b || null === a.tail ? a.tail = null : a.tail.sibling = null : d.sibling = null;\n }\n}\nfunction S(a) {\n var b = null !== a.alternate && a.alternate.child === a.child,\n c = 0,\n d = 0;\n if (b) for (var e = a.child; null !== e;) c |= e.lanes | e.childLanes, d |= e.subtreeFlags & 14680064, d |= e.flags & 14680064, e.return = a, e = e.sibling;else for (e = a.child; null !== e;) c |= e.lanes | e.childLanes, d |= e.subtreeFlags, d |= e.flags, e.return = a, e = e.sibling;\n a.subtreeFlags |= d;\n a.childLanes = c;\n return b;\n}\nfunction Ej(a, b, c) {\n var d = b.pendingProps;\n wg(b);\n switch (b.tag) {\n case 2:\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return S(b), null;\n case 1:\n return Zf(b.type) && $f(), S(b), null;\n case 3:\n d = b.stateNode;\n zh();\n E(Wf);\n E(H);\n Eh();\n d.pendingContext && (d.context = d.pendingContext, d.pendingContext = null);\n if (null === a || null === a.child) Gg(b) ? b.flags |= 4 : null === a || a.memoizedState.isDehydrated && 0 === (b.flags & 256) || (b.flags |= 1024, null !== zg && (Fj(zg), zg = null));\n Aj(a, b);\n S(b);\n return null;\n case 5:\n Bh(b);\n var e = xh(wh.current);\n c = b.type;\n if (null !== a && null != b.stateNode) Bj(a, b, c, d, e), a.ref !== b.ref && (b.flags |= 512, b.flags |= 2097152);else {\n if (!d) {\n if (null === b.stateNode) throw Error(p(166));\n S(b);\n return null;\n }\n a = xh(uh.current);\n if (Gg(b)) {\n d = b.stateNode;\n c = b.type;\n var f = b.memoizedProps;\n d[Of] = b;\n d[Pf] = f;\n a = 0 !== (b.mode & 1);\n switch (c) {\n case \"dialog\":\n D(\"cancel\", d);\n D(\"close\", d);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n D(\"load\", d);\n break;\n case \"video\":\n case \"audio\":\n for (e = 0; e < lf.length; e++) D(lf[e], d);\n break;\n case \"source\":\n D(\"error\", d);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n D(\"error\", d);\n D(\"load\", d);\n break;\n case \"details\":\n D(\"toggle\", d);\n break;\n case \"input\":\n Za(d, f);\n D(\"invalid\", d);\n break;\n case \"select\":\n d._wrapperState = {\n wasMultiple: !!f.multiple\n };\n D(\"invalid\", d);\n break;\n case \"textarea\":\n hb(d, f), D(\"invalid\", d);\n }\n ub(c, f);\n e = null;\n for (var g in f) if (f.hasOwnProperty(g)) {\n var h = f[g];\n \"children\" === g ? \"string\" === typeof h ? d.textContent !== h && (!0 !== f.suppressHydrationWarning && Af(d.textContent, h, a), e = [\"children\", h]) : \"number\" === typeof h && d.textContent !== \"\" + h && (!0 !== f.suppressHydrationWarning && Af(d.textContent, h, a), e = [\"children\", \"\" + h]) : ea.hasOwnProperty(g) && null != h && \"onScroll\" === g && D(\"scroll\", d);\n }\n switch (c) {\n case \"input\":\n Va(d);\n db(d, f, !0);\n break;\n case \"textarea\":\n Va(d);\n jb(d);\n break;\n case \"select\":\n case \"option\":\n break;\n default:\n \"function\" === typeof f.onClick && (d.onclick = Bf);\n }\n d = e;\n b.updateQueue = d;\n null !== d && (b.flags |= 4);\n } else {\n g = 9 === e.nodeType ? e : e.ownerDocument;\n \"http://www.w3.org/1999/xhtml\" === a && (a = kb(c));\n \"http://www.w3.org/1999/xhtml\" === a ? \"script\" === c ? (a = g.createElement(\"div\"), a.innerHTML = \"<script>\\x3c/script>\", a = a.removeChild(a.firstChild)) : \"string\" === typeof d.is ? a = g.createElement(c, {\n is: d.is\n }) : (a = g.createElement(c), \"select\" === c && (g = a, d.multiple ? g.multiple = !0 : d.size && (g.size = d.size))) : a = g.createElementNS(a, c);\n a[Of] = b;\n a[Pf] = d;\n zj(a, b, !1, !1);\n b.stateNode = a;\n a: {\n g = vb(c, d);\n switch (c) {\n case \"dialog\":\n D(\"cancel\", a);\n D(\"close\", a);\n e = d;\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n D(\"load\", a);\n e = d;\n break;\n case \"video\":\n case \"audio\":\n for (e = 0; e < lf.length; e++) D(lf[e], a);\n e = d;\n break;\n case \"source\":\n D(\"error\", a);\n e = d;\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n D(\"error\", a);\n D(\"load\", a);\n e = d;\n break;\n case \"details\":\n D(\"toggle\", a);\n e = d;\n break;\n case \"input\":\n Za(a, d);\n e = Ya(a, d);\n D(\"invalid\", a);\n break;\n case \"option\":\n e = d;\n break;\n case \"select\":\n a._wrapperState = {\n wasMultiple: !!d.multiple\n };\n e = A({}, d, {\n value: void 0\n });\n D(\"invalid\", a);\n break;\n case \"textarea\":\n hb(a, d);\n e = gb(a, d);\n D(\"invalid\", a);\n break;\n default:\n e = d;\n }\n ub(c, e);\n h = e;\n for (f in h) if (h.hasOwnProperty(f)) {\n var k = h[f];\n \"style\" === f ? sb(a, k) : \"dangerouslySetInnerHTML\" === f ? (k = k ? k.__html : void 0, null != k && nb(a, k)) : \"children\" === f ? \"string\" === typeof k ? (\"textarea\" !== c || \"\" !== k) && ob(a, k) : \"number\" === typeof k && ob(a, \"\" + k) : \"suppressContentEditableWarning\" !== f && \"suppressHydrationWarning\" !== f && \"autoFocus\" !== f && (ea.hasOwnProperty(f) ? null != k && \"onScroll\" === f && D(\"scroll\", a) : null != k && ta(a, f, k, g));\n }\n switch (c) {\n case \"input\":\n Va(a);\n db(a, d, !1);\n break;\n case \"textarea\":\n Va(a);\n jb(a);\n break;\n case \"option\":\n null != d.value && a.setAttribute(\"value\", \"\" + Sa(d.value));\n break;\n case \"select\":\n a.multiple = !!d.multiple;\n f = d.value;\n null != f ? fb(a, !!d.multiple, f, !1) : null != d.defaultValue && fb(a, !!d.multiple, d.defaultValue, !0);\n break;\n default:\n \"function\" === typeof e.onClick && (a.onclick = Bf);\n }\n switch (c) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n d = !!d.autoFocus;\n break a;\n case \"img\":\n d = !0;\n break a;\n default:\n d = !1;\n }\n }\n d && (b.flags |= 4);\n }\n null !== b.ref && (b.flags |= 512, b.flags |= 2097152);\n }\n S(b);\n return null;\n case 6:\n if (a && null != b.stateNode) Cj(a, b, a.memoizedProps, d);else {\n if (\"string\" !== typeof d && null === b.stateNode) throw Error(p(166));\n c = xh(wh.current);\n xh(uh.current);\n if (Gg(b)) {\n d = b.stateNode;\n c = b.memoizedProps;\n d[Of] = b;\n if (f = d.nodeValue !== c) if (a = xg, null !== a) switch (a.tag) {\n case 3:\n Af(d.nodeValue, c, 0 !== (a.mode & 1));\n break;\n case 5:\n !0 !== a.memoizedProps.suppressHydrationWarning && Af(d.nodeValue, c, 0 !== (a.mode & 1));\n }\n f && (b.flags |= 4);\n } else d = (9 === c.nodeType ? c : c.ownerDocument).createTextNode(d), d[Of] = b, b.stateNode = d;\n }\n S(b);\n return null;\n case 13:\n E(L);\n d = b.memoizedState;\n if (null === a || null !== a.memoizedState && null !== a.memoizedState.dehydrated) {\n if (I && null !== yg && 0 !== (b.mode & 1) && 0 === (b.flags & 128)) Hg(), Ig(), b.flags |= 98560, f = !1;else if (f = Gg(b), null !== d && null !== d.dehydrated) {\n if (null === a) {\n if (!f) throw Error(p(318));\n f = b.memoizedState;\n f = null !== f ? f.dehydrated : null;\n if (!f) throw Error(p(317));\n f[Of] = b;\n } else Ig(), 0 === (b.flags & 128) && (b.memoizedState = null), b.flags |= 4;\n S(b);\n f = !1;\n } else null !== zg && (Fj(zg), zg = null), f = !0;\n if (!f) return b.flags & 65536 ? b : null;\n }\n if (0 !== (b.flags & 128)) return b.lanes = c, b;\n d = null !== d;\n d !== (null !== a && null !== a.memoizedState) && d && (b.child.flags |= 8192, 0 !== (b.mode & 1) && (null === a || 0 !== (L.current & 1) ? 0 === T && (T = 3) : tj()));\n null !== b.updateQueue && (b.flags |= 4);\n S(b);\n return null;\n case 4:\n return zh(), Aj(a, b), null === a && sf(b.stateNode.containerInfo), S(b), null;\n case 10:\n return ah(b.type._context), S(b), null;\n case 17:\n return Zf(b.type) && $f(), S(b), null;\n case 19:\n E(L);\n f = b.memoizedState;\n if (null === f) return S(b), null;\n d = 0 !== (b.flags & 128);\n g = f.rendering;\n if (null === g) {\n if (d) Dj(f, !1);else {\n if (0 !== T || null !== a && 0 !== (a.flags & 128)) for (a = b.child; null !== a;) {\n g = Ch(a);\n if (null !== g) {\n b.flags |= 128;\n Dj(f, !1);\n d = g.updateQueue;\n null !== d && (b.updateQueue = d, b.flags |= 4);\n b.subtreeFlags = 0;\n d = c;\n for (c = b.child; null !== c;) f = c, a = d, f.flags &= 14680066, g = f.alternate, null === g ? (f.childLanes = 0, f.lanes = a, f.child = null, f.subtreeFlags = 0, f.memoizedProps = null, f.memoizedState = null, f.updateQueue = null, f.dependencies = null, f.stateNode = null) : (f.childLanes = g.childLanes, f.lanes = g.lanes, f.child = g.child, f.subtreeFlags = 0, f.deletions = null, f.memoizedProps = g.memoizedProps, f.memoizedState = g.memoizedState, f.updateQueue = g.updateQueue, f.type = g.type, a = g.dependencies, f.dependencies = null === a ? null : {\n lanes: a.lanes,\n firstContext: a.firstContext\n }), c = c.sibling;\n G(L, L.current & 1 | 2);\n return b.child;\n }\n a = a.sibling;\n }\n null !== f.tail && B() > Gj && (b.flags |= 128, d = !0, Dj(f, !1), b.lanes = 4194304);\n }\n } else {\n if (!d) if (a = Ch(g), null !== a) {\n if (b.flags |= 128, d = !0, c = a.updateQueue, null !== c && (b.updateQueue = c, b.flags |= 4), Dj(f, !0), null === f.tail && \"hidden\" === f.tailMode && !g.alternate && !I) return S(b), null;\n } else 2 * B() - f.renderingStartTime > Gj && 1073741824 !== c && (b.flags |= 128, d = !0, Dj(f, !1), b.lanes = 4194304);\n f.isBackwards ? (g.sibling = b.child, b.child = g) : (c = f.last, null !== c ? c.sibling = g : b.child = g, f.last = g);\n }\n if (null !== f.tail) return b = f.tail, f.rendering = b, f.tail = b.sibling, f.renderingStartTime = B(), b.sibling = null, c = L.current, G(L, d ? c & 1 | 2 : c & 1), b;\n S(b);\n return null;\n case 22:\n case 23:\n return Hj(), d = null !== b.memoizedState, null !== a && null !== a.memoizedState !== d && (b.flags |= 8192), d && 0 !== (b.mode & 1) ? 0 !== (fj & 1073741824) && (S(b), b.subtreeFlags & 6 && (b.flags |= 8192)) : S(b), null;\n case 24:\n return null;\n case 25:\n return null;\n }\n throw Error(p(156, b.tag));\n}\nfunction Ij(a, b) {\n wg(b);\n switch (b.tag) {\n case 1:\n return Zf(b.type) && $f(), a = b.flags, a & 65536 ? (b.flags = a & -65537 | 128, b) : null;\n case 3:\n return zh(), E(Wf), E(H), Eh(), a = b.flags, 0 !== (a & 65536) && 0 === (a & 128) ? (b.flags = a & -65537 | 128, b) : null;\n case 5:\n return Bh(b), null;\n case 13:\n E(L);\n a = b.memoizedState;\n if (null !== a && null !== a.dehydrated) {\n if (null === b.alternate) throw Error(p(340));\n Ig();\n }\n a = b.flags;\n return a & 65536 ? (b.flags = a & -65537 | 128, b) : null;\n case 19:\n return E(L), null;\n case 4:\n return zh(), null;\n case 10:\n return ah(b.type._context), null;\n case 22:\n case 23:\n return Hj(), null;\n case 24:\n return null;\n default:\n return null;\n }\n}\nvar Jj = !1,\n U = !1,\n Kj = \"function\" === typeof WeakSet ? WeakSet : Set,\n V = null;\nfunction Lj(a, b) {\n var c = a.ref;\n if (null !== c) if (\"function\" === typeof c) try {\n c(null);\n } catch (d) {\n W(a, b, d);\n } else c.current = null;\n}\nfunction Mj(a, b, c) {\n try {\n c();\n } catch (d) {\n W(a, b, d);\n }\n}\nvar Nj = !1;\nfunction Oj(a, b) {\n Cf = dd;\n a = Me();\n if (Ne(a)) {\n if (\"selectionStart\" in a) var c = {\n start: a.selectionStart,\n end: a.selectionEnd\n };else a: {\n c = (c = a.ownerDocument) && c.defaultView || window;\n var d = c.getSelection && c.getSelection();\n if (d && 0 !== d.rangeCount) {\n c = d.anchorNode;\n var e = d.anchorOffset,\n f = d.focusNode;\n d = d.focusOffset;\n try {\n c.nodeType, f.nodeType;\n } catch (F) {\n c = null;\n break a;\n }\n var g = 0,\n h = -1,\n k = -1,\n l = 0,\n m = 0,\n q = a,\n r = null;\n b: for (;;) {\n for (var y;;) {\n q !== c || 0 !== e && 3 !== q.nodeType || (h = g + e);\n q !== f || 0 !== d && 3 !== q.nodeType || (k = g + d);\n 3 === q.nodeType && (g += q.nodeValue.length);\n if (null === (y = q.firstChild)) break;\n r = q;\n q = y;\n }\n for (;;) {\n if (q === a) break b;\n r === c && ++l === e && (h = g);\n r === f && ++m === d && (k = g);\n if (null !== (y = q.nextSibling)) break;\n q = r;\n r = q.parentNode;\n }\n q = y;\n }\n c = -1 === h || -1 === k ? null : {\n start: h,\n end: k\n };\n } else c = null;\n }\n c = c || {\n start: 0,\n end: 0\n };\n } else c = null;\n Df = {\n focusedElem: a,\n selectionRange: c\n };\n dd = !1;\n for (V = b; null !== V;) if (b = V, a = b.child, 0 !== (b.subtreeFlags & 1028) && null !== a) a.return = b, V = a;else for (; null !== V;) {\n b = V;\n try {\n var n = b.alternate;\n if (0 !== (b.flags & 1024)) switch (b.tag) {\n case 0:\n case 11:\n case 15:\n break;\n case 1:\n if (null !== n) {\n var t = n.memoizedProps,\n J = n.memoizedState,\n x = b.stateNode,\n w = x.getSnapshotBeforeUpdate(b.elementType === b.type ? t : Ci(b.type, t), J);\n x.__reactInternalSnapshotBeforeUpdate = w;\n }\n break;\n case 3:\n var u = b.stateNode.containerInfo;\n 1 === u.nodeType ? u.textContent = \"\" : 9 === u.nodeType && u.documentElement && u.removeChild(u.documentElement);\n break;\n case 5:\n case 6:\n case 4:\n case 17:\n break;\n default:\n throw Error(p(163));\n }\n } catch (F) {\n W(b, b.return, F);\n }\n a = b.sibling;\n if (null !== a) {\n a.return = b.return;\n V = a;\n break;\n }\n V = b.return;\n }\n n = Nj;\n Nj = !1;\n return n;\n}\nfunction Pj(a, b, c) {\n var d = b.updateQueue;\n d = null !== d ? d.lastEffect : null;\n if (null !== d) {\n var e = d = d.next;\n do {\n if ((e.tag & a) === a) {\n var f = e.destroy;\n e.destroy = void 0;\n void 0 !== f && Mj(b, c, f);\n }\n e = e.next;\n } while (e !== d);\n }\n}\nfunction Qj(a, b) {\n b = b.updateQueue;\n b = null !== b ? b.lastEffect : null;\n if (null !== b) {\n var c = b = b.next;\n do {\n if ((c.tag & a) === a) {\n var d = c.create;\n c.destroy = d();\n }\n c = c.next;\n } while (c !== b);\n }\n}\nfunction Rj(a) {\n var b = a.ref;\n if (null !== b) {\n var c = a.stateNode;\n switch (a.tag) {\n case 5:\n a = c;\n break;\n default:\n a = c;\n }\n \"function\" === typeof b ? b(a) : b.current = a;\n }\n}\nfunction Sj(a) {\n var b = a.alternate;\n null !== b && (a.alternate = null, Sj(b));\n a.child = null;\n a.deletions = null;\n a.sibling = null;\n 5 === a.tag && (b = a.stateNode, null !== b && (delete b[Of], delete b[Pf], delete b[of], delete b[Qf], delete b[Rf]));\n a.stateNode = null;\n a.return = null;\n a.dependencies = null;\n a.memoizedProps = null;\n a.memoizedState = null;\n a.pendingProps = null;\n a.stateNode = null;\n a.updateQueue = null;\n}\nfunction Tj(a) {\n return 5 === a.tag || 3 === a.tag || 4 === a.tag;\n}\nfunction Uj(a) {\n a: for (;;) {\n for (; null === a.sibling;) {\n if (null === a.return || Tj(a.return)) return null;\n a = a.return;\n }\n a.sibling.return = a.return;\n for (a = a.sibling; 5 !== a.tag && 6 !== a.tag && 18 !== a.tag;) {\n if (a.flags & 2) continue a;\n if (null === a.child || 4 === a.tag) continue a;else a.child.return = a, a = a.child;\n }\n if (!(a.flags & 2)) return a.stateNode;\n }\n}\nfunction Vj(a, b, c) {\n var d = a.tag;\n if (5 === d || 6 === d) a = a.stateNode, b ? 8 === c.nodeType ? c.parentNode.insertBefore(a, b) : c.insertBefore(a, b) : (8 === c.nodeType ? (b = c.parentNode, b.insertBefore(a, c)) : (b = c, b.appendChild(a)), c = c._reactRootContainer, null !== c && void 0 !== c || null !== b.onclick || (b.onclick = Bf));else if (4 !== d && (a = a.child, null !== a)) for (Vj(a, b, c), a = a.sibling; null !== a;) Vj(a, b, c), a = a.sibling;\n}\nfunction Wj(a, b, c) {\n var d = a.tag;\n if (5 === d || 6 === d) a = a.stateNode, b ? c.insertBefore(a, b) : c.appendChild(a);else if (4 !== d && (a = a.child, null !== a)) for (Wj(a, b, c), a = a.sibling; null !== a;) Wj(a, b, c), a = a.sibling;\n}\nvar X = null,\n Xj = !1;\nfunction Yj(a, b, c) {\n for (c = c.child; null !== c;) Zj(a, b, c), c = c.sibling;\n}\nfunction Zj(a, b, c) {\n if (lc && \"function\" === typeof lc.onCommitFiberUnmount) try {\n lc.onCommitFiberUnmount(kc, c);\n } catch (h) {}\n switch (c.tag) {\n case 5:\n U || Lj(c, b);\n case 6:\n var d = X,\n e = Xj;\n X = null;\n Yj(a, b, c);\n X = d;\n Xj = e;\n null !== X && (Xj ? (a = X, c = c.stateNode, 8 === a.nodeType ? a.parentNode.removeChild(c) : a.removeChild(c)) : X.removeChild(c.stateNode));\n break;\n case 18:\n null !== X && (Xj ? (a = X, c = c.stateNode, 8 === a.nodeType ? Kf(a.parentNode, c) : 1 === a.nodeType && Kf(a, c), bd(a)) : Kf(X, c.stateNode));\n break;\n case 4:\n d = X;\n e = Xj;\n X = c.stateNode.containerInfo;\n Xj = !0;\n Yj(a, b, c);\n X = d;\n Xj = e;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n if (!U && (d = c.updateQueue, null !== d && (d = d.lastEffect, null !== d))) {\n e = d = d.next;\n do {\n var f = e,\n g = f.destroy;\n f = f.tag;\n void 0 !== g && (0 !== (f & 2) ? Mj(c, b, g) : 0 !== (f & 4) && Mj(c, b, g));\n e = e.next;\n } while (e !== d);\n }\n Yj(a, b, c);\n break;\n case 1:\n if (!U && (Lj(c, b), d = c.stateNode, \"function\" === typeof d.componentWillUnmount)) try {\n d.props = c.memoizedProps, d.state = c.memoizedState, d.componentWillUnmount();\n } catch (h) {\n W(c, b, h);\n }\n Yj(a, b, c);\n break;\n case 21:\n Yj(a, b, c);\n break;\n case 22:\n c.mode & 1 ? (U = (d = U) || null !== c.memoizedState, Yj(a, b, c), U = d) : Yj(a, b, c);\n break;\n default:\n Yj(a, b, c);\n }\n}\nfunction ak(a) {\n var b = a.updateQueue;\n if (null !== b) {\n a.updateQueue = null;\n var c = a.stateNode;\n null === c && (c = a.stateNode = new Kj());\n b.forEach(function (b) {\n var d = bk.bind(null, a, b);\n c.has(b) || (c.add(b), b.then(d, d));\n });\n }\n}\nfunction ck(a, b) {\n var c = b.deletions;\n if (null !== c) for (var d = 0; d < c.length; d++) {\n var e = c[d];\n try {\n var f = a,\n g = b,\n h = g;\n a: for (; null !== h;) {\n switch (h.tag) {\n case 5:\n X = h.stateNode;\n Xj = !1;\n break a;\n case 3:\n X = h.stateNode.containerInfo;\n Xj = !0;\n break a;\n case 4:\n X = h.stateNode.containerInfo;\n Xj = !0;\n break a;\n }\n h = h.return;\n }\n if (null === X) throw Error(p(160));\n Zj(f, g, e);\n X = null;\n Xj = !1;\n var k = e.alternate;\n null !== k && (k.return = null);\n e.return = null;\n } catch (l) {\n W(e, b, l);\n }\n }\n if (b.subtreeFlags & 12854) for (b = b.child; null !== b;) dk(b, a), b = b.sibling;\n}\nfunction dk(a, b) {\n var c = a.alternate,\n d = a.flags;\n switch (a.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n ck(b, a);\n ek(a);\n if (d & 4) {\n try {\n Pj(3, a, a.return), Qj(3, a);\n } catch (t) {\n W(a, a.return, t);\n }\n try {\n Pj(5, a, a.return);\n } catch (t) {\n W(a, a.return, t);\n }\n }\n break;\n case 1:\n ck(b, a);\n ek(a);\n d & 512 && null !== c && Lj(c, c.return);\n break;\n case 5:\n ck(b, a);\n ek(a);\n d & 512 && null !== c && Lj(c, c.return);\n if (a.flags & 32) {\n var e = a.stateNode;\n try {\n ob(e, \"\");\n } catch (t) {\n W(a, a.return, t);\n }\n }\n if (d & 4 && (e = a.stateNode, null != e)) {\n var f = a.memoizedProps,\n g = null !== c ? c.memoizedProps : f,\n h = a.type,\n k = a.updateQueue;\n a.updateQueue = null;\n if (null !== k) try {\n \"input\" === h && \"radio\" === f.type && null != f.name && ab(e, f);\n vb(h, g);\n var l = vb(h, f);\n for (g = 0; g < k.length; g += 2) {\n var m = k[g],\n q = k[g + 1];\n \"style\" === m ? sb(e, q) : \"dangerouslySetInnerHTML\" === m ? nb(e, q) : \"children\" === m ? ob(e, q) : ta(e, m, q, l);\n }\n switch (h) {\n case \"input\":\n bb(e, f);\n break;\n case \"textarea\":\n ib(e, f);\n break;\n case \"select\":\n var r = e._wrapperState.wasMultiple;\n e._wrapperState.wasMultiple = !!f.multiple;\n var y = f.value;\n null != y ? fb(e, !!f.multiple, y, !1) : r !== !!f.multiple && (null != f.defaultValue ? fb(e, !!f.multiple, f.defaultValue, !0) : fb(e, !!f.multiple, f.multiple ? [] : \"\", !1));\n }\n e[Pf] = f;\n } catch (t) {\n W(a, a.return, t);\n }\n }\n break;\n case 6:\n ck(b, a);\n ek(a);\n if (d & 4) {\n if (null === a.stateNode) throw Error(p(162));\n e = a.stateNode;\n f = a.memoizedProps;\n try {\n e.nodeValue = f;\n } catch (t) {\n W(a, a.return, t);\n }\n }\n break;\n case 3:\n ck(b, a);\n ek(a);\n if (d & 4 && null !== c && c.memoizedState.isDehydrated) try {\n bd(b.containerInfo);\n } catch (t) {\n W(a, a.return, t);\n }\n break;\n case 4:\n ck(b, a);\n ek(a);\n break;\n case 13:\n ck(b, a);\n ek(a);\n e = a.child;\n e.flags & 8192 && (f = null !== e.memoizedState, e.stateNode.isHidden = f, !f || null !== e.alternate && null !== e.alternate.memoizedState || (fk = B()));\n d & 4 && ak(a);\n break;\n case 22:\n m = null !== c && null !== c.memoizedState;\n a.mode & 1 ? (U = (l = U) || m, ck(b, a), U = l) : ck(b, a);\n ek(a);\n if (d & 8192) {\n l = null !== a.memoizedState;\n if ((a.stateNode.isHidden = l) && !m && 0 !== (a.mode & 1)) for (V = a, m = a.child; null !== m;) {\n for (q = V = m; null !== V;) {\n r = V;\n y = r.child;\n switch (r.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n Pj(4, r, r.return);\n break;\n case 1:\n Lj(r, r.return);\n var n = r.stateNode;\n if (\"function\" === typeof n.componentWillUnmount) {\n d = r;\n c = r.return;\n try {\n b = d, n.props = b.memoizedProps, n.state = b.memoizedState, n.componentWillUnmount();\n } catch (t) {\n W(d, c, t);\n }\n }\n break;\n case 5:\n Lj(r, r.return);\n break;\n case 22:\n if (null !== r.memoizedState) {\n gk(q);\n continue;\n }\n }\n null !== y ? (y.return = r, V = y) : gk(q);\n }\n m = m.sibling;\n }\n a: for (m = null, q = a;;) {\n if (5 === q.tag) {\n if (null === m) {\n m = q;\n try {\n e = q.stateNode, l ? (f = e.style, \"function\" === typeof f.setProperty ? f.setProperty(\"display\", \"none\", \"important\") : f.display = \"none\") : (h = q.stateNode, k = q.memoizedProps.style, g = void 0 !== k && null !== k && k.hasOwnProperty(\"display\") ? k.display : null, h.style.display = rb(\"display\", g));\n } catch (t) {\n W(a, a.return, t);\n }\n }\n } else if (6 === q.tag) {\n if (null === m) try {\n q.stateNode.nodeValue = l ? \"\" : q.memoizedProps;\n } catch (t) {\n W(a, a.return, t);\n }\n } else if ((22 !== q.tag && 23 !== q.tag || null === q.memoizedState || q === a) && null !== q.child) {\n q.child.return = q;\n q = q.child;\n continue;\n }\n if (q === a) break a;\n for (; null === q.sibling;) {\n if (null === q.return || q.return === a) break a;\n m === q && (m = null);\n q = q.return;\n }\n m === q && (m = null);\n q.sibling.return = q.return;\n q = q.sibling;\n }\n }\n break;\n case 19:\n ck(b, a);\n ek(a);\n d & 4 && ak(a);\n break;\n case 21:\n break;\n default:\n ck(b, a), ek(a);\n }\n}\nfunction ek(a) {\n var b = a.flags;\n if (b & 2) {\n try {\n a: {\n for (var c = a.return; null !== c;) {\n if (Tj(c)) {\n var d = c;\n break a;\n }\n c = c.return;\n }\n throw Error(p(160));\n }\n switch (d.tag) {\n case 5:\n var e = d.stateNode;\n d.flags & 32 && (ob(e, \"\"), d.flags &= -33);\n var f = Uj(a);\n Wj(a, f, e);\n break;\n case 3:\n case 4:\n var g = d.stateNode.containerInfo,\n h = Uj(a);\n Vj(a, h, g);\n break;\n default:\n throw Error(p(161));\n }\n } catch (k) {\n W(a, a.return, k);\n }\n a.flags &= -3;\n }\n b & 4096 && (a.flags &= -4097);\n}\nfunction hk(a, b, c) {\n V = a;\n ik(a, b, c);\n}\nfunction ik(a, b, c) {\n for (var d = 0 !== (a.mode & 1); null !== V;) {\n var e = V,\n f = e.child;\n if (22 === e.tag && d) {\n var g = null !== e.memoizedState || Jj;\n if (!g) {\n var h = e.alternate,\n k = null !== h && null !== h.memoizedState || U;\n h = Jj;\n var l = U;\n Jj = g;\n if ((U = k) && !l) for (V = e; null !== V;) g = V, k = g.child, 22 === g.tag && null !== g.memoizedState ? jk(e) : null !== k ? (k.return = g, V = k) : jk(e);\n for (; null !== f;) V = f, ik(f, b, c), f = f.sibling;\n V = e;\n Jj = h;\n U = l;\n }\n kk(a, b, c);\n } else 0 !== (e.subtreeFlags & 8772) && null !== f ? (f.return = e, V = f) : kk(a, b, c);\n }\n}\nfunction kk(a) {\n for (; null !== V;) {\n var b = V;\n if (0 !== (b.flags & 8772)) {\n var c = b.alternate;\n try {\n if (0 !== (b.flags & 8772)) switch (b.tag) {\n case 0:\n case 11:\n case 15:\n U || Qj(5, b);\n break;\n case 1:\n var d = b.stateNode;\n if (b.flags & 4 && !U) if (null === c) d.componentDidMount();else {\n var e = b.elementType === b.type ? c.memoizedProps : Ci(b.type, c.memoizedProps);\n d.componentDidUpdate(e, c.memoizedState, d.__reactInternalSnapshotBeforeUpdate);\n }\n var f = b.updateQueue;\n null !== f && sh(b, f, d);\n break;\n case 3:\n var g = b.updateQueue;\n if (null !== g) {\n c = null;\n if (null !== b.child) switch (b.child.tag) {\n case 5:\n c = b.child.stateNode;\n break;\n case 1:\n c = b.child.stateNode;\n }\n sh(b, g, c);\n }\n break;\n case 5:\n var h = b.stateNode;\n if (null === c && b.flags & 4) {\n c = h;\n var k = b.memoizedProps;\n switch (b.type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n k.autoFocus && c.focus();\n break;\n case \"img\":\n k.src && (c.src = k.src);\n }\n }\n break;\n case 6:\n break;\n case 4:\n break;\n case 12:\n break;\n case 13:\n if (null === b.memoizedState) {\n var l = b.alternate;\n if (null !== l) {\n var m = l.memoizedState;\n if (null !== m) {\n var q = m.dehydrated;\n null !== q && bd(q);\n }\n }\n }\n break;\n case 19:\n case 17:\n case 21:\n case 22:\n case 23:\n case 25:\n break;\n default:\n throw Error(p(163));\n }\n U || b.flags & 512 && Rj(b);\n } catch (r) {\n W(b, b.return, r);\n }\n }\n if (b === a) {\n V = null;\n break;\n }\n c = b.sibling;\n if (null !== c) {\n c.return = b.return;\n V = c;\n break;\n }\n V = b.return;\n }\n}\nfunction gk(a) {\n for (; null !== V;) {\n var b = V;\n if (b === a) {\n V = null;\n break;\n }\n var c = b.sibling;\n if (null !== c) {\n c.return = b.return;\n V = c;\n break;\n }\n V = b.return;\n }\n}\nfunction jk(a) {\n for (; null !== V;) {\n var b = V;\n try {\n switch (b.tag) {\n case 0:\n case 11:\n case 15:\n var c = b.return;\n try {\n Qj(4, b);\n } catch (k) {\n W(b, c, k);\n }\n break;\n case 1:\n var d = b.stateNode;\n if (\"function\" === typeof d.componentDidMount) {\n var e = b.return;\n try {\n d.componentDidMount();\n } catch (k) {\n W(b, e, k);\n }\n }\n var f = b.return;\n try {\n Rj(b);\n } catch (k) {\n W(b, f, k);\n }\n break;\n case 5:\n var g = b.return;\n try {\n Rj(b);\n } catch (k) {\n W(b, g, k);\n }\n }\n } catch (k) {\n W(b, b.return, k);\n }\n if (b === a) {\n V = null;\n break;\n }\n var h = b.sibling;\n if (null !== h) {\n h.return = b.return;\n V = h;\n break;\n }\n V = b.return;\n }\n}\nvar lk = Math.ceil,\n mk = ua.ReactCurrentDispatcher,\n nk = ua.ReactCurrentOwner,\n ok = ua.ReactCurrentBatchConfig,\n K = 0,\n Q = null,\n Y = null,\n Z = 0,\n fj = 0,\n ej = Uf(0),\n T = 0,\n pk = null,\n rh = 0,\n qk = 0,\n rk = 0,\n sk = null,\n tk = null,\n fk = 0,\n Gj = Infinity,\n uk = null,\n Oi = !1,\n Pi = null,\n Ri = null,\n vk = !1,\n wk = null,\n xk = 0,\n yk = 0,\n zk = null,\n Ak = -1,\n Bk = 0;\nfunction R() {\n return 0 !== (K & 6) ? B() : -1 !== Ak ? Ak : Ak = B();\n}\nfunction yi(a) {\n if (0 === (a.mode & 1)) return 1;\n if (0 !== (K & 2) && 0 !== Z) return Z & -Z;\n if (null !== Kg.transition) return 0 === Bk && (Bk = yc()), Bk;\n a = C;\n if (0 !== a) return a;\n a = window.event;\n a = void 0 === a ? 16 : jd(a.type);\n return a;\n}\nfunction gi(a, b, c, d) {\n if (50 < yk) throw yk = 0, zk = null, Error(p(185));\n Ac(a, c, d);\n if (0 === (K & 2) || a !== Q) a === Q && (0 === (K & 2) && (qk |= c), 4 === T && Ck(a, Z)), Dk(a, d), 1 === c && 0 === K && 0 === (b.mode & 1) && (Gj = B() + 500, fg && jg());\n}\nfunction Dk(a, b) {\n var c = a.callbackNode;\n wc(a, b);\n var d = uc(a, a === Q ? Z : 0);\n if (0 === d) null !== c && bc(c), a.callbackNode = null, a.callbackPriority = 0;else if (b = d & -d, a.callbackPriority !== b) {\n null != c && bc(c);\n if (1 === b) 0 === a.tag ? ig(Ek.bind(null, a)) : hg(Ek.bind(null, a)), Jf(function () {\n 0 === (K & 6) && jg();\n }), c = null;else {\n switch (Dc(d)) {\n case 1:\n c = fc;\n break;\n case 4:\n c = gc;\n break;\n case 16:\n c = hc;\n break;\n case 536870912:\n c = jc;\n break;\n default:\n c = hc;\n }\n c = Fk(c, Gk.bind(null, a));\n }\n a.callbackPriority = b;\n a.callbackNode = c;\n }\n}\nfunction Gk(a, b) {\n Ak = -1;\n Bk = 0;\n if (0 !== (K & 6)) throw Error(p(327));\n var c = a.callbackNode;\n if (Hk() && a.callbackNode !== c) return null;\n var d = uc(a, a === Q ? Z : 0);\n if (0 === d) return null;\n if (0 !== (d & 30) || 0 !== (d & a.expiredLanes) || b) b = Ik(a, d);else {\n b = d;\n var e = K;\n K |= 2;\n var f = Jk();\n if (Q !== a || Z !== b) uk = null, Gj = B() + 500, Kk(a, b);\n do try {\n Lk();\n break;\n } catch (h) {\n Mk(a, h);\n } while (1);\n $g();\n mk.current = f;\n K = e;\n null !== Y ? b = 0 : (Q = null, Z = 0, b = T);\n }\n if (0 !== b) {\n 2 === b && (e = xc(a), 0 !== e && (d = e, b = Nk(a, e)));\n if (1 === b) throw c = pk, Kk(a, 0), Ck(a, d), Dk(a, B()), c;\n if (6 === b) Ck(a, d);else {\n e = a.current.alternate;\n if (0 === (d & 30) && !Ok(e) && (b = Ik(a, d), 2 === b && (f = xc(a), 0 !== f && (d = f, b = Nk(a, f))), 1 === b)) throw c = pk, Kk(a, 0), Ck(a, d), Dk(a, B()), c;\n a.finishedWork = e;\n a.finishedLanes = d;\n switch (b) {\n case 0:\n case 1:\n throw Error(p(345));\n case 2:\n Pk(a, tk, uk);\n break;\n case 3:\n Ck(a, d);\n if ((d & 130023424) === d && (b = fk + 500 - B(), 10 < b)) {\n if (0 !== uc(a, 0)) break;\n e = a.suspendedLanes;\n if ((e & d) !== d) {\n R();\n a.pingedLanes |= a.suspendedLanes & e;\n break;\n }\n a.timeoutHandle = Ff(Pk.bind(null, a, tk, uk), b);\n break;\n }\n Pk(a, tk, uk);\n break;\n case 4:\n Ck(a, d);\n if ((d & 4194240) === d) break;\n b = a.eventTimes;\n for (e = -1; 0 < d;) {\n var g = 31 - oc(d);\n f = 1 << g;\n g = b[g];\n g > e && (e = g);\n d &= ~f;\n }\n d = e;\n d = B() - d;\n d = (120 > d ? 120 : 480 > d ? 480 : 1080 > d ? 1080 : 1920 > d ? 1920 : 3E3 > d ? 3E3 : 4320 > d ? 4320 : 1960 * lk(d / 1960)) - d;\n if (10 < d) {\n a.timeoutHandle = Ff(Pk.bind(null, a, tk, uk), d);\n break;\n }\n Pk(a, tk, uk);\n break;\n case 5:\n Pk(a, tk, uk);\n break;\n default:\n throw Error(p(329));\n }\n }\n }\n Dk(a, B());\n return a.callbackNode === c ? Gk.bind(null, a) : null;\n}\nfunction Nk(a, b) {\n var c = sk;\n a.current.memoizedState.isDehydrated && (Kk(a, b).flags |= 256);\n a = Ik(a, b);\n 2 !== a && (b = tk, tk = c, null !== b && Fj(b));\n return a;\n}\nfunction Fj(a) {\n null === tk ? tk = a : tk.push.apply(tk, a);\n}\nfunction Ok(a) {\n for (var b = a;;) {\n if (b.flags & 16384) {\n var c = b.updateQueue;\n if (null !== c && (c = c.stores, null !== c)) for (var d = 0; d < c.length; d++) {\n var e = c[d],\n f = e.getSnapshot;\n e = e.value;\n try {\n if (!He(f(), e)) return !1;\n } catch (g) {\n return !1;\n }\n }\n }\n c = b.child;\n if (b.subtreeFlags & 16384 && null !== c) c.return = b, b = c;else {\n if (b === a) break;\n for (; null === b.sibling;) {\n if (null === b.return || b.return === a) return !0;\n b = b.return;\n }\n b.sibling.return = b.return;\n b = b.sibling;\n }\n }\n return !0;\n}\nfunction Ck(a, b) {\n b &= ~rk;\n b &= ~qk;\n a.suspendedLanes |= b;\n a.pingedLanes &= ~b;\n for (a = a.expirationTimes; 0 < b;) {\n var c = 31 - oc(b),\n d = 1 << c;\n a[c] = -1;\n b &= ~d;\n }\n}\nfunction Ek(a) {\n if (0 !== (K & 6)) throw Error(p(327));\n Hk();\n var b = uc(a, 0);\n if (0 === (b & 1)) return Dk(a, B()), null;\n var c = Ik(a, b);\n if (0 !== a.tag && 2 === c) {\n var d = xc(a);\n 0 !== d && (b = d, c = Nk(a, d));\n }\n if (1 === c) throw c = pk, Kk(a, 0), Ck(a, b), Dk(a, B()), c;\n if (6 === c) throw Error(p(345));\n a.finishedWork = a.current.alternate;\n a.finishedLanes = b;\n Pk(a, tk, uk);\n Dk(a, B());\n return null;\n}\nfunction Qk(a, b) {\n var c = K;\n K |= 1;\n try {\n return a(b);\n } finally {\n K = c, 0 === K && (Gj = B() + 500, fg && jg());\n }\n}\nfunction Rk(a) {\n null !== wk && 0 === wk.tag && 0 === (K & 6) && Hk();\n var b = K;\n K |= 1;\n var c = ok.transition,\n d = C;\n try {\n if (ok.transition = null, C = 1, a) return a();\n } finally {\n C = d, ok.transition = c, K = b, 0 === (K & 6) && jg();\n }\n}\nfunction Hj() {\n fj = ej.current;\n E(ej);\n}\nfunction Kk(a, b) {\n a.finishedWork = null;\n a.finishedLanes = 0;\n var c = a.timeoutHandle;\n -1 !== c && (a.timeoutHandle = -1, Gf(c));\n if (null !== Y) for (c = Y.return; null !== c;) {\n var d = c;\n wg(d);\n switch (d.tag) {\n case 1:\n d = d.type.childContextTypes;\n null !== d && void 0 !== d && $f();\n break;\n case 3:\n zh();\n E(Wf);\n E(H);\n Eh();\n break;\n case 5:\n Bh(d);\n break;\n case 4:\n zh();\n break;\n case 13:\n E(L);\n break;\n case 19:\n E(L);\n break;\n case 10:\n ah(d.type._context);\n break;\n case 22:\n case 23:\n Hj();\n }\n c = c.return;\n }\n Q = a;\n Y = a = Pg(a.current, null);\n Z = fj = b;\n T = 0;\n pk = null;\n rk = qk = rh = 0;\n tk = sk = null;\n if (null !== fh) {\n for (b = 0; b < fh.length; b++) if (c = fh[b], d = c.interleaved, null !== d) {\n c.interleaved = null;\n var e = d.next,\n f = c.pending;\n if (null !== f) {\n var g = f.next;\n f.next = e;\n d.next = g;\n }\n c.pending = d;\n }\n fh = null;\n }\n return a;\n}\nfunction Mk(a, b) {\n do {\n var c = Y;\n try {\n $g();\n Fh.current = Rh;\n if (Ih) {\n for (var d = M.memoizedState; null !== d;) {\n var e = d.queue;\n null !== e && (e.pending = null);\n d = d.next;\n }\n Ih = !1;\n }\n Hh = 0;\n O = N = M = null;\n Jh = !1;\n Kh = 0;\n nk.current = null;\n if (null === c || null === c.return) {\n T = 1;\n pk = b;\n Y = null;\n break;\n }\n a: {\n var f = a,\n g = c.return,\n h = c,\n k = b;\n b = Z;\n h.flags |= 32768;\n if (null !== k && \"object\" === typeof k && \"function\" === typeof k.then) {\n var l = k,\n m = h,\n q = m.tag;\n if (0 === (m.mode & 1) && (0 === q || 11 === q || 15 === q)) {\n var r = m.alternate;\n r ? (m.updateQueue = r.updateQueue, m.memoizedState = r.memoizedState, m.lanes = r.lanes) : (m.updateQueue = null, m.memoizedState = null);\n }\n var y = Ui(g);\n if (null !== y) {\n y.flags &= -257;\n Vi(y, g, h, f, b);\n y.mode & 1 && Si(f, l, b);\n b = y;\n k = l;\n var n = b.updateQueue;\n if (null === n) {\n var t = new Set();\n t.add(k);\n b.updateQueue = t;\n } else n.add(k);\n break a;\n } else {\n if (0 === (b & 1)) {\n Si(f, l, b);\n tj();\n break a;\n }\n k = Error(p(426));\n }\n } else if (I && h.mode & 1) {\n var J = Ui(g);\n if (null !== J) {\n 0 === (J.flags & 65536) && (J.flags |= 256);\n Vi(J, g, h, f, b);\n Jg(Ji(k, h));\n break a;\n }\n }\n f = k = Ji(k, h);\n 4 !== T && (T = 2);\n null === sk ? sk = [f] : sk.push(f);\n f = g;\n do {\n switch (f.tag) {\n case 3:\n f.flags |= 65536;\n b &= -b;\n f.lanes |= b;\n var x = Ni(f, k, b);\n ph(f, x);\n break a;\n case 1:\n h = k;\n var w = f.type,\n u = f.stateNode;\n if (0 === (f.flags & 128) && (\"function\" === typeof w.getDerivedStateFromError || null !== u && \"function\" === typeof u.componentDidCatch && (null === Ri || !Ri.has(u)))) {\n f.flags |= 65536;\n b &= -b;\n f.lanes |= b;\n var F = Qi(f, h, b);\n ph(f, F);\n break a;\n }\n }\n f = f.return;\n } while (null !== f);\n }\n Sk(c);\n } catch (na) {\n b = na;\n Y === c && null !== c && (Y = c = c.return);\n continue;\n }\n break;\n } while (1);\n}\nfunction Jk() {\n var a = mk.current;\n mk.current = Rh;\n return null === a ? Rh : a;\n}\nfunction tj() {\n if (0 === T || 3 === T || 2 === T) T = 4;\n null === Q || 0 === (rh & 268435455) && 0 === (qk & 268435455) || Ck(Q, Z);\n}\nfunction Ik(a, b) {\n var c = K;\n K |= 2;\n var d = Jk();\n if (Q !== a || Z !== b) uk = null, Kk(a, b);\n do try {\n Tk();\n break;\n } catch (e) {\n Mk(a, e);\n } while (1);\n $g();\n K = c;\n mk.current = d;\n if (null !== Y) throw Error(p(261));\n Q = null;\n Z = 0;\n return T;\n}\nfunction Tk() {\n for (; null !== Y;) Uk(Y);\n}\nfunction Lk() {\n for (; null !== Y && !cc();) Uk(Y);\n}\nfunction Uk(a) {\n var b = Vk(a.alternate, a, fj);\n a.memoizedProps = a.pendingProps;\n null === b ? Sk(a) : Y = b;\n nk.current = null;\n}\nfunction Sk(a) {\n var b = a;\n do {\n var c = b.alternate;\n a = b.return;\n if (0 === (b.flags & 32768)) {\n if (c = Ej(c, b, fj), null !== c) {\n Y = c;\n return;\n }\n } else {\n c = Ij(c, b);\n if (null !== c) {\n c.flags &= 32767;\n Y = c;\n return;\n }\n if (null !== a) a.flags |= 32768, a.subtreeFlags = 0, a.deletions = null;else {\n T = 6;\n Y = null;\n return;\n }\n }\n b = b.sibling;\n if (null !== b) {\n Y = b;\n return;\n }\n Y = b = a;\n } while (null !== b);\n 0 === T && (T = 5);\n}\nfunction Pk(a, b, c) {\n var d = C,\n e = ok.transition;\n try {\n ok.transition = null, C = 1, Wk(a, b, c, d);\n } finally {\n ok.transition = e, C = d;\n }\n return null;\n}\nfunction Wk(a, b, c, d) {\n do Hk(); while (null !== wk);\n if (0 !== (K & 6)) throw Error(p(327));\n c = a.finishedWork;\n var e = a.finishedLanes;\n if (null === c) return null;\n a.finishedWork = null;\n a.finishedLanes = 0;\n if (c === a.current) throw Error(p(177));\n a.callbackNode = null;\n a.callbackPriority = 0;\n var f = c.lanes | c.childLanes;\n Bc(a, f);\n a === Q && (Y = Q = null, Z = 0);\n 0 === (c.subtreeFlags & 2064) && 0 === (c.flags & 2064) || vk || (vk = !0, Fk(hc, function () {\n Hk();\n return null;\n }));\n f = 0 !== (c.flags & 15990);\n if (0 !== (c.subtreeFlags & 15990) || f) {\n f = ok.transition;\n ok.transition = null;\n var g = C;\n C = 1;\n var h = K;\n K |= 4;\n nk.current = null;\n Oj(a, c);\n dk(c, a);\n Oe(Df);\n dd = !!Cf;\n Df = Cf = null;\n a.current = c;\n hk(c, a, e);\n dc();\n K = h;\n C = g;\n ok.transition = f;\n } else a.current = c;\n vk && (vk = !1, wk = a, xk = e);\n f = a.pendingLanes;\n 0 === f && (Ri = null);\n mc(c.stateNode, d);\n Dk(a, B());\n if (null !== b) for (d = a.onRecoverableError, c = 0; c < b.length; c++) e = b[c], d(e.value, {\n componentStack: e.stack,\n digest: e.digest\n });\n if (Oi) throw Oi = !1, a = Pi, Pi = null, a;\n 0 !== (xk & 1) && 0 !== a.tag && Hk();\n f = a.pendingLanes;\n 0 !== (f & 1) ? a === zk ? yk++ : (yk = 0, zk = a) : yk = 0;\n jg();\n return null;\n}\nfunction Hk() {\n if (null !== wk) {\n var a = Dc(xk),\n b = ok.transition,\n c = C;\n try {\n ok.transition = null;\n C = 16 > a ? 16 : a;\n if (null === wk) var d = !1;else {\n a = wk;\n wk = null;\n xk = 0;\n if (0 !== (K & 6)) throw Error(p(331));\n var e = K;\n K |= 4;\n for (V = a.current; null !== V;) {\n var f = V,\n g = f.child;\n if (0 !== (V.flags & 16)) {\n var h = f.deletions;\n if (null !== h) {\n for (var k = 0; k < h.length; k++) {\n var l = h[k];\n for (V = l; null !== V;) {\n var m = V;\n switch (m.tag) {\n case 0:\n case 11:\n case 15:\n Pj(8, m, f);\n }\n var q = m.child;\n if (null !== q) q.return = m, V = q;else for (; null !== V;) {\n m = V;\n var r = m.sibling,\n y = m.return;\n Sj(m);\n if (m === l) {\n V = null;\n break;\n }\n if (null !== r) {\n r.return = y;\n V = r;\n break;\n }\n V = y;\n }\n }\n }\n var n = f.alternate;\n if (null !== n) {\n var t = n.child;\n if (null !== t) {\n n.child = null;\n do {\n var J = t.sibling;\n t.sibling = null;\n t = J;\n } while (null !== t);\n }\n }\n V = f;\n }\n }\n if (0 !== (f.subtreeFlags & 2064) && null !== g) g.return = f, V = g;else b: for (; null !== V;) {\n f = V;\n if (0 !== (f.flags & 2048)) switch (f.tag) {\n case 0:\n case 11:\n case 15:\n Pj(9, f, f.return);\n }\n var x = f.sibling;\n if (null !== x) {\n x.return = f.return;\n V = x;\n break b;\n }\n V = f.return;\n }\n }\n var w = a.current;\n for (V = w; null !== V;) {\n g = V;\n var u = g.child;\n if (0 !== (g.subtreeFlags & 2064) && null !== u) u.return = g, V = u;else b: for (g = w; null !== V;) {\n h = V;\n if (0 !== (h.flags & 2048)) try {\n switch (h.tag) {\n case 0:\n case 11:\n case 15:\n Qj(9, h);\n }\n } catch (na) {\n W(h, h.return, na);\n }\n if (h === g) {\n V = null;\n break b;\n }\n var F = h.sibling;\n if (null !== F) {\n F.return = h.return;\n V = F;\n break b;\n }\n V = h.return;\n }\n }\n K = e;\n jg();\n if (lc && \"function\" === typeof lc.onPostCommitFiberRoot) try {\n lc.onPostCommitFiberRoot(kc, a);\n } catch (na) {}\n d = !0;\n }\n return d;\n } finally {\n C = c, ok.transition = b;\n }\n }\n return !1;\n}\nfunction Xk(a, b, c) {\n b = Ji(c, b);\n b = Ni(a, b, 1);\n a = nh(a, b, 1);\n b = R();\n null !== a && (Ac(a, 1, b), Dk(a, b));\n}\nfunction W(a, b, c) {\n if (3 === a.tag) Xk(a, a, c);else for (; null !== b;) {\n if (3 === b.tag) {\n Xk(b, a, c);\n break;\n } else if (1 === b.tag) {\n var d = b.stateNode;\n if (\"function\" === typeof b.type.getDerivedStateFromError || \"function\" === typeof d.componentDidCatch && (null === Ri || !Ri.has(d))) {\n a = Ji(c, a);\n a = Qi(b, a, 1);\n b = nh(b, a, 1);\n a = R();\n null !== b && (Ac(b, 1, a), Dk(b, a));\n break;\n }\n }\n b = b.return;\n }\n}\nfunction Ti(a, b, c) {\n var d = a.pingCache;\n null !== d && d.delete(b);\n b = R();\n a.pingedLanes |= a.suspendedLanes & c;\n Q === a && (Z & c) === c && (4 === T || 3 === T && (Z & 130023424) === Z && 500 > B() - fk ? Kk(a, 0) : rk |= c);\n Dk(a, b);\n}\nfunction Yk(a, b) {\n 0 === b && (0 === (a.mode & 1) ? b = 1 : (b = sc, sc <<= 1, 0 === (sc & 130023424) && (sc = 4194304)));\n var c = R();\n a = ih(a, b);\n null !== a && (Ac(a, b, c), Dk(a, c));\n}\nfunction uj(a) {\n var b = a.memoizedState,\n c = 0;\n null !== b && (c = b.retryLane);\n Yk(a, c);\n}\nfunction bk(a, b) {\n var c = 0;\n switch (a.tag) {\n case 13:\n var d = a.stateNode;\n var e = a.memoizedState;\n null !== e && (c = e.retryLane);\n break;\n case 19:\n d = a.stateNode;\n break;\n default:\n throw Error(p(314));\n }\n null !== d && d.delete(b);\n Yk(a, c);\n}\nvar Vk;\nVk = function (a, b, c) {\n if (null !== a) {\n if (a.memoizedProps !== b.pendingProps || Wf.current) dh = !0;else {\n if (0 === (a.lanes & c) && 0 === (b.flags & 128)) return dh = !1, yj(a, b, c);\n dh = 0 !== (a.flags & 131072) ? !0 : !1;\n }\n } else dh = !1, I && 0 !== (b.flags & 1048576) && ug(b, ng, b.index);\n b.lanes = 0;\n switch (b.tag) {\n case 2:\n var d = b.type;\n ij(a, b);\n a = b.pendingProps;\n var e = Yf(b, H.current);\n ch(b, c);\n e = Nh(null, b, d, a, e, c);\n var f = Sh();\n b.flags |= 1;\n \"object\" === typeof e && null !== e && \"function\" === typeof e.render && void 0 === e.$$typeof ? (b.tag = 1, b.memoizedState = null, b.updateQueue = null, Zf(d) ? (f = !0, cg(b)) : f = !1, b.memoizedState = null !== e.state && void 0 !== e.state ? e.state : null, kh(b), e.updater = Ei, b.stateNode = e, e._reactInternals = b, Ii(b, d, a, c), b = jj(null, b, d, !0, f, c)) : (b.tag = 0, I && f && vg(b), Xi(null, b, e, c), b = b.child);\n return b;\n case 16:\n d = b.elementType;\n a: {\n ij(a, b);\n a = b.pendingProps;\n e = d._init;\n d = e(d._payload);\n b.type = d;\n e = b.tag = Zk(d);\n a = Ci(d, a);\n switch (e) {\n case 0:\n b = cj(null, b, d, a, c);\n break a;\n case 1:\n b = hj(null, b, d, a, c);\n break a;\n case 11:\n b = Yi(null, b, d, a, c);\n break a;\n case 14:\n b = $i(null, b, d, Ci(d.type, a), c);\n break a;\n }\n throw Error(p(306, d, \"\"));\n }\n return b;\n case 0:\n return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : Ci(d, e), cj(a, b, d, e, c);\n case 1:\n return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : Ci(d, e), hj(a, b, d, e, c);\n case 3:\n a: {\n kj(b);\n if (null === a) throw Error(p(387));\n d = b.pendingProps;\n f = b.memoizedState;\n e = f.element;\n lh(a, b);\n qh(b, d, null, c);\n var g = b.memoizedState;\n d = g.element;\n if (f.isDehydrated) {\n if (f = {\n element: d,\n isDehydrated: !1,\n cache: g.cache,\n pendingSuspenseBoundaries: g.pendingSuspenseBoundaries,\n transitions: g.transitions\n }, b.updateQueue.baseState = f, b.memoizedState = f, b.flags & 256) {\n e = Ji(Error(p(423)), b);\n b = lj(a, b, d, c, e);\n break a;\n } else if (d !== e) {\n e = Ji(Error(p(424)), b);\n b = lj(a, b, d, c, e);\n break a;\n } else for (yg = Lf(b.stateNode.containerInfo.firstChild), xg = b, I = !0, zg = null, c = Vg(b, null, d, c), b.child = c; c;) c.flags = c.flags & -3 | 4096, c = c.sibling;\n } else {\n Ig();\n if (d === e) {\n b = Zi(a, b, c);\n break a;\n }\n Xi(a, b, d, c);\n }\n b = b.child;\n }\n return b;\n case 5:\n return Ah(b), null === a && Eg(b), d = b.type, e = b.pendingProps, f = null !== a ? a.memoizedProps : null, g = e.children, Ef(d, e) ? g = null : null !== f && Ef(d, f) && (b.flags |= 32), gj(a, b), Xi(a, b, g, c), b.child;\n case 6:\n return null === a && Eg(b), null;\n case 13:\n return oj(a, b, c);\n case 4:\n return yh(b, b.stateNode.containerInfo), d = b.pendingProps, null === a ? b.child = Ug(b, null, d, c) : Xi(a, b, d, c), b.child;\n case 11:\n return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : Ci(d, e), Yi(a, b, d, e, c);\n case 7:\n return Xi(a, b, b.pendingProps, c), b.child;\n case 8:\n return Xi(a, b, b.pendingProps.children, c), b.child;\n case 12:\n return Xi(a, b, b.pendingProps.children, c), b.child;\n case 10:\n a: {\n d = b.type._context;\n e = b.pendingProps;\n f = b.memoizedProps;\n g = e.value;\n G(Wg, d._currentValue);\n d._currentValue = g;\n if (null !== f) if (He(f.value, g)) {\n if (f.children === e.children && !Wf.current) {\n b = Zi(a, b, c);\n break a;\n }\n } else for (f = b.child, null !== f && (f.return = b); null !== f;) {\n var h = f.dependencies;\n if (null !== h) {\n g = f.child;\n for (var k = h.firstContext; null !== k;) {\n if (k.context === d) {\n if (1 === f.tag) {\n k = mh(-1, c & -c);\n k.tag = 2;\n var l = f.updateQueue;\n if (null !== l) {\n l = l.shared;\n var m = l.pending;\n null === m ? k.next = k : (k.next = m.next, m.next = k);\n l.pending = k;\n }\n }\n f.lanes |= c;\n k = f.alternate;\n null !== k && (k.lanes |= c);\n bh(f.return, c, b);\n h.lanes |= c;\n break;\n }\n k = k.next;\n }\n } else if (10 === f.tag) g = f.type === b.type ? null : f.child;else if (18 === f.tag) {\n g = f.return;\n if (null === g) throw Error(p(341));\n g.lanes |= c;\n h = g.alternate;\n null !== h && (h.lanes |= c);\n bh(g, c, b);\n g = f.sibling;\n } else g = f.child;\n if (null !== g) g.return = f;else for (g = f; null !== g;) {\n if (g === b) {\n g = null;\n break;\n }\n f = g.sibling;\n if (null !== f) {\n f.return = g.return;\n g = f;\n break;\n }\n g = g.return;\n }\n f = g;\n }\n Xi(a, b, e.children, c);\n b = b.child;\n }\n return b;\n case 9:\n return e = b.type, d = b.pendingProps.children, ch(b, c), e = eh(e), d = d(e), b.flags |= 1, Xi(a, b, d, c), b.child;\n case 14:\n return d = b.type, e = Ci(d, b.pendingProps), e = Ci(d.type, e), $i(a, b, d, e, c);\n case 15:\n return bj(a, b, b.type, b.pendingProps, c);\n case 17:\n return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : Ci(d, e), ij(a, b), b.tag = 1, Zf(d) ? (a = !0, cg(b)) : a = !1, ch(b, c), Gi(b, d, e), Ii(b, d, e, c), jj(null, b, d, !0, a, c);\n case 19:\n return xj(a, b, c);\n case 22:\n return dj(a, b, c);\n }\n throw Error(p(156, b.tag));\n};\nfunction Fk(a, b) {\n return ac(a, b);\n}\nfunction $k(a, b, c, d) {\n this.tag = a;\n this.key = c;\n this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null;\n this.index = 0;\n this.ref = null;\n this.pendingProps = b;\n this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null;\n this.mode = d;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction Bg(a, b, c, d) {\n return new $k(a, b, c, d);\n}\nfunction aj(a) {\n a = a.prototype;\n return !(!a || !a.isReactComponent);\n}\nfunction Zk(a) {\n if (\"function\" === typeof a) return aj(a) ? 1 : 0;\n if (void 0 !== a && null !== a) {\n a = a.$$typeof;\n if (a === Da) return 11;\n if (a === Ga) return 14;\n }\n return 2;\n}\nfunction Pg(a, b) {\n var c = a.alternate;\n null === c ? (c = Bg(a.tag, b, a.key, a.mode), c.elementType = a.elementType, c.type = a.type, c.stateNode = a.stateNode, c.alternate = a, a.alternate = c) : (c.pendingProps = b, c.type = a.type, c.flags = 0, c.subtreeFlags = 0, c.deletions = null);\n c.flags = a.flags & 14680064;\n c.childLanes = a.childLanes;\n c.lanes = a.lanes;\n c.child = a.child;\n c.memoizedProps = a.memoizedProps;\n c.memoizedState = a.memoizedState;\n c.updateQueue = a.updateQueue;\n b = a.dependencies;\n c.dependencies = null === b ? null : {\n lanes: b.lanes,\n firstContext: b.firstContext\n };\n c.sibling = a.sibling;\n c.index = a.index;\n c.ref = a.ref;\n return c;\n}\nfunction Rg(a, b, c, d, e, f) {\n var g = 2;\n d = a;\n if (\"function\" === typeof a) aj(a) && (g = 1);else if (\"string\" === typeof a) g = 5;else a: switch (a) {\n case ya:\n return Tg(c.children, e, f, b);\n case za:\n g = 8;\n e |= 8;\n break;\n case Aa:\n return a = Bg(12, c, b, e | 2), a.elementType = Aa, a.lanes = f, a;\n case Ea:\n return a = Bg(13, c, b, e), a.elementType = Ea, a.lanes = f, a;\n case Fa:\n return a = Bg(19, c, b, e), a.elementType = Fa, a.lanes = f, a;\n case Ia:\n return pj(c, e, f, b);\n default:\n if (\"object\" === typeof a && null !== a) switch (a.$$typeof) {\n case Ba:\n g = 10;\n break a;\n case Ca:\n g = 9;\n break a;\n case Da:\n g = 11;\n break a;\n case Ga:\n g = 14;\n break a;\n case Ha:\n g = 16;\n d = null;\n break a;\n }\n throw Error(p(130, null == a ? a : typeof a, \"\"));\n }\n b = Bg(g, c, b, e);\n b.elementType = a;\n b.type = d;\n b.lanes = f;\n return b;\n}\nfunction Tg(a, b, c, d) {\n a = Bg(7, a, d, b);\n a.lanes = c;\n return a;\n}\nfunction pj(a, b, c, d) {\n a = Bg(22, a, d, b);\n a.elementType = Ia;\n a.lanes = c;\n a.stateNode = {\n isHidden: !1\n };\n return a;\n}\nfunction Qg(a, b, c) {\n a = Bg(6, a, null, b);\n a.lanes = c;\n return a;\n}\nfunction Sg(a, b, c) {\n b = Bg(4, null !== a.children ? a.children : [], a.key, b);\n b.lanes = c;\n b.stateNode = {\n containerInfo: a.containerInfo,\n pendingChildren: null,\n implementation: a.implementation\n };\n return b;\n}\nfunction al(a, b, c, d, e) {\n this.tag = b;\n this.containerInfo = a;\n this.finishedWork = this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode = this.pendingContext = this.context = null;\n this.callbackPriority = 0;\n this.eventTimes = zc(0);\n this.expirationTimes = zc(-1);\n this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0;\n this.entanglements = zc(0);\n this.identifierPrefix = d;\n this.onRecoverableError = e;\n this.mutableSourceEagerHydrationData = null;\n}\nfunction bl(a, b, c, d, e, f, g, h, k) {\n a = new al(a, b, c, h, k);\n 1 === b ? (b = 1, !0 === f && (b |= 8)) : b = 0;\n f = Bg(3, null, null, b);\n a.current = f;\n f.stateNode = a;\n f.memoizedState = {\n element: d,\n isDehydrated: c,\n cache: null,\n transitions: null,\n pendingSuspenseBoundaries: null\n };\n kh(f);\n return a;\n}\nfunction cl(a, b, c) {\n var d = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: wa,\n key: null == d ? null : \"\" + d,\n children: a,\n containerInfo: b,\n implementation: c\n };\n}\nfunction dl(a) {\n if (!a) return Vf;\n a = a._reactInternals;\n a: {\n if (Vb(a) !== a || 1 !== a.tag) throw Error(p(170));\n var b = a;\n do {\n switch (b.tag) {\n case 3:\n b = b.stateNode.context;\n break a;\n case 1:\n if (Zf(b.type)) {\n b = b.stateNode.__reactInternalMemoizedMergedChildContext;\n break a;\n }\n }\n b = b.return;\n } while (null !== b);\n throw Error(p(171));\n }\n if (1 === a.tag) {\n var c = a.type;\n if (Zf(c)) return bg(a, c, b);\n }\n return b;\n}\nfunction el(a, b, c, d, e, f, g, h, k) {\n a = bl(c, d, !0, a, e, f, g, h, k);\n a.context = dl(null);\n c = a.current;\n d = R();\n e = yi(c);\n f = mh(d, e);\n f.callback = void 0 !== b && null !== b ? b : null;\n nh(c, f, e);\n a.current.lanes = e;\n Ac(a, e, d);\n Dk(a, d);\n return a;\n}\nfunction fl(a, b, c, d) {\n var e = b.current,\n f = R(),\n g = yi(e);\n c = dl(c);\n null === b.context ? b.context = c : b.pendingContext = c;\n b = mh(f, g);\n b.payload = {\n element: a\n };\n d = void 0 === d ? null : d;\n null !== d && (b.callback = d);\n a = nh(e, b, g);\n null !== a && (gi(a, e, g, f), oh(a, e, g));\n return g;\n}\nfunction gl(a) {\n a = a.current;\n if (!a.child) return null;\n switch (a.child.tag) {\n case 5:\n return a.child.stateNode;\n default:\n return a.child.stateNode;\n }\n}\nfunction hl(a, b) {\n a = a.memoizedState;\n if (null !== a && null !== a.dehydrated) {\n var c = a.retryLane;\n a.retryLane = 0 !== c && c < b ? c : b;\n }\n}\nfunction il(a, b) {\n hl(a, b);\n (a = a.alternate) && hl(a, b);\n}\nfunction jl() {\n return null;\n}\nvar kl = \"function\" === typeof reportError ? reportError : function (a) {\n console.error(a);\n};\nfunction ll(a) {\n this._internalRoot = a;\n}\nml.prototype.render = ll.prototype.render = function (a) {\n var b = this._internalRoot;\n if (null === b) throw Error(p(409));\n fl(a, b, null, null);\n};\nml.prototype.unmount = ll.prototype.unmount = function () {\n var a = this._internalRoot;\n if (null !== a) {\n this._internalRoot = null;\n var b = a.containerInfo;\n Rk(function () {\n fl(null, a, null, null);\n });\n b[uf] = null;\n }\n};\nfunction ml(a) {\n this._internalRoot = a;\n}\nml.prototype.unstable_scheduleHydration = function (a) {\n if (a) {\n var b = Hc();\n a = {\n blockedOn: null,\n target: a,\n priority: b\n };\n for (var c = 0; c < Qc.length && 0 !== b && b < Qc[c].priority; c++);\n Qc.splice(c, 0, a);\n 0 === c && Vc(a);\n }\n};\nfunction nl(a) {\n return !(!a || 1 !== a.nodeType && 9 !== a.nodeType && 11 !== a.nodeType);\n}\nfunction ol(a) {\n return !(!a || 1 !== a.nodeType && 9 !== a.nodeType && 11 !== a.nodeType && (8 !== a.nodeType || \" react-mount-point-unstable \" !== a.nodeValue));\n}\nfunction pl() {}\nfunction ql(a, b, c, d, e) {\n if (e) {\n if (\"function\" === typeof d) {\n var f = d;\n d = function () {\n var a = gl(g);\n f.call(a);\n };\n }\n var g = el(b, d, a, 0, null, !1, !1, \"\", pl);\n a._reactRootContainer = g;\n a[uf] = g.current;\n sf(8 === a.nodeType ? a.parentNode : a);\n Rk();\n return g;\n }\n for (; e = a.lastChild;) a.removeChild(e);\n if (\"function\" === typeof d) {\n var h = d;\n d = function () {\n var a = gl(k);\n h.call(a);\n };\n }\n var k = bl(a, 0, !1, null, null, !1, !1, \"\", pl);\n a._reactRootContainer = k;\n a[uf] = k.current;\n sf(8 === a.nodeType ? a.parentNode : a);\n Rk(function () {\n fl(b, k, c, d);\n });\n return k;\n}\nfunction rl(a, b, c, d, e) {\n var f = c._reactRootContainer;\n if (f) {\n var g = f;\n if (\"function\" === typeof e) {\n var h = e;\n e = function () {\n var a = gl(g);\n h.call(a);\n };\n }\n fl(b, g, a, e);\n } else g = ql(c, b, a, e, d);\n return gl(g);\n}\nEc = function (a) {\n switch (a.tag) {\n case 3:\n var b = a.stateNode;\n if (b.current.memoizedState.isDehydrated) {\n var c = tc(b.pendingLanes);\n 0 !== c && (Cc(b, c | 1), Dk(b, B()), 0 === (K & 6) && (Gj = B() + 500, jg()));\n }\n break;\n case 13:\n Rk(function () {\n var b = ih(a, 1);\n if (null !== b) {\n var c = R();\n gi(b, a, 1, c);\n }\n }), il(a, 1);\n }\n};\nFc = function (a) {\n if (13 === a.tag) {\n var b = ih(a, 134217728);\n if (null !== b) {\n var c = R();\n gi(b, a, 134217728, c);\n }\n il(a, 134217728);\n }\n};\nGc = function (a) {\n if (13 === a.tag) {\n var b = yi(a),\n c = ih(a, b);\n if (null !== c) {\n var d = R();\n gi(c, a, b, d);\n }\n il(a, b);\n }\n};\nHc = function () {\n return C;\n};\nIc = function (a, b) {\n var c = C;\n try {\n return C = a, b();\n } finally {\n C = c;\n }\n};\nyb = function (a, b, c) {\n switch (b) {\n case \"input\":\n bb(a, c);\n b = c.name;\n if (\"radio\" === c.type && null != b) {\n for (c = a; c.parentNode;) c = c.parentNode;\n c = c.querySelectorAll(\"input[name=\" + JSON.stringify(\"\" + b) + '][type=\"radio\"]');\n for (b = 0; b < c.length; b++) {\n var d = c[b];\n if (d !== a && d.form === a.form) {\n var e = Db(d);\n if (!e) throw Error(p(90));\n Wa(d);\n bb(d, e);\n }\n }\n }\n break;\n case \"textarea\":\n ib(a, c);\n break;\n case \"select\":\n b = c.value, null != b && fb(a, !!c.multiple, b, !1);\n }\n};\nGb = Qk;\nHb = Rk;\nvar sl = {\n usingClientEntryPoint: !1,\n Events: [Cb, ue, Db, Eb, Fb, Qk]\n },\n tl = {\n findFiberByHostInstance: Wc,\n bundleType: 0,\n version: \"18.3.1\",\n rendererPackageName: \"react-dom\"\n };\nvar ul = {\n bundleType: tl.bundleType,\n version: tl.version,\n rendererPackageName: tl.rendererPackageName,\n rendererConfig: tl.rendererConfig,\n overrideHookState: null,\n overrideHookStateDeletePath: null,\n overrideHookStateRenamePath: null,\n overrideProps: null,\n overridePropsDeletePath: null,\n overridePropsRenamePath: null,\n setErrorHandler: null,\n setSuspenseHandler: null,\n scheduleUpdate: null,\n currentDispatcherRef: ua.ReactCurrentDispatcher,\n findHostInstanceByFiber: function (a) {\n a = Zb(a);\n return null === a ? null : a.stateNode;\n },\n findFiberByHostInstance: tl.findFiberByHostInstance || jl,\n findHostInstancesForRefresh: null,\n scheduleRefresh: null,\n scheduleRoot: null,\n setRefreshHandler: null,\n getCurrentFiber: null,\n reconcilerVersion: \"18.3.1-next-f1338f8080-20240426\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var vl = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (!vl.isDisabled && vl.supportsFiber) try {\n kc = vl.inject(ul), lc = vl;\n } catch (a) {}\n}\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = sl;\nexports.createPortal = function (a, b) {\n var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (!nl(b)) throw Error(p(200));\n return cl(a, b, null, c);\n};\nexports.createRoot = function (a, b) {\n if (!nl(a)) throw Error(p(299));\n var c = !1,\n d = \"\",\n e = kl;\n null !== b && void 0 !== b && (!0 === b.unstable_strictMode && (c = !0), void 0 !== b.identifierPrefix && (d = b.identifierPrefix), void 0 !== b.onRecoverableError && (e = b.onRecoverableError));\n b = bl(a, 1, !1, null, null, c, !1, d, e);\n a[uf] = b.current;\n sf(8 === a.nodeType ? a.parentNode : a);\n return new ll(b);\n};\nexports.findDOMNode = function (a) {\n if (null == a) return null;\n if (1 === a.nodeType) return a;\n var b = a._reactInternals;\n if (void 0 === b) {\n if (\"function\" === typeof a.render) throw Error(p(188));\n a = Object.keys(a).join(\",\");\n throw Error(p(268, a));\n }\n a = Zb(b);\n a = null === a ? null : a.stateNode;\n return a;\n};\nexports.flushSync = function (a) {\n return Rk(a);\n};\nexports.hydrate = function (a, b, c) {\n if (!ol(b)) throw Error(p(200));\n return rl(null, a, b, !0, c);\n};\nexports.hydrateRoot = function (a, b, c) {\n if (!nl(a)) throw Error(p(405));\n var d = null != c && c.hydratedSources || null,\n e = !1,\n f = \"\",\n g = kl;\n null !== c && void 0 !== c && (!0 === c.unstable_strictMode && (e = !0), void 0 !== c.identifierPrefix && (f = c.identifierPrefix), void 0 !== c.onRecoverableError && (g = c.onRecoverableError));\n b = el(b, null, a, 1, null != c ? c : null, e, !1, f, g);\n a[uf] = b.current;\n sf(a);\n if (d) for (a = 0; a < d.length; a++) c = d[a], e = c._getVersion, e = e(c._source), null == b.mutableSourceEagerHydrationData ? b.mutableSourceEagerHydrationData = [c, e] : b.mutableSourceEagerHydrationData.push(c, e);\n return new ml(b);\n};\nexports.render = function (a, b, c) {\n if (!ol(b)) throw Error(p(200));\n return rl(null, a, b, !1, c);\n};\nexports.unmountComponentAtNode = function (a) {\n if (!ol(a)) throw Error(p(40));\n return a._reactRootContainer ? (Rk(function () {\n rl(null, null, a, !1, function () {\n a._reactRootContainer = null;\n a[uf] = null;\n });\n }), !0) : !1;\n};\nexports.unstable_batchedUpdates = Qk;\nexports.unstable_renderSubtreeIntoContainer = function (a, b, c, d) {\n if (!ol(c)) throw Error(p(200));\n if (null == a || void 0 === a._reactInternals) throw Error(p(38));\n return rl(a, b, c, !1, d);\n};\nexports.version = \"18.3.1-next-f1338f8080-20240426\";","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nfunction f(a, b) {\n var c = a.length;\n a.push(b);\n a: for (; 0 < c;) {\n var d = c - 1 >>> 1,\n e = a[d];\n if (0 < g(e, b)) a[d] = b, a[c] = e, c = d;else break a;\n }\n}\nfunction h(a) {\n return 0 === a.length ? null : a[0];\n}\nfunction k(a) {\n if (0 === a.length) return null;\n var b = a[0],\n c = a.pop();\n if (c !== b) {\n a[0] = c;\n a: for (var d = 0, e = a.length, w = e >>> 1; d < w;) {\n var m = 2 * (d + 1) - 1,\n C = a[m],\n n = m + 1,\n x = a[n];\n if (0 > g(C, c)) n < e && 0 > g(x, C) ? (a[d] = x, a[n] = c, d = n) : (a[d] = C, a[m] = c, d = m);else if (n < e && 0 > g(x, c)) a[d] = x, a[n] = c, d = n;else break a;\n }\n }\n return b;\n}\nfunction g(a, b) {\n var c = a.sortIndex - b.sortIndex;\n return 0 !== c ? c : a.id - b.id;\n}\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var l = performance;\n exports.unstable_now = function () {\n return l.now();\n };\n} else {\n var p = Date,\n q = p.now();\n exports.unstable_now = function () {\n return p.now() - q;\n };\n}\nvar r = [],\n t = [],\n u = 1,\n v = null,\n y = 3,\n z = !1,\n A = !1,\n B = !1,\n D = \"function\" === typeof setTimeout ? setTimeout : null,\n E = \"function\" === typeof clearTimeout ? clearTimeout : null,\n F = \"undefined\" !== typeof setImmediate ? setImmediate : null;\n\"undefined\" !== typeof navigator && void 0 !== navigator.scheduling && void 0 !== navigator.scheduling.isInputPending && navigator.scheduling.isInputPending.bind(navigator.scheduling);\nfunction G(a) {\n for (var b = h(t); null !== b;) {\n if (null === b.callback) k(t);else if (b.startTime <= a) k(t), b.sortIndex = b.expirationTime, f(r, b);else break;\n b = h(t);\n }\n}\nfunction H(a) {\n B = !1;\n G(a);\n if (!A) if (null !== h(r)) A = !0, I(J);else {\n var b = h(t);\n null !== b && K(H, b.startTime - a);\n }\n}\nfunction J(a, b) {\n A = !1;\n B && (B = !1, E(L), L = -1);\n z = !0;\n var c = y;\n try {\n G(b);\n for (v = h(r); null !== v && (!(v.expirationTime > b) || a && !M());) {\n var d = v.callback;\n if (\"function\" === typeof d) {\n v.callback = null;\n y = v.priorityLevel;\n var e = d(v.expirationTime <= b);\n b = exports.unstable_now();\n \"function\" === typeof e ? v.callback = e : v === h(r) && k(r);\n G(b);\n } else k(r);\n v = h(r);\n }\n if (null !== v) var w = !0;else {\n var m = h(t);\n null !== m && K(H, m.startTime - b);\n w = !1;\n }\n return w;\n } finally {\n v = null, y = c, z = !1;\n }\n}\nvar N = !1,\n O = null,\n L = -1,\n P = 5,\n Q = -1;\nfunction M() {\n return exports.unstable_now() - Q < P ? !1 : !0;\n}\nfunction R() {\n if (null !== O) {\n var a = exports.unstable_now();\n Q = a;\n var b = !0;\n try {\n b = O(!0, a);\n } finally {\n b ? S() : (N = !1, O = null);\n }\n } else N = !1;\n}\nvar S;\nif (\"function\" === typeof F) S = function () {\n F(R);\n};else if (\"undefined\" !== typeof MessageChannel) {\n var T = new MessageChannel(),\n U = T.port2;\n T.port1.onmessage = R;\n S = function () {\n U.postMessage(null);\n };\n} else S = function () {\n D(R, 0);\n};\nfunction I(a) {\n O = a;\n N || (N = !0, S());\n}\nfunction K(a, b) {\n L = D(function () {\n a(exports.unstable_now());\n }, b);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (a) {\n a.callback = null;\n};\nexports.unstable_continueExecution = function () {\n A || z || (A = !0, I(J));\n};\nexports.unstable_forceFrameRate = function (a) {\n 0 > a || 125 < a ? console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\") : P = 0 < a ? Math.floor(1E3 / a) : 5;\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return y;\n};\nexports.unstable_getFirstCallbackNode = function () {\n return h(r);\n};\nexports.unstable_next = function (a) {\n switch (y) {\n case 1:\n case 2:\n case 3:\n var b = 3;\n break;\n default:\n b = y;\n }\n var c = y;\n y = b;\n try {\n return a();\n } finally {\n y = c;\n }\n};\nexports.unstable_pauseExecution = function () {};\nexports.unstable_requestPaint = function () {};\nexports.unstable_runWithPriority = function (a, b) {\n switch (a) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n a = 3;\n }\n var c = y;\n y = a;\n try {\n return b();\n } finally {\n y = c;\n }\n};\nexports.unstable_scheduleCallback = function (a, b, c) {\n var d = exports.unstable_now();\n \"object\" === typeof c && null !== c ? (c = c.delay, c = \"number\" === typeof c && 0 < c ? d + c : d) : c = d;\n switch (a) {\n case 1:\n var e = -1;\n break;\n case 2:\n e = 250;\n break;\n case 5:\n e = 1073741823;\n break;\n case 4:\n e = 1E4;\n break;\n default:\n e = 5E3;\n }\n e = c + e;\n a = {\n id: u++,\n callback: b,\n priorityLevel: a,\n startTime: c,\n expirationTime: e,\n sortIndex: -1\n };\n c > d ? (a.sortIndex = c, f(t, a), null === h(r) && a === h(t) && (B ? (E(L), L = -1) : B = !0, K(H, c - d))) : (a.sortIndex = e, f(r, a), A || z || (A = !0, I(J)));\n return a;\n};\nexports.unstable_shouldYield = M;\nexports.unstable_wrapCallback = function (a) {\n var b = y;\n return function () {\n var c = y;\n y = b;\n try {\n return a.apply(this, arguments);\n } finally {\n y = c;\n }\n };\n};","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n function installNextTickImplementation() {\n registerImmediate = function (handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function (event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n registerImmediate = function (handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n registerImmediate = function (handle) {\n channel.port2.postMessage(handle);\n };\n }\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function (handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n function installSetTimeoutImplementation() {\n registerImmediate = function (handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n})(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self);","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n var transitional = config.transitional;\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n var promise;\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n return promise;\n }\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n return promise;\n};\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n Axios.prototype[method] = generateHTTPMethod();\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\nmodule.exports = InterceptorManager;","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(config, config.data, config.headers, config.transformRequest);\n\n // Flatten headers\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(config, response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(config, reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('../utils');\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict';\n\nvar base64 = require('base64-js');\nvar ieee754 = require('ieee754');\nvar isArray = require('isarray');\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength();\nfunction typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function () {\n return 42;\n }\n };\n return arr.foo() === 42 &&\n // typed array instances can be augmented\n typeof arr.subarray === 'function' &&\n // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0; // ie10 has broken `subarray`\n } catch (e) {\n return false;\n }\n}\nfunction kMaxLength() {\n return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n}\nfunction createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n that.length = length;\n }\n return that;\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n return allocUnsafe(this, arg);\n }\n return from(this, arg, encodingOrOffset, length);\n}\nBuffer.poolSize = 8192; // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr;\n};\nfunction from(that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number');\n }\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length);\n }\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset);\n }\n return fromObject(that, value);\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length);\n};\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n });\n }\n}\nfunction assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number');\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative');\n }\n}\nfunction alloc(that, size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(that, size);\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n return createBuffer(that, size);\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding);\n};\nfunction allocUnsafe(that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n return that;\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size);\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size);\n};\nfunction fromString(that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding');\n }\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n var actual = that.write(string, encoding);\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n return that;\n}\nfunction fromArrayLike(that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n return that;\n}\nfunction fromArrayBuffer(that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds');\n }\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that;\n}\nfunction fromObject(that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n if (that.length === 0) {\n return that;\n }\n obj.copy(that, 0, 0, len);\n return that;\n }\n if (obj) {\n if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\n return fromArrayLike(that, obj);\n }\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data);\n }\n }\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');\n}\nfunction checked(length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n return length | 0;\n}\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n return Buffer.alloc(+length);\n}\nBuffer.isBuffer = function isBuffer(b) {\n return !!(b != null && b._isBuffer);\n};\nBuffer.compare = function compare(a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers');\n }\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n};\nBuffer.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true;\n default:\n return false;\n }\n};\nBuffer.concat = function concat(list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n var i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer;\n};\nfunction byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n var len = string.length;\n if (len === 0) return 0;\n\n // Use a for loop to avoid recursion\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n case 'hex':\n return len >>> 1;\n case 'base64':\n return base64ToBytes(string).length;\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\nBuffer.byteLength = byteLength;\nfunction slowToString(encoding, start, end) {\n var loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return '';\n }\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return '';\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return '';\n }\n if (!encoding) encoding = 'utf8';\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end);\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end);\n case 'ascii':\n return asciiSlice(this, start, end);\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end);\n case 'base64':\n return base64Slice(this, start, end);\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true;\nfunction swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\nBuffer.prototype.swap16 = function swap16() {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n};\nBuffer.prototype.swap32 = function swap32() {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n};\nBuffer.prototype.swap64 = function swap64() {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n};\nBuffer.prototype.toString = function toString() {\n var length = this.length | 0;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n};\nBuffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n};\nBuffer.prototype.inspect = function inspect() {\n var str = '';\n var max = exports.INSPECT_MAX_BYTES;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return '<Buffer ' + str + '>';\n};\nBuffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer');\n }\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index');\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n};\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1;\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError('val must be string, number or Buffer');\n}\nfunction arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n var i;\n if (dir) {\n var foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n if (found) return i;\n }\n }\n return -1;\n}\nBuffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n};\nBuffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\nBuffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n};\nfunction hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n\n // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n return i;\n}\nfunction utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n}\nfunction asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\nfunction latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n}\nfunction base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\nfunction ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\nBuffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length);\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length);\n case 'ascii':\n return asciiWrite(this, string, offset, length);\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length);\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\nBuffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n};\nfunction base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n}\nfunction utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = '';\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n}\nfunction asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret;\n}\nfunction latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret;\n}\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n return out;\n}\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n}\nBuffer.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start) end = start;\n var newBuf;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n return newBuf;\n};\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n}\nBuffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n return val;\n};\nBuffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n var val = this[offset + --byteLength];\n var mul = 1;\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n return val;\n};\nBuffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n};\nBuffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n};\nBuffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n};\nBuffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\nBuffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\nBuffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\nBuffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return this[offset];\n return (0xff - this[offset] + 1) * -1;\n};\nBuffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\nBuffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\nBuffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\nBuffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n};\nBuffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n};\nBuffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n};\nBuffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n};\nfunction checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n}\nBuffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n return offset + byteLength;\n};\nBuffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n return offset + byteLength;\n};\nBuffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = value & 0xff;\n return offset + 1;\n};\nfunction objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n}\nBuffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2;\n};\nBuffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2;\n};\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n }\n}\nBuffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4;\n};\nBuffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4;\n};\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n return offset + byteLength;\n};\nBuffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n return offset + byteLength;\n};\nBuffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n};\nBuffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2;\n};\nBuffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2;\n};\nBuffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4;\n};\nBuffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4;\n};\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n}\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n}\nBuffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n};\nBuffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n};\nfunction writeDouble(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n}\nBuffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n};\nBuffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n};\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0;\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');\n if (end < 0) throw new RangeError('sourceEnd out of bounds');\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n var len = end - start;\n var i;\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n }\n return len;\n};\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index');\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n};\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\nfunction base64clean(str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '');\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return '';\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n return str;\n}\nfunction stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n}\nfunction toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n}\nfunction utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n }\n\n // valid lead\n leadSurrogate = codePoint;\n continue;\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n return bytes;\n}\nfunction asciiToBytes(str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n return byteArray;\n}\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n}\nfunction base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n}\nfunction blitBuffer(src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n return i;\n}\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n}","'use strict';\n\nexports.byteLength = byteLength;\nexports.toByteArray = toByteArray;\nexports.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\nfunction getLens(b64) {\n var len = b64.length;\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4');\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\nfunction _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\nfunction toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = tmp >> 16 & 0xFF;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 0xFF;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n return arr;\n}\nfunction tripletToBase64(num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\nfunction encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n return output.join('');\n}\nfunction fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n }\n return parts.join('');\n}","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n};\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n buffer[offset + i - d] |= s * 128;\n};","var toString = {}.toString;\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError('Request failed with status code ' + response.status, [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], response.config, response.request, response));\n }\n};","'use strict';\n\nvar utils = require('./../utils');\nmodule.exports = utils.isStandardBrowserEnv() ?\n// Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() :\n// Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n if (!headers) {\n return parsed;\n }\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\nmodule.exports = utils.isStandardBrowserEnv() ?\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() :\n// Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};","// eslint-disable-next-line strict\nmodule.exports = null;","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function (value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), AxiosError.ERR_DEPRECATED);\n }\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'));\n }\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function (cancel) {\n if (!token._listeners) return;\n var i;\n var l = token._listeners.length;\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function (onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function (resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n return promise;\n };\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\nmodule.exports = CancelToken;","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n};","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = Symbol.for(\"react.element\"),\n c = Symbol.for(\"react.portal\"),\n d = Symbol.for(\"react.fragment\"),\n e = Symbol.for(\"react.strict_mode\"),\n f = Symbol.for(\"react.profiler\"),\n g = Symbol.for(\"react.provider\"),\n h = Symbol.for(\"react.context\"),\n k = Symbol.for(\"react.server_context\"),\n l = Symbol.for(\"react.forward_ref\"),\n m = Symbol.for(\"react.suspense\"),\n n = Symbol.for(\"react.suspense_list\"),\n p = Symbol.for(\"react.memo\"),\n q = Symbol.for(\"react.lazy\"),\n t = Symbol.for(\"react.offscreen\"),\n u;\nu = Symbol.for(\"react.module.reference\");\nfunction v(a) {\n if (\"object\" === typeof a && null !== a) {\n var r = a.$$typeof;\n switch (r) {\n case b:\n switch (a = a.type, a) {\n case d:\n case f:\n case e:\n case m:\n case n:\n return a;\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case h:\n case l:\n case q:\n case p:\n case g:\n return a;\n default:\n return r;\n }\n }\n case c:\n return r;\n }\n }\n}\nexports.ContextConsumer = h;\nexports.ContextProvider = g;\nexports.Element = b;\nexports.ForwardRef = l;\nexports.Fragment = d;\nexports.Lazy = q;\nexports.Memo = p;\nexports.Portal = c;\nexports.Profiler = f;\nexports.StrictMode = e;\nexports.Suspense = m;\nexports.SuspenseList = n;\nexports.isAsyncMode = function () {\n return !1;\n};\nexports.isConcurrentMode = function () {\n return !1;\n};\nexports.isContextConsumer = function (a) {\n return v(a) === h;\n};\nexports.isContextProvider = function (a) {\n return v(a) === g;\n};\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === b;\n};\nexports.isForwardRef = function (a) {\n return v(a) === l;\n};\nexports.isFragment = function (a) {\n return v(a) === d;\n};\nexports.isLazy = function (a) {\n return v(a) === q;\n};\nexports.isMemo = function (a) {\n return v(a) === p;\n};\nexports.isPortal = function (a) {\n return v(a) === c;\n};\nexports.isProfiler = function (a) {\n return v(a) === f;\n};\nexports.isStrictMode = function (a) {\n return v(a) === e;\n};\nexports.isSuspense = function (a) {\n return v(a) === m;\n};\nexports.isSuspenseList = function (a) {\n return v(a) === n;\n};\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === d || a === f || a === e || a === m || a === n || a === t || \"object\" === typeof a && null !== a && (a.$$typeof === q || a.$$typeof === p || a.$$typeof === g || a.$$typeof === h || a.$$typeof === l || a.$$typeof === u || void 0 !== a.getModuleId) ? !0 : !1;\n};\nexports.typeOf = v;","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n if (!style) return [];\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = {\n line: lineno,\n column: column\n };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = {\n line: lineno,\n column: column\n };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(options.source + ':' + lineno + ':' + column + ': ' + msg);\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while (c = comment()) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n var i = 2;\n while (EMPTY_STRING != style.charAt(i) && (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))) {\n ++i;\n }\n i += 2;\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING)) : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n comments(decls);\n\n // declarations\n var decl;\n while (decl = declaration()) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n return decls;\n }\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}","\"use strict\";\n\nvar React = require('react'),\n ReactDOM = require('react-dom'),\n PropTypes = require('prop-types'),\n createReactClass = require('create-react-class'),\n S3Upload = require('./s3upload.js'),\n objectAssign = require('object-assign');\nvar ReactS3Uploader = createReactClass({\n displayName: \"ReactS3Uploader\",\n propTypes: {\n signingUrl: PropTypes.string,\n getSignedUrl: PropTypes.func,\n preprocess: PropTypes.func,\n onSignedUrl: PropTypes.func,\n onProgress: PropTypes.func,\n onFinish: PropTypes.func,\n onError: PropTypes.func,\n signingUrlMethod: PropTypes.string,\n signingUrlHeaders: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n signingUrlQueryParams: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n signingUrlWithCredentials: PropTypes.bool,\n uploadRequestHeaders: PropTypes.object,\n contentDisposition: PropTypes.string,\n server: PropTypes.string,\n scrubFilename: PropTypes.func,\n s3path: PropTypes.string,\n inputRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n autoUpload: PropTypes.bool\n },\n getDefaultProps: function () {\n return {\n preprocess: function (file, next) {\n console.log('Pre-process: ', file.name);\n next(file);\n },\n onSignedUrl: function (signingServerResponse) {\n console.log('Signing server response: ', signingServerResponse);\n },\n onProgress: function (percent, message, file) {\n console.log('Upload progress: ', `${percent} % ${message}`);\n },\n onFinish: function (signResult) {\n console.log(\"Upload finished: \", signResult.publicUrl);\n },\n onError: function (message) {\n console.log(\"Upload error: \", message);\n },\n server: '',\n signingUrlMethod: 'GET',\n scrubFilename: function (filename) {\n return filename.replace(/[^\\w\\d_\\-\\.]+/ig, '');\n },\n s3path: '',\n autoUpload: true\n };\n },\n uploadFile: function () {\n this.myUploader = new S3Upload({\n fileElement: ReactDOM.findDOMNode(this),\n signingUrl: this.props.signingUrl,\n getSignedUrl: this.props.getSignedUrl,\n preprocess: this.props.preprocess,\n onSignedUrl: this.props.onSignedUrl,\n onProgress: this.props.onProgress,\n onFinishS3Put: this.props.onFinish,\n onError: this.props.onError,\n signingUrlMethod: this.props.signingUrlMethod,\n signingUrlHeaders: this.props.signingUrlHeaders,\n signingUrlQueryParams: this.props.signingUrlQueryParams,\n signingUrlWithCredentials: this.props.signingUrlWithCredentials,\n uploadRequestHeaders: this.props.uploadRequestHeaders,\n contentDisposition: this.props.contentDisposition,\n server: this.props.server,\n scrubFilename: this.props.scrubFilename,\n s3path: this.props.s3path\n });\n },\n abort: function () {\n this.myUploader && this.myUploader.abortUpload();\n },\n clear: function () {\n clearInputFile(ReactDOM.findDOMNode(this));\n },\n render: function () {\n return React.createElement('input', this.getInputProps());\n },\n getInputProps: function () {\n // declare ref beforehand and filter out\n // `inputRef` by `ReactS3Uploader.propTypes`\n var additional = {\n type: 'file',\n ref: this.props.inputRef\n };\n if (this.props.autoUpload) {\n additional.onChange = this.uploadFile;\n }\n var temporaryProps = objectAssign({}, this.props, additional);\n var inputProps = {};\n var invalidProps = Object.keys(ReactS3Uploader.propTypes);\n for (var key in temporaryProps) {\n if (temporaryProps.hasOwnProperty(key) && invalidProps.indexOf(key) === -1) {\n inputProps[key] = temporaryProps[key];\n }\n }\n return inputProps;\n }\n});\n\n// http://stackoverflow.com/a/24608023/194065\nfunction clearInputFile(f) {\n if (f.value) {\n try {\n f.value = ''; //for IE11, latest Chrome/Firefox/Opera...\n } catch (err) {}\n if (f.value) {\n //for IE5 ~ IE10\n var form = document.createElement('form'),\n parentNode = f.parentNode,\n ref = f.nextSibling;\n form.appendChild(f);\n form.reset();\n parentNode.insertBefore(f, ref);\n }\n }\n}\nmodule.exports = ReactS3Uploader;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar React = require('react');\nvar factory = require('./factory');\nif (typeof React === 'undefined') {\n throw Error('create-react-class could not find the React object. If you are using script tags, ' + 'make sure that React is being loaded before create-react-class.');\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\nmodule.exports = factory(React.Component, React.isValidElement, ReactNoopUpdateQueue);","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\n// -- Inlined from fbjs --\n\nvar emptyObject = {};\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\nvar validateFormat = function validateFormat(format) {};\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\nfunction _invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\nvar warning = function () {};\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\n// /-- Inlined from fbjs --\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\nvar ReactPropTypeLocationNames;\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {\n ReactPropTypeLocationNames = {};\n}\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return <div>Hello World</div>;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return <div>Hello, {name}!</div>;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n /**\n * Replacement for (deprecated) `componentWillMount`.\n *\n * @optional\n */\n UNSAFE_componentWillMount: 'DEFINE_MANY',\n /**\n * Replacement for (deprecated) `componentWillReceiveProps`.\n *\n * @optional\n */\n UNSAFE_componentWillReceiveProps: 'DEFINE_MANY',\n /**\n * Replacement for (deprecated) `componentWillUpdate`.\n *\n * @optional\n */\n UNSAFE_componentWillUpdate: 'DEFINE_MANY',\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Similar to ReactClassInterface but for static methods.\n */\n var ReactClassStaticInterface = {\n /**\n * This method is invoked after a component is instantiated and when it\n * receives new props. Return an object to update state in response to\n * prop changes. Return null to indicate no change to state.\n *\n * If an object is returned, its keys will be merged into the existing state.\n *\n * @return {object || null}\n * @optional\n */\n getDerivedStateFromProps: 'DEFINE_MANY_MERGED'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function (Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function (Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function (Constructor, childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes);\n },\n contextTypes: function (Constructor, contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes);\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function (Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps);\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function (Constructor, propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function (Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function () {}\n };\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (process.env.NODE_ENV !== 'production') {\n warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName);\n }\n }\n }\n }\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(specPolicy === 'OVERRIDE_BASE', 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name);\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED', 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name);\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n if (process.env.NODE_ENV !== 'production') {\n warning(isMixinValid, \"%s: You're attempting to include a mixin that is either null \" + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec);\n }\n }\n return;\n }\n _invariant(typeof spec !== 'function', \"ReactClass: You're attempting to \" + 'use a component class or function as a mixin. Instead, just use a ' + 'regular object.');\n _invariant(!isValidElement(spec), \"ReactClass: You're attempting to \" + 'use a component as a mixin. Instead, just use a regular object.');\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY'), 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name);\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(!isReserved, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name);\n var isAlreadyDefined = name in Constructor;\n if (isAlreadyDefined) {\n var specPolicy = ReactClassStaticInterface.hasOwnProperty(name) ? ReactClassStaticInterface[name] : null;\n _invariant(specPolicy === 'DEFINE_MANY_MERGED', 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name);\n Constructor[name] = createMergedResultFunction(Constructor[name], property);\n return;\n }\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(one && two && typeof one === 'object' && typeof two === 'object', 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.');\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(one[key] === undefined, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key);\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function (newThis) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName);\n }\n } else if (!args.length) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName);\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n var IsMountedPreMixin = {\n componentDidMount: function () {\n this.__isMounted = true;\n }\n };\n var IsMountedPostMixin = {\n componentWillUnmount: function () {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function (newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function () {\n if (process.env.NODE_ENV !== 'production') {\n warning(this.__didWarnIsMounted, '%s: isMounted is deprecated. Instead, make sure to clean up ' + 'subscriptions and pending requests in componentWillUnmount to ' + 'prevent memory leaks.', this.constructor && this.constructor.displayName || this.name || 'Component');\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n var ReactClassComponent = function () {};\n _assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function (props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (process.env.NODE_ENV !== 'production') {\n warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory');\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (initialState === undefined && this.getInitialState._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(typeof initialState === 'object' && !Array.isArray(initialState), '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent');\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n _invariant(Constructor.prototype.render, 'createClass(...): Class specification must implement a `render` method.');\n if (process.env.NODE_ENV !== 'production') {\n warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component');\n warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component');\n warning(!Constructor.prototype.UNSAFE_componentWillRecieveProps, '%s has a method called UNSAFE_componentWillRecieveProps(). ' + 'Did you mean UNSAFE_componentWillReceiveProps()?', spec.displayName || 'A component');\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n return Constructor;\n }\n return createClass;\n}\nmodule.exports = factory;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n return Object(val);\n}\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n }\n\n // Detect buggy property enumeration order in older V8 versions.\n\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n test1[5] = 'de';\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n }\n\n // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n var test2 = {};\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n if (order2.join('') !== '0123456789') {\n return false;\n }\n\n // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n return to;\n};","/**\n * Taken, CommonJS-ified, and heavily modified from:\n * https://github.com/flyingsparx/NodeDirectUploader\n */\n\nvar mime = require('mime-types');\nS3Upload.prototype.server = '';\nS3Upload.prototype.signingUrl = '/sign-s3';\nS3Upload.prototype.signingUrlMethod = 'GET';\nS3Upload.prototype.successResponses = [200, 201];\nS3Upload.prototype.fileElement = null;\nS3Upload.prototype.files = null;\nS3Upload.prototype.onFinishS3Put = function (signResult, file) {\n return console.log('base.onFinishS3Put()', signResult.publicUrl);\n};\nS3Upload.prototype.preprocess = function (file, next) {\n console.log('base.preprocess()', file);\n return next(file);\n};\nS3Upload.prototype.onProgress = function (percent, status, file) {\n return console.log('base.onProgress()', percent, status);\n};\nS3Upload.prototype.onError = function (status, file) {\n return console.log('base.onError()', status);\n};\nS3Upload.prototype.onSignedUrl = function (result) {};\nS3Upload.prototype.scrubFilename = function (filename) {\n return filename.replace(/[^\\w\\d_\\-\\.]+/ig, '');\n};\nfunction S3Upload(options) {\n if (options == null) {\n options = {};\n }\n for (var option in options) {\n if (options.hasOwnProperty(option)) {\n this[option] = options[option];\n }\n }\n var files = this.fileElement ? this.fileElement.files : this.files || [];\n this.handleFileSelect(files);\n}\nfunction getFileMimeType(file) {\n return file.type || mime.lookup(file.name);\n}\nS3Upload.prototype.handleFileSelect = function (files) {\n var result = [];\n for (var i = 0; i < files.length; i++) {\n var file = files[i];\n this.preprocess(file, function (processedFile) {\n this.onProgress(0, 'Waiting', processedFile);\n result.push(this.uploadFile(processedFile));\n return result;\n }.bind(this));\n }\n};\nS3Upload.prototype.createCORSRequest = function (method, url, opts) {\n var opts = opts || {};\n var xhr = new XMLHttpRequest();\n if (xhr.withCredentials != null) {\n xhr.open(method, url, true);\n if (opts.withCredentials != null) {\n xhr.withCredentials = opts.withCredentials;\n }\n } else if (typeof XDomainRequest !== \"undefined\") {\n xhr = new XDomainRequest();\n xhr.open(method, url);\n } else {\n xhr = null;\n }\n return xhr;\n};\nS3Upload.prototype._getErrorRequestContext = function (xhr) {\n return {\n response: xhr.responseText,\n status: xhr.status,\n statusText: xhr.statusText,\n readyState: xhr.readyState\n };\n};\nS3Upload.prototype.executeOnSignedUrl = function (file, callback) {\n var fileName = this.scrubFilename(file.name);\n var queryString = '?objectName=' + fileName + '&contentType=' + encodeURIComponent(getFileMimeType(file));\n if (this.s3path) {\n queryString += '&path=' + encodeURIComponent(this.s3path);\n }\n if (this.signingUrlQueryParams) {\n var signingUrlQueryParams = typeof this.signingUrlQueryParams === 'function' ? this.signingUrlQueryParams() : this.signingUrlQueryParams;\n Object.keys(signingUrlQueryParams).forEach(function (key) {\n var val = signingUrlQueryParams[key];\n queryString += '&' + key + '=' + val;\n });\n }\n var xhr = this.createCORSRequest(this.signingUrlMethod, this.server + this.signingUrl + queryString, {\n withCredentials: this.signingUrlWithCredentials\n });\n if (this.signingUrlHeaders) {\n var signingUrlHeaders = typeof this.signingUrlHeaders === 'function' ? this.signingUrlHeaders() : this.signingUrlHeaders;\n Object.keys(signingUrlHeaders).forEach(function (key) {\n var val = signingUrlHeaders[key];\n xhr.setRequestHeader(key, val);\n });\n }\n xhr.overrideMimeType && xhr.overrideMimeType('text/plain; charset=x-user-defined');\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4 && this.successResponses.indexOf(xhr.status) >= 0) {\n var result;\n try {\n result = JSON.parse(xhr.responseText);\n this.onSignedUrl(result);\n } catch (error) {\n this.onError('Invalid response from server', file, this._getErrorRequestContext(xhr));\n return false;\n }\n return callback(result);\n } else if (xhr.readyState === 4 && this.successResponses.indexOf(xhr.status) < 0) {\n return this.onError('Could not contact request signing server. Status = ' + xhr.status, file, this._getErrorRequestContext(xhr));\n }\n }.bind(this);\n return xhr.send();\n};\nS3Upload.prototype.uploadToS3 = function (file, signResult) {\n var xhr = this.createCORSRequest('PUT', signResult.signedUrl);\n if (!xhr) {\n this.onError('CORS not supported', file, {});\n } else {\n xhr.onload = function () {\n if (this.successResponses.indexOf(xhr.status) >= 0) {\n this.onProgress(100, 'Upload completed', file);\n return this.onFinishS3Put(signResult, file);\n } else {\n return this.onError('Upload error: ' + xhr.status, file, this._getErrorRequestContext(xhr));\n }\n }.bind(this);\n xhr.onerror = function () {\n return this.onError('XHR error', file, this._getErrorRequestContext(xhr));\n }.bind(this);\n xhr.upload.onprogress = function (e) {\n var percentLoaded;\n if (e.lengthComputable) {\n percentLoaded = Math.round(e.loaded / e.total * 100);\n return this.onProgress(percentLoaded, percentLoaded === 100 ? 'Finalizing' : 'Uploading', file);\n }\n }.bind(this);\n }\n var fileType = getFileMimeType(file);\n var headers = {\n 'content-type': fileType\n };\n if (this.contentDisposition) {\n var disposition = this.contentDisposition;\n if (disposition === 'auto') {\n if (fileType.substr(0, 6) === 'image/') {\n disposition = 'inline';\n } else {\n disposition = 'attachment';\n }\n }\n var fileName = this.scrubFilename(file.name);\n headers['content-disposition'] = disposition + '; filename=\"' + fileName + '\"';\n }\n if (!this.uploadRequestHeaders) {\n xhr.setRequestHeader('x-amz-acl', 'public-read');\n }\n [signResult.headers, this.uploadRequestHeaders].filter(Boolean).forEach(function (hdrs) {\n Object.entries(hdrs).forEach(function (pair) {\n headers[pair[0].toLowerCase()] = pair[1];\n });\n });\n Object.entries(headers).forEach(function (pair) {\n xhr.setRequestHeader(pair[0], pair[1]);\n });\n this.httprequest = xhr;\n return xhr.send(file);\n};\nS3Upload.prototype.uploadFile = function (file) {\n var uploadToS3Callback = this.uploadToS3.bind(this, file);\n if (this.getSignedUrl) return this.getSignedUrl(file, uploadToS3Callback);\n return this.executeOnSignedUrl(file, uploadToS3Callback);\n};\nS3Upload.prototype.abortUpload = function () {\n this.httprequest && this.httprequest.abort();\n};\nmodule.exports = S3Upload;","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module dependencies.\n * @private\n */\nvar db = require('mime-db');\nvar extname = require('path').extname;\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/;\nvar TEXT_TYPE_REGEXP = /^text\\//i;\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset;\nexports.charsets = {\n lookup: charset\n};\nexports.contentType = contentType;\nexports.extension = extension;\nexports.extensions = Object.create(null);\nexports.lookup = lookup;\nexports.types = Object.create(null);\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types);\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset(type) {\n if (!type || typeof type !== 'string') {\n return false;\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type);\n var mime = match && db[match[1].toLowerCase()];\n if (mime && mime.charset) {\n return mime.charset;\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8';\n }\n return false;\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType(str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false;\n }\n var mime = str.indexOf('/') === -1 ? exports.lookup(str) : str;\n if (!mime) {\n return false;\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime);\n if (charset) mime += '; charset=' + charset.toLowerCase();\n }\n return mime;\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension(type) {\n if (!type || typeof type !== 'string') {\n return false;\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type);\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()];\n if (!exts || !exts.length) {\n return false;\n }\n return exts[0];\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup(path) {\n if (!path || typeof path !== 'string') {\n return false;\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path).toLowerCase().substr(1);\n if (!extension) {\n return false;\n }\n return exports.types[extension] || false;\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps(extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana'];\n Object.keys(db).forEach(function forEachMimeType(type) {\n var mime = db[type];\n var exts = mime.extensions;\n if (!exts || !exts.length) {\n return;\n }\n\n // mime -> extensions\n extensions[type] = exts;\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i];\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source);\n var to = preference.indexOf(mime.source);\n if (types[extension] !== 'application/octet-stream' && (from > to || from === to && types[extension].substr(0, 12) === 'application/')) {\n // skip the remapping\n continue;\n }\n }\n\n // set the extension -> mime\n types[extension] = type;\n }\n });\n}","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json');","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n// path.relative(from, to)\n// posix version\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\nexports.sep = '/';\nexports.delimiter = ':';\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","'use strict';\n\nfunction ToObject(val) {\n if (val == null) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n return Object(val);\n}\nmodule.exports = Object.assign || function (target, source) {\n var from;\n var keys;\n var to = ToObject(target);\n for (var s = 1; s < arguments.length; s++) {\n from = arguments[s];\n keys = Object.keys(Object(from));\n for (var i = 0; i < keys.length; i++) {\n to[keys[i]] = from[keys[i]];\n }\n }\n return to;\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = activeElement;\nvar _ownerDocument = _interopRequireDefault(require(\"./ownerDocument\"));\nfunction activeElement(doc) {\n if (doc === void 0) {\n doc = (0, _ownerDocument.default)();\n }\n try {\n return doc.activeElement;\n } catch (e) {\n /* ie throws if no active element */\n }\n}\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = deprecated;\nvar _warning = require('warning');\nvar _warning2 = _interopRequireDefault(_warning);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar warned = {};\nfunction deprecated(validator, reason) {\n return function validate(props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<<anonymous>>';\n var propFullNameSafe = propFullName || propName;\n if (props[propName] != null) {\n var messageKey = componentName + '.' + propName;\n (0, _warning2.default)(warned[messageKey], 'The ' + location + ' `' + propFullNameSafe + '` of ' + ('`' + componentNameSafe + '` is deprecated. ' + reason + '.'));\n warned[messageKey] = true;\n }\n for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {\n args[_key - 5] = arguments[_key];\n }\n return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args));\n };\n}\n\n/* eslint-disable no-underscore-dangle */\nfunction _resetWarned() {\n warned = {};\n}\ndeprecated._resetWarned = _resetWarned;\n/* eslint-enable no-underscore-dangle */\n\nmodule.exports = exports['default'];","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nvar warning = function () {};\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n warning = function (condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\nmodule.exports = warning;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar WidgetPicker = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(WidgetPicker, _React$Component);\n function WidgetPicker() {\n return _React$Component.apply(this, arguments) || this;\n }\n var _proto = WidgetPicker.prototype;\n _proto.render = function render() {\n var _this$props = this.props,\n open = _this$props.open,\n dropUp = _this$props.dropUp,\n className = _this$props.className,\n disabled = _this$props.disabled,\n readOnly = _this$props.readOnly,\n focused = _this$props.focused,\n props = _objectWithoutProperties(_this$props, [\"open\", \"dropUp\", \"className\", \"disabled\", \"readOnly\", \"focused\"]);\n var openClass = \"rw-open\" + (dropUp ? '-up' : '');\n return _react.default.createElement(\"div\", _extends({}, props, {\n className: (0, _classnames.default)(className, 'rw-widget-picker', 'rw-widget-container', open && openClass, disabled && 'rw-state-disabled', readOnly && 'rw-state-readonly', focused && 'rw-state-focus')\n }));\n };\n return WidgetPicker;\n}(_react.default.Component);\nWidgetPicker.propTypes = {\n tabIndex: _propTypes.default.node,\n focused: _propTypes.default.bool,\n disabled: _propTypes.default.bool,\n readOnly: _propTypes.default.bool,\n open: _propTypes.default.bool,\n dropUp: _propTypes.default.bool,\n picker: _propTypes.default.bool\n};\nvar _default = WidgetPicker;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _SlideDownTransition = _interopRequireDefault(require(\"./SlideDownTransition\"));\nvar _PropTypes = require(\"./util/PropTypes\");\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar StaticContainer = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(StaticContainer, _React$Component);\n function StaticContainer() {\n return _React$Component.apply(this, arguments) || this;\n }\n var _proto = StaticContainer.prototype;\n _proto.shouldComponentUpdate = function shouldComponentUpdate(_ref) {\n var shouldUpdate = _ref.shouldUpdate;\n return !!shouldUpdate;\n };\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n children = _this$props.children,\n props = _objectWithoutProperties(_this$props, [\"className\", \"children\"]);\n delete props.shouldUpdate;\n return (0, _react.cloneElement)(children, _extends({}, props, {\n className: (0, _classnames.default)(className, children.props.className, 'rw-popup')\n }));\n };\n return StaticContainer;\n}(_react.default.Component);\nStaticContainer.propTypes = {\n shouldUpdate: function shouldUpdate() {}\n};\nvar Popup = /*#__PURE__*/\nfunction (_React$Component2) {\n _inheritsLoose(Popup, _React$Component2);\n function Popup() {\n return _React$Component2.apply(this, arguments) || this;\n }\n var _proto2 = Popup.prototype;\n _proto2.render = function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n dropUp = _this$props2.dropUp,\n open = _this$props2.open,\n Transition = _this$props2.transition,\n props = _objectWithoutProperties(_this$props2, [\"className\", \"dropUp\", \"open\", \"transition\"]);\n return _react.default.createElement(Transition, _extends({}, props, {\n in: open,\n dropUp: dropUp,\n className: (0, _classnames.default)(className, 'rw-popup-container')\n }), _react.default.createElement(StaticContainer, {\n shouldUpdate: open\n }, _react.default.Children.only(this.props.children)));\n };\n return Popup;\n}(_react.default.Component);\nPopup.defaultProps = {\n open: false,\n transition: _SlideDownTransition.default\n};\nPopup.propTypes = {\n open: _propTypes.default.bool,\n dropUp: _propTypes.default.bool,\n onEntering: _propTypes.default.func,\n onEntered: _propTypes.default.func,\n transition: _PropTypes.elementType\n};\nvar _default = Popup;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _events = _interopRequireDefault(require(\"dom-helpers/events\"));\nvar _style = _interopRequireDefault(require(\"dom-helpers/style\"));\nvar _height = _interopRequireDefault(require(\"dom-helpers/query/height\"));\nvar _properties = require(\"dom-helpers/transition/properties\");\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _Transition = _interopRequireWildcard(require(\"react-transition-group/Transition\"));\nvar _transitionClasses;\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar transitionClasses = (_transitionClasses = {}, _transitionClasses[_Transition.ENTERING] = 'rw-popup-transition-entering', _transitionClasses[_Transition.EXITING] = 'rw-popup-transition-exiting', _transitionClasses[_Transition.EXITED] = 'rw-popup-transition-exited', _transitionClasses);\nvar propTypes = {\n in: _propTypes.default.bool.isRequired,\n dropUp: _propTypes.default.bool,\n onEntering: _propTypes.default.func,\n onEntered: _propTypes.default.func\n};\nfunction parseDuration(node) {\n var str = (0, _style.default)(node, _properties.transitionDuration);\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\nvar SlideDownTransition = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(SlideDownTransition, _React$Component);\n function SlideDownTransition() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.setContainerHeight = function (elem) {\n elem.style.height = _this.getHeight() + 'px';\n };\n _this.clearContainerHeight = function (elem) {\n elem.style.height = '';\n };\n _this.handleEntered = function (elem) {\n _this.clearContainerHeight(elem);\n if (_this.props.onEntered) _this.props.onEntered();\n };\n _this.handleEntering = function () {\n if (_this.props.onEntering) _this.props.onEntering();\n };\n _this.handleTransitionEnd = function (node, done) {\n var duration = parseDuration(node.lastChild) || 0;\n var handler = function handler() {\n _events.default.off(node, _properties.transitionEnd, handler, false);\n done();\n };\n setTimeout(handler, duration * 1.5);\n _events.default.on(node, _properties.transitionEnd, handler, false);\n };\n _this.attachRef = function (ref) {\n return _this.element = ref;\n };\n return _this;\n }\n var _proto = SlideDownTransition.prototype;\n _proto.getHeight = function getHeight() {\n var container = this.element;\n var content = container.firstChild;\n var margin = parseInt((0, _style.default)(content, 'margin-top'), 10) + parseInt((0, _style.default)(content, 'margin-bottom'), 10);\n var old = container.style.display;\n var height;\n container.style.display = 'block';\n height = ((0, _height.default)(content) || 0) + (isNaN(margin) ? 0 : margin);\n container.style.display = old;\n return height;\n };\n _proto.render = function render() {\n var _this2 = this;\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n dropUp = _this$props.dropUp;\n return _react.default.createElement(_Transition.default, {\n appear: true,\n in: this.props.in,\n timeout: 5000,\n onEnter: this.setContainerHeight,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered,\n onExit: this.setContainerHeight,\n onExited: this.clearContainerHeight,\n addEndListener: this.handleTransitionEnd\n }, function (status, innerProps) {\n return _react.default.createElement(\"div\", _extends({}, innerProps, {\n ref: _this2.attachRef,\n className: (0, _classnames.default)(className, dropUp && 'rw-dropup', transitionClasses[status])\n }), _react.default.createElement(\"div\", {\n className: \"rw-popup-transition\"\n }, children));\n });\n };\n return SlideDownTransition;\n}(_react.default.Component);\nSlideDownTransition.propTypes = propTypes;\nvar _default = SlideDownTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = filterEvents;\nvar _contains = _interopRequireDefault(require(\"../query/contains\"));\nvar _querySelectorAll = _interopRequireDefault(require(\"../query/querySelectorAll\"));\nfunction filterEvents(selector, handler) {\n return function filterHandler(e) {\n var top = e.currentTarget,\n target = e.target,\n matches = (0, _querySelectorAll.default)(top, selector);\n if (matches.some(function (match) {\n return (0, _contains.default)(match, target);\n })) handler.call(this, e);\n };\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = void 0;\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\nvar _on = _interopRequireDefault(require(\"./on\"));\nvar _off = _interopRequireDefault(require(\"./off\"));\nvar listen = function listen() {};\nif (_inDOM.default) {\n listen = function listen(node, eventName, handler, capture) {\n (0, _on.default)(node, eventName, handler, capture);\n return function () {\n (0, _off.default)(node, eventName, handler, capture);\n };\n };\n}\nvar _default = listen;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = camelize;\nvar rHyphen = /-(.)/g;\nfunction camelize(string) {\n return string.replace(rHyphen, function (_, chr) {\n return chr.toUpperCase();\n });\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = hyphenateStyleName;\nvar _hyphenate = _interopRequireDefault(require(\"./hyphenate\"));\n\n/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nvar msPattern = /^ms-/;\nfunction hyphenateStyleName(string) {\n return (0, _hyphenate.default)(string).replace(msPattern, '-ms-');\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hyphenate;\nvar rUpper = /([A-Z])/g;\nfunction hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = _getComputedStyle;\nvar _camelizeStyle = _interopRequireDefault(require(\"../util/camelizeStyle\"));\nvar rposition = /^(top|right|bottom|left)$/;\nvar rnumnonpx = /^([+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|))(?!px)[a-z%]+$/i;\nfunction _getComputedStyle(node) {\n if (!node) throw new TypeError('No Element passed to `getComputedStyle()`');\n var doc = node.ownerDocument;\n return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : {\n //ie 8 \"magic\" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72\n getPropertyValue: function getPropertyValue(prop) {\n var style = node.style;\n prop = (0, _camelizeStyle.default)(prop);\n if (prop == 'float') prop = 'styleFloat';\n var current = node.currentStyle[prop] || null;\n if (current == null && style && style[prop]) current = style[prop];\n if (rnumnonpx.test(current) && !rposition.test(prop)) {\n // Remember the original values\n var left = style.left;\n var runStyle = node.runtimeStyle;\n var rsLeft = runStyle && runStyle.left; // Put in the new values to get a computed value out\n\n if (rsLeft) runStyle.left = node.currentStyle.left;\n style.left = prop === 'fontSize' ? '1em' : current;\n current = style.pixelLeft + 'px'; // Revert the changed values\n\n style.left = left;\n if (rsLeft) runStyle.left = rsLeft;\n }\n return current;\n }\n };\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = removeStyle;\nfunction removeStyle(node, key) {\n return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = isTransform;\nvar supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nfunction isTransform(property) {\n return !!(property && supportedTransforms.test(property));\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _react = require('react');\nvar _react2 = _interopRequireDefault(_react);\nvar _reactIs = require('react-is');\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction elementType(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (_react2.default.isValidElement(propValue)) {\n return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`,expected an element type (a string ') + ', component class, or function component).');\n }\n if (!(0, _reactIs.isValidElementType)(propValue)) {\n return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + ', component class, or function component).');\n }\n return null;\n}\nexports.default = (0, _createChainableTypeChecker2.default)(elementType);\nmodule.exports = exports['default'];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _reactDom = require(\"react-dom\");\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _uncontrollable = require(\"uncontrollable\");\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\nvar _reactComponentManagers = require(\"react-component-managers\");\nvar _Widget = _interopRequireDefault(require(\"./Widget\"));\nvar _Header = _interopRequireDefault(require(\"./Header\"));\nvar _Footer = _interopRequireDefault(require(\"./Footer\"));\nvar _Month = _interopRequireDefault(require(\"./Month\"));\nvar _Year = _interopRequireDefault(require(\"./Year\"));\nvar _Decade = _interopRequireDefault(require(\"./Decade\"));\nvar _Century = _interopRequireDefault(require(\"./Century\"));\nvar _messages = require(\"./messages\");\nvar _SlideTransitionGroup = _interopRequireDefault(require(\"./SlideTransitionGroup\"));\nvar _focusManager = _interopRequireDefault(require(\"./util/focusManager\"));\nvar _localizers = require(\"./util/localizers\");\nvar CustomPropTypes = _interopRequireWildcard(require(\"./util/PropTypes\"));\nvar Props = _interopRequireWildcard(require(\"./util/Props\"));\nvar _dates = _interopRequireDefault(require(\"./util/dates\"));\nvar _widgetHelpers = require(\"./util/widgetHelpers\");\nvar _interaction = require(\"./util/interaction\");\nvar _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _class3, _temp;\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _initializerDefineProperty(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0\n });\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n return desc;\n}\nfunction _initializerWarningHelper(descriptor, context) {\n throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and set to use loose mode. ' + 'To use proposal-class-properties in spec mode with decorators, wait for ' + 'the next major version of decorators in stage 2.');\n}\nvar last = function last(a) {\n return a[a.length - 1];\n};\nvar VIEW_UNIT = {\n month: 'day',\n year: 'month',\n decade: 'year',\n century: 'decade'\n};\nvar VIEW_OPTIONS = ['month', 'year', 'decade', 'century'];\nvar VIEW = {\n month: _Month.default,\n year: _Year.default,\n decade: _Decade.default,\n century: _Century.default\n};\nvar ARROWS_TO_DIRECTION = {\n ArrowDown: 'DOWN',\n ArrowUp: 'UP',\n ArrowRight: 'RIGHT',\n ArrowLeft: 'LEFT'\n};\nvar OPPOSITE_DIRECTION = {\n LEFT: 'RIGHT',\n RIGHT: 'LEFT'\n};\nvar MULTIPLIER = {\n year: 1,\n decade: 10,\n century: 100\n};\nfunction inRangeValue(_value, min, max) {\n var value = dateOrNull(_value);\n if (value === null) return value;\n return _dates.default.max(_dates.default.min(value, max), min);\n}\nvar propTypes = {\n /** @ignore */\n activeId: _propTypes.default.string,\n /**\n * @example ['disabled', ['new Date()']]\n */\n disabled: CustomPropTypes.disabled,\n /**\n * @example ['readOnly', ['new Date()']]\n */\n readOnly: CustomPropTypes.disabled,\n /**\n * @example ['onChangePicker', [ ['new Date()'] ]]\n */\n onChange: _propTypes.default.func,\n /**\n * @example ['valuePicker', [ ['new Date()'] ]]\n */\n value: _propTypes.default.instanceOf(Date),\n /**\n * The minimum date that the Calendar can navigate from.\n *\n * @example ['prop', ['min', 'new Date()']]\n */\n min: _propTypes.default.instanceOf(Date).isRequired,\n /**\n * The maximum date that the Calendar can navigate to.\n *\n * @example ['prop', ['max', 'new Date()']]\n */\n max: _propTypes.default.instanceOf(Date).isRequired,\n /**\n * Default current date at which the calendar opens. If none is provided, opens at today's date or the `value` date (if any).\n */\n currentDate: _propTypes.default.instanceOf(Date),\n /**\n * Change event Handler that is called when the currentDate is changed. The handler is called with the currentDate object.\n */\n onCurrentDateChange: _propTypes.default.func,\n /** Specify the navigate into the past header icon */\n navigatePrevIcon: _propTypes.default.node,\n /** Specify the navigate into the future header icon */\n navigateNextIcon: _propTypes.default.node,\n /**\n * Controls the currently displayed calendar view. Use `defaultView` to set a unique starting view.\n *\n * @type {(\"month\"|\"year\"|\"decade\"|\"century\")}\n * @controllable onViewChange\n */\n view: function view(props) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return _propTypes.default.oneOf(props.views || VIEW_OPTIONS).apply(void 0, [props].concat(args));\n },\n /**\n * Defines a list of views the Calendar can traverse through, starting with the\n * first in the list to the last.\n *\n * @type array<\"month\"|\"year\"|\"decade\"|\"century\">\n */\n views: _propTypes.default.arrayOf(_propTypes.default.oneOf(VIEW_OPTIONS)).isRequired,\n /**\n * A callback fired when the `view` changes.\n *\n * @controllable view\n */\n onViewChange: _propTypes.default.func,\n /**\n * Callback fired when the Calendar navigates between views, or forward and backwards in time.\n *\n * @type function(date: ?Date, direction: string, view: string)\n */\n onNavigate: _propTypes.default.func,\n culture: _propTypes.default.string,\n autoFocus: _propTypes.default.bool,\n /**\n * Show or hide the Calendar footer.\n *\n * @example ['prop', ['footer', true]]\n */\n footer: _propTypes.default.bool,\n /**\n * Provide a custom component to render the days of the month. The Component is provided the following props\n *\n * - `date`: a `Date` object for the day of the month to render\n * - `label`: a formatted `string` of the date to render. To adjust the format of the `label` string use the `dateFormat` prop, listed below.\n */\n dayComponent: CustomPropTypes.elementType,\n /**\n * A formatter for the header button of the month view.\n *\n * @example ['dateFormat', ['headerFormat', \"{ date: 'medium' }\"]]\n */\n headerFormat: CustomPropTypes.dateFormat,\n /**\n * A formatter for the Calendar footer, formats today's Date as a string.\n *\n * @example ['dateFormat', ['footerFormat', \"{ date: 'medium' }\", \"date => 'Today is: ' + formatter(date)\"]]\n */\n footerFormat: CustomPropTypes.dateFormat,\n /**\n * A formatter calendar days of the week, the default formats each day as a Narrow name: \"Mo\", \"Tu\", etc.\n *\n * @example ['prop', { dayFormat: \"day => \\n['🎉', 'M', 'T','W','Th', 'F', '🎉'][day.getDay()]\" }]\n */\n dayFormat: CustomPropTypes.dateFormat,\n /**\n * A formatter for day of the month\n *\n * @example ['prop', { dateFormat: \"dt => String(dt.getDate())\" }]\n */\n dateFormat: CustomPropTypes.dateFormat,\n /**\n * A formatter for month name.\n *\n * @example ['dateFormat', ['monthFormat', \"{ raw: 'MMMM' }\", null, { defaultView: '\"year\"' }]]\n */\n monthFormat: CustomPropTypes.dateFormat,\n /**\n * A formatter for month name.\n *\n * @example ['dateFormat', ['yearFormat', \"{ raw: 'yy' }\", null, { defaultView: '\"decade\"' }]]\n */\n yearFormat: CustomPropTypes.dateFormat,\n /**\n * A formatter for decade, the default formats the first and last year of the decade like: 2000 - 2009.\n */\n decadeFormat: CustomPropTypes.dateFormat,\n /**\n * A formatter for century, the default formats the first and last year of the century like: 1900 - 1999.\n */\n centuryFormat: CustomPropTypes.dateFormat,\n isRtl: _propTypes.default.bool,\n messages: _propTypes.default.shape({\n moveBack: _propTypes.default.string,\n moveForward: _propTypes.default.string\n }),\n onKeyDown: _propTypes.default.func,\n /** @ignore */\n tabIndex: _propTypes.default.any\n /**\n * ---\n * localized: true\n * shortcuts:\n * - { key: ctrl + down arrow, label: navigate to next view }\n * - { key: ctrl + up arrow, label: navigate to previous view }\n * - { key: ctrl + left arrow, label: \"navigate to previous: month, year, decade, or century\" }\n * - { key: ctrl + right arrow, label: \"navigate to next: month, year, decade, or century\" }\n * - { key: left arrow, label: move focus to previous date}\n * - { key: right arrow, label: move focus to next date }\n * - { key: up arrow, label: move focus up within view }\n * - { key: down key, label: move focus down within view }\n * ---\n *\n * @public\n */\n};\nvar Calendar = (0, _reactLifecyclesCompat.polyfill)(_class = (_class2 = (_temp = _class3 = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Calendar, _React$Component);\n Calendar.move = function move(date, min, max, unit, direction) {\n var isMonth = unit === 'month';\n var isUpOrDown = direction === 'UP' || direction === 'DOWN';\n var rangeUnit = VIEW_UNIT[unit];\n var addUnit = isMonth && isUpOrDown ? 'week' : VIEW_UNIT[unit];\n var amount = isMonth || !isUpOrDown ? 1 : 4;\n var newDate;\n if (direction === 'UP' || direction === 'LEFT') amount *= -1;\n newDate = _dates.default.add(date, amount, addUnit);\n return _dates.default.inRange(newDate, min, max, rangeUnit) ? newDate : date;\n };\n function Calendar() {\n var _this;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.handleFocusWillChange = function () {\n if (_this.props.tabIndex == -1) return false;\n };\n _initializerDefineProperty(_this, \"handleViewChange\", _descriptor, _assertThisInitialized(_assertThisInitialized(_this)));\n _initializerDefineProperty(_this, \"handleMoveBack\", _descriptor2, _assertThisInitialized(_assertThisInitialized(_this)));\n _initializerDefineProperty(_this, \"handleMoveForward\", _descriptor3, _assertThisInitialized(_assertThisInitialized(_this)));\n _initializerDefineProperty(_this, \"handleChange\", _descriptor4, _assertThisInitialized(_assertThisInitialized(_this)));\n _initializerDefineProperty(_this, \"handleFooterClick\", _descriptor5, _assertThisInitialized(_assertThisInitialized(_this)));\n _initializerDefineProperty(_this, \"handleKeyDown\", _descriptor6, _assertThisInitialized(_assertThisInitialized(_this)));\n _this.viewId = (0, _widgetHelpers.instanceId)(_assertThisInitialized(_assertThisInitialized(_this)), '_calendar');\n _this.labelId = (0, _widgetHelpers.instanceId)(_assertThisInitialized(_assertThisInitialized(_this)), '_calendar_label');\n _this.activeId = _this.props.activeId || (0, _widgetHelpers.instanceId)(_assertThisInitialized(_assertThisInitialized(_this)), '_calendar_active_cell');\n (0, _reactComponentManagers.autoFocus)(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.focusManager = (0, _focusManager.default)(_assertThisInitialized(_assertThisInitialized(_this)), {\n willHandle: _this.handleFocusWillChange\n });\n var _this$props = _this.props,\n view = _this$props.view,\n views = _this$props.views;\n _this.state = {\n selectedIndex: 0,\n view: view || views[0]\n };\n return _this;\n }\n Calendar.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var messages = _ref.messages,\n view = _ref.view,\n views = _ref.views,\n value = _ref.value,\n currentDate = _ref.currentDate;\n view = view || views[0];\n var slideDirection = prevState.slideDirection,\n lastView = prevState.view,\n lastDate = prevState.currentDate;\n if (lastView !== view) {\n slideDirection = views.indexOf(lastView) > views.indexOf(view) ? 'top' : 'bottom';\n } else if (lastDate !== currentDate) {\n slideDirection = _dates.default.gt(currentDate, lastDate) ? 'left' : 'right';\n }\n return {\n view: view,\n slideDirection: slideDirection,\n messages: (0, _messages.getMessages)(messages),\n currentDate: currentDate || value || new Date()\n };\n };\n var _proto = Calendar.prototype;\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props2 = this.props,\n value = _this$props2.value,\n min = _this$props2.min,\n max = _this$props2.max;\n var view = this.state.view;\n value = inRangeValue(value, min, max);\n if (!_dates.default.eq(value, dateOrNull(prevProps.value), VIEW_UNIT[view])) this.maybeSetCurrentDate(value);\n };\n _proto.render = function render() {\n var _this$props3 = this.props,\n className = _this$props3.className,\n value = _this$props3.value,\n footerFormat = _this$props3.footerFormat,\n disabled = _this$props3.disabled,\n readOnly = _this$props3.readOnly,\n footer = _this$props3.footer,\n views = _this$props3.views,\n min = _this$props3.min,\n max = _this$props3.max,\n culture = _this$props3.culture,\n tabIndex = _this$props3.tabIndex,\n navigatePrevIcon = _this$props3.navigatePrevIcon,\n navigateNextIcon = _this$props3.navigateNextIcon;\n var _this$state = this.state,\n currentDate = _this$state.currentDate,\n view = _this$state.view,\n slideDirection = _this$state.slideDirection,\n focused = _this$state.focused,\n messages = _this$state.messages;\n var View = VIEW[view],\n todaysDate = new Date(),\n todayNotInRange = !_dates.default.inRange(todaysDate, min, max, view);\n var key = view + '_' + _dates.default[view](currentDate);\n var elementProps = Props.pickElementProps(this),\n viewProps = Props.pick(this.props, View);\n var isDisabled = disabled || readOnly;\n return _react.default.createElement(_Widget.default, _extends({}, elementProps, {\n role: \"group\",\n focused: focused,\n disabled: disabled,\n readOnly: readOnly,\n tabIndex: tabIndex || 0,\n onKeyDown: this.handleKeyDown,\n onBlur: this.focusManager.handleBlur,\n onFocus: this.focusManager.handleFocus,\n className: (0, _classnames.default)(className, 'rw-calendar rw-widget-container'),\n \"aria-activedescendant\": this.activeId\n }), _react.default.createElement(_Header.default, {\n isRtl: this.isRtl(),\n label: this.getHeaderLabel(),\n labelId: this.labelId,\n messages: messages,\n upDisabled: isDisabled || view === last(views),\n prevDisabled: isDisabled || !_dates.default.inRange(this.nextDate('LEFT'), min, max, view),\n nextDisabled: isDisabled || !_dates.default.inRange(this.nextDate('RIGHT'), min, max, view),\n onViewChange: this.handleViewChange,\n onMoveLeft: this.handleMoveBack,\n onMoveRight: this.handleMoveForward,\n navigatePrevIcon: navigatePrevIcon,\n navigateNextIcon: navigateNextIcon\n }), _react.default.createElement(Calendar.Transition, {\n direction: slideDirection\n }, _react.default.createElement(View, _extends({}, viewProps, {\n key: key,\n id: this.viewId,\n activeId: this.activeId,\n value: value,\n today: todaysDate,\n disabled: disabled,\n focused: currentDate,\n onChange: this.handleChange,\n onKeyDown: this.handleKeyDown,\n \"aria-labelledby\": this.labelId\n }))), footer && _react.default.createElement(_Footer.default, {\n value: todaysDate,\n format: footerFormat,\n culture: culture,\n disabled: disabled || todayNotInRange,\n readOnly: readOnly,\n onClick: this.handleFooterClick\n }));\n };\n _proto.navigate = function navigate(direction, date) {\n var _this$props4 = this.props,\n views = _this$props4.views,\n min = _this$props4.min,\n max = _this$props4.max,\n onNavigate = _this$props4.onNavigate,\n onViewChange = _this$props4.onViewChange;\n var _this$state2 = this.state,\n view = _this$state2.view,\n currentDate = _this$state2.currentDate;\n var slideDir = direction === 'LEFT' || direction === 'UP' ? 'right' : 'left';\n if (direction === 'UP') view = views[views.indexOf(view) + 1] || view;\n if (direction === 'DOWN') view = views[views.indexOf(view) - 1] || view;\n if (!date) date = ['LEFT', 'RIGHT'].indexOf(direction) !== -1 ? this.nextDate(direction) : currentDate;\n if (_dates.default.inRange(date, min, max, view)) {\n (0, _widgetHelpers.notify)(onNavigate, [date, slideDir, view]);\n this.focus(true);\n this.maybeSetCurrentDate(date);\n (0, _widgetHelpers.notify)(onViewChange, [view]);\n }\n };\n _proto.focus = function focus() {\n if (+this.props.tabIndex > -1) (0, _reactDom.findDOMNode)(this).focus();\n };\n _proto.maybeSetCurrentDate = function maybeSetCurrentDate(date) {\n var _this$props5 = this.props,\n min = _this$props5.min,\n max = _this$props5.max;\n var _this$state3 = this.state,\n view = _this$state3.view,\n currentDate = _this$state3.currentDate;\n var inRangeDate = inRangeValue(date ? new Date(date) : currentDate, min, max);\n if (date === currentDate || _dates.default.eq(inRangeDate, dateOrNull(currentDate), VIEW_UNIT[view])) return;\n (0, _widgetHelpers.notify)(this.props.onCurrentDateChange, inRangeDate);\n };\n _proto.nextDate = function nextDate(direction) {\n var method = direction === 'LEFT' ? 'subtract' : 'add';\n var _this$state4 = this.state,\n currentDate = _this$state4.currentDate,\n view = _this$state4.view;\n var unit = view === 'month' ? view : 'year';\n var multi = MULTIPLIER[view] || 1;\n return _dates.default[method](currentDate, 1 * multi, unit);\n };\n _proto.getHeaderLabel = function getHeaderLabel() {\n var _this$props6 = this.props,\n culture = _this$props6.culture,\n decadeFormat = _this$props6.decadeFormat,\n yearFormat = _this$props6.yearFormat,\n headerFormat = _this$props6.headerFormat,\n centuryFormat = _this$props6.centuryFormat;\n var _this$state5 = this.state,\n currentDate = _this$state5.currentDate,\n view = _this$state5.view;\n switch (view) {\n case 'month':\n headerFormat = _localizers.date.getFormat('header', headerFormat);\n return _localizers.date.format(currentDate, headerFormat, culture);\n case 'year':\n yearFormat = _localizers.date.getFormat('year', yearFormat);\n return _localizers.date.format(currentDate, yearFormat, culture);\n case 'decade':\n decadeFormat = _localizers.date.getFormat('decade', decadeFormat);\n return _localizers.date.format(_dates.default.startOf(currentDate, 'decade'), decadeFormat, culture);\n case 'century':\n centuryFormat = _localizers.date.getFormat('century', centuryFormat);\n return _localizers.date.format(_dates.default.startOf(currentDate, 'century'), centuryFormat, culture);\n }\n };\n _proto.isRtl = function isRtl() {\n return !!(this.props.isRtl || this.context && this.context.isRtl);\n };\n _proto.isValidView = function isValidView(next, views) {\n if (views === void 0) {\n views = this.props.views;\n }\n return views.indexOf(next) !== -1;\n };\n return Calendar;\n}(_react.default.Component), _class3.displayName = 'Calendar', _class3.propTypes = propTypes, _class3.defaultProps = {\n value: null,\n min: new Date(1900, 0, 1),\n max: new Date(2099, 11, 31),\n views: VIEW_OPTIONS,\n tabIndex: '0',\n footer: true\n}, _class3.contextTypes = {\n isRtl: _propTypes.default.bool\n}, _class3.Transition = _SlideTransitionGroup.default, _temp), _descriptor = _applyDecoratedDescriptor(_class2.prototype, \"handleViewChange\", [_interaction.widgetEditable], {\n enumerable: true,\n initializer: function initializer() {\n var _this2 = this;\n return function () {\n _this2.navigate('UP');\n };\n }\n}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, \"handleMoveBack\", [_interaction.widgetEditable], {\n enumerable: true,\n initializer: function initializer() {\n var _this3 = this;\n return function () {\n _this3.navigate('LEFT');\n };\n }\n}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, \"handleMoveForward\", [_interaction.widgetEditable], {\n enumerable: true,\n initializer: function initializer() {\n var _this4 = this;\n return function () {\n _this4.navigate('RIGHT');\n };\n }\n}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, \"handleChange\", [_interaction.widgetEditable], {\n enumerable: true,\n initializer: function initializer() {\n var _this5 = this;\n return function (date) {\n var _this5$props = _this5.props,\n views = _this5$props.views,\n onChange = _this5$props.onChange;\n var view = _this5.state.view;\n if (views[0] === view) {\n _this5.maybeSetCurrentDate(date);\n (0, _widgetHelpers.notify)(onChange, date);\n _this5.focus();\n return;\n }\n _this5.navigate('DOWN', date);\n };\n }\n}), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, \"handleFooterClick\", [_interaction.widgetEditable], {\n enumerable: true,\n initializer: function initializer() {\n var _this6 = this;\n return function (date) {\n var _this6$props = _this6.props,\n views = _this6$props.views,\n min = _this6$props.min,\n max = _this6$props.max,\n onViewChange = _this6$props.onViewChange;\n var firstView = views[0];\n (0, _widgetHelpers.notify)(_this6.props.onChange, date);\n if (_dates.default.inRange(date, min, max, firstView)) {\n _this6.focus();\n _this6.maybeSetCurrentDate(date);\n (0, _widgetHelpers.notify)(onViewChange, [firstView]);\n }\n };\n }\n}), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, \"handleKeyDown\", [_interaction.widgetEditable], {\n enumerable: true,\n initializer: function initializer() {\n var _this7 = this;\n return function (e) {\n var _this7$state = _this7.state,\n currentDate = _this7$state.currentDate,\n view = _this7$state.view;\n var ctrl = e.ctrlKey || e.metaKey;\n var key = e.key;\n var direction = ARROWS_TO_DIRECTION[key];\n var unit = VIEW_UNIT[view];\n if (key === 'Enter') {\n e.preventDefault();\n return _this7.handleChange(currentDate);\n }\n if (direction) {\n if (ctrl) {\n e.preventDefault();\n _this7.navigate(direction);\n } else {\n if (_this7.isRtl() && OPPOSITE_DIRECTION[direction]) direction = OPPOSITE_DIRECTION[direction];\n var nextDate = Calendar.move(currentDate, _this7.props.min, _this7.props.max, view, direction);\n if (!_dates.default.eq(currentDate, nextDate, unit)) {\n e.preventDefault();\n if (_dates.default.gt(nextDate, currentDate, view)) _this7.navigate('RIGHT', nextDate);else if (_dates.default.lt(nextDate, currentDate, view)) _this7.navigate('LEFT', nextDate);else _this7.maybeSetCurrentDate(nextDate);\n }\n }\n }\n (0, _widgetHelpers.notify)(_this7.props.onKeyDown, [e]);\n };\n }\n}), _class2)) || _class;\nfunction dateOrNull(dt) {\n if (dt && !isNaN(dt.getTime())) return dt;\n return null;\n}\nvar _default = (0, _uncontrollable.uncontrollable)(Calendar, {\n value: 'onChange',\n currentDate: 'onCurrentDateChange',\n view: 'onViewChange'\n}, ['focus']);\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = makeAutoFocusable;\nexports.PropTypes = void 0;\nvar _propTypes = require(\"prop-types\");\nvar _reactDom = require(\"react-dom\");\nvar _spyOnComponent = _interopRequireDefault(require(\"spy-on-component\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar PropTypes = {\n autoFocus: _propTypes.bool\n};\nexports.PropTypes = PropTypes;\nfunction makeAutoFocusable(instance) {\n (0, _spyOnComponent.default)(instance, {\n componentDidMount: function componentDidMount() {\n var autoFocus = this.props.autoFocus;\n if (autoFocus) this.focus ? this.focus() : (0, _reactDom.findDOMNode)(this).focus();\n }\n });\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.callFocusEventHandler = callFocusEventHandler;\nexports.default = createFocusManager;\nvar _reactDom = require(\"react-dom\");\nvar _timeoutManager = _interopRequireDefault(require(\"./timeoutManager\"));\nvar _mountManager = _interopRequireDefault(require(\"./mountManager\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction callFocusEventHandler(inst, focused, e) {\n var handler = inst.props[focused ? 'onFocus' : 'onBlur'];\n handler && handler(e);\n}\nfunction createFocusManager(instance, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n willHandle = _ref.willHandle,\n didHandle = _ref.didHandle,\n onChange = _ref.onChange,\n _ref$isDisabled = _ref.isDisabled,\n isDisabled = _ref$isDisabled === void 0 ? function () {\n return !!instance.props.disabled;\n } : _ref$isDisabled;\n var lastFocused;\n var timeouts = (0, _timeoutManager.default)(instance);\n var isMounted = (0, _mountManager.default)(instance);\n function _handleFocus(focused, event) {\n if (event && event.persist) event.persist();\n if (willHandle && willHandle(focused, event) === false) return;\n timeouts.set('focus', function () {\n (0, _reactDom.unstable_batchedUpdates)(function () {\n if (focused !== lastFocused) {\n if (didHandle) didHandle.call(instance, focused, event); // only fire a change when unmounted if its a blur\n\n if (isMounted() || !focused) {\n lastFocused = focused;\n onChange && onChange(focused, event);\n }\n }\n });\n });\n }\n return {\n handleBlur: function handleBlur(event) {\n if (!isDisabled()) _handleFocus(false, event);\n },\n handleFocus: function handleFocus(event) {\n if (!isDisabled()) _handleFocus(true, event);\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.mixin = mixin;\nexports.default = mixIntoClass;\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction mixin(componentClass, _ref) {\n var propTypes = _ref.propTypes,\n contextTypes = _ref.contextTypes,\n childContextTypes = _ref.childContextTypes,\n getChildContext = _ref.getChildContext,\n protoSpec = _objectWithoutProperties(_ref, [\"propTypes\", \"contextTypes\", \"childContextTypes\", \"getChildContext\"]);\n if (propTypes) componentClass.propTypes = _extends({}, componentClass.propTypes, propTypes);\n if (contextTypes) componentClass.contextTypes = _extends({}, componentClass.contextTypes, contextTypes);\n if (childContextTypes) componentClass.childContextTypes = _extends({}, componentClass.childContextTypes, childContextTypes);\n if (getChildContext) {\n var baseGCContext = componentClass.prototype.getChildContext;\n componentClass.prototype.getChildContext = function $getChildContext() {\n return _extends({}, baseGCContext && baseGCContext.call(this), getChildContext.call(this));\n };\n }\n _extends(componentClass.prototype, protoSpec);\n return componentClass;\n}\nfunction mixIntoClass(spec) {\n return function (componentClass) {\n return mixin(componentClass, spec);\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _Button = _interopRequireDefault(require(\"./Button\"));\nvar _Icon = require(\"./Icon\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar Header = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Header, _React$Component);\n function Header() {\n return _React$Component.apply(this, arguments) || this;\n }\n var _proto = Header.prototype;\n _proto.render = function render() {\n var _this$props = this.props,\n messages = _this$props.messages,\n label = _this$props.label,\n labelId = _this$props.labelId,\n onMoveRight = _this$props.onMoveRight,\n onMoveLeft = _this$props.onMoveLeft,\n onViewChange = _this$props.onViewChange,\n prevDisabled = _this$props.prevDisabled,\n upDisabled = _this$props.upDisabled,\n nextDisabled = _this$props.nextDisabled,\n _this$props$navigateP = _this$props.navigatePrevIcon,\n navigatePrevIcon = _this$props$navigateP === void 0 ? _Icon.chevronLeft : _this$props$navigateP,\n _this$props$navigateN = _this$props.navigateNextIcon,\n navigateNextIcon = _this$props$navigateN === void 0 ? _Icon.chevronRight : _this$props$navigateN,\n isRtl = _this$props.isRtl;\n return _react.default.createElement(\"div\", {\n className: \"rw-calendar-header\"\n }, _react.default.createElement(_Button.default, {\n className: \"rw-calendar-btn-left\",\n onClick: onMoveLeft,\n disabled: prevDisabled,\n label: messages.moveBack(),\n icon: isRtl ? navigateNextIcon : navigatePrevIcon\n }), _react.default.createElement(_Button.default, {\n id: labelId,\n onClick: onViewChange,\n className: \"rw-calendar-btn-view\",\n disabled: upDisabled,\n \"aria-live\": \"polite\",\n \"aria-atomic\": \"true\"\n }, label), _react.default.createElement(_Button.default, {\n className: \"rw-calendar-btn-right\",\n onClick: onMoveRight,\n disabled: nextDisabled,\n label: messages.moveForward(),\n icon: isRtl ? navigatePrevIcon : navigateNextIcon\n }));\n };\n return Header;\n}(_react.default.Component);\nHeader.propTypes = {\n label: _propTypes.default.string.isRequired,\n labelId: _propTypes.default.string,\n upDisabled: _propTypes.default.bool.isRequired,\n prevDisabled: _propTypes.default.bool.isRequired,\n nextDisabled: _propTypes.default.bool.isRequired,\n onViewChange: _propTypes.default.func.isRequired,\n onMoveLeft: _propTypes.default.func.isRequired,\n onMoveRight: _propTypes.default.func.isRequired,\n navigatePrevIcon: _propTypes.default.node,\n navigateNextIcon: _propTypes.default.node,\n messages: _propTypes.default.shape({\n moveBack: _propTypes.default.func.isRequired,\n moveForward: _propTypes.default.func.isRequired\n }),\n isRtl: _propTypes.default.bool\n};\nvar _default = Header;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = Footer;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _Button = _interopRequireDefault(require(\"./Button\"));\nvar _localizers = require(\"./util/localizers\");\nvar CustomPropTypes = _interopRequireWildcard(require(\"./util/PropTypes\"));\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar propTypes = {\n disabled: _propTypes.default.bool,\n readOnly: _propTypes.default.bool,\n value: _propTypes.default.instanceOf(Date),\n onClick: _propTypes.default.func.isRequired,\n culture: _propTypes.default.string,\n format: CustomPropTypes.dateFormat\n};\nfunction Footer(_ref) {\n var disabled = _ref.disabled,\n readOnly = _ref.readOnly,\n value = _ref.value,\n onClick = _ref.onClick,\n culture = _ref.culture,\n format = _ref.format;\n return _react.default.createElement(\"div\", {\n className: \"rw-calendar-footer\"\n }, _react.default.createElement(_Button.default, {\n disabled: !!(disabled || readOnly),\n onClick: onClick.bind(null, value)\n }, _localizers.date.format(value, _localizers.date.getFormat('footer', format), culture)));\n}\nFooter.propTypes = propTypes;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _CalendarView = _interopRequireDefault(require(\"./CalendarView\"));\nvar _dates = _interopRequireDefault(require(\"./util/dates\"));\nvar _localizers = require(\"./util/localizers\");\nvar CustomPropTypes = _interopRequireWildcard(require(\"./util/PropTypes\"));\nvar _ = require(\"./util/_\");\nvar Props = _interopRequireWildcard(require(\"./util/Props\"));\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar isEqual = function isEqual(dateA, dateB) {\n return _dates.default.eq(dateA, dateB, 'day');\n};\nvar MonthView = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(MonthView, _React$Component);\n function MonthView() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.renderRow = function (row, rowIdx) {\n var _this$props = _this.props,\n focused = _this$props.focused,\n today = _this$props.today,\n activeId = _this$props.activeId,\n disabled = _this$props.disabled,\n onChange = _this$props.onChange,\n value = _this$props.value,\n culture = _this$props.culture,\n min = _this$props.min,\n max = _this$props.max,\n footerFormat = _this$props.footerFormat,\n dateFormat = _this$props.dateFormat,\n Day = _this$props.dayComponent;\n footerFormat = _localizers.date.getFormat('footer', footerFormat);\n dateFormat = _localizers.date.getFormat('dayOfMonth', dateFormat);\n return _react.default.createElement(_CalendarView.default.Row, {\n key: rowIdx\n }, row.map(function (date, colIdx) {\n var formattedDate = _localizers.date.format(date, dateFormat, culture);\n var label = _localizers.date.format(date, footerFormat, culture);\n return _react.default.createElement(_CalendarView.default.Cell, {\n key: colIdx,\n activeId: activeId,\n label: label,\n date: date,\n now: today,\n min: min,\n max: max,\n unit: \"day\",\n viewUnit: \"month\",\n onChange: onChange,\n focused: focused,\n selected: value,\n disabled: disabled\n }, Day ? _react.default.createElement(Day, {\n date: date,\n label: formattedDate\n }) : formattedDate);\n }));\n };\n return _this;\n }\n var _proto = MonthView.prototype;\n _proto.renderHeaders = function renderHeaders(week, format, culture) {\n var firstOfWeek = _localizers.date.firstOfWeek(culture);\n return week.map(function (date) {\n return _react.default.createElement(\"th\", {\n className: \"rw-head-cell\",\n key: 'header_' + _dates.default.weekday(date, undefined, firstOfWeek)\n }, _localizers.date.format(date, format, culture));\n });\n };\n _proto.render = function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n focused = _this$props2.focused,\n culture = _this$props2.culture,\n activeId = _this$props2.activeId,\n dayFormat = _this$props2.dayFormat;\n var month = _dates.default.visibleDays(focused, culture);\n var rows = (0, _.chunk)(month, 7);\n dayFormat = _localizers.date.getFormat('weekday', dayFormat);\n return _react.default.createElement(_CalendarView.default, _extends({}, Props.omitOwn(this), {\n activeId: activeId,\n className: (0, _classnames.default)(className, 'rw-calendar-month')\n }), _react.default.createElement(\"thead\", {\n className: \"rw-calendar-head\"\n }, _react.default.createElement(\"tr\", {\n className: \"rw-calendar-row\"\n }, this.renderHeaders(rows[0], dayFormat, culture))), _react.default.createElement(_CalendarView.default.Body, null, rows.map(this.renderRow)));\n };\n return MonthView;\n}(_react.default.Component);\nMonthView.isEqual = isEqual;\nMonthView.propTypes = {\n activeId: _propTypes.default.string,\n culture: _propTypes.default.string,\n today: _propTypes.default.instanceOf(Date),\n value: _propTypes.default.instanceOf(Date),\n focused: _propTypes.default.instanceOf(Date),\n min: _propTypes.default.instanceOf(Date),\n max: _propTypes.default.instanceOf(Date),\n onChange: _propTypes.default.func.isRequired,\n dayComponent: CustomPropTypes.elementType,\n dayFormat: CustomPropTypes.dateFormat,\n dateFormat: CustomPropTypes.dateFormat,\n footerFormat: CustomPropTypes.dateFormat,\n disabled: _propTypes.default.bool\n};\nvar _default = MonthView;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","var MILI = 'milliseconds',\n SECONDS = 'seconds',\n MINUTES = 'minutes',\n HOURS = 'hours',\n DAY = 'day',\n WEEK = 'week',\n MONTH = 'month',\n YEAR = 'year',\n DECADE = 'decade',\n CENTURY = 'century';\nvar dates = module.exports = {\n add: function (date, num, unit) {\n date = new Date(date);\n switch (unit) {\n case MILI:\n case SECONDS:\n case MINUTES:\n case HOURS:\n case YEAR:\n return dates[unit](date, dates[unit](date) + num);\n case DAY:\n return dates.date(date, dates.date(date) + num);\n case WEEK:\n return dates.date(date, dates.date(date) + 7 * num);\n case MONTH:\n return monthMath(date, num);\n case DECADE:\n return dates.year(date, dates.year(date) + num * 10);\n case CENTURY:\n return dates.year(date, dates.year(date) + num * 100);\n }\n throw new TypeError('Invalid units: \"' + unit + '\"');\n },\n subtract: function (date, num, unit) {\n return dates.add(date, -num, unit);\n },\n startOf: function (date, unit, firstOfWeek) {\n date = new Date(date);\n switch (unit) {\n case 'century':\n case 'decade':\n case 'year':\n date = dates.month(date, 0);\n case 'month':\n date = dates.date(date, 1);\n case 'week':\n case 'day':\n date = dates.hours(date, 0);\n case 'hours':\n date = dates.minutes(date, 0);\n case 'minutes':\n date = dates.seconds(date, 0);\n case 'seconds':\n date = dates.milliseconds(date, 0);\n }\n if (unit === DECADE) date = dates.subtract(date, dates.year(date) % 10, 'year');\n if (unit === CENTURY) date = dates.subtract(date, dates.year(date) % 100, 'year');\n if (unit === WEEK) date = dates.weekday(date, 0, firstOfWeek);\n return date;\n },\n endOf: function (date, unit, firstOfWeek) {\n date = new Date(date);\n date = dates.startOf(date, unit, firstOfWeek);\n date = dates.add(date, 1, unit);\n date = dates.subtract(date, 1, MILI);\n return date;\n },\n eq: createComparer(function (a, b) {\n return a === b;\n }),\n neq: createComparer(function (a, b) {\n return a !== b;\n }),\n gt: createComparer(function (a, b) {\n return a > b;\n }),\n gte: createComparer(function (a, b) {\n return a >= b;\n }),\n lt: createComparer(function (a, b) {\n return a < b;\n }),\n lte: createComparer(function (a, b) {\n return a <= b;\n }),\n min: function () {\n return new Date(Math.min.apply(Math, arguments));\n },\n max: function () {\n return new Date(Math.max.apply(Math, arguments));\n },\n inRange: function (day, min, max, unit) {\n unit = unit || 'day';\n return (!min || dates.gte(day, min, unit)) && (!max || dates.lte(day, max, unit));\n },\n milliseconds: createAccessor('Milliseconds'),\n seconds: createAccessor('Seconds'),\n minutes: createAccessor('Minutes'),\n hours: createAccessor('Hours'),\n day: createAccessor('Day'),\n date: createAccessor('Date'),\n month: createAccessor('Month'),\n year: createAccessor('FullYear'),\n decade: function (date, val) {\n return val === undefined ? dates.year(dates.startOf(date, DECADE)) : dates.add(date, val + 10, YEAR);\n },\n century: function (date, val) {\n return val === undefined ? dates.year(dates.startOf(date, CENTURY)) : dates.add(date, val + 100, YEAR);\n },\n weekday: function (date, val, firstDay) {\n var weekday = (dates.day(date) + 7 - (firstDay || 0)) % 7;\n return val === undefined ? weekday : dates.add(date, val - weekday, DAY);\n },\n diff: function (date1, date2, unit, asFloat) {\n var dividend, divisor, result;\n switch (unit) {\n case MILI:\n case SECONDS:\n case MINUTES:\n case HOURS:\n case DAY:\n case WEEK:\n dividend = date2.getTime() - date1.getTime();\n break;\n case MONTH:\n case YEAR:\n case DECADE:\n case CENTURY:\n dividend = (dates.year(date2) - dates.year(date1)) * 12 + dates.month(date2) - dates.month(date1);\n break;\n default:\n throw new TypeError('Invalid units: \"' + unit + '\"');\n }\n switch (unit) {\n case MILI:\n divisor = 1;\n break;\n case SECONDS:\n divisor = 1000;\n break;\n case MINUTES:\n divisor = 1000 * 60;\n break;\n case HOURS:\n divisor = 1000 * 60 * 60;\n break;\n case DAY:\n divisor = 1000 * 60 * 60 * 24;\n break;\n case WEEK:\n divisor = 1000 * 60 * 60 * 24 * 7;\n break;\n case MONTH:\n divisor = 1;\n break;\n case YEAR:\n divisor = 12;\n break;\n case DECADE:\n divisor = 120;\n break;\n case CENTURY:\n divisor = 1200;\n break;\n default:\n throw new TypeError('Invalid units: \"' + unit + '\"');\n }\n result = dividend / divisor;\n return asFloat ? result : absoluteFloor(result);\n }\n};\nfunction absoluteFloor(number) {\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}\nfunction monthMath(date, val) {\n var current = dates.month(date),\n newMonth = current + val;\n date = dates.month(date, newMonth);\n while (newMonth < 0) newMonth = 12 + newMonth;\n\n //month rollover\n if (dates.month(date) !== newMonth % 12) date = dates.date(date, 0); //move to last of month\n\n return date;\n}\nfunction createAccessor(method) {\n return function (date, val) {\n if (val === undefined) return date['get' + method]();\n date = new Date(date);\n date['set' + method](val);\n return date;\n };\n}\nfunction createComparer(operator) {\n return function (a, b, unit) {\n return operator(+dates.startOf(a, unit), +dates.startOf(b, unit));\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _CalendarView = _interopRequireDefault(require(\"./CalendarView\"));\nvar _dates = _interopRequireDefault(require(\"./util/dates\"));\nvar _localizers = require(\"./util/localizers\");\nvar _ = require(\"./util/_\");\nvar Props = _interopRequireWildcard(require(\"./util/Props\"));\nvar CustomPropTypes = _interopRequireWildcard(require(\"./util/PropTypes\"));\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar YearView = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(YearView, _React$Component);\n function YearView() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.renderRow = function (row, rowIdx) {\n var _this$props = _this.props,\n focused = _this$props.focused,\n activeId = _this$props.activeId,\n disabled = _this$props.disabled,\n onChange = _this$props.onChange,\n value = _this$props.value,\n today = _this$props.today,\n culture = _this$props.culture,\n headerFormat = _this$props.headerFormat,\n monthFormat = _this$props.monthFormat,\n min = _this$props.min,\n max = _this$props.max;\n headerFormat = _localizers.date.getFormat('header', headerFormat);\n monthFormat = _localizers.date.getFormat('month', monthFormat);\n return _react.default.createElement(_CalendarView.default.Row, {\n key: rowIdx\n }, row.map(function (date, colIdx) {\n var label = _localizers.date.format(date, headerFormat, culture);\n return _react.default.createElement(_CalendarView.default.Cell, {\n key: colIdx,\n activeId: activeId,\n label: label,\n date: date,\n now: today,\n min: min,\n max: max,\n unit: \"month\",\n onChange: onChange,\n focused: focused,\n selected: value,\n disabled: disabled\n }, _localizers.date.format(date, monthFormat, culture));\n }));\n };\n return _this;\n }\n var _proto = YearView.prototype;\n _proto.render = function render() {\n var _this$props2 = this.props,\n focused = _this$props2.focused,\n activeId = _this$props2.activeId,\n months = _dates.default.monthsInYear(_dates.default.year(focused));\n return _react.default.createElement(_CalendarView.default, _extends({}, Props.omitOwn(this), {\n activeId: activeId\n }), _react.default.createElement(_CalendarView.default.Body, null, (0, _.chunk)(months, 4).map(this.renderRow)));\n };\n return YearView;\n}(_react.default.Component);\nYearView.propTypes = {\n activeId: _propTypes.default.string,\n culture: _propTypes.default.string,\n today: _propTypes.default.instanceOf(Date),\n value: _propTypes.default.instanceOf(Date),\n focused: _propTypes.default.instanceOf(Date),\n min: _propTypes.default.instanceOf(Date),\n max: _propTypes.default.instanceOf(Date),\n onChange: _propTypes.default.func.isRequired,\n headerFormat: CustomPropTypes.dateFormat,\n monthFormat: CustomPropTypes.dateFormat,\n disabled: _propTypes.default.bool\n};\nvar _default = YearView;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _CalendarView = _interopRequireDefault(require(\"./CalendarView\"));\nvar _dates = _interopRequireDefault(require(\"./util/dates\"));\nvar _localizers = require(\"./util/localizers\");\nvar _ = require(\"./util/_\");\nvar Props = _interopRequireWildcard(require(\"./util/Props\"));\nvar CustomPropTypes = _interopRequireWildcard(require(\"./util/PropTypes\"));\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar DecadeView = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(DecadeView, _React$Component);\n function DecadeView() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.renderRow = function (row, rowIdx) {\n var _this$props = _this.props,\n focused = _this$props.focused,\n activeId = _this$props.activeId,\n disabled = _this$props.disabled,\n onChange = _this$props.onChange,\n yearFormat = _this$props.yearFormat,\n value = _this$props.value,\n today = _this$props.today,\n culture = _this$props.culture,\n min = _this$props.min,\n max = _this$props.max;\n return _react.default.createElement(_CalendarView.default.Row, {\n key: rowIdx\n }, row.map(function (date, colIdx) {\n var label = _localizers.date.format(date, _localizers.date.getFormat('year', yearFormat), culture);\n return _react.default.createElement(_CalendarView.default.Cell, {\n key: colIdx,\n unit: \"year\",\n activeId: activeId,\n label: label,\n date: date,\n now: today,\n min: min,\n max: max,\n onChange: onChange,\n focused: focused,\n selected: value,\n disabled: disabled\n }, label);\n }));\n };\n return _this;\n }\n var _proto = DecadeView.prototype;\n _proto.render = function render() {\n var _this$props2 = this.props,\n focused = _this$props2.focused,\n activeId = _this$props2.activeId;\n return _react.default.createElement(_CalendarView.default, _extends({}, Props.omitOwn(this), {\n activeId: activeId\n }), _react.default.createElement(_CalendarView.default.Body, null, (0, _.chunk)(getDecadeYears(focused), 4).map(this.renderRow)));\n };\n return DecadeView;\n}(_react.default.Component);\nDecadeView.propTypes = {\n activeId: _propTypes.default.string,\n culture: _propTypes.default.string,\n today: _propTypes.default.instanceOf(Date),\n value: _propTypes.default.instanceOf(Date),\n focused: _propTypes.default.instanceOf(Date),\n min: _propTypes.default.instanceOf(Date),\n max: _propTypes.default.instanceOf(Date),\n onChange: _propTypes.default.func.isRequired,\n yearFormat: CustomPropTypes.dateFormat,\n disabled: _propTypes.default.bool\n};\nfunction getDecadeYears(_date) {\n var days = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],\n date = _dates.default.add(_dates.default.startOf(_date, 'decade'), -2, 'year');\n return days.map(function () {\n return date = _dates.default.add(date, 1, 'year');\n });\n}\nvar _default = DecadeView;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _CalendarView = _interopRequireDefault(require(\"./CalendarView\"));\nvar _dates = _interopRequireDefault(require(\"./util/dates\"));\nvar _localizers = require(\"./util/localizers\");\nvar _ = require(\"./util/_\");\nvar Props = _interopRequireWildcard(require(\"./util/Props\"));\nvar CustomPropTypes = _interopRequireWildcard(require(\"./util/PropTypes\"));\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar CenturyView = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CenturyView, _React$Component);\n function CenturyView() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.renderRow = function (row, rowIdx) {\n var _this$props = _this.props,\n focused = _this$props.focused,\n activeId = _this$props.activeId,\n disabled = _this$props.disabled,\n onChange = _this$props.onChange,\n value = _this$props.value,\n today = _this$props.today,\n culture = _this$props.culture,\n min = _this$props.min,\n decadeFormat = _this$props.decadeFormat,\n max = _this$props.max;\n decadeFormat = _localizers.date.getFormat('decade', decadeFormat);\n return _react.default.createElement(_CalendarView.default.Row, {\n key: rowIdx\n }, row.map(function (date, colIdx) {\n var label = _localizers.date.format(_dates.default.startOf(date, 'decade'), decadeFormat, culture);\n return _react.default.createElement(_CalendarView.default.Cell, {\n key: colIdx,\n unit: \"decade\",\n activeId: activeId,\n label: label,\n date: date,\n now: today,\n min: min,\n max: max,\n onChange: onChange,\n focused: focused,\n selected: value,\n disabled: disabled\n }, label);\n }));\n };\n return _this;\n }\n var _proto = CenturyView.prototype;\n _proto.render = function render() {\n var _this$props2 = this.props,\n focused = _this$props2.focused,\n activeId = _this$props2.activeId;\n return _react.default.createElement(_CalendarView.default, _extends({}, Props.omitOwn(this), {\n activeId: activeId\n }), _react.default.createElement(_CalendarView.default.Body, null, (0, _.chunk)(getCenturyDecades(focused), 4).map(this.renderRow)));\n };\n return CenturyView;\n}(_react.default.Component);\nCenturyView.propTypes = {\n activeId: _propTypes.default.string,\n culture: _propTypes.default.string,\n today: _propTypes.default.instanceOf(Date),\n value: _propTypes.default.instanceOf(Date),\n focused: _propTypes.default.instanceOf(Date),\n min: _propTypes.default.instanceOf(Date),\n max: _propTypes.default.instanceOf(Date),\n onChange: _propTypes.default.func.isRequired,\n decadeFormat: CustomPropTypes.dateFormat,\n disabled: _propTypes.default.bool\n};\nfunction getCenturyDecades(_date) {\n var days = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],\n date = _dates.default.add(_dates.default.startOf(_date, 'century'), -20, 'year');\n return days.map(function () {\n return date = _dates.default.add(date, 10, 'year');\n });\n}\nvar _default = CenturyView;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _events = _interopRequireDefault(require(\"dom-helpers/events\"));\nvar _style = _interopRequireDefault(require(\"dom-helpers/style\"));\nvar _height = _interopRequireDefault(require(\"dom-helpers/query/height\"));\nvar _properties = require(\"dom-helpers/transition/properties\");\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _TransitionGroup = _interopRequireDefault(require(\"react-transition-group/TransitionGroup\"));\nvar _Transition = _interopRequireWildcard(require(\"react-transition-group/Transition\"));\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _reactDom = require(\"react-dom\");\nvar Props = _interopRequireWildcard(require(\"./util/Props\"));\nvar _transitionStyle, _transitionClasses;\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar DirectionPropType = _propTypes.default.oneOf(['left', 'right', 'top', 'bottom']);\nvar transitionStyle = (_transitionStyle = {}, _transitionStyle[_Transition.ENTERING] = {\n position: 'absolute'\n}, _transitionStyle[_Transition.EXITING] = {\n position: 'absolute'\n}, _transitionStyle);\nvar transitionClasses = (_transitionClasses = {}, _transitionClasses[_Transition.ENTERED] = 'rw-calendar-transition-entered', _transitionClasses[_Transition.ENTERING] = 'rw-calendar-transition-entering', _transitionClasses[_Transition.EXITING] = 'rw-calendar-transition-exiting', _transitionClasses[_Transition.EXITED] = 'rw-calendar-transition-exited', _transitionClasses);\nfunction parseDuration(node) {\n var str = (0, _style.default)(node, _properties.transitionDuration);\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\nvar SlideTransition = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(SlideTransition, _React$Component);\n function SlideTransition() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.handleTransitionEnd = function (node, done) {\n var duration = parseDuration(node) || 300;\n var handler = function handler() {\n _events.default.off(node, _properties.transitionEnd, handler, false);\n done();\n };\n setTimeout(handler, duration * 1.5);\n _events.default.on(node, _properties.transitionEnd, handler, false);\n };\n return _this;\n }\n var _proto = SlideTransition.prototype;\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n props = _objectWithoutProperties(_this$props, [\"children\"]);\n var direction = this.context.direction;\n var child = _react.default.Children.only(children);\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n timeout: 5000,\n addEndListener: this.handleTransitionEnd\n }), function (status, innerProps) {\n return _react.default.cloneElement(child, _extends({}, innerProps, {\n style: transitionStyle[status],\n className: (0, _classnames.default)(child.props.className, 'rw-calendar-transition', \"rw-calendar-transition-\" + direction, transitionClasses[status])\n }));\n });\n };\n return SlideTransition;\n}(_react.default.Component);\nSlideTransition.contextTypes = {\n direction: DirectionPropType\n};\nvar SlideTransitionGroup = /*#__PURE__*/\nfunction (_React$Component2) {\n _inheritsLoose(SlideTransitionGroup, _React$Component2);\n function SlideTransitionGroup() {\n var _this2;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n _this2 = _React$Component2.call.apply(_React$Component2, [this].concat(args)) || this;\n _this2.handleEnter = function (child) {\n var node = (0, _reactDom.findDOMNode)(_assertThisInitialized(_assertThisInitialized(_this2)));\n if (!child) return;\n var height = (0, _height.default)(child) + 'px';\n (0, _style.default)(node, {\n height: height,\n overflow: 'hidden'\n });\n };\n _this2.handleExited = function () {\n var node = (0, _reactDom.findDOMNode)(_assertThisInitialized(_assertThisInitialized(_this2)));\n (0, _style.default)(node, {\n overflow: '',\n height: ''\n });\n };\n return _this2;\n }\n var _proto2 = SlideTransitionGroup.prototype;\n _proto2.getChildContext = function getChildContext() {\n return {\n direction: this.props.direction\n };\n };\n _proto2.render = function render() {\n var _this$props2 = this.props,\n children = _this$props2.children,\n direction = _this$props2.direction;\n return _react.default.createElement(_TransitionGroup.default, _extends({}, Props.omitOwn(this), {\n component: \"div\",\n className: \"rw-calendar-transition-group\"\n }), _react.default.createElement(SlideTransition, {\n key: children.key,\n direction: direction,\n onEnter: this.handleEnter,\n onExited: this.handleExited\n }, children));\n };\n return SlideTransitionGroup;\n}(_react.default.Component);\nSlideTransitionGroup.childContextTypes = {\n direction: DirectionPropType\n};\nSlideTransitionGroup.defaultProps = {\n direction: 'left'\n};\nSlideTransitionGroup.propTypes = {\n direction: DirectionPropType\n};\nvar _default = SlideTransitionGroup;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\nvar _ChildMapping = require(\"./utils/ChildMapping\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `<TransitionGroup>` component manages a set of transition components\n * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition\n * components, `<TransitionGroup>` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the `<TransitionGroup>`.\n *\n * Note that `<TransitionGroup>` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n};\nvar TransitionGroup = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n function TransitionGroup(props, context) {\n var _this;\n _this = _React$Component.call(this, props, context) || this;\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n var _proto = TransitionGroup.prototype;\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n if (Component === null) {\n return children;\n }\n return _react.default.createElement(Component, props, children);\n };\n return TransitionGroup;\n}(_react.default.Component);\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `<TransitionGroup>` renders a `<div>` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `<div>` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n /**\n * A set of `<Transition>` components, that are toggled `in` and out as they\n * leave. the `<TransitionGroup>` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `<Transition>` as\n * with our `<Fade>` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n var i;\n var childMapping = {};\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n return childMapping;\n}\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = matches;\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\nvar _querySelectorAll = _interopRequireDefault(require(\"./querySelectorAll\"));\nvar matchesCache;\nfunction matches(node, selector) {\n if (!matchesCache && _inDOM.default) {\n var body = document.body;\n var nativeMatch = body.matches || body.matchesSelector || body.webkitMatchesSelector || body.mozMatchesSelector || body.msMatchesSelector;\n matchesCache = nativeMatch ? function (node, selector) {\n return nativeMatch.call(node, selector);\n } : ie8MatchesSelector;\n }\n return matchesCache ? matchesCache(node, selector) : null;\n}\nfunction ie8MatchesSelector(node, selector) {\n var matches = (0, _querySelectorAll.default)(node.document || node.ownerDocument, selector),\n i = 0;\n while (matches[i] && matches[i] !== node) {\n i++;\n }\n return !!matches[i];\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\nvar _reactDom = require(\"react-dom\");\nvar _Input = _interopRequireDefault(require(\"./Input\"));\nvar _localizers = require(\"./util/localizers\");\nvar CustomPropTypes = _interopRequireWildcard(require(\"./util/PropTypes\"));\nvar Props = _interopRequireWildcard(require(\"./util/Props\"));\nvar _class, _class2, _temp;\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar DateTimePickerInput = (0, _reactLifecyclesCompat.polyfill)(_class = (_temp = _class2 = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(DateTimePickerInput, _React$Component);\n function DateTimePickerInput() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {};\n _this.handleBlur = function (event) {\n var _this$props = _this.props,\n format = _this$props.format,\n culture = _this$props.culture,\n parse = _this$props.parse,\n onChange = _this$props.onChange,\n onBlur = _this$props.onBlur;\n onBlur && onBlur(event);\n if (_this._needsFlush) {\n var date = parse(event.target.value);\n var dateIsInvalid = event.target.value != '' && date == null;\n if (dateIsInvalid) {\n _this.setState({\n textValue: ''\n });\n }\n _this._needsFlush = false;\n onChange(date, formatDate(date, format, culture));\n }\n };\n _this.handleChange = function (_ref) {\n var value = _ref.target.value;\n _this._needsFlush = true;\n _this.setState({\n textValue: value\n });\n };\n return _this;\n }\n DateTimePickerInput.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var value = nextProps.value,\n editing = nextProps.editing,\n editFormat = nextProps.editFormat,\n format = nextProps.format,\n culture = nextProps.culture;\n var textValue = formatDate(value, editing && editFormat ? editFormat : format, culture);\n if (prevState.lastValueFromProps !== textValue) return {\n textValue: textValue,\n lastValueFromProps: textValue\n };\n return null;\n };\n var _proto = DateTimePickerInput.prototype;\n _proto.focus = function focus() {\n (0, _reactDom.findDOMNode)(this).focus();\n };\n _proto.render = function render() {\n var _this$props2 = this.props,\n disabled = _this$props2.disabled,\n readOnly = _this$props2.readOnly;\n var textValue = this.state.textValue;\n var props = Props.omitOwn(this);\n return _react.default.createElement(_Input.default, _extends({}, props, {\n type: \"text\",\n className: \"rw-widget-input\",\n value: textValue,\n disabled: disabled,\n readOnly: readOnly,\n onChange: this.handleChange,\n onBlur: this.handleBlur\n }));\n };\n return DateTimePickerInput;\n}(_react.default.Component), _class2.propTypes = {\n format: CustomPropTypes.dateFormat.isRequired,\n editing: _propTypes.default.bool,\n editFormat: CustomPropTypes.dateFormat,\n parse: _propTypes.default.func.isRequired,\n value: _propTypes.default.instanceOf(Date),\n onChange: _propTypes.default.func.isRequired,\n onBlur: _propTypes.default.func,\n culture: _propTypes.default.string,\n disabled: CustomPropTypes.disabled,\n readOnly: CustomPropTypes.disabled\n}, _temp)) || _class;\nvar _default = DateTimePickerInput;\nexports.default = _default;\nfunction isValid(d) {\n return !isNaN(d.getTime());\n}\nfunction formatDate(date, format, culture) {\n var val = '';\n if (date instanceof Date && isValid(date)) val = _localizers.date.format(date, format, culture);\n return val;\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nInput.propTypes = {\n disabled: _propTypes.default.bool,\n readOnly: _propTypes.default.bool,\n value: _propTypes.default.string,\n type: _propTypes.default.string,\n tabIndex: _propTypes.default.string,\n component: _propTypes.default.any,\n nodeRef: _propTypes.default.func\n};\nfunction Input(_ref) {\n var className = _ref.className,\n disabled = _ref.disabled,\n readOnly = _ref.readOnly,\n value = _ref.value,\n tabIndex = _ref.tabIndex,\n nodeRef = _ref.nodeRef,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'text' : _ref$type,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'input' : _ref$component,\n props = _objectWithoutProperties(_ref, [\"className\", \"disabled\", \"readOnly\", \"value\", \"tabIndex\", \"nodeRef\", \"type\", \"component\"]);\n return _react.default.createElement(Component, _extends({}, props, {\n type: type,\n ref: nodeRef,\n tabIndex: tabIndex || 0,\n autoComplete: \"off\",\n disabled: disabled,\n readOnly: readOnly,\n \"aria-disabled\": disabled,\n \"aria-readonly\": readOnly,\n value: value == null ? '' : value,\n className: (0, _classnames.default)(className, 'rw-input')\n }));\n}\nvar _default = Input;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _Button = _interopRequireDefault(require(\"./Button\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar Select = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Select, _React$Component);\n function Select() {\n return _React$Component.apply(this, arguments) || this;\n }\n var _proto = Select.prototype;\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n bordered = _this$props.bordered,\n children = _this$props.children,\n props = _objectWithoutProperties(_this$props, [\"className\", \"bordered\", \"children\"]);\n return _react.default.createElement(\"span\", {\n className: (0, _classnames.default)(className, 'rw-select', bordered && 'rw-select-bordered')\n }, children ? _react.default.Children.map(children, function (child) {\n return child && _react.default.cloneElement(child, {\n variant: 'select'\n });\n }) : _react.default.createElement(_Button.default, _extends({}, props, {\n variant: \"select\"\n })));\n };\n return Select;\n}(_react.default.Component);\nSelect.propTypes = {\n bordered: _propTypes.default.bool\n};\nvar _default = Select;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _List = _interopRequireDefault(require(\"./List\"));\nvar _dates = _interopRequireDefault(require(\"./util/dates\"));\nvar _reduceToListState = _interopRequireDefault(require(\"./util/reduceToListState\"));\nvar _localizers = require(\"./util/localizers\");\nvar CustomPropTypes = _interopRequireWildcard(require(\"./util/PropTypes\"));\nvar _class, _class2, _temp;\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nvar format = function format(props) {\n return _localizers.date.getFormat('time', props.format);\n};\nvar accessors = {\n text: function text(item) {\n return item.label;\n },\n value: function value(item) {\n return item.date;\n }\n};\nvar find = function find(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n if (fn(arr[i])) return arr[i];\n }\n return null;\n};\nfunction getBounds(_ref) {\n var min = _ref.min,\n max = _ref.max,\n currentDate = _ref.currentDate,\n value = _ref.value,\n preserveDate = _ref.preserveDate;\n\n //compare just the time regradless of whether they fall on the same day\n if (!preserveDate) {\n var _start = _dates.default.startOf(_dates.default.merge(new Date(), min, currentDate), 'minutes');\n var _end = _dates.default.startOf(_dates.default.merge(new Date(), max, currentDate), 'minutes');\n if (_dates.default.lte(_end, _start) && _dates.default.gt(max, min, 'day')) _end = _dates.default.tomorrow();\n return {\n min: _start,\n max: _end\n };\n }\n var start = _dates.default.today();\n var end = _dates.default.tomorrow();\n value = value || currentDate || start; //date parts are equal\n\n return {\n min: _dates.default.eq(value, min, 'day') ? _dates.default.merge(start, min, currentDate) : start,\n max: _dates.default.eq(value, max, 'day') ? _dates.default.merge(start, max, currentDate) : end\n };\n}\nfunction getDates(_ref2) {\n var step = _ref2.step,\n culture = _ref2.culture,\n props = _objectWithoutProperties(_ref2, [\"step\", \"culture\"]);\n var times = [];\n var _getBounds = getBounds(props),\n min = _getBounds.min,\n max = _getBounds.max;\n var startDay = _dates.default.date(min);\n while (_dates.default.date(min) === startDay && _dates.default.lte(min, max)) {\n times.push({\n date: min,\n label: _localizers.date.format(min, format(props), culture)\n });\n min = _dates.default.add(min, step || 30, 'minutes');\n }\n return times;\n}\nvar TimeList = (0, _reactLifecyclesCompat.polyfill)(_class = (_temp = _class2 = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TimeList, _React$Component);\n function TimeList() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {};\n _this.handleKeyDown = function (e) {\n var key = e.key;\n var _this$state = _this.state,\n focusedItem = _this$state.focusedItem,\n list = _this$state.list;\n if (key === 'End') {\n e.preventDefault();\n _this.setState({\n focusedItem: list.last()\n });\n } else if (key === 'Home') {\n e.preventDefault();\n _this.setState({\n focusedItem: list.first()\n });\n } else if (key === 'Enter') {\n _this.props.onSelect(focusedItem);\n } else if (key === 'ArrowDown') {\n e.preventDefault();\n _this.setState({\n focusedItem: list.next(focusedItem)\n });\n } else if (key === 'ArrowUp') {\n e.preventDefault();\n _this.setState({\n focusedItem: list.prev(focusedItem)\n });\n }\n };\n return _this;\n }\n TimeList.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var value = nextProps.value,\n currentDate = nextProps.currentDate,\n step = nextProps.step;\n var data = getDates(nextProps);\n var currentValue = value || currentDate;\n var valueChanged = !prevState.lastValue || !_dates.default.eq(currentValue, prevState.lastValue, 'minutes');\n var list = (0, _reduceToListState.default)(data, prevState.list, {\n nextProps: nextProps\n });\n var selectedItem = find(data, function (t) {\n return _dates.default.eq(t.date, currentValue, 'minutes');\n });\n var closestDate = find(data, function (t) {\n var relativeDate = new Date(t.date);\n relativeDate.setFullYear(currentValue.getFullYear(), currentValue.getMonth(), currentValue.getDate());\n var diff = _dates.default.diff(relativeDate, currentValue, 'minutes');\n return Math.abs(diff) < step;\n });\n return {\n data: data,\n list: list,\n lastValue: currentValue,\n selectedItem: list.nextEnabled(selectedItem),\n focusedItem: valueChanged || !prevState.focusedItem ? list.nextEnabled(selectedItem || closestDate || data[0]) : find(data, function (t) {\n return _dates.default.eq(t.date, prevState.focusedItem.date, 'minutes');\n })\n };\n };\n var _proto = TimeList.prototype;\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unmounted = true;\n };\n _proto.render = function render() {\n var _this$props = this.props,\n listProps = _this$props.listProps,\n props = _objectWithoutProperties(_this$props, [\"listProps\"]);\n var _this$state2 = this.state,\n data = _this$state2.data,\n list = _this$state2.list,\n focusedItem = _this$state2.focusedItem,\n selectedItem = _this$state2.selectedItem;\n delete props.currentDate;\n delete props.min;\n delete props.max;\n delete props.step;\n delete props.format;\n delete props.culture;\n delete props.preserveDate;\n delete props.value;\n return _react.default.createElement(_List.default, _extends({}, props, listProps, {\n data: data,\n dataState: list.dataState,\n isDisabled: list.isDisabled,\n textAccessor: accessors.text,\n valueAccessor: accessors.value,\n selectedItem: selectedItem,\n focusedItem: focusedItem\n }));\n };\n return TimeList;\n}(_react.default.Component), _class2.defaultProps = {\n step: 30,\n currentDate: new Date(),\n min: new Date(1900, 0, 1),\n max: new Date(2099, 11, 31),\n preserveDate: true\n}, _class2.propTypes = {\n value: _propTypes.default.instanceOf(Date),\n step: _propTypes.default.number,\n min: _propTypes.default.instanceOf(Date),\n max: _propTypes.default.instanceOf(Date),\n currentDate: _propTypes.default.instanceOf(Date),\n itemComponent: CustomPropTypes.elementType,\n listProps: _propTypes.default.object,\n format: CustomPropTypes.dateFormat,\n onSelect: _propTypes.default.func,\n preserveDate: _propTypes.default.bool,\n culture: _propTypes.default.string\n}, _temp)) || _class;\nvar _default = TimeList;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _reactDom = require(\"react-dom\");\nvar CustomPropTypes = _interopRequireWildcard(require(\"./util/PropTypes\"));\nvar Props = _interopRequireWildcard(require(\"./util/Props\"));\nvar _widgetHelpers = require(\"./util/widgetHelpers\");\nvar _reduceToListState = require(\"./util/reduceToListState\");\nvar _Listbox = _interopRequireDefault(require(\"./Listbox\"));\nvar _ListOption = _interopRequireDefault(require(\"./ListOption\"));\nvar _ListOptionGroup = _interopRequireDefault(require(\"./ListOptionGroup\"));\nvar _messages = require(\"./messages\");\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar EMPTY_DATA_STATE = {};\nvar propTypes = {\n data: _propTypes.default.array,\n dataState: _propTypes.default.shape({\n sortedKeys: _propTypes.default.array,\n groups: _propTypes.default.object,\n data: _propTypes.default.array,\n sequentialData: _propTypes.default.array\n }),\n valueAccessor: CustomPropTypes.accessor,\n textAccessor: CustomPropTypes.accessor,\n onSelect: _propTypes.default.func,\n onMove: _propTypes.default.func,\n activeId: _propTypes.default.string,\n itemComponent: CustomPropTypes.elementType,\n groupComponent: CustomPropTypes.elementType,\n optionComponent: CustomPropTypes.elementType,\n renderItem: _propTypes.default.func,\n renderGroup: _propTypes.default.func,\n focusedItem: _propTypes.default.any,\n selectedItem: _propTypes.default.any,\n searchTerm: _propTypes.default.string,\n isDisabled: _propTypes.default.func.isRequired,\n messages: _propTypes.default.shape({\n emptyList: _propTypes.default.func.isRequired\n })\n};\nvar defaultProps = {\n onSelect: function onSelect() {},\n data: [],\n dataState: EMPTY_DATA_STATE,\n optionComponent: _ListOption.default\n};\nvar List = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(List, _React$Component);\n function List() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.renderItem = function (_ref) {\n var item = _ref.item,\n rest = _objectWithoutProperties(_ref, [\"item\"]);\n var _this$props = _this.props,\n isDisabled = _this$props.isDisabled,\n renderItem = _this$props.renderItem,\n textAccessor = _this$props.textAccessor,\n valueAccessor = _this$props.valueAccessor;\n var Component = _this.props.itemComponent;\n if (renderItem) {\n return renderItem(_extends({\n item: item\n }, rest));\n } else if (Component) {\n return _react.default.createElement(Component, _extends({\n item: item,\n value: valueAccessor(item),\n text: textAccessor(item),\n disabled: isDisabled(item)\n }, rest));\n }\n return textAccessor(item);\n };\n _this.renderGroup = function (group) {\n var _this$props2 = _this.props,\n renderGroup = _this$props2.renderGroup,\n Component = _this$props2.groupComponent;\n if (renderGroup) {\n return renderGroup({\n group: group\n });\n } else if (Component) {\n return _react.default.createElement(Component, {\n item: group\n });\n }\n return group;\n };\n return _this;\n }\n var _proto = List.prototype;\n _proto.componentDidMount = function componentDidMount() {\n this.move();\n };\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.move();\n };\n _proto.mapItems = function mapItems(fn) {\n var _this$props3 = this.props,\n data = _this$props3.data,\n dataState = _this$props3.dataState;\n var sortedKeys = dataState.sortedKeys,\n groups = dataState.groups;\n if (!groups) return data.map(function (item, idx) {\n return fn(item, idx, false);\n });\n var idx = -1;\n return sortedKeys.reduce(function (items, key) {\n var group = groups[key];\n return items.concat(fn(key, idx, true), group.map(function (item) {\n return fn(item, ++idx, false);\n }));\n }, []);\n };\n _proto.move = function move() {\n var _this$props4 = this.props,\n focusedItem = _this$props4.focusedItem,\n onMove = _this$props4.onMove,\n data = _this$props4.data,\n dataState = _this$props4.dataState;\n var list = (0, _reactDom.findDOMNode)(this);\n var idx = renderedIndexOf(focusedItem, list, data, dataState);\n var selectedItem = list.children[idx];\n if (selectedItem) (0, _widgetHelpers.notify)(onMove, [selectedItem, list, focusedItem]);\n };\n _proto.renderOption = function renderOption(item, index) {\n var _this$props5 = this.props,\n activeId = _this$props5.activeId,\n focusedItem = _this$props5.focusedItem,\n selectedItem = _this$props5.selectedItem,\n onSelect = _this$props5.onSelect,\n isDisabled = _this$props5.isDisabled,\n searchTerm = _this$props5.searchTerm,\n Option = _this$props5.optionComponent;\n var isFocused = focusedItem === item;\n return _react.default.createElement(Option, {\n dataItem: item,\n key: 'item_' + index,\n index: index,\n activeId: activeId,\n focused: isFocused,\n onSelect: onSelect,\n disabled: isDisabled(item),\n selected: selectedItem === item\n }, this.renderItem({\n item: item,\n index: index,\n searchTerm: searchTerm\n }));\n };\n _proto.render = function render() {\n var _this2 = this;\n var _this$props6 = this.props,\n className = _this$props6.className,\n messages = _this$props6.messages;\n var elementProps = Props.pickElementProps(this);\n var _getMessages = (0, _messages.getMessages)(messages),\n emptyList = _getMessages.emptyList;\n return _react.default.createElement(_Listbox.default, _extends({}, elementProps, {\n className: className,\n emptyListMessage: emptyList(this.props)\n }), this.mapItems(function (item, idx, isHeader) {\n return isHeader ? _react.default.createElement(_ListOptionGroup.default, {\n key: 'group_' + item,\n group: item\n }, _this2.renderGroup(item)) : _this2.renderOption(item, idx);\n }));\n };\n return List;\n}(_react.default.Component);\nList.getDataState = _reduceToListState.defaultGetDataState;\nfunction renderedIndexOf(item, list, data, dataState) {\n var groups = dataState.groups,\n sortedKeys = dataState.sortedKeys;\n if (!groups) return data.indexOf(item);\n var runningIdx = -1;\n var idx = -1;\n sortedKeys.some(function (group) {\n var itemIdx = groups[group].indexOf(item);\n runningIdx++;\n if (itemIdx !== -1) {\n idx = runningIdx + itemIdx + 1;\n return true;\n }\n runningIdx += groups[group].length;\n });\n return idx;\n}\nList.propTypes = propTypes;\nList.defaultProps = defaultProps;\nvar _default = List;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.indexOf = indexOf;\nexports.filter = filter;\nexports.suggest = suggest;\nexports.propTypes = exports.presets = void 0;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar CustomPropTypes = _interopRequireWildcard(require(\"./PropTypes\"));\nvar _dataHelpers = require(\"./dataHelpers\");\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nvar presets = {\n eq: function eq(a, b) {\n return a === b;\n },\n neq: function neq(a, b) {\n return a !== b;\n },\n gt: function gt(a, b) {\n return a > b;\n },\n gte: function gte(a, b) {\n return a >= b;\n },\n lt: function lt(a, b) {\n return a < b;\n },\n lte: function lte(a, b) {\n return a <= b;\n },\n contains: function contains(a, b) {\n return a.indexOf(b) !== -1;\n },\n startsWith: function startsWith(a, b) {\n return a.lastIndexOf(b, 0) === 0;\n },\n endsWith: function endsWith(a, b) {\n var pos = a.length - b.length;\n var lastIndex = a.indexOf(b, pos);\n return lastIndex !== -1 && lastIndex === pos;\n }\n};\nexports.presets = presets;\nfunction normalizeFilterType(type) {\n if (type === false) return null;\n if (type === true) return 'startsWith';\n return type || 'eq';\n}\nfunction normalizeFilter(_ref) {\n var filter = _ref.filter,\n _ref$caseSensitive = _ref.caseSensitive,\n caseSensitive = _ref$caseSensitive === void 0 ? false : _ref$caseSensitive,\n textField = _ref.textField;\n filter = normalizeFilterType(filter);\n if (typeof filter === 'function' || !filter) {\n return filter;\n }\n filter = presets[filter];\n return function (item, searchTerm) {\n var textValue = (0, _dataHelpers.dataText)(item, textField);\n if (!caseSensitive) {\n textValue = textValue.toLowerCase();\n searchTerm = searchTerm.toLowerCase();\n }\n return filter(textValue, searchTerm);\n };\n}\nfunction normalizeOptions(nextOptions) {\n var options = _extends({}, nextOptions);\n options.minLengh = options.minLengh || 0;\n options.filter = normalizeFilter(options);\n return options;\n}\nvar propTypes = {\n textField: CustomPropTypes.accessor,\n caseSensitive: _propTypes.default.bool,\n minLength: _propTypes.default.number,\n filter: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.bool, _propTypes.default.oneOf(Object.keys(presets))])\n};\nexports.propTypes = propTypes;\nfunction indexOf(data, _ref2) {\n var _ref2$searchTerm = _ref2.searchTerm,\n searchTerm = _ref2$searchTerm === void 0 ? '' : _ref2$searchTerm,\n options = _objectWithoutProperties(_ref2, [\"searchTerm\"]);\n var _normalizeOptions = normalizeOptions(options),\n filter = _normalizeOptions.filter,\n minLength = _normalizeOptions.minLength;\n if (!filter || !searchTerm || !searchTerm.trim() || searchTerm.length < minLength) return -1;\n for (var idx = 0; idx < data.length; idx++) {\n if (filter(data[idx], searchTerm, idx)) return idx;\n }\n return -1;\n}\nfunction filter(data, _ref3) {\n var _ref3$searchTerm = _ref3.searchTerm,\n searchTerm = _ref3$searchTerm === void 0 ? '' : _ref3$searchTerm,\n options = _objectWithoutProperties(_ref3, [\"searchTerm\"]);\n var _normalizeOptions2 = normalizeOptions(options),\n filter = _normalizeOptions2.filter,\n minLength = _normalizeOptions2.minLength;\n if (!filter || !searchTerm || !searchTerm.trim() || searchTerm.length < minLength) return data;\n return data.filter(function (item, idx) {\n return filter(item, searchTerm, idx);\n });\n}\nfunction suggest(data, _ref4) {\n var _ref4$searchTerm = _ref4.searchTerm,\n searchTerm = _ref4$searchTerm === void 0 ? '' : _ref4$searchTerm,\n options = _objectWithoutProperties(_ref4, [\"searchTerm\"]);\n var _normalizeOptions3 = normalizeOptions(options),\n filter = _normalizeOptions3.filter,\n minLength = _normalizeOptions3.minLength;\n if (!filter || !searchTerm || !searchTerm.trim() || searchTerm.length < minLength) return searchTerm;\n for (var idx = 0; idx < data.length; idx++) {\n if (filter(data[idx], searchTerm, idx)) return data[idx];\n }\n return searchTerm;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _widgetHelpers = require(\"./util/widgetHelpers\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar propTypes = {\n className: _propTypes.default.string,\n role: _propTypes.default.string,\n nodeRef: _propTypes.default.func,\n emptyListMessage: _propTypes.default.node\n};\nvar Listbox = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Listbox, _React$Component);\n function Listbox() {\n return _React$Component.apply(this, arguments) || this;\n }\n var _proto = Listbox.prototype;\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n role = _this$props.role,\n children = _this$props.children,\n emptyListMessage = _this$props.emptyListMessage,\n nodeRef = _this$props.nodeRef,\n props = _objectWithoutProperties(_this$props, [\"className\", \"role\", \"children\", \"emptyListMessage\", \"nodeRef\"]);\n var id = (0, _widgetHelpers.instanceId)(this);\n return _react.default.createElement(\"ul\", _extends({\n id: id,\n tabIndex: \"-1\",\n ref: nodeRef,\n className: (0, _classnames.default)(className, 'rw-list'),\n role: role === undefined ? 'listbox' : role\n }, props), _react.default.Children.count(children) ? children : _react.default.createElement(\"li\", {\n className: \"rw-list-empty\"\n }, emptyListMessage));\n };\n return Listbox;\n}(_react.default.Component);\nListbox.propTypes = propTypes;\nvar _default = Listbox;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar Props = _interopRequireWildcard(require(\"./util/Props\"));\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar ListOption = /*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ListOption, _React$Component);\n function ListOption() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.handleSelect = function (event) {\n var _this$props = _this.props,\n onSelect = _this$props.onSelect,\n disabled = _this$props.disabled,\n dataItem = _this$props.dataItem;\n if (onSelect && !disabled) onSelect(dataItem, event);\n };\n return _this;\n }\n var _proto = ListOption.prototype;\n _proto.render = function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n children = _this$props2.children,\n focused = _this$props2.focused,\n selected = _this$props2.selected,\n disabled = _this$props2.disabled,\n activeId = _this$props2.activeId;\n var Tag = this.props.component || 'li';\n var props = Props.omitOwn(this);\n var classes = {\n 'rw-state-focus': focused,\n 'rw-state-selected': selected,\n 'rw-state-disabled': disabled\n };\n var id = focused ? activeId : undefined;\n return _react.default.createElement(Tag, _extends({\n id: id,\n role: \"option\",\n tabIndex: !disabled ? '-1' : undefined,\n \"aria-selected\": !!selected,\n className: (0, _classnames.default)('rw-list-option', className, classes),\n onClick: this.handleSelect\n }, props), children);\n };\n return ListOption;\n}(_react.default.Component);\nListOption.propTypes = {\n activeId: _propTypes.default.string,\n dataItem: _propTypes.default.any,\n index: _propTypes.default.number,\n focused: _propTypes.default.bool,\n selected: _propTypes.default.bool,\n disabled: _propTypes.default.bool,\n onSelect: _propTypes.default.func,\n component: _propTypes.default.string\n};\nvar _default = ListOption;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar propTypes = {\n className: _propTypes.default.string,\n component: _propTypes.default.string\n};\nfunction ListOptionGroup(_ref) {\n var children = _ref.children,\n className = _ref.className,\n _ref$component = _ref.component,\n component = _ref$component === void 0 ? 'li' : _ref$component;\n var Tag = component;\n return _react.default.createElement(Tag, {\n tabIndex: \"-1\",\n role: \"separator\",\n className: (0, _classnames.default)(className, 'rw-list-optgroup')\n }, children);\n}\nListOptionGroup.propTypes = propTypes;\nvar _default = ListOptionGroup;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = createScrollManager;\nvar _scrollTo = _interopRequireDefault(require(\"dom-helpers/util/scrollTo\"));\nvar _reactComponentManagers = require(\"react-component-managers\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction createScrollManager(inst, getScrollParent) {\n if (getScrollParent === void 0) {\n getScrollParent = function getScrollParent(list) {\n return list.parentNode;\n };\n }\n var isMounted = (0, _reactComponentManagers.mountManager)(inst);\n var currentFocused, currentVisible, cancelScroll;\n function handleScroll(selected, list, nextFocused) {\n if (!isMounted()) return;\n var lastVisible = currentVisible;\n var lastItem = currentFocused;\n var shown, changed;\n currentVisible = !(!list.offsetWidth || !list.offsetHeight);\n currentFocused = nextFocused;\n changed = lastItem !== nextFocused;\n shown = currentVisible && !lastVisible;\n if (shown || currentVisible && changed) {\n if (this.props.onMove) this.props.onMove(selected, list, nextFocused);else {\n cancelScroll && cancelScroll();\n cancelScroll = (0, _scrollTo.default)(selected, false && getScrollParent(list));\n }\n }\n }\n return handleScroll.bind(inst);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = scrollTo;\nvar _offset = _interopRequireDefault(require(\"../query/offset\"));\nvar _height = _interopRequireDefault(require(\"../query/height\"));\nvar _scrollParent = _interopRequireDefault(require(\"../query/scrollParent\"));\nvar _scrollTop = _interopRequireDefault(require(\"../query/scrollTop\"));\nvar _requestAnimationFrame = _interopRequireDefault(require(\"./requestAnimationFrame\"));\nvar _isWindow = _interopRequireDefault(require(\"../query/isWindow\"));\nfunction scrollTo(selected, scrollParent) {\n var offset = (0, _offset.default)(selected);\n var poff = {\n top: 0,\n left: 0\n };\n var list, listScrollTop, selectedTop, isWin;\n var selectedHeight, listHeight, bottom;\n if (!selected) return;\n list = scrollParent || (0, _scrollParent.default)(selected);\n isWin = (0, _isWindow.default)(list);\n listScrollTop = (0, _scrollTop.default)(list);\n listHeight = (0, _height.default)(list, true);\n isWin = (0, _isWindow.default)(list);\n if (!isWin) poff = (0, _offset.default)(list);\n offset = {\n top: offset.top - poff.top,\n left: offset.left - poff.left,\n height: offset.height,\n width: offset.width\n };\n selectedHeight = offset.height;\n selectedTop = offset.top + (isWin ? 0 : listScrollTop);\n bottom = selectedTop + selectedHeight;\n listScrollTop = listScrollTop > selectedTop ? selectedTop : bottom > listScrollTop + listHeight ? bottom - listHeight : listScrollTop;\n var id = (0, _requestAnimationFrame.default)(function () {\n return (0, _scrollTop.default)(list, listScrollTop);\n });\n return function () {\n return _requestAnimationFrame.default.cancel(id);\n };\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = scrollPrarent;\nvar _style = _interopRequireDefault(require(\"../style\"));\nvar _height = _interopRequireDefault(require(\"./height\"));\nfunction scrollPrarent(node) {\n var position = (0, _style.default)(node, 'position'),\n excludeStatic = position === 'absolute',\n ownerDoc = node.ownerDocument;\n if (position === 'fixed') return ownerDoc || document;\n while ((node = node.parentNode) && node.nodeType !== 9) {\n var isStatic = excludeStatic && (0, _style.default)(node, 'position') === 'static',\n style = (0, _style.default)(node, 'overflow') + (0, _style.default)(node, 'overflow-y') + (0, _style.default)(node, 'overflow-x');\n if (isStatic) continue;\n if (/(auto|scroll)/.test(style) && (0, _height.default)(node) < node.scrollHeight) return node;\n }\n return document;\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = scrollTop;\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\nfunction scrollTop(node, val) {\n var win = (0, _isWindow.default)(node);\n if (val === undefined) return win ? 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop : node.scrollTop;\n if (win) win.scrollTo('pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft, val);else node.scrollTop = val;\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = void 0;\nvar _inDOM = _interopRequireDefault(require(\"./inDOM\"));\nvar vendors = ['', 'webkit', 'moz', 'o', 'ms'];\nvar cancel = 'clearTimeout';\nvar raf = fallback;\nvar compatRaf;\nvar getKey = function getKey(vendor, k) {\n return vendor + (!vendor ? k : k[0].toUpperCase() + k.substr(1)) + 'AnimationFrame';\n};\nif (_inDOM.default) {\n vendors.some(function (vendor) {\n var rafKey = getKey(vendor, 'request');\n if (rafKey in window) {\n cancel = getKey(vendor, 'cancel');\n return raf = function raf(cb) {\n return window[rafKey](cb);\n };\n }\n });\n}\n/* https://github.com/component/raf */\n\nvar prev = new Date().getTime();\nfunction fallback(fn) {\n var curr = new Date().getTime(),\n ms = Math.max(0, 16 - (curr - prev)),\n req = setTimeout(fn, ms);\n prev = curr;\n return req;\n}\ncompatRaf = function compatRaf(cb) {\n return raf(cb);\n};\ncompatRaf.cancel = function (id) {\n window[cancel] && typeof window[cancel] === 'function' && window[cancel](id);\n};\nvar _default = compatRaf;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","var React = require(\"react\");\nvar ReactDOM = require(\"react-dom\");\nvar ReactDOMServer = require(\"react-dom/server\");\nvar detectEvents = require(\"./src/events/detect\");\nvar constructorFromGlobal = require(\"./src/getConstructor/fromGlobal\");\nvar constructorFromRequireContext = require(\"./src/getConstructor/fromRequireContext\");\nvar constructorFromRequireContextWithGlobalFallback = require(\"./src/getConstructor/fromRequireContextWithGlobalFallback\");\nvar constructorFromRequireContextsWithGlobalFallback = require(\"./src/getConstructor/fromRequireContextsWithGlobalFallback\");\nconst {\n supportsHydration,\n reactHydrate,\n createReactRootLike\n} = require(\"./src/renderHelpers\");\nvar ReactRailsUJS = {\n // This attribute holds the name of component which should be mounted\n // example: `data-react-class=\"MyApp.Items.EditForm\"`\n CLASS_NAME_ATTR: 'data-react-class',\n // This attribute holds JSON stringified props for initializing the component\n // example: `data-react-props=\"{\\\"item\\\": { \\\"id\\\": 1, \\\"name\\\": \\\"My Item\\\"} }\"`\n PROPS_ATTR: 'data-react-props',\n // This attribute holds which method to use between: ReactDOM.hydrate, ReactDOM.render\n RENDER_ATTR: 'data-hydrate',\n // A unique identifier to identify a node\n CACHE_ID_ATTR: \"data-react-cache-id\",\n TURBOLINKS_PERMANENT_ATTR: \"data-turbolinks-permanent\",\n // If jQuery is detected, save a reference to it for event handlers\n jQuery: typeof window !== 'undefined' && typeof window.jQuery !== 'undefined' && window.jQuery,\n components: {},\n // helper method for the mount and unmount methods to find the\n // `data-react-class` DOM elements\n findDOMNodes: function (searchSelector) {\n var classNameAttr = ReactRailsUJS.CLASS_NAME_ATTR;\n // we will use fully qualified paths as we do not bind the callbacks\n var selector, parent;\n switch (typeof searchSelector) {\n case 'undefined':\n selector = '[' + classNameAttr + ']';\n parent = document;\n break;\n case 'object':\n selector = '[' + classNameAttr + ']';\n parent = searchSelector;\n break;\n case 'string':\n selector = searchSelector + '[' + classNameAttr + '], ' + searchSelector + ' [' + classNameAttr + ']';\n parent = document;\n break;\n default:\n break;\n }\n if (ReactRailsUJS.jQuery) {\n return ReactRailsUJS.jQuery(selector, parent);\n } else {\n return parent.querySelectorAll(selector);\n }\n },\n // Get the constructor for a className (returns a React class)\n // Override this function to lookup classes in a custom way,\n // the default is ReactRailsUJS.ComponentGlobal\n getConstructor: constructorFromGlobal,\n // Available for customizing `getConstructor`\n constructorFromGlobal: constructorFromGlobal,\n constructorFromRequireContext: constructorFromRequireContext,\n constructorFromRequireContextWithGlobalFallback: constructorFromRequireContextWithGlobalFallback,\n // Given a Webpack `require.context`,\n // try finding components with `require`,\n // then falling back to global lookup.\n useContext: function (requireContext) {\n this.getConstructor = constructorFromRequireContextWithGlobalFallback(requireContext);\n },\n // Given an array of Webpack `require.context`,\n // try finding components with `require`,\n // then falling back to global lookup.\n useContexts: function (requireContexts) {\n this.getConstructor = constructorFromRequireContextsWithGlobalFallback(requireContexts);\n },\n // Render `componentName` with `props` to a string,\n // using the specified `renderFunction` from `react-dom/server`.\n serverRender: function (renderFunction, componentName, props) {\n var componentClass = this.getConstructor(componentName);\n var element = React.createElement(componentClass, props);\n return ReactDOMServer[renderFunction](element);\n },\n // Within `searchSelector`, find nodes which should have React components\n // inside them, and mount them with their props.\n mountComponents: function (searchSelector) {\n var ujs = ReactRailsUJS;\n var nodes = ujs.findDOMNodes(searchSelector);\n for (var i = 0; i < nodes.length; ++i) {\n var node = nodes[i];\n var className = node.getAttribute(ujs.CLASS_NAME_ATTR);\n var constructor = ujs.getConstructor(className);\n var propsJson = node.getAttribute(ujs.PROPS_ATTR);\n var props = propsJson && JSON.parse(propsJson);\n var hydrate = node.getAttribute(ujs.RENDER_ATTR);\n var cacheId = node.getAttribute(ujs.CACHE_ID_ATTR);\n var turbolinksPermanent = node.hasAttribute(ujs.TURBOLINKS_PERMANENT_ATTR);\n if (!constructor) {\n var message = \"Cannot find component: '\" + className + \"'\";\n if (console && console.log) {\n console.log(\"%c[react-rails] %c\" + message + \" for element\", \"font-weight: bold\", \"\", node);\n }\n throw new Error(message + \". Make sure your component is available to render.\");\n } else {\n var component = this.components[cacheId];\n if (component === undefined) {\n component = React.createElement(constructor, props);\n if (turbolinksPermanent) {\n this.components[cacheId] = component;\n }\n }\n if (hydrate && supportsHydration()) {\n component = reactHydrate(node, component);\n } else {\n const root = createReactRootLike(node);\n component = root.render(component);\n }\n }\n }\n },\n // Within `searchSelector`, find nodes which have React components\n // inside them, and unmount those components.\n unmountComponents: function (searchSelector) {\n var nodes = ReactRailsUJS.findDOMNodes(searchSelector);\n for (var i = 0; i < nodes.length; ++i) {\n var node = nodes[i];\n ReactDOM.unmountComponentAtNode(node);\n }\n },\n // Check the global context for installed libraries\n // and figure out which library to hook up to (pjax, Turbolinks, jQuery)\n // This is called on load, but you can call it again if needed\n // (It will unmount itself)\n detectEvents: function () {\n detectEvents(this);\n }\n};\n\n// These stable references are so that handlers can be added and removed:\nReactRailsUJS.handleMount = function (e) {\n var target = undefined;\n if (e && e.target) {\n target = e.target;\n }\n ReactRailsUJS.mountComponents(target);\n};\nReactRailsUJS.handleUnmount = function (e) {\n var target = undefined;\n if (e && e.target) {\n target = e.target;\n }\n ReactRailsUJS.unmountComponents(target);\n};\nif (typeof window !== \"undefined\") {\n // Only setup events for browser (not server-rendering)\n ReactRailsUJS.detectEvents();\n}\n\n// It's a bit of a no-no to populate the global namespace,\n// but we really need it!\n// We need access to this object for server rendering, and\n// we can't do a dynamic `require`, so we'll grab it from here:\nself.ReactRailsUJS = ReactRailsUJS;\nmodule.exports = ReactRailsUJS;","'use strict';\n\nvar l, s;\nif (process.env.NODE_ENV === 'production') {\n l = require('./cjs/react-dom-server-legacy.browser.production.min.js');\n s = require('./cjs/react-dom-server.browser.production.min.js');\n} else {\n l = require('./cjs/react-dom-server-legacy.browser.development.js');\n s = require('./cjs/react-dom-server.browser.development.js');\n}\nexports.version = l.version;\nexports.renderToString = l.renderToString;\nexports.renderToStaticMarkup = l.renderToStaticMarkup;\nexports.renderToNodeStream = l.renderToNodeStream;\nexports.renderToStaticNodeStream = l.renderToStaticNodeStream;\nexports.renderToReadableStream = s.renderToReadableStream;","/**\n * @license React\n * react-dom-server-legacy.browser.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar aa = require(\"react\");\nfunction l(a) {\n for (var b = \"https://reactjs.org/docs/error-decoder.html?invariant=\" + a, c = 1; c < arguments.length; c++) b += \"&args[]=\" + encodeURIComponent(arguments[c]);\n return \"Minified React error #\" + a + \"; visit \" + b + \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";\n}\nvar p = Object.prototype.hasOwnProperty,\n fa = /^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,\n ha = {},\n ia = {};\nfunction ja(a) {\n if (p.call(ia, a)) return !0;\n if (p.call(ha, a)) return !1;\n if (fa.test(a)) return ia[a] = !0;\n ha[a] = !0;\n return !1;\n}\nfunction r(a, b, c, d, f, e, g) {\n this.acceptsBooleans = 2 === b || 3 === b || 4 === b;\n this.attributeName = d;\n this.attributeNamespace = f;\n this.mustUseProperty = c;\n this.propertyName = a;\n this.type = b;\n this.sanitizeURL = e;\n this.removeEmptyString = g;\n}\nvar t = {};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function (a) {\n t[a] = new r(a, 0, !1, a, null, !1, !1);\n});\n[[\"acceptCharset\", \"accept-charset\"], [\"className\", \"class\"], [\"htmlFor\", \"for\"], [\"httpEquiv\", \"http-equiv\"]].forEach(function (a) {\n var b = a[0];\n t[b] = new r(b, 1, !1, a[1], null, !1, !1);\n});\n[\"contentEditable\", \"draggable\", \"spellCheck\", \"value\"].forEach(function (a) {\n t[a] = new r(a, 2, !1, a.toLowerCase(), null, !1, !1);\n});\n[\"autoReverse\", \"externalResourcesRequired\", \"focusable\", \"preserveAlpha\"].forEach(function (a) {\n t[a] = new r(a, 2, !1, a, null, !1, !1);\n});\n\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function (a) {\n t[a] = new r(a, 3, !1, a.toLowerCase(), null, !1, !1);\n});\n[\"checked\", \"multiple\", \"muted\", \"selected\"].forEach(function (a) {\n t[a] = new r(a, 3, !0, a, null, !1, !1);\n});\n[\"capture\", \"download\"].forEach(function (a) {\n t[a] = new r(a, 4, !1, a, null, !1, !1);\n});\n[\"cols\", \"rows\", \"size\", \"span\"].forEach(function (a) {\n t[a] = new r(a, 6, !1, a, null, !1, !1);\n});\n[\"rowSpan\", \"start\"].forEach(function (a) {\n t[a] = new r(a, 5, !1, a.toLowerCase(), null, !1, !1);\n});\nvar ka = /[\\-:]([a-z])/g;\nfunction la(a) {\n return a[1].toUpperCase();\n}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function (a) {\n var b = a.replace(ka, la);\n t[b] = new r(b, 1, !1, a, null, !1, !1);\n});\n\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function (a) {\n var b = a.replace(ka, la);\n t[b] = new r(b, 1, !1, a, \"http://www.w3.org/1999/xlink\", !1, !1);\n});\n[\"xml:base\", \"xml:lang\", \"xml:space\"].forEach(function (a) {\n var b = a.replace(ka, la);\n t[b] = new r(b, 1, !1, a, \"http://www.w3.org/XML/1998/namespace\", !1, !1);\n});\n[\"tabIndex\", \"crossOrigin\"].forEach(function (a) {\n t[a] = new r(a, 1, !1, a.toLowerCase(), null, !1, !1);\n});\nt.xlinkHref = new r(\"xlinkHref\", 1, !1, \"xlink:href\", \"http://www.w3.org/1999/xlink\", !0, !1);\n[\"src\", \"href\", \"action\", \"formAction\"].forEach(function (a) {\n t[a] = new r(a, 1, !1, a.toLowerCase(), null, !0, !0);\n});\nvar u = {\n animationIterationCount: !0,\n aspectRatio: !0,\n borderImageOutset: !0,\n borderImageSlice: !0,\n borderImageWidth: !0,\n boxFlex: !0,\n boxFlexGroup: !0,\n boxOrdinalGroup: !0,\n columnCount: !0,\n columns: !0,\n flex: !0,\n flexGrow: !0,\n flexPositive: !0,\n flexShrink: !0,\n flexNegative: !0,\n flexOrder: !0,\n gridArea: !0,\n gridRow: !0,\n gridRowEnd: !0,\n gridRowSpan: !0,\n gridRowStart: !0,\n gridColumn: !0,\n gridColumnEnd: !0,\n gridColumnSpan: !0,\n gridColumnStart: !0,\n fontWeight: !0,\n lineClamp: !0,\n lineHeight: !0,\n opacity: !0,\n order: !0,\n orphans: !0,\n tabSize: !0,\n widows: !0,\n zIndex: !0,\n zoom: !0,\n fillOpacity: !0,\n floodOpacity: !0,\n stopOpacity: !0,\n strokeDasharray: !0,\n strokeDashoffset: !0,\n strokeMiterlimit: !0,\n strokeOpacity: !0,\n strokeWidth: !0\n },\n ma = [\"Webkit\", \"ms\", \"Moz\", \"O\"];\nObject.keys(u).forEach(function (a) {\n ma.forEach(function (b) {\n b = b + a.charAt(0).toUpperCase() + a.substring(1);\n u[b] = u[a];\n });\n});\nvar na = /[\"'&<>]/;\nfunction v(a) {\n if (\"boolean\" === typeof a || \"number\" === typeof a) return \"\" + a;\n a = \"\" + a;\n var b = na.exec(a);\n if (b) {\n var c = \"\",\n d,\n f = 0;\n for (d = b.index; d < a.length; d++) {\n switch (a.charCodeAt(d)) {\n case 34:\n b = \""\";\n break;\n case 38:\n b = \"&\";\n break;\n case 39:\n b = \"'\";\n break;\n case 60:\n b = \"<\";\n break;\n case 62:\n b = \">\";\n break;\n default:\n continue;\n }\n f !== d && (c += a.substring(f, d));\n f = d + 1;\n c += b;\n }\n a = f !== d ? c + a.substring(f, d) : c;\n }\n return a;\n}\nvar oa = /([A-Z])/g,\n pa = /^ms-/,\n qa = Array.isArray;\nfunction w(a, b) {\n return {\n insertionMode: a,\n selectedValue: b\n };\n}\nfunction ra(a, b, c) {\n switch (b) {\n case \"select\":\n return w(1, null != c.value ? c.value : c.defaultValue);\n case \"svg\":\n return w(2, null);\n case \"math\":\n return w(3, null);\n case \"foreignObject\":\n return w(1, null);\n case \"table\":\n return w(4, null);\n case \"thead\":\n case \"tbody\":\n case \"tfoot\":\n return w(5, null);\n case \"colgroup\":\n return w(7, null);\n case \"tr\":\n return w(6, null);\n }\n return 4 <= a.insertionMode || 0 === a.insertionMode ? w(1, null) : a;\n}\nvar sa = new Map();\nfunction ta(a, b, c) {\n if (\"object\" !== typeof c) throw Error(l(62));\n b = !0;\n for (var d in c) if (p.call(c, d)) {\n var f = c[d];\n if (null != f && \"boolean\" !== typeof f && \"\" !== f) {\n if (0 === d.indexOf(\"--\")) {\n var e = v(d);\n f = v((\"\" + f).trim());\n } else {\n e = d;\n var g = sa.get(e);\n void 0 !== g ? e = g : (g = v(e.replace(oa, \"-$1\").toLowerCase().replace(pa, \"-ms-\")), sa.set(e, g), e = g);\n f = \"number\" === typeof f ? 0 === f || p.call(u, d) ? \"\" + f : f + \"px\" : v((\"\" + f).trim());\n }\n b ? (b = !1, a.push(' style=\"', e, \":\", f)) : a.push(\";\", e, \":\", f);\n }\n }\n b || a.push('\"');\n}\nfunction x(a, b, c, d) {\n switch (c) {\n case \"style\":\n ta(a, b, d);\n return;\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n return;\n }\n if (!(2 < c.length) || \"o\" !== c[0] && \"O\" !== c[0] || \"n\" !== c[1] && \"N\" !== c[1]) if (b = t.hasOwnProperty(c) ? t[c] : null, null !== b) {\n switch (typeof d) {\n case \"function\":\n case \"symbol\":\n return;\n case \"boolean\":\n if (!b.acceptsBooleans) return;\n }\n c = b.attributeName;\n switch (b.type) {\n case 3:\n d && a.push(\" \", c, '=\"\"');\n break;\n case 4:\n !0 === d ? a.push(\" \", c, '=\"\"') : !1 !== d && a.push(\" \", c, '=\"', v(d), '\"');\n break;\n case 5:\n isNaN(d) || a.push(\" \", c, '=\"', v(d), '\"');\n break;\n case 6:\n !isNaN(d) && 1 <= d && a.push(\" \", c, '=\"', v(d), '\"');\n break;\n default:\n b.sanitizeURL && (d = \"\" + d), a.push(\" \", c, '=\"', v(d), '\"');\n }\n } else if (ja(c)) {\n switch (typeof d) {\n case \"function\":\n case \"symbol\":\n return;\n case \"boolean\":\n if (b = c.toLowerCase().slice(0, 5), \"data-\" !== b && \"aria-\" !== b) return;\n }\n a.push(\" \", c, '=\"', v(d), '\"');\n }\n}\nfunction y(a, b, c) {\n if (null != b) {\n if (null != c) throw Error(l(60));\n if (\"object\" !== typeof b || !(\"__html\" in b)) throw Error(l(61));\n b = b.__html;\n null !== b && void 0 !== b && a.push(\"\" + b);\n }\n}\nfunction ua(a) {\n var b = \"\";\n aa.Children.forEach(a, function (a) {\n null != a && (b += a);\n });\n return b;\n}\nfunction va(a, b, c, d) {\n a.push(A(c));\n var f = c = null,\n e;\n for (e in b) if (p.call(b, e)) {\n var g = b[e];\n if (null != g) switch (e) {\n case \"children\":\n c = g;\n break;\n case \"dangerouslySetInnerHTML\":\n f = g;\n break;\n default:\n x(a, d, e, g);\n }\n }\n a.push(\">\");\n y(a, f, c);\n return \"string\" === typeof c ? (a.push(v(c)), null) : c;\n}\nvar wa = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,\n xa = new Map();\nfunction A(a) {\n var b = xa.get(a);\n if (void 0 === b) {\n if (!wa.test(a)) throw Error(l(65, a));\n b = \"<\" + a;\n xa.set(a, b);\n }\n return b;\n}\nfunction ya(a, b, c, d, f) {\n switch (b) {\n case \"select\":\n a.push(A(\"select\"));\n var e = null,\n g = null;\n for (n in c) if (p.call(c, n)) {\n var h = c[n];\n if (null != h) switch (n) {\n case \"children\":\n e = h;\n break;\n case \"dangerouslySetInnerHTML\":\n g = h;\n break;\n case \"defaultValue\":\n case \"value\":\n break;\n default:\n x(a, d, n, h);\n }\n }\n a.push(\">\");\n y(a, g, e);\n return e;\n case \"option\":\n g = f.selectedValue;\n a.push(A(\"option\"));\n var k = h = null,\n m = null;\n var n = null;\n for (e in c) if (p.call(c, e)) {\n var q = c[e];\n if (null != q) switch (e) {\n case \"children\":\n h = q;\n break;\n case \"selected\":\n m = q;\n break;\n case \"dangerouslySetInnerHTML\":\n n = q;\n break;\n case \"value\":\n k = q;\n default:\n x(a, d, e, q);\n }\n }\n if (null != g) {\n if (c = null !== k ? \"\" + k : ua(h), qa(g)) for (d = 0; d < g.length; d++) {\n if (\"\" + g[d] === c) {\n a.push(' selected=\"\"');\n break;\n }\n } else \"\" + g === c && a.push(' selected=\"\"');\n } else m && a.push(' selected=\"\"');\n a.push(\">\");\n y(a, n, h);\n return h;\n case \"textarea\":\n a.push(A(\"textarea\"));\n n = g = e = null;\n for (h in c) if (p.call(c, h) && (k = c[h], null != k)) switch (h) {\n case \"children\":\n n = k;\n break;\n case \"value\":\n e = k;\n break;\n case \"defaultValue\":\n g = k;\n break;\n case \"dangerouslySetInnerHTML\":\n throw Error(l(91));\n default:\n x(a, d, h, k);\n }\n null === e && null !== g && (e = g);\n a.push(\">\");\n if (null != n) {\n if (null != e) throw Error(l(92));\n if (qa(n) && 1 < n.length) throw Error(l(93));\n e = \"\" + n;\n }\n \"string\" === typeof e && \"\\n\" === e[0] && a.push(\"\\n\");\n null !== e && a.push(v(\"\" + e));\n return null;\n case \"input\":\n a.push(A(\"input\"));\n k = n = h = e = null;\n for (g in c) if (p.call(c, g) && (m = c[g], null != m)) switch (g) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(l(399, \"input\"));\n case \"defaultChecked\":\n k = m;\n break;\n case \"defaultValue\":\n h = m;\n break;\n case \"checked\":\n n = m;\n break;\n case \"value\":\n e = m;\n break;\n default:\n x(a, d, g, m);\n }\n null !== n ? x(a, d, \"checked\", n) : null !== k && x(a, d, \"checked\", k);\n null !== e ? x(a, d, \"value\", e) : null !== h && x(a, d, \"value\", h);\n a.push(\"/>\");\n return null;\n case \"menuitem\":\n a.push(A(\"menuitem\"));\n for (var C in c) if (p.call(c, C) && (e = c[C], null != e)) switch (C) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(l(400));\n default:\n x(a, d, C, e);\n }\n a.push(\">\");\n return null;\n case \"title\":\n a.push(A(\"title\"));\n e = null;\n for (q in c) if (p.call(c, q) && (g = c[q], null != g)) switch (q) {\n case \"children\":\n e = g;\n break;\n case \"dangerouslySetInnerHTML\":\n throw Error(l(434));\n default:\n x(a, d, q, g);\n }\n a.push(\">\");\n return e;\n case \"listing\":\n case \"pre\":\n a.push(A(b));\n g = e = null;\n for (k in c) if (p.call(c, k) && (h = c[k], null != h)) switch (k) {\n case \"children\":\n e = h;\n break;\n case \"dangerouslySetInnerHTML\":\n g = h;\n break;\n default:\n x(a, d, k, h);\n }\n a.push(\">\");\n if (null != g) {\n if (null != e) throw Error(l(60));\n if (\"object\" !== typeof g || !(\"__html\" in g)) throw Error(l(61));\n c = g.__html;\n null !== c && void 0 !== c && (\"string\" === typeof c && 0 < c.length && \"\\n\" === c[0] ? a.push(\"\\n\", c) : a.push(\"\" + c));\n }\n \"string\" === typeof e && \"\\n\" === e[0] && a.push(\"\\n\");\n return e;\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"img\":\n case \"keygen\":\n case \"link\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n a.push(A(b));\n for (var D in c) if (p.call(c, D) && (e = c[D], null != e)) switch (D) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(l(399, b));\n default:\n x(a, d, D, e);\n }\n a.push(\"/>\");\n return null;\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return va(a, c, b, d);\n case \"html\":\n return 0 === f.insertionMode && a.push(\"<!DOCTYPE html>\"), va(a, c, b, d);\n default:\n if (-1 === b.indexOf(\"-\") && \"string\" !== typeof c.is) return va(a, c, b, d);\n a.push(A(b));\n g = e = null;\n for (m in c) if (p.call(c, m) && (h = c[m], null != h)) switch (m) {\n case \"children\":\n e = h;\n break;\n case \"dangerouslySetInnerHTML\":\n g = h;\n break;\n case \"style\":\n ta(a, d, h);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n break;\n default:\n ja(m) && \"function\" !== typeof h && \"symbol\" !== typeof h && a.push(\" \", m, '=\"', v(h), '\"');\n }\n a.push(\">\");\n y(a, g, e);\n return e;\n }\n}\nfunction za(a, b, c) {\n a.push('\\x3c!--$?--\\x3e<template id=\"');\n if (null === c) throw Error(l(395));\n a.push(c);\n return a.push('\"></template>');\n}\nfunction Aa(a, b, c, d) {\n switch (c.insertionMode) {\n case 0:\n case 1:\n return a.push('<div hidden id=\"'), a.push(b.segmentPrefix), b = d.toString(16), a.push(b), a.push('\">');\n case 2:\n return a.push('<svg aria-hidden=\"true\" style=\"display:none\" id=\"'), a.push(b.segmentPrefix), b = d.toString(16), a.push(b), a.push('\">');\n case 3:\n return a.push('<math aria-hidden=\"true\" style=\"display:none\" id=\"'), a.push(b.segmentPrefix), b = d.toString(16), a.push(b), a.push('\">');\n case 4:\n return a.push('<table hidden id=\"'), a.push(b.segmentPrefix), b = d.toString(16), a.push(b), a.push('\">');\n case 5:\n return a.push('<table hidden><tbody id=\"'), a.push(b.segmentPrefix), b = d.toString(16), a.push(b), a.push('\">');\n case 6:\n return a.push('<table hidden><tr id=\"'), a.push(b.segmentPrefix), b = d.toString(16), a.push(b), a.push('\">');\n case 7:\n return a.push('<table hidden><colgroup id=\"'), a.push(b.segmentPrefix), b = d.toString(16), a.push(b), a.push('\">');\n default:\n throw Error(l(397));\n }\n}\nfunction Ba(a, b) {\n switch (b.insertionMode) {\n case 0:\n case 1:\n return a.push(\"</div>\");\n case 2:\n return a.push(\"</svg>\");\n case 3:\n return a.push(\"</math>\");\n case 4:\n return a.push(\"</table>\");\n case 5:\n return a.push(\"</tbody></table>\");\n case 6:\n return a.push(\"</tr></table>\");\n case 7:\n return a.push(\"</colgroup></table>\");\n default:\n throw Error(l(397));\n }\n}\nvar Ca = /[<\\u2028\\u2029]/g;\nfunction Da(a) {\n return JSON.stringify(a).replace(Ca, function (a) {\n switch (a) {\n case \"<\":\n return \"\\\\u003c\";\n case \"\\u2028\":\n return \"\\\\u2028\";\n case \"\\u2029\":\n return \"\\\\u2029\";\n default:\n throw Error(\"escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\");\n }\n });\n}\nfunction Ea(a, b) {\n b = void 0 === b ? \"\" : b;\n return {\n bootstrapChunks: [],\n startInlineScript: \"<script>\",\n placeholderPrefix: b + \"P:\",\n segmentPrefix: b + \"S:\",\n boundaryPrefix: b + \"B:\",\n idPrefix: b,\n nextSuspenseID: 0,\n sentCompleteSegmentFunction: !1,\n sentCompleteBoundaryFunction: !1,\n sentClientRenderFunction: !1,\n generateStaticMarkup: a\n };\n}\nfunction Fa(a, b, c, d) {\n if (c.generateStaticMarkup) return a.push(v(b)), !1;\n \"\" === b ? a = d : (d && a.push(\"\\x3c!-- --\\x3e\"), a.push(v(b)), a = !0);\n return a;\n}\nvar B = Object.assign,\n Ga = Symbol.for(\"react.element\"),\n Ha = Symbol.for(\"react.portal\"),\n Ia = Symbol.for(\"react.fragment\"),\n Ja = Symbol.for(\"react.strict_mode\"),\n Ka = Symbol.for(\"react.profiler\"),\n La = Symbol.for(\"react.provider\"),\n Ma = Symbol.for(\"react.context\"),\n Na = Symbol.for(\"react.forward_ref\"),\n Oa = Symbol.for(\"react.suspense\"),\n Pa = Symbol.for(\"react.suspense_list\"),\n Qa = Symbol.for(\"react.memo\"),\n Ra = Symbol.for(\"react.lazy\"),\n Sa = Symbol.for(\"react.scope\"),\n Ta = Symbol.for(\"react.debug_trace_mode\"),\n Ua = Symbol.for(\"react.legacy_hidden\"),\n Va = Symbol.for(\"react.default_value\"),\n Wa = Symbol.iterator;\nfunction Xa(a) {\n if (null == a) return null;\n if (\"function\" === typeof a) return a.displayName || a.name || null;\n if (\"string\" === typeof a) return a;\n switch (a) {\n case Ia:\n return \"Fragment\";\n case Ha:\n return \"Portal\";\n case Ka:\n return \"Profiler\";\n case Ja:\n return \"StrictMode\";\n case Oa:\n return \"Suspense\";\n case Pa:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof a) switch (a.$$typeof) {\n case Ma:\n return (a.displayName || \"Context\") + \".Consumer\";\n case La:\n return (a._context.displayName || \"Context\") + \".Provider\";\n case Na:\n var b = a.render;\n a = a.displayName;\n a || (a = b.displayName || b.name || \"\", a = \"\" !== a ? \"ForwardRef(\" + a + \")\" : \"ForwardRef\");\n return a;\n case Qa:\n return b = a.displayName || null, null !== b ? b : Xa(a.type) || \"Memo\";\n case Ra:\n b = a._payload;\n a = a._init;\n try {\n return Xa(a(b));\n } catch (c) {}\n }\n return null;\n}\nvar Ya = {};\nfunction Za(a, b) {\n a = a.contextTypes;\n if (!a) return Ya;\n var c = {},\n d;\n for (d in a) c[d] = b[d];\n return c;\n}\nvar E = null;\nfunction F(a, b) {\n if (a !== b) {\n a.context._currentValue2 = a.parentValue;\n a = a.parent;\n var c = b.parent;\n if (null === a) {\n if (null !== c) throw Error(l(401));\n } else {\n if (null === c) throw Error(l(401));\n F(a, c);\n }\n b.context._currentValue2 = b.value;\n }\n}\nfunction $a(a) {\n a.context._currentValue2 = a.parentValue;\n a = a.parent;\n null !== a && $a(a);\n}\nfunction ab(a) {\n var b = a.parent;\n null !== b && ab(b);\n a.context._currentValue2 = a.value;\n}\nfunction bb(a, b) {\n a.context._currentValue2 = a.parentValue;\n a = a.parent;\n if (null === a) throw Error(l(402));\n a.depth === b.depth ? F(a, b) : bb(a, b);\n}\nfunction cb(a, b) {\n var c = b.parent;\n if (null === c) throw Error(l(402));\n a.depth === c.depth ? F(a, c) : cb(a, c);\n b.context._currentValue2 = b.value;\n}\nfunction G(a) {\n var b = E;\n b !== a && (null === b ? ab(a) : null === a ? $a(b) : b.depth === a.depth ? F(b, a) : b.depth > a.depth ? bb(b, a) : cb(b, a), E = a);\n}\nvar db = {\n isMounted: function () {\n return !1;\n },\n enqueueSetState: function (a, b) {\n a = a._reactInternals;\n null !== a.queue && a.queue.push(b);\n },\n enqueueReplaceState: function (a, b) {\n a = a._reactInternals;\n a.replace = !0;\n a.queue = [b];\n },\n enqueueForceUpdate: function () {}\n};\nfunction eb(a, b, c, d) {\n var f = void 0 !== a.state ? a.state : null;\n a.updater = db;\n a.props = c;\n a.state = f;\n var e = {\n queue: [],\n replace: !1\n };\n a._reactInternals = e;\n var g = b.contextType;\n a.context = \"object\" === typeof g && null !== g ? g._currentValue2 : d;\n g = b.getDerivedStateFromProps;\n \"function\" === typeof g && (g = g(c, f), f = null === g || void 0 === g ? f : B({}, f, g), a.state = f);\n if (\"function\" !== typeof b.getDerivedStateFromProps && \"function\" !== typeof a.getSnapshotBeforeUpdate && (\"function\" === typeof a.UNSAFE_componentWillMount || \"function\" === typeof a.componentWillMount)) if (b = a.state, \"function\" === typeof a.componentWillMount && a.componentWillMount(), \"function\" === typeof a.UNSAFE_componentWillMount && a.UNSAFE_componentWillMount(), b !== a.state && db.enqueueReplaceState(a, a.state, null), null !== e.queue && 0 < e.queue.length) {\n if (b = e.queue, g = e.replace, e.queue = null, e.replace = !1, g && 1 === b.length) a.state = b[0];else {\n e = g ? b[0] : a.state;\n f = !0;\n for (g = g ? 1 : 0; g < b.length; g++) {\n var h = b[g];\n h = \"function\" === typeof h ? h.call(a, e, c, d) : h;\n null != h && (f ? (f = !1, e = B({}, e, h)) : B(e, h));\n }\n a.state = e;\n }\n } else e.queue = null;\n}\nvar fb = {\n id: 1,\n overflow: \"\"\n};\nfunction gb(a, b, c) {\n var d = a.id;\n a = a.overflow;\n var f = 32 - H(d) - 1;\n d &= ~(1 << f);\n c += 1;\n var e = 32 - H(b) + f;\n if (30 < e) {\n var g = f - f % 5;\n e = (d & (1 << g) - 1).toString(32);\n d >>= g;\n f -= g;\n return {\n id: 1 << 32 - H(b) + f | c << f | d,\n overflow: e + a\n };\n }\n return {\n id: 1 << e | c << f | d,\n overflow: a\n };\n}\nvar H = Math.clz32 ? Math.clz32 : hb,\n ib = Math.log,\n jb = Math.LN2;\nfunction hb(a) {\n a >>>= 0;\n return 0 === a ? 32 : 31 - (ib(a) / jb | 0) | 0;\n}\nfunction kb(a, b) {\n return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;\n}\nvar lb = \"function\" === typeof Object.is ? Object.is : kb,\n I = null,\n ob = null,\n J = null,\n K = null,\n L = !1,\n M = !1,\n N = 0,\n O = null,\n P = 0;\nfunction Q() {\n if (null === I) throw Error(l(321));\n return I;\n}\nfunction pb() {\n if (0 < P) throw Error(l(312));\n return {\n memoizedState: null,\n queue: null,\n next: null\n };\n}\nfunction qb() {\n null === K ? null === J ? (L = !1, J = K = pb()) : (L = !0, K = J) : null === K.next ? (L = !1, K = K.next = pb()) : (L = !0, K = K.next);\n return K;\n}\nfunction rb() {\n ob = I = null;\n M = !1;\n J = null;\n P = 0;\n K = O = null;\n}\nfunction sb(a, b) {\n return \"function\" === typeof b ? b(a) : b;\n}\nfunction tb(a, b, c) {\n I = Q();\n K = qb();\n if (L) {\n var d = K.queue;\n b = d.dispatch;\n if (null !== O && (c = O.get(d), void 0 !== c)) {\n O.delete(d);\n d = K.memoizedState;\n do d = a(d, c.action), c = c.next; while (null !== c);\n K.memoizedState = d;\n return [d, b];\n }\n return [K.memoizedState, b];\n }\n a = a === sb ? \"function\" === typeof b ? b() : b : void 0 !== c ? c(b) : b;\n K.memoizedState = a;\n a = K.queue = {\n last: null,\n dispatch: null\n };\n a = a.dispatch = ub.bind(null, I, a);\n return [K.memoizedState, a];\n}\nfunction vb(a, b) {\n I = Q();\n K = qb();\n b = void 0 === b ? null : b;\n if (null !== K) {\n var c = K.memoizedState;\n if (null !== c && null !== b) {\n var d = c[1];\n a: if (null === d) d = !1;else {\n for (var f = 0; f < d.length && f < b.length; f++) if (!lb(b[f], d[f])) {\n d = !1;\n break a;\n }\n d = !0;\n }\n if (d) return c[0];\n }\n }\n a = a();\n K.memoizedState = [a, b];\n return a;\n}\nfunction ub(a, b, c) {\n if (25 <= P) throw Error(l(301));\n if (a === I) if (M = !0, a = {\n action: c,\n next: null\n }, null === O && (O = new Map()), c = O.get(b), void 0 === c) O.set(b, a);else {\n for (b = c; null !== b.next;) b = b.next;\n b.next = a;\n }\n}\nfunction wb() {\n throw Error(l(394));\n}\nfunction R() {}\nvar xb = {\n readContext: function (a) {\n return a._currentValue2;\n },\n useContext: function (a) {\n Q();\n return a._currentValue2;\n },\n useMemo: vb,\n useReducer: tb,\n useRef: function (a) {\n I = Q();\n K = qb();\n var b = K.memoizedState;\n return null === b ? (a = {\n current: a\n }, K.memoizedState = a) : b;\n },\n useState: function (a) {\n return tb(sb, a);\n },\n useInsertionEffect: R,\n useLayoutEffect: function () {},\n useCallback: function (a, b) {\n return vb(function () {\n return a;\n }, b);\n },\n useImperativeHandle: R,\n useEffect: R,\n useDebugValue: R,\n useDeferredValue: function (a) {\n Q();\n return a;\n },\n useTransition: function () {\n Q();\n return [!1, wb];\n },\n useId: function () {\n var a = ob.treeContext;\n var b = a.overflow;\n a = a.id;\n a = (a & ~(1 << 32 - H(a) - 1)).toString(32) + b;\n var c = S;\n if (null === c) throw Error(l(404));\n b = N++;\n a = \":\" + c.idPrefix + \"R\" + a;\n 0 < b && (a += \"H\" + b.toString(32));\n return a + \":\";\n },\n useMutableSource: function (a, b) {\n Q();\n return b(a._source);\n },\n useSyncExternalStore: function (a, b, c) {\n if (void 0 === c) throw Error(l(407));\n return c();\n }\n },\n S = null,\n yb = aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentDispatcher;\nfunction zb(a) {\n console.error(a);\n return null;\n}\nfunction T() {}\nfunction Ab(a, b, c, d, f, e, g, h, k) {\n var m = [],\n n = new Set();\n b = {\n destination: null,\n responseState: b,\n progressiveChunkSize: void 0 === d ? 12800 : d,\n status: 0,\n fatalError: null,\n nextSegmentId: 0,\n allPendingTasks: 0,\n pendingRootTasks: 0,\n completedRootSegment: null,\n abortableTasks: n,\n pingedTasks: m,\n clientRenderedBoundaries: [],\n completedBoundaries: [],\n partialBoundaries: [],\n onError: void 0 === f ? zb : f,\n onAllReady: void 0 === e ? T : e,\n onShellReady: void 0 === g ? T : g,\n onShellError: void 0 === h ? T : h,\n onFatalError: void 0 === k ? T : k\n };\n c = U(b, 0, null, c, !1, !1);\n c.parentFlushed = !0;\n a = Bb(b, a, null, c, n, Ya, null, fb);\n m.push(a);\n return b;\n}\nfunction Bb(a, b, c, d, f, e, g, h) {\n a.allPendingTasks++;\n null === c ? a.pendingRootTasks++ : c.pendingTasks++;\n var k = {\n node: b,\n ping: function () {\n var b = a.pingedTasks;\n b.push(k);\n 1 === b.length && Cb(a);\n },\n blockedBoundary: c,\n blockedSegment: d,\n abortSet: f,\n legacyContext: e,\n context: g,\n treeContext: h\n };\n f.add(k);\n return k;\n}\nfunction U(a, b, c, d, f, e) {\n return {\n status: 0,\n id: -1,\n index: b,\n parentFlushed: !1,\n chunks: [],\n children: [],\n formatContext: d,\n boundary: c,\n lastPushedText: f,\n textEmbedded: e\n };\n}\nfunction V(a, b) {\n a = a.onError(b);\n if (null != a && \"string\" !== typeof a) throw Error('onError returned something with a type other than \"string\". onError should return a string and may return null or undefined but must not return anything else. It received something of type \"' + typeof a + '\" instead');\n return a;\n}\nfunction W(a, b) {\n var c = a.onShellError;\n c(b);\n c = a.onFatalError;\n c(b);\n null !== a.destination ? (a.status = 2, a.destination.destroy(b)) : (a.status = 1, a.fatalError = b);\n}\nfunction Db(a, b, c, d, f) {\n I = {};\n ob = b;\n N = 0;\n for (a = c(d, f); M;) M = !1, N = 0, P += 1, K = null, a = c(d, f);\n rb();\n return a;\n}\nfunction Eb(a, b, c, d) {\n var f = c.render(),\n e = d.childContextTypes;\n if (null !== e && void 0 !== e) {\n var g = b.legacyContext;\n if (\"function\" !== typeof c.getChildContext) d = g;else {\n c = c.getChildContext();\n for (var h in c) if (!(h in e)) throw Error(l(108, Xa(d) || \"Unknown\", h));\n d = B({}, g, c);\n }\n b.legacyContext = d;\n X(a, b, f);\n b.legacyContext = g;\n } else X(a, b, f);\n}\nfunction Fb(a, b) {\n if (a && a.defaultProps) {\n b = B({}, b);\n a = a.defaultProps;\n for (var c in a) void 0 === b[c] && (b[c] = a[c]);\n return b;\n }\n return b;\n}\nfunction Gb(a, b, c, d, f) {\n if (\"function\" === typeof c) {\n if (c.prototype && c.prototype.isReactComponent) {\n f = Za(c, b.legacyContext);\n var e = c.contextType;\n e = new c(d, \"object\" === typeof e && null !== e ? e._currentValue2 : f);\n eb(e, c, d, f);\n Eb(a, b, e, c);\n } else {\n e = Za(c, b.legacyContext);\n f = Db(a, b, c, d, e);\n var g = 0 !== N;\n if (\"object\" === typeof f && null !== f && \"function\" === typeof f.render && void 0 === f.$$typeof) eb(f, c, d, e), Eb(a, b, f, c);else if (g) {\n d = b.treeContext;\n b.treeContext = gb(d, 1, 0);\n try {\n X(a, b, f);\n } finally {\n b.treeContext = d;\n }\n } else X(a, b, f);\n }\n } else if (\"string\" === typeof c) {\n f = b.blockedSegment;\n e = ya(f.chunks, c, d, a.responseState, f.formatContext);\n f.lastPushedText = !1;\n g = f.formatContext;\n f.formatContext = ra(g, c, d);\n Hb(a, b, e);\n f.formatContext = g;\n switch (c) {\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"img\":\n case \"input\":\n case \"keygen\":\n case \"link\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n break;\n default:\n f.chunks.push(\"</\", c, \">\");\n }\n f.lastPushedText = !1;\n } else {\n switch (c) {\n case Ua:\n case Ta:\n case Ja:\n case Ka:\n case Ia:\n X(a, b, d.children);\n return;\n case Pa:\n X(a, b, d.children);\n return;\n case Sa:\n throw Error(l(343));\n case Oa:\n a: {\n c = b.blockedBoundary;\n f = b.blockedSegment;\n e = d.fallback;\n d = d.children;\n g = new Set();\n var h = {\n id: null,\n rootSegmentID: -1,\n parentFlushed: !1,\n pendingTasks: 0,\n forceClientRender: !1,\n completedSegments: [],\n byteSize: 0,\n fallbackAbortableTasks: g,\n errorDigest: null\n },\n k = U(a, f.chunks.length, h, f.formatContext, !1, !1);\n f.children.push(k);\n f.lastPushedText = !1;\n var m = U(a, 0, null, f.formatContext, !1, !1);\n m.parentFlushed = !0;\n b.blockedBoundary = h;\n b.blockedSegment = m;\n try {\n if (Hb(a, b, d), a.responseState.generateStaticMarkup || m.lastPushedText && m.textEmbedded && m.chunks.push(\"\\x3c!-- --\\x3e\"), m.status = 1, Y(h, m), 0 === h.pendingTasks) break a;\n } catch (n) {\n m.status = 4, h.forceClientRender = !0, h.errorDigest = V(a, n);\n } finally {\n b.blockedBoundary = c, b.blockedSegment = f;\n }\n b = Bb(a, e, c, k, g, b.legacyContext, b.context, b.treeContext);\n a.pingedTasks.push(b);\n }\n return;\n }\n if (\"object\" === typeof c && null !== c) switch (c.$$typeof) {\n case Na:\n d = Db(a, b, c.render, d, f);\n if (0 !== N) {\n c = b.treeContext;\n b.treeContext = gb(c, 1, 0);\n try {\n X(a, b, d);\n } finally {\n b.treeContext = c;\n }\n } else X(a, b, d);\n return;\n case Qa:\n c = c.type;\n d = Fb(c, d);\n Gb(a, b, c, d, f);\n return;\n case La:\n f = d.children;\n c = c._context;\n d = d.value;\n e = c._currentValue2;\n c._currentValue2 = d;\n g = E;\n E = d = {\n parent: g,\n depth: null === g ? 0 : g.depth + 1,\n context: c,\n parentValue: e,\n value: d\n };\n b.context = d;\n X(a, b, f);\n a = E;\n if (null === a) throw Error(l(403));\n d = a.parentValue;\n a.context._currentValue2 = d === Va ? a.context._defaultValue : d;\n a = E = a.parent;\n b.context = a;\n return;\n case Ma:\n d = d.children;\n d = d(c._currentValue2);\n X(a, b, d);\n return;\n case Ra:\n f = c._init;\n c = f(c._payload);\n d = Fb(c, d);\n Gb(a, b, c, d, void 0);\n return;\n }\n throw Error(l(130, null == c ? c : typeof c, \"\"));\n }\n}\nfunction X(a, b, c) {\n b.node = c;\n if (\"object\" === typeof c && null !== c) {\n switch (c.$$typeof) {\n case Ga:\n Gb(a, b, c.type, c.props, c.ref);\n return;\n case Ha:\n throw Error(l(257));\n case Ra:\n var d = c._init;\n c = d(c._payload);\n X(a, b, c);\n return;\n }\n if (qa(c)) {\n Ib(a, b, c);\n return;\n }\n null === c || \"object\" !== typeof c ? d = null : (d = Wa && c[Wa] || c[\"@@iterator\"], d = \"function\" === typeof d ? d : null);\n if (d && (d = d.call(c))) {\n c = d.next();\n if (!c.done) {\n var f = [];\n do f.push(c.value), c = d.next(); while (!c.done);\n Ib(a, b, f);\n }\n return;\n }\n a = Object.prototype.toString.call(c);\n throw Error(l(31, \"[object Object]\" === a ? \"object with keys {\" + Object.keys(c).join(\", \") + \"}\" : a));\n }\n \"string\" === typeof c ? (d = b.blockedSegment, d.lastPushedText = Fa(b.blockedSegment.chunks, c, a.responseState, d.lastPushedText)) : \"number\" === typeof c && (d = b.blockedSegment, d.lastPushedText = Fa(b.blockedSegment.chunks, \"\" + c, a.responseState, d.lastPushedText));\n}\nfunction Ib(a, b, c) {\n for (var d = c.length, f = 0; f < d; f++) {\n var e = b.treeContext;\n b.treeContext = gb(e, d, f);\n try {\n Hb(a, b, c[f]);\n } finally {\n b.treeContext = e;\n }\n }\n}\nfunction Hb(a, b, c) {\n var d = b.blockedSegment.formatContext,\n f = b.legacyContext,\n e = b.context;\n try {\n return X(a, b, c);\n } catch (k) {\n if (rb(), \"object\" === typeof k && null !== k && \"function\" === typeof k.then) {\n c = k;\n var g = b.blockedSegment,\n h = U(a, g.chunks.length, null, g.formatContext, g.lastPushedText, !0);\n g.children.push(h);\n g.lastPushedText = !1;\n a = Bb(a, b.node, b.blockedBoundary, h, b.abortSet, b.legacyContext, b.context, b.treeContext).ping;\n c.then(a, a);\n b.blockedSegment.formatContext = d;\n b.legacyContext = f;\n b.context = e;\n G(e);\n } else throw b.blockedSegment.formatContext = d, b.legacyContext = f, b.context = e, G(e), k;\n }\n}\nfunction Jb(a) {\n var b = a.blockedBoundary;\n a = a.blockedSegment;\n a.status = 3;\n Kb(this, b, a);\n}\nfunction Lb(a, b, c) {\n var d = a.blockedBoundary;\n a.blockedSegment.status = 3;\n null === d ? (b.allPendingTasks--, 2 !== b.status && (b.status = 2, null !== b.destination && b.destination.push(null))) : (d.pendingTasks--, d.forceClientRender || (d.forceClientRender = !0, a = void 0 === c ? Error(l(432)) : c, d.errorDigest = b.onError(a), d.parentFlushed && b.clientRenderedBoundaries.push(d)), d.fallbackAbortableTasks.forEach(function (a) {\n return Lb(a, b, c);\n }), d.fallbackAbortableTasks.clear(), b.allPendingTasks--, 0 === b.allPendingTasks && (d = b.onAllReady, d()));\n}\nfunction Y(a, b) {\n if (0 === b.chunks.length && 1 === b.children.length && null === b.children[0].boundary) {\n var c = b.children[0];\n c.id = b.id;\n c.parentFlushed = !0;\n 1 === c.status && Y(a, c);\n } else a.completedSegments.push(b);\n}\nfunction Kb(a, b, c) {\n if (null === b) {\n if (c.parentFlushed) {\n if (null !== a.completedRootSegment) throw Error(l(389));\n a.completedRootSegment = c;\n }\n a.pendingRootTasks--;\n 0 === a.pendingRootTasks && (a.onShellError = T, b = a.onShellReady, b());\n } else b.pendingTasks--, b.forceClientRender || (0 === b.pendingTasks ? (c.parentFlushed && 1 === c.status && Y(b, c), b.parentFlushed && a.completedBoundaries.push(b), b.fallbackAbortableTasks.forEach(Jb, a), b.fallbackAbortableTasks.clear()) : c.parentFlushed && 1 === c.status && (Y(b, c), 1 === b.completedSegments.length && b.parentFlushed && a.partialBoundaries.push(b)));\n a.allPendingTasks--;\n 0 === a.allPendingTasks && (a = a.onAllReady, a());\n}\nfunction Cb(a) {\n if (2 !== a.status) {\n var b = E,\n c = yb.current;\n yb.current = xb;\n var d = S;\n S = a.responseState;\n try {\n var f = a.pingedTasks,\n e;\n for (e = 0; e < f.length; e++) {\n var g = f[e];\n var h = a,\n k = g.blockedSegment;\n if (0 === k.status) {\n G(g.context);\n try {\n X(h, g, g.node), h.responseState.generateStaticMarkup || k.lastPushedText && k.textEmbedded && k.chunks.push(\"\\x3c!-- --\\x3e\"), g.abortSet.delete(g), k.status = 1, Kb(h, g.blockedBoundary, k);\n } catch (z) {\n if (rb(), \"object\" === typeof z && null !== z && \"function\" === typeof z.then) {\n var m = g.ping;\n z.then(m, m);\n } else {\n g.abortSet.delete(g);\n k.status = 4;\n var n = g.blockedBoundary,\n q = z,\n C = V(h, q);\n null === n ? W(h, q) : (n.pendingTasks--, n.forceClientRender || (n.forceClientRender = !0, n.errorDigest = C, n.parentFlushed && h.clientRenderedBoundaries.push(n)));\n h.allPendingTasks--;\n if (0 === h.allPendingTasks) {\n var D = h.onAllReady;\n D();\n }\n }\n } finally {}\n }\n }\n f.splice(0, e);\n null !== a.destination && Mb(a, a.destination);\n } catch (z) {\n V(a, z), W(a, z);\n } finally {\n S = d, yb.current = c, c === xb && G(b);\n }\n }\n}\nfunction Z(a, b, c) {\n c.parentFlushed = !0;\n switch (c.status) {\n case 0:\n var d = c.id = a.nextSegmentId++;\n c.lastPushedText = !1;\n c.textEmbedded = !1;\n a = a.responseState;\n b.push('<template id=\"');\n b.push(a.placeholderPrefix);\n a = d.toString(16);\n b.push(a);\n return b.push('\"></template>');\n case 1:\n c.status = 2;\n var f = !0;\n d = c.chunks;\n var e = 0;\n c = c.children;\n for (var g = 0; g < c.length; g++) {\n for (f = c[g]; e < f.index; e++) b.push(d[e]);\n f = Nb(a, b, f);\n }\n for (; e < d.length - 1; e++) b.push(d[e]);\n e < d.length && (f = b.push(d[e]));\n return f;\n default:\n throw Error(l(390));\n }\n}\nfunction Nb(a, b, c) {\n var d = c.boundary;\n if (null === d) return Z(a, b, c);\n d.parentFlushed = !0;\n if (d.forceClientRender) return a.responseState.generateStaticMarkup || (d = d.errorDigest, b.push(\"\\x3c!--$!--\\x3e\"), b.push(\"<template\"), d && (b.push(' data-dgst=\"'), d = v(d), b.push(d), b.push('\"')), b.push(\"></template>\")), Z(a, b, c), a = a.responseState.generateStaticMarkup ? !0 : b.push(\"\\x3c!--/$--\\x3e\"), a;\n if (0 < d.pendingTasks) {\n d.rootSegmentID = a.nextSegmentId++;\n 0 < d.completedSegments.length && a.partialBoundaries.push(d);\n var f = a.responseState;\n var e = f.nextSuspenseID++;\n f = f.boundaryPrefix + e.toString(16);\n d = d.id = f;\n za(b, a.responseState, d);\n Z(a, b, c);\n return b.push(\"\\x3c!--/$--\\x3e\");\n }\n if (d.byteSize > a.progressiveChunkSize) return d.rootSegmentID = a.nextSegmentId++, a.completedBoundaries.push(d), za(b, a.responseState, d.id), Z(a, b, c), b.push(\"\\x3c!--/$--\\x3e\");\n a.responseState.generateStaticMarkup || b.push(\"\\x3c!--$--\\x3e\");\n c = d.completedSegments;\n if (1 !== c.length) throw Error(l(391));\n Nb(a, b, c[0]);\n a = a.responseState.generateStaticMarkup ? !0 : b.push(\"\\x3c!--/$--\\x3e\");\n return a;\n}\nfunction Ob(a, b, c) {\n Aa(b, a.responseState, c.formatContext, c.id);\n Nb(a, b, c);\n return Ba(b, c.formatContext);\n}\nfunction Pb(a, b, c) {\n for (var d = c.completedSegments, f = 0; f < d.length; f++) Qb(a, b, c, d[f]);\n d.length = 0;\n a = a.responseState;\n d = c.id;\n c = c.rootSegmentID;\n b.push(a.startInlineScript);\n a.sentCompleteBoundaryFunction ? b.push('$RC(\"') : (a.sentCompleteBoundaryFunction = !0, b.push('function $RC(a,b){a=document.getElementById(a);b=document.getElementById(b);b.parentNode.removeChild(b);if(a){a=a.previousSibling;var f=a.parentNode,c=a.nextSibling,e=0;do{if(c&&8===c.nodeType){var d=c.data;if(\"/$\"===d)if(0===e)break;else e--;else\"$\"!==d&&\"$?\"!==d&&\"$!\"!==d||e++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;b.firstChild;)f.insertBefore(b.firstChild,c);a.data=\"$\";a._reactRetry&&a._reactRetry()}};$RC(\"'));\n if (null === d) throw Error(l(395));\n c = c.toString(16);\n b.push(d);\n b.push('\",\"');\n b.push(a.segmentPrefix);\n b.push(c);\n return b.push('\")\\x3c/script>');\n}\nfunction Qb(a, b, c, d) {\n if (2 === d.status) return !0;\n var f = d.id;\n if (-1 === f) {\n if (-1 === (d.id = c.rootSegmentID)) throw Error(l(392));\n return Ob(a, b, d);\n }\n Ob(a, b, d);\n a = a.responseState;\n b.push(a.startInlineScript);\n a.sentCompleteSegmentFunction ? b.push('$RS(\"') : (a.sentCompleteSegmentFunction = !0, b.push('function $RS(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS(\"'));\n b.push(a.segmentPrefix);\n f = f.toString(16);\n b.push(f);\n b.push('\",\"');\n b.push(a.placeholderPrefix);\n b.push(f);\n return b.push('\")\\x3c/script>');\n}\nfunction Mb(a, b) {\n try {\n var c = a.completedRootSegment;\n if (null !== c && 0 === a.pendingRootTasks) {\n Nb(a, b, c);\n a.completedRootSegment = null;\n var d = a.responseState.bootstrapChunks;\n for (c = 0; c < d.length - 1; c++) b.push(d[c]);\n c < d.length && b.push(d[c]);\n }\n var f = a.clientRenderedBoundaries,\n e;\n for (e = 0; e < f.length; e++) {\n var g = f[e];\n d = b;\n var h = a.responseState,\n k = g.id,\n m = g.errorDigest,\n n = g.errorMessage,\n q = g.errorComponentStack;\n d.push(h.startInlineScript);\n h.sentClientRenderFunction ? d.push('$RX(\"') : (h.sentClientRenderFunction = !0, d.push('function $RX(b,c,d,e){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data=\"$!\",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),b._reactRetry&&b._reactRetry())};$RX(\"'));\n if (null === k) throw Error(l(395));\n d.push(k);\n d.push('\"');\n if (m || n || q) {\n d.push(\",\");\n var C = Da(m || \"\");\n d.push(C);\n }\n if (n || q) {\n d.push(\",\");\n var D = Da(n || \"\");\n d.push(D);\n }\n if (q) {\n d.push(\",\");\n var z = Da(q);\n d.push(z);\n }\n if (!d.push(\")\\x3c/script>\")) {\n a.destination = null;\n e++;\n f.splice(0, e);\n return;\n }\n }\n f.splice(0, e);\n var ba = a.completedBoundaries;\n for (e = 0; e < ba.length; e++) if (!Pb(a, b, ba[e])) {\n a.destination = null;\n e++;\n ba.splice(0, e);\n return;\n }\n ba.splice(0, e);\n var ca = a.partialBoundaries;\n for (e = 0; e < ca.length; e++) {\n var mb = ca[e];\n a: {\n f = a;\n g = b;\n var da = mb.completedSegments;\n for (h = 0; h < da.length; h++) if (!Qb(f, g, mb, da[h])) {\n h++;\n da.splice(0, h);\n var nb = !1;\n break a;\n }\n da.splice(0, h);\n nb = !0;\n }\n if (!nb) {\n a.destination = null;\n e++;\n ca.splice(0, e);\n return;\n }\n }\n ca.splice(0, e);\n var ea = a.completedBoundaries;\n for (e = 0; e < ea.length; e++) if (!Pb(a, b, ea[e])) {\n a.destination = null;\n e++;\n ea.splice(0, e);\n return;\n }\n ea.splice(0, e);\n } finally {\n 0 === a.allPendingTasks && 0 === a.pingedTasks.length && 0 === a.clientRenderedBoundaries.length && 0 === a.completedBoundaries.length && b.push(null);\n }\n}\nfunction Rb(a, b) {\n try {\n var c = a.abortableTasks;\n c.forEach(function (c) {\n return Lb(c, a, b);\n });\n c.clear();\n null !== a.destination && Mb(a, a.destination);\n } catch (d) {\n V(a, d), W(a, d);\n }\n}\nfunction Sb() {}\nfunction Tb(a, b, c, d) {\n var f = !1,\n e = null,\n g = \"\",\n h = {\n push: function (a) {\n null !== a && (g += a);\n return !0;\n },\n destroy: function (a) {\n f = !0;\n e = a;\n }\n },\n k = !1;\n a = Ab(a, Ea(c, b ? b.identifierPrefix : void 0), {\n insertionMode: 1,\n selectedValue: null\n }, Infinity, Sb, void 0, function () {\n k = !0;\n }, void 0, void 0);\n Cb(a);\n Rb(a, d);\n if (1 === a.status) a.status = 2, h.destroy(a.fatalError);else if (2 !== a.status && null === a.destination) {\n a.destination = h;\n try {\n Mb(a, h);\n } catch (m) {\n V(a, m), W(a, m);\n }\n }\n if (f) throw e;\n if (!k) throw Error(l(426));\n return g;\n}\nexports.renderToNodeStream = function () {\n throw Error(l(207));\n};\nexports.renderToStaticMarkup = function (a, b) {\n return Tb(a, b, !0, 'The server used \"renderToStaticMarkup\" which does not support Suspense. If you intended to have the server wait for the suspended component please switch to \"renderToReadableStream\" which supports Suspense on the server');\n};\nexports.renderToStaticNodeStream = function () {\n throw Error(l(208));\n};\nexports.renderToString = function (a, b) {\n return Tb(a, b, !1, 'The server used \"renderToString\" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to \"renderToReadableStream\" which supports Suspense on the server');\n};\nexports.version = \"18.3.1\";","/**\n * @license React\n * react-dom-server.browser.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar aa = require(\"react\");\nfunction k(a) {\n for (var b = \"https://reactjs.org/docs/error-decoder.html?invariant=\" + a, c = 1; c < arguments.length; c++) b += \"&args[]=\" + encodeURIComponent(arguments[c]);\n return \"Minified React error #\" + a + \"; visit \" + b + \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";\n}\nvar l = null,\n n = 0;\nfunction p(a, b) {\n if (0 !== b.length) if (512 < b.length) 0 < n && (a.enqueue(new Uint8Array(l.buffer, 0, n)), l = new Uint8Array(512), n = 0), a.enqueue(b);else {\n var c = l.length - n;\n c < b.length && (0 === c ? a.enqueue(l) : (l.set(b.subarray(0, c), n), a.enqueue(l), b = b.subarray(c)), l = new Uint8Array(512), n = 0);\n l.set(b, n);\n n += b.length;\n }\n}\nfunction t(a, b) {\n p(a, b);\n return !0;\n}\nfunction ba(a) {\n l && 0 < n && (a.enqueue(new Uint8Array(l.buffer, 0, n)), l = null, n = 0);\n}\nvar ca = new TextEncoder();\nfunction u(a) {\n return ca.encode(a);\n}\nfunction w(a) {\n return ca.encode(a);\n}\nfunction da(a, b) {\n \"function\" === typeof a.error ? a.error(b) : a.close();\n}\nvar x = Object.prototype.hasOwnProperty,\n ea = /^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,\n fa = {},\n ha = {};\nfunction ia(a) {\n if (x.call(ha, a)) return !0;\n if (x.call(fa, a)) return !1;\n if (ea.test(a)) return ha[a] = !0;\n fa[a] = !0;\n return !1;\n}\nfunction y(a, b, c, d, f, e, g) {\n this.acceptsBooleans = 2 === b || 3 === b || 4 === b;\n this.attributeName = d;\n this.attributeNamespace = f;\n this.mustUseProperty = c;\n this.propertyName = a;\n this.type = b;\n this.sanitizeURL = e;\n this.removeEmptyString = g;\n}\nvar z = {};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function (a) {\n z[a] = new y(a, 0, !1, a, null, !1, !1);\n});\n[[\"acceptCharset\", \"accept-charset\"], [\"className\", \"class\"], [\"htmlFor\", \"for\"], [\"httpEquiv\", \"http-equiv\"]].forEach(function (a) {\n var b = a[0];\n z[b] = new y(b, 1, !1, a[1], null, !1, !1);\n});\n[\"contentEditable\", \"draggable\", \"spellCheck\", \"value\"].forEach(function (a) {\n z[a] = new y(a, 2, !1, a.toLowerCase(), null, !1, !1);\n});\n[\"autoReverse\", \"externalResourcesRequired\", \"focusable\", \"preserveAlpha\"].forEach(function (a) {\n z[a] = new y(a, 2, !1, a, null, !1, !1);\n});\n\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function (a) {\n z[a] = new y(a, 3, !1, a.toLowerCase(), null, !1, !1);\n});\n[\"checked\", \"multiple\", \"muted\", \"selected\"].forEach(function (a) {\n z[a] = new y(a, 3, !0, a, null, !1, !1);\n});\n[\"capture\", \"download\"].forEach(function (a) {\n z[a] = new y(a, 4, !1, a, null, !1, !1);\n});\n[\"cols\", \"rows\", \"size\", \"span\"].forEach(function (a) {\n z[a] = new y(a, 6, !1, a, null, !1, !1);\n});\n[\"rowSpan\", \"start\"].forEach(function (a) {\n z[a] = new y(a, 5, !1, a.toLowerCase(), null, !1, !1);\n});\nvar ja = /[\\-:]([a-z])/g;\nfunction ka(a) {\n return a[1].toUpperCase();\n}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function (a) {\n var b = a.replace(ja, ka);\n z[b] = new y(b, 1, !1, a, null, !1, !1);\n});\n\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function (a) {\n var b = a.replace(ja, ka);\n z[b] = new y(b, 1, !1, a, \"http://www.w3.org/1999/xlink\", !1, !1);\n});\n[\"xml:base\", \"xml:lang\", \"xml:space\"].forEach(function (a) {\n var b = a.replace(ja, ka);\n z[b] = new y(b, 1, !1, a, \"http://www.w3.org/XML/1998/namespace\", !1, !1);\n});\n[\"tabIndex\", \"crossOrigin\"].forEach(function (a) {\n z[a] = new y(a, 1, !1, a.toLowerCase(), null, !1, !1);\n});\nz.xlinkHref = new y(\"xlinkHref\", 1, !1, \"xlink:href\", \"http://www.w3.org/1999/xlink\", !0, !1);\n[\"src\", \"href\", \"action\", \"formAction\"].forEach(function (a) {\n z[a] = new y(a, 1, !1, a.toLowerCase(), null, !0, !0);\n});\nvar B = {\n animationIterationCount: !0,\n aspectRatio: !0,\n borderImageOutset: !0,\n borderImageSlice: !0,\n borderImageWidth: !0,\n boxFlex: !0,\n boxFlexGroup: !0,\n boxOrdinalGroup: !0,\n columnCount: !0,\n columns: !0,\n flex: !0,\n flexGrow: !0,\n flexPositive: !0,\n flexShrink: !0,\n flexNegative: !0,\n flexOrder: !0,\n gridArea: !0,\n gridRow: !0,\n gridRowEnd: !0,\n gridRowSpan: !0,\n gridRowStart: !0,\n gridColumn: !0,\n gridColumnEnd: !0,\n gridColumnSpan: !0,\n gridColumnStart: !0,\n fontWeight: !0,\n lineClamp: !0,\n lineHeight: !0,\n opacity: !0,\n order: !0,\n orphans: !0,\n tabSize: !0,\n widows: !0,\n zIndex: !0,\n zoom: !0,\n fillOpacity: !0,\n floodOpacity: !0,\n stopOpacity: !0,\n strokeDasharray: !0,\n strokeDashoffset: !0,\n strokeMiterlimit: !0,\n strokeOpacity: !0,\n strokeWidth: !0\n },\n la = [\"Webkit\", \"ms\", \"Moz\", \"O\"];\nObject.keys(B).forEach(function (a) {\n la.forEach(function (b) {\n b = b + a.charAt(0).toUpperCase() + a.substring(1);\n B[b] = B[a];\n });\n});\nvar oa = /[\"'&<>]/;\nfunction C(a) {\n if (\"boolean\" === typeof a || \"number\" === typeof a) return \"\" + a;\n a = \"\" + a;\n var b = oa.exec(a);\n if (b) {\n var c = \"\",\n d,\n f = 0;\n for (d = b.index; d < a.length; d++) {\n switch (a.charCodeAt(d)) {\n case 34:\n b = \""\";\n break;\n case 38:\n b = \"&\";\n break;\n case 39:\n b = \"'\";\n break;\n case 60:\n b = \"<\";\n break;\n case 62:\n b = \">\";\n break;\n default:\n continue;\n }\n f !== d && (c += a.substring(f, d));\n f = d + 1;\n c += b;\n }\n a = f !== d ? c + a.substring(f, d) : c;\n }\n return a;\n}\nvar pa = /([A-Z])/g,\n qa = /^ms-/,\n ra = Array.isArray,\n sa = w(\"<script>\"),\n ta = w(\"\\x3c/script>\"),\n ua = w('<script src=\"'),\n va = w('<script type=\"module\" src=\"'),\n wa = w('\" async=\"\">\\x3c/script>'),\n xa = /(<\\/|<)(s)(cript)/gi;\nfunction ya(a, b, c, d) {\n return \"\" + b + (\"s\" === c ? \"\\\\u0073\" : \"\\\\u0053\") + d;\n}\nfunction za(a, b, c, d, f) {\n a = void 0 === a ? \"\" : a;\n b = void 0 === b ? sa : w('<script nonce=\"' + C(b) + '\">');\n var e = [];\n void 0 !== c && e.push(b, u((\"\" + c).replace(xa, ya)), ta);\n if (void 0 !== d) for (c = 0; c < d.length; c++) e.push(ua, u(C(d[c])), wa);\n if (void 0 !== f) for (d = 0; d < f.length; d++) e.push(va, u(C(f[d])), wa);\n return {\n bootstrapChunks: e,\n startInlineScript: b,\n placeholderPrefix: w(a + \"P:\"),\n segmentPrefix: w(a + \"S:\"),\n boundaryPrefix: a + \"B:\",\n idPrefix: a,\n nextSuspenseID: 0,\n sentCompleteSegmentFunction: !1,\n sentCompleteBoundaryFunction: !1,\n sentClientRenderFunction: !1\n };\n}\nfunction D(a, b) {\n return {\n insertionMode: a,\n selectedValue: b\n };\n}\nfunction Aa(a) {\n return D(\"http://www.w3.org/2000/svg\" === a ? 2 : \"http://www.w3.org/1998/Math/MathML\" === a ? 3 : 0, null);\n}\nfunction Ba(a, b, c) {\n switch (b) {\n case \"select\":\n return D(1, null != c.value ? c.value : c.defaultValue);\n case \"svg\":\n return D(2, null);\n case \"math\":\n return D(3, null);\n case \"foreignObject\":\n return D(1, null);\n case \"table\":\n return D(4, null);\n case \"thead\":\n case \"tbody\":\n case \"tfoot\":\n return D(5, null);\n case \"colgroup\":\n return D(7, null);\n case \"tr\":\n return D(6, null);\n }\n return 4 <= a.insertionMode || 0 === a.insertionMode ? D(1, null) : a;\n}\nvar Ca = w(\"\\x3c!-- --\\x3e\");\nfunction Da(a, b, c, d) {\n if (\"\" === b) return d;\n d && a.push(Ca);\n a.push(u(C(b)));\n return !0;\n}\nvar Ea = new Map(),\n Fa = w(' style=\"'),\n Ga = w(\":\"),\n Ha = w(\";\");\nfunction Ia(a, b, c) {\n if (\"object\" !== typeof c) throw Error(k(62));\n b = !0;\n for (var d in c) if (x.call(c, d)) {\n var f = c[d];\n if (null != f && \"boolean\" !== typeof f && \"\" !== f) {\n if (0 === d.indexOf(\"--\")) {\n var e = u(C(d));\n f = u(C((\"\" + f).trim()));\n } else {\n e = d;\n var g = Ea.get(e);\n void 0 !== g ? e = g : (g = w(C(e.replace(pa, \"-$1\").toLowerCase().replace(qa, \"-ms-\"))), Ea.set(e, g), e = g);\n f = \"number\" === typeof f ? 0 === f || x.call(B, d) ? u(\"\" + f) : u(f + \"px\") : u(C((\"\" + f).trim()));\n }\n b ? (b = !1, a.push(Fa, e, Ga, f)) : a.push(Ha, e, Ga, f);\n }\n }\n b || a.push(E);\n}\nvar H = w(\" \"),\n I = w('=\"'),\n E = w('\"'),\n Ja = w('=\"\"');\nfunction J(a, b, c, d) {\n switch (c) {\n case \"style\":\n Ia(a, b, d);\n return;\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n return;\n }\n if (!(2 < c.length) || \"o\" !== c[0] && \"O\" !== c[0] || \"n\" !== c[1] && \"N\" !== c[1]) if (b = z.hasOwnProperty(c) ? z[c] : null, null !== b) {\n switch (typeof d) {\n case \"function\":\n case \"symbol\":\n return;\n case \"boolean\":\n if (!b.acceptsBooleans) return;\n }\n c = u(b.attributeName);\n switch (b.type) {\n case 3:\n d && a.push(H, c, Ja);\n break;\n case 4:\n !0 === d ? a.push(H, c, Ja) : !1 !== d && a.push(H, c, I, u(C(d)), E);\n break;\n case 5:\n isNaN(d) || a.push(H, c, I, u(C(d)), E);\n break;\n case 6:\n !isNaN(d) && 1 <= d && a.push(H, c, I, u(C(d)), E);\n break;\n default:\n b.sanitizeURL && (d = \"\" + d), a.push(H, c, I, u(C(d)), E);\n }\n } else if (ia(c)) {\n switch (typeof d) {\n case \"function\":\n case \"symbol\":\n return;\n case \"boolean\":\n if (b = c.toLowerCase().slice(0, 5), \"data-\" !== b && \"aria-\" !== b) return;\n }\n a.push(H, u(c), I, u(C(d)), E);\n }\n}\nvar K = w(\">\"),\n Ka = w(\"/>\");\nfunction L(a, b, c) {\n if (null != b) {\n if (null != c) throw Error(k(60));\n if (\"object\" !== typeof b || !(\"__html\" in b)) throw Error(k(61));\n b = b.__html;\n null !== b && void 0 !== b && a.push(u(\"\" + b));\n }\n}\nfunction La(a) {\n var b = \"\";\n aa.Children.forEach(a, function (a) {\n null != a && (b += a);\n });\n return b;\n}\nvar Ma = w(' selected=\"\"');\nfunction Na(a, b, c, d) {\n a.push(M(c));\n var f = c = null,\n e;\n for (e in b) if (x.call(b, e)) {\n var g = b[e];\n if (null != g) switch (e) {\n case \"children\":\n c = g;\n break;\n case \"dangerouslySetInnerHTML\":\n f = g;\n break;\n default:\n J(a, d, e, g);\n }\n }\n a.push(K);\n L(a, f, c);\n return \"string\" === typeof c ? (a.push(u(C(c))), null) : c;\n}\nvar Oa = w(\"\\n\"),\n Pa = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,\n Qa = new Map();\nfunction M(a) {\n var b = Qa.get(a);\n if (void 0 === b) {\n if (!Pa.test(a)) throw Error(k(65, a));\n b = w(\"<\" + a);\n Qa.set(a, b);\n }\n return b;\n}\nvar Ra = w(\"<!DOCTYPE html>\");\nfunction Sa(a, b, c, d, f) {\n switch (b) {\n case \"select\":\n a.push(M(\"select\"));\n var e = null,\n g = null;\n for (r in c) if (x.call(c, r)) {\n var h = c[r];\n if (null != h) switch (r) {\n case \"children\":\n e = h;\n break;\n case \"dangerouslySetInnerHTML\":\n g = h;\n break;\n case \"defaultValue\":\n case \"value\":\n break;\n default:\n J(a, d, r, h);\n }\n }\n a.push(K);\n L(a, g, e);\n return e;\n case \"option\":\n g = f.selectedValue;\n a.push(M(\"option\"));\n var m = h = null,\n q = null;\n var r = null;\n for (e in c) if (x.call(c, e)) {\n var v = c[e];\n if (null != v) switch (e) {\n case \"children\":\n h = v;\n break;\n case \"selected\":\n q = v;\n break;\n case \"dangerouslySetInnerHTML\":\n r = v;\n break;\n case \"value\":\n m = v;\n default:\n J(a, d, e, v);\n }\n }\n if (null != g) {\n if (c = null !== m ? \"\" + m : La(h), ra(g)) for (d = 0; d < g.length; d++) {\n if (\"\" + g[d] === c) {\n a.push(Ma);\n break;\n }\n } else \"\" + g === c && a.push(Ma);\n } else q && a.push(Ma);\n a.push(K);\n L(a, r, h);\n return h;\n case \"textarea\":\n a.push(M(\"textarea\"));\n r = g = e = null;\n for (h in c) if (x.call(c, h) && (m = c[h], null != m)) switch (h) {\n case \"children\":\n r = m;\n break;\n case \"value\":\n e = m;\n break;\n case \"defaultValue\":\n g = m;\n break;\n case \"dangerouslySetInnerHTML\":\n throw Error(k(91));\n default:\n J(a, d, h, m);\n }\n null === e && null !== g && (e = g);\n a.push(K);\n if (null != r) {\n if (null != e) throw Error(k(92));\n if (ra(r) && 1 < r.length) throw Error(k(93));\n e = \"\" + r;\n }\n \"string\" === typeof e && \"\\n\" === e[0] && a.push(Oa);\n null !== e && a.push(u(C(\"\" + e)));\n return null;\n case \"input\":\n a.push(M(\"input\"));\n m = r = h = e = null;\n for (g in c) if (x.call(c, g) && (q = c[g], null != q)) switch (g) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(k(399, \"input\"));\n case \"defaultChecked\":\n m = q;\n break;\n case \"defaultValue\":\n h = q;\n break;\n case \"checked\":\n r = q;\n break;\n case \"value\":\n e = q;\n break;\n default:\n J(a, d, g, q);\n }\n null !== r ? J(a, d, \"checked\", r) : null !== m && J(a, d, \"checked\", m);\n null !== e ? J(a, d, \"value\", e) : null !== h && J(a, d, \"value\", h);\n a.push(Ka);\n return null;\n case \"menuitem\":\n a.push(M(\"menuitem\"));\n for (var A in c) if (x.call(c, A) && (e = c[A], null != e)) switch (A) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(k(400));\n default:\n J(a, d, A, e);\n }\n a.push(K);\n return null;\n case \"title\":\n a.push(M(\"title\"));\n e = null;\n for (v in c) if (x.call(c, v) && (g = c[v], null != g)) switch (v) {\n case \"children\":\n e = g;\n break;\n case \"dangerouslySetInnerHTML\":\n throw Error(k(434));\n default:\n J(a, d, v, g);\n }\n a.push(K);\n return e;\n case \"listing\":\n case \"pre\":\n a.push(M(b));\n g = e = null;\n for (m in c) if (x.call(c, m) && (h = c[m], null != h)) switch (m) {\n case \"children\":\n e = h;\n break;\n case \"dangerouslySetInnerHTML\":\n g = h;\n break;\n default:\n J(a, d, m, h);\n }\n a.push(K);\n if (null != g) {\n if (null != e) throw Error(k(60));\n if (\"object\" !== typeof g || !(\"__html\" in g)) throw Error(k(61));\n c = g.__html;\n null !== c && void 0 !== c && (\"string\" === typeof c && 0 < c.length && \"\\n\" === c[0] ? a.push(Oa, u(c)) : a.push(u(\"\" + c)));\n }\n \"string\" === typeof e && \"\\n\" === e[0] && a.push(Oa);\n return e;\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"img\":\n case \"keygen\":\n case \"link\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n a.push(M(b));\n for (var F in c) if (x.call(c, F) && (e = c[F], null != e)) switch (F) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(k(399, b));\n default:\n J(a, d, F, e);\n }\n a.push(Ka);\n return null;\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return Na(a, c, b, d);\n case \"html\":\n return 0 === f.insertionMode && a.push(Ra), Na(a, c, b, d);\n default:\n if (-1 === b.indexOf(\"-\") && \"string\" !== typeof c.is) return Na(a, c, b, d);\n a.push(M(b));\n g = e = null;\n for (q in c) if (x.call(c, q) && (h = c[q], null != h)) switch (q) {\n case \"children\":\n e = h;\n break;\n case \"dangerouslySetInnerHTML\":\n g = h;\n break;\n case \"style\":\n Ia(a, d, h);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n break;\n default:\n ia(q) && \"function\" !== typeof h && \"symbol\" !== typeof h && a.push(H, u(q), I, u(C(h)), E);\n }\n a.push(K);\n L(a, g, e);\n return e;\n }\n}\nvar Ta = w(\"</\"),\n Ua = w(\">\"),\n Va = w('<template id=\"'),\n Wa = w('\"></template>'),\n Xa = w(\"\\x3c!--$--\\x3e\"),\n Ya = w('\\x3c!--$?--\\x3e<template id=\"'),\n Za = w('\"></template>'),\n $a = w(\"\\x3c!--$!--\\x3e\"),\n ab = w(\"\\x3c!--/$--\\x3e\"),\n bb = w(\"<template\"),\n cb = w('\"'),\n db = w(' data-dgst=\"');\nw(' data-msg=\"');\nw(' data-stck=\"');\nvar eb = w(\"></template>\");\nfunction fb(a, b, c) {\n p(a, Ya);\n if (null === c) throw Error(k(395));\n p(a, c);\n return t(a, Za);\n}\nvar gb = w('<div hidden id=\"'),\n hb = w('\">'),\n ib = w(\"</div>\"),\n jb = w('<svg aria-hidden=\"true\" style=\"display:none\" id=\"'),\n kb = w('\">'),\n lb = w(\"</svg>\"),\n mb = w('<math aria-hidden=\"true\" style=\"display:none\" id=\"'),\n nb = w('\">'),\n ob = w(\"</math>\"),\n pb = w('<table hidden id=\"'),\n qb = w('\">'),\n rb = w(\"</table>\"),\n sb = w('<table hidden><tbody id=\"'),\n tb = w('\">'),\n ub = w(\"</tbody></table>\"),\n vb = w('<table hidden><tr id=\"'),\n wb = w('\">'),\n xb = w(\"</tr></table>\"),\n yb = w('<table hidden><colgroup id=\"'),\n zb = w('\">'),\n Ab = w(\"</colgroup></table>\");\nfunction Bb(a, b, c, d) {\n switch (c.insertionMode) {\n case 0:\n case 1:\n return p(a, gb), p(a, b.segmentPrefix), p(a, u(d.toString(16))), t(a, hb);\n case 2:\n return p(a, jb), p(a, b.segmentPrefix), p(a, u(d.toString(16))), t(a, kb);\n case 3:\n return p(a, mb), p(a, b.segmentPrefix), p(a, u(d.toString(16))), t(a, nb);\n case 4:\n return p(a, pb), p(a, b.segmentPrefix), p(a, u(d.toString(16))), t(a, qb);\n case 5:\n return p(a, sb), p(a, b.segmentPrefix), p(a, u(d.toString(16))), t(a, tb);\n case 6:\n return p(a, vb), p(a, b.segmentPrefix), p(a, u(d.toString(16))), t(a, wb);\n case 7:\n return p(a, yb), p(a, b.segmentPrefix), p(a, u(d.toString(16))), t(a, zb);\n default:\n throw Error(k(397));\n }\n}\nfunction Cb(a, b) {\n switch (b.insertionMode) {\n case 0:\n case 1:\n return t(a, ib);\n case 2:\n return t(a, lb);\n case 3:\n return t(a, ob);\n case 4:\n return t(a, rb);\n case 5:\n return t(a, ub);\n case 6:\n return t(a, xb);\n case 7:\n return t(a, Ab);\n default:\n throw Error(k(397));\n }\n}\nvar Db = w('function $RS(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS(\"'),\n Eb = w('$RS(\"'),\n Gb = w('\",\"'),\n Hb = w('\")\\x3c/script>'),\n Ib = w('function $RC(a,b){a=document.getElementById(a);b=document.getElementById(b);b.parentNode.removeChild(b);if(a){a=a.previousSibling;var f=a.parentNode,c=a.nextSibling,e=0;do{if(c&&8===c.nodeType){var d=c.data;if(\"/$\"===d)if(0===e)break;else e--;else\"$\"!==d&&\"$?\"!==d&&\"$!\"!==d||e++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;b.firstChild;)f.insertBefore(b.firstChild,c);a.data=\"$\";a._reactRetry&&a._reactRetry()}};$RC(\"'),\n Jb = w('$RC(\"'),\n Kb = w('\",\"'),\n Lb = w('\")\\x3c/script>'),\n Mb = w('function $RX(b,c,d,e){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data=\"$!\",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),b._reactRetry&&b._reactRetry())};$RX(\"'),\n Nb = w('$RX(\"'),\n Ob = w('\"'),\n Pb = w(\")\\x3c/script>\"),\n Qb = w(\",\"),\n Rb = /[<\\u2028\\u2029]/g;\nfunction Sb(a) {\n return JSON.stringify(a).replace(Rb, function (a) {\n switch (a) {\n case \"<\":\n return \"\\\\u003c\";\n case \"\\u2028\":\n return \"\\\\u2028\";\n case \"\\u2029\":\n return \"\\\\u2029\";\n default:\n throw Error(\"escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\");\n }\n });\n}\nvar N = Object.assign,\n Tb = Symbol.for(\"react.element\"),\n Ub = Symbol.for(\"react.portal\"),\n Vb = Symbol.for(\"react.fragment\"),\n Wb = Symbol.for(\"react.strict_mode\"),\n Xb = Symbol.for(\"react.profiler\"),\n Yb = Symbol.for(\"react.provider\"),\n Zb = Symbol.for(\"react.context\"),\n $b = Symbol.for(\"react.forward_ref\"),\n ac = Symbol.for(\"react.suspense\"),\n bc = Symbol.for(\"react.suspense_list\"),\n cc = Symbol.for(\"react.memo\"),\n dc = Symbol.for(\"react.lazy\"),\n ec = Symbol.for(\"react.scope\"),\n fc = Symbol.for(\"react.debug_trace_mode\"),\n gc = Symbol.for(\"react.legacy_hidden\"),\n hc = Symbol.for(\"react.default_value\"),\n ic = Symbol.iterator;\nfunction jc(a) {\n if (null == a) return null;\n if (\"function\" === typeof a) return a.displayName || a.name || null;\n if (\"string\" === typeof a) return a;\n switch (a) {\n case Vb:\n return \"Fragment\";\n case Ub:\n return \"Portal\";\n case Xb:\n return \"Profiler\";\n case Wb:\n return \"StrictMode\";\n case ac:\n return \"Suspense\";\n case bc:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof a) switch (a.$$typeof) {\n case Zb:\n return (a.displayName || \"Context\") + \".Consumer\";\n case Yb:\n return (a._context.displayName || \"Context\") + \".Provider\";\n case $b:\n var b = a.render;\n a = a.displayName;\n a || (a = b.displayName || b.name || \"\", a = \"\" !== a ? \"ForwardRef(\" + a + \")\" : \"ForwardRef\");\n return a;\n case cc:\n return b = a.displayName || null, null !== b ? b : jc(a.type) || \"Memo\";\n case dc:\n b = a._payload;\n a = a._init;\n try {\n return jc(a(b));\n } catch (c) {}\n }\n return null;\n}\nvar kc = {};\nfunction lc(a, b) {\n a = a.contextTypes;\n if (!a) return kc;\n var c = {},\n d;\n for (d in a) c[d] = b[d];\n return c;\n}\nvar O = null;\nfunction P(a, b) {\n if (a !== b) {\n a.context._currentValue = a.parentValue;\n a = a.parent;\n var c = b.parent;\n if (null === a) {\n if (null !== c) throw Error(k(401));\n } else {\n if (null === c) throw Error(k(401));\n P(a, c);\n }\n b.context._currentValue = b.value;\n }\n}\nfunction mc(a) {\n a.context._currentValue = a.parentValue;\n a = a.parent;\n null !== a && mc(a);\n}\nfunction nc(a) {\n var b = a.parent;\n null !== b && nc(b);\n a.context._currentValue = a.value;\n}\nfunction oc(a, b) {\n a.context._currentValue = a.parentValue;\n a = a.parent;\n if (null === a) throw Error(k(402));\n a.depth === b.depth ? P(a, b) : oc(a, b);\n}\nfunction pc(a, b) {\n var c = b.parent;\n if (null === c) throw Error(k(402));\n a.depth === c.depth ? P(a, c) : pc(a, c);\n b.context._currentValue = b.value;\n}\nfunction Q(a) {\n var b = O;\n b !== a && (null === b ? nc(a) : null === a ? mc(b) : b.depth === a.depth ? P(b, a) : b.depth > a.depth ? oc(b, a) : pc(b, a), O = a);\n}\nvar qc = {\n isMounted: function () {\n return !1;\n },\n enqueueSetState: function (a, b) {\n a = a._reactInternals;\n null !== a.queue && a.queue.push(b);\n },\n enqueueReplaceState: function (a, b) {\n a = a._reactInternals;\n a.replace = !0;\n a.queue = [b];\n },\n enqueueForceUpdate: function () {}\n};\nfunction rc(a, b, c, d) {\n var f = void 0 !== a.state ? a.state : null;\n a.updater = qc;\n a.props = c;\n a.state = f;\n var e = {\n queue: [],\n replace: !1\n };\n a._reactInternals = e;\n var g = b.contextType;\n a.context = \"object\" === typeof g && null !== g ? g._currentValue : d;\n g = b.getDerivedStateFromProps;\n \"function\" === typeof g && (g = g(c, f), f = null === g || void 0 === g ? f : N({}, f, g), a.state = f);\n if (\"function\" !== typeof b.getDerivedStateFromProps && \"function\" !== typeof a.getSnapshotBeforeUpdate && (\"function\" === typeof a.UNSAFE_componentWillMount || \"function\" === typeof a.componentWillMount)) if (b = a.state, \"function\" === typeof a.componentWillMount && a.componentWillMount(), \"function\" === typeof a.UNSAFE_componentWillMount && a.UNSAFE_componentWillMount(), b !== a.state && qc.enqueueReplaceState(a, a.state, null), null !== e.queue && 0 < e.queue.length) {\n if (b = e.queue, g = e.replace, e.queue = null, e.replace = !1, g && 1 === b.length) a.state = b[0];else {\n e = g ? b[0] : a.state;\n f = !0;\n for (g = g ? 1 : 0; g < b.length; g++) {\n var h = b[g];\n h = \"function\" === typeof h ? h.call(a, e, c, d) : h;\n null != h && (f ? (f = !1, e = N({}, e, h)) : N(e, h));\n }\n a.state = e;\n }\n } else e.queue = null;\n}\nvar sc = {\n id: 1,\n overflow: \"\"\n};\nfunction tc(a, b, c) {\n var d = a.id;\n a = a.overflow;\n var f = 32 - uc(d) - 1;\n d &= ~(1 << f);\n c += 1;\n var e = 32 - uc(b) + f;\n if (30 < e) {\n var g = f - f % 5;\n e = (d & (1 << g) - 1).toString(32);\n d >>= g;\n f -= g;\n return {\n id: 1 << 32 - uc(b) + f | c << f | d,\n overflow: e + a\n };\n }\n return {\n id: 1 << e | c << f | d,\n overflow: a\n };\n}\nvar uc = Math.clz32 ? Math.clz32 : vc,\n wc = Math.log,\n xc = Math.LN2;\nfunction vc(a) {\n a >>>= 0;\n return 0 === a ? 32 : 31 - (wc(a) / xc | 0) | 0;\n}\nfunction yc(a, b) {\n return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;\n}\nvar zc = \"function\" === typeof Object.is ? Object.is : yc,\n R = null,\n Ac = null,\n Bc = null,\n S = null,\n T = !1,\n Cc = !1,\n U = 0,\n V = null,\n Dc = 0;\nfunction W() {\n if (null === R) throw Error(k(321));\n return R;\n}\nfunction Ec() {\n if (0 < Dc) throw Error(k(312));\n return {\n memoizedState: null,\n queue: null,\n next: null\n };\n}\nfunction Fc() {\n null === S ? null === Bc ? (T = !1, Bc = S = Ec()) : (T = !0, S = Bc) : null === S.next ? (T = !1, S = S.next = Ec()) : (T = !0, S = S.next);\n return S;\n}\nfunction Gc() {\n Ac = R = null;\n Cc = !1;\n Bc = null;\n Dc = 0;\n S = V = null;\n}\nfunction Hc(a, b) {\n return \"function\" === typeof b ? b(a) : b;\n}\nfunction Ic(a, b, c) {\n R = W();\n S = Fc();\n if (T) {\n var d = S.queue;\n b = d.dispatch;\n if (null !== V && (c = V.get(d), void 0 !== c)) {\n V.delete(d);\n d = S.memoizedState;\n do d = a(d, c.action), c = c.next; while (null !== c);\n S.memoizedState = d;\n return [d, b];\n }\n return [S.memoizedState, b];\n }\n a = a === Hc ? \"function\" === typeof b ? b() : b : void 0 !== c ? c(b) : b;\n S.memoizedState = a;\n a = S.queue = {\n last: null,\n dispatch: null\n };\n a = a.dispatch = Jc.bind(null, R, a);\n return [S.memoizedState, a];\n}\nfunction Kc(a, b) {\n R = W();\n S = Fc();\n b = void 0 === b ? null : b;\n if (null !== S) {\n var c = S.memoizedState;\n if (null !== c && null !== b) {\n var d = c[1];\n a: if (null === d) d = !1;else {\n for (var f = 0; f < d.length && f < b.length; f++) if (!zc(b[f], d[f])) {\n d = !1;\n break a;\n }\n d = !0;\n }\n if (d) return c[0];\n }\n }\n a = a();\n S.memoizedState = [a, b];\n return a;\n}\nfunction Jc(a, b, c) {\n if (25 <= Dc) throw Error(k(301));\n if (a === R) if (Cc = !0, a = {\n action: c,\n next: null\n }, null === V && (V = new Map()), c = V.get(b), void 0 === c) V.set(b, a);else {\n for (b = c; null !== b.next;) b = b.next;\n b.next = a;\n }\n}\nfunction Lc() {\n throw Error(k(394));\n}\nfunction Mc() {}\nvar Oc = {\n readContext: function (a) {\n return a._currentValue;\n },\n useContext: function (a) {\n W();\n return a._currentValue;\n },\n useMemo: Kc,\n useReducer: Ic,\n useRef: function (a) {\n R = W();\n S = Fc();\n var b = S.memoizedState;\n return null === b ? (a = {\n current: a\n }, S.memoizedState = a) : b;\n },\n useState: function (a) {\n return Ic(Hc, a);\n },\n useInsertionEffect: Mc,\n useLayoutEffect: function () {},\n useCallback: function (a, b) {\n return Kc(function () {\n return a;\n }, b);\n },\n useImperativeHandle: Mc,\n useEffect: Mc,\n useDebugValue: Mc,\n useDeferredValue: function (a) {\n W();\n return a;\n },\n useTransition: function () {\n W();\n return [!1, Lc];\n },\n useId: function () {\n var a = Ac.treeContext;\n var b = a.overflow;\n a = a.id;\n a = (a & ~(1 << 32 - uc(a) - 1)).toString(32) + b;\n var c = Nc;\n if (null === c) throw Error(k(404));\n b = U++;\n a = \":\" + c.idPrefix + \"R\" + a;\n 0 < b && (a += \"H\" + b.toString(32));\n return a + \":\";\n },\n useMutableSource: function (a, b) {\n W();\n return b(a._source);\n },\n useSyncExternalStore: function (a, b, c) {\n if (void 0 === c) throw Error(k(407));\n return c();\n }\n },\n Nc = null,\n Pc = aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentDispatcher;\nfunction Qc(a) {\n console.error(a);\n return null;\n}\nfunction X() {}\nfunction Rc(a, b, c, d, f, e, g, h, m) {\n var q = [],\n r = new Set();\n b = {\n destination: null,\n responseState: b,\n progressiveChunkSize: void 0 === d ? 12800 : d,\n status: 0,\n fatalError: null,\n nextSegmentId: 0,\n allPendingTasks: 0,\n pendingRootTasks: 0,\n completedRootSegment: null,\n abortableTasks: r,\n pingedTasks: q,\n clientRenderedBoundaries: [],\n completedBoundaries: [],\n partialBoundaries: [],\n onError: void 0 === f ? Qc : f,\n onAllReady: void 0 === e ? X : e,\n onShellReady: void 0 === g ? X : g,\n onShellError: void 0 === h ? X : h,\n onFatalError: void 0 === m ? X : m\n };\n c = Sc(b, 0, null, c, !1, !1);\n c.parentFlushed = !0;\n a = Tc(b, a, null, c, r, kc, null, sc);\n q.push(a);\n return b;\n}\nfunction Tc(a, b, c, d, f, e, g, h) {\n a.allPendingTasks++;\n null === c ? a.pendingRootTasks++ : c.pendingTasks++;\n var m = {\n node: b,\n ping: function () {\n var b = a.pingedTasks;\n b.push(m);\n 1 === b.length && Uc(a);\n },\n blockedBoundary: c,\n blockedSegment: d,\n abortSet: f,\n legacyContext: e,\n context: g,\n treeContext: h\n };\n f.add(m);\n return m;\n}\nfunction Sc(a, b, c, d, f, e) {\n return {\n status: 0,\n id: -1,\n index: b,\n parentFlushed: !1,\n chunks: [],\n children: [],\n formatContext: d,\n boundary: c,\n lastPushedText: f,\n textEmbedded: e\n };\n}\nfunction Y(a, b) {\n a = a.onError(b);\n if (null != a && \"string\" !== typeof a) throw Error('onError returned something with a type other than \"string\". onError should return a string and may return null or undefined but must not return anything else. It received something of type \"' + typeof a + '\" instead');\n return a;\n}\nfunction Vc(a, b) {\n var c = a.onShellError;\n c(b);\n c = a.onFatalError;\n c(b);\n null !== a.destination ? (a.status = 2, da(a.destination, b)) : (a.status = 1, a.fatalError = b);\n}\nfunction Wc(a, b, c, d, f) {\n R = {};\n Ac = b;\n U = 0;\n for (a = c(d, f); Cc;) Cc = !1, U = 0, Dc += 1, S = null, a = c(d, f);\n Gc();\n return a;\n}\nfunction Xc(a, b, c, d) {\n var f = c.render(),\n e = d.childContextTypes;\n if (null !== e && void 0 !== e) {\n var g = b.legacyContext;\n if (\"function\" !== typeof c.getChildContext) d = g;else {\n c = c.getChildContext();\n for (var h in c) if (!(h in e)) throw Error(k(108, jc(d) || \"Unknown\", h));\n d = N({}, g, c);\n }\n b.legacyContext = d;\n Z(a, b, f);\n b.legacyContext = g;\n } else Z(a, b, f);\n}\nfunction Yc(a, b) {\n if (a && a.defaultProps) {\n b = N({}, b);\n a = a.defaultProps;\n for (var c in a) void 0 === b[c] && (b[c] = a[c]);\n return b;\n }\n return b;\n}\nfunction Zc(a, b, c, d, f) {\n if (\"function\" === typeof c) {\n if (c.prototype && c.prototype.isReactComponent) {\n f = lc(c, b.legacyContext);\n var e = c.contextType;\n e = new c(d, \"object\" === typeof e && null !== e ? e._currentValue : f);\n rc(e, c, d, f);\n Xc(a, b, e, c);\n } else {\n e = lc(c, b.legacyContext);\n f = Wc(a, b, c, d, e);\n var g = 0 !== U;\n if (\"object\" === typeof f && null !== f && \"function\" === typeof f.render && void 0 === f.$$typeof) rc(f, c, d, e), Xc(a, b, f, c);else if (g) {\n d = b.treeContext;\n b.treeContext = tc(d, 1, 0);\n try {\n Z(a, b, f);\n } finally {\n b.treeContext = d;\n }\n } else Z(a, b, f);\n }\n } else if (\"string\" === typeof c) {\n f = b.blockedSegment;\n e = Sa(f.chunks, c, d, a.responseState, f.formatContext);\n f.lastPushedText = !1;\n g = f.formatContext;\n f.formatContext = Ba(g, c, d);\n $c(a, b, e);\n f.formatContext = g;\n switch (c) {\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"img\":\n case \"input\":\n case \"keygen\":\n case \"link\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n break;\n default:\n f.chunks.push(Ta, u(c), Ua);\n }\n f.lastPushedText = !1;\n } else {\n switch (c) {\n case gc:\n case fc:\n case Wb:\n case Xb:\n case Vb:\n Z(a, b, d.children);\n return;\n case bc:\n Z(a, b, d.children);\n return;\n case ec:\n throw Error(k(343));\n case ac:\n a: {\n c = b.blockedBoundary;\n f = b.blockedSegment;\n e = d.fallback;\n d = d.children;\n g = new Set();\n var h = {\n id: null,\n rootSegmentID: -1,\n parentFlushed: !1,\n pendingTasks: 0,\n forceClientRender: !1,\n completedSegments: [],\n byteSize: 0,\n fallbackAbortableTasks: g,\n errorDigest: null\n },\n m = Sc(a, f.chunks.length, h, f.formatContext, !1, !1);\n f.children.push(m);\n f.lastPushedText = !1;\n var q = Sc(a, 0, null, f.formatContext, !1, !1);\n q.parentFlushed = !0;\n b.blockedBoundary = h;\n b.blockedSegment = q;\n try {\n if ($c(a, b, d), q.lastPushedText && q.textEmbedded && q.chunks.push(Ca), q.status = 1, ad(h, q), 0 === h.pendingTasks) break a;\n } catch (r) {\n q.status = 4, h.forceClientRender = !0, h.errorDigest = Y(a, r);\n } finally {\n b.blockedBoundary = c, b.blockedSegment = f;\n }\n b = Tc(a, e, c, m, g, b.legacyContext, b.context, b.treeContext);\n a.pingedTasks.push(b);\n }\n return;\n }\n if (\"object\" === typeof c && null !== c) switch (c.$$typeof) {\n case $b:\n d = Wc(a, b, c.render, d, f);\n if (0 !== U) {\n c = b.treeContext;\n b.treeContext = tc(c, 1, 0);\n try {\n Z(a, b, d);\n } finally {\n b.treeContext = c;\n }\n } else Z(a, b, d);\n return;\n case cc:\n c = c.type;\n d = Yc(c, d);\n Zc(a, b, c, d, f);\n return;\n case Yb:\n f = d.children;\n c = c._context;\n d = d.value;\n e = c._currentValue;\n c._currentValue = d;\n g = O;\n O = d = {\n parent: g,\n depth: null === g ? 0 : g.depth + 1,\n context: c,\n parentValue: e,\n value: d\n };\n b.context = d;\n Z(a, b, f);\n a = O;\n if (null === a) throw Error(k(403));\n d = a.parentValue;\n a.context._currentValue = d === hc ? a.context._defaultValue : d;\n a = O = a.parent;\n b.context = a;\n return;\n case Zb:\n d = d.children;\n d = d(c._currentValue);\n Z(a, b, d);\n return;\n case dc:\n f = c._init;\n c = f(c._payload);\n d = Yc(c, d);\n Zc(a, b, c, d, void 0);\n return;\n }\n throw Error(k(130, null == c ? c : typeof c, \"\"));\n }\n}\nfunction Z(a, b, c) {\n b.node = c;\n if (\"object\" === typeof c && null !== c) {\n switch (c.$$typeof) {\n case Tb:\n Zc(a, b, c.type, c.props, c.ref);\n return;\n case Ub:\n throw Error(k(257));\n case dc:\n var d = c._init;\n c = d(c._payload);\n Z(a, b, c);\n return;\n }\n if (ra(c)) {\n bd(a, b, c);\n return;\n }\n null === c || \"object\" !== typeof c ? d = null : (d = ic && c[ic] || c[\"@@iterator\"], d = \"function\" === typeof d ? d : null);\n if (d && (d = d.call(c))) {\n c = d.next();\n if (!c.done) {\n var f = [];\n do f.push(c.value), c = d.next(); while (!c.done);\n bd(a, b, f);\n }\n return;\n }\n a = Object.prototype.toString.call(c);\n throw Error(k(31, \"[object Object]\" === a ? \"object with keys {\" + Object.keys(c).join(\", \") + \"}\" : a));\n }\n \"string\" === typeof c ? (d = b.blockedSegment, d.lastPushedText = Da(b.blockedSegment.chunks, c, a.responseState, d.lastPushedText)) : \"number\" === typeof c && (d = b.blockedSegment, d.lastPushedText = Da(b.blockedSegment.chunks, \"\" + c, a.responseState, d.lastPushedText));\n}\nfunction bd(a, b, c) {\n for (var d = c.length, f = 0; f < d; f++) {\n var e = b.treeContext;\n b.treeContext = tc(e, d, f);\n try {\n $c(a, b, c[f]);\n } finally {\n b.treeContext = e;\n }\n }\n}\nfunction $c(a, b, c) {\n var d = b.blockedSegment.formatContext,\n f = b.legacyContext,\n e = b.context;\n try {\n return Z(a, b, c);\n } catch (m) {\n if (Gc(), \"object\" === typeof m && null !== m && \"function\" === typeof m.then) {\n c = m;\n var g = b.blockedSegment,\n h = Sc(a, g.chunks.length, null, g.formatContext, g.lastPushedText, !0);\n g.children.push(h);\n g.lastPushedText = !1;\n a = Tc(a, b.node, b.blockedBoundary, h, b.abortSet, b.legacyContext, b.context, b.treeContext).ping;\n c.then(a, a);\n b.blockedSegment.formatContext = d;\n b.legacyContext = f;\n b.context = e;\n Q(e);\n } else throw b.blockedSegment.formatContext = d, b.legacyContext = f, b.context = e, Q(e), m;\n }\n}\nfunction cd(a) {\n var b = a.blockedBoundary;\n a = a.blockedSegment;\n a.status = 3;\n dd(this, b, a);\n}\nfunction ed(a, b, c) {\n var d = a.blockedBoundary;\n a.blockedSegment.status = 3;\n null === d ? (b.allPendingTasks--, 2 !== b.status && (b.status = 2, null !== b.destination && b.destination.close())) : (d.pendingTasks--, d.forceClientRender || (d.forceClientRender = !0, a = void 0 === c ? Error(k(432)) : c, d.errorDigest = b.onError(a), d.parentFlushed && b.clientRenderedBoundaries.push(d)), d.fallbackAbortableTasks.forEach(function (a) {\n return ed(a, b, c);\n }), d.fallbackAbortableTasks.clear(), b.allPendingTasks--, 0 === b.allPendingTasks && (d = b.onAllReady, d()));\n}\nfunction ad(a, b) {\n if (0 === b.chunks.length && 1 === b.children.length && null === b.children[0].boundary) {\n var c = b.children[0];\n c.id = b.id;\n c.parentFlushed = !0;\n 1 === c.status && ad(a, c);\n } else a.completedSegments.push(b);\n}\nfunction dd(a, b, c) {\n if (null === b) {\n if (c.parentFlushed) {\n if (null !== a.completedRootSegment) throw Error(k(389));\n a.completedRootSegment = c;\n }\n a.pendingRootTasks--;\n 0 === a.pendingRootTasks && (a.onShellError = X, b = a.onShellReady, b());\n } else b.pendingTasks--, b.forceClientRender || (0 === b.pendingTasks ? (c.parentFlushed && 1 === c.status && ad(b, c), b.parentFlushed && a.completedBoundaries.push(b), b.fallbackAbortableTasks.forEach(cd, a), b.fallbackAbortableTasks.clear()) : c.parentFlushed && 1 === c.status && (ad(b, c), 1 === b.completedSegments.length && b.parentFlushed && a.partialBoundaries.push(b)));\n a.allPendingTasks--;\n 0 === a.allPendingTasks && (a = a.onAllReady, a());\n}\nfunction Uc(a) {\n if (2 !== a.status) {\n var b = O,\n c = Pc.current;\n Pc.current = Oc;\n var d = Nc;\n Nc = a.responseState;\n try {\n var f = a.pingedTasks,\n e;\n for (e = 0; e < f.length; e++) {\n var g = f[e];\n var h = a,\n m = g.blockedSegment;\n if (0 === m.status) {\n Q(g.context);\n try {\n Z(h, g, g.node), m.lastPushedText && m.textEmbedded && m.chunks.push(Ca), g.abortSet.delete(g), m.status = 1, dd(h, g.blockedBoundary, m);\n } catch (G) {\n if (Gc(), \"object\" === typeof G && null !== G && \"function\" === typeof G.then) {\n var q = g.ping;\n G.then(q, q);\n } else {\n g.abortSet.delete(g);\n m.status = 4;\n var r = g.blockedBoundary,\n v = G,\n A = Y(h, v);\n null === r ? Vc(h, v) : (r.pendingTasks--, r.forceClientRender || (r.forceClientRender = !0, r.errorDigest = A, r.parentFlushed && h.clientRenderedBoundaries.push(r)));\n h.allPendingTasks--;\n if (0 === h.allPendingTasks) {\n var F = h.onAllReady;\n F();\n }\n }\n } finally {}\n }\n }\n f.splice(0, e);\n null !== a.destination && fd(a, a.destination);\n } catch (G) {\n Y(a, G), Vc(a, G);\n } finally {\n Nc = d, Pc.current = c, c === Oc && Q(b);\n }\n }\n}\nfunction gd(a, b, c) {\n c.parentFlushed = !0;\n switch (c.status) {\n case 0:\n var d = c.id = a.nextSegmentId++;\n c.lastPushedText = !1;\n c.textEmbedded = !1;\n a = a.responseState;\n p(b, Va);\n p(b, a.placeholderPrefix);\n a = u(d.toString(16));\n p(b, a);\n return t(b, Wa);\n case 1:\n c.status = 2;\n var f = !0;\n d = c.chunks;\n var e = 0;\n c = c.children;\n for (var g = 0; g < c.length; g++) {\n for (f = c[g]; e < f.index; e++) p(b, d[e]);\n f = hd(a, b, f);\n }\n for (; e < d.length - 1; e++) p(b, d[e]);\n e < d.length && (f = t(b, d[e]));\n return f;\n default:\n throw Error(k(390));\n }\n}\nfunction hd(a, b, c) {\n var d = c.boundary;\n if (null === d) return gd(a, b, c);\n d.parentFlushed = !0;\n if (d.forceClientRender) d = d.errorDigest, t(b, $a), p(b, bb), d && (p(b, db), p(b, u(C(d))), p(b, cb)), t(b, eb), gd(a, b, c);else if (0 < d.pendingTasks) {\n d.rootSegmentID = a.nextSegmentId++;\n 0 < d.completedSegments.length && a.partialBoundaries.push(d);\n var f = a.responseState;\n var e = f.nextSuspenseID++;\n f = w(f.boundaryPrefix + e.toString(16));\n d = d.id = f;\n fb(b, a.responseState, d);\n gd(a, b, c);\n } else if (d.byteSize > a.progressiveChunkSize) d.rootSegmentID = a.nextSegmentId++, a.completedBoundaries.push(d), fb(b, a.responseState, d.id), gd(a, b, c);else {\n t(b, Xa);\n c = d.completedSegments;\n if (1 !== c.length) throw Error(k(391));\n hd(a, b, c[0]);\n }\n return t(b, ab);\n}\nfunction id(a, b, c) {\n Bb(b, a.responseState, c.formatContext, c.id);\n hd(a, b, c);\n return Cb(b, c.formatContext);\n}\nfunction jd(a, b, c) {\n for (var d = c.completedSegments, f = 0; f < d.length; f++) kd(a, b, c, d[f]);\n d.length = 0;\n a = a.responseState;\n d = c.id;\n c = c.rootSegmentID;\n p(b, a.startInlineScript);\n a.sentCompleteBoundaryFunction ? p(b, Jb) : (a.sentCompleteBoundaryFunction = !0, p(b, Ib));\n if (null === d) throw Error(k(395));\n c = u(c.toString(16));\n p(b, d);\n p(b, Kb);\n p(b, a.segmentPrefix);\n p(b, c);\n return t(b, Lb);\n}\nfunction kd(a, b, c, d) {\n if (2 === d.status) return !0;\n var f = d.id;\n if (-1 === f) {\n if (-1 === (d.id = c.rootSegmentID)) throw Error(k(392));\n return id(a, b, d);\n }\n id(a, b, d);\n a = a.responseState;\n p(b, a.startInlineScript);\n a.sentCompleteSegmentFunction ? p(b, Eb) : (a.sentCompleteSegmentFunction = !0, p(b, Db));\n p(b, a.segmentPrefix);\n f = u(f.toString(16));\n p(b, f);\n p(b, Gb);\n p(b, a.placeholderPrefix);\n p(b, f);\n return t(b, Hb);\n}\nfunction fd(a, b) {\n l = new Uint8Array(512);\n n = 0;\n try {\n var c = a.completedRootSegment;\n if (null !== c && 0 === a.pendingRootTasks) {\n hd(a, b, c);\n a.completedRootSegment = null;\n var d = a.responseState.bootstrapChunks;\n for (c = 0; c < d.length - 1; c++) p(b, d[c]);\n c < d.length && t(b, d[c]);\n }\n var f = a.clientRenderedBoundaries,\n e;\n for (e = 0; e < f.length; e++) {\n var g = f[e];\n d = b;\n var h = a.responseState,\n m = g.id,\n q = g.errorDigest,\n r = g.errorMessage,\n v = g.errorComponentStack;\n p(d, h.startInlineScript);\n h.sentClientRenderFunction ? p(d, Nb) : (h.sentClientRenderFunction = !0, p(d, Mb));\n if (null === m) throw Error(k(395));\n p(d, m);\n p(d, Ob);\n if (q || r || v) p(d, Qb), p(d, u(Sb(q || \"\")));\n if (r || v) p(d, Qb), p(d, u(Sb(r || \"\")));\n v && (p(d, Qb), p(d, u(Sb(v))));\n if (!t(d, Pb)) {\n a.destination = null;\n e++;\n f.splice(0, e);\n return;\n }\n }\n f.splice(0, e);\n var A = a.completedBoundaries;\n for (e = 0; e < A.length; e++) if (!jd(a, b, A[e])) {\n a.destination = null;\n e++;\n A.splice(0, e);\n return;\n }\n A.splice(0, e);\n ba(b);\n l = new Uint8Array(512);\n n = 0;\n var F = a.partialBoundaries;\n for (e = 0; e < F.length; e++) {\n var G = F[e];\n a: {\n f = a;\n g = b;\n var ma = G.completedSegments;\n for (h = 0; h < ma.length; h++) if (!kd(f, g, G, ma[h])) {\n h++;\n ma.splice(0, h);\n var Fb = !1;\n break a;\n }\n ma.splice(0, h);\n Fb = !0;\n }\n if (!Fb) {\n a.destination = null;\n e++;\n F.splice(0, e);\n return;\n }\n }\n F.splice(0, e);\n var na = a.completedBoundaries;\n for (e = 0; e < na.length; e++) if (!jd(a, b, na[e])) {\n a.destination = null;\n e++;\n na.splice(0, e);\n return;\n }\n na.splice(0, e);\n } finally {\n ba(b), 0 === a.allPendingTasks && 0 === a.pingedTasks.length && 0 === a.clientRenderedBoundaries.length && 0 === a.completedBoundaries.length && b.close();\n }\n}\nfunction ld(a, b) {\n try {\n var c = a.abortableTasks;\n c.forEach(function (c) {\n return ed(c, a, b);\n });\n c.clear();\n null !== a.destination && fd(a, a.destination);\n } catch (d) {\n Y(a, d), Vc(a, d);\n }\n}\nexports.renderToReadableStream = function (a, b) {\n return new Promise(function (c, d) {\n var f,\n e,\n g = new Promise(function (a, b) {\n e = a;\n f = b;\n }),\n h = Rc(a, za(b ? b.identifierPrefix : void 0, b ? b.nonce : void 0, b ? b.bootstrapScriptContent : void 0, b ? b.bootstrapScripts : void 0, b ? b.bootstrapModules : void 0), Aa(b ? b.namespaceURI : void 0), b ? b.progressiveChunkSize : void 0, b ? b.onError : void 0, e, function () {\n var a = new ReadableStream({\n type: \"bytes\",\n pull: function (a) {\n if (1 === h.status) h.status = 2, da(a, h.fatalError);else if (2 !== h.status && null === h.destination) {\n h.destination = a;\n try {\n fd(h, a);\n } catch (A) {\n Y(h, A), Vc(h, A);\n }\n }\n },\n cancel: function () {\n ld(h);\n }\n }, {\n highWaterMark: 0\n });\n a.allReady = g;\n c(a);\n }, function (a) {\n g.catch(function () {});\n d(a);\n }, f);\n if (b && b.signal) {\n var m = b.signal,\n q = function () {\n ld(h, m.reason);\n m.removeEventListener(\"abort\", q);\n };\n m.addEventListener(\"abort\", q);\n }\n Uc(h);\n });\n};\nexports.version = \"18.3.1\";","var nativeEvents = require(\"./native\");\nvar pjaxEvents = require(\"./pjax\");\nvar turbolinksEvents = require(\"./turbolinks\");\nvar turbolinksClassicDeprecatedEvents = require(\"./turbolinksClassicDeprecated\");\nvar turbolinksClassicEvents = require(\"./turbolinksClassic\");\n\n// see what things are globally available\n// and setup event handlers to those things\nmodule.exports = function (ujs) {\n if (ujs.handleEvent) {\n // We're calling this a second time -- remove previous handlers\n if (typeof Turbolinks !== \"undefined\" && typeof Turbolinks.EVENTS !== \"undefined\") {\n turbolinksClassicEvents.teardown(ujs);\n }\n turbolinksEvents.teardown(ujs);\n turbolinksClassicDeprecatedEvents.teardown(ujs);\n pjaxEvents.teardown(ujs);\n nativeEvents.teardown(ujs);\n }\n if ('addEventListener' in window) {\n ujs.handleEvent = function (eventName, callback) {\n document.addEventListener(eventName, callback);\n };\n ujs.removeEvent = function (eventName, callback) {\n document.removeEventListener(eventName, callback);\n };\n } else {\n ujs.handleEvent = function (eventName, callback) {\n window.attachEvent(eventName, callback);\n };\n ujs.removeEvent = function (eventName, callback) {\n window.detachEvent(eventName, callback);\n };\n }\n\n // Detect which kind of events to set up:\n if (typeof Turbolinks !== 'undefined' && Turbolinks.supported) {\n if (typeof Turbolinks.EVENTS !== 'undefined') {\n // Turbolinks.EVENTS is in classic version 2.4.0+\n turbolinksClassicEvents.setup(ujs);\n } else if (typeof Turbolinks.controller !== \"undefined\") {\n // Turbolinks.controller is in version 5+\n turbolinksEvents.setup(ujs);\n } else {\n turbolinksClassicDeprecatedEvents.setup(ujs);\n }\n } else if (typeof $ !== \"undefined\" && typeof $.pjax === 'function') {\n pjaxEvents.setup(ujs);\n } else {\n nativeEvents.setup(ujs);\n }\n};","module.exports = {\n // Attach handlers to browser events to mount\n // (There are no unmount handlers since the page is destroyed on navigation)\n setup: function (ujs) {\n if ('addEventListener' in window) {\n ujs.handleEvent('DOMContentLoaded', ujs.handleMount);\n } else {\n // add support to IE8 without jQuery\n ujs.handleEvent('onload', ujs.handleMount);\n }\n },\n teardown: function (ujs) {\n ujs.removeEvent('DOMContentLoaded', ujs.handleMount);\n ujs.removeEvent('onload', ujs.handleMount);\n }\n};","module.exports = {\n // pjax support\n setup: function (ujs) {\n ujs.handleEvent('ready', ujs.handleMount);\n ujs.handleEvent('pjax:end', ujs.handleMount);\n ujs.handleEvent('pjax:beforeReplace', ujs.handleUnmount);\n },\n teardown: function (ujs) {\n ujs.removeEvent('ready', ujs.handleMount);\n ujs.removeEvent('pjax:end', ujs.handleMount);\n ujs.removeEvent('pjax:beforeReplace', ujs.handleUnmount);\n }\n};","module.exports = {\n // Turbolinks 5+ got rid of named events (?!)\n setup: function (ujs) {\n ujs.handleEvent('turbolinks:load', ujs.handleMount);\n },\n teardown: function (ujs) {\n ujs.removeEvent('turbolinks:load', ujs.handleMount);\n }\n};","module.exports = {\n // Before Turbolinks 2.4.0, Turbolinks didn't\n // have named events and didn't have a before-unload event.\n // Also, it didn't work with the Turbolinks cache, see\n // https://github.com/reactjs/react-rails/issues/87\n setup: function (ujs) {\n Turbolinks.pagesCached(0);\n ujs.handleEvent('page:change', ujs.handleMount);\n ujs.handleEvent('page:receive', ujs.handleUnmount);\n },\n teardown: function (ujs) {\n ujs.removeEvent('page:change', ujs.handleMount);\n ujs.removeEvent('page:receive', ujs.handleUnmount);\n }\n};","module.exports = {\n // Attach handlers to Turbolinks-Classic events\n // for mounting and unmounting components\n setup: function (ujs) {\n ujs.handleEvent(Turbolinks.EVENTS.CHANGE, ujs.handleMount);\n ujs.handleEvent(Turbolinks.EVENTS.BEFORE_UNLOAD, ujs.handleUnmount);\n },\n teardown: function (ujs) {\n ujs.removeEvent(Turbolinks.EVENTS.CHANGE, ujs.handleMount);\n ujs.removeEvent(Turbolinks.EVENTS.BEFORE_UNLOAD, ujs.handleUnmount);\n }\n};","// Make a function which:\n// - First tries to require the name\n// - Then falls back to global lookup\nvar fromGlobal = require(\"./fromGlobal\");\nvar fromRequireContext = require(\"./fromRequireContext\");\nmodule.exports = function (reqctx) {\n var fromCtx = fromRequireContext(reqctx);\n return function (className) {\n var component;\n try {\n // `require` will raise an error if this className isn't found:\n component = fromCtx(className);\n } catch (firstErr) {\n // fallback to global:\n try {\n component = fromGlobal(className);\n } catch (secondErr) {\n console.error(firstErr);\n console.error(secondErr);\n }\n }\n return component;\n };\n};","// Make a function which:\n// - First tries to require the name\n// - Then falls back to global lookup\nvar fromGlobal = require(\"./fromGlobal\");\nvar fromRequireContext = require(\"./fromRequireContext\");\nmodule.exports = function (reqctxs) {\n var fromCtxs = reqctxs.map(reqctx => fromRequireContext(reqctx));\n return function (className) {\n var component;\n try {\n var index = 0,\n fromCtx,\n firstErr;\n do {\n fromCtx = fromCtxs[index];\n try {\n // `require` will raise an error if this className isn't found:\n component = fromCtx(className);\n } catch (fromCtxErr) {\n if (!firstErr) {\n firstErr = fromCtxErr;\n }\n }\n index += 1;\n } while (index < fromCtxs.length);\n if (!component) throw firstErr;\n } catch (firstErr) {\n // fallback to global:\n try {\n component = fromGlobal(className);\n } catch (secondErr) {\n console.error(firstErr);\n console.error(secondErr);\n }\n }\n return component;\n };\n};","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function (c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function (c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n var index = 0,\n length = path.length;\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return index && index == length ? object : undefined;\n}\nmodule.exports = baseGet;","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);\n}\nmodule.exports = isKey;","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\nmodule.exports = MapCache;","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\nmodule.exports = isFunction;","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\nmodule.exports = Map;","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n}\nmodule.exports = isIndex;","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\nmodule.exports = isLength;","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\nmodule.exports = Stack;","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\nmodule.exports = baseAssignValue;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\n}\nmodule.exports = isPrototype;","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\nmodule.exports = isBuffer;","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\nmodule.exports = isTypedArray;","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n set.forEach(function (value) {\n result[++index] = value;\n });\n return result;\n}\nmodule.exports = setToArray;","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\nmodule.exports = keys;","import ReactDOM from \"react-dom\";\nlet reactDomClient = ReactDOM;\nif (typeof ReactDOM != \"undefined\") {\n const reactMajorVersion = ReactDOM.version.split('.')[0] || 16;\n\n // TODO: once we require React 18, we can remove this and inline everything guarded by it.\n const supportsRootApi = reactMajorVersion >= 18;\n if (supportsRootApi) {\n // This will never throw an exception, but it's the way to tell Webpack the dependency is optional\n // https://github.com/webpack/webpack/issues/339#issuecomment-47739112\n // Unfortunately, it only converts the error to a warning.\n try {\n // eslint-disable-next-line global-require,import/no-unresolved\n reactDomClient = require('react-dom/client');\n } catch (e) {\n // We should never get here, but if we do, we'll just use the default ReactDOM\n // and live with the warning.\n reactDomClient = ReactDOM;\n }\n }\n}\nexport default reactDomClient;","import ReactDOM from \"./reactDomClient\";\nexport function supportsHydration() {\n return typeof ReactDOM.hydrate === \"function\" || typeof ReactDOM.hydrateRoot === \"function\";\n}\nexport function reactHydrate(node, component) {\n if (typeof ReactDOM.hydrateRoot === \"function\") {\n return ReactDOM.hydrateRoot(node, component);\n } else {\n return ReactDOM.hydrate(component, node);\n }\n}\nexport function createReactRootLike(node) {\n return ReactDOM.createRoot ? ReactDOM.createRoot(node) : legacyReactRootLike(node);\n}\nfunction legacyReactRootLike(node) {\n const root = {\n render(component) {\n return ReactDOM.render(component, node);\n }\n };\n return root;\n}","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\nmodule.exports = get;","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar set = globalThis.setImmediate;\nvar clear = globalThis.clearImmediate;\nvar process = globalThis.process;\nvar Dispatch = globalThis.Dispatch;\nvar Function = globalThis.Function;\nvar MessageChannel = globalThis.MessageChannel;\nvar String = globalThis.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = globalThis.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n globalThis.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n globalThis.addEventListener &&\n isCallable(globalThis.postMessage) &&\n !globalThis.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n globalThis.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\nmodule.exports = castPath;","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\nmodule.exports = freeGlobal;","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return func + '';\n } catch (e) {}\n }\n return '';\n}\nmodule.exports = toSource;","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\nmodule.exports = arrayMap;","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n var index = -1,\n length = path.length,\n result = false;\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object));\n}\nmodule.exports = hasPath;","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if (value !== undefined && !eq(object[key], value) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n}\nmodule.exports = assignMergeValue;","var getNative = require('./_getNative');\nvar defineProperty = function () {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}();\nmodule.exports = defineProperty;","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\nmodule.exports = baseFor;","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\nmodule.exports = Uint8Array;","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\nmodule.exports = getPrototype;","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n}\nmodule.exports = overArg;","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function (value) {\n return func(value);\n };\n}\nmodule.exports = baseUnary;","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n if (key == '__proto__') {\n return;\n }\n return object[key];\n}\nmodule.exports = safeGet;","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n}\nmodule.exports = assignValue;","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\nmodule.exports = keysIn;","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == 'offset' || key == 'parent') ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') ||\n // Skip index properties.\n isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\nmodule.exports = arrayLikeKeys;","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\nmodule.exports = baseRest;","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n this.__data__ = new MapCache();\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\nmodule.exports = SetCache;","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\nmodule.exports = cacheHas;","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\nmodule.exports = Set;","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\nmodule.exports = hasUnicode;","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = value < 0 ? -1 : 1;\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\nmodule.exports = toFinite;","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\nmodule.exports = arrayPush;","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\nmodule.exports = baseIsEqual;","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined;\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function (othValue, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\nmodule.exports = equalArrays;","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\nmodule.exports = isStrictComparable;","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function (object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue && (srcValue !== undefined || key in Object(object));\n };\n}\nmodule.exports = matchesStrictComparable;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = momentLocalizer;\nvar _moment = _interopRequireDefault(require(\"moment\"));\nvar _configure = _interopRequireDefault(require(\"react-widgets/lib/configure\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nif (typeof _moment.default !== 'function') throw new TypeError('You must provide a valid moment object');\nvar localField = typeof (0, _moment.default)().locale === 'function' ? 'locale' : 'lang',\n hasLocaleData = !!_moment.default.localeData;\nif (!hasLocaleData) throw new TypeError('The Moment localizer depends on the `localeData` api, please provide a moment object v2.2.0 or higher');\nfunction getMoment(culture, value, format) {\n return culture ? (0, _moment.default)(value, format, true)[localField](culture) : (0, _moment.default)(value, format, true);\n}\nfunction endOfDecade(date) {\n return (0, _moment.default)(date).add(10, 'year').add(-1, 'millisecond').toDate();\n}\nfunction endOfCentury(date) {\n return (0, _moment.default)(date).add(100, 'year').add(-1, 'millisecond').toDate();\n}\nfunction momentLocalizer() {\n var localizer = {\n formats: {\n date: 'L',\n time: 'LT',\n default: 'lll',\n header: 'MMMM YYYY',\n footer: 'LL',\n weekday: 'dd',\n dayOfMonth: 'DD',\n month: 'MMM',\n year: 'YYYY',\n decade: function decade(date, culture, localizer) {\n return localizer.format(date, 'YYYY', culture) + ' - ' + localizer.format(endOfDecade(date), 'YYYY', culture);\n },\n century: function century(date, culture, localizer) {\n return localizer.format(date, 'YYYY', culture) + ' - ' + localizer.format(endOfCentury(date), 'YYYY', culture);\n }\n },\n firstOfWeek: function firstOfWeek(culture) {\n return _moment.default.localeData(culture).firstDayOfWeek();\n },\n parse: function parse(value, format, culture) {\n if (!value) return null;\n var m = getMoment(culture, value, format);\n if (m.isValid()) return m.toDate();\n return null;\n },\n format: function format(value, _format, culture) {\n return getMoment(culture, value).format(_format);\n }\n };\n _configure.default.setDateLocalizer(localizer);\n}\nmodule.exports = exports[\"default\"];","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\nmodule.exports = has;","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function (object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\nmodule.exports = merge;","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return array && array.length ? baseUniq(array) : [];\n}\nmodule.exports = uniq;","var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function (result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\nmodule.exports = camelCase;","var baseRepeat = require('./_baseRepeat'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger'),\n toString = require('./toString');\n\n/**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\nfunction repeat(string, n, guard) {\n if (guard ? isIterateeCall(string, n, guard) : n === undefined) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n}\nmodule.exports = repeat;","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function (collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\nmodule.exports = sortBy;","var assignValue = require('./_assignValue'),\n baseZipObject = require('./_baseZipObject');\n\n/**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n}\nmodule.exports = zipObject;","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\nmodule.exports = range;","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = globalThis.RegExp;\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n var INDICES_SUPPORT = true;\n try {\n RegExp('.', 'd');\n } catch (error) {\n INDICES_SUPPORT = false;\n }\n\n var O = {};\n // modern V8 bug\n var calls = '';\n var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n var addGetter = function (key, chr) {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(O, key, { get: function () {\n calls += chr;\n return true;\n } });\n };\n\n var pairs = {\n dotAll: 's',\n global: 'g',\n ignoreCase: 'i',\n multiline: 'm',\n sticky: 'y'\n };\n\n if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n for (var key in pairs) addGetter(key, pairs[key]);\n\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O);\n\n return result !== expected || calls !== expected;\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {\n configurable: true,\n get: regExpFlags\n});\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.clear-immediate');\nrequire('../modules/web.set-immediate');\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar clearImmediate = require('../internals/task').clear;\n\n// `clearImmediate` method\n// http://w3c.github.io/setImmediate/#si-clearImmediate\n$({ global: true, bind: true, enumerable: true, forced: globalThis.clearImmediate !== clearImmediate }, {\n clearImmediate: clearImmediate\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar setTask = require('../internals/task').set;\nvar schedulersFix = require('../internals/schedulers-fix');\n\n// https://github.com/oven-sh/bun/issues/1633\nvar setImmediate = globalThis.setImmediate ? schedulersFix(setTask, false) : setTask;\n\n// `setImmediate` method\n// http://w3c.github.io/setImmediate/#si-setImmediate\n$({ global: true, bind: true, enumerable: true, forced: globalThis.setImmediate !== setImmediate }, {\n setImmediate: setImmediate\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar ENVIRONMENT = require('../internals/environment');\nvar USER_AGENT = require('../internals/environment-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar Function = globalThis.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENVIRONMENT === 'BUN' && (function () {\n var version = globalThis.Bun.version.split('.');\n return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');\n})();\n\n// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n// https://github.com/oven-sh/bun/issues/1633\nmodule.exports = function (scheduler, hasTimeArg) {\n var firstParamIndex = hasTimeArg ? 2 : 1;\n return WRAP ? function (handler, timeout /* , ...arguments */) {\n var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;\n var fn = isCallable(handler) ? handler : Function(handler);\n var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];\n var callback = boundArgs ? function () {\n apply(fn, this, params);\n } : fn;\n return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);\n } : scheduler;\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar localizers = _interopRequireWildcard(require(\"./util/localizers\"));\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nvar _default = {\n setLocalizers: function setLocalizers(_ref) {\n var date = _ref.date,\n number = _ref.number;\n date && this.setDateLocalizer(date);\n number && this.setNumberLocalizer(number);\n },\n setDateLocalizer: localizers.setDate,\n setNumberLocalizer: localizers.setNumber\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n expando = '_ujsData';\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n Rails.isContentEditable = function (element) {\n var isEditable;\n isEditable = false;\n while (true) {\n if (element.isContentEditable) {\n isEditable = true;\n break;\n }\n element = element.parentElement;\n if (!element) {\n break;\n }\n }\n return isEditable;\n };\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function (event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n }\n return result;\n };\n }\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n prepareOptions = function (options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n createXHR = function (options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n processResponse = function (response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n Rails.href = function (element) {\n return element.href;\n };\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n toArray = function (e) {\n return Array.prototype.slice.call(e);\n };\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n allowAction = function (element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isContentEditable, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements, isContentEditable = Rails.isContentEditable;\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n Rails.enableElement = function (e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (isContentEditable(element)) {\n return;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (isContentEditable(element)) {\n return;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n disableLinkElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n enableLinkElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n disableFormElements = function (form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n disableFormElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n enableFormElements = function (form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n enableFormElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n isXhrRedirect = function (event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var isContentEditable, stopEverything;\n stopEverything = Rails.stopEverything;\n isContentEditable = Rails.isContentEditable;\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n if (isContentEditable(this)) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"<input name='_method' value='\" + method + \"' type='hidden' />\";\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"<input name='\" + csrfParam + \"' value='\" + csrfToken + \"' type='hidden' />\";\n }\n formContent += '<input type=\"submit\" />';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isContentEditable,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement, isContentEditable = Rails.isContentEditable;\n isRemote = function (element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n if (isContentEditable(element)) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function (xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","/*\nTurbolinks 5.2.0\nCopyright © 2018 Basecamp, LLC\n */\n(function () {\n var t = this;\n (function () {\n (function () {\n this.Turbolinks = {\n supported: function () {\n return null != window.history.pushState && null != window.requestAnimationFrame && null != window.addEventListener;\n }(),\n visit: function (t, r) {\n return e.controller.visit(t, r);\n },\n clearCache: function () {\n return e.controller.clearCache();\n },\n setProgressBarDelay: function (t) {\n return e.controller.setProgressBarDelay(t);\n }\n };\n }).call(this);\n }).call(t);\n var e = t.Turbolinks;\n (function () {\n (function () {\n var t,\n r,\n n,\n o = [].slice;\n e.copyObject = function (t) {\n var e, r, n;\n r = {};\n for (e in t) n = t[e], r[e] = n;\n return r;\n }, e.closest = function (e, r) {\n return t.call(e, r);\n }, t = function () {\n var t, e;\n return t = document.documentElement, null != (e = t.closest) ? e : function (t) {\n var e;\n for (e = this; e;) {\n if (e.nodeType === Node.ELEMENT_NODE && r.call(e, t)) return e;\n e = e.parentNode;\n }\n };\n }(), e.defer = function (t) {\n return setTimeout(t, 1);\n }, e.throttle = function (t) {\n var e;\n return e = null, function () {\n var r;\n return r = 1 <= arguments.length ? o.call(arguments, 0) : [], null != e ? e : e = requestAnimationFrame(function (n) {\n return function () {\n return e = null, t.apply(n, r);\n };\n }(this));\n };\n }, e.dispatch = function (t, e) {\n var r, o, i, s, a, u;\n return a = null != e ? e : {}, u = a.target, r = a.cancelable, o = a.data, i = document.createEvent(\"Events\"), i.initEvent(t, !0, r === !0), i.data = null != o ? o : {}, i.cancelable && !n && (s = i.preventDefault, i.preventDefault = function () {\n return this.defaultPrevented || Object.defineProperty(this, \"defaultPrevented\", {\n get: function () {\n return !0;\n }\n }), s.call(this);\n }), (null != u ? u : document).dispatchEvent(i), i;\n }, n = function () {\n var t;\n return t = document.createEvent(\"Events\"), t.initEvent(\"test\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }(), e.match = function (t, e) {\n return r.call(t, e);\n }, r = function () {\n var t, e, r, n;\n return t = document.documentElement, null != (e = null != (r = null != (n = t.matchesSelector) ? n : t.webkitMatchesSelector) ? r : t.msMatchesSelector) ? e : t.mozMatchesSelector;\n }(), e.uuid = function () {\n var t, e, r;\n for (r = \"\", t = e = 1; 36 >= e; t = ++e) r += 9 === t || 14 === t || 19 === t || 24 === t ? \"-\" : 15 === t ? \"4\" : 20 === t ? (Math.floor(4 * Math.random()) + 8).toString(16) : Math.floor(15 * Math.random()).toString(16);\n return r;\n };\n }).call(this), function () {\n e.Location = function () {\n function t(t) {\n var e, r;\n null == t && (t = \"\"), r = document.createElement(\"a\"), r.href = t.toString(), this.absoluteURL = r.href, e = r.hash.length, 2 > e ? this.requestURL = this.absoluteURL : (this.requestURL = this.absoluteURL.slice(0, -e), this.anchor = r.hash.slice(1));\n }\n var e, r, n, o;\n return t.wrap = function (t) {\n return t instanceof this ? t : new this(t);\n }, t.prototype.getOrigin = function () {\n return this.absoluteURL.split(\"/\", 3).join(\"/\");\n }, t.prototype.getPath = function () {\n var t, e;\n return null != (t = null != (e = this.requestURL.match(/\\/\\/[^\\/]*(\\/[^?;]*)/)) ? e[1] : void 0) ? t : \"/\";\n }, t.prototype.getPathComponents = function () {\n return this.getPath().split(\"/\").slice(1);\n }, t.prototype.getLastPathComponent = function () {\n return this.getPathComponents().slice(-1)[0];\n }, t.prototype.getExtension = function () {\n var t, e;\n return null != (t = null != (e = this.getLastPathComponent().match(/\\.[^.]*$/)) ? e[0] : void 0) ? t : \"\";\n }, t.prototype.isHTML = function () {\n return this.getExtension().match(/^(?:|\\.(?:htm|html|xhtml))$/);\n }, t.prototype.isPrefixedBy = function (t) {\n var e;\n return e = r(t), this.isEqualTo(t) || o(this.absoluteURL, e);\n }, t.prototype.isEqualTo = function (t) {\n return this.absoluteURL === (null != t ? t.absoluteURL : void 0);\n }, t.prototype.toCacheKey = function () {\n return this.requestURL;\n }, t.prototype.toJSON = function () {\n return this.absoluteURL;\n }, t.prototype.toString = function () {\n return this.absoluteURL;\n }, t.prototype.valueOf = function () {\n return this.absoluteURL;\n }, r = function (t) {\n return e(t.getOrigin() + t.getPath());\n }, e = function (t) {\n return n(t, \"/\") ? t : t + \"/\";\n }, o = function (t, e) {\n return t.slice(0, e.length) === e;\n }, n = function (t, e) {\n return t.slice(-e.length) === e;\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.HttpRequest = function () {\n function r(r, n, o) {\n this.delegate = r, this.requestCanceled = t(this.requestCanceled, this), this.requestTimedOut = t(this.requestTimedOut, this), this.requestFailed = t(this.requestFailed, this), this.requestLoaded = t(this.requestLoaded, this), this.requestProgressed = t(this.requestProgressed, this), this.url = e.Location.wrap(n).requestURL, this.referrer = e.Location.wrap(o).absoluteURL, this.createXHR();\n }\n return r.NETWORK_FAILURE = 0, r.TIMEOUT_FAILURE = -1, r.timeout = 60, r.prototype.send = function () {\n var t;\n return this.xhr && !this.sent ? (this.notifyApplicationBeforeRequestStart(), this.setProgress(0), this.xhr.send(), this.sent = !0, \"function\" == typeof (t = this.delegate).requestStarted ? t.requestStarted() : void 0) : void 0;\n }, r.prototype.cancel = function () {\n return this.xhr && this.sent ? this.xhr.abort() : void 0;\n }, r.prototype.requestProgressed = function (t) {\n return t.lengthComputable ? this.setProgress(t.loaded / t.total) : void 0;\n }, r.prototype.requestLoaded = function () {\n return this.endRequest(function (t) {\n return function () {\n var e;\n return 200 <= (e = t.xhr.status) && 300 > e ? t.delegate.requestCompletedWithResponse(t.xhr.responseText, t.xhr.getResponseHeader(\"Turbolinks-Location\")) : (t.failed = !0, t.delegate.requestFailedWithStatusCode(t.xhr.status, t.xhr.responseText));\n };\n }(this));\n }, r.prototype.requestFailed = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE);\n };\n }(this));\n }, r.prototype.requestTimedOut = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE);\n };\n }(this));\n }, r.prototype.requestCanceled = function () {\n return this.endRequest();\n }, r.prototype.notifyApplicationBeforeRequestStart = function () {\n return e.dispatch(\"turbolinks:request-start\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.notifyApplicationAfterRequestEnd = function () {\n return e.dispatch(\"turbolinks:request-end\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.createXHR = function () {\n return this.xhr = new XMLHttpRequest(), this.xhr.open(\"GET\", this.url, !0), this.xhr.timeout = 1e3 * this.constructor.timeout, this.xhr.setRequestHeader(\"Accept\", \"text/html, application/xhtml+xml\"), this.xhr.setRequestHeader(\"Turbolinks-Referrer\", this.referrer), this.xhr.onprogress = this.requestProgressed, this.xhr.onload = this.requestLoaded, this.xhr.onerror = this.requestFailed, this.xhr.ontimeout = this.requestTimedOut, this.xhr.onabort = this.requestCanceled;\n }, r.prototype.endRequest = function (t) {\n return this.xhr ? (this.notifyApplicationAfterRequestEnd(), null != t && t.call(this), this.destroy()) : void 0;\n }, r.prototype.setProgress = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.delegate).requestProgressed ? e.requestProgressed(this.progress) : void 0;\n }, r.prototype.destroy = function () {\n var t;\n return this.setProgress(1), \"function\" == typeof (t = this.delegate).requestFinished && t.requestFinished(), this.delegate = null, this.xhr = null;\n }, r;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.ProgressBar = function () {\n function e() {\n this.trickle = t(this.trickle, this), this.stylesheetElement = this.createStylesheetElement(), this.progressElement = this.createProgressElement();\n }\n var r;\n return r = 300, e.defaultCSS = \".turbolinks-progress-bar {\\n position: fixed;\\n display: block;\\n top: 0;\\n left: 0;\\n height: 3px;\\n background: #0076ff;\\n z-index: 9999;\\n transition: width \" + r + \"ms ease-out, opacity \" + r / 2 + \"ms \" + r / 2 + \"ms ease-in;\\n transform: translate3d(0, 0, 0);\\n}\", e.prototype.show = function () {\n return this.visible ? void 0 : (this.visible = !0, this.installStylesheetElement(), this.installProgressElement(), this.startTrickling());\n }, e.prototype.hide = function () {\n return this.visible && !this.hiding ? (this.hiding = !0, this.fadeProgressElement(function (t) {\n return function () {\n return t.uninstallProgressElement(), t.stopTrickling(), t.visible = !1, t.hiding = !1;\n };\n }(this))) : void 0;\n }, e.prototype.setValue = function (t) {\n return this.value = t, this.refresh();\n }, e.prototype.installStylesheetElement = function () {\n return document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }, e.prototype.installProgressElement = function () {\n return this.progressElement.style.width = 0, this.progressElement.style.opacity = 1, document.documentElement.insertBefore(this.progressElement, document.body), this.refresh();\n }, e.prototype.fadeProgressElement = function (t) {\n return this.progressElement.style.opacity = 0, setTimeout(t, 1.5 * r);\n }, e.prototype.uninstallProgressElement = function () {\n return this.progressElement.parentNode ? document.documentElement.removeChild(this.progressElement) : void 0;\n }, e.prototype.startTrickling = function () {\n return null != this.trickleInterval ? this.trickleInterval : this.trickleInterval = setInterval(this.trickle, r);\n }, e.prototype.stopTrickling = function () {\n return clearInterval(this.trickleInterval), this.trickleInterval = null;\n }, e.prototype.trickle = function () {\n return this.setValue(this.value + Math.random() / 100);\n }, e.prototype.refresh = function () {\n return requestAnimationFrame(function (t) {\n return function () {\n return t.progressElement.style.width = 10 + 90 * t.value + \"%\";\n };\n }(this));\n }, e.prototype.createStylesheetElement = function () {\n var t;\n return t = document.createElement(\"style\"), t.type = \"text/css\", t.textContent = this.constructor.defaultCSS, t;\n }, e.prototype.createProgressElement = function () {\n var t;\n return t = document.createElement(\"div\"), t.className = \"turbolinks-progress-bar\", t;\n }, e;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.BrowserAdapter = function () {\n function r(r) {\n this.controller = r, this.showProgressBar = t(this.showProgressBar, this), this.progressBar = new e.ProgressBar();\n }\n var n, o, i;\n return i = e.HttpRequest, n = i.NETWORK_FAILURE, o = i.TIMEOUT_FAILURE, r.prototype.visitProposedToLocationWithAction = function (t, e) {\n return this.controller.startVisitToLocationWithAction(t, e);\n }, r.prototype.visitStarted = function (t) {\n return t.issueRequest(), t.changeHistory(), t.loadCachedSnapshot();\n }, r.prototype.visitRequestStarted = function (t) {\n return this.progressBar.setValue(0), t.hasCachedSnapshot() || \"restore\" !== t.action ? this.showProgressBarAfterDelay() : this.showProgressBar();\n }, r.prototype.visitRequestProgressed = function (t) {\n return this.progressBar.setValue(t.progress);\n }, r.prototype.visitRequestCompleted = function (t) {\n return t.loadResponse();\n }, r.prototype.visitRequestFailedWithStatusCode = function (t, e) {\n switch (e) {\n case n:\n case o:\n return this.reload();\n default:\n return t.loadResponse();\n }\n }, r.prototype.visitRequestFinished = function (t) {\n return this.hideProgressBar();\n }, r.prototype.visitCompleted = function (t) {\n return t.followRedirect();\n }, r.prototype.pageInvalidated = function () {\n return this.reload();\n }, r.prototype.showProgressBarAfterDelay = function () {\n return this.progressBarTimeout = setTimeout(this.showProgressBar, this.controller.progressBarDelay);\n }, r.prototype.showProgressBar = function () {\n return this.progressBar.show();\n }, r.prototype.hideProgressBar = function () {\n return this.progressBar.hide(), clearTimeout(this.progressBarTimeout);\n }, r.prototype.reload = function () {\n return window.location.reload();\n }, r;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.History = function () {\n function r(e) {\n this.delegate = e, this.onPageLoad = t(this.onPageLoad, this), this.onPopState = t(this.onPopState, this);\n }\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"popstate\", this.onPopState, !1), addEventListener(\"load\", this.onPageLoad, !1), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"popstate\", this.onPopState, !1), removeEventListener(\"load\", this.onPageLoad, !1), this.started = !1) : void 0;\n }, r.prototype.push = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"push\", t, r);\n }, r.prototype.replace = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"replace\", t, r);\n }, r.prototype.onPopState = function (t) {\n var r, n, o, i;\n return this.shouldHandlePopState() && (i = null != (n = t.state) ? n.turbolinks : void 0) ? (r = e.Location.wrap(window.location), o = i.restorationIdentifier, this.delegate.historyPoppedToLocationWithRestorationIdentifier(r, o)) : void 0;\n }, r.prototype.onPageLoad = function (t) {\n return e.defer(function (t) {\n return function () {\n return t.pageLoaded = !0;\n };\n }(this));\n }, r.prototype.shouldHandlePopState = function () {\n return this.pageIsLoaded();\n }, r.prototype.pageIsLoaded = function () {\n return this.pageLoaded || \"complete\" === document.readyState;\n }, r.prototype.update = function (t, e, r) {\n var n;\n return n = {\n turbolinks: {\n restorationIdentifier: r\n }\n }, history[t + \"State\"](n, null, e);\n }, r;\n }();\n }.call(this), function () {\n e.HeadDetails = function () {\n function t(t) {\n var e, r, n, s, a, u;\n for (this.elements = {}, n = 0, a = t.length; a > n; n++) u = t[n], u.nodeType === Node.ELEMENT_NODE && (s = u.outerHTML, r = null != (e = this.elements)[s] ? e[s] : e[s] = {\n type: i(u),\n tracked: o(u),\n elements: []\n }, r.elements.push(u));\n }\n var e, r, n, o, i;\n return t.fromHeadElement = function (t) {\n var e;\n return new this(null != (e = null != t ? t.childNodes : void 0) ? e : []);\n }, t.prototype.hasElementWithKey = function (t) {\n return t in this.elements;\n }, t.prototype.getTrackedElementSignature = function () {\n var t, e;\n return function () {\n var r, n;\n r = this.elements, n = [];\n for (t in r) e = r[t].tracked, e && n.push(t);\n return n;\n }.call(this).join(\"\");\n }, t.prototype.getScriptElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"script\", t);\n }, t.prototype.getStylesheetElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"stylesheet\", t);\n }, t.prototype.getElementsMatchingTypeNotInDetails = function (t, e) {\n var r, n, o, i, s, a;\n o = this.elements, s = [];\n for (n in o) i = o[n], a = i.type, r = i.elements, a !== t || e.hasElementWithKey(n) || s.push(r[0]);\n return s;\n }, t.prototype.getProvisionalElements = function () {\n var t, e, r, n, o, i, s;\n r = [], n = this.elements;\n for (e in n) o = n[e], s = o.type, i = o.tracked, t = o.elements, null != s || i ? t.length > 1 && r.push.apply(r, t.slice(1)) : r.push.apply(r, t);\n return r;\n }, t.prototype.getMetaValue = function (t) {\n var e;\n return null != (e = this.findMetaElementByName(t)) ? e.getAttribute(\"content\") : void 0;\n }, t.prototype.findMetaElementByName = function (t) {\n var r, n, o, i;\n r = void 0, i = this.elements;\n for (o in i) n = i[o].elements, e(n[0], t) && (r = n[0]);\n return r;\n }, i = function (t) {\n return r(t) ? \"script\" : n(t) ? \"stylesheet\" : void 0;\n }, o = function (t) {\n return \"reload\" === t.getAttribute(\"data-turbolinks-track\");\n }, r = function (t) {\n var e;\n return e = t.tagName.toLowerCase(), \"script\" === e;\n }, n = function (t) {\n var e;\n return e = t.tagName.toLowerCase(), \"style\" === e || \"link\" === e && \"stylesheet\" === t.getAttribute(\"rel\");\n }, e = function (t, e) {\n var r;\n return r = t.tagName.toLowerCase(), \"meta\" === r && t.getAttribute(\"name\") === e;\n }, t;\n }();\n }.call(this), function () {\n e.Snapshot = function () {\n function t(t, e) {\n this.headDetails = t, this.bodyElement = e;\n }\n return t.wrap = function (t) {\n return t instanceof this ? t : \"string\" == typeof t ? this.fromHTMLString(t) : this.fromHTMLElement(t);\n }, t.fromHTMLString = function (t) {\n var e;\n return e = document.createElement(\"html\"), e.innerHTML = t, this.fromHTMLElement(e);\n }, t.fromHTMLElement = function (t) {\n var r, n, o, i;\n return o = t.querySelector(\"head\"), r = null != (i = t.querySelector(\"body\")) ? i : document.createElement(\"body\"), n = e.HeadDetails.fromHeadElement(o), new this(n, r);\n }, t.prototype.clone = function () {\n return new this.constructor(this.headDetails, this.bodyElement.cloneNode(!0));\n }, t.prototype.getRootLocation = function () {\n var t, r;\n return r = null != (t = this.getSetting(\"root\")) ? t : \"/\", new e.Location(r);\n }, t.prototype.getCacheControlValue = function () {\n return this.getSetting(\"cache-control\");\n }, t.prototype.getElementForAnchor = function (t) {\n try {\n return this.bodyElement.querySelector(\"[id='\" + t + \"'], a[name='\" + t + \"']\");\n } catch (e) {}\n }, t.prototype.getPermanentElements = function () {\n return this.bodyElement.querySelectorAll(\"[id][data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementById = function (t) {\n return this.bodyElement.querySelector(\"#\" + t + \"[data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementsPresentInSnapshot = function (t) {\n var e, r, n, o, i;\n for (o = this.getPermanentElements(), i = [], r = 0, n = o.length; n > r; r++) e = o[r], t.getPermanentElementById(e.id) && i.push(e);\n return i;\n }, t.prototype.findFirstAutofocusableElement = function () {\n return this.bodyElement.querySelector(\"[autofocus]\");\n }, t.prototype.hasAnchor = function (t) {\n return null != this.getElementForAnchor(t);\n }, t.prototype.isPreviewable = function () {\n return \"no-preview\" !== this.getCacheControlValue();\n }, t.prototype.isCacheable = function () {\n return \"no-cache\" !== this.getCacheControlValue();\n }, t.prototype.isVisitable = function () {\n return \"reload\" !== this.getSetting(\"visit-control\");\n }, t.prototype.getSetting = function (t) {\n return this.headDetails.getMetaValue(\"turbolinks-\" + t);\n }, t;\n }();\n }.call(this), function () {\n var t = [].slice;\n e.Renderer = function () {\n function e() {}\n var r;\n return e.render = function () {\n var e, r, n, o;\n return n = arguments[0], r = arguments[1], e = 3 <= arguments.length ? t.call(arguments, 2) : [], o = function (t, e, r) {\n r.prototype = t.prototype;\n var n = new r(),\n o = t.apply(n, e);\n return Object(o) === o ? o : n;\n }(this, e, function () {}), o.delegate = n, o.render(r), o;\n }, e.prototype.renderView = function (t) {\n return this.delegate.viewWillRender(this.newBody), t(), this.delegate.viewRendered(this.newBody);\n }, e.prototype.invalidateView = function () {\n return this.delegate.viewInvalidated();\n }, e.prototype.createScriptElement = function (t) {\n var e;\n return \"false\" === t.getAttribute(\"data-turbolinks-eval\") ? t : (e = document.createElement(\"script\"), e.textContent = t.textContent, e.async = !1, r(e, t), e);\n }, r = function (t, e) {\n var r, n, o, i, s, a, u;\n for (i = e.attributes, a = [], r = 0, n = i.length; n > r; r++) s = i[r], o = s.name, u = s.value, a.push(t.setAttribute(o, u));\n return a;\n }, e;\n }();\n }.call(this), function () {\n var t,\n r,\n n = function (t, e) {\n function r() {\n this.constructor = t;\n }\n for (var n in e) o.call(e, n) && (t[n] = e[n]);\n return r.prototype = e.prototype, t.prototype = new r(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n e.SnapshotRenderer = function (e) {\n function o(t, e, r) {\n this.currentSnapshot = t, this.newSnapshot = e, this.isPreview = r, this.currentHeadDetails = this.currentSnapshot.headDetails, this.newHeadDetails = this.newSnapshot.headDetails, this.currentBody = this.currentSnapshot.bodyElement, this.newBody = this.newSnapshot.bodyElement;\n }\n return n(o, e), o.prototype.render = function (t) {\n return this.shouldRender() ? (this.mergeHead(), this.renderView(function (e) {\n return function () {\n return e.replaceBody(), e.isPreview || e.focusFirstAutofocusableElement(), t();\n };\n }(this))) : this.invalidateView();\n }, o.prototype.mergeHead = function () {\n return this.copyNewHeadStylesheetElements(), this.copyNewHeadScriptElements(), this.removeCurrentHeadProvisionalElements(), this.copyNewHeadProvisionalElements();\n }, o.prototype.replaceBody = function () {\n var t;\n return t = this.relocateCurrentBodyPermanentElements(), this.activateNewBodyScriptElements(), this.assignNewBody(), this.replacePlaceholderElementsWithClonedPermanentElements(t);\n }, o.prototype.shouldRender = function () {\n return this.newSnapshot.isVisitable() && this.trackedElementsAreIdentical();\n }, o.prototype.trackedElementsAreIdentical = function () {\n return this.currentHeadDetails.getTrackedElementSignature() === this.newHeadDetails.getTrackedElementSignature();\n }, o.prototype.copyNewHeadStylesheetElements = function () {\n var t, e, r, n, o;\n for (n = this.getNewHeadStylesheetElements(), o = [], e = 0, r = n.length; r > e; e++) t = n[e], o.push(document.head.appendChild(t));\n return o;\n }, o.prototype.copyNewHeadScriptElements = function () {\n var t, e, r, n, o;\n for (n = this.getNewHeadScriptElements(), o = [], e = 0, r = n.length; r > e; e++) t = n[e], o.push(document.head.appendChild(this.createScriptElement(t)));\n return o;\n }, o.prototype.removeCurrentHeadProvisionalElements = function () {\n var t, e, r, n, o;\n for (n = this.getCurrentHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) t = n[e], o.push(document.head.removeChild(t));\n return o;\n }, o.prototype.copyNewHeadProvisionalElements = function () {\n var t, e, r, n, o;\n for (n = this.getNewHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) t = n[e], o.push(document.head.appendChild(t));\n return o;\n }, o.prototype.relocateCurrentBodyPermanentElements = function () {\n var e, n, o, i, s, a, u;\n for (a = this.getCurrentBodyPermanentElements(), u = [], e = 0, n = a.length; n > e; e++) i = a[e], s = t(i), o = this.newSnapshot.getPermanentElementById(i.id), r(i, s.element), r(o, i), u.push(s);\n return u;\n }, o.prototype.replacePlaceholderElementsWithClonedPermanentElements = function (t) {\n var e, n, o, i, s, a, u;\n for (u = [], o = 0, i = t.length; i > o; o++) a = t[o], n = a.element, s = a.permanentElement, e = s.cloneNode(!0), u.push(r(n, e));\n return u;\n }, o.prototype.activateNewBodyScriptElements = function () {\n var t, e, n, o, i, s;\n for (i = this.getNewBodyScriptElements(), s = [], e = 0, o = i.length; o > e; e++) n = i[e], t = this.createScriptElement(n), s.push(r(n, t));\n return s;\n }, o.prototype.assignNewBody = function () {\n return document.body = this.newBody;\n }, o.prototype.focusFirstAutofocusableElement = function () {\n var t;\n return null != (t = this.newSnapshot.findFirstAutofocusableElement()) ? t.focus() : void 0;\n }, o.prototype.getNewHeadStylesheetElements = function () {\n return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getNewHeadScriptElements = function () {\n return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getCurrentHeadProvisionalElements = function () {\n return this.currentHeadDetails.getProvisionalElements();\n }, o.prototype.getNewHeadProvisionalElements = function () {\n return this.newHeadDetails.getProvisionalElements();\n }, o.prototype.getCurrentBodyPermanentElements = function () {\n return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot);\n }, o.prototype.getNewBodyScriptElements = function () {\n return this.newBody.querySelectorAll(\"script\");\n }, o;\n }(e.Renderer), t = function (t) {\n var e;\n return e = document.createElement(\"meta\"), e.setAttribute(\"name\", \"turbolinks-permanent-placeholder\"), e.setAttribute(\"content\", t.id), {\n element: e,\n permanentElement: t\n };\n }, r = function (t, e) {\n var r;\n return (r = t.parentNode) ? r.replaceChild(e, t) : void 0;\n };\n }.call(this), function () {\n var t = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) r.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n e.ErrorRenderer = function (e) {\n function r(t) {\n var e;\n e = document.createElement(\"html\"), e.innerHTML = t, this.newHead = e.querySelector(\"head\"), this.newBody = e.querySelector(\"body\");\n }\n return t(r, e), r.prototype.render = function (t) {\n return this.renderView(function (e) {\n return function () {\n return e.replaceHeadAndBody(), e.activateBodyScriptElements(), t();\n };\n }(this));\n }, r.prototype.replaceHeadAndBody = function () {\n var t, e;\n return e = document.head, t = document.body, e.parentNode.replaceChild(this.newHead, e), t.parentNode.replaceChild(this.newBody, t);\n }, r.prototype.activateBodyScriptElements = function () {\n var t, e, r, n, o, i;\n for (n = this.getScriptElements(), i = [], e = 0, r = n.length; r > e; e++) o = n[e], t = this.createScriptElement(o), i.push(o.parentNode.replaceChild(t, o));\n return i;\n }, r.prototype.getScriptElements = function () {\n return document.documentElement.querySelectorAll(\"script\");\n }, r;\n }(e.Renderer);\n }.call(this), function () {\n e.View = function () {\n function t(t) {\n this.delegate = t, this.htmlElement = document.documentElement;\n }\n return t.prototype.getRootLocation = function () {\n return this.getSnapshot().getRootLocation();\n }, t.prototype.getElementForAnchor = function (t) {\n return this.getSnapshot().getElementForAnchor(t);\n }, t.prototype.getSnapshot = function () {\n return e.Snapshot.fromHTMLElement(this.htmlElement);\n }, t.prototype.render = function (t, e) {\n var r, n, o;\n return o = t.snapshot, r = t.error, n = t.isPreview, this.markAsPreview(n), null != o ? this.renderSnapshot(o, n, e) : this.renderError(r, e);\n }, t.prototype.markAsPreview = function (t) {\n return t ? this.htmlElement.setAttribute(\"data-turbolinks-preview\", \"\") : this.htmlElement.removeAttribute(\"data-turbolinks-preview\");\n }, t.prototype.renderSnapshot = function (t, r, n) {\n return e.SnapshotRenderer.render(this.delegate, n, this.getSnapshot(), e.Snapshot.wrap(t), r);\n }, t.prototype.renderError = function (t, r) {\n return e.ErrorRenderer.render(this.delegate, r, t);\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.ScrollManager = function () {\n function r(r) {\n this.delegate = r, this.onScroll = t(this.onScroll, this), this.onScroll = e.throttle(this.onScroll);\n }\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"scroll\", this.onScroll, !1), this.onScroll(), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"scroll\", this.onScroll, !1), this.started = !1) : void 0;\n }, r.prototype.scrollToElement = function (t) {\n return t.scrollIntoView();\n }, r.prototype.scrollToPosition = function (t) {\n var e, r;\n return e = t.x, r = t.y, window.scrollTo(e, r);\n }, r.prototype.onScroll = function (t) {\n return this.updatePosition({\n x: window.pageXOffset,\n y: window.pageYOffset\n });\n }, r.prototype.updatePosition = function (t) {\n var e;\n return this.position = t, null != (e = this.delegate) ? e.scrollPositionChanged(this.position) : void 0;\n }, r;\n }();\n }.call(this), function () {\n e.SnapshotCache = function () {\n function t(t) {\n this.size = t, this.keys = [], this.snapshots = {};\n }\n var r;\n return t.prototype.has = function (t) {\n var e;\n return e = r(t), e in this.snapshots;\n }, t.prototype.get = function (t) {\n var e;\n if (this.has(t)) return e = this.read(t), this.touch(t), e;\n }, t.prototype.put = function (t, e) {\n return this.write(t, e), this.touch(t), e;\n }, t.prototype.read = function (t) {\n var e;\n return e = r(t), this.snapshots[e];\n }, t.prototype.write = function (t, e) {\n var n;\n return n = r(t), this.snapshots[n] = e;\n }, t.prototype.touch = function (t) {\n var e, n;\n return n = r(t), e = this.keys.indexOf(n), e > -1 && this.keys.splice(e, 1), this.keys.unshift(n), this.trim();\n }, t.prototype.trim = function () {\n var t, e, r, n, o;\n for (n = this.keys.splice(this.size), o = [], t = 0, r = n.length; r > t; t++) e = n[t], o.push(delete this.snapshots[e]);\n return o;\n }, r = function (t) {\n return e.Location.wrap(t).toCacheKey();\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.Visit = function () {\n function r(r, n, o) {\n this.controller = r, this.action = o, this.performScroll = t(this.performScroll, this), this.identifier = e.uuid(), this.location = e.Location.wrap(n), this.adapter = this.controller.adapter, this.state = \"initialized\", this.timingMetrics = {};\n }\n var n;\n return r.prototype.start = function () {\n return \"initialized\" === this.state ? (this.recordTimingMetric(\"visitStart\"), this.state = \"started\", this.adapter.visitStarted(this)) : void 0;\n }, r.prototype.cancel = function () {\n var t;\n return \"started\" === this.state ? (null != (t = this.request) && t.cancel(), this.cancelRender(), this.state = \"canceled\") : void 0;\n }, r.prototype.complete = function () {\n var t;\n return \"started\" === this.state ? (this.recordTimingMetric(\"visitEnd\"), this.state = \"completed\", \"function\" == typeof (t = this.adapter).visitCompleted && t.visitCompleted(this), this.controller.visitCompleted(this)) : void 0;\n }, r.prototype.fail = function () {\n var t;\n return \"started\" === this.state ? (this.state = \"failed\", \"function\" == typeof (t = this.adapter).visitFailed ? t.visitFailed(this) : void 0) : void 0;\n }, r.prototype.changeHistory = function () {\n var t, e;\n return this.historyChanged ? void 0 : (t = this.location.isEqualTo(this.referrer) ? \"replace\" : this.action, e = n(t), this.controller[e](this.location, this.restorationIdentifier), this.historyChanged = !0);\n }, r.prototype.issueRequest = function () {\n return this.shouldIssueRequest() && null == this.request ? (this.progress = 0, this.request = new e.HttpRequest(this, this.location, this.referrer), this.request.send()) : void 0;\n }, r.prototype.getCachedSnapshot = function () {\n var t;\n return !(t = this.controller.getCachedSnapshotForLocation(this.location)) || null != this.location.anchor && !t.hasAnchor(this.location.anchor) || \"restore\" !== this.action && !t.isPreviewable() ? void 0 : t;\n }, r.prototype.hasCachedSnapshot = function () {\n return null != this.getCachedSnapshot();\n }, r.prototype.loadCachedSnapshot = function () {\n var t, e;\n return (e = this.getCachedSnapshot()) ? (t = this.shouldIssueRequest(), this.render(function () {\n var r;\n return this.cacheSnapshot(), this.controller.render({\n snapshot: e,\n isPreview: t\n }, this.performScroll), \"function\" == typeof (r = this.adapter).visitRendered && r.visitRendered(this), t ? void 0 : this.complete();\n })) : void 0;\n }, r.prototype.loadResponse = function () {\n return null != this.response ? this.render(function () {\n var t, e;\n return this.cacheSnapshot(), this.request.failed ? (this.controller.render({\n error: this.response\n }, this.performScroll), \"function\" == typeof (t = this.adapter).visitRendered && t.visitRendered(this), this.fail()) : (this.controller.render({\n snapshot: this.response\n }, this.performScroll), \"function\" == typeof (e = this.adapter).visitRendered && e.visitRendered(this), this.complete());\n }) : void 0;\n }, r.prototype.followRedirect = function () {\n return this.redirectedToLocation && !this.followedRedirect ? (this.location = this.redirectedToLocation, this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation, this.restorationIdentifier), this.followedRedirect = !0) : void 0;\n }, r.prototype.requestStarted = function () {\n var t;\n return this.recordTimingMetric(\"requestStart\"), \"function\" == typeof (t = this.adapter).visitRequestStarted ? t.visitRequestStarted(this) : void 0;\n }, r.prototype.requestProgressed = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.adapter).visitRequestProgressed ? e.visitRequestProgressed(this) : void 0;\n }, r.prototype.requestCompletedWithResponse = function (t, r) {\n return this.response = t, null != r && (this.redirectedToLocation = e.Location.wrap(r)), this.adapter.visitRequestCompleted(this);\n }, r.prototype.requestFailedWithStatusCode = function (t, e) {\n return this.response = e, this.adapter.visitRequestFailedWithStatusCode(this, t);\n }, r.prototype.requestFinished = function () {\n var t;\n return this.recordTimingMetric(\"requestEnd\"), \"function\" == typeof (t = this.adapter).visitRequestFinished ? t.visitRequestFinished(this) : void 0;\n }, r.prototype.performScroll = function () {\n return this.scrolled ? void 0 : (\"restore\" === this.action ? this.scrollToRestoredPosition() || this.scrollToTop() : this.scrollToAnchor() || this.scrollToTop(), this.scrolled = !0);\n }, r.prototype.scrollToRestoredPosition = function () {\n var t, e;\n return t = null != (e = this.restorationData) ? e.scrollPosition : void 0, null != t ? (this.controller.scrollToPosition(t), !0) : void 0;\n }, r.prototype.scrollToAnchor = function () {\n return null != this.location.anchor ? (this.controller.scrollToAnchor(this.location.anchor), !0) : void 0;\n }, r.prototype.scrollToTop = function () {\n return this.controller.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.recordTimingMetric = function (t) {\n var e;\n return null != (e = this.timingMetrics)[t] ? e[t] : e[t] = new Date().getTime();\n }, r.prototype.getTimingMetrics = function () {\n return e.copyObject(this.timingMetrics);\n }, n = function (t) {\n switch (t) {\n case \"replace\":\n return \"replaceHistoryWithLocationAndRestorationIdentifier\";\n case \"advance\":\n case \"restore\":\n return \"pushHistoryWithLocationAndRestorationIdentifier\";\n }\n }, r.prototype.shouldIssueRequest = function () {\n return \"restore\" === this.action ? !this.hasCachedSnapshot() : !0;\n }, r.prototype.cacheSnapshot = function () {\n return this.snapshotCached ? void 0 : (this.controller.cacheSnapshot(), this.snapshotCached = !0);\n }, r.prototype.render = function (t) {\n return this.cancelRender(), this.frame = requestAnimationFrame(function (e) {\n return function () {\n return e.frame = null, t.call(e);\n };\n }(this));\n }, r.prototype.cancelRender = function () {\n return this.frame ? cancelAnimationFrame(this.frame) : void 0;\n }, r;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.Controller = function () {\n function r() {\n this.clickBubbled = t(this.clickBubbled, this), this.clickCaptured = t(this.clickCaptured, this), this.pageLoaded = t(this.pageLoaded, this), this.history = new e.History(this), this.view = new e.View(this), this.scrollManager = new e.ScrollManager(this), this.restorationData = {}, this.clearCache(), this.setProgressBarDelay(500);\n }\n return r.prototype.start = function () {\n return e.supported && !this.started ? (addEventListener(\"click\", this.clickCaptured, !0), addEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.start(), this.startHistory(), this.started = !0, this.enabled = !0) : void 0;\n }, r.prototype.disable = function () {\n return this.enabled = !1;\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"click\", this.clickCaptured, !0), removeEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.stop(), this.stopHistory(), this.started = !1) : void 0;\n }, r.prototype.clearCache = function () {\n return this.cache = new e.SnapshotCache(10);\n }, r.prototype.visit = function (t, r) {\n var n, o;\n return null == r && (r = {}), t = e.Location.wrap(t), this.applicationAllowsVisitingLocation(t) ? this.locationIsVisitable(t) ? (n = null != (o = r.action) ? o : \"advance\", this.adapter.visitProposedToLocationWithAction(t, n)) : window.location = t : void 0;\n }, r.prototype.startVisitToLocationWithAction = function (t, r, n) {\n var o;\n return e.supported ? (o = this.getRestorationDataForIdentifier(n), this.startVisit(t, r, {\n restorationData: o\n })) : window.location = t;\n }, r.prototype.setProgressBarDelay = function (t) {\n return this.progressBarDelay = t;\n }, r.prototype.startHistory = function () {\n return this.location = e.Location.wrap(window.location), this.restorationIdentifier = e.uuid(), this.history.start(), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.stopHistory = function () {\n return this.history.stop();\n }, r.prototype.pushHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.push(this.location, this.restorationIdentifier);\n }, r.prototype.replaceHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.historyPoppedToLocationWithRestorationIdentifier = function (t, r) {\n var n;\n return this.restorationIdentifier = r, this.enabled ? (n = this.getRestorationDataForIdentifier(this.restorationIdentifier), this.startVisit(t, \"restore\", {\n restorationIdentifier: this.restorationIdentifier,\n restorationData: n,\n historyChanged: !0\n }), this.location = e.Location.wrap(t)) : this.adapter.pageInvalidated();\n }, r.prototype.getCachedSnapshotForLocation = function (t) {\n var e;\n return null != (e = this.cache.get(t)) ? e.clone() : void 0;\n }, r.prototype.shouldCacheSnapshot = function () {\n return this.view.getSnapshot().isCacheable();\n }, r.prototype.cacheSnapshot = function () {\n var t, r;\n return this.shouldCacheSnapshot() ? (this.notifyApplicationBeforeCachingSnapshot(), r = this.view.getSnapshot(), t = this.lastRenderedLocation, e.defer(function (e) {\n return function () {\n return e.cache.put(t, r.clone());\n };\n }(this))) : void 0;\n }, r.prototype.scrollToAnchor = function (t) {\n var e;\n return (e = this.view.getElementForAnchor(t)) ? this.scrollToElement(e) : this.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.scrollToElement = function (t) {\n return this.scrollManager.scrollToElement(t);\n }, r.prototype.scrollToPosition = function (t) {\n return this.scrollManager.scrollToPosition(t);\n }, r.prototype.scrollPositionChanged = function (t) {\n var e;\n return e = this.getCurrentRestorationData(), e.scrollPosition = t;\n }, r.prototype.render = function (t, e) {\n return this.view.render(t, e);\n }, r.prototype.viewInvalidated = function () {\n return this.adapter.pageInvalidated();\n }, r.prototype.viewWillRender = function (t) {\n return this.notifyApplicationBeforeRender(t);\n }, r.prototype.viewRendered = function () {\n return this.lastRenderedLocation = this.currentVisit.location, this.notifyApplicationAfterRender();\n }, r.prototype.pageLoaded = function () {\n return this.lastRenderedLocation = this.location, this.notifyApplicationAfterPageLoad();\n }, r.prototype.clickCaptured = function () {\n return removeEventListener(\"click\", this.clickBubbled, !1), addEventListener(\"click\", this.clickBubbled, !1);\n }, r.prototype.clickBubbled = function (t) {\n var e, r, n;\n return this.enabled && this.clickEventIsSignificant(t) && (r = this.getVisitableLinkForNode(t.target)) && (n = this.getVisitableLocationForLink(r)) && this.applicationAllowsFollowingLinkToLocation(r, n) ? (t.preventDefault(), e = this.getActionForLink(r), this.visit(n, {\n action: e\n })) : void 0;\n }, r.prototype.applicationAllowsFollowingLinkToLocation = function (t, e) {\n var r;\n return r = this.notifyApplicationAfterClickingLinkToLocation(t, e), !r.defaultPrevented;\n }, r.prototype.applicationAllowsVisitingLocation = function (t) {\n var e;\n return e = this.notifyApplicationBeforeVisitingLocation(t), !e.defaultPrevented;\n }, r.prototype.notifyApplicationAfterClickingLinkToLocation = function (t, r) {\n return e.dispatch(\"turbolinks:click\", {\n target: t,\n data: {\n url: r.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationBeforeVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:before-visit\", {\n data: {\n url: t.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationAfterVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:visit\", {\n data: {\n url: t.absoluteURL\n }\n });\n }, r.prototype.notifyApplicationBeforeCachingSnapshot = function () {\n return e.dispatch(\"turbolinks:before-cache\");\n }, r.prototype.notifyApplicationBeforeRender = function (t) {\n return e.dispatch(\"turbolinks:before-render\", {\n data: {\n newBody: t\n }\n });\n }, r.prototype.notifyApplicationAfterRender = function () {\n return e.dispatch(\"turbolinks:render\");\n }, r.prototype.notifyApplicationAfterPageLoad = function (t) {\n return null == t && (t = {}), e.dispatch(\"turbolinks:load\", {\n data: {\n url: this.location.absoluteURL,\n timing: t\n }\n });\n }, r.prototype.startVisit = function (t, e, r) {\n var n;\n return null != (n = this.currentVisit) && n.cancel(), this.currentVisit = this.createVisit(t, e, r), this.currentVisit.start(), this.notifyApplicationAfterVisitingLocation(t);\n }, r.prototype.createVisit = function (t, r, n) {\n var o, i, s, a, u;\n return i = null != n ? n : {}, a = i.restorationIdentifier, s = i.restorationData, o = i.historyChanged, u = new e.Visit(this, t, r), u.restorationIdentifier = null != a ? a : e.uuid(), u.restorationData = e.copyObject(s), u.historyChanged = o, u.referrer = this.location, u;\n }, r.prototype.visitCompleted = function (t) {\n return this.notifyApplicationAfterPageLoad(t.getTimingMetrics());\n }, r.prototype.clickEventIsSignificant = function (t) {\n return !(t.defaultPrevented || t.target.isContentEditable || t.which > 1 || t.altKey || t.ctrlKey || t.metaKey || t.shiftKey);\n }, r.prototype.getVisitableLinkForNode = function (t) {\n return this.nodeIsVisitable(t) ? e.closest(t, \"a[href]:not([target]):not([download])\") : void 0;\n }, r.prototype.getVisitableLocationForLink = function (t) {\n var r;\n return r = new e.Location(t.getAttribute(\"href\")), this.locationIsVisitable(r) ? r : void 0;\n }, r.prototype.getActionForLink = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-turbolinks-action\")) ? e : \"advance\";\n }, r.prototype.nodeIsVisitable = function (t) {\n var r;\n return (r = e.closest(t, \"[data-turbolinks]\")) ? \"false\" !== r.getAttribute(\"data-turbolinks\") : !0;\n }, r.prototype.locationIsVisitable = function (t) {\n return t.isPrefixedBy(this.view.getRootLocation()) && t.isHTML();\n }, r.prototype.getCurrentRestorationData = function () {\n return this.getRestorationDataForIdentifier(this.restorationIdentifier);\n }, r.prototype.getRestorationDataForIdentifier = function (t) {\n var e;\n return null != (e = this.restorationData)[t] ? e[t] : e[t] = {};\n }, r;\n }();\n }.call(this), function () {\n !function () {\n var t, e;\n if ((t = e = document.currentScript) && !e.hasAttribute(\"data-turbolinks-suppress-warning\")) for (; t = t.parentNode;) if (t === document.body) return console.warn(\"You are loading Turbolinks from a <script> element inside the <body> element. This is probably not what you meant to do!\\n\\nLoad your application\\u2019s JavaScript bundle inside the <head> element instead. <script> elements in <body> are evaluated with each page change.\\n\\nFor more information, see: https://github.com/turbolinks/turbolinks#working-with-script-elements\\n\\n\\u2014\\u2014\\nSuppress this warning by adding a `data-turbolinks-suppress-warning` attribute to: %s\", e.outerHTML);\n }();\n }.call(this), function () {\n var t, r, n;\n e.start = function () {\n return r() ? (null == e.controller && (e.controller = t()), e.controller.start()) : void 0;\n }, r = function () {\n return null == window.Turbolinks && (window.Turbolinks = e), n();\n }, t = function () {\n var t;\n return t = new e.Controller(), t.adapter = new e.BrowserAdapter(t), t;\n }, n = function () {\n return window.Turbolinks === e;\n }, n() && e.start();\n }.call(this);\n }).call(this), \"object\" == typeof module && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}).call(this);","function disablingCheckbox(checkbox) {\n const targets = checkbox.getAttribute(\"data-disabling-checkbox-target\").split(\" \");\n const onState = checkbox.getAttribute(\"data-disabling-checkbox-hide-state\") === \"true\";\n const currentState = checkbox.checked;\n\n targets.forEach((target) => {\n const targetElement = document.getElementById(target);\n\n if (currentState !== onState) {\n targetElement.style.display = \"\";\n } else {\n targetElement.style.display = \"none\";\n }\n });\n}\n\nfunction disablingCheckboxReady() {\n const checkboxes = document.querySelectorAll(\".disabling-checkbox\");\n checkboxes.forEach((checkbox) => {\n disablingCheckbox(checkbox);\n checkbox.addEventListener(\"change\", () => {\n disablingCheckbox(checkbox);\n });\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", disablingCheckboxReady);\ndocument.addEventListener(\"turbolinks:load\", disablingCheckboxReady);\n","function toggleMenu(e) {\n e.preventDefault();\n const navigationMenu = document.getElementById(\"js-navigation-menu\");\n\n if (navigationMenu.classList.contains(\"hidden\")) {\n navigationMenu.classList.remove(\"hidden\");\n } else {\n navigationMenu.classList.add(\"hidden\");\n }\n}\n\nfunction readyMenu() {\n const menuToggle = document.getElementById(\"js-mobile-menu\");\n\n if (menuToggle) {\n menuToggle.removeEventListener(\"click\", toggleMenu);\n menuToggle.addEventListener(\"click\", toggleMenu);\n }\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", readyMenu);\ndocument.addEventListener(\"turbolinks:load\", readyMenu);\n","function resetPasswordLink(e) {\n e.preventDefault();\n\n const returnValue = window.confirm(\"Are you sure you want to generate a password reset link? This will action will expire any previous password reset links.\");\n if (!returnValue) { return; }\n\n const button = e.target;\n const url = button.dataset.generateResetPasswordUrl;\n\n fetch(url, {\n method: \"PUT\",\n headers: {\n \"X-CSRF-Token\": (document.querySelector(\"[name='csrf-token']\") as HTMLMetaElement).content,\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n if (!response.ok) { throw new Error(`${response.status} response`) }\n\n return response.json();\n })\n .then((result) => {\n alert(result.reset_url);\n })\n .catch((error) => {\n alert(`Error: ${error.message}`);\n });\n}\n\nfunction readyResetPasswordLink() {\n const resetPasswordButton = document.getElementById(\"reset_password_button\");\n\n if (!resetPasswordButton) { return; }\n\n resetPasswordButton.removeEventListener(\"click\", resetPasswordLink);\n resetPasswordButton.addEventListener(\"click\", resetPasswordLink);\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", readyResetPasswordLink);\ndocument.addEventListener(\"turbolinks:load\", readyResetPasswordLink);\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\nmodule.exports = getRawTag;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\nmodule.exports = objectToString;","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function (string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function (match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : number || match);\n });\n return result;\n});\nmodule.exports = stringToPath;","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function (key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n var cache = result.cache;\n return result;\n}\nmodule.exports = memoizeCapped;","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || resolver != null && typeof resolver != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function () {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache)();\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\nmodule.exports = memoize;","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash(),\n 'map': new (Map || ListCache)(),\n 'string': new Hash()\n };\n}\nmodule.exports = mapCacheClear;","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\nmodule.exports = Hash;","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\nmodule.exports = hashClear;","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\nmodule.exports = baseIsNative;","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = function () {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? 'Symbol(src)_1.' + uid : '';\n}();\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n}\nmodule.exports = isMasked;","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\nmodule.exports = coreJsData;","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\nmodule.exports = getValue;","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\nmodule.exports = hashDelete;","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\nmodule.exports = hashGet;","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\nmodule.exports = hashHas;","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;\n return this;\n}\nmodule.exports = hashSet;","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\nmodule.exports = listCacheClear;","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\nmodule.exports = listCacheDelete;","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n return index < 0 ? undefined : data[index][1];\n}\nmodule.exports = listCacheGet;","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\nmodule.exports = listCacheHas;","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\nmodule.exports = listCacheSet;","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\nmodule.exports = mapCacheDelete;","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\n}\nmodule.exports = isKeyable;","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\nmodule.exports = mapCacheGet;","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\nmodule.exports = mapCacheHas;","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\nmodule.exports = mapCacheSet;","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n}\nmodule.exports = baseToString;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\nmodule.exports = baseHas;","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\nmodule.exports = baseIsArguments;","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function (srcValue, key) {\n stack || (stack = new Stack());\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n } else {\n var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + '', object, source, stack) : undefined;\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\nmodule.exports = baseMerge;","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache();\n this.size = 0;\n}\nmodule.exports = stackClear;","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n this.size = data.size;\n return result;\n}\nmodule.exports = stackDelete;","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\nmodule.exports = stackGet;","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\nmodule.exports = stackHas;","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\nmodule.exports = stackSet;","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function (object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\nmodule.exports = createBaseFor;","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer ? customizer(objValue, srcValue, key + '', object, source, stack) : undefined;\n var isCommon = newValue === undefined;\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n } else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n } else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n } else {\n newValue = [];\n }\n } else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n } else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n } else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\nmodule.exports = baseMergeDeep;","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result);\n return result;\n}\nmodule.exports = cloneBuffer;","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\nmodule.exports = cloneTypedArray;","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\nmodule.exports = cloneArrayBuffer;","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\nmodule.exports = copyArray;","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\n}\nmodule.exports = initCloneObject;","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = function () {\n function object() {}\n return function (proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object();\n object.prototype = undefined;\n return result;\n };\n}();\nmodule.exports = baseCreate;","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\nmodule.exports = isArrayLikeObject;","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\nmodule.exports = stubFalse;","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n}\nmodule.exports = isPlainObject;","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\nmodule.exports = baseIsTypedArray;","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = function () {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}();\nmodule.exports = nodeUtil;","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\nmodule.exports = toPlainObject;","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index = -1,\n length = props.length;\n while (++index < length) {\n var key = props[index];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\nmodule.exports = copyObject;","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\nmodule.exports = baseTimes;","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\nmodule.exports = baseKeysIn;","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\nmodule.exports = nativeKeysIn;","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function (object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n customizer = assigner.length > 3 && typeof customizer == 'function' ? (length--, customizer) : undefined;\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\nmodule.exports = createAssigner;","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? func.length - 1 : start, 0);\n return function () {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\nmodule.exports = overRest;","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0:\n return func.call(thisArg);\n case 1:\n return func.call(thisArg, args[0]);\n case 2:\n return func.call(thisArg, args[0], args[1]);\n case 3:\n return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\nmodule.exports = apply;","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\nmodule.exports = setToString;","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function (func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\nmodule.exports = baseSetToString;","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function () {\n return value;\n };\n}\nmodule.exports = constant;","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n return function () {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\nmodule.exports = shortOut;","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n } else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache();\n } else {\n seen = iteratee ? [] : result;\n }\n outer: while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n value = comparator || value !== 0 ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n } else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\nmodule.exports = baseUniq;","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\nmodule.exports = setCacheAdd;","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\nmodule.exports = setCacheHas;","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\nmodule.exports = arrayIncludes;","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);\n}\nmodule.exports = baseIndexOf;","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n while (fromRight ? index-- : ++index < length) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\nmodule.exports = baseFindIndex;","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\nmodule.exports = baseIsNaN;","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\nmodule.exports = strictIndexOf;","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\nmodule.exports = arrayIncludesWith;","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && 1 / setToArray(new Set([, -0]))[1] == INFINITY) ? noop : function (values) {\n return new Set(values);\n};\nmodule.exports = createSet;","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\nmodule.exports = noop;","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\nmodule.exports = capitalize;","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\nmodule.exports = upperFirst;","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function (string) {\n string = toString(string);\n var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined;\n var chr = strSymbols ? strSymbols[0] : string.charAt(0);\n var trailing = strSymbols ? castSlice(strSymbols, 1).join('') : string.slice(1);\n return chr[methodName]() + trailing;\n };\n}\nmodule.exports = createCaseFirst;","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return !start && end >= length ? array : baseSlice(array, start, end);\n}\nmodule.exports = castSlice;","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n if (start < 0) {\n start = -start > length ? 0 : length + start;\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : end - start >>> 0;\n start >>>= 0;\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\nmodule.exports = baseSlice;","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string);\n}\nmodule.exports = stringToArray;","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\nmodule.exports = asciiToArray;","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\nmodule.exports = unicodeToArray;","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function (string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\nmodule.exports = createCompounder;","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\nmodule.exports = arrayReduce;","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\nmodule.exports = deburr;","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A',\n '\\xc1': 'A',\n '\\xc2': 'A',\n '\\xc3': 'A',\n '\\xc4': 'A',\n '\\xc5': 'A',\n '\\xe0': 'a',\n '\\xe1': 'a',\n '\\xe2': 'a',\n '\\xe3': 'a',\n '\\xe4': 'a',\n '\\xe5': 'a',\n '\\xc7': 'C',\n '\\xe7': 'c',\n '\\xd0': 'D',\n '\\xf0': 'd',\n '\\xc8': 'E',\n '\\xc9': 'E',\n '\\xca': 'E',\n '\\xcb': 'E',\n '\\xe8': 'e',\n '\\xe9': 'e',\n '\\xea': 'e',\n '\\xeb': 'e',\n '\\xcc': 'I',\n '\\xcd': 'I',\n '\\xce': 'I',\n '\\xcf': 'I',\n '\\xec': 'i',\n '\\xed': 'i',\n '\\xee': 'i',\n '\\xef': 'i',\n '\\xd1': 'N',\n '\\xf1': 'n',\n '\\xd2': 'O',\n '\\xd3': 'O',\n '\\xd4': 'O',\n '\\xd5': 'O',\n '\\xd6': 'O',\n '\\xd8': 'O',\n '\\xf2': 'o',\n '\\xf3': 'o',\n '\\xf4': 'o',\n '\\xf5': 'o',\n '\\xf6': 'o',\n '\\xf8': 'o',\n '\\xd9': 'U',\n '\\xda': 'U',\n '\\xdb': 'U',\n '\\xdc': 'U',\n '\\xf9': 'u',\n '\\xfa': 'u',\n '\\xfb': 'u',\n '\\xfc': 'u',\n '\\xdd': 'Y',\n '\\xfd': 'y',\n '\\xff': 'y',\n '\\xc6': 'Ae',\n '\\xe6': 'ae',\n '\\xde': 'Th',\n '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u0104': 'A',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u0105': 'a',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010a': 'C',\n '\\u010c': 'C',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010b': 'c',\n '\\u010d': 'c',\n '\\u010e': 'D',\n '\\u0110': 'D',\n '\\u010f': 'd',\n '\\u0111': 'd',\n '\\u0112': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u0118': 'E',\n '\\u011a': 'E',\n '\\u0113': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u0119': 'e',\n '\\u011b': 'e',\n '\\u011c': 'G',\n '\\u011e': 'G',\n '\\u0120': 'G',\n '\\u0122': 'G',\n '\\u011d': 'g',\n '\\u011f': 'g',\n '\\u0121': 'g',\n '\\u0123': 'g',\n '\\u0124': 'H',\n '\\u0126': 'H',\n '\\u0125': 'h',\n '\\u0127': 'h',\n '\\u0128': 'I',\n '\\u012a': 'I',\n '\\u012c': 'I',\n '\\u012e': 'I',\n '\\u0130': 'I',\n '\\u0129': 'i',\n '\\u012b': 'i',\n '\\u012d': 'i',\n '\\u012f': 'i',\n '\\u0131': 'i',\n '\\u0134': 'J',\n '\\u0135': 'j',\n '\\u0136': 'K',\n '\\u0137': 'k',\n '\\u0138': 'k',\n '\\u0139': 'L',\n '\\u013b': 'L',\n '\\u013d': 'L',\n '\\u013f': 'L',\n '\\u0141': 'L',\n '\\u013a': 'l',\n '\\u013c': 'l',\n '\\u013e': 'l',\n '\\u0140': 'l',\n '\\u0142': 'l',\n '\\u0143': 'N',\n '\\u0145': 'N',\n '\\u0147': 'N',\n '\\u014a': 'N',\n '\\u0144': 'n',\n '\\u0146': 'n',\n '\\u0148': 'n',\n '\\u014b': 'n',\n '\\u014c': 'O',\n '\\u014e': 'O',\n '\\u0150': 'O',\n '\\u014d': 'o',\n '\\u014f': 'o',\n '\\u0151': 'o',\n '\\u0154': 'R',\n '\\u0156': 'R',\n '\\u0158': 'R',\n '\\u0155': 'r',\n '\\u0157': 'r',\n '\\u0159': 'r',\n '\\u015a': 'S',\n '\\u015c': 'S',\n '\\u015e': 'S',\n '\\u0160': 'S',\n '\\u015b': 's',\n '\\u015d': 's',\n '\\u015f': 's',\n '\\u0161': 's',\n '\\u0162': 'T',\n '\\u0164': 'T',\n '\\u0166': 'T',\n '\\u0163': 't',\n '\\u0165': 't',\n '\\u0167': 't',\n '\\u0168': 'U',\n '\\u016a': 'U',\n '\\u016c': 'U',\n '\\u016e': 'U',\n '\\u0170': 'U',\n '\\u0172': 'U',\n '\\u0169': 'u',\n '\\u016b': 'u',\n '\\u016d': 'u',\n '\\u016f': 'u',\n '\\u0171': 'u',\n '\\u0173': 'u',\n '\\u0174': 'W',\n '\\u0175': 'w',\n '\\u0176': 'Y',\n '\\u0177': 'y',\n '\\u0178': 'Y',\n '\\u0179': 'Z',\n '\\u017b': 'Z',\n '\\u017d': 'Z',\n '\\u017a': 'z',\n '\\u017c': 'z',\n '\\u017e': 'z',\n '\\u0132': 'IJ',\n '\\u0133': 'ij',\n '\\u0152': 'Oe',\n '\\u0153': 'oe',\n '\\u0149': \"'n\",\n '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\nmodule.exports = deburrLetter;","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function (key) {\n return object == null ? undefined : object[key];\n };\n}\nmodule.exports = basePropertyOf;","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\nmodule.exports = words;","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\nmodule.exports = asciiWords;","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\nmodule.exports = hasUnicodeWord;","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\nmodule.exports = unicodeWords;","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\nfunction baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n return result;\n}\nmodule.exports = baseRepeat;","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n return result === result ? remainder ? result - remainder : result : 0;\n}\nmodule.exports = toInteger;","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\nmodule.exports = toNumber;","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') : string;\n}\nmodule.exports = baseTrim;","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\nmodule.exports = trimmedEndIndex;","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n predicate || (predicate = isFlattenable);\n result || (result = []);\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\nmodule.exports = baseFlatten;","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\nmodule.exports = isFlattenable;","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function (iteratee) {\n if (isArray(iteratee)) {\n return function (value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n };\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n var result = baseMap(collection, function (value, key, collection) {\n var criteria = arrayMap(iteratees, function (iteratee) {\n return iteratee(value);\n });\n return {\n 'criteria': criteria,\n 'index': ++index,\n 'value': value\n };\n });\n return baseSortBy(result, function (object, other) {\n return compareMultiple(object, other, orders);\n });\n}\nmodule.exports = baseOrderBy;","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);\n }\n return property(value);\n}\nmodule.exports = baseIteratee;","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function (object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\nmodule.exports = baseMatches;","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack();\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result)) {\n return false;\n }\n }\n }\n return true;\n}\nmodule.exports = baseIsMatch;","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack());\n return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n stack || (stack = new Stack());\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack());\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\nmodule.exports = baseIsEqualDeep;","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\nmodule.exports = arraySome;","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n case arrayBufferTag:\n if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n case errorTag:\n return object.name == other.name && object.message == other.message;\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == other + '';\n case mapTag:\n var convert = mapToArray;\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\nmodule.exports = equalByTag;","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n map.forEach(function (value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\nmodule.exports = mapToArray;","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\nmodule.exports = equalObjects;","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\nmodule.exports = getAllKeys;","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\nmodule.exports = baseGetAllKeys;","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function (object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function (symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\nmodule.exports = getSymbols;","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\nmodule.exports = arrayFilter;","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\nmodule.exports = stubArray;","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\nmodule.exports = baseKeys;","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\nmodule.exports = nativeKeys;","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag(new Map()) != mapTag || Promise && getTag(Promise.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {\n getTag = function (value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString:\n return dataViewTag;\n case mapCtorString:\n return mapTag;\n case promiseCtorString:\n return promiseTag;\n case setCtorString:\n return setTag;\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n return result;\n };\n}\nmodule.exports = getTag;","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\nmodule.exports = DataView;","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\nmodule.exports = Promise;","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\nmodule.exports = WeakMap;","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n while (length--) {\n var key = result[length],\n value = object[key];\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\nmodule.exports = getMatchData;","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function (object) {\n var objValue = get(object, path);\n return objValue === undefined && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\nmodule.exports = baseMatchesProperty;","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\nmodule.exports = hasIn;","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\nmodule.exports = baseHasIn;","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\nmodule.exports = property;","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function (object) {\n return object == null ? undefined : object[key];\n };\n}\nmodule.exports = baseProperty;","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function (object) {\n return baseGet(object, path);\n };\n}\nmodule.exports = basePropertyDeep;","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n baseEach(collection, function (value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\nmodule.exports = baseMap;","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\nmodule.exports = baseEach;","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\nmodule.exports = baseForOwn;","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function (collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n while (fromRight ? index-- : ++index < length) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\nmodule.exports = createBaseEach;","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\nmodule.exports = baseSortBy;","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\nmodule.exports = compareMultiple;","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) {\n return 1;\n }\n if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\nmodule.exports = compareAscending;","/**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\nfunction baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n}\nmodule.exports = baseZipObject;","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function (start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? start < end ? 1 : -1 : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\nmodule.exports = createRange;","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\nmodule.exports = baseRange;","/*\nTrix 2.1.12\nCopyright © 2024 37signals, LLC\n */\nvar t = \"2.1.12\";\nconst e = \"[data-trix-attachment]\",\n i = {\n preview: {\n presentation: \"gallery\",\n caption: {\n name: !0,\n size: !0\n }\n },\n file: {\n caption: {\n size: !0\n }\n }\n },\n n = {\n default: {\n tagName: \"div\",\n parse: !1\n },\n quote: {\n tagName: \"blockquote\",\n nestable: !0\n },\n heading1: {\n tagName: \"h1\",\n terminal: !0,\n breakOnReturn: !0,\n group: !1\n },\n code: {\n tagName: \"pre\",\n terminal: !0,\n htmlAttributes: [\"language\"],\n text: {\n plaintext: !0\n }\n },\n bulletList: {\n tagName: \"ul\",\n parse: !1\n },\n bullet: {\n tagName: \"li\",\n listAttribute: \"bulletList\",\n group: !1,\n nestable: !0,\n test(t) {\n return r(t.parentNode) === n[this.listAttribute].tagName;\n }\n },\n numberList: {\n tagName: \"ol\",\n parse: !1\n },\n number: {\n tagName: \"li\",\n listAttribute: \"numberList\",\n group: !1,\n nestable: !0,\n test(t) {\n return r(t.parentNode) === n[this.listAttribute].tagName;\n }\n },\n attachmentGallery: {\n tagName: \"div\",\n exclusive: !0,\n terminal: !0,\n parse: !1,\n group: !1\n }\n },\n r = t => {\n var e;\n return null == t || null === (e = t.tagName) || void 0 === e ? void 0 : e.toLowerCase();\n },\n o = navigator.userAgent.match(/android\\s([0-9]+.*Chrome)/i),\n s = o && parseInt(o[1]);\nvar a = {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n recentAndroid: s && s > 12,\n samsungAndroid: s && navigator.userAgent.match(/Android.*SM-/),\n forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n supportsInputEvents: \"undefined\" != typeof InputEvent && [\"data\", \"getTargetRanges\", \"inputType\"].every(t => t in InputEvent.prototype)\n },\n l = {\n ADD_ATTR: [\"language\"],\n SAFE_FOR_XML: !1,\n RETURN_DOM: !0\n },\n c = {\n attachFiles: \"Attach Files\",\n bold: \"Bold\",\n bullets: \"Bullets\",\n byte: \"Byte\",\n bytes: \"Bytes\",\n captionPlaceholder: \"Add a caption…\",\n code: \"Code\",\n heading1: \"Heading\",\n indent: \"Increase Level\",\n italic: \"Italic\",\n link: \"Link\",\n numbers: \"Numbers\",\n outdent: \"Decrease Level\",\n quote: \"Quote\",\n redo: \"Redo\",\n remove: \"Remove\",\n strike: \"Strikethrough\",\n undo: \"Undo\",\n unlink: \"Unlink\",\n url: \"URL\",\n urlPlaceholder: \"Enter a URL…\",\n GB: \"GB\",\n KB: \"KB\",\n MB: \"MB\",\n PB: \"PB\",\n TB: \"TB\"\n };\nconst u = [c.bytes, c.KB, c.MB, c.GB, c.TB, c.PB];\nvar h = {\n prefix: \"IEC\",\n precision: 2,\n formatter(t) {\n switch (t) {\n case 0:\n return \"0 \".concat(c.bytes);\n case 1:\n return \"1 \".concat(c.byte);\n default:\n let e;\n \"SI\" === this.prefix ? e = 1e3 : \"IEC\" === this.prefix && (e = 1024);\n const i = Math.floor(Math.log(t) / Math.log(e)),\n n = (t / Math.pow(e, i)).toFixed(this.precision).replace(/0*$/, \"\").replace(/\\.$/, \"\");\n return \"\".concat(n, \" \").concat(u[i]);\n }\n }\n};\nconst d = \"\\ufeff\",\n g = \" \",\n m = function (t) {\n for (const e in t) {\n const i = t[e];\n this[e] = i;\n }\n return this;\n },\n p = document.documentElement,\n f = p.matches,\n b = function (t) {\n let {\n onElement: e,\n matchingSelector: i,\n withCallback: n,\n inPhase: r,\n preventDefault: o,\n times: s\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n const a = e || p,\n l = i,\n c = \"capturing\" === r,\n u = function (t) {\n null != s && 0 == --s && u.destroy();\n const e = y(t.target, {\n matchingSelector: l\n });\n null != e && (null == n || n.call(e, t, e), o && t.preventDefault());\n };\n return u.destroy = () => a.removeEventListener(t, u, c), a.addEventListener(t, u, c), u;\n },\n v = function (t) {\n let {\n onElement: e,\n bubbles: i,\n cancelable: n,\n attributes: r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n const o = null != e ? e : p;\n i = !1 !== i, n = !1 !== n;\n const s = document.createEvent(\"Events\");\n return s.initEvent(t, i, n), null != r && m.call(s, r), o.dispatchEvent(s);\n },\n A = function (t, e) {\n if (1 === (null == t ? void 0 : t.nodeType)) return f.call(t, e);\n },\n y = function (t) {\n let {\n matchingSelector: e,\n untilNode: i\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n for (; t && t.nodeType !== Node.ELEMENT_NODE;) t = t.parentNode;\n if (null != t) {\n if (null == e) return t;\n if (t.closest && null == i) return t.closest(e);\n for (; t && t !== i;) {\n if (A(t, e)) return t;\n t = t.parentNode;\n }\n }\n },\n x = t => document.activeElement !== t && C(t, document.activeElement),\n C = function (t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n E = function (t) {\n var e;\n if (null === (e = t) || void 0 === e || !e.parentNode) return;\n let i = 0;\n for (t = t.previousSibling; t;) i++, t = t.previousSibling;\n return i;\n },\n S = t => {\n var e;\n return null == t || null === (e = t.parentNode) || void 0 === e ? void 0 : e.removeChild(t);\n },\n R = function (t) {\n let {\n onlyNodesOfType: e,\n usingFilter: i,\n expandEntityReferences: n\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n const r = (() => {\n switch (e) {\n case \"element\":\n return NodeFilter.SHOW_ELEMENT;\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n default:\n return NodeFilter.SHOW_ALL;\n }\n })();\n return document.createTreeWalker(t, r, null != i ? i : null, !0 === n);\n },\n k = t => {\n var e;\n return null == t || null === (e = t.tagName) || void 0 === e ? void 0 : e.toLowerCase();\n },\n T = function (t) {\n let e,\n i,\n n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n \"object\" == typeof t ? (n = t, t = n.tagName) : n = {\n attributes: n\n };\n const r = document.createElement(t);\n if (null != n.editable && (null == n.attributes && (n.attributes = {}), n.attributes.contenteditable = n.editable), n.attributes) for (e in n.attributes) i = n.attributes[e], r.setAttribute(e, i);\n if (n.style) for (e in n.style) i = n.style[e], r.style[e] = i;\n if (n.data) for (e in n.data) i = n.data[e], r.dataset[e] = i;\n return n.className && n.className.split(\" \").forEach(t => {\n r.classList.add(t);\n }), n.textContent && (r.textContent = n.textContent), n.childNodes && [].concat(n.childNodes).forEach(t => {\n r.appendChild(t);\n }), r;\n };\nlet w;\nconst L = function () {\n if (null != w) return w;\n w = [];\n for (const t in n) {\n const e = n[t];\n e.tagName && w.push(e.tagName);\n }\n return w;\n },\n D = t => I(null == t ? void 0 : t.firstChild),\n N = function (t) {\n let {\n strict: e\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n strict: !0\n };\n return e ? I(t) : I(t) || !I(t.firstChild) && function (t) {\n return L().includes(k(t)) && !L().includes(k(t.firstChild));\n }(t);\n },\n I = t => O(t) && \"block\" === (null == t ? void 0 : t.data),\n O = t => (null == t ? void 0 : t.nodeType) === Node.COMMENT_NODE,\n F = function (t) {\n let {\n name: e\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n if (t) return B(t) ? t.data === d ? !e || t.parentNode.dataset.trixCursorTarget === e : void 0 : F(t.firstChild);\n },\n P = t => A(t, e),\n M = t => B(t) && \"\" === (null == t ? void 0 : t.data),\n B = t => (null == t ? void 0 : t.nodeType) === Node.TEXT_NODE,\n _ = {\n level2Enabled: !0,\n getLevel() {\n return this.level2Enabled && a.supportsInputEvents ? 2 : 0;\n },\n pickFiles(t) {\n const e = T(\"input\", {\n type: \"file\",\n multiple: !0,\n hidden: !0,\n id: this.fileInputId\n });\n e.addEventListener(\"change\", () => {\n t(e.files), S(e);\n }), S(document.getElementById(this.fileInputId)), document.body.appendChild(e), e.click();\n }\n };\nvar j = {\n removeBlankTableCells: !1,\n tableCellSeparator: \" | \",\n tableRowSeparator: \"\\n\"\n },\n W = {\n bold: {\n tagName: \"strong\",\n inheritable: !0,\n parser(t) {\n const e = window.getComputedStyle(t);\n return \"bold\" === e.fontWeight || e.fontWeight >= 600;\n }\n },\n italic: {\n tagName: \"em\",\n inheritable: !0,\n parser: t => \"italic\" === window.getComputedStyle(t).fontStyle\n },\n href: {\n groupTagName: \"a\",\n parser(t) {\n const i = \"a:not(\".concat(e, \")\"),\n n = t.closest(i);\n if (n) return n.getAttribute(\"href\");\n }\n },\n strike: {\n tagName: \"del\",\n inheritable: !0\n },\n frozen: {\n style: {\n backgroundColor: \"highlight\"\n }\n }\n },\n U = {\n getDefaultHTML: () => '<div class=\"trix-button-row\">\\n <span class=\"trix-button-group trix-button-group--text-tools\" data-trix-button-group=\"text-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bold\" data-trix-attribute=\"bold\" data-trix-key=\"b\" title=\"'.concat(c.bold, '\" tabindex=\"-1\">').concat(c.bold, '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-italic\" data-trix-attribute=\"italic\" data-trix-key=\"i\" title=\"').concat(c.italic, '\" tabindex=\"-1\">').concat(c.italic, '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-strike\" data-trix-attribute=\"strike\" title=\"').concat(c.strike, '\" tabindex=\"-1\">').concat(c.strike, '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-link\" data-trix-attribute=\"href\" data-trix-action=\"link\" data-trix-key=\"k\" title=\"').concat(c.link, '\" tabindex=\"-1\">').concat(c.link, '</button>\\n </span>\\n\\n <span class=\"trix-button-group trix-button-group--block-tools\" data-trix-button-group=\"block-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-heading-1\" data-trix-attribute=\"heading1\" title=\"').concat(c.heading1, '\" tabindex=\"-1\">').concat(c.heading1, '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-quote\" data-trix-attribute=\"quote\" title=\"').concat(c.quote, '\" tabindex=\"-1\">').concat(c.quote, '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-code\" data-trix-attribute=\"code\" title=\"').concat(c.code, '\" tabindex=\"-1\">').concat(c.code, '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bullet-list\" data-trix-attribute=\"bullet\" title=\"').concat(c.bullets, '\" tabindex=\"-1\">').concat(c.bullets, '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-number-list\" data-trix-attribute=\"number\" title=\"').concat(c.numbers, '\" tabindex=\"-1\">').concat(c.numbers, '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-decrease-nesting-level\" data-trix-action=\"decreaseNestingLevel\" title=\"').concat(c.outdent, '\" tabindex=\"-1\">').concat(c.outdent, '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-increase-nesting-level\" data-trix-action=\"increaseNestingLevel\" title=\"').concat(c.indent, '\" tabindex=\"-1\">').concat(c.indent, '</button>\\n </span>\\n\\n <span class=\"trix-button-group trix-button-group--file-tools\" data-trix-button-group=\"file-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-attach\" data-trix-action=\"attachFiles\" title=\"').concat(c.attachFiles, '\" tabindex=\"-1\">').concat(c.attachFiles, '</button>\\n </span>\\n\\n <span class=\"trix-button-group-spacer\"></span>\\n\\n <span class=\"trix-button-group trix-button-group--history-tools\" data-trix-button-group=\"history-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-undo\" data-trix-action=\"undo\" data-trix-key=\"z\" title=\"').concat(c.undo, '\" tabindex=\"-1\">').concat(c.undo, '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-redo\" data-trix-action=\"redo\" data-trix-key=\"shift+z\" title=\"').concat(c.redo, '\" tabindex=\"-1\">').concat(c.redo, '</button>\\n </span>\\n </div>\\n\\n <div class=\"trix-dialogs\" data-trix-dialogs>\\n <div class=\"trix-dialog trix-dialog--link\" data-trix-dialog=\"href\" data-trix-dialog-attribute=\"href\">\\n <div class=\"trix-dialog__link-fields\">\\n <input type=\"url\" name=\"href\" class=\"trix-input trix-input--dialog\" placeholder=\"').concat(c.urlPlaceholder, '\" aria-label=\"').concat(c.url, '\" data-trix-validate-href required data-trix-input>\\n <div class=\"trix-button-group\">\\n <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"').concat(c.link, '\" data-trix-method=\"setAttribute\">\\n <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"').concat(c.unlink, '\" data-trix-method=\"removeAttribute\">\\n </div>\\n </div>\\n </div>\\n </div>')\n };\nconst V = {\n interval: 5e3\n};\nvar z = Object.freeze({\n __proto__: null,\n attachments: i,\n blockAttributes: n,\n browser: a,\n css: {\n attachment: \"attachment\",\n attachmentCaption: \"attachment__caption\",\n attachmentCaptionEditor: \"attachment__caption-editor\",\n attachmentMetadata: \"attachment__metadata\",\n attachmentMetadataContainer: \"attachment__metadata-container\",\n attachmentName: \"attachment__name\",\n attachmentProgress: \"attachment__progress\",\n attachmentSize: \"attachment__size\",\n attachmentToolbar: \"attachment__toolbar\",\n attachmentGallery: \"attachment-gallery\"\n },\n dompurify: l,\n fileSize: h,\n input: _,\n keyNames: {\n 8: \"backspace\",\n 9: \"tab\",\n 13: \"return\",\n 27: \"escape\",\n 37: \"left\",\n 39: \"right\",\n 46: \"delete\",\n 68: \"d\",\n 72: \"h\",\n 79: \"o\"\n },\n lang: c,\n parser: j,\n textAttributes: W,\n toolbar: U,\n undo: V\n});\nclass q {\n static proxyMethod(t) {\n const {\n name: e,\n toMethod: i,\n toProperty: n,\n optional: r\n } = H(t);\n this.prototype[e] = function () {\n let t, o;\n var s, a;\n i ? o = r ? null === (s = this[i]) || void 0 === s ? void 0 : s.call(this) : this[i]() : n && (o = this[n]);\n return r ? (t = null === (a = o) || void 0 === a ? void 0 : a[e], t ? J.call(t, o, arguments) : void 0) : (t = o[e], J.call(t, o, arguments));\n };\n }\n}\nconst H = function (t) {\n const e = t.match(K);\n if (!e) throw new Error(\"can't parse @proxyMethod expression: \".concat(t));\n const i = {\n name: e[4]\n };\n return null != e[2] ? i.toMethod = e[1] : i.toProperty = e[1], null != e[3] && (i.optional = !0), i;\n },\n {\n apply: J\n } = Function.prototype,\n K = new RegExp(\"^(.+?)(\\\\(\\\\))?(\\\\?)?\\\\.(.+?)$\");\nvar G, Y, $;\nclass X extends q {\n static box() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"\";\n return t instanceof this ? t : this.fromUCS2String(null == t ? void 0 : t.toString());\n }\n static fromUCS2String(t) {\n return new this(t, et(t));\n }\n static fromCodepoints(t) {\n return new this(it(t), t);\n }\n constructor(t, e) {\n super(...arguments), this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length;\n }\n offsetToUCS2Offset(t) {\n return it(this.codepoints.slice(0, Math.max(0, t))).length;\n }\n offsetFromUCS2Offset(t) {\n return et(this.ucs2String.slice(0, Math.max(0, t))).length;\n }\n slice() {\n return this.constructor.fromCodepoints(this.codepoints.slice(...arguments));\n }\n charAt(t) {\n return this.slice(t, t + 1);\n }\n isEqualTo(t) {\n return this.constructor.box(t).ucs2String === this.ucs2String;\n }\n toJSON() {\n return this.ucs2String;\n }\n getCacheKey() {\n return this.ucs2String;\n }\n toString() {\n return this.ucs2String;\n }\n}\nconst Z = 1 === (null === (G = Array.from) || void 0 === G ? void 0 : G.call(Array, \"👼\").length),\n Q = null != (null === (Y = \" \".codePointAt) || void 0 === Y ? void 0 : Y.call(\" \", 0)),\n tt = \" 👼\" === (null === ($ = String.fromCodePoint) || void 0 === $ ? void 0 : $.call(String, 32, 128124));\nlet et, it;\net = Z && Q ? t => Array.from(t).map(t => t.codePointAt(0)) : function (t) {\n const e = [];\n let i = 0;\n const {\n length: n\n } = t;\n for (; i < n;) {\n let r = t.charCodeAt(i++);\n if (55296 <= r && r <= 56319 && i < n) {\n const e = t.charCodeAt(i++);\n 56320 == (64512 & e) ? r = ((1023 & r) << 10) + (1023 & e) + 65536 : i--;\n }\n e.push(r);\n }\n return e;\n}, it = tt ? t => String.fromCodePoint(...Array.from(t || [])) : function (t) {\n return (() => {\n const e = [];\n return Array.from(t).forEach(t => {\n let i = \"\";\n t > 65535 && (t -= 65536, i += String.fromCharCode(t >>> 10 & 1023 | 55296), t = 56320 | 1023 & t), e.push(i + String.fromCharCode(t));\n }), e;\n })().join(\"\");\n};\nlet nt = 0;\nclass rt extends q {\n static fromJSONString(t) {\n return this.fromJSON(JSON.parse(t));\n }\n constructor() {\n super(...arguments), this.id = ++nt;\n }\n hasSameConstructorAs(t) {\n return this.constructor === (null == t ? void 0 : t.constructor);\n }\n isEqualTo(t) {\n return this === t;\n }\n inspect() {\n const t = [],\n e = this.contentsForInspection() || {};\n for (const i in e) {\n const n = e[i];\n t.push(\"\".concat(i, \"=\").concat(n));\n }\n return \"#<\".concat(this.constructor.name, \":\").concat(this.id).concat(t.length ? \" \".concat(t.join(\", \")) : \"\", \">\");\n }\n contentsForInspection() {}\n toJSONString() {\n return JSON.stringify(this);\n }\n toUTF16String() {\n return X.box(this);\n }\n getCacheKey() {\n return this.id.toString();\n }\n}\nconst ot = function () {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],\n e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];\n if (t.length !== e.length) return !1;\n for (let i = 0; i < t.length; i++) {\n if (t[i] !== e[i]) return !1;\n }\n return !0;\n },\n st = function (t) {\n const e = t.slice(0);\n for (var i = arguments.length, n = new Array(i > 1 ? i - 1 : 0), r = 1; r < i; r++) n[r - 1] = arguments[r];\n return e.splice(...n), e;\n },\n at = /[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,\n lt = function () {\n const t = T(\"input\", {\n dir: \"auto\",\n name: \"x\",\n dirName: \"x.dir\"\n }),\n e = T(\"textarea\", {\n dir: \"auto\",\n name: \"y\",\n dirName: \"y.dir\"\n }),\n i = T(\"form\");\n i.appendChild(t), i.appendChild(e);\n const n = function () {\n try {\n return new FormData(i).has(e.dirName);\n } catch (t) {\n return !1;\n }\n }(),\n r = function () {\n try {\n return t.matches(\":dir(ltr),:dir(rtl)\");\n } catch (t) {\n return !1;\n }\n }();\n return n ? function (t) {\n return e.value = t, new FormData(i).get(e.dirName);\n } : r ? function (e) {\n return t.value = e, t.matches(\":dir(rtl)\") ? \"rtl\" : \"ltr\";\n } : function (t) {\n const e = t.trim().charAt(0);\n return at.test(e) ? \"rtl\" : \"ltr\";\n };\n }();\nlet ct = null,\n ut = null,\n ht = null,\n dt = null;\nconst gt = () => (ct || (ct = bt().concat(pt())), ct),\n mt = t => n[t],\n pt = () => (ut || (ut = Object.keys(n)), ut),\n ft = t => W[t],\n bt = () => (ht || (ht = Object.keys(W)), ht),\n vt = function (t, e) {\n At(t).textContent = e.replace(/%t/g, t);\n },\n At = function (t) {\n const e = document.createElement(\"style\");\n e.setAttribute(\"type\", \"text/css\"), e.setAttribute(\"data-tag-name\", t.toLowerCase());\n const i = yt();\n return i && e.setAttribute(\"nonce\", i), document.head.insertBefore(e, document.head.firstChild), e;\n },\n yt = function () {\n const t = xt(\"trix-csp-nonce\") || xt(\"csp-nonce\");\n if (t) {\n const {\n nonce: e,\n content: i\n } = t;\n return \"\" == e ? i : e;\n }\n },\n xt = t => document.head.querySelector(\"meta[name=\".concat(t, \"]\")),\n Ct = {\n \"application/x-trix-feature-detection\": \"test\"\n },\n Et = function (t) {\n const e = t.getData(\"text/plain\"),\n i = t.getData(\"text/html\");\n if (!e || !i) return null == e ? void 0 : e.length;\n {\n const {\n body: t\n } = new DOMParser().parseFromString(i, \"text/html\");\n if (t.textContent === e) return !t.querySelector(\"*\");\n }\n },\n St = /Mac|^iP/.test(navigator.platform) ? t => t.metaKey : t => t.ctrlKey;\nconst Rt = t => setTimeout(t, 1),\n kt = function () {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n const e = {};\n for (const i in t) {\n const n = t[i];\n e[i] = n;\n }\n return e;\n },\n Tt = function () {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n if (Object.keys(t).length !== Object.keys(e).length) return !1;\n for (const i in t) {\n if (t[i] !== e[i]) return !1;\n }\n return !0;\n },\n wt = function (t) {\n if (null != t) return Array.isArray(t) || (t = [t, t]), [Nt(t[0]), Nt(null != t[1] ? t[1] : t[0])];\n },\n Lt = function (t) {\n if (null == t) return;\n const [e, i] = wt(t);\n return It(e, i);\n },\n Dt = function (t, e) {\n if (null == t || null == e) return;\n const [i, n] = wt(t),\n [r, o] = wt(e);\n return It(i, r) && It(n, o);\n },\n Nt = function (t) {\n return \"number\" == typeof t ? t : kt(t);\n },\n It = function (t, e) {\n return \"number\" == typeof t ? t === e : Tt(t, e);\n };\nclass Ot extends q {\n constructor() {\n super(...arguments), this.update = this.update.bind(this), this.selectionManagers = [];\n }\n start() {\n this.started || (this.started = !0, document.addEventListener(\"selectionchange\", this.update, !0));\n }\n stop() {\n if (this.started) return this.started = !1, document.removeEventListener(\"selectionchange\", this.update, !0);\n }\n registerSelectionManager(t) {\n if (!this.selectionManagers.includes(t)) return this.selectionManagers.push(t), this.start();\n }\n unregisterSelectionManager(t) {\n if (this.selectionManagers = this.selectionManagers.filter(e => e !== t), 0 === this.selectionManagers.length) return this.stop();\n }\n notifySelectionManagersOfSelectionChange() {\n return this.selectionManagers.map(t => t.selectionDidChange());\n }\n update() {\n this.notifySelectionManagersOfSelectionChange();\n }\n reset() {\n this.update();\n }\n}\nconst Ft = new Ot(),\n Pt = function () {\n const t = window.getSelection();\n if (t.rangeCount > 0) return t;\n },\n Mt = function () {\n var t;\n const e = null === (t = Pt()) || void 0 === t ? void 0 : t.getRangeAt(0);\n if (e && !_t(e)) return e;\n },\n Bt = function (t) {\n const e = window.getSelection();\n return e.removeAllRanges(), e.addRange(t), Ft.update();\n },\n _t = t => jt(t.startContainer) || jt(t.endContainer),\n jt = t => !Object.getPrototypeOf(t),\n Wt = t => t.replace(new RegExp(\"\".concat(d), \"g\"), \"\").replace(new RegExp(\"\".concat(g), \"g\"), \" \"),\n Ut = new RegExp(\"[^\\\\S\".concat(g, \"]\")),\n Vt = t => t.replace(new RegExp(\"\".concat(Ut.source), \"g\"), \" \").replace(/\\ {2,}/g, \" \"),\n zt = function (t, e) {\n if (t.isEqualTo(e)) return [\"\", \"\"];\n const i = qt(t, e),\n {\n length: n\n } = i.utf16String;\n let r;\n if (n) {\n const {\n offset: o\n } = i,\n s = t.codepoints.slice(0, o).concat(t.codepoints.slice(o + n));\n r = qt(e, X.fromCodepoints(s));\n } else r = qt(e, t);\n return [i.utf16String.toString(), r.utf16String.toString()];\n },\n qt = function (t, e) {\n let i = 0,\n n = t.length,\n r = e.length;\n for (; i < n && t.charAt(i).isEqualTo(e.charAt(i));) i++;\n for (; n > i + 1 && t.charAt(n - 1).isEqualTo(e.charAt(r - 1));) n--, r--;\n return {\n utf16String: t.slice(i, n),\n offset: i\n };\n };\nclass Ht extends rt {\n static fromCommonAttributesOfObjects() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n if (!t.length) return new this();\n let e = Yt(t[0]),\n i = e.getKeys();\n return t.slice(1).forEach(t => {\n i = e.getKeysCommonToHash(Yt(t)), e = e.slice(i);\n }), e;\n }\n static box(t) {\n return Yt(t);\n }\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n super(...arguments), this.values = Gt(t);\n }\n add(t, e) {\n return this.merge(Jt(t, e));\n }\n remove(t) {\n return new Ht(Gt(this.values, t));\n }\n get(t) {\n return this.values[t];\n }\n has(t) {\n return t in this.values;\n }\n merge(t) {\n return new Ht(Kt(this.values, $t(t)));\n }\n slice(t) {\n const e = {};\n return Array.from(t).forEach(t => {\n this.has(t) && (e[t] = this.values[t]);\n }), new Ht(e);\n }\n getKeys() {\n return Object.keys(this.values);\n }\n getKeysCommonToHash(t) {\n return t = Yt(t), this.getKeys().filter(e => this.values[e] === t.values[e]);\n }\n isEqualTo(t) {\n return ot(this.toArray(), Yt(t).toArray());\n }\n isEmpty() {\n return 0 === this.getKeys().length;\n }\n toArray() {\n if (!this.array) {\n const t = [];\n for (const e in this.values) {\n const i = this.values[e];\n t.push(t.push(e, i));\n }\n this.array = t.slice(0);\n }\n return this.array;\n }\n toObject() {\n return Gt(this.values);\n }\n toJSON() {\n return this.toObject();\n }\n contentsForInspection() {\n return {\n values: JSON.stringify(this.values)\n };\n }\n}\nconst Jt = function (t, e) {\n const i = {};\n return i[t] = e, i;\n },\n Kt = function (t, e) {\n const i = Gt(t);\n for (const t in e) {\n const n = e[t];\n i[t] = n;\n }\n return i;\n },\n Gt = function (t, e) {\n const i = {};\n return Object.keys(t).sort().forEach(n => {\n n !== e && (i[n] = t[n]);\n }), i;\n },\n Yt = function (t) {\n return t instanceof Ht ? t : new Ht(t);\n },\n $t = function (t) {\n return t instanceof Ht ? t.values : t;\n };\nclass Xt {\n static groupObjects() {\n let t,\n e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],\n {\n depth: i,\n asTree: n\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n n && null == i && (i = 0);\n const r = [];\n return Array.from(e).forEach(e => {\n var o;\n if (t) {\n var s, a, l;\n if (null !== (s = e.canBeGrouped) && void 0 !== s && s.call(e, i) && null !== (a = (l = t[t.length - 1]).canBeGroupedWith) && void 0 !== a && a.call(l, e, i)) return void t.push(e);\n r.push(new this(t, {\n depth: i,\n asTree: n\n })), t = null;\n }\n null !== (o = e.canBeGrouped) && void 0 !== o && o.call(e, i) ? t = [e] : r.push(e);\n }), t && r.push(new this(t, {\n depth: i,\n asTree: n\n })), r;\n }\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],\n {\n depth: e,\n asTree: i\n } = arguments.length > 1 ? arguments[1] : void 0;\n this.objects = t, i && (this.depth = e, this.objects = this.constructor.groupObjects(this.objects, {\n asTree: i,\n depth: this.depth + 1\n }));\n }\n getObjects() {\n return this.objects;\n }\n getDepth() {\n return this.depth;\n }\n getCacheKey() {\n const t = [\"objectGroup\"];\n return Array.from(this.getObjects()).forEach(e => {\n t.push(e.getCacheKey());\n }), t.join(\"/\");\n }\n}\nclass Zt extends q {\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n super(...arguments), this.objects = {}, Array.from(t).forEach(t => {\n const e = JSON.stringify(t);\n null == this.objects[e] && (this.objects[e] = t);\n });\n }\n find(t) {\n const e = JSON.stringify(t);\n return this.objects[e];\n }\n}\nclass Qt {\n constructor(t) {\n this.reset(t);\n }\n add(t) {\n const e = te(t);\n this.elements[e] = t;\n }\n remove(t) {\n const e = te(t),\n i = this.elements[e];\n if (i) return delete this.elements[e], i;\n }\n reset() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n return this.elements = {}, Array.from(t).forEach(t => {\n this.add(t);\n }), t;\n }\n}\nconst te = t => t.dataset.trixStoreKey;\nclass ee extends q {\n isPerforming() {\n return !0 === this.performing;\n }\n hasPerformed() {\n return !0 === this.performed;\n }\n hasSucceeded() {\n return this.performed && this.succeeded;\n }\n hasFailed() {\n return this.performed && !this.succeeded;\n }\n getPromise() {\n return this.promise || (this.promise = new Promise((t, e) => (this.performing = !0, this.perform((i, n) => {\n this.succeeded = i, this.performing = !1, this.performed = !0, this.succeeded ? t(n) : e(n);\n })))), this.promise;\n }\n perform(t) {\n return t(!1);\n }\n release() {\n var t, e;\n null === (t = this.promise) || void 0 === t || null === (e = t.cancel) || void 0 === e || e.call(t), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null;\n }\n}\nee.proxyMethod(\"getPromise().then\"), ee.proxyMethod(\"getPromise().catch\");\nclass ie extends q {\n constructor(t) {\n let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n super(...arguments), this.object = t, this.options = e, this.childViews = [], this.rootView = this;\n }\n getNodes() {\n return this.nodes || (this.nodes = this.createNodes()), this.nodes.map(t => t.cloneNode(!0));\n }\n invalidate() {\n var t;\n return this.nodes = null, this.childViews = [], null === (t = this.parentView) || void 0 === t ? void 0 : t.invalidate();\n }\n invalidateViewForObject(t) {\n var e;\n return null === (e = this.findViewForObject(t)) || void 0 === e ? void 0 : e.invalidate();\n }\n findOrCreateCachedChildView(t, e, i) {\n let n = this.getCachedViewForObject(e);\n return n ? this.recordChildView(n) : (n = this.createChildView(...arguments), this.cacheViewForObject(n, e)), n;\n }\n createChildView(t, e) {\n let i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\n e instanceof Xt && (i.viewClass = t, t = ne);\n const n = new t(e, i);\n return this.recordChildView(n);\n }\n recordChildView(t) {\n return t.parentView = this, t.rootView = this.rootView, this.childViews.push(t), t;\n }\n getAllChildViews() {\n let t = [];\n return this.childViews.forEach(e => {\n t.push(e), t = t.concat(e.getAllChildViews());\n }), t;\n }\n findElement() {\n return this.findElementForObject(this.object);\n }\n findElementForObject(t) {\n const e = null == t ? void 0 : t.id;\n if (e) return this.rootView.element.querySelector(\"[data-trix-id='\".concat(e, \"']\"));\n }\n findViewForObject(t) {\n for (const e of this.getAllChildViews()) if (e.object === t) return e;\n }\n getViewCache() {\n return this.rootView !== this ? this.rootView.getViewCache() : this.isViewCachingEnabled() ? (this.viewCache || (this.viewCache = {}), this.viewCache) : void 0;\n }\n isViewCachingEnabled() {\n return !1 !== this.shouldCacheViews;\n }\n enableViewCaching() {\n this.shouldCacheViews = !0;\n }\n disableViewCaching() {\n this.shouldCacheViews = !1;\n }\n getCachedViewForObject(t) {\n var e;\n return null === (e = this.getViewCache()) || void 0 === e ? void 0 : e[t.getCacheKey()];\n }\n cacheViewForObject(t, e) {\n const i = this.getViewCache();\n i && (i[e.getCacheKey()] = t);\n }\n garbageCollectCachedViews() {\n const t = this.getViewCache();\n if (t) {\n const e = this.getAllChildViews().concat(this).map(t => t.object.getCacheKey());\n for (const i in t) e.includes(i) || delete t[i];\n }\n }\n}\nclass ne extends ie {\n constructor() {\n super(...arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass;\n }\n getChildViews() {\n return this.childViews.length || Array.from(this.objectGroup.getObjects()).forEach(t => {\n this.findOrCreateCachedChildView(this.viewClass, t, this.options);\n }), this.childViews;\n }\n createNodes() {\n const t = this.createContainerElement();\n return this.getChildViews().forEach(e => {\n Array.from(e.getNodes()).forEach(e => {\n t.appendChild(e);\n });\n }), [t];\n }\n createContainerElement() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.objectGroup.getDepth();\n return this.getChildViews()[0].createContainerElement(t);\n }\n}\n/*! @license DOMPurify 3.2.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.3/LICENSE */\nconst {\n entries: re,\n setPrototypeOf: oe,\n isFrozen: se,\n getPrototypeOf: ae,\n getOwnPropertyDescriptor: le\n} = Object;\nlet {\n freeze: ce,\n seal: ue,\n create: he\n } = Object,\n {\n apply: de,\n construct: ge\n } = \"undefined\" != typeof Reflect && Reflect;\nce || (ce = function (t) {\n return t;\n}), ue || (ue = function (t) {\n return t;\n}), de || (de = function (t, e, i) {\n return t.apply(e, i);\n}), ge || (ge = function (t, e) {\n return new t(...e);\n});\nconst me = Te(Array.prototype.forEach),\n pe = Te(Array.prototype.pop),\n fe = Te(Array.prototype.push),\n be = Te(String.prototype.toLowerCase),\n ve = Te(String.prototype.toString),\n Ae = Te(String.prototype.match),\n ye = Te(String.prototype.replace),\n xe = Te(String.prototype.indexOf),\n Ce = Te(String.prototype.trim),\n Ee = Te(Object.prototype.hasOwnProperty),\n Se = Te(RegExp.prototype.test),\n Re = (ke = TypeError, function () {\n for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i];\n return ge(ke, e);\n });\nvar ke;\nfunction Te(t) {\n return function (e) {\n for (var i = arguments.length, n = new Array(i > 1 ? i - 1 : 0), r = 1; r < i; r++) n[r - 1] = arguments[r];\n return de(t, e, n);\n };\n}\nfunction we(t, e) {\n let i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : be;\n oe && oe(t, null);\n let n = e.length;\n for (; n--;) {\n let r = e[n];\n if (\"string\" == typeof r) {\n const t = i(r);\n t !== r && (se(e) || (e[n] = t), r = t);\n }\n t[r] = !0;\n }\n return t;\n}\nfunction Le(t) {\n for (let e = 0; e < t.length; e++) {\n Ee(t, e) || (t[e] = null);\n }\n return t;\n}\nfunction De(t) {\n const e = he(null);\n for (const [i, n] of re(t)) {\n Ee(t, i) && (Array.isArray(n) ? e[i] = Le(n) : n && \"object\" == typeof n && n.constructor === Object ? e[i] = De(n) : e[i] = n);\n }\n return e;\n}\nfunction Ne(t, e) {\n for (; null !== t;) {\n const i = le(t, e);\n if (i) {\n if (i.get) return Te(i.get);\n if (\"function\" == typeof i.value) return Te(i.value);\n }\n t = ae(t);\n }\n return function () {\n return null;\n };\n}\nconst Ie = ce([\"a\", \"abbr\", \"acronym\", \"address\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"bdi\", \"bdo\", \"big\", \"blink\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"center\", \"cite\", \"code\", \"col\", \"colgroup\", \"content\", \"data\", \"datalist\", \"dd\", \"decorator\", \"del\", \"details\", \"dfn\", \"dialog\", \"dir\", \"div\", \"dl\", \"dt\", \"element\", \"em\", \"fieldset\", \"figcaption\", \"figure\", \"font\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"img\", \"input\", \"ins\", \"kbd\", \"label\", \"legend\", \"li\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meter\", \"nav\", \"nobr\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"picture\", \"pre\", \"progress\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"section\", \"select\", \"shadow\", \"small\", \"source\", \"spacer\", \"span\", \"strike\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"template\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"tr\", \"track\", \"tt\", \"u\", \"ul\", \"var\", \"video\", \"wbr\"]),\n Oe = ce([\"svg\", \"a\", \"altglyph\", \"altglyphdef\", \"altglyphitem\", \"animatecolor\", \"animatemotion\", \"animatetransform\", \"circle\", \"clippath\", \"defs\", \"desc\", \"ellipse\", \"filter\", \"font\", \"g\", \"glyph\", \"glyphref\", \"hkern\", \"image\", \"line\", \"lineargradient\", \"marker\", \"mask\", \"metadata\", \"mpath\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialgradient\", \"rect\", \"stop\", \"style\", \"switch\", \"symbol\", \"text\", \"textpath\", \"title\", \"tref\", \"tspan\", \"view\", \"vkern\"]),\n Fe = ce([\"feBlend\", \"feColorMatrix\", \"feComponentTransfer\", \"feComposite\", \"feConvolveMatrix\", \"feDiffuseLighting\", \"feDisplacementMap\", \"feDistantLight\", \"feDropShadow\", \"feFlood\", \"feFuncA\", \"feFuncB\", \"feFuncG\", \"feFuncR\", \"feGaussianBlur\", \"feImage\", \"feMerge\", \"feMergeNode\", \"feMorphology\", \"feOffset\", \"fePointLight\", \"feSpecularLighting\", \"feSpotLight\", \"feTile\", \"feTurbulence\"]),\n Pe = ce([\"animate\", \"color-profile\", \"cursor\", \"discard\", \"font-face\", \"font-face-format\", \"font-face-name\", \"font-face-src\", \"font-face-uri\", \"foreignobject\", \"hatch\", \"hatchpath\", \"mesh\", \"meshgradient\", \"meshpatch\", \"meshrow\", \"missing-glyph\", \"script\", \"set\", \"solidcolor\", \"unknown\", \"use\"]),\n Me = ce([\"math\", \"menclose\", \"merror\", \"mfenced\", \"mfrac\", \"mglyph\", \"mi\", \"mlabeledtr\", \"mmultiscripts\", \"mn\", \"mo\", \"mover\", \"mpadded\", \"mphantom\", \"mroot\", \"mrow\", \"ms\", \"mspace\", \"msqrt\", \"mstyle\", \"msub\", \"msup\", \"msubsup\", \"mtable\", \"mtd\", \"mtext\", \"mtr\", \"munder\", \"munderover\", \"mprescripts\"]),\n Be = ce([\"maction\", \"maligngroup\", \"malignmark\", \"mlongdiv\", \"mscarries\", \"mscarry\", \"msgroup\", \"mstack\", \"msline\", \"msrow\", \"semantics\", \"annotation\", \"annotation-xml\", \"mprescripts\", \"none\"]),\n _e = ce([\"#text\"]),\n je = ce([\"accept\", \"action\", \"align\", \"alt\", \"autocapitalize\", \"autocomplete\", \"autopictureinpicture\", \"autoplay\", \"background\", \"bgcolor\", \"border\", \"capture\", \"cellpadding\", \"cellspacing\", \"checked\", \"cite\", \"class\", \"clear\", \"color\", \"cols\", \"colspan\", \"controls\", \"controlslist\", \"coords\", \"crossorigin\", \"datetime\", \"decoding\", \"default\", \"dir\", \"disabled\", \"disablepictureinpicture\", \"disableremoteplayback\", \"download\", \"draggable\", \"enctype\", \"enterkeyhint\", \"face\", \"for\", \"headers\", \"height\", \"hidden\", \"high\", \"href\", \"hreflang\", \"id\", \"inputmode\", \"integrity\", \"ismap\", \"kind\", \"label\", \"lang\", \"list\", \"loading\", \"loop\", \"low\", \"max\", \"maxlength\", \"media\", \"method\", \"min\", \"minlength\", \"multiple\", \"muted\", \"name\", \"nonce\", \"noshade\", \"novalidate\", \"nowrap\", \"open\", \"optimum\", \"pattern\", \"placeholder\", \"playsinline\", \"popover\", \"popovertarget\", \"popovertargetaction\", \"poster\", \"preload\", \"pubdate\", \"radiogroup\", \"readonly\", \"rel\", \"required\", \"rev\", \"reversed\", \"role\", \"rows\", \"rowspan\", \"spellcheck\", \"scope\", \"selected\", \"shape\", \"size\", \"sizes\", \"span\", \"srclang\", \"start\", \"src\", \"srcset\", \"step\", \"style\", \"summary\", \"tabindex\", \"title\", \"translate\", \"type\", \"usemap\", \"valign\", \"value\", \"width\", \"wrap\", \"xmlns\", \"slot\"]),\n We = ce([\"accent-height\", \"accumulate\", \"additive\", \"alignment-baseline\", \"amplitude\", \"ascent\", \"attributename\", \"attributetype\", \"azimuth\", \"basefrequency\", \"baseline-shift\", \"begin\", \"bias\", \"by\", \"class\", \"clip\", \"clippathunits\", \"clip-path\", \"clip-rule\", \"color\", \"color-interpolation\", \"color-interpolation-filters\", \"color-profile\", \"color-rendering\", \"cx\", \"cy\", \"d\", \"dx\", \"dy\", \"diffuseconstant\", \"direction\", \"display\", \"divisor\", \"dur\", \"edgemode\", \"elevation\", \"end\", \"exponent\", \"fill\", \"fill-opacity\", \"fill-rule\", \"filter\", \"filterunits\", \"flood-color\", \"flood-opacity\", \"font-family\", \"font-size\", \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-variant\", \"font-weight\", \"fx\", \"fy\", \"g1\", \"g2\", \"glyph-name\", \"glyphref\", \"gradientunits\", \"gradienttransform\", \"height\", \"href\", \"id\", \"image-rendering\", \"in\", \"in2\", \"intercept\", \"k\", \"k1\", \"k2\", \"k3\", \"k4\", \"kerning\", \"keypoints\", \"keysplines\", \"keytimes\", \"lang\", \"lengthadjust\", \"letter-spacing\", \"kernelmatrix\", \"kernelunitlength\", \"lighting-color\", \"local\", \"marker-end\", \"marker-mid\", \"marker-start\", \"markerheight\", \"markerunits\", \"markerwidth\", \"maskcontentunits\", \"maskunits\", \"max\", \"mask\", \"media\", \"method\", \"mode\", \"min\", \"name\", \"numoctaves\", \"offset\", \"operator\", \"opacity\", \"order\", \"orient\", \"orientation\", \"origin\", \"overflow\", \"paint-order\", \"path\", \"pathlength\", \"patterncontentunits\", \"patterntransform\", \"patternunits\", \"points\", \"preservealpha\", \"preserveaspectratio\", \"primitiveunits\", \"r\", \"rx\", \"ry\", \"radius\", \"refx\", \"refy\", \"repeatcount\", \"repeatdur\", \"restart\", \"result\", \"rotate\", \"scale\", \"seed\", \"shape-rendering\", \"slope\", \"specularconstant\", \"specularexponent\", \"spreadmethod\", \"startoffset\", \"stddeviation\", \"stitchtiles\", \"stop-color\", \"stop-opacity\", \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\", \"stroke-miterlimit\", \"stroke-opacity\", \"stroke\", \"stroke-width\", \"style\", \"surfacescale\", \"systemlanguage\", \"tabindex\", \"tablevalues\", \"targetx\", \"targety\", \"transform\", \"transform-origin\", \"text-anchor\", \"text-decoration\", \"text-rendering\", \"textlength\", \"type\", \"u1\", \"u2\", \"unicode\", \"values\", \"viewbox\", \"visibility\", \"version\", \"vert-adv-y\", \"vert-origin-x\", \"vert-origin-y\", \"width\", \"word-spacing\", \"wrap\", \"writing-mode\", \"xchannelselector\", \"ychannelselector\", \"x\", \"x1\", \"x2\", \"xmlns\", \"y\", \"y1\", \"y2\", \"z\", \"zoomandpan\"]),\n Ue = ce([\"accent\", \"accentunder\", \"align\", \"bevelled\", \"close\", \"columnsalign\", \"columnlines\", \"columnspan\", \"denomalign\", \"depth\", \"dir\", \"display\", \"displaystyle\", \"encoding\", \"fence\", \"frame\", \"height\", \"href\", \"id\", \"largeop\", \"length\", \"linethickness\", \"lspace\", \"lquote\", \"mathbackground\", \"mathcolor\", \"mathsize\", \"mathvariant\", \"maxsize\", \"minsize\", \"movablelimits\", \"notation\", \"numalign\", \"open\", \"rowalign\", \"rowlines\", \"rowspacing\", \"rowspan\", \"rspace\", \"rquote\", \"scriptlevel\", \"scriptminsize\", \"scriptsizemultiplier\", \"selection\", \"separator\", \"separators\", \"stretchy\", \"subscriptshift\", \"supscriptshift\", \"symmetric\", \"voffset\", \"width\", \"xmlns\"]),\n Ve = ce([\"xlink:href\", \"xml:id\", \"xlink:title\", \"xml:space\", \"xmlns:xlink\"]),\n ze = ue(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm),\n qe = ue(/<%[\\w\\W]*|[\\w\\W]*%>/gm),\n He = ue(/\\$\\{[\\w\\W]*}/gm),\n Je = ue(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/),\n Ke = ue(/^aria-[\\-\\w]+$/),\n Ge = ue(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i),\n Ye = ue(/^(?:\\w+script|data):/i),\n $e = ue(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g),\n Xe = ue(/^html$/i),\n Ze = ue(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\nvar Qe = Object.freeze({\n __proto__: null,\n ARIA_ATTR: Ke,\n ATTR_WHITESPACE: $e,\n CUSTOM_ELEMENT: Ze,\n DATA_ATTR: Je,\n DOCTYPE_NAME: Xe,\n ERB_EXPR: qe,\n IS_ALLOWED_URI: Ge,\n IS_SCRIPT_OR_DATA: Ye,\n MUSTACHE_EXPR: ze,\n TMPLIT_EXPR: He\n});\nconst ti = 1,\n ei = 3,\n ii = 7,\n ni = 8,\n ri = 9,\n oi = function () {\n return \"undefined\" == typeof window ? null : window;\n };\nvar si = function t() {\n let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : oi();\n const i = e => t(e);\n if (i.version = \"3.2.3\", i.removed = [], !e || !e.document || e.document.nodeType !== ri) return i.isSupported = !1, i;\n let {\n document: n\n } = e;\n const r = n,\n o = r.currentScript,\n {\n DocumentFragment: s,\n HTMLTemplateElement: a,\n Node: l,\n Element: c,\n NodeFilter: u,\n NamedNodeMap: h = e.NamedNodeMap || e.MozNamedAttrMap,\n HTMLFormElement: d,\n DOMParser: g,\n trustedTypes: m\n } = e,\n p = c.prototype,\n f = Ne(p, \"cloneNode\"),\n b = Ne(p, \"remove\"),\n v = Ne(p, \"nextSibling\"),\n A = Ne(p, \"childNodes\"),\n y = Ne(p, \"parentNode\");\n if (\"function\" == typeof a) {\n const t = n.createElement(\"template\");\n t.content && t.content.ownerDocument && (n = t.content.ownerDocument);\n }\n let x,\n C = \"\";\n const {\n implementation: E,\n createNodeIterator: S,\n createDocumentFragment: R,\n getElementsByTagName: k\n } = n,\n {\n importNode: T\n } = r;\n let w = {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n i.isSupported = \"function\" == typeof re && \"function\" == typeof y && E && void 0 !== E.createHTMLDocument;\n const {\n MUSTACHE_EXPR: L,\n ERB_EXPR: D,\n TMPLIT_EXPR: N,\n DATA_ATTR: I,\n ARIA_ATTR: O,\n IS_SCRIPT_OR_DATA: F,\n ATTR_WHITESPACE: P,\n CUSTOM_ELEMENT: M\n } = Qe;\n let {\n IS_ALLOWED_URI: B\n } = Qe,\n _ = null;\n const j = we({}, [...Ie, ...Oe, ...Fe, ...Me, ..._e]);\n let W = null;\n const U = we({}, [...je, ...We, ...Ue, ...Ve]);\n let V = Object.seal(he(null, {\n tagNameCheck: {\n writable: !0,\n configurable: !1,\n enumerable: !0,\n value: null\n },\n attributeNameCheck: {\n writable: !0,\n configurable: !1,\n enumerable: !0,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: !0,\n configurable: !1,\n enumerable: !0,\n value: !1\n }\n })),\n z = null,\n q = null,\n H = !0,\n J = !0,\n K = !1,\n G = !0,\n Y = !1,\n $ = !0,\n X = !1,\n Z = !1,\n Q = !1,\n tt = !1,\n et = !1,\n it = !1,\n nt = !0,\n rt = !1,\n ot = !0,\n st = !1,\n at = {},\n lt = null;\n const ct = we({}, [\"annotation-xml\", \"audio\", \"colgroup\", \"desc\", \"foreignobject\", \"head\", \"iframe\", \"math\", \"mi\", \"mn\", \"mo\", \"ms\", \"mtext\", \"noembed\", \"noframes\", \"noscript\", \"plaintext\", \"script\", \"style\", \"svg\", \"template\", \"thead\", \"title\", \"video\", \"xmp\"]);\n let ut = null;\n const ht = we({}, [\"audio\", \"video\", \"img\", \"source\", \"image\", \"track\"]);\n let dt = null;\n const gt = we({}, [\"alt\", \"class\", \"for\", \"id\", \"label\", \"name\", \"pattern\", \"placeholder\", \"role\", \"summary\", \"title\", \"value\", \"style\", \"xmlns\"]),\n mt = \"http://www.w3.org/1998/Math/MathML\",\n pt = \"http://www.w3.org/2000/svg\",\n ft = \"http://www.w3.org/1999/xhtml\";\n let bt = ft,\n vt = !1,\n At = null;\n const yt = we({}, [mt, pt, ft], ve);\n let xt = we({}, [\"mi\", \"mo\", \"mn\", \"ms\", \"mtext\"]),\n Ct = we({}, [\"annotation-xml\"]);\n const Et = we({}, [\"title\", \"style\", \"font\", \"a\", \"script\"]);\n let St = null;\n const Rt = [\"application/xhtml+xml\", \"text/html\"];\n let kt = null,\n Tt = null;\n const wt = n.createElement(\"form\"),\n Lt = function (t) {\n return t instanceof RegExp || t instanceof Function;\n },\n Dt = function () {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n if (!Tt || Tt !== t) {\n if (t && \"object\" == typeof t || (t = {}), t = De(t), St = -1 === Rt.indexOf(t.PARSER_MEDIA_TYPE) ? \"text/html\" : t.PARSER_MEDIA_TYPE, kt = \"application/xhtml+xml\" === St ? ve : be, _ = Ee(t, \"ALLOWED_TAGS\") ? we({}, t.ALLOWED_TAGS, kt) : j, W = Ee(t, \"ALLOWED_ATTR\") ? we({}, t.ALLOWED_ATTR, kt) : U, At = Ee(t, \"ALLOWED_NAMESPACES\") ? we({}, t.ALLOWED_NAMESPACES, ve) : yt, dt = Ee(t, \"ADD_URI_SAFE_ATTR\") ? we(De(gt), t.ADD_URI_SAFE_ATTR, kt) : gt, ut = Ee(t, \"ADD_DATA_URI_TAGS\") ? we(De(ht), t.ADD_DATA_URI_TAGS, kt) : ht, lt = Ee(t, \"FORBID_CONTENTS\") ? we({}, t.FORBID_CONTENTS, kt) : ct, z = Ee(t, \"FORBID_TAGS\") ? we({}, t.FORBID_TAGS, kt) : {}, q = Ee(t, \"FORBID_ATTR\") ? we({}, t.FORBID_ATTR, kt) : {}, at = !!Ee(t, \"USE_PROFILES\") && t.USE_PROFILES, H = !1 !== t.ALLOW_ARIA_ATTR, J = !1 !== t.ALLOW_DATA_ATTR, K = t.ALLOW_UNKNOWN_PROTOCOLS || !1, G = !1 !== t.ALLOW_SELF_CLOSE_IN_ATTR, Y = t.SAFE_FOR_TEMPLATES || !1, $ = !1 !== t.SAFE_FOR_XML, X = t.WHOLE_DOCUMENT || !1, tt = t.RETURN_DOM || !1, et = t.RETURN_DOM_FRAGMENT || !1, it = t.RETURN_TRUSTED_TYPE || !1, Q = t.FORCE_BODY || !1, nt = !1 !== t.SANITIZE_DOM, rt = t.SANITIZE_NAMED_PROPS || !1, ot = !1 !== t.KEEP_CONTENT, st = t.IN_PLACE || !1, B = t.ALLOWED_URI_REGEXP || Ge, bt = t.NAMESPACE || ft, xt = t.MATHML_TEXT_INTEGRATION_POINTS || xt, Ct = t.HTML_INTEGRATION_POINTS || Ct, V = t.CUSTOM_ELEMENT_HANDLING || {}, t.CUSTOM_ELEMENT_HANDLING && Lt(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (V.tagNameCheck = t.CUSTOM_ELEMENT_HANDLING.tagNameCheck), t.CUSTOM_ELEMENT_HANDLING && Lt(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (V.attributeNameCheck = t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), t.CUSTOM_ELEMENT_HANDLING && \"boolean\" == typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (V.allowCustomizedBuiltInElements = t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), Y && (J = !1), et && (tt = !0), at && (_ = we({}, _e), W = [], !0 === at.html && (we(_, Ie), we(W, je)), !0 === at.svg && (we(_, Oe), we(W, We), we(W, Ve)), !0 === at.svgFilters && (we(_, Fe), we(W, We), we(W, Ve)), !0 === at.mathMl && (we(_, Me), we(W, Ue), we(W, Ve))), t.ADD_TAGS && (_ === j && (_ = De(_)), we(_, t.ADD_TAGS, kt)), t.ADD_ATTR && (W === U && (W = De(W)), we(W, t.ADD_ATTR, kt)), t.ADD_URI_SAFE_ATTR && we(dt, t.ADD_URI_SAFE_ATTR, kt), t.FORBID_CONTENTS && (lt === ct && (lt = De(lt)), we(lt, t.FORBID_CONTENTS, kt)), ot && (_[\"#text\"] = !0), X && we(_, [\"html\", \"head\", \"body\"]), _.table && (we(_, [\"tbody\"]), delete z.tbody), t.TRUSTED_TYPES_POLICY) {\n if (\"function\" != typeof t.TRUSTED_TYPES_POLICY.createHTML) throw Re('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n if (\"function\" != typeof t.TRUSTED_TYPES_POLICY.createScriptURL) throw Re('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n x = t.TRUSTED_TYPES_POLICY, C = x.createHTML(\"\");\n } else void 0 === x && (x = function (t, e) {\n if (\"object\" != typeof t || \"function\" != typeof t.createPolicy) return null;\n let i = null;\n const n = \"data-tt-policy-suffix\";\n e && e.hasAttribute(n) && (i = e.getAttribute(n));\n const r = \"dompurify\" + (i ? \"#\" + i : \"\");\n try {\n return t.createPolicy(r, {\n createHTML: t => t,\n createScriptURL: t => t\n });\n } catch (t) {\n return console.warn(\"TrustedTypes policy \" + r + \" could not be created.\"), null;\n }\n }(m, o)), null !== x && \"string\" == typeof C && (C = x.createHTML(\"\"));\n ce && ce(t), Tt = t;\n }\n },\n Nt = we({}, [...Oe, ...Fe, ...Pe]),\n It = we({}, [...Me, ...Be]),\n Ot = function (t) {\n fe(i.removed, {\n element: t\n });\n try {\n y(t).removeChild(t);\n } catch (e) {\n b(t);\n }\n },\n Ft = function (t, e) {\n try {\n fe(i.removed, {\n attribute: e.getAttributeNode(t),\n from: e\n });\n } catch (t) {\n fe(i.removed, {\n attribute: null,\n from: e\n });\n }\n if (e.removeAttribute(t), \"is\" === t) if (tt || et) try {\n Ot(e);\n } catch (t) {} else try {\n e.setAttribute(t, \"\");\n } catch (t) {}\n },\n Pt = function (t) {\n let e = null,\n i = null;\n if (Q) t = \"<remove></remove>\" + t;else {\n const e = Ae(t, /^[\\r\\n\\t ]+/);\n i = e && e[0];\n }\n \"application/xhtml+xml\" === St && bt === ft && (t = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + t + \"</body></html>\");\n const r = x ? x.createHTML(t) : t;\n if (bt === ft) try {\n e = new g().parseFromString(r, St);\n } catch (t) {}\n if (!e || !e.documentElement) {\n e = E.createDocument(bt, \"template\", null);\n try {\n e.documentElement.innerHTML = vt ? C : r;\n } catch (t) {}\n }\n const o = e.body || e.documentElement;\n return t && i && o.insertBefore(n.createTextNode(i), o.childNodes[0] || null), bt === ft ? k.call(e, X ? \"html\" : \"body\")[0] : X ? e.documentElement : o;\n },\n Mt = function (t) {\n return S.call(t.ownerDocument || t, t, u.SHOW_ELEMENT | u.SHOW_COMMENT | u.SHOW_TEXT | u.SHOW_PROCESSING_INSTRUCTION | u.SHOW_CDATA_SECTION, null);\n },\n Bt = function (t) {\n return t instanceof d && (\"string\" != typeof t.nodeName || \"string\" != typeof t.textContent || \"function\" != typeof t.removeChild || !(t.attributes instanceof h) || \"function\" != typeof t.removeAttribute || \"function\" != typeof t.setAttribute || \"string\" != typeof t.namespaceURI || \"function\" != typeof t.insertBefore || \"function\" != typeof t.hasChildNodes);\n },\n _t = function (t) {\n return \"function\" == typeof l && t instanceof l;\n };\n function jt(t, e, n) {\n me(t, t => {\n t.call(i, e, n, Tt);\n });\n }\n const Wt = function (t) {\n let e = null;\n if (jt(w.beforeSanitizeElements, t, null), Bt(t)) return Ot(t), !0;\n const n = kt(t.nodeName);\n if (jt(w.uponSanitizeElement, t, {\n tagName: n,\n allowedTags: _\n }), t.hasChildNodes() && !_t(t.firstElementChild) && Se(/<[/\\w]/g, t.innerHTML) && Se(/<[/\\w]/g, t.textContent)) return Ot(t), !0;\n if (t.nodeType === ii) return Ot(t), !0;\n if ($ && t.nodeType === ni && Se(/<[/\\w]/g, t.data)) return Ot(t), !0;\n if (!_[n] || z[n]) {\n if (!z[n] && Vt(n)) {\n if (V.tagNameCheck instanceof RegExp && Se(V.tagNameCheck, n)) return !1;\n if (V.tagNameCheck instanceof Function && V.tagNameCheck(n)) return !1;\n }\n if (ot && !lt[n]) {\n const e = y(t) || t.parentNode,\n i = A(t) || t.childNodes;\n if (i && e) {\n for (let n = i.length - 1; n >= 0; --n) {\n const r = f(i[n], !0);\n r.__removalCount = (t.__removalCount || 0) + 1, e.insertBefore(r, v(t));\n }\n }\n }\n return Ot(t), !0;\n }\n return t instanceof c && !function (t) {\n let e = y(t);\n e && e.tagName || (e = {\n namespaceURI: bt,\n tagName: \"template\"\n });\n const i = be(t.tagName),\n n = be(e.tagName);\n return !!At[t.namespaceURI] && (t.namespaceURI === pt ? e.namespaceURI === ft ? \"svg\" === i : e.namespaceURI === mt ? \"svg\" === i && (\"annotation-xml\" === n || xt[n]) : Boolean(Nt[i]) : t.namespaceURI === mt ? e.namespaceURI === ft ? \"math\" === i : e.namespaceURI === pt ? \"math\" === i && Ct[n] : Boolean(It[i]) : t.namespaceURI === ft ? !(e.namespaceURI === pt && !Ct[n]) && !(e.namespaceURI === mt && !xt[n]) && !It[i] && (Et[i] || !Nt[i]) : !(\"application/xhtml+xml\" !== St || !At[t.namespaceURI]));\n }(t) ? (Ot(t), !0) : \"noscript\" !== n && \"noembed\" !== n && \"noframes\" !== n || !Se(/<\\/no(script|embed|frames)/i, t.innerHTML) ? (Y && t.nodeType === ei && (e = t.textContent, me([L, D, N], t => {\n e = ye(e, t, \" \");\n }), t.textContent !== e && (fe(i.removed, {\n element: t.cloneNode()\n }), t.textContent = e)), jt(w.afterSanitizeElements, t, null), !1) : (Ot(t), !0);\n },\n Ut = function (t, e, i) {\n if (nt && (\"id\" === e || \"name\" === e) && (i in n || i in wt)) return !1;\n if (J && !q[e] && Se(I, e)) ;else if (H && Se(O, e)) ;else if (!W[e] || q[e]) {\n if (!(Vt(t) && (V.tagNameCheck instanceof RegExp && Se(V.tagNameCheck, t) || V.tagNameCheck instanceof Function && V.tagNameCheck(t)) && (V.attributeNameCheck instanceof RegExp && Se(V.attributeNameCheck, e) || V.attributeNameCheck instanceof Function && V.attributeNameCheck(e)) || \"is\" === e && V.allowCustomizedBuiltInElements && (V.tagNameCheck instanceof RegExp && Se(V.tagNameCheck, i) || V.tagNameCheck instanceof Function && V.tagNameCheck(i)))) return !1;\n } else if (dt[e]) ;else if (Se(B, ye(i, P, \"\"))) ;else if (\"src\" !== e && \"xlink:href\" !== e && \"href\" !== e || \"script\" === t || 0 !== xe(i, \"data:\") || !ut[t]) {\n if (K && !Se(F, ye(i, P, \"\"))) ;else if (i) return !1;\n } else ;\n return !0;\n },\n Vt = function (t) {\n return \"annotation-xml\" !== t && Ae(t, M);\n },\n zt = function (t) {\n jt(w.beforeSanitizeAttributes, t, null);\n const {\n attributes: e\n } = t;\n if (!e || Bt(t)) return;\n const n = {\n attrName: \"\",\n attrValue: \"\",\n keepAttr: !0,\n allowedAttributes: W,\n forceKeepAttr: void 0\n };\n let r = e.length;\n for (; r--;) {\n const o = e[r],\n {\n name: s,\n namespaceURI: a,\n value: l\n } = o,\n c = kt(s);\n let u = \"value\" === s ? l : Ce(l);\n if (n.attrName = c, n.attrValue = u, n.keepAttr = !0, n.forceKeepAttr = void 0, jt(w.uponSanitizeAttribute, t, n), u = n.attrValue, !rt || \"id\" !== c && \"name\" !== c || (Ft(s, t), u = \"user-content-\" + u), $ && Se(/((--!?|])>)|<\\/(style|title)/i, u)) {\n Ft(s, t);\n continue;\n }\n if (n.forceKeepAttr) continue;\n if (Ft(s, t), !n.keepAttr) continue;\n if (!G && Se(/\\/>/i, u)) {\n Ft(s, t);\n continue;\n }\n Y && me([L, D, N], t => {\n u = ye(u, t, \" \");\n });\n const h = kt(t.nodeName);\n if (Ut(h, c, u)) {\n if (x && \"object\" == typeof m && \"function\" == typeof m.getAttributeType) if (a) ;else switch (m.getAttributeType(h, c)) {\n case \"TrustedHTML\":\n u = x.createHTML(u);\n break;\n case \"TrustedScriptURL\":\n u = x.createScriptURL(u);\n }\n try {\n a ? t.setAttributeNS(a, s, u) : t.setAttribute(s, u), Bt(t) ? Ot(t) : pe(i.removed);\n } catch (t) {}\n }\n }\n jt(w.afterSanitizeAttributes, t, null);\n },\n qt = function t(e) {\n let i = null;\n const n = Mt(e);\n for (jt(w.beforeSanitizeShadowDOM, e, null); i = n.nextNode();) jt(w.uponSanitizeShadowNode, i, null), Wt(i), zt(i), i.content instanceof s && t(i.content);\n jt(w.afterSanitizeShadowDOM, e, null);\n };\n return i.sanitize = function (t) {\n let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n n = null,\n o = null,\n a = null,\n c = null;\n if (vt = !t, vt && (t = \"\\x3c!--\\x3e\"), \"string\" != typeof t && !_t(t)) {\n if (\"function\" != typeof t.toString) throw Re(\"toString is not a function\");\n if (\"string\" != typeof (t = t.toString())) throw Re(\"dirty is not a string, aborting\");\n }\n if (!i.isSupported) return t;\n if (Z || Dt(e), i.removed = [], \"string\" == typeof t && (st = !1), st) {\n if (t.nodeName) {\n const e = kt(t.nodeName);\n if (!_[e] || z[e]) throw Re(\"root node is forbidden and cannot be sanitized in-place\");\n }\n } else if (t instanceof l) n = Pt(\"\\x3c!----\\x3e\"), o = n.ownerDocument.importNode(t, !0), o.nodeType === ti && \"BODY\" === o.nodeName || \"HTML\" === o.nodeName ? n = o : n.appendChild(o);else {\n if (!tt && !Y && !X && -1 === t.indexOf(\"<\")) return x && it ? x.createHTML(t) : t;\n if (n = Pt(t), !n) return tt ? null : it ? C : \"\";\n }\n n && Q && Ot(n.firstChild);\n const u = Mt(st ? t : n);\n for (; a = u.nextNode();) Wt(a), zt(a), a.content instanceof s && qt(a.content);\n if (st) return t;\n if (tt) {\n if (et) for (c = R.call(n.ownerDocument); n.firstChild;) c.appendChild(n.firstChild);else c = n;\n return (W.shadowroot || W.shadowrootmode) && (c = T.call(r, c, !0)), c;\n }\n let h = X ? n.outerHTML : n.innerHTML;\n return X && _[\"!doctype\"] && n.ownerDocument && n.ownerDocument.doctype && n.ownerDocument.doctype.name && Se(Xe, n.ownerDocument.doctype.name) && (h = \"<!DOCTYPE \" + n.ownerDocument.doctype.name + \">\\n\" + h), Y && me([L, D, N], t => {\n h = ye(h, t, \" \");\n }), x && it ? x.createHTML(h) : h;\n }, i.setConfig = function () {\n Dt(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}), Z = !0;\n }, i.clearConfig = function () {\n Tt = null, Z = !1;\n }, i.isValidAttribute = function (t, e, i) {\n Tt || Dt({});\n const n = kt(t),\n r = kt(e);\n return Ut(n, r, i);\n }, i.addHook = function (t, e) {\n \"function\" == typeof e && fe(w[t], e);\n }, i.removeHook = function (t) {\n return pe(w[t]);\n }, i.removeHooks = function (t) {\n w[t] = [];\n }, i.removeAllHooks = function () {\n w = {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n }, i;\n}();\nsi.addHook(\"uponSanitizeAttribute\", function (t, e) {\n /^data-trix-/.test(e.attrName) && (e.forceKeepAttr = !0);\n});\nconst ai = \"style href src width height language class\".split(\" \"),\n li = \"javascript:\".split(\" \"),\n ci = \"script iframe form noscript\".split(\" \");\nclass ui extends q {\n static setHTML(t, e) {\n const i = new this(e).sanitize(),\n n = i.getHTML ? i.getHTML() : i.outerHTML;\n t.innerHTML = n;\n }\n static sanitize(t, e) {\n const i = new this(t, e);\n return i.sanitize(), i;\n }\n constructor(t) {\n let {\n allowedAttributes: e,\n forbiddenProtocols: i,\n forbiddenElements: n\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n super(...arguments), this.allowedAttributes = e || ai, this.forbiddenProtocols = i || li, this.forbiddenElements = n || ci, this.body = hi(t);\n }\n sanitize() {\n return this.sanitizeElements(), this.normalizeListElementNesting(), si.setConfig(l), this.body = si.sanitize(this.body), this.body;\n }\n getHTML() {\n return this.body.innerHTML;\n }\n getBody() {\n return this.body;\n }\n sanitizeElements() {\n const t = R(this.body),\n e = [];\n for (; t.nextNode();) {\n const i = t.currentNode;\n switch (i.nodeType) {\n case Node.ELEMENT_NODE:\n this.elementIsRemovable(i) ? e.push(i) : this.sanitizeElement(i);\n break;\n case Node.COMMENT_NODE:\n e.push(i);\n }\n }\n return e.forEach(t => S(t)), this.body;\n }\n sanitizeElement(t) {\n return t.hasAttribute(\"href\") && this.forbiddenProtocols.includes(t.protocol) && t.removeAttribute(\"href\"), Array.from(t.attributes).forEach(e => {\n let {\n name: i\n } = e;\n this.allowedAttributes.includes(i) || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n }), t;\n }\n normalizeListElementNesting() {\n return Array.from(this.body.querySelectorAll(\"ul,ol\")).forEach(t => {\n const e = t.previousElementSibling;\n e && \"li\" === k(e) && e.appendChild(t);\n }), this.body;\n }\n elementIsRemovable(t) {\n if ((null == t ? void 0 : t.nodeType) === Node.ELEMENT_NODE) return this.elementIsForbidden(t) || this.elementIsntSerializable(t);\n }\n elementIsForbidden(t) {\n return this.forbiddenElements.includes(k(t));\n }\n elementIsntSerializable(t) {\n return \"false\" === t.getAttribute(\"data-trix-serialize\") && !P(t);\n }\n}\nconst hi = function () {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"\";\n t = t.replace(/<\\/html[^>]*>[^]*$/i, \"</html>\");\n const e = document.implementation.createHTMLDocument(\"\");\n return e.documentElement.innerHTML = t, Array.from(e.head.querySelectorAll(\"style\")).forEach(t => {\n e.body.appendChild(t);\n }), e.body;\n },\n {\n css: di\n } = z;\nclass gi extends ie {\n constructor() {\n super(...arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;\n }\n createContentNodes() {\n return [];\n }\n createNodes() {\n let t;\n const e = t = T({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }),\n i = this.getHref();\n return i && (t = T({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: i,\n tabindex: -1\n }\n }), e.appendChild(t)), this.attachment.hasContent() ? ui.setHTML(t, this.attachment.getContent()) : this.createContentNodes().forEach(e => {\n t.appendChild(e);\n }), t.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = T({\n tagName: \"progress\",\n attributes: {\n class: di.attachmentProgress,\n value: this.attachment.getUploadProgress(),\n max: 100\n },\n data: {\n trixMutable: !0,\n trixStoreKey: [\"progressElement\", this.attachment.id].join(\"/\")\n }\n }), e.appendChild(this.progressElement)), [mi(\"left\"), e, mi(\"right\")];\n }\n createCaptionElement() {\n const t = T({\n tagName: \"figcaption\",\n className: di.attachmentCaption\n }),\n e = this.attachmentPiece.getCaption();\n if (e) t.classList.add(\"\".concat(di.attachmentCaption, \"--edited\")), t.textContent = e;else {\n let e, i;\n const n = this.getCaptionConfig();\n if (n.name && (e = this.attachment.getFilename()), n.size && (i = this.attachment.getFormattedFilesize()), e) {\n const i = T({\n tagName: \"span\",\n className: di.attachmentName,\n textContent: e\n });\n t.appendChild(i);\n }\n if (i) {\n e && t.appendChild(document.createTextNode(\" \"));\n const n = T({\n tagName: \"span\",\n className: di.attachmentSize,\n textContent: i\n });\n t.appendChild(n);\n }\n }\n return t;\n }\n getClassName() {\n const t = [di.attachment, \"\".concat(di.attachment, \"--\").concat(this.attachment.getType())],\n e = this.attachment.getExtension();\n return e && t.push(\"\".concat(di.attachment, \"--\").concat(e)), t.join(\" \");\n }\n getData() {\n const t = {\n trixAttachment: JSON.stringify(this.attachment),\n trixContentType: this.attachment.getContentType(),\n trixId: this.attachment.id\n },\n {\n attributes: e\n } = this.attachmentPiece;\n return e.isEmpty() || (t.trixAttributes = JSON.stringify(e)), this.attachment.isPending() && (t.trixSerialize = !1), t;\n }\n getHref() {\n if (!pi(this.attachment.getContent(), \"a\")) return this.attachment.getHref();\n }\n getCaptionConfig() {\n var t;\n const e = this.attachment.getType(),\n n = kt(null === (t = i[e]) || void 0 === t ? void 0 : t.caption);\n return \"file\" === e && (n.name = !0), n;\n }\n findProgressElement() {\n var t;\n return null === (t = this.findElement()) || void 0 === t ? void 0 : t.querySelector(\"progress\");\n }\n attachmentDidChangeUploadProgress() {\n const t = this.attachment.getUploadProgress(),\n e = this.findProgressElement();\n e && (e.value = t);\n }\n}\nconst mi = t => T({\n tagName: \"span\",\n textContent: d,\n data: {\n trixCursorTarget: t,\n trixSerialize: !1\n }\n }),\n pi = function (t, e) {\n const i = T(\"div\");\n return ui.setHTML(i, t || \"\"), i.querySelector(e);\n };\nclass fi extends gi {\n constructor() {\n super(...arguments), this.attachment.previewDelegate = this;\n }\n createContentNodes() {\n return this.image = T({\n tagName: \"img\",\n attributes: {\n src: \"\"\n },\n data: {\n trixMutable: !0\n }\n }), this.refresh(this.image), [this.image];\n }\n createCaptionElement() {\n const t = super.createCaptionElement(...arguments);\n return t.textContent || t.setAttribute(\"data-trix-placeholder\", c.captionPlaceholder), t;\n }\n refresh(t) {\n var e;\n t || (t = null === (e = this.findElement()) || void 0 === e ? void 0 : e.querySelector(\"img\"));\n if (t) return this.updateAttributesForImage(t);\n }\n updateAttributesForImage(t) {\n const e = this.attachment.getURL(),\n i = this.attachment.getPreviewURL();\n if (t.src = i || e, i === e) t.removeAttribute(\"data-trix-serialized-attributes\");else {\n const i = JSON.stringify({\n src: e\n });\n t.setAttribute(\"data-trix-serialized-attributes\", i);\n }\n const n = this.attachment.getWidth(),\n r = this.attachment.getHeight();\n null != n && (t.width = n), null != r && (t.height = r);\n const o = [\"imageElement\", this.attachment.id, t.src, t.width, t.height].join(\"/\");\n t.dataset.trixStoreKey = o;\n }\n attachmentDidChangeAttributes() {\n return this.refresh(this.image), this.refresh();\n }\n}\nclass bi extends ie {\n constructor() {\n super(...arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), this.textConfig = this.options.textConfig, this.context = this.options.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();\n }\n createNodes() {\n let t = this.attachment ? this.createAttachmentNodes() : this.createStringNodes();\n const e = this.createElement();\n if (e) {\n const i = function (t) {\n for (; null !== (e = t) && void 0 !== e && e.firstElementChild;) {\n var e;\n t = t.firstElementChild;\n }\n return t;\n }(e);\n Array.from(t).forEach(t => {\n i.appendChild(t);\n }), t = [e];\n }\n return t;\n }\n createAttachmentNodes() {\n const t = this.attachment.isPreviewable() ? fi : gi;\n return this.createChildView(t, this.piece.attachment, {\n piece: this.piece\n }).getNodes();\n }\n createStringNodes() {\n var t;\n if (null !== (t = this.textConfig) && void 0 !== t && t.plaintext) return [document.createTextNode(this.string)];\n {\n const t = [],\n e = this.string.split(\"\\n\");\n for (let i = 0; i < e.length; i++) {\n const n = e[i];\n if (i > 0) {\n const e = T(\"br\");\n t.push(e);\n }\n if (n.length) {\n const e = document.createTextNode(this.preserveSpaces(n));\n t.push(e);\n }\n }\n return t;\n }\n }\n createElement() {\n let t, e, i;\n const n = {};\n for (e in this.attributes) {\n i = this.attributes[e];\n const o = ft(e);\n if (o) {\n if (o.tagName) {\n var r;\n const e = T(o.tagName);\n r ? (r.appendChild(e), r = e) : t = r = e;\n }\n if (o.styleProperty && (n[o.styleProperty] = i), o.style) for (e in o.style) i = o.style[e], n[e] = i;\n }\n }\n if (Object.keys(n).length) for (e in t || (t = T(\"span\")), n) i = n[e], t.style[e] = i;\n return t;\n }\n createContainerElement() {\n for (const t in this.attributes) {\n const e = this.attributes[t],\n i = ft(t);\n if (i && i.groupTagName) {\n const n = {};\n return n[t] = e, T(i.groupTagName, n);\n }\n }\n }\n preserveSpaces(t) {\n return this.context.isLast && (t = t.replace(/\\ $/, g)), t = t.replace(/(\\S)\\ {3}(\\S)/g, \"$1 \".concat(g, \" $2\")).replace(/\\ {2}/g, \"\".concat(g, \" \")).replace(/\\ {2}/g, \" \".concat(g)), (this.context.isFirst || this.context.followsWhitespace) && (t = t.replace(/^\\ /, g)), t;\n }\n}\nclass vi extends ie {\n constructor() {\n super(...arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n }\n createNodes() {\n const t = [],\n e = Xt.groupObjects(this.getPieces()),\n i = e.length - 1;\n for (let r = 0; r < e.length; r++) {\n const o = e[r],\n s = {};\n 0 === r && (s.isFirst = !0), r === i && (s.isLast = !0), Ai(n) && (s.followsWhitespace = !0);\n const a = this.findOrCreateCachedChildView(bi, o, {\n textConfig: this.textConfig,\n context: s\n });\n t.push(...Array.from(a.getNodes() || []));\n var n = o;\n }\n return t;\n }\n getPieces() {\n return Array.from(this.text.getPieces()).filter(t => !t.hasAttribute(\"blockBreak\"));\n }\n}\nconst Ai = t => /\\s$/.test(null == t ? void 0 : t.toString()),\n {\n css: yi\n } = z;\nclass xi extends ie {\n constructor() {\n super(...arguments), this.block = this.object, this.attributes = this.block.getAttributes();\n }\n createNodes() {\n const t = [document.createComment(\"block\")];\n if (this.block.isEmpty()) t.push(T(\"br\"));else {\n var e;\n const i = null === (e = mt(this.block.getLastAttribute())) || void 0 === e ? void 0 : e.text,\n n = this.findOrCreateCachedChildView(vi, this.block.text, {\n textConfig: i\n });\n t.push(...Array.from(n.getNodes() || [])), this.shouldAddExtraNewlineElement() && t.push(T(\"br\"));\n }\n if (this.attributes.length) return t;\n {\n let e;\n const {\n tagName: i\n } = n.default;\n this.block.isRTL() && (e = {\n dir: \"rtl\"\n });\n const r = T({\n tagName: i,\n attributes: e\n });\n return t.forEach(t => r.appendChild(t)), [r];\n }\n }\n createContainerElement(t) {\n const e = {};\n let i;\n const n = this.attributes[t],\n {\n tagName: r,\n htmlAttributes: o = []\n } = mt(n);\n if (0 === t && this.block.isRTL() && Object.assign(e, {\n dir: \"rtl\"\n }), \"attachmentGallery\" === n) {\n const t = this.block.getBlockBreakPosition();\n i = \"\".concat(yi.attachmentGallery, \" \").concat(yi.attachmentGallery, \"--\").concat(t);\n }\n return Object.entries(this.block.htmlAttributes).forEach(t => {\n let [i, n] = t;\n o.includes(i) && (e[i] = n);\n }), T({\n tagName: r,\n className: i,\n attributes: e\n });\n }\n shouldAddExtraNewlineElement() {\n return /\\n\\n$/.test(this.block.toString());\n }\n}\nclass Ci extends ie {\n static render(t) {\n const e = T(\"div\"),\n i = new this(t, {\n element: e\n });\n return i.render(), i.sync(), e;\n }\n constructor() {\n super(...arguments), this.element = this.options.element, this.elementStore = new Qt(), this.setDocument(this.object);\n }\n setDocument(t) {\n t.isEqualTo(this.document) || (this.document = this.object = t);\n }\n render() {\n if (this.childViews = [], this.shadowElement = T(\"div\"), !this.document.isEmpty()) {\n const t = Xt.groupObjects(this.document.getBlocks(), {\n asTree: !0\n });\n Array.from(t).forEach(t => {\n const e = this.findOrCreateCachedChildView(xi, t);\n Array.from(e.getNodes()).map(t => this.shadowElement.appendChild(t));\n });\n }\n }\n isSynced() {\n return Si(this.shadowElement, this.element);\n }\n sync() {\n const t = this.createDocumentFragmentForSync();\n for (; this.element.lastChild;) this.element.removeChild(this.element.lastChild);\n return this.element.appendChild(t), this.didSync();\n }\n didSync() {\n return this.elementStore.reset(Ei(this.element)), Rt(() => this.garbageCollectCachedViews());\n }\n createDocumentFragmentForSync() {\n const t = document.createDocumentFragment();\n return Array.from(this.shadowElement.childNodes).forEach(e => {\n t.appendChild(e.cloneNode(!0));\n }), Array.from(Ei(t)).forEach(t => {\n const e = this.elementStore.remove(t);\n e && t.parentNode.replaceChild(e, t);\n }), t;\n }\n}\nconst Ei = t => t.querySelectorAll(\"[data-trix-store-key]\"),\n Si = (t, e) => Ri(t.innerHTML) === Ri(e.innerHTML),\n Ri = t => t.replace(/ /g, \" \");\nfunction ki(t) {\n var e, i;\n function n(e, i) {\n try {\n var o = t[e](i),\n s = o.value,\n a = s instanceof Ti;\n Promise.resolve(a ? s.v : s).then(function (i) {\n if (a) {\n var l = \"return\" === e ? \"return\" : \"next\";\n if (!s.k || i.done) return n(l, i);\n i = t[l](i).value;\n }\n r(o.done ? \"return\" : \"normal\", i);\n }, function (t) {\n n(\"throw\", t);\n });\n } catch (t) {\n r(\"throw\", t);\n }\n }\n function r(t, r) {\n switch (t) {\n case \"return\":\n e.resolve({\n value: r,\n done: !0\n });\n break;\n case \"throw\":\n e.reject(r);\n break;\n default:\n e.resolve({\n value: r,\n done: !1\n });\n }\n (e = e.next) ? n(e.key, e.arg) : i = null;\n }\n this._invoke = function (t, r) {\n return new Promise(function (o, s) {\n var a = {\n key: t,\n arg: r,\n resolve: o,\n reject: s,\n next: null\n };\n i ? i = i.next = a : (e = i = a, n(t, r));\n });\n }, \"function\" != typeof t.return && (this.return = void 0);\n}\nfunction Ti(t, e) {\n this.v = t, this.k = e;\n}\nfunction wi(t, e, i) {\n return (e = Li(e)) in t ? Object.defineProperty(t, e, {\n value: i,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = i, t;\n}\nfunction Li(t) {\n var e = function (t, e) {\n if (\"object\" != typeof t || null === t) return t;\n var i = t[Symbol.toPrimitive];\n if (void 0 !== i) {\n var n = i.call(t, e || \"default\");\n if (\"object\" != typeof n) return n;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === e ? String : Number)(t);\n }(t, \"string\");\n return \"symbol\" == typeof e ? e : String(e);\n}\nki.prototype[\"function\" == typeof Symbol && Symbol.asyncIterator || \"@@asyncIterator\"] = function () {\n return this;\n}, ki.prototype.next = function (t) {\n return this._invoke(\"next\", t);\n}, ki.prototype.throw = function (t) {\n return this._invoke(\"throw\", t);\n}, ki.prototype.return = function (t) {\n return this._invoke(\"return\", t);\n};\nfunction Di(t, e) {\n return Oi(t, Ii(t, e, \"get\"));\n}\nfunction Ni(t, e, i) {\n return Fi(t, Ii(t, e, \"set\"), i), i;\n}\nfunction Ii(t, e, i) {\n if (!e.has(t)) throw new TypeError(\"attempted to \" + i + \" private field on non-instance\");\n return e.get(t);\n}\nfunction Oi(t, e) {\n return e.get ? e.get.call(t) : e.value;\n}\nfunction Fi(t, e, i) {\n if (e.set) e.set.call(t, i);else {\n if (!e.writable) throw new TypeError(\"attempted to set read only private field\");\n e.value = i;\n }\n}\nfunction Pi(t, e, i) {\n if (!e.has(t)) throw new TypeError(\"attempted to get private field on non-instance\");\n return i;\n}\nfunction Mi(t, e) {\n if (e.has(t)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n}\nfunction Bi(t, e, i) {\n Mi(t, e), e.set(t, i);\n}\nclass _i extends rt {\n static registerType(t, e) {\n e.type = t, this.types[t] = e;\n }\n static fromJSON(t) {\n const e = this.types[t.type];\n if (e) return e.fromJSON(t);\n }\n constructor(t) {\n let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n super(...arguments), this.attributes = Ht.box(e);\n }\n copyWithAttributes(t) {\n return new this.constructor(this.getValue(), t);\n }\n copyWithAdditionalAttributes(t) {\n return this.copyWithAttributes(this.attributes.merge(t));\n }\n copyWithoutAttribute(t) {\n return this.copyWithAttributes(this.attributes.remove(t));\n }\n copy() {\n return this.copyWithAttributes(this.attributes);\n }\n getAttribute(t) {\n return this.attributes.get(t);\n }\n getAttributesHash() {\n return this.attributes;\n }\n getAttributes() {\n return this.attributes.toObject();\n }\n hasAttribute(t) {\n return this.attributes.has(t);\n }\n hasSameStringValueAsPiece(t) {\n return t && this.toString() === t.toString();\n }\n hasSameAttributesAsPiece(t) {\n return t && (this.attributes === t.attributes || this.attributes.isEqualTo(t.attributes));\n }\n isBlockBreak() {\n return !1;\n }\n isEqualTo(t) {\n return super.isEqualTo(...arguments) || this.hasSameConstructorAs(t) && this.hasSameStringValueAsPiece(t) && this.hasSameAttributesAsPiece(t);\n }\n isEmpty() {\n return 0 === this.length;\n }\n isSerializable() {\n return !0;\n }\n toJSON() {\n return {\n type: this.constructor.type,\n attributes: this.getAttributes()\n };\n }\n contentsForInspection() {\n return {\n type: this.constructor.type,\n attributes: this.attributes.inspect()\n };\n }\n canBeGrouped() {\n return this.hasAttribute(\"href\");\n }\n canBeGroupedWith(t) {\n return this.getAttribute(\"href\") === t.getAttribute(\"href\");\n }\n getLength() {\n return this.length;\n }\n canBeConsolidatedWith(t) {\n return !1;\n }\n}\nwi(_i, \"types\", {});\nclass ji extends ee {\n constructor(t) {\n super(...arguments), this.url = t;\n }\n perform(t) {\n const e = new Image();\n e.onload = () => (e.width = this.width = e.naturalWidth, e.height = this.height = e.naturalHeight, t(!0, e)), e.onerror = () => t(!1), e.src = this.url;\n }\n}\nclass Wi extends rt {\n static attachmentForFile(t) {\n const e = new this(this.attributesForFile(t));\n return e.setFile(t), e;\n }\n static attributesForFile(t) {\n return new Ht({\n filename: t.name,\n filesize: t.size,\n contentType: t.type\n });\n }\n static fromJSON(t) {\n return new this(t);\n }\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n super(t), this.releaseFile = this.releaseFile.bind(this), this.attributes = Ht.box(t), this.didChangeAttributes();\n }\n getAttribute(t) {\n return this.attributes.get(t);\n }\n hasAttribute(t) {\n return this.attributes.has(t);\n }\n getAttributes() {\n return this.attributes.toObject();\n }\n setAttributes() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n const e = this.attributes.merge(t);\n var i, n, r, o;\n if (!this.attributes.isEqualTo(e)) return this.attributes = e, this.didChangeAttributes(), null === (i = this.previewDelegate) || void 0 === i || null === (n = i.attachmentDidChangeAttributes) || void 0 === n || n.call(i, this), null === (r = this.delegate) || void 0 === r || null === (o = r.attachmentDidChangeAttributes) || void 0 === o ? void 0 : o.call(r, this);\n }\n didChangeAttributes() {\n if (this.isPreviewable()) return this.preloadURL();\n }\n isPending() {\n return null != this.file && !(this.getURL() || this.getHref());\n }\n isPreviewable() {\n return this.attributes.has(\"previewable\") ? this.attributes.get(\"previewable\") : Wi.previewablePattern.test(this.getContentType());\n }\n getType() {\n return this.hasContent() ? \"content\" : this.isPreviewable() ? \"preview\" : \"file\";\n }\n getURL() {\n return this.attributes.get(\"url\");\n }\n getHref() {\n return this.attributes.get(\"href\");\n }\n getFilename() {\n return this.attributes.get(\"filename\") || \"\";\n }\n getFilesize() {\n return this.attributes.get(\"filesize\");\n }\n getFormattedFilesize() {\n const t = this.attributes.get(\"filesize\");\n return \"number\" == typeof t ? h.formatter(t) : \"\";\n }\n getExtension() {\n var t;\n return null === (t = this.getFilename().match(/\\.(\\w+)$/)) || void 0 === t ? void 0 : t[1].toLowerCase();\n }\n getContentType() {\n return this.attributes.get(\"contentType\");\n }\n hasContent() {\n return this.attributes.has(\"content\");\n }\n getContent() {\n return this.attributes.get(\"content\");\n }\n getWidth() {\n return this.attributes.get(\"width\");\n }\n getHeight() {\n return this.attributes.get(\"height\");\n }\n getFile() {\n return this.file;\n }\n setFile(t) {\n if (this.file = t, this.isPreviewable()) return this.preloadFile();\n }\n releaseFile() {\n this.releasePreloadedFile(), this.file = null;\n }\n getUploadProgress() {\n return null != this.uploadProgress ? this.uploadProgress : 0;\n }\n setUploadProgress(t) {\n var e, i;\n if (this.uploadProgress !== t) return this.uploadProgress = t, null === (e = this.uploadProgressDelegate) || void 0 === e || null === (i = e.attachmentDidChangeUploadProgress) || void 0 === i ? void 0 : i.call(e, this);\n }\n toJSON() {\n return this.getAttributes();\n }\n getCacheKey() {\n return [super.getCacheKey(...arguments), this.attributes.getCacheKey(), this.getPreviewURL()].join(\"/\");\n }\n getPreviewURL() {\n return this.previewURL || this.preloadingURL;\n }\n setPreviewURL(t) {\n var e, i, n, r;\n if (t !== this.getPreviewURL()) return this.previewURL = t, null === (e = this.previewDelegate) || void 0 === e || null === (i = e.attachmentDidChangeAttributes) || void 0 === i || i.call(e, this), null === (n = this.delegate) || void 0 === n || null === (r = n.attachmentDidChangePreviewURL) || void 0 === r ? void 0 : r.call(n, this);\n }\n preloadURL() {\n return this.preload(this.getURL(), this.releaseFile);\n }\n preloadFile() {\n if (this.file) return this.fileObjectURL = URL.createObjectURL(this.file), this.preload(this.fileObjectURL);\n }\n releasePreloadedFile() {\n this.fileObjectURL && (URL.revokeObjectURL(this.fileObjectURL), this.fileObjectURL = null);\n }\n preload(t, e) {\n if (t && t !== this.getPreviewURL()) {\n this.preloadingURL = t;\n return new ji(t).then(i => {\n let {\n width: n,\n height: r\n } = i;\n return this.getWidth() && this.getHeight() || this.setAttributes({\n width: n,\n height: r\n }), this.preloadingURL = null, this.setPreviewURL(t), null == e ? void 0 : e();\n }).catch(() => (this.preloadingURL = null, null == e ? void 0 : e()));\n }\n }\n}\nwi(Wi, \"previewablePattern\", /^image(\\/(gif|png|webp|jpe?g)|$)/);\nclass Ui extends _i {\n static fromJSON(t) {\n return new this(Wi.fromJSON(t.attachment), t.attributes);\n }\n constructor(t) {\n super(...arguments), this.attachment = t, this.length = 1, this.ensureAttachmentExclusivelyHasAttribute(\"href\"), this.attachment.hasContent() || this.removeProhibitedAttributes();\n }\n ensureAttachmentExclusivelyHasAttribute(t) {\n this.hasAttribute(t) && (this.attachment.hasAttribute(t) || this.attachment.setAttributes(this.attributes.slice([t])), this.attributes = this.attributes.remove(t));\n }\n removeProhibitedAttributes() {\n const t = this.attributes.slice(Ui.permittedAttributes);\n t.isEqualTo(this.attributes) || (this.attributes = t);\n }\n getValue() {\n return this.attachment;\n }\n isSerializable() {\n return !this.attachment.isPending();\n }\n getCaption() {\n return this.attributes.get(\"caption\") || \"\";\n }\n isEqualTo(t) {\n var e;\n return super.isEqualTo(t) && this.attachment.id === (null == t || null === (e = t.attachment) || void 0 === e ? void 0 : e.id);\n }\n toString() {\n return \"\";\n }\n toJSON() {\n const t = super.toJSON(...arguments);\n return t.attachment = this.attachment, t;\n }\n getCacheKey() {\n return [super.getCacheKey(...arguments), this.attachment.getCacheKey()].join(\"/\");\n }\n toConsole() {\n return JSON.stringify(this.toString());\n }\n}\nwi(Ui, \"permittedAttributes\", [\"caption\", \"presentation\"]), _i.registerType(\"attachment\", Ui);\nclass Vi extends _i {\n static fromJSON(t) {\n return new this(t.string, t.attributes);\n }\n constructor(t) {\n super(...arguments), this.string = (t => t.replace(/\\r\\n?/g, \"\\n\"))(t), this.length = this.string.length;\n }\n getValue() {\n return this.string;\n }\n toString() {\n return this.string.toString();\n }\n isBlockBreak() {\n return \"\\n\" === this.toString() && !0 === this.getAttribute(\"blockBreak\");\n }\n toJSON() {\n const t = super.toJSON(...arguments);\n return t.string = this.string, t;\n }\n canBeConsolidatedWith(t) {\n return t && this.hasSameConstructorAs(t) && this.hasSameAttributesAsPiece(t);\n }\n consolidateWith(t) {\n return new this.constructor(this.toString() + t.toString(), this.attributes);\n }\n splitAtOffset(t) {\n let e, i;\n return 0 === t ? (e = null, i = this) : t === this.length ? (e = this, i = null) : (e = new this.constructor(this.string.slice(0, t), this.attributes), i = new this.constructor(this.string.slice(t), this.attributes)), [e, i];\n }\n toConsole() {\n let {\n string: t\n } = this;\n return t.length > 15 && (t = t.slice(0, 14) + \"…\"), JSON.stringify(t.toString());\n }\n}\n_i.registerType(\"string\", Vi);\nclass zi extends rt {\n static box(t) {\n return t instanceof this ? t : new this(t);\n }\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n super(...arguments), this.objects = t.slice(0), this.length = this.objects.length;\n }\n indexOf(t) {\n return this.objects.indexOf(t);\n }\n splice() {\n for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i];\n return new this.constructor(st(this.objects, ...e));\n }\n eachObject(t) {\n return this.objects.map((e, i) => t(e, i));\n }\n insertObjectAtIndex(t, e) {\n return this.splice(e, 0, t);\n }\n insertSplittableListAtIndex(t, e) {\n return this.splice(e, 0, ...t.objects);\n }\n insertSplittableListAtPosition(t, e) {\n const [i, n] = this.splitObjectAtPosition(e);\n return new this.constructor(i).insertSplittableListAtIndex(t, n);\n }\n editObjectAtIndex(t, e) {\n return this.replaceObjectAtIndex(e(this.objects[t]), t);\n }\n replaceObjectAtIndex(t, e) {\n return this.splice(e, 1, t);\n }\n removeObjectAtIndex(t) {\n return this.splice(t, 1);\n }\n getObjectAtIndex(t) {\n return this.objects[t];\n }\n getSplittableListInRange(t) {\n const [e, i, n] = this.splitObjectsAtRange(t);\n return new this.constructor(e.slice(i, n + 1));\n }\n selectSplittableList(t) {\n const e = this.objects.filter(e => t(e));\n return new this.constructor(e);\n }\n removeObjectsInRange(t) {\n const [e, i, n] = this.splitObjectsAtRange(t);\n return new this.constructor(e).splice(i, n - i + 1);\n }\n transformObjectsInRange(t, e) {\n const [i, n, r] = this.splitObjectsAtRange(t),\n o = i.map((t, i) => n <= i && i <= r ? e(t) : t);\n return new this.constructor(o);\n }\n splitObjectsAtRange(t) {\n let e,\n [i, n, r] = this.splitObjectAtPosition(Hi(t));\n return [i, e] = new this.constructor(i).splitObjectAtPosition(Ji(t) + r), [i, n, e - 1];\n }\n getObjectAtPosition(t) {\n const {\n index: e\n } = this.findIndexAndOffsetAtPosition(t);\n return this.objects[e];\n }\n splitObjectAtPosition(t) {\n let e, i;\n const {\n index: n,\n offset: r\n } = this.findIndexAndOffsetAtPosition(t),\n o = this.objects.slice(0);\n if (null != n) {\n if (0 === r) e = n, i = 0;else {\n const t = this.getObjectAtIndex(n),\n [s, a] = t.splitAtOffset(r);\n o.splice(n, 1, s, a), e = n + 1, i = s.getLength() - r;\n }\n } else e = o.length, i = 0;\n return [o, e, i];\n }\n consolidate() {\n const t = [];\n let e = this.objects[0];\n return this.objects.slice(1).forEach(i => {\n var n, r;\n null !== (n = (r = e).canBeConsolidatedWith) && void 0 !== n && n.call(r, i) ? e = e.consolidateWith(i) : (t.push(e), e = i);\n }), e && t.push(e), new this.constructor(t);\n }\n consolidateFromIndexToIndex(t, e) {\n const i = this.objects.slice(0).slice(t, e + 1),\n n = new this.constructor(i).consolidate().toArray();\n return this.splice(t, i.length, ...n);\n }\n findIndexAndOffsetAtPosition(t) {\n let e,\n i = 0;\n for (e = 0; e < this.objects.length; e++) {\n const n = i + this.objects[e].getLength();\n if (i <= t && t < n) return {\n index: e,\n offset: t - i\n };\n i = n;\n }\n return {\n index: null,\n offset: null\n };\n }\n findPositionAtIndexAndOffset(t, e) {\n let i = 0;\n for (let n = 0; n < this.objects.length; n++) {\n const r = this.objects[n];\n if (n < t) i += r.getLength();else if (n === t) {\n i += e;\n break;\n }\n }\n return i;\n }\n getEndPosition() {\n return null == this.endPosition && (this.endPosition = 0, this.objects.forEach(t => this.endPosition += t.getLength())), this.endPosition;\n }\n toString() {\n return this.objects.join(\"\");\n }\n toArray() {\n return this.objects.slice(0);\n }\n toJSON() {\n return this.toArray();\n }\n isEqualTo(t) {\n return super.isEqualTo(...arguments) || qi(this.objects, null == t ? void 0 : t.objects);\n }\n contentsForInspection() {\n return {\n objects: \"[\".concat(this.objects.map(t => t.inspect()).join(\", \"), \"]\")\n };\n }\n}\nconst qi = function (t) {\n let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];\n if (t.length !== e.length) return !1;\n let i = !0;\n for (let n = 0; n < t.length; n++) {\n const r = t[n];\n i && !r.isEqualTo(e[n]) && (i = !1);\n }\n return i;\n },\n Hi = t => t[0],\n Ji = t => t[1];\nclass Ki extends rt {\n static textForAttachmentWithAttributes(t, e) {\n return new this([new Ui(t, e)]);\n }\n static textForStringWithAttributes(t, e) {\n return new this([new Vi(t, e)]);\n }\n static fromJSON(t) {\n return new this(Array.from(t).map(t => _i.fromJSON(t)));\n }\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n super(...arguments);\n const e = t.filter(t => !t.isEmpty());\n this.pieceList = new zi(e);\n }\n copy() {\n return this.copyWithPieceList(this.pieceList);\n }\n copyWithPieceList(t) {\n return new this.constructor(t.consolidate().toArray());\n }\n copyUsingObjectMap(t) {\n const e = this.getPieces().map(e => t.find(e) || e);\n return new this.constructor(e);\n }\n appendText(t) {\n return this.insertTextAtPosition(t, this.getLength());\n }\n insertTextAtPosition(t, e) {\n return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList, e));\n }\n removeTextAtRange(t) {\n return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t));\n }\n replaceTextAtRange(t, e) {\n return this.removeTextAtRange(e).insertTextAtPosition(t, e[0]);\n }\n moveTextFromRangeToPosition(t, e) {\n if (t[0] <= e && e <= t[1]) return;\n const i = this.getTextAtRange(t),\n n = i.getLength();\n return t[0] < e && (e -= n), this.removeTextAtRange(t).insertTextAtPosition(i, e);\n }\n addAttributeAtRange(t, e, i) {\n const n = {};\n return n[t] = e, this.addAttributesAtRange(n, i);\n }\n addAttributesAtRange(t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, e => e.copyWithAdditionalAttributes(t)));\n }\n removeAttributeAtRange(t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, e => e.copyWithoutAttribute(t)));\n }\n setAttributesAtRange(t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, e => e.copyWithAttributes(t)));\n }\n getAttributesAtPosition(t) {\n var e;\n return (null === (e = this.pieceList.getObjectAtPosition(t)) || void 0 === e ? void 0 : e.getAttributes()) || {};\n }\n getCommonAttributes() {\n const t = Array.from(this.pieceList.toArray()).map(t => t.getAttributes());\n return Ht.fromCommonAttributesOfObjects(t).toObject();\n }\n getCommonAttributesAtRange(t) {\n return this.getTextAtRange(t).getCommonAttributes() || {};\n }\n getExpandedRangeForAttributeAtOffset(t, e) {\n let i,\n n = i = e;\n const r = this.getLength();\n for (; n > 0 && this.getCommonAttributesAtRange([n - 1, i])[t];) n--;\n for (; i < r && this.getCommonAttributesAtRange([e, i + 1])[t];) i++;\n return [n, i];\n }\n getTextAtRange(t) {\n return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t));\n }\n getStringAtRange(t) {\n return this.pieceList.getSplittableListInRange(t).toString();\n }\n getStringAtPosition(t) {\n return this.getStringAtRange([t, t + 1]);\n }\n startsWithString(t) {\n return this.getStringAtRange([0, t.length]) === t;\n }\n endsWithString(t) {\n const e = this.getLength();\n return this.getStringAtRange([e - t.length, e]) === t;\n }\n getAttachmentPieces() {\n return this.pieceList.toArray().filter(t => !!t.attachment);\n }\n getAttachments() {\n return this.getAttachmentPieces().map(t => t.attachment);\n }\n getAttachmentAndPositionById(t) {\n let e = 0;\n for (const n of this.pieceList.toArray()) {\n var i;\n if ((null === (i = n.attachment) || void 0 === i ? void 0 : i.id) === t) return {\n attachment: n.attachment,\n position: e\n };\n e += n.length;\n }\n return {\n attachment: null,\n position: null\n };\n }\n getAttachmentById(t) {\n const {\n attachment: e\n } = this.getAttachmentAndPositionById(t);\n return e;\n }\n getRangeOfAttachment(t) {\n const e = this.getAttachmentAndPositionById(t.id),\n i = e.position;\n if (t = e.attachment) return [i, i + 1];\n }\n updateAttributesForAttachment(t, e) {\n const i = this.getRangeOfAttachment(e);\n return i ? this.addAttributesAtRange(t, i) : this;\n }\n getLength() {\n return this.pieceList.getEndPosition();\n }\n isEmpty() {\n return 0 === this.getLength();\n }\n isEqualTo(t) {\n var e;\n return super.isEqualTo(t) || (null == t || null === (e = t.pieceList) || void 0 === e ? void 0 : e.isEqualTo(this.pieceList));\n }\n isBlockBreak() {\n return 1 === this.getLength() && this.pieceList.getObjectAtIndex(0).isBlockBreak();\n }\n eachPiece(t) {\n return this.pieceList.eachObject(t);\n }\n getPieces() {\n return this.pieceList.toArray();\n }\n getPieceAtPosition(t) {\n return this.pieceList.getObjectAtPosition(t);\n }\n contentsForInspection() {\n return {\n pieceList: this.pieceList.inspect()\n };\n }\n toSerializableText() {\n const t = this.pieceList.selectSplittableList(t => t.isSerializable());\n return this.copyWithPieceList(t);\n }\n toString() {\n return this.pieceList.toString();\n }\n toJSON() {\n return this.pieceList.toJSON();\n }\n toConsole() {\n return JSON.stringify(this.pieceList.toArray().map(t => JSON.parse(t.toConsole())));\n }\n getDirection() {\n return lt(this.toString());\n }\n isRTL() {\n return \"rtl\" === this.getDirection();\n }\n}\nclass Gi extends rt {\n static fromJSON(t) {\n return new this(Ki.fromJSON(t.text), t.attributes, t.htmlAttributes);\n }\n constructor(t, e, i) {\n super(...arguments), this.text = Yi(t || new Ki()), this.attributes = e || [], this.htmlAttributes = i || {};\n }\n isEmpty() {\n return this.text.isBlockBreak();\n }\n isEqualTo(t) {\n return !!super.isEqualTo(t) || this.text.isEqualTo(null == t ? void 0 : t.text) && ot(this.attributes, null == t ? void 0 : t.attributes) && Tt(this.htmlAttributes, null == t ? void 0 : t.htmlAttributes);\n }\n copyWithText(t) {\n return new Gi(t, this.attributes, this.htmlAttributes);\n }\n copyWithoutText() {\n return this.copyWithText(null);\n }\n copyWithAttributes(t) {\n return new Gi(this.text, t, this.htmlAttributes);\n }\n copyWithoutAttributes() {\n return this.copyWithAttributes(null);\n }\n copyUsingObjectMap(t) {\n const e = t.find(this.text);\n return e ? this.copyWithText(e) : this.copyWithText(this.text.copyUsingObjectMap(t));\n }\n addAttribute(t) {\n const e = this.attributes.concat(en(t));\n return this.copyWithAttributes(e);\n }\n addHTMLAttribute(t, e) {\n const i = Object.assign({}, this.htmlAttributes, {\n [t]: e\n });\n return new Gi(this.text, this.attributes, i);\n }\n removeAttribute(t) {\n const {\n listAttribute: e\n } = mt(t),\n i = rn(rn(this.attributes, t), e);\n return this.copyWithAttributes(i);\n }\n removeLastAttribute() {\n return this.removeAttribute(this.getLastAttribute());\n }\n getLastAttribute() {\n return nn(this.attributes);\n }\n getAttributes() {\n return this.attributes.slice(0);\n }\n getAttributeLevel() {\n return this.attributes.length;\n }\n getAttributeAtLevel(t) {\n return this.attributes[t - 1];\n }\n hasAttribute(t) {\n return this.attributes.includes(t);\n }\n hasAttributes() {\n return this.getAttributeLevel() > 0;\n }\n getLastNestableAttribute() {\n return nn(this.getNestableAttributes());\n }\n getNestableAttributes() {\n return this.attributes.filter(t => mt(t).nestable);\n }\n getNestingLevel() {\n return this.getNestableAttributes().length;\n }\n decreaseNestingLevel() {\n const t = this.getLastNestableAttribute();\n return t ? this.removeAttribute(t) : this;\n }\n increaseNestingLevel() {\n const t = this.getLastNestableAttribute();\n if (t) {\n const e = this.attributes.lastIndexOf(t),\n i = st(this.attributes, e + 1, 0, ...en(t));\n return this.copyWithAttributes(i);\n }\n return this;\n }\n getListItemAttributes() {\n return this.attributes.filter(t => mt(t).listAttribute);\n }\n isListItem() {\n var t;\n return null === (t = mt(this.getLastAttribute())) || void 0 === t ? void 0 : t.listAttribute;\n }\n isTerminalBlock() {\n var t;\n return null === (t = mt(this.getLastAttribute())) || void 0 === t ? void 0 : t.terminal;\n }\n breaksOnReturn() {\n var t;\n return null === (t = mt(this.getLastAttribute())) || void 0 === t ? void 0 : t.breakOnReturn;\n }\n findLineBreakInDirectionFromPosition(t, e) {\n const i = this.toString();\n let n;\n switch (t) {\n case \"forward\":\n n = i.indexOf(\"\\n\", e);\n break;\n case \"backward\":\n n = i.slice(0, e).lastIndexOf(\"\\n\");\n }\n if (-1 !== n) return n;\n }\n contentsForInspection() {\n return {\n text: this.text.inspect(),\n attributes: this.attributes\n };\n }\n toString() {\n return this.text.toString();\n }\n toJSON() {\n return {\n text: this.text,\n attributes: this.attributes,\n htmlAttributes: this.htmlAttributes\n };\n }\n getDirection() {\n return this.text.getDirection();\n }\n isRTL() {\n return this.text.isRTL();\n }\n getLength() {\n return this.text.getLength();\n }\n canBeConsolidatedWith(t) {\n return !this.hasAttributes() && !t.hasAttributes() && this.getDirection() === t.getDirection();\n }\n consolidateWith(t) {\n const e = Ki.textForStringWithAttributes(\"\\n\"),\n i = this.getTextWithoutBlockBreak().appendText(e);\n return this.copyWithText(i.appendText(t.text));\n }\n splitAtOffset(t) {\n let e, i;\n return 0 === t ? (e = null, i = this) : t === this.getLength() ? (e = this, i = null) : (e = this.copyWithText(this.text.getTextAtRange([0, t])), i = this.copyWithText(this.text.getTextAtRange([t, this.getLength()]))), [e, i];\n }\n getBlockBreakPosition() {\n return this.text.getLength() - 1;\n }\n getTextWithoutBlockBreak() {\n return Qi(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n }\n canBeGrouped(t) {\n return this.attributes[t];\n }\n canBeGroupedWith(t, e) {\n const i = t.getAttributes(),\n r = i[e],\n o = this.attributes[e];\n return o === r && !(!1 === mt(o).group && !(() => {\n if (!dt) {\n dt = [];\n for (const t in n) {\n const {\n listAttribute: e\n } = n[t];\n null != e && dt.push(e);\n }\n }\n return dt;\n })().includes(i[e + 1])) && (this.getDirection() === t.getDirection() || t.isEmpty());\n }\n}\nconst Yi = function (t) {\n return t = $i(t), t = Zi(t);\n },\n $i = function (t) {\n let e = !1;\n const i = t.getPieces();\n let n = i.slice(0, i.length - 1);\n const r = i[i.length - 1];\n return r ? (n = n.map(t => t.isBlockBreak() ? (e = !0, tn(t)) : t), e ? new Ki([...n, r]) : t) : t;\n },\n Xi = Ki.textForStringWithAttributes(\"\\n\", {\n blockBreak: !0\n }),\n Zi = function (t) {\n return Qi(t) ? t : t.appendText(Xi);\n },\n Qi = function (t) {\n const e = t.getLength();\n if (0 === e) return !1;\n return t.getTextAtRange([e - 1, e]).isBlockBreak();\n },\n tn = t => t.copyWithoutAttribute(\"blockBreak\"),\n en = function (t) {\n const {\n listAttribute: e\n } = mt(t);\n return e ? [e, t] : [t];\n },\n nn = t => t.slice(-1)[0],\n rn = function (t, e) {\n const i = t.lastIndexOf(e);\n return -1 === i ? t : st(t, i, 1);\n };\nclass on extends rt {\n static fromJSON(t) {\n return new this(Array.from(t).map(t => Gi.fromJSON(t)));\n }\n static fromString(t, e) {\n const i = Ki.textForStringWithAttributes(t, e);\n return new this([new Gi(i)]);\n }\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n super(...arguments), 0 === t.length && (t = [new Gi()]), this.blockList = zi.box(t);\n }\n isEmpty() {\n const t = this.getBlockAtIndex(0);\n return 1 === this.blockList.length && t.isEmpty() && !t.hasAttributes();\n }\n copy() {\n const t = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).consolidateBlocks ? this.blockList.consolidate().toArray() : this.blockList.toArray();\n return new this.constructor(t);\n }\n copyUsingObjectsFromDocument(t) {\n const e = new Zt(t.getObjects());\n return this.copyUsingObjectMap(e);\n }\n copyUsingObjectMap(t) {\n const e = this.getBlocks().map(e => t.find(e) || e.copyUsingObjectMap(t));\n return new this.constructor(e);\n }\n copyWithBaseBlockAttributes() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n const e = this.getBlocks().map(e => {\n const i = t.concat(e.getAttributes());\n return e.copyWithAttributes(i);\n });\n return new this.constructor(e);\n }\n replaceBlock(t, e) {\n const i = this.blockList.indexOf(t);\n return -1 === i ? this : new this.constructor(this.blockList.replaceObjectAtIndex(e, i));\n }\n insertDocumentAtRange(t, e) {\n const {\n blockList: i\n } = t;\n e = wt(e);\n let [n] = e;\n const {\n index: r,\n offset: o\n } = this.locationFromPosition(n);\n let s = this;\n const a = this.getBlockAtPosition(n);\n return Lt(e) && a.isEmpty() && !a.hasAttributes() ? s = new this.constructor(s.blockList.removeObjectAtIndex(r)) : a.getBlockBreakPosition() === o && n++, s = s.removeTextAtRange(e), new this.constructor(s.blockList.insertSplittableListAtPosition(i, n));\n }\n mergeDocumentAtRange(t, e) {\n let i, n;\n e = wt(e);\n const [r] = e,\n o = this.locationFromPosition(r),\n s = this.getBlockAtIndex(o.index).getAttributes(),\n a = t.getBaseBlockAttributes(),\n l = s.slice(-a.length);\n if (ot(a, l)) {\n const e = s.slice(0, -a.length);\n i = t.copyWithBaseBlockAttributes(e);\n } else i = t.copy({\n consolidateBlocks: !0\n }).copyWithBaseBlockAttributes(s);\n const c = i.getBlockCount(),\n u = i.getBlockAtIndex(0);\n if (ot(s, u.getAttributes())) {\n const t = u.getTextWithoutBlockBreak();\n if (n = this.insertTextAtRange(t, e), c > 1) {\n i = new this.constructor(i.getBlocks().slice(1));\n const e = r + t.getLength();\n n = n.insertDocumentAtRange(i, e);\n }\n } else n = this.insertDocumentAtRange(i, e);\n return n;\n }\n insertTextAtRange(t, e) {\n e = wt(e);\n const [i] = e,\n {\n index: n,\n offset: r\n } = this.locationFromPosition(i),\n o = this.removeTextAtRange(e);\n return new this.constructor(o.blockList.editObjectAtIndex(n, e => e.copyWithText(e.text.insertTextAtPosition(t, r))));\n }\n removeTextAtRange(t) {\n let e;\n t = wt(t);\n const [i, n] = t;\n if (Lt(t)) return this;\n const [r, o] = Array.from(this.locationRangeFromRange(t)),\n s = r.index,\n a = r.offset,\n l = this.getBlockAtIndex(s),\n c = o.index,\n u = o.offset,\n h = this.getBlockAtIndex(c);\n if (n - i == 1 && l.getBlockBreakPosition() === a && h.getBlockBreakPosition() !== u && \"\\n\" === h.text.getStringAtPosition(u)) e = this.blockList.editObjectAtIndex(c, t => t.copyWithText(t.text.removeTextAtRange([u, u + 1])));else {\n let t;\n const i = l.text.getTextAtRange([0, a]),\n n = h.text.getTextAtRange([u, h.getLength()]),\n r = i.appendText(n);\n t = s !== c && 0 === a && l.getAttributeLevel() >= h.getAttributeLevel() ? h.copyWithText(r) : l.copyWithText(r);\n const o = c + 1 - s;\n e = this.blockList.splice(s, o, t);\n }\n return new this.constructor(e);\n }\n moveTextFromRangeToPosition(t, e) {\n let i;\n t = wt(t);\n const [n, r] = t;\n if (n <= e && e <= r) return this;\n let o = this.getDocumentAtRange(t),\n s = this.removeTextAtRange(t);\n const a = n < e;\n a && (e -= o.getLength());\n const [l, ...c] = o.getBlocks();\n return 0 === c.length ? (i = l.getTextWithoutBlockBreak(), a && (e += 1)) : i = l.text, s = s.insertTextAtRange(i, e), 0 === c.length ? s : (o = new this.constructor(c), e += i.getLength(), s.insertDocumentAtRange(o, e));\n }\n addAttributeAtRange(t, e, i) {\n let {\n blockList: n\n } = this;\n return this.eachBlockAtRange(i, (i, r, o) => n = n.editObjectAtIndex(o, function () {\n return mt(t) ? i.addAttribute(t, e) : r[0] === r[1] ? i : i.copyWithText(i.text.addAttributeAtRange(t, e, r));\n })), new this.constructor(n);\n }\n addAttribute(t, e) {\n let {\n blockList: i\n } = this;\n return this.eachBlock((n, r) => i = i.editObjectAtIndex(r, () => n.addAttribute(t, e))), new this.constructor(i);\n }\n removeAttributeAtRange(t, e) {\n let {\n blockList: i\n } = this;\n return this.eachBlockAtRange(e, function (e, n, r) {\n mt(t) ? i = i.editObjectAtIndex(r, () => e.removeAttribute(t)) : n[0] !== n[1] && (i = i.editObjectAtIndex(r, () => e.copyWithText(e.text.removeAttributeAtRange(t, n))));\n }), new this.constructor(i);\n }\n updateAttributesForAttachment(t, e) {\n const i = this.getRangeOfAttachment(e),\n [n] = Array.from(i),\n {\n index: r\n } = this.locationFromPosition(n),\n o = this.getTextAtIndex(r);\n return new this.constructor(this.blockList.editObjectAtIndex(r, i => i.copyWithText(o.updateAttributesForAttachment(t, e))));\n }\n removeAttributeForAttachment(t, e) {\n const i = this.getRangeOfAttachment(e);\n return this.removeAttributeAtRange(t, i);\n }\n setHTMLAttributeAtPosition(t, e, i) {\n const n = this.getBlockAtPosition(t),\n r = n.addHTMLAttribute(e, i);\n return this.replaceBlock(n, r);\n }\n insertBlockBreakAtRange(t) {\n let e;\n t = wt(t);\n const [i] = t,\n {\n offset: n\n } = this.locationFromPosition(i),\n r = this.removeTextAtRange(t);\n return 0 === n && (e = [new Gi()]), new this.constructor(r.blockList.insertSplittableListAtPosition(new zi(e), i));\n }\n applyBlockAttributeAtRange(t, e, i) {\n const n = this.expandRangeToLineBreaksAndSplitBlocks(i);\n let r = n.document;\n i = n.range;\n const o = mt(t);\n if (o.listAttribute) {\n r = r.removeLastListAttributeAtRange(i, {\n exceptAttributeName: t\n });\n const e = r.convertLineBreaksToBlockBreaksInRange(i);\n r = e.document, i = e.range;\n } else r = o.exclusive ? r.removeBlockAttributesAtRange(i) : o.terminal ? r.removeLastTerminalAttributeAtRange(i) : r.consolidateBlocksAtRange(i);\n return r.addAttributeAtRange(t, e, i);\n }\n removeLastListAttributeAtRange(t) {\n let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n {\n blockList: i\n } = this;\n return this.eachBlockAtRange(t, function (t, n, r) {\n const o = t.getLastAttribute();\n o && mt(o).listAttribute && o !== e.exceptAttributeName && (i = i.editObjectAtIndex(r, () => t.removeAttribute(o)));\n }), new this.constructor(i);\n }\n removeLastTerminalAttributeAtRange(t) {\n let {\n blockList: e\n } = this;\n return this.eachBlockAtRange(t, function (t, i, n) {\n const r = t.getLastAttribute();\n r && mt(r).terminal && (e = e.editObjectAtIndex(n, () => t.removeAttribute(r)));\n }), new this.constructor(e);\n }\n removeBlockAttributesAtRange(t) {\n let {\n blockList: e\n } = this;\n return this.eachBlockAtRange(t, function (t, i, n) {\n t.hasAttributes() && (e = e.editObjectAtIndex(n, () => t.copyWithoutAttributes()));\n }), new this.constructor(e);\n }\n expandRangeToLineBreaksAndSplitBlocks(t) {\n let e;\n t = wt(t);\n let [i, n] = t;\n const r = this.locationFromPosition(i),\n o = this.locationFromPosition(n);\n let s = this;\n const a = s.getBlockAtIndex(r.index);\n if (r.offset = a.findLineBreakInDirectionFromPosition(\"backward\", r.offset), null != r.offset && (e = s.positionFromLocation(r), s = s.insertBlockBreakAtRange([e, e + 1]), o.index += 1, o.offset -= s.getBlockAtIndex(r.index).getLength(), r.index += 1), r.offset = 0, 0 === o.offset && o.index > r.index) o.index -= 1, o.offset = s.getBlockAtIndex(o.index).getBlockBreakPosition();else {\n const t = s.getBlockAtIndex(o.index);\n \"\\n\" === t.text.getStringAtRange([o.offset - 1, o.offset]) ? o.offset -= 1 : o.offset = t.findLineBreakInDirectionFromPosition(\"forward\", o.offset), o.offset !== t.getBlockBreakPosition() && (e = s.positionFromLocation(o), s = s.insertBlockBreakAtRange([e, e + 1]));\n }\n return i = s.positionFromLocation(r), n = s.positionFromLocation(o), {\n document: s,\n range: t = wt([i, n])\n };\n }\n convertLineBreaksToBlockBreaksInRange(t) {\n t = wt(t);\n let [e] = t;\n const i = this.getStringAtRange(t).slice(0, -1);\n let n = this;\n return i.replace(/.*?\\n/g, function (t) {\n e += t.length, n = n.insertBlockBreakAtRange([e - 1, e]);\n }), {\n document: n,\n range: t\n };\n }\n consolidateBlocksAtRange(t) {\n t = wt(t);\n const [e, i] = t,\n n = this.locationFromPosition(e).index,\n r = this.locationFromPosition(i).index;\n return new this.constructor(this.blockList.consolidateFromIndexToIndex(n, r));\n }\n getDocumentAtRange(t) {\n t = wt(t);\n const e = this.blockList.getSplittableListInRange(t).toArray();\n return new this.constructor(e);\n }\n getStringAtRange(t) {\n let e;\n const i = t = wt(t);\n return i[i.length - 1] !== this.getLength() && (e = -1), this.getDocumentAtRange(t).toString().slice(0, e);\n }\n getBlockAtIndex(t) {\n return this.blockList.getObjectAtIndex(t);\n }\n getBlockAtPosition(t) {\n const {\n index: e\n } = this.locationFromPosition(t);\n return this.getBlockAtIndex(e);\n }\n getTextAtIndex(t) {\n var e;\n return null === (e = this.getBlockAtIndex(t)) || void 0 === e ? void 0 : e.text;\n }\n getTextAtPosition(t) {\n const {\n index: e\n } = this.locationFromPosition(t);\n return this.getTextAtIndex(e);\n }\n getPieceAtPosition(t) {\n const {\n index: e,\n offset: i\n } = this.locationFromPosition(t);\n return this.getTextAtIndex(e).getPieceAtPosition(i);\n }\n getCharacterAtPosition(t) {\n const {\n index: e,\n offset: i\n } = this.locationFromPosition(t);\n return this.getTextAtIndex(e).getStringAtRange([i, i + 1]);\n }\n getLength() {\n return this.blockList.getEndPosition();\n }\n getBlocks() {\n return this.blockList.toArray();\n }\n getBlockCount() {\n return this.blockList.length;\n }\n getEditCount() {\n return this.editCount;\n }\n eachBlock(t) {\n return this.blockList.eachObject(t);\n }\n eachBlockAtRange(t, e) {\n let i, n;\n t = wt(t);\n const [r, o] = t,\n s = this.locationFromPosition(r),\n a = this.locationFromPosition(o);\n if (s.index === a.index) return i = this.getBlockAtIndex(s.index), n = [s.offset, a.offset], e(i, n, s.index);\n for (let t = s.index; t <= a.index; t++) if (i = this.getBlockAtIndex(t), i) {\n switch (t) {\n case s.index:\n n = [s.offset, i.text.getLength()];\n break;\n case a.index:\n n = [0, a.offset];\n break;\n default:\n n = [0, i.text.getLength()];\n }\n e(i, n, t);\n }\n }\n getCommonAttributesAtRange(t) {\n t = wt(t);\n const [e] = t;\n if (Lt(t)) return this.getCommonAttributesAtPosition(e);\n {\n const e = [],\n i = [];\n return this.eachBlockAtRange(t, function (t, n) {\n if (n[0] !== n[1]) return e.push(t.text.getCommonAttributesAtRange(n)), i.push(sn(t));\n }), Ht.fromCommonAttributesOfObjects(e).merge(Ht.fromCommonAttributesOfObjects(i)).toObject();\n }\n }\n getCommonAttributesAtPosition(t) {\n let e, i;\n const {\n index: n,\n offset: r\n } = this.locationFromPosition(t),\n o = this.getBlockAtIndex(n);\n if (!o) return {};\n const s = sn(o),\n a = o.text.getAttributesAtPosition(r),\n l = o.text.getAttributesAtPosition(r - 1),\n c = Object.keys(W).filter(t => W[t].inheritable);\n for (e in l) i = l[e], (i === a[e] || c.includes(e)) && (s[e] = i);\n return s;\n }\n getRangeOfCommonAttributeAtPosition(t, e) {\n const {\n index: i,\n offset: n\n } = this.locationFromPosition(e),\n r = this.getTextAtIndex(i),\n [o, s] = Array.from(r.getExpandedRangeForAttributeAtOffset(t, n)),\n a = this.positionFromLocation({\n index: i,\n offset: o\n }),\n l = this.positionFromLocation({\n index: i,\n offset: s\n });\n return wt([a, l]);\n }\n getBaseBlockAttributes() {\n let t = this.getBlockAtIndex(0).getAttributes();\n for (let e = 1; e < this.getBlockCount(); e++) {\n const i = this.getBlockAtIndex(e).getAttributes(),\n n = Math.min(t.length, i.length);\n t = (() => {\n const e = [];\n for (let r = 0; r < n && i[r] === t[r]; r++) e.push(i[r]);\n return e;\n })();\n }\n return t;\n }\n getAttachmentById(t) {\n for (const e of this.getAttachments()) if (e.id === t) return e;\n }\n getAttachmentPieces() {\n let t = [];\n return this.blockList.eachObject(e => {\n let {\n text: i\n } = e;\n return t = t.concat(i.getAttachmentPieces());\n }), t;\n }\n getAttachments() {\n return this.getAttachmentPieces().map(t => t.attachment);\n }\n getRangeOfAttachment(t) {\n let e = 0;\n const i = this.blockList.toArray();\n for (let n = 0; n < i.length; n++) {\n const {\n text: r\n } = i[n],\n o = r.getRangeOfAttachment(t);\n if (o) return wt([e + o[0], e + o[1]]);\n e += r.getLength();\n }\n }\n getLocationRangeOfAttachment(t) {\n const e = this.getRangeOfAttachment(t);\n return this.locationRangeFromRange(e);\n }\n getAttachmentPieceForAttachment(t) {\n for (const e of this.getAttachmentPieces()) if (e.attachment === t) return e;\n }\n findRangesForBlockAttribute(t) {\n let e = 0;\n const i = [];\n return this.getBlocks().forEach(n => {\n const r = n.getLength();\n n.hasAttribute(t) && i.push([e, e + r]), e += r;\n }), i;\n }\n findRangesForTextAttribute(t) {\n let {\n withValue: e\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n i = 0,\n n = [];\n const r = [];\n return this.getPieces().forEach(o => {\n const s = o.getLength();\n (function (i) {\n return e ? i.getAttribute(t) === e : i.hasAttribute(t);\n })(o) && (n[1] === i ? n[1] = i + s : r.push(n = [i, i + s])), i += s;\n }), r;\n }\n locationFromPosition(t) {\n const e = this.blockList.findIndexAndOffsetAtPosition(Math.max(0, t));\n if (null != e.index) return e;\n {\n const t = this.getBlocks();\n return {\n index: t.length - 1,\n offset: t[t.length - 1].getLength()\n };\n }\n }\n positionFromLocation(t) {\n return this.blockList.findPositionAtIndexAndOffset(t.index, t.offset);\n }\n locationRangeFromPosition(t) {\n return wt(this.locationFromPosition(t));\n }\n locationRangeFromRange(t) {\n if (!(t = wt(t))) return;\n const [e, i] = Array.from(t),\n n = this.locationFromPosition(e),\n r = this.locationFromPosition(i);\n return wt([n, r]);\n }\n rangeFromLocationRange(t) {\n let e;\n t = wt(t);\n const i = this.positionFromLocation(t[0]);\n return Lt(t) || (e = this.positionFromLocation(t[1])), wt([i, e]);\n }\n isEqualTo(t) {\n return this.blockList.isEqualTo(null == t ? void 0 : t.blockList);\n }\n getTexts() {\n return this.getBlocks().map(t => t.text);\n }\n getPieces() {\n const t = [];\n return Array.from(this.getTexts()).forEach(e => {\n t.push(...Array.from(e.getPieces() || []));\n }), t;\n }\n getObjects() {\n return this.getBlocks().concat(this.getTexts()).concat(this.getPieces());\n }\n toSerializableDocument() {\n const t = [];\n return this.blockList.eachObject(e => t.push(e.copyWithText(e.text.toSerializableText()))), new this.constructor(t);\n }\n toString() {\n return this.blockList.toString();\n }\n toJSON() {\n return this.blockList.toJSON();\n }\n toConsole() {\n return JSON.stringify(this.blockList.toArray().map(t => JSON.parse(t.text.toConsole())));\n }\n}\nconst sn = function (t) {\n const e = {},\n i = t.getLastAttribute();\n return i && (e[i] = !0), e;\n },\n an = function (t) {\n let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n return {\n string: t = Wt(t),\n attributes: e,\n type: \"string\"\n };\n },\n ln = (t, e) => {\n try {\n return JSON.parse(t.getAttribute(\"data-trix-\".concat(e)));\n } catch (t) {\n return {};\n }\n };\nclass cn extends q {\n static parse(t, e) {\n const i = new this(t, e);\n return i.parse(), i;\n }\n constructor(t) {\n let {\n referenceElement: e\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n super(...arguments), this.html = t, this.referenceElement = e, this.blocks = [], this.blockElements = [], this.processedElements = [];\n }\n getDocument() {\n return on.fromJSON(this.blocks);\n }\n parse() {\n try {\n this.createHiddenContainer(), ui.setHTML(this.containerElement, this.html);\n const t = R(this.containerElement, {\n usingFilter: gn\n });\n for (; t.nextNode();) this.processNode(t.currentNode);\n return this.translateBlockElementMarginsToNewlines();\n } finally {\n this.removeHiddenContainer();\n }\n }\n createHiddenContainer() {\n return this.referenceElement ? (this.containerElement = this.referenceElement.cloneNode(!1), this.containerElement.removeAttribute(\"id\"), this.containerElement.setAttribute(\"data-trix-internal\", \"\"), this.containerElement.style.display = \"none\", this.referenceElement.parentNode.insertBefore(this.containerElement, this.referenceElement.nextSibling)) : (this.containerElement = T({\n tagName: \"div\",\n style: {\n display: \"none\"\n }\n }), document.body.appendChild(this.containerElement));\n }\n removeHiddenContainer() {\n return S(this.containerElement);\n }\n processNode(t) {\n switch (t.nodeType) {\n case Node.TEXT_NODE:\n if (!this.isInsignificantTextNode(t)) return this.appendBlockForTextNode(t), this.processTextNode(t);\n break;\n case Node.ELEMENT_NODE:\n return this.appendBlockForElement(t), this.processElement(t);\n }\n }\n appendBlockForTextNode(t) {\n const e = t.parentNode;\n if (e === this.currentBlockElement && this.isBlockElement(t.previousSibling)) return this.appendStringWithAttributes(\"\\n\");\n if (e === this.containerElement || this.isBlockElement(e)) {\n var i;\n const t = this.getBlockAttributes(e),\n n = this.getBlockHTMLAttributes(e);\n ot(t, null === (i = this.currentBlock) || void 0 === i ? void 0 : i.attributes) || (this.currentBlock = this.appendBlockForAttributesWithElement(t, e, n), this.currentBlockElement = e);\n }\n }\n appendBlockForElement(t) {\n const e = this.isBlockElement(t),\n i = C(this.currentBlockElement, t);\n if (e && !this.isBlockElement(t.firstChild)) {\n if (!this.isInsignificantTextNode(t.firstChild) || !this.isBlockElement(t.firstElementChild)) {\n const e = this.getBlockAttributes(t),\n n = this.getBlockHTMLAttributes(t);\n if (t.firstChild) {\n if (i && ot(e, this.currentBlock.attributes)) return this.appendStringWithAttributes(\"\\n\");\n this.currentBlock = this.appendBlockForAttributesWithElement(e, t, n), this.currentBlockElement = t;\n }\n }\n } else if (this.currentBlockElement && !i && !e) {\n const e = this.findParentBlockElement(t);\n if (e) return this.appendBlockForElement(e);\n this.currentBlock = this.appendEmptyBlock(), this.currentBlockElement = null;\n }\n }\n findParentBlockElement(t) {\n let {\n parentElement: e\n } = t;\n for (; e && e !== this.containerElement;) {\n if (this.isBlockElement(e) && this.blockElements.includes(e)) return e;\n e = e.parentElement;\n }\n return null;\n }\n processTextNode(t) {\n let e = t.data;\n var i;\n un(t.parentNode) || (e = Vt(e), fn(null === (i = t.previousSibling) || void 0 === i ? void 0 : i.textContent) && (e = mn(e)));\n return this.appendStringWithAttributes(e, this.getTextAttributes(t.parentNode));\n }\n processElement(t) {\n let e;\n if (P(t)) {\n if (e = ln(t, \"attachment\"), Object.keys(e).length) {\n const i = this.getTextAttributes(t);\n this.appendAttachmentWithAttributes(e, i), t.innerHTML = \"\";\n }\n return this.processedElements.push(t);\n }\n switch (k(t)) {\n case \"br\":\n return this.isExtraBR(t) || this.isBlockElement(t.nextSibling) || this.appendStringWithAttributes(\"\\n\", this.getTextAttributes(t)), this.processedElements.push(t);\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n };\n const i = (t => {\n const e = t.getAttribute(\"width\"),\n i = t.getAttribute(\"height\"),\n n = {};\n return e && (n.width = parseInt(e, 10)), i && (n.height = parseInt(i, 10)), n;\n })(t);\n for (const t in i) {\n const n = i[t];\n e[t] = n;\n }\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n case \"tr\":\n if (this.needsTableSeparator(t)) return this.appendStringWithAttributes(j.tableRowSeparator);\n break;\n case \"td\":\n if (this.needsTableSeparator(t)) return this.appendStringWithAttributes(j.tableCellSeparator);\n }\n }\n appendBlockForAttributesWithElement(t, e) {\n let i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\n this.blockElements.push(e);\n const n = function () {\n return {\n text: [],\n attributes: arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n htmlAttributes: arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}\n };\n }(t, i);\n return this.blocks.push(n), n;\n }\n appendEmptyBlock() {\n return this.appendBlockForAttributesWithElement([], null);\n }\n appendStringWithAttributes(t, e) {\n return this.appendPiece(an(t, e));\n }\n appendAttachmentWithAttributes(t, e) {\n return this.appendPiece(function (t) {\n return {\n attachment: t,\n attributes: arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n type: \"attachment\"\n };\n }(t, e));\n }\n appendPiece(t) {\n return 0 === this.blocks.length && this.appendEmptyBlock(), this.blocks[this.blocks.length - 1].text.push(t);\n }\n appendStringToTextAtIndex(t, e) {\n const {\n text: i\n } = this.blocks[e],\n n = i[i.length - 1];\n if (\"string\" !== (null == n ? void 0 : n.type)) return i.push(an(t));\n n.string += t;\n }\n prependStringToTextAtIndex(t, e) {\n const {\n text: i\n } = this.blocks[e],\n n = i[0];\n if (\"string\" !== (null == n ? void 0 : n.type)) return i.unshift(an(t));\n n.string = t + n.string;\n }\n getTextAttributes(t) {\n let e;\n const i = {};\n for (const n in W) {\n const r = W[n];\n if (r.tagName && y(t, {\n matchingSelector: r.tagName,\n untilNode: this.containerElement\n })) i[n] = !0;else if (r.parser) {\n if (e = r.parser(t), e) {\n let o = !1;\n for (const i of this.findBlockElementAncestors(t)) if (r.parser(i) === e) {\n o = !0;\n break;\n }\n o || (i[n] = e);\n }\n } else r.styleProperty && (e = t.style[r.styleProperty], e && (i[n] = e));\n }\n if (P(t)) {\n const n = ln(t, \"attributes\");\n for (const t in n) e = n[t], i[t] = e;\n }\n return i;\n }\n getBlockAttributes(t) {\n const e = [];\n for (; t && t !== this.containerElement;) {\n for (const r in n) {\n const o = n[r];\n var i;\n if (!1 !== o.parse) if (k(t) === o.tagName) (null !== (i = o.test) && void 0 !== i && i.call(o, t) || !o.test) && (e.push(r), o.listAttribute && e.push(o.listAttribute));\n }\n t = t.parentNode;\n }\n return e.reverse();\n }\n getBlockHTMLAttributes(t) {\n const e = {},\n i = Object.values(n).find(e => e.tagName === k(t));\n return ((null == i ? void 0 : i.htmlAttributes) || []).forEach(i => {\n t.hasAttribute(i) && (e[i] = t.getAttribute(i));\n }), e;\n }\n findBlockElementAncestors(t) {\n const e = [];\n for (; t && t !== this.containerElement;) {\n const i = k(t);\n L().includes(i) && e.push(t), t = t.parentNode;\n }\n return e;\n }\n isBlockElement(t) {\n if ((null == t ? void 0 : t.nodeType) === Node.ELEMENT_NODE && !P(t) && !y(t, {\n matchingSelector: \"td\",\n untilNode: this.containerElement\n })) return L().includes(k(t)) || \"block\" === window.getComputedStyle(t).display;\n }\n isInsignificantTextNode(t) {\n if ((null == t ? void 0 : t.nodeType) !== Node.TEXT_NODE) return;\n if (!pn(t.data)) return;\n const {\n parentNode: e,\n previousSibling: i,\n nextSibling: n\n } = t;\n return hn(e.previousSibling) && !this.isBlockElement(e.previousSibling) || un(e) ? void 0 : !i || this.isBlockElement(i) || !n || this.isBlockElement(n);\n }\n isExtraBR(t) {\n return \"br\" === k(t) && this.isBlockElement(t.parentNode) && t.parentNode.lastChild === t;\n }\n needsTableSeparator(t) {\n if (j.removeBlankTableCells) {\n var e;\n const i = null === (e = t.previousSibling) || void 0 === e ? void 0 : e.textContent;\n return i && /\\S/.test(i);\n }\n return t.previousSibling;\n }\n translateBlockElementMarginsToNewlines() {\n const t = this.getMarginOfDefaultBlockElement();\n for (let e = 0; e < this.blocks.length; e++) {\n const i = this.getMarginOfBlockElementAtIndex(e);\n i && (i.top > 2 * t.top && this.prependStringToTextAtIndex(\"\\n\", e), i.bottom > 2 * t.bottom && this.appendStringToTextAtIndex(\"\\n\", e));\n }\n }\n getMarginOfBlockElementAtIndex(t) {\n const e = this.blockElements[t];\n if (e && e.textContent && !L().includes(k(e)) && !this.processedElements.includes(e)) return dn(e);\n }\n getMarginOfDefaultBlockElement() {\n const t = T(n.default.tagName);\n return this.containerElement.appendChild(t), dn(t);\n }\n}\nconst un = function (t) {\n const {\n whiteSpace: e\n } = window.getComputedStyle(t);\n return [\"pre\", \"pre-wrap\", \"pre-line\"].includes(e);\n },\n hn = t => t && !fn(t.textContent),\n dn = function (t) {\n const e = window.getComputedStyle(t);\n if (\"block\" === e.display) return {\n top: parseInt(e.marginTop),\n bottom: parseInt(e.marginBottom)\n };\n },\n gn = function (t) {\n return \"style\" === k(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n },\n mn = t => t.replace(new RegExp(\"^\".concat(Ut.source, \"+\")), \"\"),\n pn = t => new RegExp(\"^\".concat(Ut.source, \"*$\")).test(t),\n fn = t => /\\s$/.test(t),\n bn = [\"contenteditable\", \"data-trix-id\", \"data-trix-store-key\", \"data-trix-mutable\", \"data-trix-placeholder\", \"tabindex\"],\n vn = \"data-trix-serialized-attributes\",\n An = \"[\".concat(vn, \"]\"),\n yn = new RegExp(\"\\x3c!--block--\\x3e\", \"g\"),\n xn = {\n \"application/json\": function (t) {\n let e;\n if (t instanceof on) e = t;else {\n if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n e = cn.parse(t.innerHTML).getDocument();\n }\n return e.toSerializableDocument().toJSONString();\n },\n \"text/html\": function (t) {\n let e;\n if (t instanceof on) e = Ci.render(t);else {\n if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n e = t.cloneNode(!0);\n }\n return Array.from(e.querySelectorAll(\"[data-trix-serialize=false]\")).forEach(t => {\n S(t);\n }), bn.forEach(t => {\n Array.from(e.querySelectorAll(\"[\".concat(t, \"]\"))).forEach(e => {\n e.removeAttribute(t);\n });\n }), Array.from(e.querySelectorAll(An)).forEach(t => {\n try {\n const e = JSON.parse(t.getAttribute(vn));\n t.removeAttribute(vn);\n for (const i in e) {\n const n = e[i];\n t.setAttribute(i, n);\n }\n } catch (t) {}\n }), e.innerHTML.replace(yn, \"\");\n }\n };\nvar Cn = Object.freeze({\n __proto__: null\n});\nclass En extends q {\n constructor(t, e) {\n super(...arguments), this.attachmentManager = t, this.attachment = e, this.id = this.attachment.id, this.file = this.attachment.file;\n }\n remove() {\n return this.attachmentManager.requestRemovalOfAttachment(this.attachment);\n }\n}\nEn.proxyMethod(\"attachment.getAttribute\"), En.proxyMethod(\"attachment.hasAttribute\"), En.proxyMethod(\"attachment.setAttribute\"), En.proxyMethod(\"attachment.getAttributes\"), En.proxyMethod(\"attachment.setAttributes\"), En.proxyMethod(\"attachment.isPending\"), En.proxyMethod(\"attachment.isPreviewable\"), En.proxyMethod(\"attachment.getURL\"), En.proxyMethod(\"attachment.getHref\"), En.proxyMethod(\"attachment.getFilename\"), En.proxyMethod(\"attachment.getFilesize\"), En.proxyMethod(\"attachment.getFormattedFilesize\"), En.proxyMethod(\"attachment.getExtension\"), En.proxyMethod(\"attachment.getContentType\"), En.proxyMethod(\"attachment.getFile\"), En.proxyMethod(\"attachment.setFile\"), En.proxyMethod(\"attachment.releaseFile\"), En.proxyMethod(\"attachment.getUploadProgress\"), En.proxyMethod(\"attachment.setUploadProgress\");\nclass Sn extends q {\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n super(...arguments), this.managedAttachments = {}, Array.from(t).forEach(t => {\n this.manageAttachment(t);\n });\n }\n getAttachments() {\n const t = [];\n for (const e in this.managedAttachments) {\n const i = this.managedAttachments[e];\n t.push(i);\n }\n return t;\n }\n manageAttachment(t) {\n return this.managedAttachments[t.id] || (this.managedAttachments[t.id] = new En(this, t)), this.managedAttachments[t.id];\n }\n attachmentIsManaged(t) {\n return t.id in this.managedAttachments;\n }\n requestRemovalOfAttachment(t) {\n var e, i;\n if (this.attachmentIsManaged(t)) return null === (e = this.delegate) || void 0 === e || null === (i = e.attachmentManagerDidRequestRemovalOfAttachment) || void 0 === i ? void 0 : i.call(e, t);\n }\n unmanageAttachment(t) {\n const e = this.managedAttachments[t.id];\n return delete this.managedAttachments[t.id], e;\n }\n}\nclass Rn {\n constructor(t) {\n this.composition = t, this.document = this.composition.document;\n const e = this.composition.getSelectedRange();\n this.startPosition = e[0], this.endPosition = e[1], this.startLocation = this.document.locationFromPosition(this.startPosition), this.endLocation = this.document.locationFromPosition(this.endPosition), this.block = this.document.getBlockAtIndex(this.endLocation.index), this.breaksOnReturn = this.block.breaksOnReturn(), this.previousCharacter = this.block.text.getStringAtPosition(this.endLocation.offset - 1), this.nextCharacter = this.block.text.getStringAtPosition(this.endLocation.offset);\n }\n shouldInsertBlockBreak() {\n return this.block.hasAttributes() && this.block.isListItem() && !this.block.isEmpty() ? 0 !== this.startLocation.offset : this.breaksOnReturn && \"\\n\" !== this.nextCharacter;\n }\n shouldBreakFormattedBlock() {\n return this.block.hasAttributes() && !this.block.isListItem() && (this.breaksOnReturn && \"\\n\" === this.nextCharacter || \"\\n\" === this.previousCharacter);\n }\n shouldDecreaseListLevel() {\n return this.block.hasAttributes() && this.block.isListItem() && this.block.isEmpty();\n }\n shouldPrependListItem() {\n return this.block.isListItem() && 0 === this.startLocation.offset && !this.block.isEmpty();\n }\n shouldRemoveLastBlockAttribute() {\n return this.block.hasAttributes() && !this.block.isListItem() && this.block.isEmpty();\n }\n}\nclass kn extends q {\n constructor() {\n super(...arguments), this.document = new on(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;\n }\n setDocument(t) {\n var e, i;\n if (!t.isEqualTo(this.document)) return this.document = t, this.refreshAttachments(), this.revision++, null === (e = this.delegate) || void 0 === e || null === (i = e.compositionDidChangeDocument) || void 0 === i ? void 0 : i.call(e, t);\n }\n getSnapshot() {\n return {\n document: this.document,\n selectedRange: this.getSelectedRange()\n };\n }\n loadSnapshot(t) {\n var e, i, n, r;\n let {\n document: o,\n selectedRange: s\n } = t;\n return null === (e = this.delegate) || void 0 === e || null === (i = e.compositionWillLoadSnapshot) || void 0 === i || i.call(e), this.setDocument(null != o ? o : new on()), this.setSelection(null != s ? s : [0, 0]), null === (n = this.delegate) || void 0 === n || null === (r = n.compositionDidLoadSnapshot) || void 0 === r ? void 0 : r.call(n);\n }\n insertText(t) {\n let {\n updatePosition: e\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n updatePosition: !0\n };\n const i = this.getSelectedRange();\n this.setDocument(this.document.insertTextAtRange(t, i));\n const n = i[0],\n r = n + t.getLength();\n return e && this.setSelection(r), this.notifyDelegateOfInsertionAtRange([n, r]);\n }\n insertBlock() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Gi();\n const e = new on([t]);\n return this.insertDocument(e);\n }\n insertDocument() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new on();\n const e = this.getSelectedRange();\n this.setDocument(this.document.insertDocumentAtRange(t, e));\n const i = e[0],\n n = i + t.getLength();\n return this.setSelection(n), this.notifyDelegateOfInsertionAtRange([i, n]);\n }\n insertString(t, e) {\n const i = this.getCurrentTextAttributes(),\n n = Ki.textForStringWithAttributes(t, i);\n return this.insertText(n, e);\n }\n insertBlockBreak() {\n const t = this.getSelectedRange();\n this.setDocument(this.document.insertBlockBreakAtRange(t));\n const e = t[0],\n i = e + 1;\n return this.setSelection(i), this.notifyDelegateOfInsertionAtRange([e, i]);\n }\n insertLineBreak() {\n const t = new Rn(this);\n if (t.shouldDecreaseListLevel()) return this.decreaseListLevel(), this.setSelection(t.startPosition);\n if (t.shouldPrependListItem()) {\n const e = new on([t.block.copyWithoutText()]);\n return this.insertDocument(e);\n }\n return t.shouldInsertBlockBreak() ? this.insertBlockBreak() : t.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : t.shouldBreakFormattedBlock() ? this.breakFormattedBlock(t) : this.insertString(\"\\n\");\n }\n insertHTML(t) {\n const e = cn.parse(t).getDocument(),\n i = this.getSelectedRange();\n this.setDocument(this.document.mergeDocumentAtRange(e, i));\n const n = i[0],\n r = n + e.getLength() - 1;\n return this.setSelection(r), this.notifyDelegateOfInsertionAtRange([n, r]);\n }\n replaceHTML(t) {\n const e = cn.parse(t).getDocument().copyUsingObjectsFromDocument(this.document),\n i = this.getLocationRange({\n strict: !1\n }),\n n = this.document.rangeFromLocationRange(i);\n return this.setDocument(e), this.setSelection(n);\n }\n insertFile(t) {\n return this.insertFiles([t]);\n }\n insertFiles(t) {\n const e = [];\n return Array.from(t).forEach(t => {\n var i;\n if (null !== (i = this.delegate) && void 0 !== i && i.compositionShouldAcceptFile(t)) {\n const i = Wi.attachmentForFile(t);\n e.push(i);\n }\n }), this.insertAttachments(e);\n }\n insertAttachment(t) {\n return this.insertAttachments([t]);\n }\n insertAttachments(t) {\n let e = new Ki();\n return Array.from(t).forEach(t => {\n var n;\n const r = t.getType(),\n o = null === (n = i[r]) || void 0 === n ? void 0 : n.presentation,\n s = this.getCurrentTextAttributes();\n o && (s.presentation = o);\n const a = Ki.textForAttachmentWithAttributes(t, s);\n e = e.appendText(a);\n }), this.insertText(e);\n }\n shouldManageDeletingInDirection(t) {\n const e = this.getLocationRange();\n if (Lt(e)) {\n if (\"backward\" === t && 0 === e[0].offset) return !0;\n if (this.shouldManageMovingCursorInDirection(t)) return !0;\n } else if (e[0].index !== e[1].index) return !0;\n return !1;\n }\n deleteInDirection(t) {\n let e,\n i,\n n,\n {\n length: r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n const o = this.getLocationRange();\n let s = this.getSelectedRange();\n const a = Lt(s);\n if (a ? i = \"backward\" === t && 0 === o[0].offset : n = o[0].index !== o[1].index, i && this.canDecreaseBlockAttributeLevel()) {\n const t = this.getBlock();\n if (t.isListItem() ? this.decreaseListLevel() : this.decreaseBlockAttributeLevel(), this.setSelection(s[0]), t.isEmpty()) return !1;\n }\n return a && (s = this.getExpandedRangeInDirection(t, {\n length: r\n }), \"backward\" === t && (e = this.getAttachmentAtRange(s))), e ? (this.editAttachment(e), !1) : (this.setDocument(this.document.removeTextAtRange(s)), this.setSelection(s[0]), !i && !n && void 0);\n }\n moveTextFromRange(t) {\n const [e] = Array.from(this.getSelectedRange());\n return this.setDocument(this.document.moveTextFromRangeToPosition(t, e)), this.setSelection(e);\n }\n removeAttachment(t) {\n const e = this.document.getRangeOfAttachment(t);\n if (e) return this.stopEditingAttachment(), this.setDocument(this.document.removeTextAtRange(e)), this.setSelection(e[0]);\n }\n removeLastBlockAttribute() {\n const [t, e] = Array.from(this.getSelectedRange()),\n i = this.document.getBlockAtPosition(e);\n return this.removeCurrentAttribute(i.getLastAttribute()), this.setSelection(t);\n }\n insertPlaceholder() {\n return this.placeholderPosition = this.getPosition(), this.insertString(\" \");\n }\n selectPlaceholder() {\n if (null != this.placeholderPosition) return this.setSelectedRange([this.placeholderPosition, this.placeholderPosition + 1]), this.getSelectedRange();\n }\n forgetPlaceholder() {\n this.placeholderPosition = null;\n }\n hasCurrentAttribute(t) {\n const e = this.currentAttributes[t];\n return null != e && !1 !== e;\n }\n toggleCurrentAttribute(t) {\n const e = !this.currentAttributes[t];\n return e ? this.setCurrentAttribute(t, e) : this.removeCurrentAttribute(t);\n }\n canSetCurrentAttribute(t) {\n return mt(t) ? this.canSetCurrentBlockAttribute(t) : this.canSetCurrentTextAttribute(t);\n }\n canSetCurrentTextAttribute(t) {\n const e = this.getSelectedDocument();\n if (e) {\n for (const t of Array.from(e.getAttachments())) if (!t.hasContent()) return !1;\n return !0;\n }\n }\n canSetCurrentBlockAttribute(t) {\n const e = this.getBlock();\n if (e) return !e.isTerminalBlock();\n }\n setCurrentAttribute(t, e) {\n return mt(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n }\n setHTMLAtributeAtPosition(t, e, i) {\n var n;\n const r = this.document.getBlockAtPosition(t),\n o = null === (n = mt(r.getLastAttribute())) || void 0 === n ? void 0 : n.htmlAttributes;\n if (r && null != o && o.includes(e)) {\n const n = this.document.setHTMLAttributeAtPosition(t, e, i);\n this.setDocument(n);\n }\n }\n setTextAttribute(t, e) {\n const i = this.getSelectedRange();\n if (!i) return;\n const [n, r] = Array.from(i);\n if (n !== r) return this.setDocument(this.document.addAttributeAtRange(t, e, i));\n if (\"href\" === t) {\n const t = Ki.textForStringWithAttributes(e, {\n href: e\n });\n return this.insertText(t);\n }\n }\n setBlockAttribute(t, e) {\n const i = this.getSelectedRange();\n if (this.canSetCurrentAttribute(t)) return this.setDocument(this.document.applyBlockAttributeAtRange(t, e, i)), this.setSelection(i);\n }\n removeCurrentAttribute(t) {\n return mt(t) ? (this.removeBlockAttribute(t), this.updateCurrentAttributes()) : (this.removeTextAttribute(t), delete this.currentAttributes[t], this.notifyDelegateOfCurrentAttributesChange());\n }\n removeTextAttribute(t) {\n const e = this.getSelectedRange();\n if (e) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }\n removeBlockAttribute(t) {\n const e = this.getSelectedRange();\n if (e) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }\n canDecreaseNestingLevel() {\n var t;\n return (null === (t = this.getBlock()) || void 0 === t ? void 0 : t.getNestingLevel()) > 0;\n }\n canIncreaseNestingLevel() {\n var t;\n const e = this.getBlock();\n if (e) {\n if (null === (t = mt(e.getLastNestableAttribute())) || void 0 === t || !t.listAttribute) return e.getNestingLevel() > 0;\n {\n const t = this.getPreviousBlock();\n if (t) return function () {\n let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];\n return ot((arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []).slice(0, t.length), t);\n }(t.getListItemAttributes(), e.getListItemAttributes());\n }\n }\n }\n decreaseNestingLevel() {\n const t = this.getBlock();\n if (t) return this.setDocument(this.document.replaceBlock(t, t.decreaseNestingLevel()));\n }\n increaseNestingLevel() {\n const t = this.getBlock();\n if (t) return this.setDocument(this.document.replaceBlock(t, t.increaseNestingLevel()));\n }\n canDecreaseBlockAttributeLevel() {\n var t;\n return (null === (t = this.getBlock()) || void 0 === t ? void 0 : t.getAttributeLevel()) > 0;\n }\n decreaseBlockAttributeLevel() {\n var t;\n const e = null === (t = this.getBlock()) || void 0 === t ? void 0 : t.getLastAttribute();\n if (e) return this.removeCurrentAttribute(e);\n }\n decreaseListLevel() {\n let [t] = Array.from(this.getSelectedRange());\n const {\n index: e\n } = this.document.locationFromPosition(t);\n let i = e;\n const n = this.getBlock().getAttributeLevel();\n let r = this.document.getBlockAtIndex(i + 1);\n for (; r && r.isListItem() && !(r.getAttributeLevel() <= n);) i++, r = this.document.getBlockAtIndex(i + 1);\n t = this.document.positionFromLocation({\n index: e,\n offset: 0\n });\n const o = this.document.positionFromLocation({\n index: i,\n offset: 0\n });\n return this.setDocument(this.document.removeLastListAttributeAtRange([t, o]));\n }\n updateCurrentAttributes() {\n const t = this.getSelectedRange({\n ignoreLock: !0\n });\n if (t) {\n const e = this.document.getCommonAttributesAtRange(t);\n if (Array.from(gt()).forEach(t => {\n e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n }), !Tt(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n }\n }\n getCurrentAttributes() {\n return m.call({}, this.currentAttributes);\n }\n getCurrentTextAttributes() {\n const t = {};\n for (const e in this.currentAttributes) {\n const i = this.currentAttributes[e];\n !1 !== i && ft(e) && (t[e] = i);\n }\n return t;\n }\n freezeSelection() {\n return this.setCurrentAttribute(\"frozen\", !0);\n }\n thawSelection() {\n return this.removeCurrentAttribute(\"frozen\");\n }\n hasFrozenSelection() {\n return this.hasCurrentAttribute(\"frozen\");\n }\n setSelection(t) {\n var e;\n const i = this.document.locationRangeFromRange(t);\n return null === (e = this.delegate) || void 0 === e ? void 0 : e.compositionDidRequestChangingSelectionToLocationRange(i);\n }\n getSelectedRange() {\n const t = this.getLocationRange();\n if (t) return this.document.rangeFromLocationRange(t);\n }\n setSelectedRange(t) {\n const e = this.document.locationRangeFromRange(t);\n return this.getSelectionManager().setLocationRange(e);\n }\n getPosition() {\n const t = this.getLocationRange();\n if (t) return this.document.positionFromLocation(t[0]);\n }\n getLocationRange(t) {\n return this.targetLocationRange ? this.targetLocationRange : this.getSelectionManager().getLocationRange(t) || wt({\n index: 0,\n offset: 0\n });\n }\n withTargetLocationRange(t, e) {\n let i;\n this.targetLocationRange = t;\n try {\n i = e();\n } finally {\n this.targetLocationRange = null;\n }\n return i;\n }\n withTargetRange(t, e) {\n const i = this.document.locationRangeFromRange(t);\n return this.withTargetLocationRange(i, e);\n }\n withTargetDOMRange(t, e) {\n const i = this.createLocationRangeFromDOMRange(t, {\n strict: !1\n });\n return this.withTargetLocationRange(i, e);\n }\n getExpandedRangeInDirection(t) {\n let {\n length: e\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n [i, n] = Array.from(this.getSelectedRange());\n return \"backward\" === t ? e ? i -= e : i = this.translateUTF16PositionFromOffset(i, -1) : e ? n += e : n = this.translateUTF16PositionFromOffset(n, 1), wt([i, n]);\n }\n shouldManageMovingCursorInDirection(t) {\n if (this.editingAttachment) return !0;\n const e = this.getExpandedRangeInDirection(t);\n return null != this.getAttachmentAtRange(e);\n }\n moveCursorInDirection(t) {\n let e, i;\n if (this.editingAttachment) i = this.document.getRangeOfAttachment(this.editingAttachment);else {\n const n = this.getSelectedRange();\n i = this.getExpandedRangeInDirection(t), e = !Dt(n, i);\n }\n if (\"backward\" === t ? this.setSelectedRange(i[0]) : this.setSelectedRange(i[1]), e) {\n const t = this.getAttachmentAtRange(i);\n if (t) return this.editAttachment(t);\n }\n }\n expandSelectionInDirection(t) {\n let {\n length: e\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n const i = this.getExpandedRangeInDirection(t, {\n length: e\n });\n return this.setSelectedRange(i);\n }\n expandSelectionForEditing() {\n if (this.hasCurrentAttribute(\"href\")) return this.expandSelectionAroundCommonAttribute(\"href\");\n }\n expandSelectionAroundCommonAttribute(t) {\n const e = this.getPosition(),\n i = this.document.getRangeOfCommonAttributeAtPosition(t, e);\n return this.setSelectedRange(i);\n }\n selectionContainsAttachments() {\n var t;\n return (null === (t = this.getSelectedAttachments()) || void 0 === t ? void 0 : t.length) > 0;\n }\n selectionIsInCursorTarget() {\n return this.editingAttachment || this.positionIsCursorTarget(this.getPosition());\n }\n positionIsCursorTarget(t) {\n const e = this.document.locationFromPosition(t);\n if (e) return this.locationIsCursorTarget(e);\n }\n positionIsBlockBreak(t) {\n var e;\n return null === (e = this.document.getPieceAtPosition(t)) || void 0 === e ? void 0 : e.isBlockBreak();\n }\n getSelectedDocument() {\n const t = this.getSelectedRange();\n if (t) return this.document.getDocumentAtRange(t);\n }\n getSelectedAttachments() {\n var t;\n return null === (t = this.getSelectedDocument()) || void 0 === t ? void 0 : t.getAttachments();\n }\n getAttachments() {\n return this.attachments.slice(0);\n }\n refreshAttachments() {\n const t = this.document.getAttachments(),\n {\n added: e,\n removed: i\n } = function () {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],\n e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];\n const i = [],\n n = [],\n r = new Set();\n t.forEach(t => {\n r.add(t);\n });\n const o = new Set();\n return e.forEach(t => {\n o.add(t), r.has(t) || i.push(t);\n }), t.forEach(t => {\n o.has(t) || n.push(t);\n }), {\n added: i,\n removed: n\n };\n }(this.attachments, t);\n return this.attachments = t, Array.from(i).forEach(t => {\n var e, i;\n t.delegate = null, null === (e = this.delegate) || void 0 === e || null === (i = e.compositionDidRemoveAttachment) || void 0 === i || i.call(e, t);\n }), (() => {\n const t = [];\n return Array.from(e).forEach(e => {\n var i, n;\n e.delegate = this, t.push(null === (i = this.delegate) || void 0 === i || null === (n = i.compositionDidAddAttachment) || void 0 === n ? void 0 : n.call(i, e));\n }), t;\n })();\n }\n attachmentDidChangeAttributes(t) {\n var e, i;\n return this.revision++, null === (e = this.delegate) || void 0 === e || null === (i = e.compositionDidEditAttachment) || void 0 === i ? void 0 : i.call(e, t);\n }\n attachmentDidChangePreviewURL(t) {\n var e, i;\n return this.revision++, null === (e = this.delegate) || void 0 === e || null === (i = e.compositionDidChangeAttachmentPreviewURL) || void 0 === i ? void 0 : i.call(e, t);\n }\n editAttachment(t, e) {\n var i, n;\n if (t !== this.editingAttachment) return this.stopEditingAttachment(), this.editingAttachment = t, null === (i = this.delegate) || void 0 === i || null === (n = i.compositionDidStartEditingAttachment) || void 0 === n ? void 0 : n.call(i, this.editingAttachment, e);\n }\n stopEditingAttachment() {\n var t, e;\n this.editingAttachment && (null === (t = this.delegate) || void 0 === t || null === (e = t.compositionDidStopEditingAttachment) || void 0 === e || e.call(t, this.editingAttachment), this.editingAttachment = null);\n }\n updateAttributesForAttachment(t, e) {\n return this.setDocument(this.document.updateAttributesForAttachment(t, e));\n }\n removeAttributeForAttachment(t, e) {\n return this.setDocument(this.document.removeAttributeForAttachment(t, e));\n }\n breakFormattedBlock(t) {\n let {\n document: e\n } = t;\n const {\n block: i\n } = t;\n let n = t.startPosition,\n r = [n - 1, n];\n i.getBlockBreakPosition() === t.startLocation.offset ? (i.breaksOnReturn() && \"\\n\" === t.nextCharacter ? n += 1 : e = e.removeTextAtRange(r), r = [n, n]) : \"\\n\" === t.nextCharacter ? \"\\n\" === t.previousCharacter ? r = [n - 1, n + 1] : (r = [n, n + 1], n += 1) : t.startLocation.offset - 1 != 0 && (n += 1);\n const o = new on([i.removeLastAttribute().copyWithoutText()]);\n return this.setDocument(e.insertDocumentAtRange(o, r)), this.setSelection(n);\n }\n getPreviousBlock() {\n const t = this.getLocationRange();\n if (t) {\n const {\n index: e\n } = t[0];\n if (e > 0) return this.document.getBlockAtIndex(e - 1);\n }\n }\n getBlock() {\n const t = this.getLocationRange();\n if (t) return this.document.getBlockAtIndex(t[0].index);\n }\n getAttachmentAtRange(t) {\n const e = this.document.getDocumentAtRange(t);\n if (e.toString() === \"\".concat(\"\", \"\\n\")) return e.getAttachments()[0];\n }\n notifyDelegateOfCurrentAttributesChange() {\n var t, e;\n return null === (t = this.delegate) || void 0 === t || null === (e = t.compositionDidChangeCurrentAttributes) || void 0 === e ? void 0 : e.call(t, this.currentAttributes);\n }\n notifyDelegateOfInsertionAtRange(t) {\n var e, i;\n return null === (e = this.delegate) || void 0 === e || null === (i = e.compositionDidPerformInsertionAtRange) || void 0 === i ? void 0 : i.call(e, t);\n }\n translateUTF16PositionFromOffset(t, e) {\n const i = this.document.toUTF16String(),\n n = i.offsetFromUCS2Offset(t);\n return i.offsetToUCS2Offset(n + e);\n }\n}\nkn.proxyMethod(\"getSelectionManager().getPointRange\"), kn.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), kn.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), kn.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), kn.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), kn.proxyMethod(\"delegate?.getSelectionManager\");\nclass Tn extends q {\n constructor(t) {\n super(...arguments), this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\n recordUndoEntry(t) {\n let {\n context: e,\n consolidatable: i\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n const n = this.undoEntries.slice(-1)[0];\n if (!i || !wn(n, t, e)) {\n const i = this.createEntry({\n description: t,\n context: e\n });\n this.undoEntries.push(i), this.redoEntries = [];\n }\n }\n undo() {\n const t = this.undoEntries.pop();\n if (t) {\n const e = this.createEntry(t);\n return this.redoEntries.push(e), this.composition.loadSnapshot(t.snapshot);\n }\n }\n redo() {\n const t = this.redoEntries.pop();\n if (t) {\n const e = this.createEntry(t);\n return this.undoEntries.push(e), this.composition.loadSnapshot(t.snapshot);\n }\n }\n canUndo() {\n return this.undoEntries.length > 0;\n }\n canRedo() {\n return this.redoEntries.length > 0;\n }\n createEntry() {\n let {\n description: t,\n context: e\n } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return {\n description: null == t ? void 0 : t.toString(),\n context: JSON.stringify(e),\n snapshot: this.composition.getSnapshot()\n };\n }\n}\nconst wn = (t, e, i) => (null == t ? void 0 : t.description) === (null == e ? void 0 : e.toString()) && (null == t ? void 0 : t.context) === JSON.stringify(i),\n Ln = \"attachmentGallery\";\nclass Dn {\n constructor(t) {\n this.document = t.document, this.selectedRange = t.selectedRange;\n }\n perform() {\n return this.removeBlockAttribute(), this.applyBlockAttribute();\n }\n getSnapshot() {\n return {\n document: this.document,\n selectedRange: this.selectedRange\n };\n }\n removeBlockAttribute() {\n return this.findRangesOfBlocks().map(t => this.document = this.document.removeAttributeAtRange(Ln, t));\n }\n applyBlockAttribute() {\n let t = 0;\n this.findRangesOfPieces().forEach(e => {\n e[1] - e[0] > 1 && (e[0] += t, e[1] += t, \"\\n\" !== this.document.getCharacterAtPosition(e[1]) && (this.document = this.document.insertBlockBreakAtRange(e[1]), e[1] < this.selectedRange[1] && this.moveSelectedRangeForward(), e[1]++, t++), 0 !== e[0] && \"\\n\" !== this.document.getCharacterAtPosition(e[0] - 1) && (this.document = this.document.insertBlockBreakAtRange(e[0]), e[0] < this.selectedRange[0] && this.moveSelectedRangeForward(), e[0]++, t++), this.document = this.document.applyBlockAttributeAtRange(Ln, !0, e));\n });\n }\n findRangesOfBlocks() {\n return this.document.findRangesForBlockAttribute(Ln);\n }\n findRangesOfPieces() {\n return this.document.findRangesForTextAttribute(\"presentation\", {\n withValue: \"gallery\"\n });\n }\n moveSelectedRangeForward() {\n this.selectedRange[0] += 1, this.selectedRange[1] += 1;\n }\n}\nconst Nn = function (t) {\n const e = new Dn(t);\n return e.perform(), e.getSnapshot();\n },\n In = [Nn];\nclass On {\n constructor(t, e, i) {\n this.insertFiles = this.insertFiles.bind(this), this.composition = t, this.selectionManager = e, this.element = i, this.undoManager = new Tn(this.composition), this.filters = In.slice(0);\n }\n loadDocument(t) {\n return this.loadSnapshot({\n document: t,\n selectedRange: [0, 0]\n });\n }\n loadHTML() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"\";\n const e = cn.parse(t, {\n referenceElement: this.element\n }).getDocument();\n return this.loadDocument(e);\n }\n loadJSON(t) {\n let {\n document: e,\n selectedRange: i\n } = t;\n return e = on.fromJSON(e), this.loadSnapshot({\n document: e,\n selectedRange: i\n });\n }\n loadSnapshot(t) {\n return this.undoManager = new Tn(this.composition), this.composition.loadSnapshot(t);\n }\n getDocument() {\n return this.composition.document;\n }\n getSelectedDocument() {\n return this.composition.getSelectedDocument();\n }\n getSnapshot() {\n return this.composition.getSnapshot();\n }\n toJSON() {\n return this.getSnapshot();\n }\n deleteInDirection(t) {\n return this.composition.deleteInDirection(t);\n }\n insertAttachment(t) {\n return this.composition.insertAttachment(t);\n }\n insertAttachments(t) {\n return this.composition.insertAttachments(t);\n }\n insertDocument(t) {\n return this.composition.insertDocument(t);\n }\n insertFile(t) {\n return this.composition.insertFile(t);\n }\n insertFiles(t) {\n return this.composition.insertFiles(t);\n }\n insertHTML(t) {\n return this.composition.insertHTML(t);\n }\n insertString(t) {\n return this.composition.insertString(t);\n }\n insertText(t) {\n return this.composition.insertText(t);\n }\n insertLineBreak() {\n return this.composition.insertLineBreak();\n }\n getSelectedRange() {\n return this.composition.getSelectedRange();\n }\n getPosition() {\n return this.composition.getPosition();\n }\n getClientRectAtPosition(t) {\n const e = this.getDocument().locationRangeFromRange([t, t + 1]);\n return this.selectionManager.getClientRectAtLocationRange(e);\n }\n expandSelectionInDirection(t) {\n return this.composition.expandSelectionInDirection(t);\n }\n moveCursorInDirection(t) {\n return this.composition.moveCursorInDirection(t);\n }\n setSelectedRange(t) {\n return this.composition.setSelectedRange(t);\n }\n activateAttribute(t) {\n let e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];\n return this.composition.setCurrentAttribute(t, e);\n }\n attributeIsActive(t) {\n return this.composition.hasCurrentAttribute(t);\n }\n canActivateAttribute(t) {\n return this.composition.canSetCurrentAttribute(t);\n }\n deactivateAttribute(t) {\n return this.composition.removeCurrentAttribute(t);\n }\n setHTMLAtributeAtPosition(t, e, i) {\n this.composition.setHTMLAtributeAtPosition(t, e, i);\n }\n canDecreaseNestingLevel() {\n return this.composition.canDecreaseNestingLevel();\n }\n canIncreaseNestingLevel() {\n return this.composition.canIncreaseNestingLevel();\n }\n decreaseNestingLevel() {\n if (this.canDecreaseNestingLevel()) return this.composition.decreaseNestingLevel();\n }\n increaseNestingLevel() {\n if (this.canIncreaseNestingLevel()) return this.composition.increaseNestingLevel();\n }\n canRedo() {\n return this.undoManager.canRedo();\n }\n canUndo() {\n return this.undoManager.canUndo();\n }\n recordUndoEntry(t) {\n let {\n context: e,\n consolidatable: i\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n return this.undoManager.recordUndoEntry(t, {\n context: e,\n consolidatable: i\n });\n }\n redo() {\n if (this.canRedo()) return this.undoManager.redo();\n }\n undo() {\n if (this.canUndo()) return this.undoManager.undo();\n }\n}\nclass Fn {\n constructor(t) {\n this.element = t;\n }\n findLocationFromContainerAndOffset(t, e) {\n let {\n strict: i\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {\n strict: !0\n },\n n = 0,\n r = !1;\n const o = {\n index: 0,\n offset: 0\n },\n s = this.findAttachmentElementParentForNode(t);\n s && (t = s.parentNode, e = E(s));\n const a = R(this.element, {\n usingFilter: _n\n });\n for (; a.nextNode();) {\n const s = a.currentNode;\n if (s === t && B(t)) {\n F(s) || (o.offset += e);\n break;\n }\n if (s.parentNode === t) {\n if (n++ === e) break;\n } else if (!C(t, s) && n > 0) break;\n N(s, {\n strict: i\n }) ? (r && o.index++, o.offset = 0, r = !0) : o.offset += Pn(s);\n }\n return o;\n }\n findContainerAndOffsetFromLocation(t) {\n let e, i;\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, i = 0; e.firstChild;) if (e = e.firstChild, D(e)) {\n i = 1;\n break;\n }\n return [e, i];\n }\n let [n, r] = this.findNodeAndOffsetFromLocation(t);\n if (n) {\n if (B(n)) 0 === Pn(n) ? (e = n.parentNode.parentNode, i = E(n.parentNode), F(n, {\n name: \"right\"\n }) && i++) : (e = n, i = t.offset - r);else {\n if (e = n.parentNode, !N(n.previousSibling) && !D(e)) for (; n === e.lastChild && (n = e, e = e.parentNode, !D(e)););\n i = E(n), 0 !== t.offset && i++;\n }\n return [e, i];\n }\n }\n findNodeAndOffsetFromLocation(t) {\n let e,\n i,\n n = 0;\n for (const r of this.getSignificantNodesForIndex(t.index)) {\n const o = Pn(r);\n if (t.offset <= n + o) if (B(r)) {\n if (e = r, i = n, t.offset === i && F(e)) break;\n } else e || (e = r, i = n);\n if (n += o, n > t.offset) break;\n }\n return [e, i];\n }\n findAttachmentElementParentForNode(t) {\n for (; t && t !== this.element;) {\n if (P(t)) return t;\n t = t.parentNode;\n }\n }\n getSignificantNodesForIndex(t) {\n const e = [],\n i = R(this.element, {\n usingFilter: Mn\n });\n let n = !1;\n for (; i.nextNode();) {\n const o = i.currentNode;\n var r;\n if (I(o)) {\n if (null != r ? r++ : r = 0, r === t) n = !0;else if (n) break;\n } else n && e.push(o);\n }\n return e;\n }\n}\nconst Pn = function (t) {\n if (t.nodeType === Node.TEXT_NODE) {\n if (F(t)) return 0;\n return t.textContent.length;\n }\n return \"br\" === k(t) || P(t) ? 1 : 0;\n },\n Mn = function (t) {\n return Bn(t) === NodeFilter.FILTER_ACCEPT ? _n(t) : NodeFilter.FILTER_REJECT;\n },\n Bn = function (t) {\n return M(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n },\n _n = function (t) {\n return P(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n };\nclass jn {\n createDOMRangeFromPoint(t) {\n let e,\n {\n x: i,\n y: n\n } = t;\n if (document.caretPositionFromPoint) {\n const {\n offsetNode: t,\n offset: r\n } = document.caretPositionFromPoint(i, n);\n return e = document.createRange(), e.setStart(t, r), e;\n }\n if (document.caretRangeFromPoint) return document.caretRangeFromPoint(i, n);\n if (document.body.createTextRange) {\n const t = Mt();\n try {\n const t = document.body.createTextRange();\n t.moveToPoint(i, n), t.select();\n } catch (t) {}\n return e = Mt(), Bt(t), e;\n }\n }\n getClientRectsForDOMRange(t) {\n const e = Array.from(t.getClientRects());\n return [e[0], e[e.length - 1]];\n }\n}\nclass Wn extends q {\n constructor(t) {\n super(...arguments), this.didMouseDown = this.didMouseDown.bind(this), this.selectionDidChange = this.selectionDidChange.bind(this), this.element = t, this.locationMapper = new Fn(this.element), this.pointMapper = new jn(), this.lockCount = 0, b(\"mousedown\", {\n onElement: this.element,\n withCallback: this.didMouseDown\n });\n }\n getLocationRange() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return !1 === t.strict ? this.createLocationRangeFromDOMRange(Mt()) : t.ignoreLock ? this.currentLocationRange : this.lockedLocationRange ? this.lockedLocationRange : this.currentLocationRange;\n }\n setLocationRange(t) {\n if (this.lockedLocationRange) return;\n t = wt(t);\n const e = this.createDOMRangeFromLocationRange(t);\n e && (Bt(e), this.updateCurrentLocationRange(t));\n }\n setLocationRangeFromPointRange(t) {\n t = wt(t);\n const e = this.getLocationAtPoint(t[0]),\n i = this.getLocationAtPoint(t[1]);\n this.setLocationRange([e, i]);\n }\n getClientRectAtLocationRange(t) {\n const e = this.createDOMRangeFromLocationRange(t);\n if (e) return this.getClientRectsForDOMRange(e)[1];\n }\n locationIsCursorTarget(t) {\n const e = Array.from(this.findNodeAndOffsetFromLocation(t))[0];\n return F(e);\n }\n lock() {\n 0 == this.lockCount++ && (this.updateCurrentLocationRange(), this.lockedLocationRange = this.getLocationRange());\n }\n unlock() {\n if (0 == --this.lockCount) {\n const {\n lockedLocationRange: t\n } = this;\n if (this.lockedLocationRange = null, null != t) return this.setLocationRange(t);\n }\n }\n clearSelection() {\n var t;\n return null === (t = Pt()) || void 0 === t ? void 0 : t.removeAllRanges();\n }\n selectionIsCollapsed() {\n var t;\n return !0 === (null === (t = Mt()) || void 0 === t ? void 0 : t.collapsed);\n }\n selectionIsExpanded() {\n return !this.selectionIsCollapsed();\n }\n createLocationRangeFromDOMRange(t, e) {\n if (null == t || !this.domRangeWithinElement(t)) return;\n const i = this.findLocationFromContainerAndOffset(t.startContainer, t.startOffset, e);\n if (!i) return;\n const n = t.collapsed ? void 0 : this.findLocationFromContainerAndOffset(t.endContainer, t.endOffset, e);\n return wt([i, n]);\n }\n didMouseDown() {\n return this.pauseTemporarily();\n }\n pauseTemporarily() {\n let t;\n this.paused = !0;\n const e = () => {\n if (this.paused = !1, clearTimeout(i), Array.from(t).forEach(t => {\n t.destroy();\n }), C(document, this.element)) return this.selectionDidChange();\n },\n i = setTimeout(e, 200);\n t = [\"mousemove\", \"keydown\"].map(t => b(t, {\n onElement: document,\n withCallback: e\n }));\n }\n selectionDidChange() {\n if (!this.paused && !x(this.element)) return this.updateCurrentLocationRange();\n }\n updateCurrentLocationRange(t) {\n var e, i;\n if ((null != t ? t : t = this.createLocationRangeFromDOMRange(Mt())) && !Dt(t, this.currentLocationRange)) return this.currentLocationRange = t, null === (e = this.delegate) || void 0 === e || null === (i = e.locationRangeDidChange) || void 0 === i ? void 0 : i.call(e, this.currentLocationRange.slice(0));\n }\n createDOMRangeFromLocationRange(t) {\n const e = this.findContainerAndOffsetFromLocation(t[0]),\n i = Lt(t) ? e : this.findContainerAndOffsetFromLocation(t[1]) || e;\n if (null != e && null != i) {\n const t = document.createRange();\n return t.setStart(...Array.from(e || [])), t.setEnd(...Array.from(i || [])), t;\n }\n }\n getLocationAtPoint(t) {\n const e = this.createDOMRangeFromPoint(t);\n var i;\n if (e) return null === (i = this.createLocationRangeFromDOMRange(e)) || void 0 === i ? void 0 : i[0];\n }\n domRangeWithinElement(t) {\n return t.collapsed ? C(this.element, t.startContainer) : C(this.element, t.startContainer) && C(this.element, t.endContainer);\n }\n}\nWn.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), Wn.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), Wn.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), Wn.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), Wn.proxyMethod(\"pointMapper.getClientRectsForDOMRange\");\nvar Un = Object.freeze({\n __proto__: null,\n Attachment: Wi,\n AttachmentManager: Sn,\n AttachmentPiece: Ui,\n Block: Gi,\n Composition: kn,\n Document: on,\n Editor: On,\n HTMLParser: cn,\n HTMLSanitizer: ui,\n LineBreakInsertion: Rn,\n LocationMapper: Fn,\n ManagedAttachment: En,\n Piece: _i,\n PointMapper: jn,\n SelectionManager: Wn,\n SplittableList: zi,\n StringPiece: Vi,\n Text: Ki,\n UndoManager: Tn\n }),\n Vn = Object.freeze({\n __proto__: null,\n ObjectView: ie,\n AttachmentView: gi,\n BlockView: xi,\n DocumentView: Ci,\n PieceView: bi,\n PreviewableAttachmentView: fi,\n TextView: vi\n });\nconst {\n lang: zn,\n css: qn,\n keyNames: Hn\n } = z,\n Jn = function (t) {\n return function () {\n const e = t.apply(this, arguments);\n e.do(), this.undos || (this.undos = []), this.undos.push(e.undo);\n };\n };\nclass Kn extends q {\n constructor(t, e, i) {\n let n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {};\n super(...arguments), wi(this, \"makeElementMutable\", Jn(() => ({\n do: () => {\n this.element.dataset.trixMutable = !0;\n },\n undo: () => delete this.element.dataset.trixMutable\n }))), wi(this, \"addToolbar\", Jn(() => {\n const t = T({\n tagName: \"div\",\n className: qn.attachmentToolbar,\n data: {\n trixMutable: !0\n },\n childNodes: T({\n tagName: \"div\",\n className: \"trix-button-row\",\n childNodes: T({\n tagName: \"span\",\n className: \"trix-button-group trix-button-group--actions\",\n childNodes: T({\n tagName: \"button\",\n className: \"trix-button trix-button--remove\",\n textContent: zn.remove,\n attributes: {\n title: zn.remove\n },\n data: {\n trixAction: \"remove\"\n }\n })\n })\n })\n });\n return this.attachment.isPreviewable() && t.appendChild(T({\n tagName: \"div\",\n className: qn.attachmentMetadataContainer,\n childNodes: T({\n tagName: \"span\",\n className: qn.attachmentMetadata,\n childNodes: [T({\n tagName: \"span\",\n className: qn.attachmentName,\n textContent: this.attachment.getFilename(),\n attributes: {\n title: this.attachment.getFilename()\n }\n }), T({\n tagName: \"span\",\n className: qn.attachmentSize,\n textContent: this.attachment.getFormattedFilesize()\n })]\n })\n })), b(\"click\", {\n onElement: t,\n withCallback: this.didClickToolbar\n }), b(\"click\", {\n onElement: t,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), v(\"trix-attachment-before-toolbar\", {\n onElement: this.element,\n attributes: {\n toolbar: t,\n attachment: this.attachment\n }\n }), {\n do: () => this.element.appendChild(t),\n undo: () => S(t)\n };\n })), wi(this, \"installCaptionEditor\", Jn(() => {\n const t = T({\n tagName: \"textarea\",\n className: qn.attachmentCaptionEditor,\n attributes: {\n placeholder: zn.captionPlaceholder\n },\n data: {\n trixMutable: !0\n }\n });\n t.value = this.attachmentPiece.getCaption();\n const e = t.cloneNode();\n e.classList.add(\"trix-autoresize-clone\"), e.tabIndex = -1;\n const i = function () {\n e.value = t.value, t.style.height = e.scrollHeight + \"px\";\n };\n b(\"input\", {\n onElement: t,\n withCallback: i\n }), b(\"input\", {\n onElement: t,\n withCallback: this.didInputCaption\n }), b(\"keydown\", {\n onElement: t,\n withCallback: this.didKeyDownCaption\n }), b(\"change\", {\n onElement: t,\n withCallback: this.didChangeCaption\n }), b(\"blur\", {\n onElement: t,\n withCallback: this.didBlurCaption\n });\n const n = this.element.querySelector(\"figcaption\"),\n r = n.cloneNode();\n return {\n do: () => {\n if (n.style.display = \"none\", r.appendChild(t), r.appendChild(e), r.classList.add(\"\".concat(qn.attachmentCaption, \"--editing\")), n.parentElement.insertBefore(r, n), i(), this.options.editCaption) return Rt(() => t.focus());\n },\n undo() {\n S(r), n.style.display = null;\n }\n };\n })), this.didClickToolbar = this.didClickToolbar.bind(this), this.didClickActionButton = this.didClickActionButton.bind(this), this.didKeyDownCaption = this.didKeyDownCaption.bind(this), this.didInputCaption = this.didInputCaption.bind(this), this.didChangeCaption = this.didChangeCaption.bind(this), this.didBlurCaption = this.didBlurCaption.bind(this), this.attachmentPiece = t, this.element = e, this.container = i, this.options = n, this.attachment = this.attachmentPiece.attachment, \"a\" === k(this.element) && (this.element = this.element.firstChild), this.install();\n }\n install() {\n this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() && this.installCaptionEditor();\n }\n uninstall() {\n var t;\n let e = this.undos.pop();\n for (this.savePendingCaption(); e;) e(), e = this.undos.pop();\n null === (t = this.delegate) || void 0 === t || t.didUninstallAttachmentEditor(this);\n }\n savePendingCaption() {\n if (null != this.pendingCaption) {\n const r = this.pendingCaption;\n var t, e, i, n;\n if (this.pendingCaption = null, r) null === (t = this.delegate) || void 0 === t || null === (e = t.attachmentEditorDidRequestUpdatingAttributesForAttachment) || void 0 === e || e.call(t, {\n caption: r\n }, this.attachment);else null === (i = this.delegate) || void 0 === i || null === (n = i.attachmentEditorDidRequestRemovingAttributeForAttachment) || void 0 === n || n.call(i, \"caption\", this.attachment);\n }\n }\n didClickToolbar(t) {\n return t.preventDefault(), t.stopPropagation();\n }\n didClickActionButton(t) {\n var e;\n if (\"remove\" === t.target.getAttribute(\"data-trix-action\")) return null === (e = this.delegate) || void 0 === e ? void 0 : e.attachmentEditorDidRequestRemovalOfAttachment(this.attachment);\n }\n didKeyDownCaption(t) {\n var e, i;\n if (\"return\" === Hn[t.keyCode]) return t.preventDefault(), this.savePendingCaption(), null === (e = this.delegate) || void 0 === e || null === (i = e.attachmentEditorDidRequestDeselectingAttachment) || void 0 === i ? void 0 : i.call(e, this.attachment);\n }\n didInputCaption(t) {\n this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }\n didChangeCaption(t) {\n return this.savePendingCaption();\n }\n didBlurCaption(t) {\n return this.savePendingCaption();\n }\n}\nclass Gn extends q {\n constructor(t, i) {\n super(...arguments), this.didFocus = this.didFocus.bind(this), this.didBlur = this.didBlur.bind(this), this.didClickAttachment = this.didClickAttachment.bind(this), this.element = t, this.composition = i, this.documentView = new Ci(this.composition.document, {\n element: this.element\n }), b(\"focus\", {\n onElement: this.element,\n withCallback: this.didFocus\n }), b(\"blur\", {\n onElement: this.element,\n withCallback: this.didBlur\n }), b(\"click\", {\n onElement: this.element,\n matchingSelector: \"a[contenteditable=false]\",\n preventDefault: !0\n }), b(\"mousedown\", {\n onElement: this.element,\n matchingSelector: e,\n withCallback: this.didClickAttachment\n }), b(\"click\", {\n onElement: this.element,\n matchingSelector: \"a\".concat(e),\n preventDefault: !0\n });\n }\n didFocus(t) {\n var e;\n const i = () => {\n var t, e;\n if (!this.focused) return this.focused = !0, null === (t = this.delegate) || void 0 === t || null === (e = t.compositionControllerDidFocus) || void 0 === e ? void 0 : e.call(t);\n };\n return (null === (e = this.blurPromise) || void 0 === e ? void 0 : e.then(i)) || i();\n }\n didBlur(t) {\n this.blurPromise = new Promise(t => Rt(() => {\n var e, i;\n x(this.element) || (this.focused = null, null === (e = this.delegate) || void 0 === e || null === (i = e.compositionControllerDidBlur) || void 0 === i || i.call(e));\n return this.blurPromise = null, t();\n }));\n }\n didClickAttachment(t, e) {\n var i, n;\n const r = this.findAttachmentForElement(e),\n o = !!y(t.target, {\n matchingSelector: \"figcaption\"\n });\n return null === (i = this.delegate) || void 0 === i || null === (n = i.compositionControllerDidSelectAttachment) || void 0 === n ? void 0 : n.call(i, r, {\n editCaption: o\n });\n }\n getSerializableElement() {\n return this.isEditingAttachment() ? this.documentView.shadowElement : this.element;\n }\n render() {\n var t, e, i, n, r, o;\n (this.revision !== this.composition.revision && (this.documentView.setDocument(this.composition.document), this.documentView.render(), this.revision = this.composition.revision), this.canSyncDocumentView() && !this.documentView.isSynced()) && (null === (i = this.delegate) || void 0 === i || null === (n = i.compositionControllerWillSyncDocumentView) || void 0 === n || n.call(i), this.documentView.sync(), null === (r = this.delegate) || void 0 === r || null === (o = r.compositionControllerDidSyncDocumentView) || void 0 === o || o.call(r));\n return null === (t = this.delegate) || void 0 === t || null === (e = t.compositionControllerDidRender) || void 0 === e ? void 0 : e.call(t);\n }\n rerenderViewForObject(t) {\n return this.invalidateViewForObject(t), this.render();\n }\n invalidateViewForObject(t) {\n return this.documentView.invalidateViewForObject(t);\n }\n isViewCachingEnabled() {\n return this.documentView.isViewCachingEnabled();\n }\n enableViewCaching() {\n return this.documentView.enableViewCaching();\n }\n disableViewCaching() {\n return this.documentView.disableViewCaching();\n }\n refreshViewCache() {\n return this.documentView.garbageCollectCachedViews();\n }\n isEditingAttachment() {\n return !!this.attachmentEditor;\n }\n installAttachmentEditorForAttachment(t, e) {\n var i;\n if ((null === (i = this.attachmentEditor) || void 0 === i ? void 0 : i.attachment) === t) return;\n const n = this.documentView.findElementForObject(t);\n if (!n) return;\n this.uninstallAttachmentEditor();\n const r = this.composition.document.getAttachmentPieceForAttachment(t);\n this.attachmentEditor = new Kn(r, n, this.element, e), this.attachmentEditor.delegate = this;\n }\n uninstallAttachmentEditor() {\n var t;\n return null === (t = this.attachmentEditor) || void 0 === t ? void 0 : t.uninstall();\n }\n didUninstallAttachmentEditor() {\n return this.attachmentEditor = null, this.render();\n }\n attachmentEditorDidRequestUpdatingAttributesForAttachment(t, e) {\n var i, n;\n return null === (i = this.delegate) || void 0 === i || null === (n = i.compositionControllerWillUpdateAttachment) || void 0 === n || n.call(i, e), this.composition.updateAttributesForAttachment(t, e);\n }\n attachmentEditorDidRequestRemovingAttributeForAttachment(t, e) {\n var i, n;\n return null === (i = this.delegate) || void 0 === i || null === (n = i.compositionControllerWillUpdateAttachment) || void 0 === n || n.call(i, e), this.composition.removeAttributeForAttachment(t, e);\n }\n attachmentEditorDidRequestRemovalOfAttachment(t) {\n var e, i;\n return null === (e = this.delegate) || void 0 === e || null === (i = e.compositionControllerDidRequestRemovalOfAttachment) || void 0 === i ? void 0 : i.call(e, t);\n }\n attachmentEditorDidRequestDeselectingAttachment(t) {\n var e, i;\n return null === (e = this.delegate) || void 0 === e || null === (i = e.compositionControllerDidRequestDeselectingAttachment) || void 0 === i ? void 0 : i.call(e, t);\n }\n canSyncDocumentView() {\n return !this.isEditingAttachment();\n }\n findAttachmentForElement(t) {\n return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId, 10));\n }\n}\nclass Yn extends q {}\nconst $n = \"data-trix-mutable\",\n Xn = \"[\".concat($n, \"]\"),\n Zn = {\n attributes: !0,\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n subtree: !0\n };\nclass Qn extends q {\n constructor(t) {\n super(t), this.didMutate = this.didMutate.bind(this), this.element = t, this.observer = new window.MutationObserver(this.didMutate), this.start();\n }\n start() {\n return this.reset(), this.observer.observe(this.element, Zn);\n }\n stop() {\n return this.observer.disconnect();\n }\n didMutate(t) {\n var e, i;\n if (this.mutations.push(...Array.from(this.findSignificantMutations(t) || [])), this.mutations.length) return null === (e = this.delegate) || void 0 === e || null === (i = e.elementDidMutate) || void 0 === i || i.call(e, this.getMutationSummary()), this.reset();\n }\n reset() {\n this.mutations = [];\n }\n findSignificantMutations(t) {\n return t.filter(t => this.mutationIsSignificant(t));\n }\n mutationIsSignificant(t) {\n if (this.nodeIsMutable(t.target)) return !1;\n for (const e of Array.from(this.nodesModifiedByMutation(t))) if (this.nodeIsSignificant(e)) return !0;\n return !1;\n }\n nodeIsSignificant(t) {\n return t !== this.element && !this.nodeIsMutable(t) && !M(t);\n }\n nodeIsMutable(t) {\n return y(t, {\n matchingSelector: Xn\n });\n }\n nodesModifiedByMutation(t) {\n const e = [];\n switch (t.type) {\n case \"attributes\":\n t.attributeName !== $n && e.push(t.target);\n break;\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n case \"childList\":\n e.push(...Array.from(t.addedNodes || [])), e.push(...Array.from(t.removedNodes || []));\n }\n return e;\n }\n getMutationSummary() {\n return this.getTextMutationSummary();\n }\n getTextMutationSummary() {\n const {\n additions: t,\n deletions: e\n } = this.getTextChangesFromCharacterData(),\n i = this.getTextChangesFromChildList();\n Array.from(i.additions).forEach(e => {\n Array.from(t).includes(e) || t.push(e);\n }), e.push(...Array.from(i.deletions || []));\n const n = {},\n r = t.join(\"\");\n r && (n.textAdded = r);\n const o = e.join(\"\");\n return o && (n.textDeleted = o), n;\n }\n getMutationsByType(t) {\n return Array.from(this.mutations).filter(e => e.type === t);\n }\n getTextChangesFromChildList() {\n let t, e;\n const i = [],\n n = [];\n Array.from(this.getMutationsByType(\"childList\")).forEach(t => {\n i.push(...Array.from(t.addedNodes || [])), n.push(...Array.from(t.removedNodes || []));\n });\n 0 === i.length && 1 === n.length && I(n[0]) ? (t = [], e = [\"\\n\"]) : (t = tr(i), e = tr(n));\n const r = t.filter((t, i) => t !== e[i]).map(Wt),\n o = e.filter((e, i) => e !== t[i]).map(Wt);\n return {\n additions: r,\n deletions: o\n };\n }\n getTextChangesFromCharacterData() {\n let t, e;\n const i = this.getMutationsByType(\"characterData\");\n if (i.length) {\n const n = i[0],\n r = i[i.length - 1],\n o = function (t, e) {\n let i, n;\n return t = X.box(t), (e = X.box(e)).length < t.length ? [n, i] = zt(t, e) : [i, n] = zt(e, t), {\n added: i,\n removed: n\n };\n }(Wt(n.oldValue), Wt(r.target.data));\n t = o.added, e = o.removed;\n }\n return {\n additions: t ? [t] : [],\n deletions: e ? [e] : []\n };\n }\n}\nconst tr = function () {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n const e = [];\n for (const i of Array.from(t)) switch (i.nodeType) {\n case Node.TEXT_NODE:\n e.push(i.data);\n break;\n case Node.ELEMENT_NODE:\n \"br\" === k(i) ? e.push(\"\\n\") : e.push(...Array.from(tr(i.childNodes) || []));\n }\n return e;\n};\nclass er extends ee {\n constructor(t) {\n super(...arguments), this.file = t;\n }\n perform(t) {\n const e = new FileReader();\n return e.onerror = () => t(!1), e.onload = () => {\n e.onerror = null;\n try {\n e.abort();\n } catch (t) {}\n return t(!0, this.file);\n }, e.readAsArrayBuffer(this.file);\n }\n}\nclass ir {\n constructor(t) {\n this.element = t;\n }\n shouldIgnore(t) {\n return !!a.samsungAndroid && (this.previousEvent = this.event, this.event = t, this.checkSamsungKeyboardBuggyModeStart(), this.checkSamsungKeyboardBuggyModeEnd(), this.buggyMode);\n }\n checkSamsungKeyboardBuggyModeStart() {\n this.insertingLongTextAfterUnidentifiedChar() && nr(this.element.innerText, this.event.data) && (this.buggyMode = !0, this.event.preventDefault());\n }\n checkSamsungKeyboardBuggyModeEnd() {\n this.buggyMode && \"insertText\" !== this.event.inputType && (this.buggyMode = !1);\n }\n insertingLongTextAfterUnidentifiedChar() {\n var t;\n return this.isBeforeInputInsertText() && this.previousEventWasUnidentifiedKeydown() && (null === (t = this.event.data) || void 0 === t ? void 0 : t.length) > 50;\n }\n isBeforeInputInsertText() {\n return \"beforeinput\" === this.event.type && \"insertText\" === this.event.inputType;\n }\n previousEventWasUnidentifiedKeydown() {\n var t, e;\n return \"keydown\" === (null === (t = this.previousEvent) || void 0 === t ? void 0 : t.type) && \"Unidentified\" === (null === (e = this.previousEvent) || void 0 === e ? void 0 : e.key);\n }\n}\nconst nr = (t, e) => or(t) === or(e),\n rr = new RegExp(\"(\".concat(\"\", \"|\").concat(d, \"|\").concat(g, \"|\\\\s)+\"), \"g\"),\n or = t => t.replace(rr, \" \").trim();\nclass sr extends q {\n constructor(t) {\n super(...arguments), this.element = t, this.mutationObserver = new Qn(this.element), this.mutationObserver.delegate = this, this.flakyKeyboardDetector = new ir(this.element);\n for (const t in this.constructor.events) b(t, {\n onElement: this.element,\n withCallback: this.handlerFor(t)\n });\n }\n elementDidMutate(t) {}\n editorWillSyncDocumentView() {\n return this.mutationObserver.stop();\n }\n editorDidSyncDocumentView() {\n return this.mutationObserver.start();\n }\n requestRender() {\n var t, e;\n return null === (t = this.delegate) || void 0 === t || null === (e = t.inputControllerDidRequestRender) || void 0 === e ? void 0 : e.call(t);\n }\n requestReparse() {\n var t, e;\n return null === (t = this.delegate) || void 0 === t || null === (e = t.inputControllerDidRequestReparse) || void 0 === e || e.call(t), this.requestRender();\n }\n attachFiles(t) {\n const e = Array.from(t).map(t => new er(t));\n return Promise.all(e).then(t => {\n this.handleInput(function () {\n var e, i;\n return null === (e = this.delegate) || void 0 === e || e.inputControllerWillAttachFiles(), null === (i = this.responder) || void 0 === i || i.insertFiles(t), this.requestRender();\n });\n });\n }\n handlerFor(t) {\n return e => {\n e.defaultPrevented || this.handleInput(() => {\n if (!x(this.element)) {\n if (this.flakyKeyboardDetector.shouldIgnore(e)) return;\n this.eventName = t, this.constructor.events[t].call(this, e);\n }\n });\n };\n }\n handleInput(t) {\n try {\n var e;\n null === (e = this.delegate) || void 0 === e || e.inputControllerWillHandleInput(), t.call(this);\n } finally {\n var i;\n null === (i = this.delegate) || void 0 === i || i.inputControllerDidHandleInput();\n }\n }\n createLinkHTML(t, e) {\n const i = document.createElement(\"a\");\n return i.href = t, i.textContent = e || t, i.outerHTML;\n }\n}\nvar ar;\nwi(sr, \"events\", {});\nconst {\n browser: lr,\n keyNames: cr\n} = z;\nlet ur = 0;\nclass hr extends sr {\n constructor() {\n super(...arguments), this.resetInputSummary();\n }\n setInputSummary() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n this.inputSummary.eventName = this.eventName;\n for (const e in t) {\n const i = t[e];\n this.inputSummary[e] = i;\n }\n return this.inputSummary;\n }\n resetInputSummary() {\n this.inputSummary = {};\n }\n reset() {\n return this.resetInputSummary(), Ft.reset();\n }\n elementDidMutate(t) {\n var e, i;\n return this.isComposing() ? null === (e = this.delegate) || void 0 === e || null === (i = e.inputControllerDidAllowUnhandledInput) || void 0 === i ? void 0 : i.call(e) : this.handleInput(function () {\n return this.mutationIsSignificant(t) && (this.mutationIsExpected(t) ? this.requestRender() : this.requestReparse()), this.reset();\n });\n }\n mutationIsExpected(t) {\n let {\n textAdded: e,\n textDeleted: i\n } = t;\n if (this.inputSummary.preferDocument) return !0;\n const n = null != e ? e === this.inputSummary.textAdded : !this.inputSummary.textAdded,\n r = null != i ? this.inputSummary.didDelete : !this.inputSummary.didDelete,\n o = [\"\\n\", \" \\n\"].includes(e) && !n,\n s = \"\\n\" === i && !r;\n if (o && !s || s && !o) {\n const t = this.getSelectedRange();\n if (t) {\n var a;\n const i = o ? e.replace(/\\n$/, \"\").length || -1 : (null == e ? void 0 : e.length) || 1;\n if (null !== (a = this.responder) && void 0 !== a && a.positionIsBlockBreak(t[1] + i)) return !0;\n }\n }\n return n && r;\n }\n mutationIsSignificant(t) {\n var e;\n const i = Object.keys(t).length > 0,\n n = \"\" === (null === (e = this.compositionInput) || void 0 === e ? void 0 : e.getEndData());\n return i || !n;\n }\n getCompositionInput() {\n if (this.isComposing()) return this.compositionInput;\n this.compositionInput = new fr(this);\n }\n isComposing() {\n return this.compositionInput && !this.compositionInput.isEnded();\n }\n deleteInDirection(t, e) {\n var i;\n return !1 !== (null === (i = this.responder) || void 0 === i ? void 0 : i.deleteInDirection(t)) ? this.setInputSummary({\n didDelete: !0\n }) : e ? (e.preventDefault(), this.requestRender()) : void 0;\n }\n serializeSelectionToDataTransfer(t) {\n var e;\n if (!function (t) {\n if (null == t || !t.setData) return !1;\n for (const e in Ct) {\n const i = Ct[e];\n try {\n if (t.setData(e, i), !t.getData(e) === i) return !1;\n } catch (t) {\n return !1;\n }\n }\n return !0;\n }(t)) return;\n const i = null === (e = this.responder) || void 0 === e ? void 0 : e.getSelectedDocument().toSerializableDocument();\n return t.setData(\"application/x-trix-document\", JSON.stringify(i)), t.setData(\"text/html\", Ci.render(i).innerHTML), t.setData(\"text/plain\", i.toString().replace(/\\n$/, \"\")), !0;\n }\n canAcceptDataTransfer(t) {\n const e = {};\n return Array.from((null == t ? void 0 : t.types) || []).forEach(t => {\n e[t] = !0;\n }), e.Files || e[\"application/x-trix-document\"] || e[\"text/html\"] || e[\"text/plain\"];\n }\n getPastedHTMLUsingHiddenElement(t) {\n const e = this.getSelectedRange(),\n i = {\n position: \"absolute\",\n left: \"\".concat(window.pageXOffset, \"px\"),\n top: \"\".concat(window.pageYOffset, \"px\"),\n opacity: 0\n },\n n = T({\n style: i,\n tagName: \"div\",\n editable: !0\n });\n return document.body.appendChild(n), n.focus(), requestAnimationFrame(() => {\n const i = n.innerHTML;\n return S(n), this.setSelectedRange(e), t(i);\n });\n }\n}\nwi(hr, \"events\", {\n keydown(t) {\n this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0;\n const e = cr[t.keyCode];\n if (e) {\n var i;\n let n = this.keys;\n [\"ctrl\", \"alt\", \"shift\", \"meta\"].forEach(e => {\n var i;\n t[\"\".concat(e, \"Key\")] && (\"ctrl\" === e && (e = \"control\"), n = null === (i = n) || void 0 === i ? void 0 : i[e]);\n }), null != (null === (i = n) || void 0 === i ? void 0 : i[e]) && (this.setInputSummary({\n keyName: e\n }), Ft.reset(), n[e].call(this, t));\n }\n if (St(t)) {\n const e = String.fromCharCode(t.keyCode).toLowerCase();\n if (e) {\n var n;\n const i = [\"alt\", \"shift\"].map(e => {\n if (t[\"\".concat(e, \"Key\")]) return e;\n }).filter(t => t);\n i.push(e), null !== (n = this.delegate) && void 0 !== n && n.inputControllerDidReceiveKeyboardCommand(i) && t.preventDefault();\n }\n }\n },\n keypress(t) {\n if (null != this.inputSummary.eventName) return;\n if (t.metaKey) return;\n if (t.ctrlKey && !t.altKey) return;\n const e = mr(t);\n var i, n;\n return e ? (null === (i = this.delegate) || void 0 === i || i.inputControllerWillPerformTyping(), null === (n = this.responder) || void 0 === n || n.insertString(e), this.setInputSummary({\n textAdded: e,\n didDelete: this.selectionIsExpanded()\n })) : void 0;\n },\n textInput(t) {\n const {\n data: e\n } = t,\n {\n textAdded: i\n } = this.inputSummary;\n if (i && i !== e && i.toUpperCase() === e) {\n var n;\n const t = this.getSelectedRange();\n return this.setSelectedRange([t[0], t[1] + i.length]), null === (n = this.responder) || void 0 === n || n.insertString(e), this.setInputSummary({\n textAdded: e\n }), this.setSelectedRange(t);\n }\n },\n dragenter(t) {\n t.preventDefault();\n },\n dragstart(t) {\n var e, i;\n return this.serializeSelectionToDataTransfer(t.dataTransfer), this.draggedRange = this.getSelectedRange(), null === (e = this.delegate) || void 0 === e || null === (i = e.inputControllerDidStartDrag) || void 0 === i ? void 0 : i.call(e);\n },\n dragover(t) {\n if (this.draggedRange || this.canAcceptDataTransfer(t.dataTransfer)) {\n t.preventDefault();\n const n = {\n x: t.clientX,\n y: t.clientY\n };\n var e, i;\n if (!Tt(n, this.draggingPoint)) return this.draggingPoint = n, null === (e = this.delegate) || void 0 === e || null === (i = e.inputControllerDidReceiveDragOverPoint) || void 0 === i ? void 0 : i.call(e, this.draggingPoint);\n }\n },\n dragend(t) {\n var e, i;\n null === (e = this.delegate) || void 0 === e || null === (i = e.inputControllerDidCancelDrag) || void 0 === i || i.call(e), this.draggedRange = null, this.draggingPoint = null;\n },\n drop(t) {\n var e, i;\n t.preventDefault();\n const n = null === (e = t.dataTransfer) || void 0 === e ? void 0 : e.files,\n r = t.dataTransfer.getData(\"application/x-trix-document\"),\n o = {\n x: t.clientX,\n y: t.clientY\n };\n if (null === (i = this.responder) || void 0 === i || i.setLocationRangeFromPointRange(o), null != n && n.length) this.attachFiles(n);else if (this.draggedRange) {\n var s, a;\n null === (s = this.delegate) || void 0 === s || s.inputControllerWillMoveText(), null === (a = this.responder) || void 0 === a || a.moveTextFromRange(this.draggedRange), this.draggedRange = null, this.requestRender();\n } else if (r) {\n var l;\n const t = on.fromJSONString(r);\n null === (l = this.responder) || void 0 === l || l.insertDocument(t), this.requestRender();\n }\n this.draggedRange = null, this.draggingPoint = null;\n },\n cut(t) {\n var e, i;\n if (null !== (e = this.responder) && void 0 !== e && e.selectionIsExpanded() && (this.serializeSelectionToDataTransfer(t.clipboardData) && t.preventDefault(), null === (i = this.delegate) || void 0 === i || i.inputControllerWillCutText(), this.deleteInDirection(\"backward\"), t.defaultPrevented)) return this.requestRender();\n },\n copy(t) {\n var e;\n null !== (e = this.responder) && void 0 !== e && e.selectionIsExpanded() && this.serializeSelectionToDataTransfer(t.clipboardData) && t.preventDefault();\n },\n paste(t) {\n const e = t.clipboardData || t.testClipboardData,\n i = {\n clipboard: e\n };\n if (!e || pr(t)) return void this.getPastedHTMLUsingHiddenElement(t => {\n var e, n, r;\n return i.type = \"text/html\", i.html = t, null === (e = this.delegate) || void 0 === e || e.inputControllerWillPaste(i), null === (n = this.responder) || void 0 === n || n.insertHTML(i.html), this.requestRender(), null === (r = this.delegate) || void 0 === r ? void 0 : r.inputControllerDidPaste(i);\n });\n const n = e.getData(\"URL\"),\n r = e.getData(\"text/html\"),\n o = e.getData(\"public.url-name\");\n if (n) {\n var s, a, l;\n let t;\n i.type = \"text/html\", t = o ? Vt(o).trim() : n, i.html = this.createLinkHTML(n, t), null === (s = this.delegate) || void 0 === s || s.inputControllerWillPaste(i), this.setInputSummary({\n textAdded: t,\n didDelete: this.selectionIsExpanded()\n }), null === (a = this.responder) || void 0 === a || a.insertHTML(i.html), this.requestRender(), null === (l = this.delegate) || void 0 === l || l.inputControllerDidPaste(i);\n } else if (Et(e)) {\n var c, u, h;\n i.type = \"text/plain\", i.string = e.getData(\"text/plain\"), null === (c = this.delegate) || void 0 === c || c.inputControllerWillPaste(i), this.setInputSummary({\n textAdded: i.string,\n didDelete: this.selectionIsExpanded()\n }), null === (u = this.responder) || void 0 === u || u.insertString(i.string), this.requestRender(), null === (h = this.delegate) || void 0 === h || h.inputControllerDidPaste(i);\n } else if (r) {\n var d, g, m;\n i.type = \"text/html\", i.html = r, null === (d = this.delegate) || void 0 === d || d.inputControllerWillPaste(i), null === (g = this.responder) || void 0 === g || g.insertHTML(i.html), this.requestRender(), null === (m = this.delegate) || void 0 === m || m.inputControllerDidPaste(i);\n } else if (Array.from(e.types).includes(\"Files\")) {\n var p, f;\n const t = null === (p = e.items) || void 0 === p || null === (p = p[0]) || void 0 === p || null === (f = p.getAsFile) || void 0 === f ? void 0 : f.call(p);\n if (t) {\n var b, v, A;\n const e = dr(t);\n !t.name && e && (t.name = \"pasted-file-\".concat(++ur, \".\").concat(e)), i.type = \"File\", i.file = t, null === (b = this.delegate) || void 0 === b || b.inputControllerWillAttachFiles(), null === (v = this.responder) || void 0 === v || v.insertFile(i.file), this.requestRender(), null === (A = this.delegate) || void 0 === A || A.inputControllerDidPaste(i);\n }\n }\n t.preventDefault();\n },\n compositionstart(t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate(t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend(t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput(t) {\n this.inputSummary.didInput = !0;\n },\n input(t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n}), wi(hr, \"keys\", {\n backspace(t) {\n var e;\n return null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n delete(t) {\n var e;\n return null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n return(t) {\n var e, i;\n return this.setInputSummary({\n preferDocument: !0\n }), null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), null === (i = this.responder) || void 0 === i ? void 0 : i.insertLineBreak();\n },\n tab(t) {\n var e, i;\n null !== (e = this.responder) && void 0 !== e && e.canIncreaseNestingLevel() && (null === (i = this.responder) || void 0 === i || i.increaseNestingLevel(), this.requestRender(), t.preventDefault());\n },\n left(t) {\n var e;\n if (this.selectionIsInCursorTarget()) return t.preventDefault(), null === (e = this.responder) || void 0 === e ? void 0 : e.moveCursorInDirection(\"backward\");\n },\n right(t) {\n var e;\n if (this.selectionIsInCursorTarget()) return t.preventDefault(), null === (e = this.responder) || void 0 === e ? void 0 : e.moveCursorInDirection(\"forward\");\n },\n control: {\n d(t) {\n var e;\n return null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h(t) {\n var e;\n return null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o(t) {\n var e, i;\n return t.preventDefault(), null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), null === (i = this.responder) || void 0 === i || i.insertString(\"\\n\", {\n updatePosition: !1\n }), this.requestRender();\n }\n },\n shift: {\n return(t) {\n var e, i;\n null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), null === (i = this.responder) || void 0 === i || i.insertString(\"\\n\"), this.requestRender(), t.preventDefault();\n },\n tab(t) {\n var e, i;\n null !== (e = this.responder) && void 0 !== e && e.canDecreaseNestingLevel() && (null === (i = this.responder) || void 0 === i || i.decreaseNestingLevel(), this.requestRender(), t.preventDefault());\n },\n left(t) {\n if (this.selectionIsInCursorTarget()) return t.preventDefault(), this.expandSelectionInDirection(\"backward\");\n },\n right(t) {\n if (this.selectionIsInCursorTarget()) return t.preventDefault(), this.expandSelectionInDirection(\"forward\");\n }\n },\n alt: {\n backspace(t) {\n var e;\n return this.setInputSummary({\n preferDocument: !1\n }), null === (e = this.delegate) || void 0 === e ? void 0 : e.inputControllerWillPerformTyping();\n }\n },\n meta: {\n backspace(t) {\n var e;\n return this.setInputSummary({\n preferDocument: !1\n }), null === (e = this.delegate) || void 0 === e ? void 0 : e.inputControllerWillPerformTyping();\n }\n }\n}), hr.proxyMethod(\"responder?.getSelectedRange\"), hr.proxyMethod(\"responder?.setSelectedRange\"), hr.proxyMethod(\"responder?.expandSelectionInDirection\"), hr.proxyMethod(\"responder?.selectionIsInCursorTarget\"), hr.proxyMethod(\"responder?.selectionIsExpanded\");\nconst dr = t => {\n var e;\n return null === (e = t.type) || void 0 === e || null === (e = e.match(/\\/(\\w+)$/)) || void 0 === e ? void 0 : e[1];\n },\n gr = !(null === (ar = \" \".codePointAt) || void 0 === ar || !ar.call(\" \", 0)),\n mr = function (t) {\n if (t.key && gr && t.key.codePointAt(0) === t.keyCode) return t.key;\n {\n let e;\n if (null === t.which ? e = t.keyCode : 0 !== t.which && 0 !== t.charCode && (e = t.charCode), null != e && \"escape\" !== cr[e]) return X.fromCodepoints([e]).toString();\n }\n },\n pr = function (t) {\n const e = t.clipboardData;\n if (e) {\n if (e.types.includes(\"text/html\")) {\n for (const t of e.types) {\n const i = /^CorePasteboardFlavorType/.test(t),\n n = /^dyn\\./.test(t) && e.getData(t);\n if (i || n) return !0;\n }\n return !1;\n }\n {\n const t = e.types.includes(\"com.apple.webarchive\"),\n i = e.types.includes(\"com.apple.flat-rtfd\");\n return t || i;\n }\n }\n };\nclass fr extends q {\n constructor(t) {\n super(...arguments), this.inputController = t, this.responder = this.inputController.responder, this.delegate = this.inputController.delegate, this.inputSummary = this.inputController.inputSummary, this.data = {};\n }\n start(t) {\n if (this.data.start = t, this.isSignificant()) {\n var e, i;\n if (\"keypress\" === this.inputSummary.eventName && this.inputSummary.textAdded) null === (i = this.responder) || void 0 === i || i.deleteInDirection(\"left\");\n this.selectionIsExpanded() || (this.insertPlaceholder(), this.requestRender()), this.range = null === (e = this.responder) || void 0 === e ? void 0 : e.getSelectedRange();\n }\n }\n update(t) {\n if (this.data.update = t, this.isSignificant()) {\n const t = this.selectPlaceholder();\n t && (this.forgetPlaceholder(), this.range = t);\n }\n }\n end(t) {\n return this.data.end = t, this.isSignificant() ? (this.forgetPlaceholder(), this.canApplyToDocument() ? (this.setInputSummary({\n preferDocument: !0,\n didInput: !1\n }), null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), null === (i = this.responder) || void 0 === i || i.setSelectedRange(this.range), null === (n = this.responder) || void 0 === n || n.insertString(this.data.end), null === (r = this.responder) || void 0 === r ? void 0 : r.setSelectedRange(this.range[0] + this.data.end.length)) : null != this.data.start || null != this.data.update ? (this.requestReparse(), this.inputController.reset()) : void 0) : this.inputController.reset();\n var e, i, n, r;\n }\n getEndData() {\n return this.data.end;\n }\n isEnded() {\n return null != this.getEndData();\n }\n isSignificant() {\n return !lr.composesExistingText || this.inputSummary.didInput;\n }\n canApplyToDocument() {\n var t, e;\n return 0 === (null === (t = this.data.start) || void 0 === t ? void 0 : t.length) && (null === (e = this.data.end) || void 0 === e ? void 0 : e.length) > 0 && this.range;\n }\n}\nfr.proxyMethod(\"inputController.setInputSummary\"), fr.proxyMethod(\"inputController.requestRender\"), fr.proxyMethod(\"inputController.requestReparse\"), fr.proxyMethod(\"responder?.selectionIsExpanded\"), fr.proxyMethod(\"responder?.insertPlaceholder\"), fr.proxyMethod(\"responder?.selectPlaceholder\"), fr.proxyMethod(\"responder?.forgetPlaceholder\");\nclass br extends sr {\n constructor() {\n super(...arguments), this.render = this.render.bind(this);\n }\n elementDidMutate() {\n return this.scheduledRender ? this.composing ? null === (t = this.delegate) || void 0 === t || null === (e = t.inputControllerDidAllowUnhandledInput) || void 0 === e ? void 0 : e.call(t) : void 0 : this.reparse();\n var t, e;\n }\n scheduleRender() {\n return this.scheduledRender ? this.scheduledRender : this.scheduledRender = requestAnimationFrame(this.render);\n }\n render() {\n var t, e;\n (cancelAnimationFrame(this.scheduledRender), this.scheduledRender = null, this.composing) || null === (e = this.delegate) || void 0 === e || e.render();\n null === (t = this.afterRender) || void 0 === t || t.call(this), this.afterRender = null;\n }\n reparse() {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.reparse();\n }\n insertString() {\n var t;\n let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"\",\n i = arguments.length > 1 ? arguments[1] : void 0;\n return null === (t = this.delegate) || void 0 === t || t.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertString(e, i);\n });\n }\n toggleAttributeIfSupported(t) {\n var e;\n if (gt().includes(t)) return null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null === (e = this.responder) || void 0 === e ? void 0 : e.toggleCurrentAttribute(t);\n });\n }\n activateAttributeIfSupported(t, e) {\n var i;\n if (gt().includes(t)) return null === (i = this.delegate) || void 0 === i || i.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var i;\n return null === (i = this.responder) || void 0 === i ? void 0 : i.setCurrentAttribute(t, e);\n });\n }\n deleteInDirection(t) {\n let {\n recordUndoEntry: e\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n recordUndoEntry: !0\n };\n var i;\n e && (null === (i = this.delegate) || void 0 === i || i.inputControllerWillPerformTyping());\n const n = () => {\n var e;\n return null === (e = this.responder) || void 0 === e ? void 0 : e.deleteInDirection(t);\n },\n r = this.getTargetDOMRange({\n minLength: this.composing ? 1 : 2\n });\n return r ? this.withTargetDOMRange(r, n) : n();\n }\n withTargetDOMRange(t, e) {\n var i;\n return \"function\" == typeof t && (e = t, t = this.getTargetDOMRange()), t ? null === (i = this.responder) || void 0 === i ? void 0 : i.withTargetDOMRange(t, e.bind(this)) : (Ft.reset(), e.call(this));\n }\n getTargetDOMRange() {\n var t, e;\n let {\n minLength: i\n } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {\n minLength: 0\n };\n const n = null === (t = (e = this.event).getTargetRanges) || void 0 === t ? void 0 : t.call(e);\n if (n && n.length) {\n const t = vr(n[0]);\n if (0 === i || t.toString().length >= i) return t;\n }\n }\n withEvent(t, e) {\n let i;\n this.event = t;\n try {\n i = e.call(this);\n } finally {\n this.event = null;\n }\n return i;\n }\n}\nwi(br, \"events\", {\n keydown(t) {\n if (St(t)) {\n var e;\n const i = Er(t);\n null !== (e = this.delegate) && void 0 !== e && e.inputControllerDidReceiveKeyboardCommand(i) && t.preventDefault();\n } else {\n let e = t.key;\n t.altKey && (e += \"+Alt\"), t.shiftKey && (e += \"+Shift\");\n const i = this.constructor.keys[e];\n if (i) return this.withEvent(t, i);\n }\n },\n paste(t) {\n var e;\n let i;\n const n = null === (e = t.clipboardData) || void 0 === e ? void 0 : e.getData(\"URL\");\n return xr(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : Cr(t) ? (t.preventDefault(), i = {\n type: \"text/plain\",\n string: t.clipboardData.getData(\"text/plain\")\n }, null === (r = this.delegate) || void 0 === r || r.inputControllerWillPaste(i), null === (o = this.responder) || void 0 === o || o.insertString(i.string), this.render(), null === (s = this.delegate) || void 0 === s ? void 0 : s.inputControllerDidPaste(i)) : n ? (t.preventDefault(), i = {\n type: \"text/html\",\n html: this.createLinkHTML(n)\n }, null === (a = this.delegate) || void 0 === a || a.inputControllerWillPaste(i), null === (l = this.responder) || void 0 === l || l.insertHTML(i.html), this.render(), null === (c = this.delegate) || void 0 === c ? void 0 : c.inputControllerDidPaste(i)) : void 0;\n var r, o, s, a, l, c;\n },\n beforeinput(t) {\n const e = this.constructor.inputTypes[t.inputType],\n i = (n = t, !(!/iPhone|iPad/.test(navigator.userAgent) || n.inputType && \"insertParagraph\" !== n.inputType));\n var n;\n e && (this.withEvent(t, e), i || this.scheduleRender()), i && this.render();\n },\n input(t) {\n Ft.reset();\n },\n dragstart(t) {\n var e, i;\n null !== (e = this.responder) && void 0 !== e && e.selectionContainsAttachments() && (t.dataTransfer.setData(\"application/x-trix-dragging\", !0), this.dragging = {\n range: null === (i = this.responder) || void 0 === i ? void 0 : i.getSelectedRange(),\n point: Sr(t)\n });\n },\n dragenter(t) {\n Ar(t) && t.preventDefault();\n },\n dragover(t) {\n if (this.dragging) {\n t.preventDefault();\n const i = Sr(t);\n var e;\n if (!Tt(i, this.dragging.point)) return this.dragging.point = i, null === (e = this.responder) || void 0 === e ? void 0 : e.setLocationRangeFromPointRange(i);\n } else Ar(t) && t.preventDefault();\n },\n drop(t) {\n var e, i;\n if (this.dragging) return t.preventDefault(), null === (e = this.delegate) || void 0 === e || e.inputControllerWillMoveText(), null === (i = this.responder) || void 0 === i || i.moveTextFromRange(this.dragging.range), this.dragging = null, this.scheduleRender();\n if (Ar(t)) {\n var n;\n t.preventDefault();\n const e = Sr(t);\n return null === (n = this.responder) || void 0 === n || n.setLocationRangeFromPointRange(e), this.attachFiles(t.dataTransfer.files);\n }\n },\n dragend() {\n var t;\n this.dragging && (null === (t = this.responder) || void 0 === t || t.setSelectedRange(this.dragging.range), this.dragging = null);\n },\n compositionend(t) {\n this.composing && (this.composing = !1, a.recentAndroid || this.scheduleRender());\n }\n}), wi(br, \"keys\", {\n ArrowLeft() {\n var t, e;\n if (null !== (t = this.responder) && void 0 !== t && t.shouldManageMovingCursorInDirection(\"backward\")) return this.event.preventDefault(), null === (e = this.responder) || void 0 === e ? void 0 : e.moveCursorInDirection(\"backward\");\n },\n ArrowRight() {\n var t, e;\n if (null !== (t = this.responder) && void 0 !== t && t.shouldManageMovingCursorInDirection(\"forward\")) return this.event.preventDefault(), null === (e = this.responder) || void 0 === e ? void 0 : e.moveCursorInDirection(\"forward\");\n },\n Backspace() {\n var t, e, i;\n if (null !== (t = this.responder) && void 0 !== t && t.shouldManageDeletingInDirection(\"backward\")) return this.event.preventDefault(), null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), null === (i = this.responder) || void 0 === i || i.deleteInDirection(\"backward\"), this.render();\n },\n Tab() {\n var t, e;\n if (null !== (t = this.responder) && void 0 !== t && t.canIncreaseNestingLevel()) return this.event.preventDefault(), null === (e = this.responder) || void 0 === e || e.increaseNestingLevel(), this.render();\n },\n \"Tab+Shift\"() {\n var t, e;\n if (null !== (t = this.responder) && void 0 !== t && t.canDecreaseNestingLevel()) return this.event.preventDefault(), null === (e = this.responder) || void 0 === e || e.decreaseNestingLevel(), this.render();\n }\n}), wi(br, \"inputTypes\", {\n deleteByComposition() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut() {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag() {\n return this.event.preventDefault(), this.withTargetDOMRange(function () {\n var t;\n this.deleteByDragRange = null === (t = this.responder) || void 0 === t ? void 0 : t.getSelectedRange();\n });\n },\n deleteCompositionText() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine() {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward() {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor() {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold() {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor() {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName() {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent() {\n var t;\n if (null !== (t = this.responder) && void 0 !== t && t.canIncreaseNestingLevel()) return this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.increaseNestingLevel();\n });\n },\n formatItalic() {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter() {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull() {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft() {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight() {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent() {\n var t;\n if (null !== (t = this.responder) && void 0 !== t && t.canDecreaseNestingLevel()) return this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.decreaseNestingLevel();\n });\n },\n formatRemove() {\n this.withTargetDOMRange(function () {\n for (const i in null === (t = this.responder) || void 0 === t ? void 0 : t.getCurrentAttributes()) {\n var t, e;\n null === (e = this.responder) || void 0 === e || e.removeCurrentAttribute(i);\n }\n });\n },\n formatSetBlockTextDirection() {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection() {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough() {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript() {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript() {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline() {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo() {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerWillPerformRedo();\n },\n historyUndo() {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerWillPerformUndo();\n },\n insertCompositionText() {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition() {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop() {\n const t = this.deleteByDragRange;\n var e;\n if (t) return this.deleteByDragRange = null, null === (e = this.delegate) || void 0 === e || e.inputControllerWillMoveText(), this.withTargetDOMRange(function () {\n var e;\n return null === (e = this.responder) || void 0 === e ? void 0 : e.moveTextFromRange(t);\n });\n },\n insertFromPaste() {\n const {\n dataTransfer: t\n } = this.event,\n e = {\n dataTransfer: t\n },\n i = t.getData(\"URL\"),\n n = t.getData(\"text/html\");\n if (i) {\n var r;\n let n;\n this.event.preventDefault(), e.type = \"text/html\";\n const o = t.getData(\"public.url-name\");\n n = o ? Vt(o).trim() : i, e.html = this.createLinkHTML(i, n), null === (r = this.delegate) || void 0 === r || r.inputControllerWillPaste(e), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertHTML(e.html);\n }), this.afterRender = () => {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerDidPaste(e);\n };\n } else if (Et(t)) {\n var o;\n e.type = \"text/plain\", e.string = t.getData(\"text/plain\"), null === (o = this.delegate) || void 0 === o || o.inputControllerWillPaste(e), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertString(e.string);\n }), this.afterRender = () => {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerDidPaste(e);\n };\n } else if (yr(this.event)) {\n var s;\n e.type = \"File\", e.file = t.files[0], null === (s = this.delegate) || void 0 === s || s.inputControllerWillPaste(e), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertFile(e.file);\n }), this.afterRender = () => {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerDidPaste(e);\n };\n } else if (n) {\n var a;\n this.event.preventDefault(), e.type = \"text/html\", e.html = n, null === (a = this.delegate) || void 0 === a || a.inputControllerWillPaste(e), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertHTML(e.html);\n }), this.afterRender = () => {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerDidPaste(e);\n };\n }\n },\n insertFromYank() {\n return this.insertString(this.event.data);\n },\n insertLineBreak() {\n return this.insertString(\"\\n\");\n },\n insertLink() {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList() {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph() {\n var t;\n return null === (t = this.delegate) || void 0 === t || t.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertLineBreak();\n });\n },\n insertReplacementText() {\n const t = this.event.dataTransfer.getData(\"text/plain\"),\n e = this.event.getTargetRanges()[0];\n this.withTargetDOMRange(e, () => {\n this.insertString(t, {\n updatePosition: !1\n });\n });\n },\n insertText() {\n var t;\n return this.insertString(this.event.data || (null === (t = this.event.dataTransfer) || void 0 === t ? void 0 : t.getData(\"text/plain\")));\n },\n insertTranspose() {\n return this.insertString(this.event.data);\n },\n insertUnorderedList() {\n return this.toggleAttributeIfSupported(\"bullet\");\n }\n});\nconst vr = function (t) {\n const e = document.createRange();\n return e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n },\n Ar = t => {\n var e;\n return Array.from((null === (e = t.dataTransfer) || void 0 === e ? void 0 : e.types) || []).includes(\"Files\");\n },\n yr = t => {\n var e;\n return (null === (e = t.dataTransfer.files) || void 0 === e ? void 0 : e[0]) && !xr(t) && !(t => {\n let {\n dataTransfer: e\n } = t;\n return e.types.includes(\"Files\") && e.types.includes(\"text/html\") && e.getData(\"text/html\").includes(\"urn:schemas-microsoft-com:office:office\");\n })(t);\n },\n xr = function (t) {\n const e = t.clipboardData;\n if (e) {\n return Array.from(e.types).filter(t => t.match(/file/i)).length === e.types.length && e.files.length >= 1;\n }\n },\n Cr = function (t) {\n const e = t.clipboardData;\n if (e) return e.types.includes(\"text/plain\") && 1 === e.types.length;\n },\n Er = function (t) {\n const e = [];\n return t.altKey && e.push(\"alt\"), t.shiftKey && e.push(\"shift\"), e.push(t.key), e;\n },\n Sr = t => ({\n x: t.clientX,\n y: t.clientY\n }),\n Rr = \"[data-trix-attribute]\",\n kr = \"[data-trix-action]\",\n Tr = \"\".concat(Rr, \", \").concat(kr),\n wr = \"[data-trix-dialog]\",\n Lr = \"\".concat(wr, \"[data-trix-active]\"),\n Dr = \"\".concat(wr, \" [data-trix-method]\"),\n Nr = \"\".concat(wr, \" [data-trix-input]\"),\n Ir = (t, e) => (e || (e = Fr(t)), t.querySelector(\"[data-trix-input][name='\".concat(e, \"']\"))),\n Or = t => t.getAttribute(\"data-trix-action\"),\n Fr = t => t.getAttribute(\"data-trix-attribute\") || t.getAttribute(\"data-trix-dialog-attribute\");\nclass Pr extends q {\n constructor(t) {\n super(t), this.didClickActionButton = this.didClickActionButton.bind(this), this.didClickAttributeButton = this.didClickAttributeButton.bind(this), this.didClickDialogButton = this.didClickDialogButton.bind(this), this.didKeyDownDialogInput = this.didKeyDownDialogInput.bind(this), this.element = t, this.attributes = {}, this.actions = {}, this.resetDialogInputs(), b(\"mousedown\", {\n onElement: this.element,\n matchingSelector: kr,\n withCallback: this.didClickActionButton\n }), b(\"mousedown\", {\n onElement: this.element,\n matchingSelector: Rr,\n withCallback: this.didClickAttributeButton\n }), b(\"click\", {\n onElement: this.element,\n matchingSelector: Tr,\n preventDefault: !0\n }), b(\"click\", {\n onElement: this.element,\n matchingSelector: Dr,\n withCallback: this.didClickDialogButton\n }), b(\"keydown\", {\n onElement: this.element,\n matchingSelector: Nr,\n withCallback: this.didKeyDownDialogInput\n });\n }\n didClickActionButton(t, e) {\n var i;\n null === (i = this.delegate) || void 0 === i || i.toolbarDidClickButton(), t.preventDefault();\n const n = Or(e);\n return this.getDialog(n) ? this.toggleDialog(n) : null === (r = this.delegate) || void 0 === r ? void 0 : r.toolbarDidInvokeAction(n, e);\n var r;\n }\n didClickAttributeButton(t, e) {\n var i;\n null === (i = this.delegate) || void 0 === i || i.toolbarDidClickButton(), t.preventDefault();\n const n = Fr(e);\n var r;\n this.getDialog(n) ? this.toggleDialog(n) : null === (r = this.delegate) || void 0 === r || r.toolbarDidToggleAttribute(n);\n return this.refreshAttributeButtons();\n }\n didClickDialogButton(t, e) {\n const i = y(e, {\n matchingSelector: wr\n });\n return this[e.getAttribute(\"data-trix-method\")].call(this, i);\n }\n didKeyDownDialogInput(t, e) {\n if (13 === t.keyCode) {\n t.preventDefault();\n const i = e.getAttribute(\"name\"),\n n = this.getDialog(i);\n this.setAttribute(n);\n }\n if (27 === t.keyCode) return t.preventDefault(), this.hideDialog();\n }\n updateActions(t) {\n return this.actions = t, this.refreshActionButtons();\n }\n refreshActionButtons() {\n return this.eachActionButton((t, e) => {\n t.disabled = !1 === this.actions[e];\n });\n }\n eachActionButton(t) {\n return Array.from(this.element.querySelectorAll(kr)).map(e => t(e, Or(e)));\n }\n updateAttributes(t) {\n return this.attributes = t, this.refreshAttributeButtons();\n }\n refreshAttributeButtons() {\n return this.eachAttributeButton((t, e) => (t.disabled = !1 === this.attributes[e], this.attributes[e] || this.dialogIsVisible(e) ? (t.setAttribute(\"data-trix-active\", \"\"), t.classList.add(\"trix-active\")) : (t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"))));\n }\n eachAttributeButton(t) {\n return Array.from(this.element.querySelectorAll(Rr)).map(e => t(e, Fr(e)));\n }\n applyKeyboardCommand(t) {\n const e = JSON.stringify(t.sort());\n for (const t of Array.from(this.element.querySelectorAll(\"[data-trix-key]\"))) {\n const i = t.getAttribute(\"data-trix-key\").split(\"+\");\n if (JSON.stringify(i.sort()) === e) return v(\"mousedown\", {\n onElement: t\n }), !0;\n }\n return !1;\n }\n dialogIsVisible(t) {\n const e = this.getDialog(t);\n if (e) return e.hasAttribute(\"data-trix-active\");\n }\n toggleDialog(t) {\n return this.dialogIsVisible(t) ? this.hideDialog() : this.showDialog(t);\n }\n showDialog(t) {\n var e, i;\n this.hideDialog(), null === (e = this.delegate) || void 0 === e || e.toolbarWillShowDialog();\n const n = this.getDialog(t);\n n.setAttribute(\"data-trix-active\", \"\"), n.classList.add(\"trix-active\"), Array.from(n.querySelectorAll(\"input[disabled]\")).forEach(t => {\n t.removeAttribute(\"disabled\");\n });\n const r = Fr(n);\n if (r) {\n const e = Ir(n, t);\n e && (e.value = this.attributes[r] || \"\", e.select());\n }\n return null === (i = this.delegate) || void 0 === i ? void 0 : i.toolbarDidShowDialog(t);\n }\n setAttribute(t) {\n var e;\n const i = Fr(t),\n n = Ir(t, i);\n return !n.willValidate || (n.setCustomValidity(\"\"), n.checkValidity() && this.isSafeAttribute(n)) ? (null === (e = this.delegate) || void 0 === e || e.toolbarDidUpdateAttribute(i, n.value), this.hideDialog()) : (n.setCustomValidity(\"Invalid value\"), n.setAttribute(\"data-trix-validate\", \"\"), n.classList.add(\"trix-validate\"), n.focus());\n }\n isSafeAttribute(t) {\n return !t.hasAttribute(\"data-trix-validate-href\") || si.isValidAttribute(\"a\", \"href\", t.value);\n }\n removeAttribute(t) {\n var e;\n const i = Fr(t);\n return null === (e = this.delegate) || void 0 === e || e.toolbarDidRemoveAttribute(i), this.hideDialog();\n }\n hideDialog() {\n const t = this.element.querySelector(Lr);\n var e;\n if (t) return t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"), this.resetDialogInputs(), null === (e = this.delegate) || void 0 === e ? void 0 : e.toolbarDidHideDialog((t => t.getAttribute(\"data-trix-dialog\"))(t));\n }\n resetDialogInputs() {\n Array.from(this.element.querySelectorAll(Nr)).forEach(t => {\n t.setAttribute(\"disabled\", \"disabled\"), t.removeAttribute(\"data-trix-validate\"), t.classList.remove(\"trix-validate\");\n });\n }\n getDialog(t) {\n return this.element.querySelector(\"[data-trix-dialog=\".concat(t, \"]\"));\n }\n}\nclass Mr extends Yn {\n constructor(t) {\n let {\n editorElement: e,\n document: i,\n html: n\n } = t;\n super(...arguments), this.editorElement = e, this.selectionManager = new Wn(this.editorElement), this.selectionManager.delegate = this, this.composition = new kn(), this.composition.delegate = this, this.attachmentManager = new Sn(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = 2 === _.getLevel() ? new br(this.editorElement) : new hr(this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new Gn(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new Pr(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new On(this.composition, this.selectionManager, this.editorElement), i ? this.editor.loadDocument(i) : this.editor.loadHTML(n);\n }\n registerSelectionManager() {\n return Ft.registerSelectionManager(this.selectionManager);\n }\n unregisterSelectionManager() {\n return Ft.unregisterSelectionManager(this.selectionManager);\n }\n render() {\n return this.compositionController.render();\n }\n reparse() {\n return this.composition.replaceHTML(this.editorElement.innerHTML);\n }\n compositionDidChangeDocument(t) {\n if (this.notifyEditorElement(\"document-change\"), !this.handlingInput) return this.render();\n }\n compositionDidChangeCurrentAttributes(t) {\n return this.currentAttributes = t, this.toolbarController.updateAttributes(this.currentAttributes), this.updateCurrentActions(), this.notifyEditorElement(\"attributes-change\", {\n attributes: this.currentAttributes\n });\n }\n compositionDidPerformInsertionAtRange(t) {\n this.pasting && (this.pastedRange = t);\n }\n compositionShouldAcceptFile(t) {\n return this.notifyEditorElement(\"file-accept\", {\n file: t\n });\n }\n compositionDidAddAttachment(t) {\n const e = this.attachmentManager.manageAttachment(t);\n return this.notifyEditorElement(\"attachment-add\", {\n attachment: e\n });\n }\n compositionDidEditAttachment(t) {\n this.compositionController.rerenderViewForObject(t);\n const e = this.attachmentManager.manageAttachment(t);\n return this.notifyEditorElement(\"attachment-edit\", {\n attachment: e\n }), this.notifyEditorElement(\"change\");\n }\n compositionDidChangeAttachmentPreviewURL(t) {\n return this.compositionController.invalidateViewForObject(t), this.notifyEditorElement(\"change\");\n }\n compositionDidRemoveAttachment(t) {\n const e = this.attachmentManager.unmanageAttachment(t);\n return this.notifyEditorElement(\"attachment-remove\", {\n attachment: e\n });\n }\n compositionDidStartEditingAttachment(t, e) {\n return this.attachmentLocationRange = this.composition.document.getLocationRangeOfAttachment(t), this.compositionController.installAttachmentEditorForAttachment(t, e), this.selectionManager.setLocationRange(this.attachmentLocationRange);\n }\n compositionDidStopEditingAttachment(t) {\n this.compositionController.uninstallAttachmentEditor(), this.attachmentLocationRange = null;\n }\n compositionDidRequestChangingSelectionToLocationRange(t) {\n if (!this.loadingSnapshot || this.isFocused()) return this.requestedLocationRange = t, this.compositionRevisionWhenLocationRangeRequested = this.composition.revision, this.handlingInput ? void 0 : this.render();\n }\n compositionWillLoadSnapshot() {\n this.loadingSnapshot = !0;\n }\n compositionDidLoadSnapshot() {\n this.compositionController.refreshViewCache(), this.render(), this.loadingSnapshot = !1;\n }\n getSelectionManager() {\n return this.selectionManager;\n }\n attachmentManagerDidRequestRemovalOfAttachment(t) {\n return this.removeAttachment(t);\n }\n compositionControllerWillSyncDocumentView() {\n return this.inputController.editorWillSyncDocumentView(), this.selectionManager.lock(), this.selectionManager.clearSelection();\n }\n compositionControllerDidSyncDocumentView() {\n return this.inputController.editorDidSyncDocumentView(), this.selectionManager.unlock(), this.updateCurrentActions(), this.notifyEditorElement(\"sync\");\n }\n compositionControllerDidRender() {\n this.requestedLocationRange && (this.compositionRevisionWhenLocationRangeRequested === this.composition.revision && this.selectionManager.setLocationRange(this.requestedLocationRange), this.requestedLocationRange = null, this.compositionRevisionWhenLocationRangeRequested = null), this.renderedCompositionRevision !== this.composition.revision && (this.runEditorFilters(), this.composition.updateCurrentAttributes(), this.notifyEditorElement(\"render\")), this.renderedCompositionRevision = this.composition.revision;\n }\n compositionControllerDidFocus() {\n return this.isFocusedInvisibly() && this.setLocationRange({\n index: 0,\n offset: 0\n }), this.toolbarController.hideDialog(), this.notifyEditorElement(\"focus\");\n }\n compositionControllerDidBlur() {\n return this.notifyEditorElement(\"blur\");\n }\n compositionControllerDidSelectAttachment(t, e) {\n return this.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n }\n compositionControllerDidRequestDeselectingAttachment(t) {\n const e = this.attachmentLocationRange || this.composition.document.getLocationRangeOfAttachment(t);\n return this.selectionManager.setLocationRange(e[1]);\n }\n compositionControllerWillUpdateAttachment(t) {\n return this.editor.recordUndoEntry(\"Edit Attachment\", {\n context: t.id,\n consolidatable: !0\n });\n }\n compositionControllerDidRequestRemovalOfAttachment(t) {\n return this.removeAttachment(t);\n }\n inputControllerWillHandleInput() {\n this.handlingInput = !0, this.requestedRender = !1;\n }\n inputControllerDidRequestRender() {\n this.requestedRender = !0;\n }\n inputControllerDidHandleInput() {\n if (this.handlingInput = !1, this.requestedRender) return this.requestedRender = !1, this.render();\n }\n inputControllerDidAllowUnhandledInput() {\n return this.notifyEditorElement(\"change\");\n }\n inputControllerDidRequestReparse() {\n return this.reparse();\n }\n inputControllerWillPerformTyping() {\n return this.recordTypingUndoEntry();\n }\n inputControllerWillPerformFormatting(t) {\n return this.recordFormattingUndoEntry(t);\n }\n inputControllerWillCutText() {\n return this.editor.recordUndoEntry(\"Cut\");\n }\n inputControllerWillPaste(t) {\n return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n paste: t\n });\n }\n inputControllerDidPaste(t) {\n return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n paste: t\n });\n }\n inputControllerWillMoveText() {\n return this.editor.recordUndoEntry(\"Move\");\n }\n inputControllerWillAttachFiles() {\n return this.editor.recordUndoEntry(\"Drop Files\");\n }\n inputControllerWillPerformUndo() {\n return this.editor.undo();\n }\n inputControllerWillPerformRedo() {\n return this.editor.redo();\n }\n inputControllerDidReceiveKeyboardCommand(t) {\n return this.toolbarController.applyKeyboardCommand(t);\n }\n inputControllerDidStartDrag() {\n this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n }\n inputControllerDidReceiveDragOverPoint(t) {\n return this.selectionManager.setLocationRangeFromPointRange(t);\n }\n inputControllerDidCancelDrag() {\n this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n }\n locationRangeDidChange(t) {\n return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !Dt(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n }\n toolbarDidClickButton() {\n if (!this.getLocationRange()) return this.setLocationRange({\n index: 0,\n offset: 0\n });\n }\n toolbarDidInvokeAction(t, e) {\n return this.invokeAction(t, e);\n }\n toolbarDidToggleAttribute(t) {\n if (this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), !this.selectionFrozen) return this.editorElement.focus();\n }\n toolbarDidUpdateAttribute(t, e) {\n if (this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), !this.selectionFrozen) return this.editorElement.focus();\n }\n toolbarDidRemoveAttribute(t) {\n if (this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), !this.selectionFrozen) return this.editorElement.focus();\n }\n toolbarWillShowDialog(t) {\n return this.composition.expandSelectionForEditing(), this.freezeSelection();\n }\n toolbarDidShowDialog(t) {\n return this.notifyEditorElement(\"toolbar-dialog-show\", {\n dialogName: t\n });\n }\n toolbarDidHideDialog(t) {\n return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n dialogName: t\n });\n }\n freezeSelection() {\n if (!this.selectionFrozen) return this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render();\n }\n thawSelection() {\n if (this.selectionFrozen) return this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render();\n }\n canInvokeAction(t) {\n return !!this.actionIsExternal(t) || !(null === (e = this.actions[t]) || void 0 === e || null === (e = e.test) || void 0 === e || !e.call(this));\n var e;\n }\n invokeAction(t, e) {\n return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n actionName: t,\n invokingElement: e\n }) : null === (i = this.actions[t]) || void 0 === i || null === (i = i.perform) || void 0 === i ? void 0 : i.call(this);\n var i;\n }\n actionIsExternal(t) {\n return /^x-./.test(t);\n }\n getCurrentActions() {\n const t = {};\n for (const e in this.actions) t[e] = this.canInvokeAction(e);\n return t;\n }\n updateCurrentActions() {\n const t = this.getCurrentActions();\n if (!Tt(t, this.currentActions)) return this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n actions: this.currentActions\n });\n }\n runEditorFilters() {\n let t = this.composition.getSnapshot();\n if (Array.from(this.editor.filters).forEach(e => {\n const {\n document: i,\n selectedRange: n\n } = t;\n t = e.call(this.editor, t) || {}, t.document || (t.document = i), t.selectedRange || (t.selectedRange = n);\n }), e = t, i = this.composition.getSnapshot(), !Dt(e.selectedRange, i.selectedRange) || !e.document.isEqualTo(i.document)) return this.composition.loadSnapshot(t);\n var e, i;\n }\n updateInputElement() {\n const t = function (t, e) {\n const i = xn[e];\n if (i) return i(t);\n throw new Error(\"unknown content type: \".concat(e));\n }(this.compositionController.getSerializableElement(), \"text/html\");\n return this.editorElement.setFormValue(t);\n }\n notifyEditorElement(t, e) {\n switch (t) {\n case \"document-change\":\n this.documentChangedSinceLastRender = !0;\n break;\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\n return this.editorElement.notify(t, e);\n }\n removeAttachment(t) {\n return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n }\n recordFormattingUndoEntry(t) {\n const e = mt(t),\n i = this.selectionManager.getLocationRange();\n if (e || !Lt(i)) return this.editor.recordUndoEntry(\"Formatting\", {\n context: this.getUndoContext(),\n consolidatable: !0\n });\n }\n recordTypingUndoEntry() {\n return this.editor.recordUndoEntry(\"Typing\", {\n context: this.getUndoContext(this.currentAttributes),\n consolidatable: !0\n });\n }\n getUndoContext() {\n for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i];\n return [this.getLocationContext(), this.getTimeContext(), ...Array.from(e)];\n }\n getLocationContext() {\n const t = this.selectionManager.getLocationRange();\n return Lt(t) ? t[0].index : t;\n }\n getTimeContext() {\n return V.interval > 0 ? Math.floor(new Date().getTime() / V.interval) : 0;\n }\n isFocused() {\n var t;\n return this.editorElement === (null === (t = this.editorElement.ownerDocument) || void 0 === t ? void 0 : t.activeElement);\n }\n isFocusedInvisibly() {\n return this.isFocused() && !this.getLocationRange();\n }\n get actions() {\n return this.constructor.actions;\n }\n}\nwi(Mr, \"actions\", {\n undo: {\n test() {\n return this.editor.canUndo();\n },\n perform() {\n return this.editor.undo();\n }\n },\n redo: {\n test() {\n return this.editor.canRedo();\n },\n perform() {\n return this.editor.redo();\n }\n },\n link: {\n test() {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test() {\n return this.editor.canIncreaseNestingLevel();\n },\n perform() {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test() {\n return this.editor.canDecreaseNestingLevel();\n },\n perform() {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: () => !0,\n perform() {\n return _.pickFiles(this.editor.insertFiles);\n }\n }\n}), Mr.proxyMethod(\"getSelectionManager().setLocationRange\"), Mr.proxyMethod(\"getSelectionManager().getLocationRange\");\nvar Br = Object.freeze({\n __proto__: null,\n AttachmentEditorController: Kn,\n CompositionController: Gn,\n Controller: Yn,\n EditorController: Mr,\n InputController: sr,\n Level0InputController: hr,\n Level2InputController: br,\n ToolbarController: Pr\n }),\n _r = Object.freeze({\n __proto__: null,\n MutationObserver: Qn,\n SelectionChangeObserver: Ot\n }),\n jr = Object.freeze({\n __proto__: null,\n FileVerificationOperation: er,\n ImagePreloadOperation: ji\n });\nvt(\"trix-toolbar\", \"%t {\\n display: block;\\n}\\n\\n%t {\\n white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n background-color: #ffdddd;\\n}\");\nclass Wr extends HTMLElement {\n connectedCallback() {\n \"\" === this.innerHTML && (this.innerHTML = U.getDefaultHTML());\n }\n}\nlet Ur = 0;\nconst Vr = function (t) {\n if (!t.hasAttribute(\"contenteditable\")) return t.setAttribute(\"contenteditable\", \"\"), function (t) {\n let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n return e.times = 1, b(t, e);\n }(\"focus\", {\n onElement: t,\n withCallback: () => zr(t)\n });\n },\n zr = function (t) {\n return qr(t), Hr(t);\n },\n qr = function (t) {\n var e, i;\n if (null !== (e = (i = document).queryCommandSupported) && void 0 !== e && e.call(i, \"enableObjectResizing\")) return document.execCommand(\"enableObjectResizing\", !1, !1), b(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n });\n },\n Hr = function (t) {\n var e, i;\n if (null !== (e = (i = document).queryCommandSupported) && void 0 !== e && e.call(i, \"DefaultParagraphSeparator\")) {\n const {\n tagName: t\n } = n.default;\n if ([\"div\", \"p\"].includes(t)) return document.execCommand(\"DefaultParagraphSeparator\", !1, t);\n }\n },\n Jr = a.forcesObjectResizing ? {\n display: \"inline\",\n width: \"auto\"\n } : {\n display: \"inline-block\",\n width: \"1px\"\n };\nvt(\"trix-editor\", \"%t {\\n display: block;\\n}\\n\\n%t:empty::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n pointer-events: none;\\n white-space: pre-line;\\n}\\n\\n%t a[contenteditable=false] {\\n cursor: text;\\n}\\n\\n%t img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n%t \".concat(e, \" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \").concat(e, \" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \").concat(e, \" figcaption[data-trix-placeholder]:empty::before {\\n content: attr(data-trix-placeholder);\\n color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n display: \").concat(Jr.display, \" !important;\\n width: \").concat(Jr.width, \" !important;\\n padding: 0 !important;\\n margin: 0 !important;\\n border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n vertical-align: top !important;\\n margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n vertical-align: bottom !important;\\n margin-right: -1px !important;\\n}\"));\nvar Kr = new WeakMap(),\n Gr = new WeakSet();\nclass Yr {\n constructor(t) {\n var e, i;\n Mi(e = this, i = Gr), i.add(e), Bi(this, Kr, {\n writable: !0,\n value: void 0\n }), this.element = t, Ni(this, Kr, t.attachInternals());\n }\n connectedCallback() {\n Pi(this, Gr, $r).call(this);\n }\n disconnectedCallback() {}\n get labels() {\n return Di(this, Kr).labels;\n }\n get disabled() {\n var t;\n return null === (t = this.element.inputElement) || void 0 === t ? void 0 : t.disabled;\n }\n set disabled(t) {\n this.element.toggleAttribute(\"disabled\", t);\n }\n get required() {\n return this.element.hasAttribute(\"required\");\n }\n set required(t) {\n this.element.toggleAttribute(\"required\", t), Pi(this, Gr, $r).call(this);\n }\n get validity() {\n return Di(this, Kr).validity;\n }\n get validationMessage() {\n return Di(this, Kr).validationMessage;\n }\n get willValidate() {\n return Di(this, Kr).willValidate;\n }\n setFormValue(t) {\n Pi(this, Gr, $r).call(this);\n }\n checkValidity() {\n return Di(this, Kr).checkValidity();\n }\n reportValidity() {\n return Di(this, Kr).reportValidity();\n }\n setCustomValidity(t) {\n Pi(this, Gr, $r).call(this, t);\n }\n}\nfunction $r() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"\";\n const {\n required: e,\n value: i\n } = this.element,\n n = e && !i,\n r = !!t,\n o = T(\"input\", {\n required: e\n }),\n s = t || o.validationMessage;\n Di(this, Kr).setValidity({\n valueMissing: n,\n customError: r\n }, s);\n}\nvar Xr = new WeakMap(),\n Zr = new WeakMap(),\n Qr = new WeakMap();\nclass to {\n constructor(t) {\n Bi(this, Xr, {\n writable: !0,\n value: void 0\n }), Bi(this, Zr, {\n writable: !0,\n value: t => {\n t.defaultPrevented || t.target === this.element.form && this.element.reset();\n }\n }), Bi(this, Qr, {\n writable: !0,\n value: t => {\n if (t.defaultPrevented) return;\n if (this.element.contains(t.target)) return;\n const e = y(t.target, {\n matchingSelector: \"label\"\n });\n e && Array.from(this.labels).includes(e) && this.element.focus();\n }\n }), this.element = t;\n }\n connectedCallback() {\n Ni(this, Xr, function (t) {\n if (t.hasAttribute(\"aria-label\") || t.hasAttribute(\"aria-labelledby\")) return;\n const e = function () {\n const e = Array.from(t.labels).map(e => {\n if (!e.contains(t)) return e.textContent;\n }).filter(t => t),\n i = e.join(\" \");\n return i ? t.setAttribute(\"aria-label\", i) : t.removeAttribute(\"aria-label\");\n };\n return e(), b(\"focus\", {\n onElement: t,\n withCallback: e\n });\n }(this.element)), window.addEventListener(\"reset\", Di(this, Zr), !1), window.addEventListener(\"click\", Di(this, Qr), !1);\n }\n disconnectedCallback() {\n var t;\n null === (t = Di(this, Xr)) || void 0 === t || t.destroy(), window.removeEventListener(\"reset\", Di(this, Zr), !1), window.removeEventListener(\"click\", Di(this, Qr), !1);\n }\n get labels() {\n const t = [];\n this.element.id && this.element.ownerDocument && t.push(...Array.from(this.element.ownerDocument.querySelectorAll(\"label[for='\".concat(this.element.id, \"']\")) || []));\n const e = y(this.element, {\n matchingSelector: \"label\"\n });\n return e && [this.element, null].includes(e.control) && t.push(e), t;\n }\n get disabled() {\n return console.warn(\"This browser does not support the [disabled] attribute for trix-editor elements.\"), !1;\n }\n set disabled(t) {\n console.warn(\"This browser does not support the [disabled] attribute for trix-editor elements.\");\n }\n get required() {\n return console.warn(\"This browser does not support the [required] attribute for trix-editor elements.\"), !1;\n }\n set required(t) {\n console.warn(\"This browser does not support the [required] attribute for trix-editor elements.\");\n }\n get validity() {\n return console.warn(\"This browser does not support the validity property for trix-editor elements.\"), null;\n }\n get validationMessage() {\n return console.warn(\"This browser does not support the validationMessage property for trix-editor elements.\"), \"\";\n }\n get willValidate() {\n return console.warn(\"This browser does not support the willValidate property for trix-editor elements.\"), !1;\n }\n setFormValue(t) {}\n checkValidity() {\n return console.warn(\"This browser does not support checkValidity() for trix-editor elements.\"), !0;\n }\n reportValidity() {\n return console.warn(\"This browser does not support reportValidity() for trix-editor elements.\"), !0;\n }\n setCustomValidity(t) {\n console.warn(\"This browser does not support setCustomValidity(validationMessage) for trix-editor elements.\");\n }\n}\nvar eo = new WeakMap();\nclass io extends HTMLElement {\n constructor() {\n super(), Bi(this, eo, {\n writable: !0,\n value: void 0\n }), Ni(this, eo, this.constructor.formAssociated ? new Yr(this) : new to(this));\n }\n get trixId() {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++Ur), this.trixId);\n }\n get labels() {\n return Di(this, eo).labels;\n }\n get disabled() {\n return Di(this, eo).disabled;\n }\n set disabled(t) {\n Di(this, eo).disabled = t;\n }\n get required() {\n return Di(this, eo).required;\n }\n set required(t) {\n Di(this, eo).required = t;\n }\n get validity() {\n return Di(this, eo).validity;\n }\n get validationMessage() {\n return Di(this, eo).validationMessage;\n }\n get willValidate() {\n return Di(this, eo).willValidate;\n }\n get type() {\n return this.localName;\n }\n get toolbarElement() {\n var t;\n if (this.hasAttribute(\"toolbar\")) return null === (t = this.ownerDocument) || void 0 === t ? void 0 : t.getElementById(this.getAttribute(\"toolbar\"));\n if (this.parentNode) {\n const t = \"trix-toolbar-\".concat(this.trixId);\n this.setAttribute(\"toolbar\", t);\n const e = T(\"trix-toolbar\", {\n id: t\n });\n return this.parentNode.insertBefore(e, this), e;\n }\n }\n get form() {\n var t;\n return null === (t = this.inputElement) || void 0 === t ? void 0 : t.form;\n }\n get inputElement() {\n var t;\n if (this.hasAttribute(\"input\")) return null === (t = this.ownerDocument) || void 0 === t ? void 0 : t.getElementById(this.getAttribute(\"input\"));\n if (this.parentNode) {\n const t = \"trix-input-\".concat(this.trixId);\n this.setAttribute(\"input\", t);\n const e = T(\"input\", {\n type: \"hidden\",\n id: t\n });\n return this.parentNode.insertBefore(e, this.nextElementSibling), e;\n }\n }\n get editor() {\n var t;\n return null === (t = this.editorController) || void 0 === t ? void 0 : t.editor;\n }\n get name() {\n var t;\n return null === (t = this.inputElement) || void 0 === t ? void 0 : t.name;\n }\n get value() {\n var t;\n return null === (t = this.inputElement) || void 0 === t ? void 0 : t.value;\n }\n set value(t) {\n var e;\n this.defaultValue = t, null === (e = this.editor) || void 0 === e || e.loadHTML(this.defaultValue);\n }\n notify(t, e) {\n if (this.editorController) return v(\"trix-\".concat(t), {\n onElement: this,\n attributes: e\n });\n }\n setFormValue(t) {\n this.inputElement && (this.inputElement.value = t, Di(this, eo).setFormValue(t));\n }\n connectedCallback() {\n this.hasAttribute(\"data-trix-internal\") || (Vr(this), function (t) {\n if (!t.hasAttribute(\"role\")) t.setAttribute(\"role\", \"textbox\");\n }(this), this.editorController || (v(\"trix-before-initialize\", {\n onElement: this\n }), this.editorController = new Mr({\n editorElement: this,\n html: this.defaultValue = this.value\n }), requestAnimationFrame(() => v(\"trix-initialize\", {\n onElement: this\n }))), this.editorController.registerSelectionManager(), Di(this, eo).connectedCallback(), function (t) {\n if (!document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t) t.focus();\n }(this));\n }\n disconnectedCallback() {\n var t;\n null === (t = this.editorController) || void 0 === t || t.unregisterSelectionManager(), Di(this, eo).disconnectedCallback();\n }\n checkValidity() {\n return Di(this, eo).checkValidity();\n }\n reportValidity() {\n return Di(this, eo).reportValidity();\n }\n setCustomValidity(t) {\n Di(this, eo).setCustomValidity(t);\n }\n formDisabledCallback(t) {\n this.inputElement && (this.inputElement.disabled = t), this.toggleAttribute(\"contenteditable\", !t);\n }\n formResetCallback() {\n this.reset();\n }\n reset() {\n this.value = this.defaultValue;\n }\n}\nwi(io, \"formAssociated\", \"ElementInternals\" in window);\nconst no = {\n VERSION: t,\n config: z,\n core: Cn,\n models: Un,\n views: Vn,\n controllers: Br,\n observers: _r,\n operations: jr,\n elements: Object.freeze({\n __proto__: null,\n TrixEditorElement: io,\n TrixToolbarElement: Wr\n }),\n filters: Object.freeze({\n __proto__: null,\n Filter: Dn,\n attachmentGalleryFilter: Nn\n })\n};\nObject.assign(no, Un), window.Trix = no, setTimeout(function () {\n customElements.get(\"trix-toolbar\") || customElements.define(\"trix-toolbar\", Wr), customElements.get(\"trix-editor\") || customElements.define(\"trix-editor\", io);\n}, 0);\nexport { no as default };","var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nvar activestorage = {\n exports: {}\n};\n(function (module, exports) {\n (function (global, factory) {\n factory(exports);\n })(commonjsGlobal, function (exports) {\n var sparkMd5 = {\n exports: {}\n };\n (function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined$1) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = \"\",\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join(\"\");\n }\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n if (to !== undefined$1) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n function SparkMD5() {\n this.reset();\n }\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n });\n })(sparkMd5);\n var SparkMD5 = sparkMd5.exports;\n const fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n class FileChecksum {\n static create(file, callback) {\n const instance = new FileChecksum(file);\n instance.create(callback);\n }\n constructor(file) {\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n create(callback) {\n this.callback = callback;\n this.md5Buffer = new SparkMD5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", event => this.fileReaderDidLoad(event));\n this.fileReader.addEventListener(\"error\", event => this.fileReaderDidError(event));\n this.readNextChunk();\n }\n fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n const binaryDigest = this.md5Buffer.end(true);\n const base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n fileReaderDidError(event) {\n this.callback(`Error reading ${this.file.name}`);\n }\n readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n const start = this.chunkIndex * this.chunkSize;\n const end = Math.min(start + this.chunkSize, this.file.size);\n const bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }\n function getMetaValue(name) {\n const element = findElement(document.head, `meta[name=\"${name}\"]`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n const elements = root.querySelectorAll(selector);\n return toArray(elements);\n }\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n }\n function dispatchEvent(element, type) {\n let eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const {\n disabled: disabled\n } = element;\n const {\n bubbles: bubbles,\n cancelable: cancelable,\n detail: detail\n } = eventInit;\n const event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n }\n function toArray(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n class BlobRecord {\n constructor(file, checksum, url) {\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n const csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", event => this.requestDidLoad(event));\n this.xhr.addEventListener(\"error\", event => this.requestDidError(event));\n }\n get status() {\n return this.xhr.status;\n }\n get response() {\n const {\n responseType: responseType,\n response: response\n } = this.xhr;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n const {\n response: response\n } = this;\n const {\n direct_upload: direct_upload\n } = response;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n requestDidError(event) {\n this.callback(`Error creating Blob for \"${this.file.name}\". Status: ${this.status}`);\n }\n toJSON() {\n const result = {};\n for (const key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n }\n class BlobUpload {\n constructor(blob) {\n this.blob = blob;\n this.file = blob.file;\n const {\n url: url,\n headers: headers\n } = blob.directUploadData;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (const key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", event => this.requestDidLoad(event));\n this.xhr.addEventListener(\"error\", event => this.requestDidError(event));\n }\n create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n requestDidLoad(event) {\n const {\n status: status,\n response: response\n } = this.xhr;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n requestDidError(event) {\n this.callback(`Error storing \"${this.file.name}\". Status: ${this.xhr.status}`);\n }\n }\n let id = 0;\n class DirectUpload {\n constructor(file, url, delegate) {\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n create(callback) {\n FileChecksum.create(this.file, (error, checksum) => {\n if (error) {\n callback(error);\n return;\n }\n const blob = new BlobRecord(this.file, checksum, this.url);\n notify(this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(error => {\n if (error) {\n callback(error);\n } else {\n const upload = new BlobUpload(blob);\n notify(this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(error => {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n return object[methodName](...messages);\n }\n }\n class DirectUploadController {\n constructor(input, file) {\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n start(callback) {\n const hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create((error, attributes) => {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n this.dispatch(\"end\");\n callback(error);\n });\n }\n uploadRequestDidProgress(event) {\n const progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n get url() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n dispatch(name) {\n let detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, `direct-upload:${name}`, {\n detail: detail\n });\n }\n dispatchError(error) {\n const event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n directUploadWillStoreFileWithXHR(xhr) {\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", event => this.uploadRequestDidProgress(event));\n }\n }\n const inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n class DirectUploadsController {\n constructor(form) {\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(input => input.files.length);\n }\n start(callback) {\n const controllers = this.createDirectUploadControllers();\n const startNextController = () => {\n const controller = controllers.shift();\n if (controller) {\n controller.start(error => {\n if (error) {\n callback(error);\n this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n this.dispatch(\"end\");\n }\n };\n this.dispatch(\"start\");\n startNextController();\n }\n createDirectUploadControllers() {\n const controllers = [];\n this.inputs.forEach(input => {\n toArray(input.files).forEach(file => {\n const controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n dispatch(name) {\n let detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, `direct-uploads:${name}`, {\n detail: detail\n });\n }\n }\n const processingAttribute = \"data-direct-uploads-processing\";\n const submitButtonsByForm = new WeakMap();\n let started = false;\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm, true);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n function didClick(event) {\n const {\n target: target\n } = event;\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n function handleFormSubmissionEvent(event) {\n const form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n const controller = new DirectUploadsController(form);\n const {\n inputs: inputs\n } = controller;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(error => {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n function submitForm(form) {\n let button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n const {\n disabled: disabled\n } = button;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n submitButtonsByForm.delete(form);\n }\n function disable(input) {\n input.disabled = true;\n }\n function enable(input) {\n input.disabled = false;\n }\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n setTimeout(autostart, 1);\n exports.DirectUpload = DirectUpload;\n exports.start = start;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n });\n})(activestorage, activestorage.exports);\nclass AttachmentUpload {\n constructor(attachment, element) {\n this.attachment = attachment;\n this.element = element;\n this.directUpload = new activestorage.exports.DirectUpload(attachment.file, this.directUploadUrl, this);\n }\n start() {\n this.directUpload.create(this.directUploadDidComplete.bind(this));\n }\n directUploadWillStoreFileWithXHR(xhr) {\n xhr.upload.addEventListener(\"progress\", event => {\n const progress = event.loaded / event.total * 100;\n this.attachment.setUploadProgress(progress);\n });\n }\n directUploadDidComplete(error, attributes) {\n if (error) {\n throw new Error(`Direct upload failed: ${error}`);\n }\n this.attachment.setAttributes({\n sgid: attributes.attachable_sgid,\n url: this.createBlobUrl(attributes.signed_id, attributes.filename)\n });\n }\n createBlobUrl(signedId, filename) {\n return this.blobUrlTemplate.replace(\":signed_id\", signedId).replace(\":filename\", encodeURIComponent(filename));\n }\n get directUploadUrl() {\n return this.element.dataset.directUploadUrl;\n }\n get blobUrlTemplate() {\n return this.element.dataset.blobUrlTemplate;\n }\n}\naddEventListener(\"trix-attachment-add\", event => {\n const {\n attachment,\n target\n } = event;\n if (attachment.file) {\n const upload = new AttachmentUpload(attachment, target);\n upload.start();\n }\n});","function getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'x' : 'y';\n}\nfunction getLengthFromAxis(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n const commonAlign = reference[length] / 2 - floating[length] / 2;\n const side = getSide(placement);\n const isVertical = mainAxis === 'x';\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[mainAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[mainAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain positioning strategy.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\n\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n if (process.env.NODE_ENV !== \"production\") {\n if (platform == null) {\n console.error(['Floating UI: `platform` property was not passed to config. If you', 'want to use Floating UI on the web, install @floating-ui/dom', 'instead of the /core package. Otherwise, you can create your own', '`platform`: https://floating-ui.com/docs/platform'].join(' '));\n }\n if (middleware.filter(_ref => {\n let {\n name\n } = _ref;\n return name === 'autoPlacement' || name === 'flip';\n }).length > 1) {\n throw new Error(['Floating UI: duplicate `flip` and/or `autoPlacement`', 'middleware detected. This will lead to an infinite loop. Ensure only', 'one of either has been passed to the `middleware` array.'].join(' '));\n }\n }\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let _debug_loop_count_ = 0;\n for (let i = 0; i < middleware.length; i++) {\n if (process.env.NODE_ENV !== \"production\") {\n _debug_loop_count_++;\n if (_debug_loop_count_ > 100) {\n throw new Error(['Floating UI: The middleware lifecycle appears to be', 'running in an infinite loop. This is usually caused by a `reset`', 'continually being returned without a break condition.'].join(' '));\n }\n }\n const {\n name,\n fn\n } = middleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset) {\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n continue;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getSideObjectFromPadding(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(middlewareArguments, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = middlewareArguments;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = options;\n const paddingObject = getSideObjectFromPadding(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: elementContext === 'floating' ? {\n ...rects.floating,\n x,\n y\n } : rects.reference,\n offsetParent: await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)),\n strategy\n }) : rects[elementContext]); // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n return {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n}\nconst min = Math.min;\nconst max = Math.max;\nfunction within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n}\n\n/**\n * Positions an inner element of the floating element such that it is centered\n * to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(middlewareArguments) {\n // Since `element` is required, we don't Partial<> the type\n const {\n element,\n padding = 0\n } = options != null ? options : {};\n const {\n x,\n y,\n placement,\n rects,\n platform\n } = middlewareArguments;\n if (element == null) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn('Floating UI: No `element` was passed to the `arrow` middleware.');\n }\n return {};\n }\n const paddingObject = getSideObjectFromPadding(padding);\n const coords = {\n x,\n y\n };\n const axis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const minProp = axis === 'y' ? 'top' : 'left';\n const maxProp = axis === 'y' ? 'bottom' : 'right';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n const clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n const centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside of the floating element's bounds\n\n const min = paddingObject[minProp];\n const max = clientSize - arrowDimensions[length] - paddingObject[maxProp];\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = within(min, center, max);\n return {\n data: {\n [axis]: offset,\n centerOffset: center - offset\n }\n };\n }\n});\nconst hash$1 = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, matched => hash$1[matched]);\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n let mainAlignmentSide = mainAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return {\n main: mainAlignmentSide,\n cross: getOppositePlacement(mainAlignmentSide)\n };\n}\nconst hash = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, matched => hash[matched]);\n}\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst allPlacements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-start\", side + \"-end\"), []);\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n\n/**\n * Automatically chooses the `placement` which has the most space available.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(middlewareArguments) {\n var _middlewareData$autoP, _middlewareData$autoP2, _middlewareData$autoP3, _middlewareData$autoP4, _placementsSortedByLe;\n const {\n x,\n y,\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = middlewareArguments;\n const {\n alignment = null,\n allowedPlacements = allPlacements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = options;\n const placements = getPlacementList(alignment, autoAlignment, allowedPlacements);\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const currentIndex = (_middlewareData$autoP = (_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.index) != null ? _middlewareData$autoP : 0;\n const currentPlacement = placements[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const {\n main,\n cross\n } = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))); // Make `computeCoords` start from the right place\n\n if (placement !== currentPlacement) {\n return {\n x,\n y,\n reset: {\n placement: placements[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[main], overflow[cross]];\n const allOverflows = [...((_middlewareData$autoP3 = (_middlewareData$autoP4 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP4.overflows) != null ? _middlewareData$autoP3 : []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements[currentIndex + 1]; // There are more placements to check\n\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByLeastOverflow = allOverflows.slice().sort((a, b) => a.overflows[0] - b.overflows[0]);\n const placementThatFitsOnAllSides = (_placementsSortedByLe = placementsSortedByLeastOverflow.find(_ref => {\n let {\n overflows\n } = _ref;\n return overflows.every(overflow => overflow <= 0);\n })) == null ? void 0 : _placementsSortedByLe.placement;\n const resetPlacement = placementThatFitsOnAllSides != null ? placementThatFitsOnAllSides : placementsSortedByLeastOverflow[0].placement;\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\n\n/**\n * Changes the placement of the floating element to one that will fit if the\n * initially specified `placement` does not.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(middlewareArguments) {\n var _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = middlewareArguments;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n flipAlignment = true,\n ...detectOverflowOptions\n } = options;\n const side = getSide(placement);\n const isBasePlacement = side === initialPlacement;\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const {\n main,\n cross\n } = getAlignmentSides(placement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n overflows.push(overflow[main], overflow[cross]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }]; // One or more sides is overflowing\n\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip$, _middlewareData$flip2;\n const nextIndex = ((_middlewareData$flip$ = (_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) != null ? _middlewareData$flip$ : 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n let resetPlacement = 'bottom';\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0].placement;\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (_temp) {\n let {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = _temp === void 0 ? {} : _temp;\n return {\n name: 'hide',\n async fn(middlewareArguments) {\n const {\n rects\n } = middlewareArguments;\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(middlewareArguments, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(middlewareArguments, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\nfunction convertValueToCoords(placement, rects, value, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getMainAxisFromPlacement(placement) === 'x';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = typeof value === 'function' ? value({\n ...rects,\n placement\n }) : value; // eslint-disable-next-line prefer-const\n\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n/**\n * Displaces the floating element from its reference element.\n * @see https://floating-ui.com/docs/offset\n */\n\nconst offset = function (value) {\n if (value === void 0) {\n value = 0;\n }\n return {\n name: 'offset',\n options: value,\n async fn(middlewareArguments) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements\n } = middlewareArguments;\n const diffCoords = convertValueToCoords(placement, rects, value, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n };\n};\nfunction getCrossAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\n/**\n * Shifts the floating element in order to keep it in view when it will overflow\n * a clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(middlewareArguments) {\n const {\n x,\n y,\n placement\n } = middlewareArguments;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = options;\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const mainAxis = getMainAxisFromPlacement(getSide(placement));\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = within(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = within(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...middlewareArguments,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(middlewareArguments) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = middlewareArguments;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = options;\n const coords = {\n x,\n y\n };\n const mainAxis = getMainAxisFromPlacement(placement);\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = typeof offset === 'function' ? offset({\n ...rects,\n placement\n }) : offset;\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2, _middlewareData$offse3, _middlewareData$offse4;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? (_middlewareData$offse = (_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) != null ? _middlewareData$offse : 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : (_middlewareData$offse3 = (_middlewareData$offse4 = middlewareData.offset) == null ? void 0 : _middlewareData$offse4[crossAxis]) != null ? _middlewareData$offse3 : 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data to change the size of the floating element. For instance,\n * prevent it from overflowing its clipping boundary or match the width of the\n * reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(middlewareArguments) {\n const {\n placement,\n rects,\n platform,\n elements\n } = middlewareArguments;\n const {\n apply,\n ...detectOverflowOptions\n } = options;\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n const dimensions = {\n height: rects.floating.height - (['left', 'right'].includes(placement) ? 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom)) : overflow[heightSide]),\n width: rects.floating.width - (['top', 'bottom'].includes(placement) ? 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right)) : overflow[widthSide])\n };\n const prevDimensions = await platform.getDimensions(elements.floating);\n apply == null ? void 0 : apply({\n ...dimensions,\n ...rects\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (prevDimensions.width !== nextDimensions.width || prevDimensions.height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(middlewareArguments) {\n var _await$platform$getCl;\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = middlewareArguments; // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n\n const {\n padding = 2,\n x,\n y\n } = options;\n const fallback = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: rects.reference,\n offsetParent: await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)),\n strategy\n }) : rects.reference);\n const clientRects = (_await$platform$getCl = await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) != null ? _await$platform$getCl : [];\n const paddingObject = getSideObjectFromPadding(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n var _clientRects$find;\n\n // Find the first rect in which the point is fully inside\n return (_clientRects$find = clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom)) != null ? _clientRects$find : fallback;\n } // There are 2 or more connected rects\n\n if (clientRects.length >= 2) {\n if (getMainAxisFromPlacement(placement) === 'x') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, rectToClientRect, shift, size };","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\nfunction isWindow(value) {\n return value && value.document && value.location && value.alert && value.setInterval;\n}\nfunction getWindow(node) {\n if (node == null) {\n return window;\n }\n if (!isWindow(node)) {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n return node;\n}\nfunction getComputedStyle$1(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeName(node) {\n return isWindow(node) ? '' : node ? (node.nodeName || '').toLowerCase() : '';\n}\nfunction isHTMLElement(value) {\n return value instanceof getWindow(value).HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof getWindow(value).Element;\n}\nfunction isNode(value) {\n return value instanceof getWindow(value).Node;\n}\nfunction isShadowRoot(node) {\n // Browsers without `ShadowRoot` support\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\nfunction isOverflowElement(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n const {\n overflow,\n overflowX,\n overflowY\n } = getComputedStyle$1(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n // TODO: Try and use feature detection here instead\n const isFirefox = navigator.userAgent.toLowerCase().includes('firefox');\n const css = getComputedStyle$1(element); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n return css.transform !== 'none' || css.perspective !== 'none' ||\n // @ts-ignore (TS 4.1 compat)\n css.contain === 'paint' || ['transform', 'perspective'].includes(css.willChange) || isFirefox && css.willChange === 'filter' || isFirefox && (css.filter ? css.filter !== 'none' : false);\n}\nfunction isLayoutViewport() {\n // Not Safari\n return !/^((?!chrome|android).)*safari/i.test(navigator.userAgent); // Feature detection for this fails in various ways\n // • Always-visible scrollbar or not\n // • Width of <html>, etc.\n // const vV = win.visualViewport;\n // return vV ? Math.abs(win.innerWidth / vV.scale - vV.width) < 0.5 : true;\n}\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy) {\n var _win$visualViewport$o, _win$visualViewport, _win$visualViewport$o2, _win$visualViewport2;\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n const win = isElement(element) ? getWindow(element) : window;\n const addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n const x = (clientRect.left + (addVisualOffsets ? (_win$visualViewport$o = (_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) != null ? _win$visualViewport$o : 0 : 0)) / scaleX;\n const y = (clientRect.top + (addVisualOffsets ? (_win$visualViewport$o2 = (_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) != null ? _win$visualViewport$o2 : 0 : 0)) / scaleY;\n const width = clientRect.width / scaleX;\n const height = clientRect.height / scaleY;\n return {\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x,\n y\n };\n}\nfunction getDocumentElement(node) {\n return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\nfunction isScaled(element) {\n const rect = getBoundingClientRect(element);\n return round(rect.width) !== element.offsetWidth || round(rect.height) !== element.offsetHeight;\n}\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(element,\n // @ts-ignore - checked above (TS 4.1 compat)\n isOffsetParentAnElement && isScaled(offsetParent), strategy === 'fixed');\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n return (\n // this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // @ts-ignore\n node.assignedSlot ||\n // step into the shadow DOM of the parent of a slotted node\n node.parentNode || (\n // DOM Element detected\n isShadowRoot(node) ? node.host : null) ||\n // ShadowRoot detected\n getDocumentElement(node) // fallback\n );\n}\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n return element.offsetParent;\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n while (isHTMLElement(currentNode) && !['html', 'body'].includes(getNodeName(currentNode))) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\nfunction getOffsetParent(element) {\n const window = getWindow(element);\n let offsetParent = getTrueOffsetParent(element);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\nfunction getDimensions(element) {\n if (isHTMLElement(element)) {\n return {\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n }\n const rect = getBoundingClientRect(element);\n return {\n width: rect.width,\n height: rect.height\n };\n}\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } // This doesn't appear to be need to be negated.\n // else if (documentElement) {\n // offsets.x = getWindowScrollBarX(documentElement);\n // }\n }\n return {\n ...rect,\n x: rect.x - scroll.scrollLeft + offsets.x,\n y: rect.y - scroll.scrollTop + offsets.y\n };\n}\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const layoutViewport = isLayoutViewport();\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nfunction getDocumentRect(element) {\n var _element$ownerDocumen;\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n const width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n const height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (['html', 'body', '#document'].includes(getNodeName(parentNode))) {\n // @ts-ignore assume body is always available\n return node.ownerDocument.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list) {\n var _node$ownerDocument;\n if (list === void 0) {\n list = [];\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);\n const win = getWindow(scrollableAncestor);\n const target = isBody ? [win].concat(win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []) : scrollableAncestor;\n const updatedList = list.concat(target);\n return isBody ? updatedList :\n // @ts-ignore: isBody tells us target will be an HTMLElement here\n updatedList.concat(getOverflowAncestors(target));\n}\nfunction contains(parent, child) {\n const rootNode = child == null ? void 0 : child.getRootNode == null ? void 0 : child.getRootNode(); // First, attempt with faster native method\n\n if (parent != null && parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n // use `===` replace node.isSameNode()\n if (next && parent === next) {\n return true;\n } // @ts-ignore: need a better way to handle this...\n\n next = next.parentNode || next.host;\n } while (next);\n }\n return false;\n}\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, false, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n return {\n top,\n left,\n x: left,\n y: top,\n right: left + element.clientWidth,\n bottom: top + element.clientHeight,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingParent, strategy) {\n if (clippingParent === 'viewport') {\n return rectToClientRect(getViewportRect(element, strategy));\n }\n if (isElement(clippingParent)) {\n return getInnerBoundingClientRect(clippingParent, strategy);\n }\n return rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping ancestor\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\nfunction getClippingAncestors(element) {\n const clippingAncestors = getOverflowAncestors(element);\n const canEscapeClipping = ['absolute', 'fixed'].includes(getComputedStyle$1(element).position);\n const clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n if (!isElement(clipperElement)) {\n return [];\n } // @ts-ignore isElement check ensures we return Array<Element>\n\n return clippingAncestors.filter(clippingAncestors => isElement(clippingAncestors) && contains(clippingAncestors, clipperElement) && getNodeName(clippingAncestors) !== 'body');\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors\n\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const mainClippingAncestors = boundary === 'clippingAncestors' ? getClippingAncestors(element) : [].concat(boundary);\n const clippingAncestors = [...mainClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\nconst platform = {\n getClippingRect,\n convertOffsetParentRelativeRectToViewportRelativeRect,\n isElement,\n getDimensions,\n getOffsetParent,\n getDocumentElement,\n getElementRects: _ref => {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n return {\n reference: getRectRelativeToOffsetParent(reference, getOffsetParent(floating), strategy),\n floating: {\n ...getDimensions(floating),\n x: 0,\n y: 0\n }\n };\n },\n getClientRects: element => Array.from(element.getClientRects()),\n isRTL: element => getComputedStyle$1(element).direction === 'rtl'\n};\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll: _ancestorScroll = true,\n ancestorResize: _ancestorResize = true,\n elementResize: _elementResize = true,\n animationFrame = false\n } = options;\n let cleanedUp = false;\n const ancestorScroll = _ancestorScroll && !animationFrame;\n const ancestorResize = _ancestorResize && !animationFrame;\n const elementResize = _elementResize && !animationFrame;\n const ancestors = ancestorScroll || ancestorResize ? [...(isElement(reference) ? getOverflowAncestors(reference) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n let observer = null;\n if (elementResize) {\n observer = new ResizeObserver(update);\n isElement(reference) && observer.observe(reference);\n observer.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n if (cleanedUp) {\n return;\n }\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n return () => {\n var _observer;\n cleanedUp = true;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n (_observer = observer) == null ? void 0 : _observer.disconnect();\n observer = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\n\nconst computePosition = (reference, floating, options) => computePosition$1(reference, floating, {\n platform,\n ...options\n});\nexport { autoUpdate, computePosition, getOverflowAncestors };","import {computePosition,\n shift,\n offset,\n autoUpdate\n } from '@floating-ui/dom'\n\ndocument.addEventListener('turbolinks:load', () => {\n const account_button = document.querySelector('#account-button')\n // Note: if account_button or menu is null, the call to autoUpdate generates an error. So, any page where\n // current_user is not set.\n if (! account_button) { return }\n\n const menu = document.querySelector('#account-menu')\n const mobile_nav = document.querySelector('#js-navigation-menu')\n\n async function update() {\n const placement = window.getComputedStyle(account_button).display == 'block' ? 'top-end' : 'bottom-end'\n computePosition(account_button, menu, {\n placement: placement,\n middleware: [offset(6), shift({padding: 20})]\n }).then(({x, y}) => {\n Object.assign(menu.style, {\n left: `${x}px`,\n top: `${y}px`,\n })\n })\n }\n\n const cleanup = autoUpdate(account_button, menu, update, { elementResize: false })\n\n function toggleAccountMenu(event) {\n event.preventDefault()\n\n if (menu.style.display == 'none' || menu.style.display == '') {\n autoUpdate(account_button, menu, update)\n menu.style.display = 'block'\n document.addEventListener('mousedown', e => {\n if ( ! (e.target.closest('#account-menu') || e.target.closest('#account-button'))) {\n menu.style.display = 'none'\n cleanup()\n }\n }, { once: true } )\n } else {\n menu.style.display = 'none'\n cleanup()\n }\n }\n\n const accountButton = document.getElementById('account-button');\n if (accountButton) {\n accountButton.removeEventListener('click', toggleAccountMenu);\n accountButton.addEventListener('click', toggleAccountMenu);\n }\n})\n","import uniq from \"lodash/uniq\";\nexport const defaultLocaleResolver = (i18n, locale) => {\n const locales = [];\n const list = [];\n locales.push(locale);\n if (!locale) {\n locales.push(i18n.locale);\n }\n if (i18n.enableFallback) {\n locales.push(i18n.defaultLocale);\n }\n locales.filter(Boolean).map(entry => entry.toString()).forEach(function (currentLocale) {\n if (!list.includes(currentLocale)) {\n list.push(currentLocale);\n }\n if (!i18n.enableFallback) {\n return;\n }\n const codes = currentLocale.split(\"-\");\n if (codes.length === 3) {\n list.push(`${codes[0]}-${codes[1]}`);\n }\n list.push(codes[0]);\n });\n return uniq(list);\n};\nexport class Locales {\n constructor(i18n) {\n this.i18n = i18n;\n this.registry = {};\n this.register(\"default\", defaultLocaleResolver);\n }\n register(locale, localeResolver) {\n if (typeof localeResolver !== \"function\") {\n const result = localeResolver;\n localeResolver = () => result;\n }\n this.registry[locale] = localeResolver;\n }\n get(locale) {\n let locales = this.registry[locale] || this.registry[this.i18n.locale] || this.registry.default;\n if (typeof locales === \"function\") {\n locales = locales(this.i18n, locale);\n }\n if (!(locales instanceof Array)) {\n locales = [locales];\n }\n return locales;\n }\n}","import { en } from \"make-plural\";\nexport function useMakePlural(_ref) {\n let {\n pluralizer,\n includeZero = true,\n ordinal = false\n } = _ref;\n return function (_i18n, count) {\n return [includeZero && count === 0 ? \"zero\" : \"\", pluralizer(count, ordinal)].filter(Boolean);\n };\n}\nexport const defaultPluralizer = useMakePlural({\n pluralizer: en,\n includeZero: true\n});\nexport class Pluralization {\n constructor(i18n) {\n this.i18n = i18n;\n this.registry = {};\n this.register(\"default\", defaultPluralizer);\n }\n register(locale, pluralizer) {\n this.registry[locale] = pluralizer;\n }\n get(locale) {\n return this.registry[locale] || this.registry[this.i18n.locale] || this.registry[\"default\"];\n }\n}","const a = (n, ord) => {\n if (ord) return 'other';\n return n == 1 ? 'one' : 'other';\n};\nconst b = (n, ord) => {\n if (ord) return 'other';\n return n == 0 || n == 1 ? 'one' : 'other';\n};\nconst c = (n, ord) => {\n if (ord) return 'other';\n return n >= 0 && n <= 1 ? 'one' : 'other';\n};\nconst d = (n, ord) => {\n const s = String(n).split('.'),\n v0 = !s[1];\n if (ord) return 'other';\n return n == 1 && v0 ? 'one' : 'other';\n};\nconst e = (n, ord) => 'other';\nconst f = (n, ord) => {\n if (ord) return 'other';\n return n == 1 ? 'one' : n == 2 ? 'two' : 'other';\n};\nexport const af = a;\nexport const ak = b;\nexport const am = c;\nexport const an = a;\nexport const ar = (n, ord) => {\n const s = String(n).split('.'),\n t0 = Number(s[0]) == n,\n n100 = t0 && s[0].slice(-2);\n if (ord) return 'other';\n return n == 0 ? 'zero' : n == 1 ? 'one' : n == 2 ? 'two' : n100 >= 3 && n100 <= 10 ? 'few' : n100 >= 11 && n100 <= 99 ? 'many' : 'other';\n};\nexport const ars = (n, ord) => {\n const s = String(n).split('.'),\n t0 = Number(s[0]) == n,\n n100 = t0 && s[0].slice(-2);\n if (ord) return 'other';\n return n == 0 ? 'zero' : n == 1 ? 'one' : n == 2 ? 'two' : n100 >= 3 && n100 <= 10 ? 'few' : n100 >= 11 && n100 <= 99 ? 'many' : 'other';\n};\nexport const as = (n, ord) => {\n if (ord) return n == 1 || n == 5 || n == 7 || n == 8 || n == 9 || n == 10 ? 'one' : n == 2 || n == 3 ? 'two' : n == 4 ? 'few' : n == 6 ? 'many' : 'other';\n return n >= 0 && n <= 1 ? 'one' : 'other';\n};\nexport const asa = a;\nexport const ast = d;\nexport const az = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n i10 = i.slice(-1),\n i100 = i.slice(-2),\n i1000 = i.slice(-3);\n if (ord) return i10 == 1 || i10 == 2 || i10 == 5 || i10 == 7 || i10 == 8 || i100 == 20 || i100 == 50 || i100 == 70 || i100 == 80 ? 'one' : i10 == 3 || i10 == 4 || i1000 == 100 || i1000 == 200 || i1000 == 300 || i1000 == 400 || i1000 == 500 || i1000 == 600 || i1000 == 700 || i1000 == 800 || i1000 == 900 ? 'few' : i == 0 || i10 == 6 || i100 == 40 || i100 == 60 || i100 == 90 ? 'many' : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const bal = (n, ord) => n == 1 ? 'one' : 'other';\nexport const be = (n, ord) => {\n const s = String(n).split('.'),\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);\n if (ord) return (n10 == 2 || n10 == 3) && n100 != 12 && n100 != 13 ? 'few' : 'other';\n return n10 == 1 && n100 != 11 ? 'one' : n10 >= 2 && n10 <= 4 && (n100 < 12 || n100 > 14) ? 'few' : t0 && n10 == 0 || n10 >= 5 && n10 <= 9 || n100 >= 11 && n100 <= 14 ? 'many' : 'other';\n};\nexport const bem = a;\nexport const bez = a;\nexport const bg = a;\nexport const bho = b;\nexport const bm = e;\nexport const bn = (n, ord) => {\n if (ord) return n == 1 || n == 5 || n == 7 || n == 8 || n == 9 || n == 10 ? 'one' : n == 2 || n == 3 ? 'two' : n == 4 ? 'few' : n == 6 ? 'many' : 'other';\n return n >= 0 && n <= 1 ? 'one' : 'other';\n};\nexport const bo = e;\nexport const br = (n, ord) => {\n const s = String(n).split('.'),\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2),\n n1000000 = t0 && s[0].slice(-6);\n if (ord) return 'other';\n return n10 == 1 && n100 != 11 && n100 != 71 && n100 != 91 ? 'one' : n10 == 2 && n100 != 12 && n100 != 72 && n100 != 92 ? 'two' : (n10 == 3 || n10 == 4 || n10 == 9) && (n100 < 10 || n100 > 19) && (n100 < 70 || n100 > 79) && (n100 < 90 || n100 > 99) ? 'few' : n != 0 && t0 && n1000000 == 0 ? 'many' : 'other';\n};\nexport const brx = a;\nexport const bs = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n f = s[1] || '',\n v0 = !s[1],\n i10 = i.slice(-1),\n i100 = i.slice(-2),\n f10 = f.slice(-1),\n f100 = f.slice(-2);\n if (ord) return 'other';\n return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one' : v0 && i10 >= 2 && i10 <= 4 && (i100 < 12 || i100 > 14) || f10 >= 2 && f10 <= 4 && (f100 < 12 || f100 > 14) ? 'few' : 'other';\n};\nexport const ca = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i1000000 = i.slice(-6);\n if (ord) return n == 1 || n == 3 ? 'one' : n == 2 ? 'two' : n == 4 ? 'few' : 'other';\n return n == 1 && v0 ? 'one' : i != 0 && i1000000 == 0 && v0 ? 'many' : 'other';\n};\nexport const ce = a;\nexport const ceb = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n f = s[1] || '',\n v0 = !s[1],\n i10 = i.slice(-1),\n f10 = f.slice(-1);\n if (ord) return 'other';\n return v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other';\n};\nexport const cgg = a;\nexport const chr = a;\nexport const ckb = a;\nexport const cs = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n v0 = !s[1];\n if (ord) return 'other';\n return n == 1 && v0 ? 'one' : i >= 2 && i <= 4 && v0 ? 'few' : !v0 ? 'many' : 'other';\n};\nexport const cy = (n, ord) => {\n if (ord) return n == 0 || n == 7 || n == 8 || n == 9 ? 'zero' : n == 1 ? 'one' : n == 2 ? 'two' : n == 3 || n == 4 ? 'few' : n == 5 || n == 6 ? 'many' : 'other';\n return n == 0 ? 'zero' : n == 1 ? 'one' : n == 2 ? 'two' : n == 3 ? 'few' : n == 6 ? 'many' : 'other';\n};\nexport const da = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n t0 = Number(s[0]) == n;\n if (ord) return 'other';\n return n == 1 || !t0 && (i == 0 || i == 1) ? 'one' : 'other';\n};\nexport const de = d;\nexport const doi = c;\nexport const dsb = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n f = s[1] || '',\n v0 = !s[1],\n i100 = i.slice(-2),\n f100 = f.slice(-2);\n if (ord) return 'other';\n return v0 && i100 == 1 || f100 == 1 ? 'one' : v0 && i100 == 2 || f100 == 2 ? 'two' : v0 && (i100 == 3 || i100 == 4) || f100 == 3 || f100 == 4 ? 'few' : 'other';\n};\nexport const dv = a;\nexport const dz = e;\nexport const ee = a;\nexport const el = a;\nexport const en = (n, ord) => {\n const s = String(n).split('.'),\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);\n if (ord) return n10 == 1 && n100 != 11 ? 'one' : n10 == 2 && n100 != 12 ? 'two' : n10 == 3 && n100 != 13 ? 'few' : 'other';\n return n == 1 && v0 ? 'one' : 'other';\n};\nexport const eo = a;\nexport const es = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i1000000 = i.slice(-6);\n if (ord) return 'other';\n return n == 1 ? 'one' : i != 0 && i1000000 == 0 && v0 ? 'many' : 'other';\n};\nexport const et = d;\nexport const eu = a;\nexport const fa = c;\nexport const ff = (n, ord) => {\n if (ord) return 'other';\n return n >= 0 && n < 2 ? 'one' : 'other';\n};\nexport const fi = d;\nexport const fil = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n f = s[1] || '',\n v0 = !s[1],\n i10 = i.slice(-1),\n f10 = f.slice(-1);\n if (ord) return n == 1 ? 'one' : 'other';\n return v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other';\n};\nexport const fo = a;\nexport const fr = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i1000000 = i.slice(-6);\n if (ord) return n == 1 ? 'one' : 'other';\n return n >= 0 && n < 2 ? 'one' : i != 0 && i1000000 == 0 && v0 ? 'many' : 'other';\n};\nexport const fur = a;\nexport const fy = d;\nexport const ga = (n, ord) => {\n const s = String(n).split('.'),\n t0 = Number(s[0]) == n;\n if (ord) return n == 1 ? 'one' : 'other';\n return n == 1 ? 'one' : n == 2 ? 'two' : t0 && n >= 3 && n <= 6 ? 'few' : t0 && n >= 7 && n <= 10 ? 'many' : 'other';\n};\nexport const gd = (n, ord) => {\n const s = String(n).split('.'),\n t0 = Number(s[0]) == n;\n if (ord) return n == 1 || n == 11 ? 'one' : n == 2 || n == 12 ? 'two' : n == 3 || n == 13 ? 'few' : 'other';\n return n == 1 || n == 11 ? 'one' : n == 2 || n == 12 ? 'two' : t0 && n >= 3 && n <= 10 || t0 && n >= 13 && n <= 19 ? 'few' : 'other';\n};\nexport const gl = d;\nexport const gsw = a;\nexport const gu = (n, ord) => {\n if (ord) return n == 1 ? 'one' : n == 2 || n == 3 ? 'two' : n == 4 ? 'few' : n == 6 ? 'many' : 'other';\n return n >= 0 && n <= 1 ? 'one' : 'other';\n};\nexport const guw = b;\nexport const gv = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i10 = i.slice(-1),\n i100 = i.slice(-2);\n if (ord) return 'other';\n return v0 && i10 == 1 ? 'one' : v0 && i10 == 2 ? 'two' : v0 && (i100 == 0 || i100 == 20 || i100 == 40 || i100 == 60 || i100 == 80) ? 'few' : !v0 ? 'many' : 'other';\n};\nexport const ha = a;\nexport const haw = a;\nexport const he = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n v0 = !s[1];\n if (ord) return 'other';\n return i == 1 && v0 || i == 0 && !v0 ? 'one' : i == 2 && v0 ? 'two' : 'other';\n};\nexport const hi = (n, ord) => {\n if (ord) return n == 1 ? 'one' : n == 2 || n == 3 ? 'two' : n == 4 ? 'few' : n == 6 ? 'many' : 'other';\n return n >= 0 && n <= 1 ? 'one' : 'other';\n};\nexport const hnj = e;\nexport const hr = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n f = s[1] || '',\n v0 = !s[1],\n i10 = i.slice(-1),\n i100 = i.slice(-2),\n f10 = f.slice(-1),\n f100 = f.slice(-2);\n if (ord) return 'other';\n return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one' : v0 && i10 >= 2 && i10 <= 4 && (i100 < 12 || i100 > 14) || f10 >= 2 && f10 <= 4 && (f100 < 12 || f100 > 14) ? 'few' : 'other';\n};\nexport const hsb = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n f = s[1] || '',\n v0 = !s[1],\n i100 = i.slice(-2),\n f100 = f.slice(-2);\n if (ord) return 'other';\n return v0 && i100 == 1 || f100 == 1 ? 'one' : v0 && i100 == 2 || f100 == 2 ? 'two' : v0 && (i100 == 3 || i100 == 4) || f100 == 3 || f100 == 4 ? 'few' : 'other';\n};\nexport const hu = (n, ord) => {\n if (ord) return n == 1 || n == 5 ? 'one' : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const hy = (n, ord) => {\n if (ord) return n == 1 ? 'one' : 'other';\n return n >= 0 && n < 2 ? 'one' : 'other';\n};\nexport const ia = d;\nexport const id = e;\nexport const ig = e;\nexport const ii = e;\nexport const io = d;\nexport const is = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n t = (s[1] || '').replace(/0+$/, ''),\n t0 = Number(s[0]) == n,\n i10 = i.slice(-1),\n i100 = i.slice(-2);\n if (ord) return 'other';\n return t0 && i10 == 1 && i100 != 11 || t % 10 == 1 && t % 100 != 11 ? 'one' : 'other';\n};\nexport const it = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i1000000 = i.slice(-6);\n if (ord) return n == 11 || n == 8 || n == 80 || n == 800 ? 'many' : 'other';\n return n == 1 && v0 ? 'one' : i != 0 && i1000000 == 0 && v0 ? 'many' : 'other';\n};\nexport const iu = f;\nexport const ja = e;\nexport const jbo = e;\nexport const jgo = a;\nexport const jmc = a;\nexport const jv = e;\nexport const jw = e;\nexport const ka = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n i100 = i.slice(-2);\n if (ord) return i == 1 ? 'one' : i == 0 || i100 >= 2 && i100 <= 20 || i100 == 40 || i100 == 60 || i100 == 80 ? 'many' : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const kab = (n, ord) => {\n if (ord) return 'other';\n return n >= 0 && n < 2 ? 'one' : 'other';\n};\nexport const kaj = a;\nexport const kcg = a;\nexport const kde = e;\nexport const kea = e;\nexport const kk = (n, ord) => {\n const s = String(n).split('.'),\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1);\n if (ord) return n10 == 6 || n10 == 9 || t0 && n10 == 0 && n != 0 ? 'many' : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const kkj = a;\nexport const kl = a;\nexport const km = e;\nexport const kn = c;\nexport const ko = e;\nexport const ks = a;\nexport const ksb = a;\nexport const ksh = (n, ord) => {\n if (ord) return 'other';\n return n == 0 ? 'zero' : n == 1 ? 'one' : 'other';\n};\nexport const ku = a;\nexport const kw = (n, ord) => {\n const s = String(n).split('.'),\n t0 = Number(s[0]) == n,\n n100 = t0 && s[0].slice(-2),\n n1000 = t0 && s[0].slice(-3),\n n100000 = t0 && s[0].slice(-5),\n n1000000 = t0 && s[0].slice(-6);\n if (ord) return t0 && n >= 1 && n <= 4 || n100 >= 1 && n100 <= 4 || n100 >= 21 && n100 <= 24 || n100 >= 41 && n100 <= 44 || n100 >= 61 && n100 <= 64 || n100 >= 81 && n100 <= 84 ? 'one' : n == 5 || n100 == 5 ? 'many' : 'other';\n return n == 0 ? 'zero' : n == 1 ? 'one' : n100 == 2 || n100 == 22 || n100 == 42 || n100 == 62 || n100 == 82 || t0 && n1000 == 0 && (n100000 >= 1000 && n100000 <= 20000 || n100000 == 40000 || n100000 == 60000 || n100000 == 80000) || n != 0 && n1000000 == 100000 ? 'two' : n100 == 3 || n100 == 23 || n100 == 43 || n100 == 63 || n100 == 83 ? 'few' : n != 1 && (n100 == 1 || n100 == 21 || n100 == 41 || n100 == 61 || n100 == 81) ? 'many' : 'other';\n};\nexport const ky = a;\nexport const lag = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0];\n if (ord) return 'other';\n return n == 0 ? 'zero' : (i == 0 || i == 1) && n != 0 ? 'one' : 'other';\n};\nexport const lb = a;\nexport const lg = a;\nexport const lij = (n, ord) => {\n const s = String(n).split('.'),\n v0 = !s[1],\n t0 = Number(s[0]) == n;\n if (ord) return n == 11 || n == 8 || t0 && n >= 80 && n <= 89 || t0 && n >= 800 && n <= 899 ? 'many' : 'other';\n return n == 1 && v0 ? 'one' : 'other';\n};\nexport const lkt = e;\nexport const ln = b;\nexport const lo = (n, ord) => {\n if (ord) return n == 1 ? 'one' : 'other';\n return 'other';\n};\nexport const lt = (n, ord) => {\n const s = String(n).split('.'),\n f = s[1] || '',\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);\n if (ord) return 'other';\n return n10 == 1 && (n100 < 11 || n100 > 19) ? 'one' : n10 >= 2 && n10 <= 9 && (n100 < 11 || n100 > 19) ? 'few' : f != 0 ? 'many' : 'other';\n};\nexport const lv = (n, ord) => {\n const s = String(n).split('.'),\n f = s[1] || '',\n v = f.length,\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2),\n f100 = f.slice(-2),\n f10 = f.slice(-1);\n if (ord) return 'other';\n return t0 && n10 == 0 || n100 >= 11 && n100 <= 19 || v == 2 && f100 >= 11 && f100 <= 19 ? 'zero' : n10 == 1 && n100 != 11 || v == 2 && f10 == 1 && f100 != 11 || v != 2 && f10 == 1 ? 'one' : 'other';\n};\nexport const mas = a;\nexport const mg = b;\nexport const mgo = a;\nexport const mk = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n f = s[1] || '',\n v0 = !s[1],\n i10 = i.slice(-1),\n i100 = i.slice(-2),\n f10 = f.slice(-1),\n f100 = f.slice(-2);\n if (ord) return i10 == 1 && i100 != 11 ? 'one' : i10 == 2 && i100 != 12 ? 'two' : (i10 == 7 || i10 == 8) && i100 != 17 && i100 != 18 ? 'many' : 'other';\n return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one' : 'other';\n};\nexport const ml = a;\nexport const mn = a;\nexport const mo = (n, ord) => {\n const s = String(n).split('.'),\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n100 = t0 && s[0].slice(-2);\n if (ord) return n == 1 ? 'one' : 'other';\n return n == 1 && v0 ? 'one' : !v0 || n == 0 || n != 1 && n100 >= 1 && n100 <= 19 ? 'few' : 'other';\n};\nexport const mr = (n, ord) => {\n if (ord) return n == 1 ? 'one' : n == 2 || n == 3 ? 'two' : n == 4 ? 'few' : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const ms = (n, ord) => {\n if (ord) return n == 1 ? 'one' : 'other';\n return 'other';\n};\nexport const mt = (n, ord) => {\n const s = String(n).split('.'),\n t0 = Number(s[0]) == n,\n n100 = t0 && s[0].slice(-2);\n if (ord) return 'other';\n return n == 1 ? 'one' : n == 2 ? 'two' : n == 0 || n100 >= 3 && n100 <= 10 ? 'few' : n100 >= 11 && n100 <= 19 ? 'many' : 'other';\n};\nexport const my = e;\nexport const nah = a;\nexport const naq = f;\nexport const nb = a;\nexport const nd = a;\nexport const ne = (n, ord) => {\n const s = String(n).split('.'),\n t0 = Number(s[0]) == n;\n if (ord) return t0 && n >= 1 && n <= 4 ? 'one' : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const nl = d;\nexport const nn = a;\nexport const nnh = a;\nexport const no = a;\nexport const nqo = e;\nexport const nr = a;\nexport const nso = b;\nexport const ny = a;\nexport const nyn = a;\nexport const om = a;\nexport const or = (n, ord) => {\n const s = String(n).split('.'),\n t0 = Number(s[0]) == n;\n if (ord) return n == 1 || n == 5 || t0 && n >= 7 && n <= 9 ? 'one' : n == 2 || n == 3 ? 'two' : n == 4 ? 'few' : n == 6 ? 'many' : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const os = a;\nexport const osa = e;\nexport const pa = b;\nexport const pap = a;\nexport const pcm = c;\nexport const pl = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i10 = i.slice(-1),\n i100 = i.slice(-2);\n if (ord) return 'other';\n return n == 1 && v0 ? 'one' : v0 && i10 >= 2 && i10 <= 4 && (i100 < 12 || i100 > 14) ? 'few' : v0 && i != 1 && (i10 == 0 || i10 == 1) || v0 && i10 >= 5 && i10 <= 9 || v0 && i100 >= 12 && i100 <= 14 ? 'many' : 'other';\n};\nexport const prg = (n, ord) => {\n const s = String(n).split('.'),\n f = s[1] || '',\n v = f.length,\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2),\n f100 = f.slice(-2),\n f10 = f.slice(-1);\n if (ord) return 'other';\n return t0 && n10 == 0 || n100 >= 11 && n100 <= 19 || v == 2 && f100 >= 11 && f100 <= 19 ? 'zero' : n10 == 1 && n100 != 11 || v == 2 && f10 == 1 && f100 != 11 || v != 2 && f10 == 1 ? 'one' : 'other';\n};\nexport const ps = a;\nexport const pt = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i1000000 = i.slice(-6);\n if (ord) return 'other';\n return i == 0 || i == 1 ? 'one' : i != 0 && i1000000 == 0 && v0 ? 'many' : 'other';\n};\nexport const pt_PT = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i1000000 = i.slice(-6);\n if (ord) return 'other';\n return n == 1 && v0 ? 'one' : i != 0 && i1000000 == 0 && v0 ? 'many' : 'other';\n};\nexport const rm = a;\nexport const ro = (n, ord) => {\n const s = String(n).split('.'),\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n100 = t0 && s[0].slice(-2);\n if (ord) return n == 1 ? 'one' : 'other';\n return n == 1 && v0 ? 'one' : !v0 || n == 0 || n != 1 && n100 >= 1 && n100 <= 19 ? 'few' : 'other';\n};\nexport const rof = a;\nexport const ru = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i10 = i.slice(-1),\n i100 = i.slice(-2);\n if (ord) return 'other';\n return v0 && i10 == 1 && i100 != 11 ? 'one' : v0 && i10 >= 2 && i10 <= 4 && (i100 < 12 || i100 > 14) ? 'few' : v0 && i10 == 0 || v0 && i10 >= 5 && i10 <= 9 || v0 && i100 >= 11 && i100 <= 14 ? 'many' : 'other';\n};\nexport const rwk = a;\nexport const sah = e;\nexport const saq = a;\nexport const sat = f;\nexport const sc = (n, ord) => {\n const s = String(n).split('.'),\n v0 = !s[1];\n if (ord) return n == 11 || n == 8 || n == 80 || n == 800 ? 'many' : 'other';\n return n == 1 && v0 ? 'one' : 'other';\n};\nexport const scn = (n, ord) => {\n const s = String(n).split('.'),\n v0 = !s[1];\n if (ord) return n == 11 || n == 8 || n == 80 || n == 800 ? 'many' : 'other';\n return n == 1 && v0 ? 'one' : 'other';\n};\nexport const sd = a;\nexport const sdh = a;\nexport const se = f;\nexport const seh = a;\nexport const ses = e;\nexport const sg = e;\nexport const sh = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n f = s[1] || '',\n v0 = !s[1],\n i10 = i.slice(-1),\n i100 = i.slice(-2),\n f10 = f.slice(-1),\n f100 = f.slice(-2);\n if (ord) return 'other';\n return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one' : v0 && i10 >= 2 && i10 <= 4 && (i100 < 12 || i100 > 14) || f10 >= 2 && f10 <= 4 && (f100 < 12 || f100 > 14) ? 'few' : 'other';\n};\nexport const shi = (n, ord) => {\n const s = String(n).split('.'),\n t0 = Number(s[0]) == n;\n if (ord) return 'other';\n return n >= 0 && n <= 1 ? 'one' : t0 && n >= 2 && n <= 10 ? 'few' : 'other';\n};\nexport const si = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n f = s[1] || '';\n if (ord) return 'other';\n return n == 0 || n == 1 || i == 0 && f == 1 ? 'one' : 'other';\n};\nexport const sk = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n v0 = !s[1];\n if (ord) return 'other';\n return n == 1 && v0 ? 'one' : i >= 2 && i <= 4 && v0 ? 'few' : !v0 ? 'many' : 'other';\n};\nexport const sl = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i100 = i.slice(-2);\n if (ord) return 'other';\n return v0 && i100 == 1 ? 'one' : v0 && i100 == 2 ? 'two' : v0 && (i100 == 3 || i100 == 4) || !v0 ? 'few' : 'other';\n};\nexport const sma = f;\nexport const smi = f;\nexport const smj = f;\nexport const smn = f;\nexport const sms = f;\nexport const sn = a;\nexport const so = a;\nexport const sq = (n, ord) => {\n const s = String(n).split('.'),\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);\n if (ord) return n == 1 ? 'one' : n10 == 4 && n100 != 14 ? 'many' : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const sr = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n f = s[1] || '',\n v0 = !s[1],\n i10 = i.slice(-1),\n i100 = i.slice(-2),\n f10 = f.slice(-1),\n f100 = f.slice(-2);\n if (ord) return 'other';\n return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one' : v0 && i10 >= 2 && i10 <= 4 && (i100 < 12 || i100 > 14) || f10 >= 2 && f10 <= 4 && (f100 < 12 || f100 > 14) ? 'few' : 'other';\n};\nexport const ss = a;\nexport const ssy = a;\nexport const st = a;\nexport const su = e;\nexport const sv = (n, ord) => {\n const s = String(n).split('.'),\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);\n if (ord) return (n10 == 1 || n10 == 2) && n100 != 11 && n100 != 12 ? 'one' : 'other';\n return n == 1 && v0 ? 'one' : 'other';\n};\nexport const sw = d;\nexport const syr = a;\nexport const ta = a;\nexport const te = a;\nexport const teo = a;\nexport const th = e;\nexport const ti = b;\nexport const tig = a;\nexport const tk = (n, ord) => {\n const s = String(n).split('.'),\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1);\n if (ord) return n10 == 6 || n10 == 9 || n == 10 ? 'few' : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const tl = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n f = s[1] || '',\n v0 = !s[1],\n i10 = i.slice(-1),\n f10 = f.slice(-1);\n if (ord) return n == 1 ? 'one' : 'other';\n return v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other';\n};\nexport const tn = a;\nexport const to = e;\nexport const tpi = e;\nexport const tr = a;\nexport const ts = a;\nexport const tzm = (n, ord) => {\n const s = String(n).split('.'),\n t0 = Number(s[0]) == n;\n if (ord) return 'other';\n return n == 0 || n == 1 || t0 && n >= 11 && n <= 99 ? 'one' : 'other';\n};\nexport const ug = a;\nexport const uk = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2),\n i10 = i.slice(-1),\n i100 = i.slice(-2);\n if (ord) return n10 == 3 && n100 != 13 ? 'few' : 'other';\n return v0 && i10 == 1 && i100 != 11 ? 'one' : v0 && i10 >= 2 && i10 <= 4 && (i100 < 12 || i100 > 14) ? 'few' : v0 && i10 == 0 || v0 && i10 >= 5 && i10 <= 9 || v0 && i100 >= 11 && i100 <= 14 ? 'many' : 'other';\n};\nexport const und = e;\nexport const ur = d;\nexport const uz = a;\nexport const ve = a;\nexport const vec = (n, ord) => {\n const s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i1000000 = i.slice(-6);\n if (ord) return n == 11 || n == 8 || n == 80 || n == 800 ? 'many' : 'other';\n return n == 1 && v0 ? 'one' : i != 0 && i1000000 == 0 && v0 ? 'many' : 'other';\n};\nexport const vi = (n, ord) => {\n if (ord) return n == 1 ? 'one' : 'other';\n return 'other';\n};\nexport const vo = a;\nexport const vun = a;\nexport const wa = b;\nexport const wae = a;\nexport const wo = e;\nexport const xh = a;\nexport const xog = a;\nexport const yi = d;\nexport const yo = e;\nexport const yue = e;\nexport const zh = e;\nexport const zu = c;","import camelCase from \"lodash/camelCase\";\nexport function camelCaseKeys(target) {\n if (!target) {\n return {};\n }\n return Object.keys(target).reduce((buffer, key) => {\n buffer[camelCase(key)] = target[key];\n return buffer;\n }, {});\n}","export function isSet(value) {\n return value !== undefined && value !== null;\n}","/*\r\n * bignumber.js v9.1.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin <M8ch88l@gmail.com>\r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\n\nvar isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\n mathceil = Math.ceil,\n mathfloor = Math.floor,\n bignumberError = '[BigNumber Error] ',\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\n BASE = 1e14,\n LOG_BASE = 14,\n MAX_SAFE_INTEGER = 0x1fffffffffffff,\n // 2^53 - 1\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\n SQRT_BASE = 1e7,\n // EDITABLE\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\n MAX = 1E9; // 0 to MAX_INT32\n\n/*\r\n * Create and return a BigNumber constructor.\r\n */\nfunction clone(configObject) {\n var div,\n convertBase,\n parseNumeric,\n P = BigNumber.prototype = {\n constructor: BigNumber,\n toString: null,\n valueOf: null\n },\n ONE = new BigNumber(1),\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\n\n // The default values below must be integers within the inclusive ranges stated.\n // The values can also be changed at run-time using BigNumber.set.\n\n // The maximum number of decimal places for operations involving division.\n DECIMAL_PLACES = 20,\n // 0 to MAX\n\n // The rounding mode used when rounding to the above decimal places, and when using\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\n // UP 0 Away from zero.\n // DOWN 1 Towards zero.\n // CEIL 2 Towards +Infinity.\n // FLOOR 3 Towards -Infinity.\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\n ROUNDING_MODE = 4,\n // 0 to 8\n\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\n\n // The exponent value at and beneath which toString returns exponential notation.\n // Number type: -7\n TO_EXP_NEG = -7,\n // 0 to -MAX\n\n // The exponent value at and above which toString returns exponential notation.\n // Number type: 21\n TO_EXP_POS = 21,\n // 0 to MAX\n\n // RANGE : [MIN_EXP, MAX_EXP]\n\n // The minimum exponent value, beneath which underflow to zero occurs.\n // Number type: -324 (5e-324)\n MIN_EXP = -1e7,\n // -1 to -MAX\n\n // The maximum exponent value, above which overflow to Infinity occurs.\n // Number type: 308 (1.7976931348623157e+308)\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\n MAX_EXP = 1e7,\n // 1 to MAX\n\n // Whether to use cryptographically-secure random number generation, if available.\n CRYPTO = false,\n // true or false\n\n // The modulo mode used when calculating the modulus: a mod n.\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\n // The remainder (r) is calculated as: r = a - n * q.\n //\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\n // DOWN 1 The remainder has the same sign as the dividend.\n // This modulo mode is commonly known as 'truncated division' and is\n // equivalent to (a % n) in JavaScript.\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\n // The remainder is always positive.\n //\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\n // modes are commonly used for the modulus operation.\n // Although the other rounding modes can also be used, they may not give useful results.\n MODULO_MODE = 1,\n // 0 to 9\n\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\n // If POW_PRECISION is 0, there will be unlimited significant digits.\n POW_PRECISION = 0,\n // 0 to MAX\n\n // The format specification used by the BigNumber.prototype.toFormat method.\n FORMAT = {\n prefix: '',\n groupSize: 3,\n secondaryGroupSize: 0,\n groupSeparator: ',',\n decimalSeparator: '.',\n fractionGroupSize: 0,\n fractionGroupSeparator: '\\xA0',\n // non-breaking space\n suffix: ''\n },\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\n // '-', '.', whitespace, or repeated character.\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\n alphabetHasNormalDecimalDigits = true;\n\n //------------------------------------------------------------------------------------------\n\n // CONSTRUCTOR\n\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\n function BigNumber(v, b) {\n var alphabet,\n c,\n caseChanged,\n e,\n i,\n isNum,\n len,\n str,\n x = this;\n\n // Enable constructor call without `new`.\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\n if (b == null) {\n if (v && v._isBigNumber === true) {\n x.s = v.s;\n if (!v.c || v.e > MAX_EXP) {\n x.c = x.e = null;\n } else if (v.e < MIN_EXP) {\n x.c = [x.e = 0];\n } else {\n x.e = v.e;\n x.c = v.c.slice();\n }\n return;\n }\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\n // Use `1 / n` to handle minus zero also.\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\n\n // Fast path for integers, where n < 2147483648 (2**31).\n if (v === ~~v) {\n for (e = 0, i = v; i >= 10; i /= 10, e++);\n if (e > MAX_EXP) {\n x.c = x.e = null;\n } else {\n x.e = e;\n x.c = [v];\n }\n return;\n }\n str = String(v);\n } else {\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\n }\n\n // Decimal point?\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\n\n // Exponential form?\n if ((i = str.search(/e/i)) > 0) {\n // Determine exponent.\n if (e < 0) e = i;\n e += +str.slice(i + 1);\n str = str.substring(0, i);\n } else if (e < 0) {\n // Integer.\n e = str.length;\n }\n } else {\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\n intCheck(b, 2, ALPHABET.length, 'Base');\n\n // Allow exponential notation to be used with base 10 argument, while\n // also rounding to DECIMAL_PLACES as with other bases.\n if (b == 10 && alphabetHasNormalDecimalDigits) {\n x = new BigNumber(v);\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\n }\n str = String(v);\n if (isNum = typeof v == 'number') {\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\n\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\n throw Error(tooManyDigits + v);\n }\n } else {\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\n }\n alphabet = ALPHABET.slice(0, b);\n e = i = 0;\n\n // Check that str is a valid base b number.\n // Don't use RegExp, so alphabet can contain special characters.\n for (len = str.length; i < len; i++) {\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\n if (c == '.') {\n // If '.' is not the first character and it has not be found before.\n if (i > e) {\n e = len;\n continue;\n }\n } else if (!caseChanged) {\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\n if (str == str.toUpperCase() && (str = str.toLowerCase()) || str == str.toLowerCase() && (str = str.toUpperCase())) {\n caseChanged = true;\n i = -1;\n e = 0;\n continue;\n }\n }\n return parseNumeric(x, String(v), isNum, b);\n }\n }\n\n // Prevent later check for length on converted number.\n isNum = false;\n str = convertBase(str, b, 10, x.s);\n\n // Decimal point?\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');else e = str.length;\n }\n\n // Determine leading zeros.\n for (i = 0; str.charCodeAt(i) === 48; i++);\n\n // Determine trailing zeros.\n for (len = str.length; str.charCodeAt(--len) === 48;);\n if (str = str.slice(i, ++len)) {\n len -= i;\n\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\n if (isNum && BigNumber.DEBUG && len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\n throw Error(tooManyDigits + x.s * v);\n }\n\n // Overflow?\n if ((e = e - i - 1) > MAX_EXP) {\n // Infinity.\n x.c = x.e = null;\n\n // Underflow?\n } else if (e < MIN_EXP) {\n // Zero.\n x.c = [x.e = 0];\n } else {\n x.e = e;\n x.c = [];\n\n // Transform base\n\n // e is the base 10 exponent.\n // i is where to slice str to get the first element of the coefficient array.\n i = (e + 1) % LOG_BASE;\n if (e < 0) i += LOG_BASE; // i < 1\n\n if (i < len) {\n if (i) x.c.push(+str.slice(0, i));\n for (len -= LOG_BASE; i < len;) {\n x.c.push(+str.slice(i, i += LOG_BASE));\n }\n i = LOG_BASE - (str = str.slice(i)).length;\n } else {\n i -= len;\n }\n for (; i--; str += '0');\n x.c.push(+str);\n }\n } else {\n // Zero.\n x.c = [x.e = 0];\n }\n }\n\n // CONSTRUCTOR PROPERTIES\n\n BigNumber.clone = clone;\n BigNumber.ROUND_UP = 0;\n BigNumber.ROUND_DOWN = 1;\n BigNumber.ROUND_CEIL = 2;\n BigNumber.ROUND_FLOOR = 3;\n BigNumber.ROUND_HALF_UP = 4;\n BigNumber.ROUND_HALF_DOWN = 5;\n BigNumber.ROUND_HALF_EVEN = 6;\n BigNumber.ROUND_HALF_CEIL = 7;\n BigNumber.ROUND_HALF_FLOOR = 8;\n BigNumber.EUCLID = 9;\n\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\n BigNumber.config = BigNumber.set = function (obj) {\n var p, v;\n if (obj != null) {\n if (typeof obj == 'object') {\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\n v = obj[p];\n intCheck(v, 0, MAX, p);\n DECIMAL_PLACES = v;\n }\n\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\n v = obj[p];\n intCheck(v, 0, 8, p);\n ROUNDING_MODE = v;\n }\n\n // EXPONENTIAL_AT {number|number[]}\n // Integer, -MAX to MAX inclusive or\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\n v = obj[p];\n if (v && v.pop) {\n intCheck(v[0], -MAX, 0, p);\n intCheck(v[1], 0, MAX, p);\n TO_EXP_NEG = v[0];\n TO_EXP_POS = v[1];\n } else {\n intCheck(v, -MAX, MAX, p);\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\n }\n }\n\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\n if (obj.hasOwnProperty(p = 'RANGE')) {\n v = obj[p];\n if (v && v.pop) {\n intCheck(v[0], -MAX, -1, p);\n intCheck(v[1], 1, MAX, p);\n MIN_EXP = v[0];\n MAX_EXP = v[1];\n } else {\n intCheck(v, -MAX, MAX, p);\n if (v) {\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\n } else {\n throw Error(bignumberError + p + ' cannot be zero: ' + v);\n }\n }\n }\n\n // CRYPTO {boolean} true or false.\n // '[BigNumber Error] CRYPTO not true or false: {v}'\n // '[BigNumber Error] crypto unavailable'\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\n v = obj[p];\n if (v === !!v) {\n if (v) {\n if (typeof crypto != 'undefined' && crypto && (crypto.getRandomValues || crypto.randomBytes)) {\n CRYPTO = v;\n } else {\n CRYPTO = !v;\n throw Error(bignumberError + 'crypto unavailable');\n }\n } else {\n CRYPTO = v;\n }\n } else {\n throw Error(bignumberError + p + ' not true or false: ' + v);\n }\n }\n\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\n v = obj[p];\n intCheck(v, 0, 9, p);\n MODULO_MODE = v;\n }\n\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\n v = obj[p];\n intCheck(v, 0, MAX, p);\n POW_PRECISION = v;\n }\n\n // FORMAT {object}\n // '[BigNumber Error] FORMAT not an object: {v}'\n if (obj.hasOwnProperty(p = 'FORMAT')) {\n v = obj[p];\n if (typeof v == 'object') FORMAT = v;else throw Error(bignumberError + p + ' not an object: ' + v);\n }\n\n // ALPHABET {string}\n // '[BigNumber Error] ALPHABET invalid: {v}'\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\n v = obj[p];\n\n // Disallow if less than two characters,\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\n ALPHABET = v;\n } else {\n throw Error(bignumberError + p + ' invalid: ' + v);\n }\n }\n } else {\n // '[BigNumber Error] Object expected: {v}'\n throw Error(bignumberError + 'Object expected: ' + obj);\n }\n }\n return {\n DECIMAL_PLACES: DECIMAL_PLACES,\n ROUNDING_MODE: ROUNDING_MODE,\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\n RANGE: [MIN_EXP, MAX_EXP],\n CRYPTO: CRYPTO,\n MODULO_MODE: MODULO_MODE,\n POW_PRECISION: POW_PRECISION,\n FORMAT: FORMAT,\n ALPHABET: ALPHABET\n };\n };\n\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\n BigNumber.isBigNumber = function (v) {\n if (!v || v._isBigNumber !== true) return false;\n if (!BigNumber.DEBUG) return true;\n var i,\n n,\n c = v.c,\n e = v.e,\n s = v.s;\n out: if ({}.toString.call(c) == '[object Array]') {\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\n // If the first element is zero, the BigNumber value must be zero.\n if (c[0] === 0) {\n if (e === 0 && c.length === 1) return true;\n break out;\n }\n\n // Calculate number of digits that c[0] should have, based on the exponent.\n i = (e + 1) % LOG_BASE;\n if (i < 1) i += LOG_BASE;\n\n // Calculate number of digits of c[0].\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\n if (String(c[0]).length == i) {\n for (i = 0; i < c.length; i++) {\n n = c[i];\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\n }\n\n // Last element cannot be zero, unless it is the only element.\n if (n !== 0) return true;\n }\n }\n\n // Infinity/NaN\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\n return true;\n }\n throw Error(bignumberError + 'Invalid BigNumber: ' + v);\n };\n\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\n BigNumber.maximum = BigNumber.max = function () {\n return maxOrMin(arguments, -1);\n };\n\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\n BigNumber.minimum = BigNumber.min = function () {\n return maxOrMin(arguments, 1);\n };\n\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\n BigNumber.random = function () {\n var pow2_53 = 0x20000000000000;\n\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\n // Check if Math.random() produces more than 32 bits of randomness.\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\n var random53bitInt = Math.random() * pow2_53 & 0x1fffff ? function () {\n return mathfloor(Math.random() * pow2_53);\n } : function () {\n return (Math.random() * 0x40000000 | 0) * 0x800000 + (Math.random() * 0x800000 | 0);\n };\n return function (dp) {\n var a,\n b,\n e,\n k,\n v,\n i = 0,\n c = [],\n rand = new BigNumber(ONE);\n if (dp == null) dp = DECIMAL_PLACES;else intCheck(dp, 0, MAX);\n k = mathceil(dp / LOG_BASE);\n if (CRYPTO) {\n // Browsers supporting crypto.getRandomValues.\n if (crypto.getRandomValues) {\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\n for (; i < k;) {\n // 53 bits:\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\n // 11111 11111111 11111111\n // 0x20000 is 2^21.\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\n\n // Rejection sampling:\n // 0 <= v < 9007199254740992\n // Probability that v >= 9e15, is\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\n if (v >= 9e15) {\n b = crypto.getRandomValues(new Uint32Array(2));\n a[i] = b[0];\n a[i + 1] = b[1];\n } else {\n // 0 <= v <= 8999999999999999\n // 0 <= (v % 1e14) <= 99999999999999\n c.push(v % 1e14);\n i += 2;\n }\n }\n i = k / 2;\n\n // Node.js supporting crypto.randomBytes.\n } else if (crypto.randomBytes) {\n // buffer\n a = crypto.randomBytes(k *= 7);\n for (; i < k;) {\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\n // 0x100000000 is 2^32, 0x1000000 is 2^24\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\n // 0 <= v < 9007199254740992\n v = (a[i] & 31) * 0x1000000000000 + a[i + 1] * 0x10000000000 + a[i + 2] * 0x100000000 + a[i + 3] * 0x1000000 + (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\n if (v >= 9e15) {\n crypto.randomBytes(7).copy(a, i);\n } else {\n // 0 <= (v % 1e14) <= 99999999999999\n c.push(v % 1e14);\n i += 7;\n }\n }\n i = k / 7;\n } else {\n CRYPTO = false;\n throw Error(bignumberError + 'crypto unavailable');\n }\n }\n\n // Use Math.random.\n if (!CRYPTO) {\n for (; i < k;) {\n v = random53bitInt();\n if (v < 9e15) c[i++] = v % 1e14;\n }\n }\n k = c[--i];\n dp %= LOG_BASE;\n\n // Convert trailing digits to zeros according to dp.\n if (k && dp) {\n v = POWS_TEN[LOG_BASE - dp];\n c[i] = mathfloor(k / v) * v;\n }\n\n // Remove trailing elements which are zero.\n for (; c[i] === 0; c.pop(), i--);\n\n // Zero?\n if (i < 0) {\n c = [e = 0];\n } else {\n // Remove leading elements which are zero and adjust exponent accordingly.\n for (e = -1; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\n\n // Count the digits of the first element of c to determine leading zeros, and...\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\n\n // adjust the exponent accordingly.\n if (i < LOG_BASE) e -= LOG_BASE - i;\n }\n rand.e = e;\n rand.c = c;\n return rand;\n };\n }();\n\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\n BigNumber.sum = function () {\n var i = 1,\n args = arguments,\n sum = new BigNumber(args[0]);\n for (; i < args.length;) sum = sum.plus(args[i++]);\n return sum;\n };\n\n // PRIVATE FUNCTIONS\n\n // Called by BigNumber and BigNumber.prototype.toString.\n convertBase = function () {\n var decimal = '0123456789';\n\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\n function toBaseOut(str, baseIn, baseOut, alphabet) {\n var j,\n arr = [0],\n arrL,\n i = 0,\n len = str.length;\n for (; i < len;) {\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\n arr[0] += alphabet.indexOf(str.charAt(i++));\n for (j = 0; j < arr.length; j++) {\n if (arr[j] > baseOut - 1) {\n if (arr[j + 1] == null) arr[j + 1] = 0;\n arr[j + 1] += arr[j] / baseOut | 0;\n arr[j] %= baseOut;\n }\n }\n }\n return arr.reverse();\n }\n\n // Convert a numeric string of baseIn to a numeric string of baseOut.\n // If the caller is toString, we are converting from base 10 to baseOut.\n // If the caller is BigNumber, we are converting from baseIn to base 10.\n return function (str, baseIn, baseOut, sign, callerIsToString) {\n var alphabet,\n d,\n e,\n k,\n r,\n x,\n xc,\n y,\n i = str.indexOf('.'),\n dp = DECIMAL_PLACES,\n rm = ROUNDING_MODE;\n\n // Non-integer.\n if (i >= 0) {\n k = POW_PRECISION;\n\n // Unlimited precision.\n POW_PRECISION = 0;\n str = str.replace('.', '');\n y = new BigNumber(baseIn);\n x = y.pow(str.length - i);\n POW_PRECISION = k;\n\n // Convert str as if an integer, then restore the fraction part by dividing the\n // result by its base raised to a power.\n\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'), 10, baseOut, decimal);\n y.e = y.c.length;\n }\n\n // Convert the number as integer.\n\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString ? (alphabet = ALPHABET, decimal) : (alphabet = decimal, ALPHABET));\n\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\n e = k = xc.length;\n\n // Remove trailing zeros.\n for (; xc[--k] == 0; xc.pop());\n\n // Zero?\n if (!xc[0]) return alphabet.charAt(0);\n\n // Does str represent an integer? If so, no need for the division.\n if (i < 0) {\n --e;\n } else {\n x.c = xc;\n x.e = e;\n\n // The sign is needed for correct rounding.\n x.s = sign;\n x = div(x, y, dp, rm, baseOut);\n xc = x.c;\n r = x.r;\n e = x.e;\n }\n\n // xc now represents str converted to baseOut.\n\n // THe index of the rounding digit.\n d = e + dp + 1;\n\n // The rounding digit: the digit to the right of the digit that may be rounded up.\n i = xc[d];\n\n // Look at the rounding digits and mode to determine whether to round up.\n\n k = baseOut / 2;\n r = r || d < 0 || xc[d + 1] != null;\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : i > k || i == k && (rm == 4 || r || rm == 6 && xc[d - 1] & 1 || rm == (x.s < 0 ? 8 : 7));\n\n // If the index of the rounding digit is not greater than zero, or xc represents\n // zero, then the result of the base conversion is zero or, if rounding up, a value\n // such as 0.00001.\n if (d < 1 || !xc[0]) {\n // 1^-dp or 0\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\n } else {\n // Truncate xc to the required number of decimal places.\n xc.length = d;\n\n // Round up?\n if (r) {\n // Rounding up may mean the previous digit has to be rounded up and so on.\n for (--baseOut; ++xc[--d] > baseOut;) {\n xc[d] = 0;\n if (!d) {\n ++e;\n xc = [1].concat(xc);\n }\n }\n }\n\n // Determine trailing zeros.\n for (k = xc.length; !xc[--k];);\n\n // E.g. [4, 11, 15] becomes 4bf.\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\n\n // Add leading zeros, decimal point and trailing zeros as required.\n str = toFixedPoint(str, e, alphabet.charAt(0));\n }\n\n // The caller will add the sign.\n return str;\n };\n }();\n\n // Perform division in the specified base. Called by div and convertBase.\n div = function () {\n // Assume non-zero x and k.\n function multiply(x, k, base) {\n var m,\n temp,\n xlo,\n xhi,\n carry = 0,\n i = x.length,\n klo = k % SQRT_BASE,\n khi = k / SQRT_BASE | 0;\n for (x = x.slice(); i--;) {\n xlo = x[i] % SQRT_BASE;\n xhi = x[i] / SQRT_BASE | 0;\n m = khi * xlo + xhi * klo;\n temp = klo * xlo + m % SQRT_BASE * SQRT_BASE + carry;\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\n x[i] = temp % base;\n }\n if (carry) x = [carry].concat(x);\n return x;\n }\n function compare(a, b, aL, bL) {\n var i, cmp;\n if (aL != bL) {\n cmp = aL > bL ? 1 : -1;\n } else {\n for (i = cmp = 0; i < aL; i++) {\n if (a[i] != b[i]) {\n cmp = a[i] > b[i] ? 1 : -1;\n break;\n }\n }\n }\n return cmp;\n }\n function subtract(a, b, aL, base) {\n var i = 0;\n\n // Subtract b from a.\n for (; aL--;) {\n a[aL] -= i;\n i = a[aL] < b[aL] ? 1 : 0;\n a[aL] = i * base + a[aL] - b[aL];\n }\n\n // Remove leading zeros.\n for (; !a[0] && a.length > 1; a.splice(0, 1));\n }\n\n // x: dividend, y: divisor.\n return function (x, y, dp, rm, base) {\n var cmp,\n e,\n i,\n more,\n n,\n prod,\n prodL,\n q,\n qc,\n rem,\n remL,\n rem0,\n xi,\n xL,\n yc0,\n yL,\n yz,\n s = x.s == y.s ? 1 : -1,\n xc = x.c,\n yc = y.c;\n\n // Either NaN, Infinity or 0?\n if (!xc || !xc[0] || !yc || !yc[0]) {\n return new BigNumber(\n // Return NaN if either NaN, or both Infinity or 0.\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0);\n }\n q = new BigNumber(s);\n qc = q.c = [];\n e = x.e - y.e;\n s = dp + e + 1;\n if (!base) {\n base = BASE;\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\n s = s / LOG_BASE | 0;\n }\n\n // Result exponent may be one less then the current value of e.\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\n for (i = 0; yc[i] == (xc[i] || 0); i++);\n if (yc[i] > (xc[i] || 0)) e--;\n if (s < 0) {\n qc.push(1);\n more = true;\n } else {\n xL = xc.length;\n yL = yc.length;\n i = 0;\n s += 2;\n\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\n\n n = mathfloor(base / (yc[0] + 1));\n\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\n if (n > 1) {\n yc = multiply(yc, n, base);\n xc = multiply(xc, n, base);\n yL = yc.length;\n xL = xc.length;\n }\n xi = yL;\n rem = xc.slice(0, yL);\n remL = rem.length;\n\n // Add zeros to make remainder as long as divisor.\n for (; remL < yL; rem[remL++] = 0);\n yz = yc.slice();\n yz = [0].concat(yz);\n yc0 = yc[0];\n if (yc[1] >= base / 2) yc0++;\n // Not necessary, but to prevent trial digit n > base, when using base 3.\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\n\n do {\n n = 0;\n\n // Compare divisor and remainder.\n cmp = compare(yc, rem, yL, remL);\n\n // If divisor < remainder.\n if (cmp < 0) {\n // Calculate trial digit, n.\n\n rem0 = rem[0];\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\n\n // n is how many times the divisor goes into the current remainder.\n n = mathfloor(rem0 / yc0);\n\n // Algorithm:\n // product = divisor multiplied by trial digit (n).\n // Compare product and remainder.\n // If product is greater than remainder:\n // Subtract divisor from product, decrement trial digit.\n // Subtract product from remainder.\n // If product was less than remainder at the last compare:\n // Compare new remainder and divisor.\n // If remainder is greater than divisor:\n // Subtract divisor from remainder, increment trial digit.\n\n if (n > 1) {\n // n may be > base only when base is 3.\n if (n >= base) n = base - 1;\n\n // product = divisor * trial digit.\n prod = multiply(yc, n, base);\n prodL = prod.length;\n remL = rem.length;\n\n // Compare product and remainder.\n // If product > remainder then trial digit n too high.\n // n is 1 too high about 5% of the time, and is not known to have\n // ever been more than 1 too high.\n while (compare(prod, rem, prodL, remL) == 1) {\n n--;\n\n // Subtract divisor from product.\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\n prodL = prod.length;\n cmp = 1;\n }\n } else {\n // n is 0 or 1, cmp is -1.\n // If n is 0, there is no need to compare yc and rem again below,\n // so change cmp to 1 to avoid it.\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\n if (n == 0) {\n // divisor < remainder, so n must be at least 1.\n cmp = n = 1;\n }\n\n // product = divisor\n prod = yc.slice();\n prodL = prod.length;\n }\n if (prodL < remL) prod = [0].concat(prod);\n\n // Subtract product from remainder.\n subtract(rem, prod, remL, base);\n remL = rem.length;\n\n // If product was < remainder.\n if (cmp == -1) {\n // Compare divisor and new remainder.\n // If divisor < new remainder, subtract divisor from remainder.\n // Trial digit n too low.\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\n while (compare(yc, rem, yL, remL) < 1) {\n n++;\n\n // Subtract divisor from remainder.\n subtract(rem, yL < remL ? yz : yc, remL, base);\n remL = rem.length;\n }\n }\n } else if (cmp === 0) {\n n++;\n rem = [0];\n } // else cmp === 1 and n will be 0\n\n // Add the next digit, n, to the result array.\n qc[i++] = n;\n\n // Update the remainder.\n if (rem[0]) {\n rem[remL++] = xc[xi] || 0;\n } else {\n rem = [xc[xi]];\n remL = 1;\n }\n } while ((xi++ < xL || rem[0] != null) && s--);\n more = rem[0] != null;\n\n // Leading zero?\n if (!qc[0]) qc.splice(0, 1);\n }\n if (base == BASE) {\n // To calculate q.e, first get the number of digits of qc[0].\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\n\n // Caller is convertBase.\n } else {\n q.e = e;\n q.r = +more;\n }\n return q;\n };\n }();\n\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\n function format(n, i, rm, id) {\n var c0, e, ne, len, str;\n if (rm == null) rm = ROUNDING_MODE;else intCheck(rm, 0, 8);\n if (!n.c) return n.toString();\n c0 = n.c[0];\n ne = n.e;\n if (i == null) {\n str = coeffToString(n.c);\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS) ? toExponential(str, ne) : toFixedPoint(str, ne, '0');\n } else {\n n = round(new BigNumber(n), i, rm);\n\n // n.e may have changed if the value was rounded up.\n e = n.e;\n str = coeffToString(n.c);\n len = str.length;\n\n // toPrecision returns exponential notation if the number of significant digits\n // specified is less than the number of digits necessary to represent the integer\n // part of the value in fixed-point notation.\n\n // Exponential notation.\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\n // Append zeros?\n for (; len < i; str += '0', len++);\n str = toExponential(str, e);\n\n // Fixed-point notation.\n } else {\n i -= ne;\n str = toFixedPoint(str, e, '0');\n\n // Append zeros?\n if (e + 1 > len) {\n if (--i > 0) for (str += '.'; i--; str += '0');\n } else {\n i += e - len;\n if (i > 0) {\n if (e + 1 == len) str += '.';\n for (; i--; str += '0');\n }\n }\n }\n }\n return n.s < 0 && c0 ? '-' + str : str;\n }\n\n // Handle BigNumber.max and BigNumber.min.\n // If any number is NaN, return NaN.\n function maxOrMin(args, n) {\n var k,\n y,\n i = 1,\n x = new BigNumber(args[0]);\n for (; i < args.length; i++) {\n y = new BigNumber(args[i]);\n if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\n x = y;\n }\n }\n return x;\n }\n\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\n function normalise(n, c, e) {\n var i = 1,\n j = c.length;\n\n // Remove trailing zeros.\n for (; !c[--j]; c.pop());\n\n // Calculate the base 10 exponent. First get the number of digits of c[0].\n for (j = c[0]; j >= 10; j /= 10, i++);\n\n // Overflow?\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\n // Infinity.\n n.c = n.e = null;\n\n // Underflow?\n } else if (e < MIN_EXP) {\n // Zero.\n n.c = [n.e = 0];\n } else {\n n.e = e;\n n.c = c;\n }\n return n;\n }\n\n // Handle values that fail the validity test in BigNumber.\n parseNumeric = function () {\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\n dotAfter = /^([^.]+)\\.$/,\n dotBefore = /^\\.([^.]+)$/,\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\n return function (x, str, isNum, b) {\n var base,\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\n\n // No exception on ±Infinity or NaN.\n if (isInfinityOrNaN.test(s)) {\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\n } else {\n if (!isNum) {\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\n s = s.replace(basePrefix, function (m, p1, p2) {\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\n return !b || b == base ? p1 : m;\n });\n if (b) {\n base = b;\n\n // E.g. '1.' to '1', '.1' to '0.1'\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\n }\n if (str != s) return new BigNumber(s, base);\n }\n\n // '[BigNumber Error] Not a number: {n}'\n // '[BigNumber Error] Not a base {b} number: {n}'\n if (BigNumber.DEBUG) {\n throw Error(bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\n }\n\n // NaN\n x.s = null;\n }\n x.c = x.e = null;\n };\n }();\n\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\n function round(x, sd, rm, r) {\n var d,\n i,\n j,\n k,\n n,\n ni,\n rd,\n xc = x.c,\n pows10 = POWS_TEN;\n\n // if x is not Infinity or NaN...\n if (xc) {\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\n // ni is the index of n within x.c.\n // d is the number of digits of n.\n // i is the index of rd within n including leading zeros.\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\n out: {\n // Get the number of digits of the first element of xc.\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\n i = sd - d;\n\n // If the rounding digit is in the first element of xc...\n if (i < 0) {\n i += LOG_BASE;\n j = sd;\n n = xc[ni = 0];\n\n // Get the rounding digit at index j of n.\n rd = mathfloor(n / pows10[d - j - 1] % 10);\n } else {\n ni = mathceil((i + 1) / LOG_BASE);\n if (ni >= xc.length) {\n if (r) {\n // Needed by sqrt.\n for (; xc.length <= ni; xc.push(0));\n n = rd = 0;\n d = 1;\n i %= LOG_BASE;\n j = i - LOG_BASE + 1;\n } else {\n break out;\n }\n } else {\n n = k = xc[ni];\n\n // Get the number of digits of n.\n for (d = 1; k >= 10; k /= 10, d++);\n\n // Get the index of rd within n.\n i %= LOG_BASE;\n\n // Get the index of rd within n, adjusted for leading zeros.\n // The number of leading zeros of n is given by LOG_BASE - d.\n j = i - LOG_BASE + d;\n\n // Get the rounding digit at index j of n.\n rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\n }\n }\n r = r || sd < 0 ||\n // Are there any non-zero digits after the rounding digit?\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\n r = rm < 4 ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\n // Check whether the digit to the left of the rounding digit is odd.\n (i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7));\n if (sd < 1 || !xc[0]) {\n xc.length = 0;\n if (r) {\n // Convert sd to decimal places.\n sd -= x.e + 1;\n\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\n x.e = -sd || 0;\n } else {\n // Zero.\n xc[0] = x.e = 0;\n }\n return x;\n }\n\n // Remove excess digits.\n if (i == 0) {\n xc.length = ni;\n k = 1;\n ni--;\n } else {\n xc.length = ni + 1;\n k = pows10[LOG_BASE - i];\n\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\n // j > 0 means i > number of leading zeros of n.\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\n }\n\n // Round up?\n if (r) {\n for (;;) {\n // If the digit to be rounded up is in the first element of xc...\n if (ni == 0) {\n // i will be the length of xc[0] before k is added.\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\n j = xc[0] += k;\n for (k = 1; j >= 10; j /= 10, k++);\n\n // if i != k the length has increased.\n if (i != k) {\n x.e++;\n if (xc[0] == BASE) xc[0] = 1;\n }\n break;\n } else {\n xc[ni] += k;\n if (xc[ni] != BASE) break;\n xc[ni--] = 0;\n k = 1;\n }\n }\n }\n\n // Remove trailing zeros.\n for (i = xc.length; xc[--i] === 0; xc.pop());\n }\n\n // Overflow? Infinity.\n if (x.e > MAX_EXP) {\n x.c = x.e = null;\n\n // Underflow? Zero.\n } else if (x.e < MIN_EXP) {\n x.c = [x.e = 0];\n }\n }\n return x;\n }\n function valueOf(n) {\n var str,\n e = n.e;\n if (e === null) return n.toString();\n str = coeffToString(n.c);\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(str, e) : toFixedPoint(str, e, '0');\n return n.s < 0 ? '-' + str : str;\n }\n\n // PROTOTYPE/INSTANCE METHODS\n\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\n P.absoluteValue = P.abs = function () {\n var x = new BigNumber(this);\n if (x.s < 0) x.s = 1;\n return x;\n };\n\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\n P.comparedTo = function (y, b) {\n return compare(this, new BigNumber(y, b));\n };\n\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\n P.decimalPlaces = P.dp = function (dp, rm) {\n var c,\n n,\n v,\n x = this;\n if (dp != null) {\n intCheck(dp, 0, MAX);\n if (rm == null) rm = ROUNDING_MODE;else intCheck(rm, 0, 8);\n return round(new BigNumber(x), dp + x.e + 1, rm);\n }\n if (!(c = x.c)) return null;\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\n\n // Subtract the number of trailing zeros of the last number.\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\n if (n < 0) n = 0;\n return n;\n };\n\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\n P.dividedBy = P.div = function (y, b) {\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\n };\n\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\n P.dividedToIntegerBy = P.idiv = function (y, b) {\n return div(this, new BigNumber(y, b), 0, 1);\n };\n\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\n P.exponentiatedBy = P.pow = function (n, m) {\n var half,\n isModExp,\n i,\n k,\n more,\n nIsBig,\n nIsNeg,\n nIsOdd,\n y,\n x = this;\n n = new BigNumber(n);\n\n // Allow NaN and ±Infinity, but not other non-integers.\n if (n.c && !n.isInteger()) {\n throw Error(bignumberError + 'Exponent not an integer: ' + valueOf(n));\n }\n if (m != null) m = new BigNumber(m);\n\n // Exponent of MAX_SAFE_INTEGER is 15.\n nIsBig = n.e > 14;\n\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\n // The sign of the result of pow when x is negative depends on the evenness of n.\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\n return m ? y.mod(m) : y;\n }\n nIsNeg = n.s < 0;\n if (m) {\n // x % m returns NaN if abs(m) is zero, or m is NaN.\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\n if (isModExp) x = x.mod(m);\n\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\n // [1, 240000000]\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\n // [80000000000000] [99999750000000]\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\n // If x is negative and n is odd, k = -0, else k = 0.\n k = x.s < 0 && isOdd(n) ? -0 : 0;\n\n // If x >= 1, k = ±Infinity.\n if (x.e > -1) k = 1 / k;\n\n // If n is negative return ±0, else return ±Infinity.\n return new BigNumber(nIsNeg ? 1 / k : k);\n } else if (POW_PRECISION) {\n // Truncating each coefficient array to a length of k after each multiplication\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\n // i.e. there will be a minimum of 28 guard digits retained.\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\n }\n if (nIsBig) {\n half = new BigNumber(0.5);\n if (nIsNeg) n.s = 1;\n nIsOdd = isOdd(n);\n } else {\n i = Math.abs(+valueOf(n));\n nIsOdd = i % 2;\n }\n y = new BigNumber(ONE);\n\n // Performs 54 loop iterations for n of 9007199254740991.\n for (;;) {\n if (nIsOdd) {\n y = y.times(x);\n if (!y.c) break;\n if (k) {\n if (y.c.length > k) y.c.length = k;\n } else if (isModExp) {\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\n }\n }\n if (i) {\n i = mathfloor(i / 2);\n if (i === 0) break;\n nIsOdd = i % 2;\n } else {\n n = n.times(half);\n round(n, n.e + 1, 1);\n if (n.e > 14) {\n nIsOdd = isOdd(n);\n } else {\n i = +valueOf(n);\n if (i === 0) break;\n nIsOdd = i % 2;\n }\n }\n x = x.times(x);\n if (k) {\n if (x.c && x.c.length > k) x.c.length = k;\n } else if (isModExp) {\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\n }\n }\n if (isModExp) return y;\n if (nIsNeg) y = ONE.div(y);\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\n };\n\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\n P.integerValue = function (rm) {\n var n = new BigNumber(this);\n if (rm == null) rm = ROUNDING_MODE;else intCheck(rm, 0, 8);\n return round(n, n.e + 1, rm);\n };\n\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\n P.isEqualTo = P.eq = function (y, b) {\n return compare(this, new BigNumber(y, b)) === 0;\n };\n\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\n P.isFinite = function () {\n return !!this.c;\n };\n\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\n P.isGreaterThan = P.gt = function (y, b) {\n return compare(this, new BigNumber(y, b)) > 0;\n };\n\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\n };\n\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\n P.isInteger = function () {\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\n };\n\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\n P.isLessThan = P.lt = function (y, b) {\n return compare(this, new BigNumber(y, b)) < 0;\n };\n\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\n };\n\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\n P.isNaN = function () {\n return !this.s;\n };\n\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\n P.isNegative = function () {\n return this.s < 0;\n };\n\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\n P.isPositive = function () {\n return this.s > 0;\n };\n\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\n P.isZero = function () {\n return !!this.c && this.c[0] == 0;\n };\n\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\n P.minus = function (y, b) {\n var i,\n j,\n t,\n xLTy,\n x = this,\n a = x.s;\n y = new BigNumber(y, b);\n b = y.s;\n\n // Either NaN?\n if (!a || !b) return new BigNumber(NaN);\n\n // Signs differ?\n if (a != b) {\n y.s = -b;\n return x.plus(y);\n }\n var xe = x.e / LOG_BASE,\n ye = y.e / LOG_BASE,\n xc = x.c,\n yc = y.c;\n if (!xe || !ye) {\n // Either Infinity?\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\n\n // Either zero?\n if (!xc[0] || !yc[0]) {\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\n ROUNDING_MODE == 3 ? -0 : 0);\n }\n }\n xe = bitFloor(xe);\n ye = bitFloor(ye);\n xc = xc.slice();\n\n // Determine which is the bigger number.\n if (a = xe - ye) {\n if (xLTy = a < 0) {\n a = -a;\n t = xc;\n } else {\n ye = xe;\n t = yc;\n }\n t.reverse();\n\n // Prepend zeros to equalise exponents.\n for (b = a; b--; t.push(0));\n t.reverse();\n } else {\n // Exponents equal. Check digit by digit.\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\n for (a = b = 0; b < j; b++) {\n if (xc[b] != yc[b]) {\n xLTy = xc[b] < yc[b];\n break;\n }\n }\n }\n\n // x < y? Point xc to the array of the bigger number.\n if (xLTy) {\n t = xc;\n xc = yc;\n yc = t;\n y.s = -y.s;\n }\n b = (j = yc.length) - (i = xc.length);\n\n // Append zeros to xc if shorter.\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\n if (b > 0) for (; b--; xc[i++] = 0);\n b = BASE - 1;\n\n // Subtract yc from xc.\n for (; j > a;) {\n if (xc[--j] < yc[j]) {\n for (i = j; i && !xc[--i]; xc[i] = b);\n --xc[i];\n xc[j] += BASE;\n }\n xc[j] -= yc[j];\n }\n\n // Remove leading zeros and adjust exponent accordingly.\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\n\n // Zero?\n if (!xc[0]) {\n // Following IEEE 754 (2008) 6.3,\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\n y.c = [y.e = 0];\n return y;\n }\n\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\n // for finite x and y.\n return normalise(y, xc, ye);\n };\n\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\n P.modulo = P.mod = function (y, b) {\n var q,\n s,\n x = this;\n y = new BigNumber(y, b);\n\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\n if (!x.c || !y.s || y.c && !y.c[0]) {\n return new BigNumber(NaN);\n\n // Return x if y is Infinity or x is zero.\n } else if (!y.c || x.c && !x.c[0]) {\n return new BigNumber(x);\n }\n if (MODULO_MODE == 9) {\n // Euclidian division: q = sign(y) * floor(x / abs(y))\n // r = x - qy where 0 <= r < abs(y)\n s = y.s;\n y.s = 1;\n q = div(x, y, 0, 3);\n y.s = s;\n q.s *= s;\n } else {\n q = div(x, y, 0, MODULO_MODE);\n }\n y = x.minus(q.times(y));\n\n // To match JavaScript %, ensure sign of zero is sign of dividend.\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\n return y;\n };\n\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\n P.multipliedBy = P.times = function (y, b) {\n var c,\n e,\n i,\n j,\n k,\n m,\n xcL,\n xlo,\n xhi,\n ycL,\n ylo,\n yhi,\n zc,\n base,\n sqrtBase,\n x = this,\n xc = x.c,\n yc = (y = new BigNumber(y, b)).c;\n\n // Either NaN, ±Infinity or ±0?\n if (!xc || !yc || !xc[0] || !yc[0]) {\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\n y.c = y.e = y.s = null;\n } else {\n y.s *= x.s;\n\n // Return ±Infinity if either is ±Infinity.\n if (!xc || !yc) {\n y.c = y.e = null;\n\n // Return ±0 if either is ±0.\n } else {\n y.c = [0];\n y.e = 0;\n }\n }\n return y;\n }\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\n y.s *= x.s;\n xcL = xc.length;\n ycL = yc.length;\n\n // Ensure xc points to longer array and xcL to its length.\n if (xcL < ycL) {\n zc = xc;\n xc = yc;\n yc = zc;\n i = xcL;\n xcL = ycL;\n ycL = i;\n }\n\n // Initialise the result array with zeros.\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\n base = BASE;\n sqrtBase = SQRT_BASE;\n for (i = ycL; --i >= 0;) {\n c = 0;\n ylo = yc[i] % sqrtBase;\n yhi = yc[i] / sqrtBase | 0;\n for (k = xcL, j = i + k; j > i;) {\n xlo = xc[--k] % sqrtBase;\n xhi = xc[k] / sqrtBase | 0;\n m = yhi * xlo + xhi * ylo;\n xlo = ylo * xlo + m % sqrtBase * sqrtBase + zc[j] + c;\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\n zc[j--] = xlo % base;\n }\n zc[j] = c;\n }\n if (c) {\n ++e;\n } else {\n zc.splice(0, 1);\n }\n return normalise(y, zc, e);\n };\n\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\n P.negated = function () {\n var x = new BigNumber(this);\n x.s = -x.s || null;\n return x;\n };\n\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\n P.plus = function (y, b) {\n var t,\n x = this,\n a = x.s;\n y = new BigNumber(y, b);\n b = y.s;\n\n // Either NaN?\n if (!a || !b) return new BigNumber(NaN);\n\n // Signs differ?\n if (a != b) {\n y.s = -b;\n return x.minus(y);\n }\n var xe = x.e / LOG_BASE,\n ye = y.e / LOG_BASE,\n xc = x.c,\n yc = y.c;\n if (!xe || !ye) {\n // Return ±Infinity if either ±Infinity.\n if (!xc || !yc) return new BigNumber(a / 0);\n\n // Either zero?\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\n }\n xe = bitFloor(xe);\n ye = bitFloor(ye);\n xc = xc.slice();\n\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\n if (a = xe - ye) {\n if (a > 0) {\n ye = xe;\n t = yc;\n } else {\n a = -a;\n t = xc;\n }\n t.reverse();\n for (; a--; t.push(0));\n t.reverse();\n }\n a = xc.length;\n b = yc.length;\n\n // Point xc to the longer array, and b to the shorter length.\n if (a - b < 0) {\n t = yc;\n yc = xc;\n xc = t;\n b = a;\n }\n\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\n for (a = 0; b;) {\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\n }\n if (a) {\n xc = [a].concat(xc);\n ++ye;\n }\n\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\n // ye = MAX_EXP + 1 possible\n return normalise(y, xc, ye);\n };\n\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\n P.precision = P.sd = function (sd, rm) {\n var c,\n n,\n v,\n x = this;\n if (sd != null && sd !== !!sd) {\n intCheck(sd, 1, MAX);\n if (rm == null) rm = ROUNDING_MODE;else intCheck(rm, 0, 8);\n return round(new BigNumber(x), sd, rm);\n }\n if (!(c = x.c)) return null;\n v = c.length - 1;\n n = v * LOG_BASE + 1;\n if (v = c[v]) {\n // Subtract the number of trailing zeros of the last element.\n for (; v % 10 == 0; v /= 10, n--);\n\n // Add the number of digits of the first element.\n for (v = c[0]; v >= 10; v /= 10, n++);\n }\n if (sd && x.e + 1 > n) n = x.e + 1;\n return n;\n };\n\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\n P.shiftedBy = function (k) {\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\n return this.times('1e' + k);\n };\n\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\n P.squareRoot = P.sqrt = function () {\n var m,\n n,\n r,\n rep,\n t,\n x = this,\n c = x.c,\n s = x.s,\n e = x.e,\n dp = DECIMAL_PLACES + 4,\n half = new BigNumber('0.5');\n\n // Negative/NaN/Infinity/zero?\n if (s !== 1 || !c || !c[0]) {\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\n }\n\n // Initial estimate.\n s = Math.sqrt(+valueOf(x));\n\n // Math.sqrt underflow/overflow?\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\n if (s == 0 || s == 1 / 0) {\n n = coeffToString(c);\n if ((n.length + e) % 2 == 0) n += '0';\n s = Math.sqrt(+n);\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\n if (s == 1 / 0) {\n n = '5e' + e;\n } else {\n n = s.toExponential();\n n = n.slice(0, n.indexOf('e') + 1) + e;\n }\n r = new BigNumber(n);\n } else {\n r = new BigNumber(s + '');\n }\n\n // Check for zero.\n // r could be zero if MIN_EXP is changed after the this value was created.\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\n // coeffToString to throw.\n if (r.c[0]) {\n e = r.e;\n s = e + dp;\n if (s < 3) s = 0;\n\n // Newton-Raphson iteration.\n for (;;) {\n t = r;\n r = half.times(t.plus(div(x, t, dp, 1)));\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\n // The exponent of r may here be one less than the final result exponent,\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\n // are indexed correctly.\n if (r.e < e) --s;\n n = n.slice(s - 3, s + 1);\n\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\n // iteration.\n if (n == '9999' || !rep && n == '4999') {\n // On the first iteration only, check to see if rounding up gives the\n // exact result as the nines may infinitely repeat.\n if (!rep) {\n round(t, t.e + DECIMAL_PLACES + 2, 0);\n if (t.times(t).eq(x)) {\n r = t;\n break;\n }\n }\n dp += 4;\n s += 4;\n rep = 1;\n } else {\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\n // result. If not, then there are further digits and m will be truthy.\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\n // Truncate to the first rounding digit.\n round(r, r.e + DECIMAL_PLACES + 2, 1);\n m = !r.times(r).eq(x);\n }\n break;\n }\n }\n }\n }\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\n };\n\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\n P.toExponential = function (dp, rm) {\n if (dp != null) {\n intCheck(dp, 0, MAX);\n dp++;\n }\n return format(this, dp, rm, 1);\n };\n\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\n P.toFixed = function (dp, rm) {\n if (dp != null) {\n intCheck(dp, 0, MAX);\n dp = dp + this.e + 1;\n }\n return format(this, dp, rm);\n };\n\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\n P.toFormat = function (dp, rm, format) {\n var str,\n x = this;\n if (format == null) {\n if (dp != null && rm && typeof rm == 'object') {\n format = rm;\n rm = null;\n } else if (dp && typeof dp == 'object') {\n format = dp;\n dp = rm = null;\n } else {\n format = FORMAT;\n }\n } else if (typeof format != 'object') {\n throw Error(bignumberError + 'Argument not an object: ' + format);\n }\n str = x.toFixed(dp, rm);\n if (x.c) {\n var i,\n arr = str.split('.'),\n g1 = +format.groupSize,\n g2 = +format.secondaryGroupSize,\n groupSeparator = format.groupSeparator || '',\n intPart = arr[0],\n fractionPart = arr[1],\n isNeg = x.s < 0,\n intDigits = isNeg ? intPart.slice(1) : intPart,\n len = intDigits.length;\n if (g2) {\n i = g1;\n g1 = g2;\n g2 = i;\n len -= i;\n }\n if (g1 > 0 && len > 0) {\n i = len % g1 || g1;\n intPart = intDigits.substr(0, i);\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\n if (isNeg) intPart = '-' + intPart;\n }\n str = fractionPart ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize) ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'), '$&' + (format.fractionGroupSeparator || '')) : fractionPart) : intPart;\n }\n return (format.prefix || '') + str + (format.suffix || '');\n };\n\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\n P.toFraction = function (md) {\n var d,\n d0,\n d1,\n d2,\n e,\n exp,\n n,\n n0,\n n1,\n q,\n r,\n s,\n x = this,\n xc = x.c;\n if (md != null) {\n n = new BigNumber(md);\n\n // Throw if md is less than one or is not an integer, unless it is Infinity.\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\n throw Error(bignumberError + 'Argument ' + (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\n }\n }\n if (!xc) return new BigNumber(x);\n d = new BigNumber(ONE);\n n1 = d0 = new BigNumber(ONE);\n d1 = n0 = new BigNumber(ONE);\n s = coeffToString(xc);\n\n // Determine initial denominator.\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\n e = d.e = s.length - x.e - 1;\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\n md = !md || n.comparedTo(d) > 0 ? e > 0 ? d : n1 : n;\n exp = MAX_EXP;\n MAX_EXP = 1 / 0;\n n = new BigNumber(s);\n\n // n0 = d1 = 0\n n0.c[0] = 0;\n for (;;) {\n q = div(n, d, 0, 1);\n d2 = d0.plus(q.times(d1));\n if (d2.comparedTo(md) == 1) break;\n d0 = d1;\n d1 = d2;\n n1 = n0.plus(q.times(d2 = n1));\n n0 = d2;\n d = n.minus(q.times(d2 = d));\n n = d2;\n }\n d2 = div(md.minus(d0), d1, 0, 1);\n n0 = n0.plus(d2.times(n1));\n d0 = d0.plus(d2.times(d1));\n n0.s = n1.s = x.s;\n e = e * 2;\n\n // Determine which fraction is closer to x, n0/d0 or n1/d1\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\n MAX_EXP = exp;\n return r;\n };\n\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\n P.toNumber = function () {\n return +valueOf(this);\n };\n\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\n P.toPrecision = function (sd, rm) {\n if (sd != null) intCheck(sd, 1, MAX);\n return format(this, sd, rm, 2);\n };\n\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\n P.toString = function (b) {\n var str,\n n = this,\n s = n.s,\n e = n.e;\n\n // Infinity or NaN?\n if (e === null) {\n if (s) {\n str = 'Infinity';\n if (s < 0) str = '-' + str;\n } else {\n str = 'NaN';\n }\n } else {\n if (b == null) {\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(coeffToString(n.c), e) : toFixedPoint(coeffToString(n.c), e, '0');\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\n } else {\n intCheck(b, 2, ALPHABET.length, 'Base');\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\n }\n if (s < 0 && n.c[0]) str = '-' + str;\n }\n return str;\n };\n\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\n P.valueOf = P.toJSON = function () {\n return valueOf(this);\n };\n P._isBigNumber = true;\n P[Symbol.toStringTag] = 'BigNumber';\n\n // Node.js v10.12.0+\n P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\n if (configObject != null) BigNumber.set(configObject);\n return BigNumber;\n}\n\n// PRIVATE HELPER FUNCTIONS\n\n// These functions don't need access to variables,\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\n\nfunction bitFloor(n) {\n var i = n | 0;\n return n > 0 || n === i ? i : i - 1;\n}\n\n// Return a coefficient array as a string of base 10 digits.\nfunction coeffToString(a) {\n var s,\n z,\n i = 1,\n j = a.length,\n r = a[0] + '';\n for (; i < j;) {\n s = a[i++] + '';\n z = LOG_BASE - s.length;\n for (; z--; s = '0' + s);\n r += s;\n }\n\n // Determine trailing zeros.\n for (j = r.length; r.charCodeAt(--j) === 48;);\n return r.slice(0, j + 1 || 1);\n}\n\n// Compare the value of BigNumbers x and y.\nfunction compare(x, y) {\n var a,\n b,\n xc = x.c,\n yc = y.c,\n i = x.s,\n j = y.s,\n k = x.e,\n l = y.e;\n\n // Either NaN?\n if (!i || !j) return null;\n a = xc && !xc[0];\n b = yc && !yc[0];\n\n // Either zero?\n if (a || b) return a ? b ? 0 : -j : i;\n\n // Signs differ?\n if (i != j) return i;\n a = i < 0;\n b = k == l;\n\n // Either Infinity?\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\n\n // Compare exponents.\n if (!b) return k > l ^ a ? 1 : -1;\n j = (k = xc.length) < (l = yc.length) ? k : l;\n\n // Compare digit by digit.\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\n\n // Compare lengths.\n return k == l ? 0 : k > l ^ a ? 1 : -1;\n}\n\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\nfunction intCheck(n, min, max, name) {\n if (n < min || n > max || n !== mathfloor(n)) {\n throw Error(bignumberError + (name || 'Argument') + (typeof n == 'number' ? n < min || n > max ? ' out of range: ' : ' not an integer: ' : ' not a primitive number: ') + String(n));\n }\n}\n\n// Assumes finite n.\nfunction isOdd(n) {\n var k = n.c.length - 1;\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\n}\nfunction toExponential(str, e) {\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) + (e < 0 ? 'e' : 'e+') + e;\n}\nfunction toFixedPoint(str, e, z) {\n var len, zs;\n\n // Negative exponent?\n if (e < 0) {\n // Prepend zeros.\n for (zs = z + '.'; ++e; zs += z);\n str = zs + str;\n\n // Positive exponent\n } else {\n len = str.length;\n\n // Append zeros.\n if (++e > len) {\n for (zs = z, e -= len; --e; zs += z);\n str += zs;\n } else if (e < len) {\n str = str.slice(0, e) + '.' + str.slice(e);\n }\n }\n return str;\n}\n\n// EXPORT\n\nexport var BigNumber = clone();\nexport default BigNumber;","import { BigNumber } from \"bignumber.js\";\nvar RoundingModeMap;\n(function (RoundingModeMap) {\n RoundingModeMap[RoundingModeMap[\"up\"] = BigNumber.ROUND_UP] = \"up\";\n RoundingModeMap[RoundingModeMap[\"down\"] = BigNumber.ROUND_DOWN] = \"down\";\n RoundingModeMap[RoundingModeMap[\"truncate\"] = BigNumber.ROUND_DOWN] = \"truncate\";\n RoundingModeMap[RoundingModeMap[\"halfUp\"] = BigNumber.ROUND_HALF_UP] = \"halfUp\";\n RoundingModeMap[RoundingModeMap[\"default\"] = BigNumber.ROUND_HALF_UP] = \"default\";\n RoundingModeMap[RoundingModeMap[\"halfDown\"] = BigNumber.ROUND_HALF_DOWN] = \"halfDown\";\n RoundingModeMap[RoundingModeMap[\"halfEven\"] = BigNumber.ROUND_HALF_EVEN] = \"halfEven\";\n RoundingModeMap[RoundingModeMap[\"banker\"] = BigNumber.ROUND_HALF_EVEN] = \"banker\";\n RoundingModeMap[RoundingModeMap[\"ceiling\"] = BigNumber.ROUND_CEIL] = \"ceiling\";\n RoundingModeMap[RoundingModeMap[\"ceil\"] = BigNumber.ROUND_CEIL] = \"ceil\";\n RoundingModeMap[RoundingModeMap[\"floor\"] = BigNumber.ROUND_FLOOR] = \"floor\";\n})(RoundingModeMap || (RoundingModeMap = {}));\nexport function expandRoundMode(roundMode) {\n var _a;\n return (_a = RoundingModeMap[roundMode]) !== null && _a !== void 0 ? _a : RoundingModeMap.default;\n}","import { BigNumber } from \"bignumber.js\";\nimport { expandRoundMode } from \"./expandRoundMode\";\nfunction digitCount(numeric) {\n if (numeric.isZero()) {\n return 1;\n }\n return Math.floor(Math.log10(numeric.abs().toNumber()) + 1);\n}\nfunction getAbsolutePrecision(numeric, _ref) {\n let {\n precision,\n significant\n } = _ref;\n if (significant && precision !== null && precision > 0) {\n return precision - digitCount(numeric);\n }\n return precision;\n}\nexport function roundNumber(numeric, options) {\n const precision = getAbsolutePrecision(numeric, options);\n if (precision === null) {\n return numeric.toString();\n }\n const roundMode = expandRoundMode(options.roundMode);\n if (precision >= 0) {\n return numeric.toFixed(precision, roundMode);\n }\n const rounder = Math.pow(10, Math.abs(precision));\n numeric = new BigNumber(numeric.div(rounder).toFixed(0, roundMode)).times(rounder);\n return numeric.toString();\n}","import { BigNumber } from \"bignumber.js\";\nimport repeat from \"lodash/repeat\";\nimport { roundNumber } from \"./roundNumber\";\nfunction replaceInFormat(format, _ref) {\n let {\n formattedNumber,\n unit\n } = _ref;\n return format.replace(\"%n\", formattedNumber).replace(\"%u\", unit);\n}\nfunction computeSignificand(_ref2) {\n let {\n significand,\n whole,\n precision\n } = _ref2;\n if (whole === \"0\" || precision === null) {\n return significand;\n }\n const limit = Math.max(0, precision - whole.length);\n return (significand !== null && significand !== void 0 ? significand : \"\").substr(0, limit);\n}\nexport function formatNumber(input, options) {\n var _a, _b, _c;\n const originalNumber = new BigNumber(input);\n if (options.raise && !originalNumber.isFinite()) {\n throw new Error(`\"${input}\" is not a valid numeric value`);\n }\n const roundedNumber = roundNumber(originalNumber, options);\n const numeric = new BigNumber(roundedNumber);\n const isNegative = numeric.lt(0);\n const isZero = numeric.isZero();\n let [whole, significand] = roundedNumber.split(\".\");\n const buffer = [];\n let formattedNumber;\n const positiveFormat = (_a = options.format) !== null && _a !== void 0 ? _a : \"%n\";\n const negativeFormat = (_b = options.negativeFormat) !== null && _b !== void 0 ? _b : `-${positiveFormat}`;\n const format = isNegative && !isZero ? negativeFormat : positiveFormat;\n whole = whole.replace(\"-\", \"\");\n while (whole.length > 0) {\n buffer.unshift(whole.substr(Math.max(0, whole.length - 3), 3));\n whole = whole.substr(0, whole.length - 3);\n }\n whole = buffer.join(\"\");\n formattedNumber = buffer.join(options.delimiter);\n if (options.significant) {\n significand = computeSignificand({\n whole,\n significand,\n precision: options.precision\n });\n } else {\n significand = significand !== null && significand !== void 0 ? significand : repeat(\"0\", (_c = options.precision) !== null && _c !== void 0 ? _c : 0);\n }\n if (options.stripInsignificantZeros && significand) {\n significand = significand.replace(/0+$/, \"\");\n }\n if (originalNumber.isNaN()) {\n formattedNumber = input.toString();\n }\n if (significand && originalNumber.isFinite()) {\n formattedNumber += (options.separator || \".\") + significand;\n }\n return replaceInFormat(format, {\n formattedNumber,\n unit: options.unit\n });\n}","export function getFullScope(i18n, scope, options) {\n let result = \"\";\n if (scope instanceof String || typeof scope === \"string\") {\n result = scope;\n }\n if (scope instanceof Array) {\n result = scope.join(i18n.defaultSeparator);\n }\n if (options.scope) {\n result = [options.scope, result].join(i18n.defaultSeparator);\n }\n return result;\n}","export function inferType(instance) {\n var _a, _b;\n if (instance === null) {\n return \"null\";\n }\n const type = typeof instance;\n if (type !== \"object\") {\n return type;\n }\n return ((_b = (_a = instance === null || instance === void 0 ? void 0 : instance.constructor) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.toLowerCase()) || \"object\";\n}","import { isSet } from \"./isSet\";\nexport function interpolate(i18n, message, options) {\n options = Object.keys(options).reduce((buffer, key) => {\n buffer[i18n.transformKey(key)] = options[key];\n return buffer;\n }, {});\n const matches = message.match(i18n.placeholder);\n if (!matches) {\n return message;\n }\n while (matches.length) {\n let value;\n const placeholder = matches.shift();\n const name = placeholder.replace(i18n.placeholder, \"$1\");\n if (isSet(options[name])) {\n value = options[name].toString().replace(/\\$/gm, \"_#$#_\");\n } else if (name in options) {\n value = i18n.nullPlaceholder(i18n, placeholder, message, options);\n } else {\n value = i18n.missingPlaceholder(i18n, placeholder, message, options);\n }\n const regex = new RegExp(placeholder.replace(/\\{/gm, \"\\\\{\").replace(/\\}/gm, \"\\\\}\"), \"g\");\n message = message.replace(regex, value);\n }\n return message.replace(/_#\\$#_/g, \"$\");\n}","import { isSet } from \"./isSet\";\nimport { getFullScope } from \"./getFullScope\";\nimport { inferType } from \"./inferType\";\nexport function lookup(i18n, scope) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n options = Object.assign({}, options);\n const locale = \"locale\" in options ? options.locale : i18n.locale;\n const localeType = inferType(locale);\n const locales = i18n.locales.get(localeType === \"string\" ? locale : typeof locale).slice();\n const keys = getFullScope(i18n, scope, options).split(i18n.defaultSeparator).map(component => i18n.transformKey(component));\n const entries = locales.map(locale => keys.reduce((path, key) => path && path[key], i18n.translations[locale]));\n entries.push(options.defaultValue);\n return entries.find(entry => isSet(entry));\n}","import { BigNumber } from \"bignumber.js\";\nimport sortBy from \"lodash/sortBy\";\nimport zipObject from \"lodash/zipObject\";\nimport { getFullScope } from \"./getFullScope\";\nimport { lookup } from \"./lookup\";\nimport { roundNumber } from \"./roundNumber\";\nimport { inferType } from \"./inferType\";\nconst DECIMAL_UNITS = {\n \"0\": \"unit\",\n \"1\": \"ten\",\n \"2\": \"hundred\",\n \"3\": \"thousand\",\n \"6\": \"million\",\n \"9\": \"billion\",\n \"12\": \"trillion\",\n \"15\": \"quadrillion\",\n \"-1\": \"deci\",\n \"-2\": \"centi\",\n \"-3\": \"mili\",\n \"-6\": \"micro\",\n \"-9\": \"nano\",\n \"-12\": \"pico\",\n \"-15\": \"femto\"\n};\nconst INVERTED_DECIMAL_UNITS = zipObject(Object.values(DECIMAL_UNITS), Object.keys(DECIMAL_UNITS).map(key => parseInt(key, 10)));\nexport function numberToHuman(i18n, input, options) {\n const roundOptions = {\n roundMode: options.roundMode,\n precision: options.precision,\n significant: options.significant\n };\n let units;\n if (inferType(options.units) === \"string\") {\n const scope = options.units;\n units = lookup(i18n, scope);\n if (!units) {\n throw new Error(`The scope \"${i18n.locale}${i18n.defaultSeparator}${getFullScope(i18n, scope, {})}\" couldn't be found`);\n }\n } else {\n units = options.units;\n }\n let formattedNumber = roundNumber(new BigNumber(input), roundOptions);\n const unitExponents = units => sortBy(Object.keys(units).map(name => INVERTED_DECIMAL_UNITS[name]), numeric => numeric * -1);\n const calculateExponent = (num, units) => {\n const exponent = num.isZero() ? 0 : Math.floor(Math.log10(num.abs().toNumber()));\n return unitExponents(units).find(exp => exponent >= exp) || 0;\n };\n const determineUnit = (units, exponent) => {\n const expName = DECIMAL_UNITS[exponent.toString()];\n return units[expName] || \"\";\n };\n const exponent = calculateExponent(new BigNumber(formattedNumber), units);\n const unit = determineUnit(units, exponent);\n formattedNumber = roundNumber(new BigNumber(formattedNumber).div(Math.pow(10, exponent)), roundOptions);\n if (options.stripInsignificantZeros) {\n let [whole, significand] = formattedNumber.split(\".\");\n significand = (significand || \"\").replace(/0+$/, \"\");\n formattedNumber = whole;\n if (significand) {\n formattedNumber += `${options.separator}${significand}`;\n }\n }\n return options.format.replace(\"%n\", formattedNumber || \"0\").replace(\"%u\", unit).trim();\n}","import { BigNumber } from \"bignumber.js\";\nimport { roundNumber } from \"./roundNumber\";\nimport { expandRoundMode } from \"./expandRoundMode\";\nconst STORAGE_UNITS = [\"byte\", \"kb\", \"mb\", \"gb\", \"tb\", \"pb\", \"eb\"];\nexport function numberToHumanSize(i18n, input, options) {\n const roundMode = expandRoundMode(options.roundMode);\n const base = 1024;\n const num = new BigNumber(input).abs();\n const smallerThanBase = num.lt(base);\n let numberToBeFormatted;\n const computeExponent = (numeric, units) => {\n const max = units.length - 1;\n const exp = new BigNumber(Math.log(numeric.toNumber())).div(Math.log(base)).integerValue(BigNumber.ROUND_DOWN).toNumber();\n return Math.min(max, exp);\n };\n const storageUnitKey = units => {\n const keyEnd = smallerThanBase ? \"byte\" : units[exponent];\n return `number.human.storage_units.units.${keyEnd}`;\n };\n const exponent = computeExponent(num, STORAGE_UNITS);\n if (smallerThanBase) {\n numberToBeFormatted = num.integerValue();\n } else {\n numberToBeFormatted = new BigNumber(roundNumber(num.div(Math.pow(base, exponent)), {\n significant: options.significant,\n precision: options.precision,\n roundMode: options.roundMode\n }));\n }\n const format = i18n.translate(\"number.human.storage_units.format\", {\n defaultValue: \"%n %u\"\n });\n const unit = i18n.translate(storageUnitKey(STORAGE_UNITS), {\n count: num.integerValue().toNumber()\n });\n let formattedNumber = numberToBeFormatted.toFixed(options.precision, roundMode);\n if (options.stripInsignificantZeros) {\n formattedNumber = formattedNumber.replace(/(\\..*?)0+$/, \"$1\").replace(/\\.$/, \"\");\n }\n return format.replace(\"%n\", formattedNumber).replace(\"%u\", unit);\n}","export function parseDate(input) {\n if (input instanceof Date) {\n return input;\n }\n if (typeof input === \"number\") {\n const date = new Date();\n date.setTime(input);\n return date;\n }\n const matches = new String(input).match(/(\\d{4})-(\\d{2})-(\\d{2})(?:[ T](\\d{2}):(\\d{2}):(\\d{2})(?:[.,](\\d{1,3}))?)?(Z|\\+00:?00)?/);\n if (matches) {\n const parts = matches.slice(1, 8).map(match => parseInt(match, 10) || 0);\n parts[1] -= 1;\n const [year, month, day, hour, minute, second, milliseconds] = parts;\n const timezone = matches[8];\n if (timezone) {\n return new Date(Date.UTC(year, month, day, hour, minute, second, milliseconds));\n } else {\n return new Date(year, month, day, hour, minute, second, milliseconds);\n }\n }\n if (input.match(/([A-Z][a-z]{2}) ([A-Z][a-z]{2}) (\\d+) (\\d+:\\d+:\\d+) ([+-]\\d+) (\\d+)/)) {\n const date = new Date();\n date.setTime(Date.parse([RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$6, RegExp.$4, RegExp.$5].join(\" \")));\n }\n const date = new Date();\n date.setTime(Date.parse(input));\n return date;\n}","import { isSet } from \"./isSet\";\nimport { lookup } from \"./lookup\";\nexport function pluralize(_ref) {\n let {\n i18n,\n count,\n scope,\n options,\n baseScope\n } = _ref;\n options = Object.assign({}, options);\n let translations;\n let message;\n if (typeof scope === \"object\" && scope) {\n translations = scope;\n } else {\n translations = lookup(i18n, scope, options);\n }\n if (!translations) {\n return i18n.missingTranslation.get(scope, options);\n }\n const pluralizer = i18n.pluralization.get(options.locale);\n const keys = pluralizer(i18n, count);\n const missingKeys = [];\n while (keys.length) {\n const key = keys.shift();\n if (isSet(translations[key])) {\n message = translations[key];\n break;\n }\n missingKeys.push(key);\n }\n if (!isSet(message)) {\n return i18n.missingTranslation.get(baseScope.split(i18n.defaultSeparator).concat([missingKeys[0]]), options);\n }\n options.count = count;\n return i18n.interpolate(i18n, message, options);\n}","const DEFAULT_OPTIONS = {\n meridian: {\n am: \"AM\",\n pm: \"PM\"\n },\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n abbrDayNames: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n monthNames: [null, \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n abbrMonthNames: [null, \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n};\nexport function strftime(date, format) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const {\n abbrDayNames,\n dayNames,\n abbrMonthNames,\n monthNames,\n meridian: AM_PM,\n utc\n } = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options);\n if (isNaN(date.getTime())) {\n throw new Error(\"strftime() requires a valid date object, but received an invalid date.\");\n }\n const weekDay = utc ? date.getUTCDay() : date.getDay();\n const day = utc ? date.getUTCDate() : date.getDate();\n const year = utc ? date.getUTCFullYear() : date.getFullYear();\n const month = (utc ? date.getUTCMonth() : date.getMonth()) + 1;\n const hour = utc ? date.getUTCHours() : date.getHours();\n let hour12 = hour;\n const meridian = hour > 11 ? \"pm\" : \"am\";\n const secs = utc ? date.getUTCSeconds() : date.getSeconds();\n const mins = utc ? date.getUTCMinutes() : date.getMinutes();\n const offset = utc ? 0 : date.getTimezoneOffset();\n const absOffsetHours = Math.floor(Math.abs(offset / 60));\n const absOffsetMinutes = Math.abs(offset) - absOffsetHours * 60;\n const timezoneoffset = (offset > 0 ? \"-\" : \"+\") + (absOffsetHours.toString().length < 2 ? \"0\" + absOffsetHours : absOffsetHours) + (absOffsetMinutes.toString().length < 2 ? \"0\" + absOffsetMinutes : absOffsetMinutes);\n if (hour12 > 12) {\n hour12 = hour12 - 12;\n } else if (hour12 === 0) {\n hour12 = 12;\n }\n format = format.replace(\"%a\", abbrDayNames[weekDay]);\n format = format.replace(\"%A\", dayNames[weekDay]);\n format = format.replace(\"%b\", abbrMonthNames[month]);\n format = format.replace(\"%B\", monthNames[month]);\n format = format.replace(\"%d\", day.toString().padStart(2, \"0\"));\n format = format.replace(\"%e\", day.toString());\n format = format.replace(\"%-d\", day.toString());\n format = format.replace(\"%H\", hour.toString().padStart(2, \"0\"));\n format = format.replace(\"%-H\", hour.toString());\n format = format.replace(\"%k\", hour.toString());\n format = format.replace(\"%I\", hour12.toString().padStart(2, \"0\"));\n format = format.replace(\"%-I\", hour12.toString());\n format = format.replace(\"%l\", hour12.toString());\n format = format.replace(\"%m\", month.toString().padStart(2, \"0\"));\n format = format.replace(\"%-m\", month.toString());\n format = format.replace(\"%M\", mins.toString().padStart(2, \"0\"));\n format = format.replace(\"%-M\", mins.toString());\n format = format.replace(\"%p\", AM_PM[meridian]);\n format = format.replace(\"%P\", AM_PM[meridian].toLowerCase());\n format = format.replace(\"%S\", secs.toString().padStart(2, \"0\"));\n format = format.replace(\"%-S\", secs.toString());\n format = format.replace(\"%w\", weekDay.toString());\n format = format.replace(\"%y\", year.toString().padStart(2, \"0\").substr(-2));\n format = format.replace(\"%-y\", year.toString().padStart(2, \"0\").substr(-2).replace(/^0+/, \"\"));\n format = format.replace(\"%Y\", year.toString());\n format = format.replace(/%z/i, timezoneoffset);\n return format;\n}","import range from \"lodash/range\";\nimport { parseDate } from \"./parseDate\";\nconst within = (start, end, actual) => actual >= start && actual <= end;\nexport function timeAgoInWords(i18n, fromTime, toTime) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const scope = options.scope || \"datetime.distance_in_words\";\n const t = function (name) {\n let count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return i18n.t(name, {\n count,\n scope\n });\n };\n fromTime = parseDate(fromTime);\n toTime = parseDate(toTime);\n let fromInSeconds = fromTime.getTime() / 1000;\n let toInSeconds = toTime.getTime() / 1000;\n if (fromInSeconds > toInSeconds) {\n [fromTime, toTime, fromInSeconds, toInSeconds] = [toTime, fromTime, toInSeconds, fromInSeconds];\n }\n const distanceInSeconds = Math.round(toInSeconds - fromInSeconds);\n const distanceInMinutes = Math.round((toInSeconds - fromInSeconds) / 60);\n const distanceInHours = distanceInMinutes / 60;\n const distanceInDays = distanceInHours / 24;\n const distanceInHoursRounded = Math.round(distanceInMinutes / 60);\n const distanceInDaysRounded = Math.round(distanceInDays);\n const distanceInMonthsRounded = Math.round(distanceInDaysRounded / 30);\n if (within(0, 1, distanceInMinutes)) {\n if (!options.includeSeconds) {\n return distanceInMinutes === 0 ? t(\"less_than_x_minutes\", 1) : t(\"x_minutes\", distanceInMinutes);\n }\n if (within(0, 4, distanceInSeconds)) {\n return t(\"less_than_x_seconds\", 5);\n }\n if (within(5, 9, distanceInSeconds)) {\n return t(\"less_than_x_seconds\", 10);\n }\n if (within(10, 19, distanceInSeconds)) {\n return t(\"less_than_x_seconds\", 20);\n }\n if (within(20, 39, distanceInSeconds)) {\n return t(\"half_a_minute\");\n }\n if (within(40, 59, distanceInSeconds)) {\n return t(\"less_than_x_minutes\", 1);\n }\n return t(\"x_minutes\", 1);\n }\n if (within(2, 44, distanceInMinutes)) {\n return t(\"x_minutes\", distanceInMinutes);\n }\n if (within(45, 89, distanceInMinutes)) {\n return t(\"about_x_hours\", 1);\n }\n if (within(90, 1439, distanceInMinutes)) {\n return t(\"about_x_hours\", distanceInHoursRounded);\n }\n if (within(1440, 2519, distanceInMinutes)) {\n return t(\"x_days\", 1);\n }\n if (within(2520, 43199, distanceInMinutes)) {\n return t(\"x_days\", distanceInDaysRounded);\n }\n if (within(43200, 86399, distanceInMinutes)) {\n return t(\"about_x_months\", Math.round(distanceInMinutes / 43200));\n }\n if (within(86400, 525599, distanceInMinutes)) {\n return t(\"x_months\", distanceInMonthsRounded);\n }\n let fromYear = fromTime.getFullYear();\n if (fromTime.getMonth() + 1 >= 3) {\n fromYear += 1;\n }\n let toYear = toTime.getFullYear();\n if (toTime.getMonth() + 1 < 3) {\n toYear -= 1;\n }\n const leapYears = fromYear > toYear ? 0 : range(fromYear, toYear).filter(year => new Date(year, 1, 29).getMonth() == 1).length;\n const minutesInYear = 525600;\n const minuteOffsetForLeapYear = leapYears * 1440;\n const minutesWithOffset = distanceInMinutes - minuteOffsetForLeapYear;\n const distanceInYears = Math.trunc(minutesWithOffset / minutesInYear);\n const diff = parseFloat((minutesWithOffset / minutesInYear - distanceInYears).toPrecision(3));\n if (diff < 0.25) {\n return t(\"about_x_years\", distanceInYears);\n }\n if (diff < 0.75) {\n return t(\"over_x_years\", distanceInYears);\n }\n return t(\"almost_x_years\", distanceInYears + 1);\n}","import { getFullScope, inferType } from \"./helpers\";\nexport const guessStrategy = function (i18n, scope) {\n if (scope instanceof Array) {\n scope = scope.join(i18n.defaultSeparator);\n }\n const message = scope.split(i18n.defaultSeparator).slice(-1)[0];\n return i18n.missingTranslationPrefix + message.replace(\"_\", \" \").replace(/([a-z])([A-Z])/g, (_match, p1, p2) => `${p1} ${p2.toLowerCase()}`);\n};\nexport const messageStrategy = (i18n, scope, options) => {\n const fullScope = getFullScope(i18n, scope, options);\n const locale = \"locale\" in options ? options.locale : i18n.locale;\n const localeType = inferType(locale);\n const fullScopeWithLocale = [localeType == \"string\" ? locale : localeType, fullScope].join(i18n.defaultSeparator);\n return `[missing \"${fullScopeWithLocale}\" translation]`;\n};\nexport const errorStrategy = (i18n, scope, options) => {\n const fullScope = getFullScope(i18n, scope, options);\n const fullScopeWithLocale = [i18n.locale, fullScope].join(i18n.defaultSeparator);\n throw new Error(`Missing translation: ${fullScopeWithLocale}`);\n};\nexport class MissingTranslation {\n constructor(i18n) {\n this.i18n = i18n;\n this.registry = {};\n this.register(\"guess\", guessStrategy);\n this.register(\"message\", messageStrategy);\n this.register(\"error\", errorStrategy);\n }\n register(name, strategy) {\n this.registry[name] = strategy;\n }\n get(scope, options) {\n var _a;\n return this.registry[(_a = options.missingBehavior) !== null && _a !== void 0 ? _a : this.i18n.missingBehavior](this.i18n, scope, options);\n }\n}","function _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function () { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function (t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == typeof h && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function (t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator.return && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(typeof e + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function (e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function () { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function (e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function (t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function (t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function (t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function (t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function (e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport get from \"lodash/get\";\nimport has from \"lodash/has\";\nimport merge from \"lodash/merge\";\nimport { Locales } from \"./Locales\";\nimport { Pluralization } from \"./Pluralization\";\nimport { MissingTranslation } from \"./MissingTranslation\";\nimport { camelCaseKeys, createTranslationOptions, formatNumber, getFullScope, inferType, interpolate, isSet, lookup, numberToDelimited, numberToHuman, numberToHumanSize, parseDate, pluralize, strftime, timeAgoInWords } from \"./helpers\";\nconst DEFAULT_I18N_OPTIONS = {\n defaultLocale: \"en\",\n locale: \"en\",\n defaultSeparator: \".\",\n placeholder: /(?:\\{\\{|%\\{)(.*?)(?:\\}\\}?)/gm,\n enableFallback: false,\n missingBehavior: \"message\",\n missingTranslationPrefix: \"\",\n missingPlaceholder: (_i18n, placeholder) => `[missing \"${placeholder}\" value]`,\n nullPlaceholder: (i18n, placeholder, message, options) => i18n.missingPlaceholder(i18n, placeholder, message, options),\n transformKey: key => key\n};\nexport class I18n {\n constructor() {\n let translations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this._locale = DEFAULT_I18N_OPTIONS.locale;\n this._defaultLocale = DEFAULT_I18N_OPTIONS.defaultLocale;\n this._version = 0;\n this.onChangeHandlers = [];\n this.translations = {};\n this.t = this.translate;\n this.p = this.pluralize;\n this.l = this.localize;\n this.distanceOfTimeInWords = this.timeAgoInWords;\n const {\n locale,\n enableFallback,\n missingBehavior,\n missingTranslationPrefix,\n missingPlaceholder,\n nullPlaceholder,\n defaultLocale,\n defaultSeparator,\n placeholder,\n transformKey\n } = Object.assign(Object.assign({}, DEFAULT_I18N_OPTIONS), options);\n this.locale = locale;\n this.defaultLocale = defaultLocale;\n this.defaultSeparator = defaultSeparator;\n this.enableFallback = enableFallback;\n this.locale = locale;\n this.missingBehavior = missingBehavior;\n this.missingTranslationPrefix = missingTranslationPrefix;\n this.missingPlaceholder = missingPlaceholder;\n this.nullPlaceholder = nullPlaceholder;\n this.placeholder = placeholder;\n this.pluralization = new Pluralization(this);\n this.locales = new Locales(this);\n this.missingTranslation = new MissingTranslation(this);\n this.transformKey = transformKey;\n this.interpolate = interpolate;\n this.store(translations);\n }\n store(translations) {\n merge(this.translations, translations);\n this.hasChanged();\n }\n get locale() {\n return this._locale || this.defaultLocale || \"en\";\n }\n set locale(newLocale) {\n if (typeof newLocale !== \"string\") {\n throw new Error(`Expected newLocale to be a string; got ${inferType(newLocale)}`);\n }\n const changed = this._locale !== newLocale;\n this._locale = newLocale;\n if (changed) {\n this.hasChanged();\n }\n }\n get defaultLocale() {\n return this._defaultLocale || \"en\";\n }\n set defaultLocale(newLocale) {\n if (typeof newLocale !== \"string\") {\n throw new Error(`Expected newLocale to be a string; got ${inferType(newLocale)}`);\n }\n const changed = this._defaultLocale !== newLocale;\n this._defaultLocale = newLocale;\n if (changed) {\n this.hasChanged();\n }\n }\n translate(scope, options) {\n options = Object.assign({}, options);\n const translationOptions = createTranslationOptions(this, scope, options);\n let translation;\n const hasFoundTranslation = translationOptions.some(translationOption => {\n if (isSet(translationOption.scope)) {\n translation = lookup(this, translationOption.scope, options);\n } else if (isSet(translationOption.message)) {\n translation = translationOption.message;\n }\n return translation !== undefined && translation !== null;\n });\n if (!hasFoundTranslation) {\n return this.missingTranslation.get(scope, options);\n }\n if (typeof translation === \"string\") {\n translation = this.interpolate(this, translation, options);\n } else if (typeof translation === \"object\" && translation && isSet(options.count)) {\n translation = pluralize({\n i18n: this,\n count: options.count || 0,\n scope: translation,\n options,\n baseScope: getFullScope(this, scope, options)\n });\n }\n if (options && translation instanceof Array) {\n translation = translation.map(entry => typeof entry === \"string\" ? interpolate(this, entry, options) : entry);\n }\n return translation;\n }\n pluralize(count, scope, options) {\n return pluralize({\n i18n: this,\n count,\n scope,\n options: Object.assign({}, options),\n baseScope: getFullScope(this, scope, options !== null && options !== void 0 ? options : {})\n });\n }\n localize(type, value, options) {\n options = Object.assign({}, options);\n if (value === undefined || value === null) {\n return \"\";\n }\n switch (type) {\n case \"currency\":\n return this.numberToCurrency(value);\n case \"number\":\n return formatNumber(value, Object.assign({\n delimiter: \",\",\n precision: 3,\n separator: \".\",\n significant: false,\n stripInsignificantZeros: false\n }, lookup(this, \"number.format\")));\n case \"percentage\":\n return this.numberToPercentage(value);\n default:\n {\n let localizedValue;\n if (type.match(/^(date|time)/)) {\n localizedValue = this.toTime(type, value);\n } else {\n localizedValue = value.toString();\n }\n return interpolate(this, localizedValue, options);\n }\n }\n }\n toTime(scope, input) {\n const date = parseDate(input);\n const format = lookup(this, scope);\n if (date.toString().match(/invalid/i)) {\n return date.toString();\n }\n if (!format) {\n return date.toString();\n }\n return this.strftime(date, format);\n }\n numberToCurrency(input) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return formatNumber(input, Object.assign(Object.assign(Object.assign({\n delimiter: \",\",\n format: \"%u%n\",\n precision: 2,\n separator: \".\",\n significant: false,\n stripInsignificantZeros: false,\n unit: \"$\"\n }, camelCaseKeys(this.get(\"number.format\"))), camelCaseKeys(this.get(\"number.currency.format\"))), options));\n }\n numberToPercentage(input) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return formatNumber(input, Object.assign(Object.assign(Object.assign({\n delimiter: \"\",\n format: \"%n%\",\n precision: 3,\n stripInsignificantZeros: false,\n separator: \".\",\n significant: false\n }, camelCaseKeys(this.get(\"number.format\"))), camelCaseKeys(this.get(\"number.percentage.format\"))), options));\n }\n numberToHumanSize(input) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return numberToHumanSize(this, input, Object.assign(Object.assign(Object.assign({\n delimiter: \"\",\n precision: 3,\n significant: true,\n stripInsignificantZeros: true,\n units: {\n billion: \"Billion\",\n million: \"Million\",\n quadrillion: \"Quadrillion\",\n thousand: \"Thousand\",\n trillion: \"Trillion\",\n unit: \"\"\n }\n }, camelCaseKeys(this.get(\"number.human.format\"))), camelCaseKeys(this.get(\"number.human.storage_units\"))), options));\n }\n numberToHuman(input) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return numberToHuman(this, input, Object.assign(Object.assign(Object.assign({\n delimiter: \"\",\n separator: \".\",\n precision: 3,\n significant: true,\n stripInsignificantZeros: true,\n format: \"%n %u\",\n roundMode: \"default\",\n units: {\n billion: \"Billion\",\n million: \"Million\",\n quadrillion: \"Quadrillion\",\n thousand: \"Thousand\",\n trillion: \"Trillion\",\n unit: \"\"\n }\n }, camelCaseKeys(this.get(\"number.human.format\"))), camelCaseKeys(this.get(\"number.human.decimal_units\"))), options));\n }\n numberToRounded(input, options) {\n return formatNumber(input, Object.assign({\n unit: \"\",\n precision: 3,\n significant: false,\n separator: \".\",\n delimiter: \"\",\n stripInsignificantZeros: false\n }, options));\n }\n numberToDelimited(input) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return numberToDelimited(input, Object.assign({\n delimiterPattern: /(\\d)(?=(\\d\\d\\d)+(?!\\d))/g,\n delimiter: \",\",\n separator: \".\"\n }, options));\n }\n withLocale(locale, callback) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var originalLocale;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n originalLocale = this.locale;\n _context.prev = 1;\n this.locale = locale;\n _context.next = 5;\n return callback();\n case 5:\n _context.prev = 5;\n this.locale = originalLocale;\n return _context.finish(5);\n case 8:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this, [[1,, 5, 8]]);\n }));\n }\n strftime(date, format) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return strftime(date, format, Object.assign(Object.assign(Object.assign({}, camelCaseKeys(lookup(this, \"date\"))), {\n meridian: {\n am: lookup(this, \"time.am\") || \"AM\",\n pm: lookup(this, \"time.pm\") || \"PM\"\n }\n }), options));\n }\n update(path, override) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n strict: false\n };\n if (options.strict && !has(this.translations, path)) {\n throw new Error(`The path \"${path}\" is not currently defined`);\n }\n const currentNode = get(this.translations, path);\n const currentType = inferType(currentNode);\n const overrideType = inferType(override);\n if (options.strict && currentType !== overrideType) {\n throw new Error(`The current type for \"${path}\" is \"${currentType}\", but you're trying to override it with \"${overrideType}\"`);\n }\n let newNode;\n if (overrideType === \"object\") {\n newNode = Object.assign(Object.assign({}, currentNode), override);\n } else {\n newNode = override;\n }\n const components = path.split(this.defaultSeparator);\n const prop = components.pop();\n let buffer = this.translations;\n for (const component of components) {\n if (!buffer[component]) {\n buffer[component] = {};\n }\n buffer = buffer[component];\n }\n buffer[prop] = newNode;\n this.hasChanged();\n }\n toSentence(items) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n wordsConnector,\n twoWordsConnector,\n lastWordConnector\n } = Object.assign(Object.assign({\n wordsConnector: \", \",\n twoWordsConnector: \" and \",\n lastWordConnector: \", and \"\n }, camelCaseKeys(lookup(this, \"support.array\"))), options);\n const size = items.length;\n switch (size) {\n case 0:\n return \"\";\n case 1:\n return `${items[0]}`;\n case 2:\n return items.join(twoWordsConnector);\n default:\n return [items.slice(0, size - 1).join(wordsConnector), lastWordConnector, items[size - 1]].join(\"\");\n }\n }\n timeAgoInWords(fromTime, toTime) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return timeAgoInWords(this, fromTime, toTime, options);\n }\n onChange(callback) {\n this.onChangeHandlers.push(callback);\n return () => {\n this.onChangeHandlers.splice(this.onChangeHandlers.indexOf(callback), 1);\n };\n }\n get version() {\n return this._version;\n }\n formatNumber(input) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options = Object.assign(Object.assign({\n delimiter: \",\",\n precision: 3,\n separator: \".\",\n unit: \"\",\n format: \"%u%n\",\n significant: false,\n stripInsignificantZeros: false\n }, camelCaseKeys(this.get(\"number.format\"))), options);\n return formatNumber(input, options);\n }\n get(scope) {\n return lookup(this, scope);\n }\n runCallbacks() {\n this.onChangeHandlers.forEach(callback => callback(this));\n }\n hasChanged() {\n this._version += 1;\n this.runCallbacks();\n }\n}","/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\n\nimport Moment from 'moment'\nimport momentLocalizer from 'react-widgets-moment';\n\nMoment.locale('en')\nmomentLocalizer()\n\n// Support component names relative to this directory:\nimport \"core-js/stable\";\nimport \"regenerator-runtime/runtime\";\n\nrequire(\"@rails/ujs\").start();\nrequire(\"turbolinks\").start();\n\nconst componentRequireContext = require.context(\"components\", true);\nconst ReactRailsUJS = require(\"react_ujs\");\nReactRailsUJS.useContext(componentRequireContext);\n\nimport '../src/account_menu';\nimport '../src/disabling_checkbox';\nimport '../src/navigation_menu';\nimport '../src/reset_password_link';\n\nimport { I18n } from \"i18n-js\";\nimport translations from \"../locales.json\";\nwindow.i18n = new I18n(translations);\n\nrequire(\"trix\")\nrequire(\"@rails/actiontext\")\n","import { isSet } from \"./isSet\";\nexport function createTranslationOptions(i18n, scope, options) {\n let translationOptions = [{\n scope\n }];\n if (isSet(options.defaults)) {\n translationOptions = translationOptions.concat(options.defaults);\n }\n if (isSet(options.defaultValue)) {\n const message = typeof options.defaultValue === \"function\" ? options.defaultValue(i18n, scope, options) : options.defaultValue;\n translationOptions.push({\n message\n });\n delete options.defaultValue;\n }\n return translationOptions;\n}","import { BigNumber } from \"bignumber.js\";\nexport function numberToDelimited(input, options) {\n const numeric = new BigNumber(input);\n if (!numeric.isFinite()) {\n return input.toString();\n }\n if (!options.delimiterPattern.global) {\n throw new Error(`options.delimiterPattern must be a global regular expression; received ${options.delimiterPattern}`);\n }\n let [left, right] = numeric.toString().split(\".\");\n left = left.replace(options.delimiterPattern, digitToDelimiter => `${digitToDelimiter}${options.delimiter}`);\n return [left, right].filter(Boolean).join(options.separator);\n}"],"sourceRoot":""}