{"version":3,"file":"static/js/main.b08acff2.js","mappings":"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MAAO,CAAC,GAAI,IACZC,UAAW,CAAC,gBAAiB,KAC7BC,YAAa,CAAC,eAAgB,KAC9BC,SAAU,CAAC,gBAAiB,KAC5BC,OAAQ,CAAC,GAAI,IACbC,OAAQ,CAAC,iBAAkB,IAC3BC,OAAQ,CAAC,eAAgB,KACzBC,OAAQ,CAAC,iBAAkB,IAC3BC,OAAQ,CAAC,iBAAkB,IAC3BC,OAAQ,CAAC,iBAAkB,IAC3BC,QAAS,CAAC,GAAI,KACdC,YAAa,CAAC,iBAAkB,IAChCC,MAAO,CAAC,iBAAkB,IAC1BC,QAAS,CAAC,GAAI,MAGZC,GAAsB,CAC1B,2FACA,8OACA,2FACA,2FACA,2FACA,2FACA,2FACA,8OACA,8OACA,2OACA,2OACA,6OACA,+OACA,2FACA,8OACA,2FACA,2FACA,2FACA,2FACA,6OACA,6FACA,2FACA,2FACA,2FACA,2FACA,6OACA,6OACA,8OACA,2OACA,8OACA,2OACA,2OACA,2FACA,2OACA,6OACA,2FACA,2FACA,2FACA,4FACA,2FACA,2FACA,2FACA,2OACA,2FACA,6FACA,2FACA,2FACA,2FACA,0OACA,2FACA,2FACA,2FACA,2FACA,6FACA,2FACA,2FACA,8OACA,8OACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,0OACA,2OACA,2OACA,2FACA,2FACA,2FACA,2FACA,6OACA,4FACA,6OACA,6OACA,4FACA,4FACA,6OACA,6FACA,2FACA,6OACA,4FACA,2FACA,2FACA,2FACA,6FACA,2FACA,6FACA,2FACA,8OACA,6FACA,8OACA,6OACA,2FACA,6OACA,2OACA,6OACA,2OACA,2OACA,2OACA,2OACA,2FACA,2FACA,2FACA,4FACA,4FAEF,SAASC,GAAkBC,GACzB,MAAMC,EAAYD,EAAO9qO,MAAM,KAC/B,OACwB,IAArB+qO,EAAUhuO,QACPsrN,GAAa,GAADxlN,OAAIkoO,EAAU,MACzB1iB,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,GAAc,CAAC,QAAS,SAAU,OAAQ,QAAS,aAAc,UAAW,SAC5EC,GAAyB,CAAC,QAAS,SAAU,QAC7CC,GAA8B,CAAC,WAC/BC,GAAwB,CAAC,QACzBC,GAAa,GACbC,GAAe,CACnB,QACA,WACA,aACA,OACA,QACA,cACA,YACA,YACA,UACA,UACA,WACA,YACA,WACA,SACA,MACA,YACA,WACA,UACA,SACA,aACA,mBACA,mBACA,qBACA,wBACA,uBACA,WACA,sBACA,mBACA,eACA,UACA,UACA,YACA,UACA,gBACA,aACA,eACA,YACA,cACA,UACA,iBACA,eACA,gBACA,sBACA,oBACA,cACA,iBACA,gBACA,eACA,OACA,QACA,SACA,aACA,eACA,YACA,YACA,WACA,eACA,qBACA,mBACA,aACA,YACA,WACA,SACA,aACA,mBACA,QACA,aACA,UACA,cACA,eACA,OACA,KACA,YACA,OAEIC,GAAkB,CACtB,QACA,WACA,WACA,SACA,OACA,SACA,aACA,eACA,YACA,YACA,WACA,qBACA,mBACA,aACA,YACA,WACA,SACA,aACA,UACA,cACA,eACA,YACA,QACA,OAEIC,GAAsB,CAC1B,QACA,YACA,iBACA,eACA,gBACA,sBACA,oBACA,YACA,iBACA,gBACA,eACA,aACA,eACA,cACA,SACA,qBACA,mBACA,WACA,SACA,aACA,QACA,aACA,UACA,cACA,eACA,OAEIC,GAAqB,CAAC,eAAgB,KAAM,OAAQ,aACpDC,GAA0B,CAAC,SAC3BC,GAAoB,CAAC,SAAU,UAAW,gBAAiB,cAC3DC,GAAqB,CAAC,WAAY,sBAAuB,oBACzDC,GAAW,CACfC,QACE,8/CACFC,MACE,6uBACFC,OACE,4hDACFC,KAAM,28EACNC,QACE,2lFACFC,MAAO,qQACPC,WACE,08GACFC,MACE,oXACF//B,MACE,gXACF5iL,SACE,mxBACF+9C,QACE,8sCACF6kK,UACE,2YACFC,KAAM,wyGAIR,eAAeC,GAAmBx3N,GAchC,OAbAA,EAeF,SAAoCA,GAClC,IAAK,IAAI1b,EAAI,EAAGA,EAAIkyO,GAAoB9xO,OAAQJ,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MACA,MACA,MACA,UACA,MACA,MACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,GACA,GACA,MACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WCnKF,MACMC,GAAqB,CACzB7vI,KAAM,CACJ6mI,MAAQp8P,GAASA,EAAK3I,OAExBs+H,SAAU,CACRymI,MAAQp8P,GAAS,IAAMA,EAAKpH,MAG9B48H,SAAU,CACR4mI,MAAQp8P,GAAS0xB,GAAK1xB,EAAKysH,YAAa,SAE1CgJ,oBAAqB,CACnB2mI,KAAAA,CAAMp8P,GACJ,MAAMqlQ,EAAU1hJ,GAAK,IAAKjyF,GAAK1xB,EAAK2sH,oBAAqB,MAAO,KAC1D15H,EAASy+B,GACb,CACE1xB,EAAK0sH,UACLh7F,GAAK,CAAC1xB,EAAKpH,KAAMysQ,IACjB3zO,GAAK1xB,EAAKkgI,WAAY,MAExB,KAIF,OAAmB,UAAXjtI,EAAqB,GAAKA,EAAS,KAAO+M,EAAKmgI,YACzD,GAEFzK,mBA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","sources":["../node_modules/countup.js/dist/countUp.min.js","../node_modules/extend/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/inline-style-parser/index.js","../node_modules/react-countup/build/index.js","../node_modules/react-dom/cjs/react-dom-client.production.js","../node_modules/react-dom/cjs/react-dom.production.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react.production.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/rehackt/index.js","../node_modules/scheduler/cjs/scheduler.production.js","../node_modules/scheduler/index.js","../node_modules/style-to-object/src/index.ts","../webpack/bootstrap","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","components/pages/home/stats.js","../node_modules/swiper/shared/ssr-window.esm.mjs","../node_modules/swiper/shared/utils.mjs","../node_modules/swiper/shared/swiper-core.mjs","../node_modules/swiper/shared/update-swiper.mjs","../node_modules/swiper/swiper-react.mjs","../node_modules/swiper/shared/update-on-virtual-data.mjs","../node_modules/swiper/modules/navigation.mjs","../node_modules/swiper/shared/create-element-if-not-defined.mjs","../node_modules/swiper/modules/autoplay.mjs","../node_modules/swiper/modules/grid.mjs","components/slider.js","config/menu.js","components/footer.js","components/image-scroller.js","hooks/scroll-trigger.hook.js","assets/images/other/CXA_sym.svg","pages/home.js","components/pages/about/bio.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-select/dist/useStateManager-7e1e8489.esm.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-43c6fea0.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/react-select/dist/react-select.esm.js","components/dropdown/dropdown.js","config/forms.js","pages/form.js","pages/about-us.js","hooks/scroll-position.hook.js","components/vertical-stepper.js","components/mailto.js","pages/get-started.js","pages/the-judge-club.js","components/pages/top-stories/post-skeleton.js","../node_modules/tslib/tslib.es6.mjs","../node_modules/ts-invariant/src/invariant.ts","../node_modules/@apollo/src/version.ts","../node_modules/@apollo/src/utilities/globals/maybe.ts","../node_modules/@apollo/src/utilities/globals/global.ts","../node_modules/@apollo/src/utilities/common/makeUniqueId.ts","../node_modules/@apollo/src/utilities/common/stringifyForDisplay.ts","../node_modules/@apollo/src/utilities/globals/invariantWrappers.ts","../node_modules/@apollo/src/utilities/globals/index.ts","../node_modules/@apollo/src/utilities/common/canUse.ts","../node_modules/@apollo/src/react/hooks/useSyncExternalStore.ts","../node_modules/@wry/equality/src/index.ts","../node_modules/@apollo/src/utilities/common/compact.ts","../node_modules/@apollo/src/utilities/common/mergeOptions.ts","../node_modules/@apollo/src/react/context/ApolloContext.ts","../node_modules/@apollo/src/utilities/common/objects.ts","../node_modules/@apollo/src/errors/index.ts","../node_modules/@apollo/src/core/networkStatus.ts","../node_modules/@wry/caches/src/weak.ts","../node_modules/@wry/caches/src/strong.ts","../node_modules/@apollo/src/utilities/caching/caches.ts","../node_modules/@apollo/src/utilities/caching/sizes.ts","../node_modules/@apollo/src/utilities/caching/getMemoryInternals.ts","../node_modules/@apollo/src/react/parser/index.ts","../node_modules/@apollo/src/react/hooks/useApolloClient.ts","../node_modules/@apollo/src/utilities/common/arrays.ts","../node_modules/@apollo/src/utilities/common/maybeDeepFreeze.ts","../node_modules/@apollo/src/react/hooks/internal/wrapHook.ts","../node_modules/@apollo/src/react/hooks/useQuery.ts","../node_modules/graphql/jsutils/invariant.mjs","../node_modules/graphql/language/location.mjs","../node_modules/graphql/language/printLocation.mjs","../node_modules/graphql/error/GraphQLError.mjs","../node_modules/graphql/jsutils/isObjectLike.mjs","../node_modules/graphql/error/syntaxError.mjs","../node_modules/graphql/language/ast.mjs","../node_modules/graphql/language/directiveLocation.mjs","../node_modules/graphql/language/kinds.mjs","../node_modules/graphql/language/tokenKind.mjs","../node_modules/graphql/language/characterClasses.mjs","../node_modules/graphql/language/blockString.mjs","../node_modules/graphql/language/lexer.mjs","../node_modules/graphql/jsutils/devAssert.mjs","../node_modules/graphql/jsutils/inspect.mjs","../node_modules/graphql/jsutils/instanceOf.mjs","../node_modules/graphql/language/source.mjs","../node_modules/graphql/language/parser.mjs","../node_modules/graphql-tag/src/index.ts","utils/gql.js","pages/top-stories.js","components/pages/top-stories/spinner.js","../node_modules/@ungap/structured-clone/esm/deserialize.js","../node_modules/@ungap/structured-clone/esm/types.js","../node_modules/@ungap/structured-clone/esm/serialize.js","../node_modules/@ungap/structured-clone/esm/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/hast-util-parse-selector/lib/index.js","../node_modules/property-information/lib/find.js","../node_modules/space-separated-tokens/index.js","../node_modules/hastscript/lib/create-h.js","../node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","../node_modules/hastscript/lib/index.js","../node_modules/vfile-location/lib/index.js","../node_modules/web-namespaces/index.js","../node_modules/hast-util-from-parse5/lib/index.js","../node_modules/zwitch/index.js","../node_modules/hast-util-to-parse5/lib/index.js","../node_modules/html-void-elements/index.js","../node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.js","../node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.js","../node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.js","../node_modules/hast-util-raw/node_modules/parse5/dist/common/token.js","../https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/decode-data-html.ts","../https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/decode-data-xml.ts","../https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/decode_codepoint.ts","../https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/decode.ts","../node_modules/hast-util-raw/node_modules/parse5/dist/common/html.js","../node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.js","../node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.js","../node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.js","../node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.js","../node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.js","../node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.js","../node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.js","../https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/escape.ts","../node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.js","../node_modules/unist-util-position/lib/index.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/hast-util-raw/lib/index.js","../node_modules/rehype-raw/lib/index.js","../node_modules/estree-util-is-identifier-name/lib/index.js","../node_modules/hast-util-whitespace/lib/index.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/style-to-object/esm/index.mjs","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/hast-util-to-jsx-runtime/lib/index.js","../node_modules/html-url-attributes/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/parse.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/remark-parse/lib/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/remark-rehype/lib/index.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/unified/lib/callable-instance.js","../node_modules/unified/lib/index.js","../node_modules/react-markdown/lib/index.js","components/pages/home/top-story.js","pages/top-story.js","context/search.context.js","components/pages/events/region.js","components/pages/events/regions-list.js","components/pages/events/topic.js","components/pages/events/topics-list.js","components/pages/events/event-type.js","components/pages/events/event-types-list.js","../node_modules/timezones-ical-library/dist/mjs/index.js","../node_modules/add-to-calendar-button/dist/module/index.js","pages/events.js","assets/images/components/menu/UKCXA25_logo.svg","pages/awards.js","pages/privacy-policy.js","pages/terms-of-use.js","pages/media.js","pages/no-match.js","pages/thank-you.js","pages/certified-judges.js","components/prices-accordion.js","pages/enter-the-awards.js","components/cat-accordion.js","config/routes.js","utils/meta.js","pages/categories.js","components/webinars.js","pages/how-to-enter-kit.js","components/pages/home/testimonial.js","pages/judging-process.js","pages/event-details.js","pages/kit-resources.js","pages/plan2judge.js","pages/news-and-insight.js","components/sponsors-card.js","pages/sponsors-and-partners.js","pages/winning-library.js","pages/meet-the-judges.js","pages/plan2judge-form.js","pages/steering-coucnil.js","pages/terms-and-conditions.js","pages/terms-of-payment.js","assets/images/components/menu/UKCXA25_logo_v1.svg","context/navigation.context.js","hooks/outside-click.hook.js","utils/event.js","components/menu.js","components/form.js","../node_modules/universal-cookie/esm/index.mjs","../node_modules/react-cookie/esm/index.mjs","App.js","reportWebVitals.js","../node_modules/@apollo/src/react/context/ApolloProvider.tsx","../node_modules/zen-observable-ts/module.js","../node_modules/graphql/language/visitor.mjs","../node_modules/@apollo/src/utilities/graphql/fragments.ts","../node_modules/@apollo/src/utilities/common/canonicalStringify.ts","../node_modules/@apollo/src/utilities/graphql/storeUtils.ts","../node_modules/@apollo/src/utilities/graphql/getFromAST.ts","../node_modules/@apollo/src/link/core/ApolloLink.ts","../node_modules/@apollo/src/link/utils/createOperation.ts","../node_modules/@apollo/src/link/utils/transformOperation.ts","../node_modules/@apollo/src/link/utils/validateOperation.ts","../node_modules/@apollo/src/link/core/execute.ts","../node_modules/@apollo/src/utilities/graphql/directives.ts","../node_modules/@apollo/src/link/http/serializeFetchParameter.ts","../node_modules/@apollo/src/link/http/iterators/nodeStream.ts","../node_modules/@apollo/src/link/http/iterators/reader.ts","../node_modules/@apollo/src/link/http/responseIterator.ts","../node_modules/@apollo/src/link/http/iterators/async.ts","../node_modules/@apollo/src/link/http/iterators/promise.ts","../node_modules/@apollo/src/link/utils/throwServerError.ts","../node_modules/@apollo/src/utilities/common/mergeDeep.ts","../node_modules/@apollo/src/utilities/common/incrementalResult.ts","../node_modules/@apollo/src/link/http/parseAndCheckHttpResponse.ts","../node_modules/graphql/language/printString.mjs","../node_modules/graphql/language/printer.mjs","../node_modules/@apollo/src/utilities/graphql/print.ts","../node_modules/@apollo/src/link/http/selectHttpOptionsAndBody.ts","../node_modules/@apollo/src/link/utils/fromError.ts","../node_modules/@apollo/src/utilities/graphql/transform.ts","../node_modules/@apollo/src/link/http/createHttpLink.ts","../node_modules/@apollo/src/link/http/checkFetcher.ts","../node_modules/@apollo/src/link/http/selectURI.ts","../node_modules/@apollo/src/link/utils/filterOperationVariables.ts","../node_modules/@apollo/src/link/http/rewriteURIForGET.ts","../node_modules/@apollo/src/link/http/HttpLink.ts","../node_modules/@wry/trie/src/index.ts","../node_modules/optimism/node_modules/@wry/trie/src/index.ts","../node_modules/@wry/context/src/slot.ts","../node_modules/@wry/context/src/index.ts","../node_modules/optimism/src/context.ts","../node_modules/optimism/src/helpers.ts","../node_modules/optimism/src/entry.ts","../node_modules/optimism/src/dep.ts","../node_modules/optimism/src/index.ts","../node_modules/@apollo/src/utilities/graphql/DocumentTransform.ts","../node_modules/@apollo/src/utilities/observables/asyncMap.ts","../node_modules/@apollo/src/utilities/common/errorHandling.ts","../node_modules/@apollo/src/utilities/observables/iteration.ts","../node_modules/@apollo/src/utilities/observables/subclassing.ts","../node_modules/@apollo/src/utilities/observables/Concast.ts","../node_modules/@apollo/src/utilities/common/cloneDeep.ts","../node_modules/@apollo/src/core/equalByQuery.ts","../node_modules/@apollo/src/core/ObservableQuery.ts","../node_modules/@apollo/src/utilities/promises/preventUnhandledRejection.ts","../node_modules/@apollo/src/core/QueryInfo.ts","../node_modules/@apollo/src/masking/utils.ts","../node_modules/@apollo/src/masking/maskDefinition.ts","../node_modules/@apollo/src/masking/maskFragment.ts","../node_modules/@apollo/src/core/QueryManager.ts","../node_modules/@apollo/src/masking/maskOperation.ts","../node_modules/graphql/language/predicates.mjs","../node_modules/@apollo/src/cache/inmemory/reactiveVars.ts","../node_modules/@apollo/src/core/LocalState.ts","../node_modules/@apollo/src/core/ApolloClient.ts","../node_modules/@apollo/src/cache/core/cache.ts","../node_modules/@apollo/src/cache/core/types/common.ts","../node_modules/@apollo/src/cache/inmemory/helpers.ts","../node_modules/@apollo/src/cache/inmemory/entityStore.ts","../node_modules/@apollo/src/cache/inmemory/object-canon.ts","../node_modules/@apollo/src/cache/inmemory/readFromStore.ts","../node_modules/@apollo/src/cache/inmemory/key-extractor.ts","../node_modules/@apollo/src/cache/inmemory/policies.ts","../node_modules/@apollo/src/cache/inmemory/writeToStore.ts","../node_modules/@apollo/src/cache/inmemory/inMemoryCache.ts","utils/apollo.js","index.js"],"sourcesContent":["var t=function(){return t=Object.assign||function(t){for(var i,n=1,s=arguments.length;na.endVal;a.frameVal=n?a.endVal:a.frameVal,a.frameVal=Number(a.frameVal.toFixed(a.options.decimalPlaces)),a.printValue(a.frameVal),i1?a.options.decimal+r[1]:\"\",a.options.useGrouping){e=\"\";for(var l=3,h=0,u=0,p=n.length;uwindow.scrollY&&t.paused?(t.paused=!1,setTimeout((function(){return t.start()}),t.options.scrollSpyDelay),t.options.scrollSpyOnce&&(t.once=!0)):(window.scrollY>a||s>i)&&!t.paused&&t.reset()}},i.prototype.determineDirectionAndSmartEasing=function(){var t=this.finalEndVal?this.finalEndVal:this.endVal;this.countDown=this.startVal>t;var i=t-this.startVal;if(Math.abs(i)>this.options.smartEasingThreshold&&this.options.useEasing){this.finalEndVal=t;var n=this.countDown?1:-1;this.endVal=t+n*this.options.smartEasingAmount,this.duration=this.duration/2}else this.endVal=t,this.finalEndVal=null;null!==this.finalEndVal?this.useEasing=!1:this.useEasing=this.options.useEasing},i.prototype.start=function(t){this.error||(this.options.onStartCallback&&this.options.onStartCallback(),t&&(this.options.onCompleteCallback=t),this.duration>0?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},i.prototype.pauseResume=function(){this.paused?(this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count)):cancelAnimationFrame(this.rAF),this.paused=!this.paused},i.prototype.reset=function(){cancelAnimationFrame(this.rAF),this.paused=!0,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal)},i.prototype.update=function(t){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(t),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,null==this.finalEndVal&&this.resetDuration(),this.finalEndVal=null,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count))},i.prototype.printValue=function(t){var i;if(this.el){var n=this.formattingFn(t);if(null===(i=this.options.plugin)||void 0===i?void 0:i.render)this.options.plugin.render(this.el,n);else if(\"INPUT\"===this.el.tagName)this.el.value=n;else\"text\"===this.el.tagName||\"tspan\"===this.el.tagName?this.el.textContent=n:this.el.innerHTML=n}},i.prototype.ensureNumber=function(t){return\"number\"==typeof t&&!isNaN(t)},i.prototype.validateValue=function(t){var i=Number(t);return this.ensureNumber(i)?i:(this.error=\"[CountUp] invalid start or end value: \".concat(t),null)},i.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},i}();export{i as CountUp};\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn 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\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'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;\n\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\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\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\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @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';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){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)};exports.typeOf=z;\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}\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\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\n if (!style) return [];\n\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 = { line: lineno, column: column };\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 = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\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(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\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\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\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\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\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\n return decls;\n }\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}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar React = require('react');\nvar countup_js = require('countup.js');\n\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\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}\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}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : String(i);\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\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}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : 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 _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 _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/**\n * Silence SSR Warnings.\n * Borrowed from Formik v2.1.1, Licensed MIT.\n *\n * https://github.com/formium/formik/blob/9316a864478f8fcd4fa99a0735b1d37afdf507dc/LICENSE\n */\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Create a stable reference to a callback which is updated after each render is committed.\n * Typed version borrowed from Formik v2.2.1. Licensed MIT.\n *\n * https://github.com/formium/formik/blob/9316a864478f8fcd4fa99a0735b1d37afdf507dc/LICENSE\n */\nfunction useEventCallback(fn) {\n var ref = React.useRef(fn);\n\n // we copy a ref to the callback scoped to the current state/props on each render\n useIsomorphicLayoutEffect(function () {\n ref.current = fn;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current.apply(void 0, args);\n }, []);\n}\n\nvar createCountUpInstance = function createCountUpInstance(el, props) {\n var decimal = props.decimal,\n decimals = props.decimals,\n duration = props.duration,\n easingFn = props.easingFn,\n end = props.end,\n formattingFn = props.formattingFn,\n numerals = props.numerals,\n prefix = props.prefix,\n separator = props.separator,\n start = props.start,\n suffix = props.suffix,\n useEasing = props.useEasing,\n useGrouping = props.useGrouping,\n useIndianSeparators = props.useIndianSeparators,\n enableScrollSpy = props.enableScrollSpy,\n scrollSpyDelay = props.scrollSpyDelay,\n scrollSpyOnce = props.scrollSpyOnce,\n plugin = props.plugin;\n return new countup_js.CountUp(el, end, {\n startVal: start,\n duration: duration,\n decimal: decimal,\n decimalPlaces: decimals,\n easingFn: easingFn,\n formattingFn: formattingFn,\n numerals: numerals,\n separator: separator,\n prefix: prefix,\n suffix: suffix,\n plugin: plugin,\n useEasing: useEasing,\n useIndianSeparators: useIndianSeparators,\n useGrouping: useGrouping,\n enableScrollSpy: enableScrollSpy,\n scrollSpyDelay: scrollSpyDelay,\n scrollSpyOnce: scrollSpyOnce\n });\n};\n\nvar _excluded$1 = [\"ref\", \"startOnMount\", \"enableReinitialize\", \"delay\", \"onEnd\", \"onStart\", \"onPauseResume\", \"onReset\", \"onUpdate\"];\nvar DEFAULTS = {\n decimal: '.',\n separator: ',',\n delay: null,\n prefix: '',\n suffix: '',\n duration: 2,\n start: 0,\n decimals: 0,\n startOnMount: true,\n enableReinitialize: true,\n useEasing: true,\n useGrouping: true,\n useIndianSeparators: false\n};\nvar useCountUp = function useCountUp(props) {\n var filteredProps = Object.fromEntries(Object.entries(props).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n value = _ref2[1];\n return value !== undefined;\n }));\n var _useMemo = React.useMemo(function () {\n return _objectSpread2(_objectSpread2({}, DEFAULTS), filteredProps);\n }, [props]),\n ref = _useMemo.ref,\n startOnMount = _useMemo.startOnMount,\n enableReinitialize = _useMemo.enableReinitialize,\n delay = _useMemo.delay,\n onEnd = _useMemo.onEnd,\n onStart = _useMemo.onStart,\n onPauseResume = _useMemo.onPauseResume,\n onReset = _useMemo.onReset,\n onUpdate = _useMemo.onUpdate,\n instanceProps = _objectWithoutProperties(_useMemo, _excluded$1);\n var countUpRef = React.useRef();\n var timerRef = React.useRef();\n var isInitializedRef = React.useRef(false);\n var createInstance = useEventCallback(function () {\n return createCountUpInstance(typeof ref === 'string' ? ref : ref.current, instanceProps);\n });\n var getCountUp = useEventCallback(function (recreate) {\n var countUp = countUpRef.current;\n if (countUp && !recreate) {\n return countUp;\n }\n var newCountUp = createInstance();\n countUpRef.current = newCountUp;\n return newCountUp;\n });\n var start = useEventCallback(function () {\n var run = function run() {\n return getCountUp(true).start(function () {\n onEnd === null || onEnd === void 0 || onEnd({\n pauseResume: pauseResume,\n reset: reset,\n start: restart,\n update: update\n });\n });\n };\n if (delay && delay > 0) {\n timerRef.current = setTimeout(run, delay * 1000);\n } else {\n run();\n }\n onStart === null || onStart === void 0 || onStart({\n pauseResume: pauseResume,\n reset: reset,\n update: update\n });\n });\n var pauseResume = useEventCallback(function () {\n getCountUp().pauseResume();\n onPauseResume === null || onPauseResume === void 0 || onPauseResume({\n reset: reset,\n start: restart,\n update: update\n });\n });\n var reset = useEventCallback(function () {\n // Quick fix for https://github.com/glennreyes/react-countup/issues/736 - should be investigated\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (getCountUp().el) {\n timerRef.current && clearTimeout(timerRef.current);\n getCountUp().reset();\n onReset === null || onReset === void 0 || onReset({\n pauseResume: pauseResume,\n start: restart,\n update: update\n });\n }\n });\n var update = useEventCallback(function (newEnd) {\n getCountUp().update(newEnd);\n onUpdate === null || onUpdate === void 0 || onUpdate({\n pauseResume: pauseResume,\n reset: reset,\n start: restart\n });\n });\n var restart = useEventCallback(function () {\n reset();\n start();\n });\n var maybeInitialize = useEventCallback(function (shouldReset) {\n if (startOnMount) {\n if (shouldReset) {\n reset();\n }\n start();\n }\n });\n React.useEffect(function () {\n if (!isInitializedRef.current) {\n isInitializedRef.current = true;\n maybeInitialize();\n } else if (enableReinitialize) {\n maybeInitialize(true);\n }\n }, [enableReinitialize, isInitializedRef, maybeInitialize, delay, props.start, props.suffix, props.prefix, props.duration, props.separator, props.decimals, props.decimal, props.formattingFn]);\n React.useEffect(function () {\n return function () {\n reset();\n };\n }, [reset]);\n return {\n start: restart,\n pauseResume: pauseResume,\n reset: reset,\n update: update,\n getCountUp: getCountUp\n };\n};\n\nvar _excluded = [\"className\", \"redraw\", \"containerProps\", \"children\", \"style\"];\nvar CountUp = function CountUp(props) {\n var className = props.className,\n redraw = props.redraw,\n containerProps = props.containerProps,\n children = props.children,\n style = props.style,\n useCountUpProps = _objectWithoutProperties(props, _excluded);\n var containerRef = React.useRef(null);\n var isInitializedRef = React.useRef(false);\n var _useCountUp = useCountUp(_objectSpread2(_objectSpread2({}, useCountUpProps), {}, {\n ref: containerRef,\n startOnMount: typeof children !== 'function' || props.delay === 0,\n // component manually restarts\n enableReinitialize: false\n })),\n start = _useCountUp.start,\n reset = _useCountUp.reset,\n updateCountUp = _useCountUp.update,\n pauseResume = _useCountUp.pauseResume,\n getCountUp = _useCountUp.getCountUp;\n var restart = useEventCallback(function () {\n start();\n });\n var update = useEventCallback(function (end) {\n if (!props.preserveValue) {\n reset();\n }\n updateCountUp(end);\n });\n var initializeOnMount = useEventCallback(function () {\n if (typeof props.children === 'function') {\n // Warn when user didn't use containerRef at all\n if (!(containerRef.current instanceof Element)) {\n console.error(\"Couldn't find attached element to hook the CountUp instance into! Try to attach \\\"containerRef\\\" from the render prop to a an Element, eg. .\");\n return;\n }\n }\n\n // unlike the hook, the CountUp component initializes on mount\n getCountUp();\n });\n React.useEffect(function () {\n initializeOnMount();\n }, [initializeOnMount]);\n React.useEffect(function () {\n if (isInitializedRef.current) {\n update(props.end);\n }\n }, [props.end, update]);\n var redrawDependencies = redraw && props;\n\n // if props.redraw, call this effect on every props change\n React.useEffect(function () {\n if (redraw && isInitializedRef.current) {\n restart();\n }\n }, [restart, redraw, redrawDependencies]);\n\n // if not props.redraw, call this effect only when certain props are changed\n React.useEffect(function () {\n if (!redraw && isInitializedRef.current) {\n restart();\n }\n }, [restart, redraw, props.start, props.suffix, props.prefix, props.duration, props.separator, props.decimals, props.decimal, props.className, props.formattingFn]);\n React.useEffect(function () {\n isInitializedRef.current = true;\n }, []);\n if (typeof children === 'function') {\n // TypeScript forces functional components to return JSX.Element | null.\n return children({\n countUpRef: containerRef,\n start: start,\n reset: reset,\n update: updateCountUp,\n pauseResume: pauseResume,\n getCountUp: getCountUp\n });\n }\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n className: className,\n ref: containerRef,\n style: style\n }, containerProps), typeof props.start !== 'undefined' ? getCountUp().formattingFn(props.start) : '');\n};\n\nexports.default = CountUp;\nexports.useCountUp = useCountUp;\n","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nvar REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nSymbol.for(\"react.debug_trace_mode\");\nvar REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n assign = Object.assign,\n prefix,\n suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" ()\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$0) {\n control = x$0;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$1) {\n control = x$1;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"\") &&\n (frame = frame.replace(\"\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return (fiber = describeNativeComponentFrame(fiber.type, !1)), fiber;\n case 11:\n return (\n (fiber = describeNativeComponentFrame(fiber.type.render, !1)), fiber\n );\n case 1:\n return (fiber = describeNativeComponentFrame(fiber.type, !0)), fiber;\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\";\n do\n (info += describeFiber(workInProgress)),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$2 = parentA.child; child$2; ) {\n if (child$2 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$2 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$2 = child$2.sibling;\n }\n if (!didFindChild) {\n for (child$2 = parentB.child; child$2; ) {\n if (child$2 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$2 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$2 = child$2.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n fiber = nextRootInstance.nodeType;\n switch (fiber) {\n case 9:\n case 11:\n nextRootInstance = (nextRootInstance = nextRootInstance.documentElement)\n ? (nextRootInstance = nextRootInstance.namespaceURI)\n ? getOwnHostContext(nextRootInstance)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = 8 === fiber ? nextRootInstance.parentNode : nextRootInstance),\n (nextRootInstance = fiber.tagName),\n (fiber = fiber.namespaceURI))\n )\n (fiber = getOwnHostContext(fiber)),\n (nextRootInstance = getChildHostContextProd(fiber, nextRootInstance));\n else\n switch (nextRootInstance) {\n case \"svg\":\n nextRootInstance = 1;\n break;\n case \"math\":\n nextRootInstance = 2;\n break;\n default:\n nextRootInstance = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, nextRootInstance);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction onCommitRoot(root) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n root,\n void 0,\n 128 === (root.current.flags & 128)\n );\n } catch (err) {}\n}\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionLane = 128,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\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 return 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 lanes & 4194176;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n warmLanes = root.warmLanes;\n root = 0 !== root.finishedLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : root ||\n ((warmLanes = nonIdlePendingLanes & ~warmLanes),\n 0 !== warmLanes &&\n (nextLanes = getHighestPriorityLanes(warmLanes)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : root ||\n ((warmLanes = pendingLanes & ~warmLanes),\n 0 !== warmLanes &&\n (nextLanes = getHighestPriorityLanes(warmLanes))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (warmLanes = wipLanes & -wipLanes),\n suspendedLanes >= warmLanes ||\n (32 === suspendedLanes && 0 !== (warmLanes & 4194176)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n return currentTime + 250;\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 currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n 0 === (nextTransitionLane & 4194176) && (nextTransitionLane = 128);\n return lane;\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 4194218);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentSuspenseInstance(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentSuspenseInstance(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[: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 ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\",\n descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n ),\n currentValue = \"\" + node[valueField];\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n node._valueTracker || (node._valueTracker = trackValueOnNode(node));\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n )\n return;\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\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 aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\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 [\"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 [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\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 [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\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 [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\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 [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\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 (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\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: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\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 translateToKey = {\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 modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\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: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\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 SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\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 isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$283;\n if (canUseDOM) {\n var isSupported$jscomp$inline_418 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_418) {\n var element$jscomp$inline_419 = document.createElement(\"div\");\n element$jscomp$inline_419.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_418 =\n \"function\" === typeof element$jscomp$inline_419.oninput;\n }\n JSCompiler_inline_result$jscomp$283 = isSupported$jscomp$inline_418;\n } else JSCompiler_inline_result$jscomp$283 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$283 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nfunction restoreSelection(priorSelectionInformation, containerInfo) {\n var curFocusedElem = getActiveElementDeep(containerInfo);\n containerInfo = priorSelectionInformation.focusedElem;\n var priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== containerInfo &&\n containerInfo &&\n containerInfo.ownerDocument &&\n containsNode(containerInfo.ownerDocument.documentElement, containerInfo)\n ) {\n if (null !== priorSelectionRange && hasSelectionCapabilities(containerInfo))\n if (\n ((priorSelectionInformation = priorSelectionRange.start),\n (curFocusedElem = priorSelectionRange.end),\n void 0 === curFocusedElem &&\n (curFocusedElem = priorSelectionInformation),\n \"selectionStart\" in containerInfo)\n )\n (containerInfo.selectionStart = priorSelectionInformation),\n (containerInfo.selectionEnd = Math.min(\n curFocusedElem,\n containerInfo.value.length\n ));\n else if (\n ((curFocusedElem =\n ((priorSelectionInformation =\n containerInfo.ownerDocument || document) &&\n priorSelectionInformation.defaultView) ||\n window),\n curFocusedElem.getSelection)\n ) {\n curFocusedElem = curFocusedElem.getSelection();\n var length = containerInfo.textContent.length,\n start = Math.min(priorSelectionRange.start, length);\n priorSelectionRange =\n void 0 === priorSelectionRange.end\n ? start\n : Math.min(priorSelectionRange.end, length);\n !curFocusedElem.extend &&\n start > priorSelectionRange &&\n ((length = priorSelectionRange),\n (priorSelectionRange = start),\n (start = length));\n length = getNodeForCharacterOffset(containerInfo, start);\n var endMarker = getNodeForCharacterOffset(\n containerInfo,\n priorSelectionRange\n );\n length &&\n endMarker &&\n (1 !== curFocusedElem.rangeCount ||\n curFocusedElem.anchorNode !== length.node ||\n curFocusedElem.anchorOffset !== length.offset ||\n curFocusedElem.focusNode !== endMarker.node ||\n curFocusedElem.focusOffset !== endMarker.offset) &&\n ((priorSelectionInformation =\n priorSelectionInformation.createRange()),\n priorSelectionInformation.setStart(length.node, length.offset),\n curFocusedElem.removeAllRanges(),\n start > priorSelectionRange\n ? (curFocusedElem.addRange(priorSelectionInformation),\n curFocusedElem.extend(endMarker.node, endMarker.offset))\n : (priorSelectionInformation.setEnd(\n endMarker.node,\n endMarker.offset\n ),\n curFocusedElem.addRange(priorSelectionInformation)));\n }\n priorSelectionInformation = [];\n for (\n curFocusedElem = containerInfo;\n (curFocusedElem = curFocusedElem.parentNode);\n\n )\n 1 === curFocusedElem.nodeType &&\n priorSelectionInformation.push({\n element: curFocusedElem,\n left: curFocusedElem.scrollLeft,\n top: curFocusedElem.scrollTop\n });\n \"function\" === typeof containerInfo.focus && containerInfo.focus();\n for (\n containerInfo = 0;\n containerInfo < priorSelectionInformation.length;\n containerInfo++\n )\n (curFocusedElem = priorSelectionInformation[containerInfo]),\n (curFocusedElem.element.scrollLeft = curFocusedElem.left),\n (curFocusedElem.element.scrollTop = curFocusedElem.top);\n }\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle 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 scrollEnd toggle touchMove waiting wheel\".split(\n \" \"\n );\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n isHidden &&\n null !== update &&\n 3 === sourceFiber.tag &&\n ((parent = sourceFiber.stateNode),\n (isHidden = 31 - clz32(lane)),\n (parent = parent.hiddenUpdates),\n (sourceFiber = parent[isHidden]),\n null === sourceFiber\n ? (parent[isHidden] = [update])\n : sourceFiber.push(update),\n (update.lane = lane | 536870912));\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {},\n CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(formatProdErrorMessage(418, \"\"));\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n track(instance);\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children),\n track(instance);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 3:\n case 27:\n rootOrSingletonContext = !0;\n return;\n case 5:\n case 13:\n rootOrSingletonContext = !1;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var shouldClear = !1,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== fiber.tag && 27 !== fiber.tag)) {\n if ((JSCompiler_temp = 5 === fiber.tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && (shouldClear = !0);\n shouldClear && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === fiber.tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n a: {\n fiber = fiber.nextSibling;\n for (shouldClear = 0; fiber; ) {\n if (8 === fiber.nodeType)\n if (((JSCompiler_temp = fiber.data), \"/$\" === JSCompiler_temp)) {\n if (0 === shouldClear) {\n nextHydratableInstance = getNextHydratable(fiber.nextSibling);\n break a;\n }\n shouldClear--;\n } else\n (\"$\" !== JSCompiler_temp &&\n \"$!\" !== JSCompiler_temp &&\n \"$?\" !== JSCompiler_temp) ||\n shouldClear++;\n fiber = fiber.nextSibling;\n }\n nextHydratableInstance = null;\n }\n } else\n nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null;\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction noop$3() {}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$3, noop$3), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n thenableState = thenable.reason;\n if (thenableState === SuspenseException)\n throw Error(formatProdErrorMessage(483));\n throw thenableState;\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$3, noop$3);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n thenableState = thenable.reason;\n if (thenableState === SuspenseException)\n throw Error(formatProdErrorMessage(483));\n throw thenableState;\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction resolveLazy(lazyType) {\n var init = lazyType._init;\n return init(lazyType._payload);\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 33554434), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 33554434;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 33554434);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n newChild = init(newChild._payload);\n return createChild(returnFiber, newChild, lanes);\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n (newChild = key(newChild._payload)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n newChild = init(newChild._payload);\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n (newChild = key(newChild._payload)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n if (22 === fiber.tag) {\n if (\n (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary)\n ) {\n var current = fiber.alternate;\n null !== current &&\n null !== current.memoizedState &&\n (shellBoundary = fiber);\n }\n } else reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state || \"$?\" === state.data || \"$!\" === state.data)\n )\n return node;\n } else if (19 === node.tag && void 0 !== node.memoizedProps.revealOrder) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar renderLanes = 0,\n currentlyRenderingFiber$1 = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber$1 = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber$1 = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber$1.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber$1.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber$1.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber$1.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nvar createFunctionComponentUpdateQueue;\ncreateFunctionComponentUpdateQueue = function () {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n};\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber$1;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber$1.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber$1.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber$1.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$54 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$54 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$54 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber$1.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber$1.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$54 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n { destroy: void 0 },\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 60) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber$1.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber$1.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n ReactSharedInternals.T = prevTransition;\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$60) {\n onActionError(actionQueue, node, error$60);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber$1;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber$1,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber$1,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber$1,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n currentStateHook =\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n ? useThenable(currentStateHook)\n : currentStateHook;\n var actionQueueHook = updateWorkInProgressHook(),\n actionQueue = actionQueueHook.queue,\n dispatch = actionQueue.dispatch;\n action !== actionQueueHook.memoizedState &&\n ((currentlyRenderingFiber$1.flags |= 2048),\n pushEffect(\n 9,\n actionStateActionEffect.bind(null, actionQueue, action),\n { destroy: void 0 },\n null\n ));\n return [currentStateHook, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushEffect(tag, create, inst, deps) {\n tag = { tag: tag, create: create, inst: inst, deps: deps, next: null };\n create = currentlyRenderingFiber$1.updateQueue;\n null === create &&\n ((create = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber$1.updateQueue = create));\n inst = create.lastEffect;\n null === inst\n ? (create.lastEffect = tag.next = tag)\n : ((deps = inst.next),\n (inst.next = tag),\n (tag.next = deps),\n (create.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(\n 1 | hookFlags,\n create,\n { destroy: void 0 },\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushEffect(hookFlags, create, inst, deps))\n : ((currentlyRenderingFiber$1.flags |= fiberFlags),\n (hook.memoizedState = pushEffect(1 | hookFlags, create, inst, deps)));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (void 0 === initialValue || 0 !== (renderLanes & 1073741824))\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber$1.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (0 === (renderLanes & 42))\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber$1.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop$2() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop$2\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var resetStateQueue = ensureFormComponentIsStateful(formFiber).next.queue;\n dispatchSetStateInternal(formFiber, resetStateQueue, {}, requestUpdateLane());\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$63 = enqueueUpdate(provider, fiber, lane);\n null !== root$63 &&\n (scheduleUpdateOnFiber(root$63, provider, lane),\n entangleTransitions(root$63, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber$1 ||\n (null !== alternate && alternate === currentlyRenderingFiber$1)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194176)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError\n};\nContextOnlyDispatcher.useCacheRefresh = throwInvalidHookError;\nContextOnlyDispatcher.useMemoCache = throwInvalidHookError;\nContextOnlyDispatcher.useHostTransitionStatus = throwInvalidHookError;\nContextOnlyDispatcher.useFormState = throwInvalidHookError;\nContextOnlyDispatcher.useActionState = throwInvalidHookError;\nContextOnlyDispatcher.useOptimistic = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber$1,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber$1, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber$1,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 60) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n { destroy: void 0 },\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \":\" + identifierPrefix + \"R\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \":\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \":\" +\n identifierPrefix +\n \"r\" +\n JSCompiler_inline_result.toString(32) +\n \":\");\n return (hook.memoizedState = identifierPrefix);\n },\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber$1\n ));\n }\n};\nHooksDispatcherOnMount.useMemoCache = useMemoCache;\nHooksDispatcherOnMount.useHostTransitionStatus = useHostTransitionStatus;\nHooksDispatcherOnMount.useFormState = mountActionState;\nHooksDispatcherOnMount.useActionState = mountActionState;\nHooksDispatcherOnMount.useOptimistic = function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber$1,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n};\nvar HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId\n};\nHooksDispatcherOnUpdate.useCacheRefresh = updateRefresh;\nHooksDispatcherOnUpdate.useMemoCache = useMemoCache;\nHooksDispatcherOnUpdate.useHostTransitionStatus = useHostTransitionStatus;\nHooksDispatcherOnUpdate.useFormState = updateActionState;\nHooksDispatcherOnUpdate.useActionState = updateActionState;\nHooksDispatcherOnUpdate.useOptimistic = function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n};\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId\n};\nHooksDispatcherOnRerender.useCacheRefresh = updateRefresh;\nHooksDispatcherOnRerender.useMemoCache = useMemoCache;\nHooksDispatcherOnRerender.useHostTransitionStatus = useHostTransitionStatus;\nHooksDispatcherOnRerender.useFormState = rerenderActionState;\nHooksDispatcherOnRerender.useActionState = rerenderActionState;\nHooksDispatcherOnRerender.useOptimistic = function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n};\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n isMounted: function (component) {\n return (component = component._reactInternals)\n ? getNearestMountedFiber(component) === component\n : !1;\n },\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$67 in Component)\n void 0 === newProps[propName$67] &&\n (newProps[propName$67] = Component[propName$67]);\n }\n return newProps;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n };\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$68) {\n setTimeout(function () {\n throw e$68;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$69) {\n setTimeout(function () {\n throw e$69;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n nextChildren = nextProps.children,\n nextIsDetached = 0 !== (workInProgress.stateNode._pendingVisibility & 2),\n prevState = null !== current ? current.memoizedState : null;\n markRef(current, workInProgress);\n if (\"hidden\" === nextProps.mode || nextIsDetached) {\n if (0 !== (workInProgress.flags & 128)) {\n nextProps =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextChildren = workInProgress.child = current.child;\n for (nextIsDetached = 0; null !== nextChildren; )\n (nextIsDetached =\n nextIsDetached | nextChildren.lanes | nextChildren.childLanes),\n (nextChildren = nextChildren.sibling);\n workInProgress.childLanes = nextIsDetached & ~nextProps;\n } else (workInProgress.childLanes = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextProps,\n renderLanes\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (workInProgress.lanes = workInProgress.childLanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n return null;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 2097664);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 2097664;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = { dehydrated: null, treeContext: null, retryLane: 0 };\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n if (isHydrating) {\n var nextInstance = nextHydratableInstance,\n JSCompiler_temp$jscomp$0;\n if ((JSCompiler_temp$jscomp$0 = nextInstance)) {\n c: {\n JSCompiler_temp$jscomp$0 = nextInstance;\n for (\n nextInstance = rootOrSingletonContext;\n 8 !== JSCompiler_temp$jscomp$0.nodeType;\n\n ) {\n if (!nextInstance) {\n nextInstance = null;\n break c;\n }\n JSCompiler_temp$jscomp$0 = getNextHydratable(\n JSCompiler_temp$jscomp$0.nextSibling\n );\n if (null === JSCompiler_temp$jscomp$0) {\n nextInstance = null;\n break c;\n }\n }\n nextInstance = JSCompiler_temp$jscomp$0;\n }\n null !== nextInstance\n ? ((workInProgress.memoizedState = {\n dehydrated: nextInstance,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912\n }),\n (JSCompiler_temp$jscomp$0 = createFiberImplClass(\n 18,\n null,\n null,\n 0\n )),\n (JSCompiler_temp$jscomp$0.stateNode = nextInstance),\n (JSCompiler_temp$jscomp$0.return = workInProgress),\n (workInProgress.child = JSCompiler_temp$jscomp$0),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (JSCompiler_temp$jscomp$0 = !0))\n : (JSCompiler_temp$jscomp$0 = !1);\n }\n JSCompiler_temp$jscomp$0 || throwOnHydrationMismatch(workInProgress);\n }\n nextInstance = workInProgress.memoizedState;\n if (\n null !== nextInstance &&\n ((nextInstance = nextInstance.dehydrated), null !== nextInstance)\n )\n return (\n \"$!\" === nextInstance.data\n ? (workInProgress.lanes = 16)\n : (workInProgress.lanes = 536870912),\n null\n );\n popSuspenseHandler(workInProgress);\n }\n nextInstance = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextInstance = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextInstance },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextInstance.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextInstance.sibling = nextProps),\n (workInProgress.child = nextInstance),\n (showFallback = workInProgress.child),\n (showFallback.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (showFallback.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n nextProps\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextInstance);\n }\n JSCompiler_temp$jscomp$0 = current.memoizedState;\n if (\n null !== JSCompiler_temp$jscomp$0 &&\n ((nextInstance = JSCompiler_temp$jscomp$0.dehydrated),\n null !== nextInstance)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = nextProps.fallback),\n (nextInstance = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n nextInstance\n )),\n (showFallback = createFiberFromFragment(\n showFallback,\n nextInstance,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2),\n (nextProps.return = workInProgress),\n (showFallback.return = workInProgress),\n (nextProps.sibling = showFallback),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = showFallback));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n \"$!\" === nextInstance.data)\n ) {\n JSCompiler_temp =\n nextInstance.nextSibling && nextInstance.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (null !== JSCompiler_temp) {\n nextProps = renderLanes & -renderLanes;\n if (0 !== (nextProps & 42)) nextProps = 1;\n else\n switch (nextProps) {\n case 2:\n nextProps = 1;\n break;\n case 8:\n nextProps = 4;\n break;\n case 32:\n nextProps = 16;\n break;\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 nextProps = 64;\n break;\n case 268435456:\n nextProps = 134217728;\n break;\n default:\n nextProps = 0;\n }\n nextProps =\n 0 !== (nextProps & (JSCompiler_temp.suspendedLanes | renderLanes))\n ? 0\n : nextProps;\n if (0 !== nextProps && nextProps !== JSCompiler_temp$jscomp$0.retryLane)\n throw (\n ((JSCompiler_temp$jscomp$0.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n }\n \"$?\" === nextInstance.data || renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n \"$?\" === nextInstance.data\n ? ((workInProgress.flags |= 128),\n (workInProgress.child = current.child),\n (workInProgress = retryDehydratedSuspenseBoundary.bind(\n null,\n current\n )),\n (nextInstance._reactRetry = workInProgress),\n (workInProgress = null))\n : ((current = JSCompiler_temp$jscomp$0.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextInstance.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n ((idStack[idStackIndex++] = treeContextId),\n (idStack[idStackIndex++] = treeContextOverflow),\n (idStack[idStackIndex++] = treeContextProvider),\n (treeContextId = current.id),\n (treeContextOverflow = current.overflow),\n (treeContextProvider = workInProgress)),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = nextProps.fallback),\n (nextInstance = workInProgress.mode),\n (JSCompiler_temp$jscomp$0 = current.child),\n (digest = JSCompiler_temp$jscomp$0.sibling),\n (nextProps = createWorkInProgress(JSCompiler_temp$jscomp$0, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags =\n JSCompiler_temp$jscomp$0.subtreeFlags & 31457280),\n null !== digest\n ? (showFallback = createWorkInProgress(digest, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n nextInstance,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2)),\n (showFallback.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = showFallback),\n (workInProgress.child = nextProps),\n (nextProps = showFallback),\n (showFallback = workInProgress.child),\n (nextInstance = current.child.memoizedState),\n null === nextInstance\n ? (nextInstance = mountSuspenseOffscreenState(renderLanes))\n : ((JSCompiler_temp$jscomp$0 = nextInstance.cachePool),\n null !== JSCompiler_temp$jscomp$0\n ? ((digest = CacheContext._currentValue),\n (JSCompiler_temp$jscomp$0 =\n JSCompiler_temp$jscomp$0.parent !== digest\n ? { parent: digest, pool: digest }\n : JSCompiler_temp$jscomp$0))\n : (JSCompiler_temp$jscomp$0 = getSuspendedCache()),\n (nextInstance = {\n baseLanes: nextInstance.baseLanes | renderLanes,\n cachePool: JSCompiler_temp$jscomp$0\n })),\n (showFallback.memoizedState = nextInstance),\n (showFallback.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n nextProps\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n return createFiberFromOffscreen(offscreenProps, mode, 0, null);\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n reconcileChildren(current, workInProgress, nextProps.children, renderLanes);\n nextProps = suspenseStackCursor.current;\n if (0 !== (nextProps & 2))\n (nextProps = (nextProps & 1) | 2), (workInProgress.flags |= 128);\n else {\n if (null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n nextProps &= 1;\n }\n push(suspenseStackCursor, nextProps);\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode\n );\n break;\n case \"backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode\n );\n break;\n case \"together\":\n initSuspenseListRenderState(workInProgress, !1, null, null, void 0);\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 13:\n var state = workInProgress.memoizedState;\n if (null !== state) {\n if (null !== state.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state = 0 !== (renderLanes & workInProgress.childLanes);\n state ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state) break;\n else return null;\n case 22:\n case 23:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(current, workInProgress, renderLanes)\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n current = workInProgress.pendingProps;\n var lazyComponent = workInProgress.elementType,\n init = lazyComponent._init;\n lazyComponent = init(lazyComponent._payload);\n workInProgress.type = lazyComponent;\n if (\"function\" === typeof lazyComponent)\n shouldConstruct(lazyComponent)\n ? ((current = resolveClassComponentProps(lazyComponent, current)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n )));\n else {\n if (void 0 !== lazyComponent && null !== lazyComponent)\n if (\n ((init = lazyComponent.$$typeof), init === REACT_FORWARD_REF_TYPE)\n ) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n );\n break a;\n } else if (init === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n );\n break a;\n }\n workInProgress =\n getComponentNameFromType(lazyComponent) || lazyComponent;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (lazyComponent = workInProgress.type),\n (init = resolveClassComponentProps(\n lazyComponent,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n lazyComponent,\n init,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n var nextProps = workInProgress.pendingProps;\n init = workInProgress.memoizedState;\n lazyComponent = init.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, nextProps, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n nextProps = nextState.cache;\n pushProvider(workInProgress, CacheContext, nextProps);\n nextProps !== init.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n nextProps = nextState.element;\n if (init.isDehydrated)\n if (\n ((init = {\n element: nextProps,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = init),\n (workInProgress.memoizedState = init),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextProps,\n renderLanes\n );\n break a;\n } else if (nextProps !== lazyComponent) {\n lazyComponent = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError(lazyComponent);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextProps,\n renderLanes\n );\n break a;\n } else\n for (\n nextHydratableInstance = getNextHydratable(\n workInProgress.stateNode.containerInfo.firstChild\n ),\n hydrationParentFiber = workInProgress,\n isHydrating = !0,\n hydrationErrors = null,\n rootOrSingletonContext = !0,\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n nextProps,\n renderLanes\n ),\n workInProgress.child = renderLanes;\n renderLanes;\n\n )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n else {\n resetHydrationState();\n if (nextProps === lazyComponent) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (lazyComponent = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (lazyComponent[internalInstanceKey] = workInProgress),\n (lazyComponent[internalPropsKey] = current),\n setInitialProperties(lazyComponent, renderLanes, current),\n markNodeAsHoistable(lazyComponent),\n (workInProgress.stateNode = lazyComponent))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((lazyComponent = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n (nextHydratableInstance = getNextHydratable(\n lazyComponent.firstChild\n ))),\n (lazyComponent = workInProgress.pendingProps.children),\n null !== current || isHydrating\n ? reconcileChildren(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n )\n : (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n lazyComponent,\n renderLanes\n )),\n markRef(current, workInProgress),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if ((init = lazyComponent = nextHydratableInstance))\n (lazyComponent = canHydrateInstance(\n lazyComponent,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== lazyComponent\n ? ((workInProgress.stateNode = lazyComponent),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(\n lazyComponent.firstChild\n )),\n (rootOrSingletonContext = !1),\n (init = !0))\n : (init = !1);\n init || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n init = workInProgress.type;\n nextProps = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n lazyComponent = nextProps.children;\n shouldSetTextContent(init, nextProps)\n ? (lazyComponent = null)\n : null !== nextState &&\n shouldSetTextContent(init, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n ((init = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = init));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, lazyComponent, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (lazyComponent = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n lazyComponent,\n renderLanes\n ))\n : reconcileChildren(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n ),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (lazyComponent = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, lazyComponent.value),\n reconcileChildren(\n current,\n workInProgress,\n lazyComponent.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 9:\n return (\n (init = workInProgress.type._context),\n (lazyComponent = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n (init = readContext(init)),\n (lazyComponent = lazyComponent(init)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, lazyComponent, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (lazyComponent = readContext(CacheContext)),\n null === current\n ? ((init = peekCacheFromPool()),\n null === init &&\n ((init = workInProgressRoot),\n (nextProps = createCache()),\n (init.pooledCache = nextProps),\n nextProps.refCount++,\n null !== nextProps && (init.pooledCacheLanes |= renderLanes),\n (init = nextProps)),\n (workInProgress.memoizedState = {\n parent: lazyComponent,\n cache: init\n }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, init))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n (init = current.memoizedState),\n (nextProps = workInProgress.memoizedState),\n init.parent !== lazyComponent\n ? ((init = { parent: lazyComponent, cache: lazyComponent }),\n (workInProgress.memoizedState = init),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n init),\n pushProvider(workInProgress, CacheContext, lazyComponent))\n : ((lazyComponent = nextProps.cache),\n pushProvider(workInProgress, CacheContext, lazyComponent),\n lazyComponent !== init.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194176))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0;\n try {\n destroy();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n var instance = current.stateNode;\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = instance;\n break;\n default:\n instanceToUse = instance;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$112) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$112);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n 27 === fiber.tag ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag &&\n 6 !== fiber.tag &&\n 27 !== fiber.tag &&\n 18 !== fiber.tag;\n\n ) {\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? 8 === parent.nodeType\n ? parent.parentNode.insertBefore(node, before)\n : parent.insertBefore(node, before)\n : (8 === parent.nodeType\n ? ((before = parent.parentNode), before.insertBefore(node, parent))\n : ((before = parent), before.appendChild(node)),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (4 !== tag && 27 !== tag && ((node = node.child), null !== node))\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (4 !== tag && 27 !== tag && ((node = node.child), null !== node))\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null,\n shouldFireAfterActiveInstanceBlur = !1;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset,\n JSCompiler_temp.elementType === JSCompiler_temp.type\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n resolvedPrevProps = shouldFireAfterActiveInstanceBlur;\n shouldFireAfterActiveInstanceBlur = !1;\n return resolvedPrevProps;\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$111) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$111\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 64 && ((flags = finishedWork.updateQueue), null !== flags)) {\n finishedRoot = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n finishedRoot = finishedWork.child.stateNode;\n break;\n case 1:\n finishedRoot = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(flags, finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 26:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n prevProps =\n null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!prevProps) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n var prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevProps;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n flags & 512 &&\n (\"manual\" === finishedWork.memoizedProps.mode\n ? safelyAttachRef(finishedWork, finishedWork.return)\n : safelyDetachRef(finishedWork, finishedWork.return));\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber = deletedFiber.stateNode;\n for (\n nearestMountedAncestor = deletedFiber.attributes;\n nearestMountedAncestor.length;\n\n )\n deletedFiber.removeAttributeNode(nearestMountedAncestor[0]);\n detachDeletedInstance(deletedFiber);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParentIsContainer = hostParent;\n var prevHostParentIsContainer$119 = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParentIsContainer;\n hostParentIsContainer = prevHostParentIsContainer$119;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (finishedRoot = hostParent),\n (prevHostParent = deletedFiber.stateNode),\n 8 === finishedRoot.nodeType\n ? finishedRoot.parentNode.removeChild(prevHostParent)\n : finishedRoot.removeChild(prevHostParent);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((nearestMountedAncestor = hostParent),\n (deletedFiber = deletedFiber.stateNode),\n 8 === nearestMountedAncestor.nodeType\n ? clearSuspenseBoundary(\n nearestMountedAncestor.parentNode,\n deletedFiber\n )\n : 1 === nearestMountedAncestor.nodeType &&\n clearSuspenseBoundary(nearestMountedAncestor, deletedFiber),\n retryIfBlockedOn(nearestMountedAncestor))\n : clearSuspenseBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n retryCache.has(wakeable) ||\n (retryCache.add(wakeable), wakeable.then(retry, retry));\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13878)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href ? null : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n if (flags & 4 && null === finishedWork.alternate) {\n hoistableRoot = finishedWork.stateNode;\n currentResource = finishedWork.memoizedProps;\n try {\n for (var node = hoistableRoot.firstChild; node; ) {\n var nextNode = node.nextSibling,\n nodeName = node.nodeName;\n node[internalHoistableMarker] ||\n \"HEAD\" === nodeName ||\n \"BODY\" === nodeName ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node.rel.toLowerCase()) ||\n hoistableRoot.removeChild(node);\n node = nextNode;\n }\n for (\n var type = finishedWork.type, attributes = hoistableRoot.attributes;\n attributes.length;\n\n )\n hoistableRoot.removeAttributeNode(attributes[0]);\n setInitialProperties(hoistableRoot, type, currentResource);\n hoistableRoot[internalInstanceKey] = finishedWork;\n hoistableRoot[internalPropsKey] = currentResource;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n node = null !== finishedWork.memoizedState;\n nextNode = null !== current && null !== current.memoizedState;\n nodeName = offscreenSubtreeIsHidden;\n type = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = nodeName || node;\n offscreenSubtreeWasHidden = type || nextNode;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = type;\n offscreenSubtreeIsHidden = nodeName;\n commitReconciliationEffects(finishedWork);\n root = finishedWork.stateNode;\n root._current = finishedWork;\n root._visibility &= -3;\n root._visibility |= root._pendingVisibility & 2;\n if (\n flags & 8192 &&\n ((root._visibility = node\n ? root._visibility & -2\n : root._visibility | 1),\n node &&\n ((root = offscreenSubtreeIsHidden || offscreenSubtreeWasHidden),\n null === current ||\n nextNode ||\n root ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n null === finishedWork.memoizedProps ||\n \"manual\" !== finishedWork.memoizedProps.mode)\n )\n a: for (current = null, root = finishedWork; ; ) {\n if (5 === root.tag || 26 === root.tag || 27 === root.tag) {\n if (null === current) {\n nextNode = current = root;\n try {\n if (((hoistableRoot = nextNode.stateNode), node))\n (currentResource = hoistableRoot.style),\n \"function\" === typeof currentResource.setProperty\n ? currentResource.setProperty(\n \"display\",\n \"none\",\n \"important\"\n )\n : (currentResource.display = \"none\");\n else {\n maybeNodes = nextNode.stateNode;\n i = nextNode.memoizedProps.style;\n var display =\n void 0 !== i && null !== i && i.hasOwnProperty(\"display\")\n ? i.display\n : null;\n maybeNodes.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(nextNode, nextNode.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n nextNode = root;\n try {\n nextNode.stateNode.nodeValue = node\n ? \"\"\n : nextNode.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(nextNode, nextNode.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n if (27 !== finishedWork.tag) {\n a: {\n for (var parent = finishedWork.return; null !== parent; ) {\n if (isHostParent(parent)) {\n var JSCompiler_inline_result = parent;\n break a;\n }\n parent = parent.return;\n }\n throw Error(formatProdErrorMessage(160));\n }\n switch (JSCompiler_inline_result.tag) {\n case 27:\n var parent$jscomp$0 = JSCompiler_inline_result.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent$jscomp$0);\n break;\n case 5:\n var parent$113 = JSCompiler_inline_result.stateNode;\n JSCompiler_inline_result.flags & 32 &&\n (setTextContent(parent$113, \"\"),\n (JSCompiler_inline_result.flags &= -33));\n var before$114 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$114, parent$113);\n break;\n case 3:\n case 4:\n var parent$115 = JSCompiler_inline_result.stateNode.containerInfo,\n before$116 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$116,\n parent$115\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 26:\n case 27:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n safelyDetachRef(finishedWork, finishedWork.return);\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 26:\n case 27:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 4\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 4\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 4),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256)\n ));\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 10256);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 4\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 4),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(parentFiber) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(fiber) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(fiber);\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(fiber);\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(fiber);\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(fiber),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(fiber));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(fiber);\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 4 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -5),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 4 &&\n ((i._visibility &= -5),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 31457280;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 31457282;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_OFFSCREEN_TYPE:\n return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n pendingProps = createFiberImplClass(22, pendingProps, key, mode);\n pendingProps.elementType = REACT_OFFSCREEN_TYPE;\n pendingProps.lanes = lanes;\n var primaryChildInstance = {\n _visibility: 1,\n _pendingVisibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null,\n _current: null,\n detach: function () {\n var fiber = primaryChildInstance._current;\n if (null === fiber) throw Error(formatProdErrorMessage(456));\n if (0 === (primaryChildInstance._pendingVisibility & 2)) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root &&\n ((primaryChildInstance._pendingVisibility |= 2),\n scheduleUpdateOnFiber(root, fiber, 2));\n }\n },\n attach: function () {\n var fiber = primaryChildInstance._current;\n if (null === fiber) throw Error(formatProdErrorMessage(456));\n if (0 !== (primaryChildInstance._pendingVisibility & 2)) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root &&\n ((primaryChildInstance._pendingVisibility &= -3),\n scheduleUpdateOnFiber(root, fiber, 2));\n }\n }\n };\n pendingProps.stateNode = primaryChildInstance;\n return pendingProps;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource))) {\n resource = suspenseHandlerStackCursor.current;\n if (\n null !== resource &&\n ((workInProgressRootRenderLanes & 4194176) ===\n workInProgressRootRenderLanes\n ? null !== shellBoundary\n : ((workInProgressRootRenderLanes & 62914560) !==\n workInProgressRootRenderLanes &&\n 0 === (workInProgressRootRenderLanes & 536870912)) ||\n resource !== shellBoundary)\n )\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n workInProgress.flags |= 8192;\n }\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$131 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$131 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$131\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$131.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$132 = completedWork.child; null !== child$132; )\n (newChildLanes |= child$132.lanes | child$132.childLanes),\n (subtreeFlags |= child$132.subtreeFlags & 31457280),\n (subtreeFlags |= child$132.flags & 31457280),\n (child$132.return = completedWork),\n (child$132 = child$132.sibling);\n else\n for (child$132 = completedWork.child; null !== child$132; )\n (newChildLanes |= child$132.lanes | child$132.childLanes),\n (subtreeFlags |= child$132.subtreeFlags),\n (subtreeFlags |= child$132.flags),\n (child$132.return = completedWork),\n (child$132 = child$132.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\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 bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors),\n (hydrationErrors = null)));\n bubbleProperties(workInProgress);\n return null;\n case 26:\n return (\n (renderLanes = workInProgress.memoizedState),\n null === current\n ? (markUpdate(workInProgress),\n null !== renderLanes\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, renderLanes))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217)))\n : renderLanes\n ? renderLanes !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, renderLanes))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : (current.memoizedProps !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217)),\n null\n );\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n var type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n renderLanes = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, current);\n else {\n type = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (current) {\n case 1:\n current = type.createElementNS(\n \"http://www.w3.org/2000/svg\",\n renderLanes\n );\n break;\n case 2:\n current = type.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n renderLanes\n );\n break;\n default:\n switch (renderLanes) {\n case \"svg\":\n current = type.createElementNS(\n \"http://www.w3.org/2000/svg\",\n renderLanes\n );\n break;\n case \"math\":\n current = type.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n renderLanes\n );\n break;\n case \"script\":\n current = type.createElement(\"div\");\n current.innerHTML = \"\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 ` | \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 * > | &<]]>\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 * > | \n * ^\n * > | \n * ^\n * > | &<]]>\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 * > | \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 * > | \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 * > |
\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","/**\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} */\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 =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 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)\n ? factorySpace(effects, infoBefore, 'whitespace')(code)\n : 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\n ? ok(code)\n : 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)\n ? factorySpace(\n effects,\n beforeContentChunk,\n 'linePrefix',\n initialPrefix + 1\n )(code)\n : 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)\n ? factorySpace(\n effects,\n beforeSequenceClose,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : 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)\n ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code)\n : 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","/// \n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\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 {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} 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 (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\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","/**\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","/**\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 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","/**\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 (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\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} */\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 (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\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 (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\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 = [\n ['enter', group, context],\n ['enter', label, context]\n ]\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(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\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 (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\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(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\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(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(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(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(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)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : 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(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(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)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : 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(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(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)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : 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(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(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(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : 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","/**\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 * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\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\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} 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 (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\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 */\n// eslint-disable-next-line complexity\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} */\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 (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\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 (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\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 (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n }\n\n // Number of markers to use from the sequence.\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 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, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n }\n\n // Opening.\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\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, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\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} */\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 =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !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 {undefined}\n */\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\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 {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} 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 * > | ab\n * ^\n * > | ab\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 * > | ab\n * ^\n * > | ab\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 * > | ab\n * ^\n * > | ab\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 * > | ab\n * ^\n * > | ab\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 (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\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 * > | ab\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 * > | ab\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 * > | ab\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 * > | ab\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 * > | ab\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","/**\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 {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} 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 | 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 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 c\n * ^\n * > | a c\n * ^\n * > | a 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 ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> 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 ` | a 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 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 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 c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After ` | a &<]]> 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 &<]]> 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 &<]]> 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 &<]]> 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 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 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 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 ` | a 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 ` | a 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 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 ` | a 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 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 d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\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 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 e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\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 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 e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\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 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 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 \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 \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : 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 \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\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\n ? nok(code)\n : ok(code)\n }\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","/**\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 (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\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 (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\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 (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\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 (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\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","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} 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","/**\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 {string, text} 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 =\n /** @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","/**\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}\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 // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\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 value =\n buffer +\n (typeof value === 'string'\n ? value.toString()\n : new TextDecoder(encoding || undefined).decode(value))\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 =\n 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 chunks.push(65533)\n column++\n break\n }\n case 9: {\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 chunks.push(-4)\n column = 1\n break\n }\n default: {\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","/**\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.fromCodePoint(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 > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\n}","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\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","/**\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').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').ReferenceType} ReferenceType\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 *\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').Point} Point\n *\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Omit & {type: 'fragment', children: Array}} 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 | null | undefined | 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 {undefined | void}\n * Nothing.\n *\n * @typedef {Record} 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} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\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} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\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} 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} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(this: CompileContext) => undefined} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Nodes, token: Token, onError?: OnEnterError) => undefined} enter\n * Enter a node.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => undefined} exit\n * Exit a node.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n * @property {CompileData} data\n * Info passed around; key/value store.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | 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\nimport {toString} from 'mdast-util-to-string'\nimport {parse, postprocess, preprocess} from 'micromark'\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 * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\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} 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} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n }\n /** @type {Array} */\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 (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\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(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\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(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\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} 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 switch (event[1].type) {\n case 'listUnordered':\n case 'listOrdered':\n case 'blockQuote': {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n break\n }\n case 'lineEndingBlank': {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n break\n }\n case 'linePrefix':\n case 'listItemValue':\n case 'listItemMarker':\n case 'listItemPrefix':\n case 'listItemPrefixWhitespace': {\n // Empty.\n\n break\n }\n default: {\n atMarker = undefined\n }\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\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 (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\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 /** @type {Token} */\n const item = {\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 listItem = item\n events.splice(index, 0, ['enter', item, 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 * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [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 {undefined}\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 {undefined}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Nodes} 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 {undefined}\n * Nothing.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n /** @type {Array} */\n const siblings = parent.children\n siblings.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n }\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [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 {undefined}\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 {undefined}\n * Nothing.\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(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\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 }\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 this.data.expectingFirstListItemValue = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n this.data.expectingFirstListItemValue = undefined\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 (this.data.flowCodeInside) return\n this.buffer()\n this.data.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 this.data.flowCodeInside = undefined\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(\n this.sliceSerialize(token)\n ).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 this.data.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).codePointAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined\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 /** @type {Array} */\n const siblings = node.children\n let tail = siblings[siblings.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n }\n siblings.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 (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n this.data.atHardBreak = undefined\n return\n }\n if (\n !this.data.setextHeadingSlurpLineEnding &&\n config.canContainEols.includes(context.type)\n ) {\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 this.data.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 (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.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 this.data.referenceType = undefined\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 (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.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 this.data.referenceType = undefined\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 this.data.inReference = true\n if (node.type === 'link') {\n /** @type {Array} */\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 this.data.inReference = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.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(\n this.sliceSerialize(token)\n ).toLowerCase()\n this.data.referenceType = 'full'\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.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 = this.data.characterReferenceType\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n this.data.characterReferenceType = undefined\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 return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\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>} extensions\n * @returns {undefined}\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 {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols': {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n break\n }\n case 'transforms': {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n break\n }\n case 'enter':\n case 'exit': {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n break\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...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: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\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 | null | 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) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\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} */\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 (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\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 > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\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","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\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 */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const def = state.footnoteById.get(state.footnoteOrder[referenceIndex])\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\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({type: 'text', 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: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(def, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\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 {Extract} node\n * Reference node (image, link).\n * @returns {Array}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\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 | 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} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\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 (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', 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\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({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\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\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\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\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\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} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\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\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\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 {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 *\n * @satisfies {import('../state.js').Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\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 return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\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","/**\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// Make VS Code show references to the above types.\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}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', 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// Make VS Code show references to the above types.\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 /** @type {Properties} */\n const properties = {}\n\n if (node.lang) {\n properties.className = ['language-' + node.lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\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","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\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","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\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 clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\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\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\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","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\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","/**\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// Make VS Code show references to the above types.\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 {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\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 {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const def = state.definitionById.get(id)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(def.url || ''), 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 = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\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 = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\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// Make VS Code show references to the above types.\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 = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\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","/**\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 {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const def = state.definitionById.get(id)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {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","/**\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 = {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","/**\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// Make VS Code show references to the above types.\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\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\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\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","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\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","/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\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 {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\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","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointEnd, pointStart} 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} */\n  const tableContent = []\n\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\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\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\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","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\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', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\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 | 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  // To do: option to use `style`?\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} */\n  const cells = []\n\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\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\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","/**\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 {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\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","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */\n\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 | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\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 (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

\n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > 👉 **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | 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 * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\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 (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(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}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(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 = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\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 {undefined}\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 {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\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\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 of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\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 {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\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 {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */\n\nimport {ok as assert} from 'devlop'\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 *

\n * \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 `
` 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 (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","// Include `data` fields in mdast and `raw` nodes in hast.\n/// \n\n/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} ToHastOptions\n * @typedef {import('unified').Processor} Processor\n * @typedef {import('vfile').VFile} VFile\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given, runs the (rehype) plugins used on it with a\n * hast tree, then discards the result (*bridge mode*)\n * * otherwise, returns a hast tree, the plugins used after `remarkRehype`\n * are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass a `processor`.\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 plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` 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 if\n * you completely trust authors\n * * `rehype-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 way\n * 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 * `remark-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 *

\n * \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 `
` 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 * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given, configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(options || destination)})\n )\n }\n}\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}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\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) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => 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) => 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} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\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} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\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(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\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\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\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\n return done(exception)\n }\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, ...output) {\n if (!called) {\n called = true\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","// A derivative work based on:\n// .\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// .\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 = {basename, dirname, extname, join, sep: '/'}\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 | null | 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\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.codePointAt(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\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.codePointAt(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\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === ext.codePointAt(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\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\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\n if (path.length === 0) {\n return '.'\n }\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.codePointAt(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\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : 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\n let index = path.length\n\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\n while (index--) {\n const code = path.codePointAt(index)\n\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\n continue\n }\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\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\n if (\n startDot < 0 ||\n 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 ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\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\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\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\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\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\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\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\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\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(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} 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(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\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\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(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n * @typedef {import('vfile-message').Options} MessageOptions\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {Options | URL | VFile | Value} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {string | null | undefined} [basename]\n * Set `basename` (name).\n * @property {string | null | undefined} [cwd]\n * Set `cwd` (working directory).\n * @property {Data | null | undefined} [data]\n * Set `data` (associated info).\n * @property {string | null | undefined} [dirname]\n * Set `dirname` (path w/o basename).\n * @property {string | null | undefined} [extname]\n * Set `extname` (extension with dot).\n * @property {Array | null | undefined} [history]\n * Set `history` (paths the file moved between).\n * @property {URL | string | null | undefined} [path]\n * Set `path` (current path).\n * @property {string | null | undefined} [stem]\n * Set `stem` (name without extension).\n * @property {Value | null | undefined} [value]\n * Set `value` (the contents of the file).\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * .\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array} sources\n * An array of URLs to the original source files.\n * @property {Array} 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 | 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 {Record & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template [Settings=ReporterSettings]\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {path} from 'vfile/do-not-use-conditional-minpath'\nimport {proc} from 'vfile/do-not-use-conditional-minproc'\nimport {urlToPath, isUrl} from 'vfile/do-not-use-conditional-minurl'\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 */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{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\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /**\n * Place to store custom info (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 file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\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 * 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\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 * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\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 (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\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 basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\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 * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\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 parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\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 * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\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 * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\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 {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : 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 * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\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 // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\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 * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\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(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\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(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\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 {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\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 an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const func = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return func.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n const names = Object.getOwnPropertyNames(func)\n\n for (const p of names) {\n const descriptor = Object.getOwnPropertyDescriptor(func, p)\n if (descriptor) Object.defineProperty(apply, p, descriptor)\n }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@link CompileResultMap `CompileResultMap`}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@link Node `Node`}\n * and {@link VFile `VFile`} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@link VFile `VFile`} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@link Node `Node`}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > 👉 **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > 👉 **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@link VFile `VFile`} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@link VFile `VFile`}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@link Processor `Processor`}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > 👉 **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > 👉 **Note**: to register custom data in TypeScript, augment the\n * > {@link Data `Data`} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > 👉 **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > 👉 **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > 👉 **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > 👉 **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > 👉 **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > 👉 **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > 👉 **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\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\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\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, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\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 {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\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 {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\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(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\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(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","// Register `Raw` in tree:\n/// \n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-to-jsx-runtime').Components} JsxRuntimeComponents\n * @typedef {import('remark-rehype').Options} RemarkRehypeOptions\n * @typedef {import('unist-util-visit').BuildVisitor} Visitor\n * @typedef {import('unified').PluggableList} PluggableList\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n *\n * @typedef {Partial} Components\n * Map tag names to components.\n *\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n *\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {string | null | undefined} [className]\n * Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n *\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\n// @ts-expect-error: untyped.\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * @param {Readonly} options\n * Props.\n * @returns {JSX.Element}\n * React element.\n */\nexport function Markdown(options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const children = options.children || ''\n const className = options.className\n const components = options.components\n const disallowedElements = options.disallowedElements\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n const mdastTree = processor.parse(file)\n /** @type {Nodes} */\n let hastTree = processor.runSync(mdastTree, file)\n\n // Wrap in `div` if there’s a class name.\n if (className) {\n hastTree = {\n type: 'element',\n tagName: 'div',\n properties: {className},\n // Assume no doctypes.\n children: /** @type {Array} */ (\n hastTree.type === 'root' ? hastTree.children : [hastTree]\n )\n }\n }\n\n visit(hastTree, transform)\n\n return toJsxRuntime(hastTree, {\n Fragment,\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {Visitor} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // \n // But without the `encode` part.\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\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) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n","/**\n * Core\n */\nimport { Link } from 'react-router-dom'\nimport rehypeRaw from 'rehype-raw'\n\nimport ReactMarkdown from 'react-markdown'\n\nconst TopStory = ({ title, description, image, slug, excerpt=true, more=true, rounded=false }) => {\n \n return (\n
\n \n
\n \n
\n \n
\n
{title}
\n {\n excerpt &&{description}\n }\n {\n more && More\n }\n
\n \n
\n )\n}\n\nexport default TopStory","/**\n * Core\n */\nimport React from 'react'\nimport { Link, useParams } from 'react-router-dom'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\nimport Spinner from '../components/pages/top-stories/spinner'\nimport {default as Top} from '../components/pages/home/top-story'\n\n/**\n * graphql\n */\nimport { useQuery } from '@apollo/client'\nimport { GET_POST_BY_SLUG, GET_POSTS_BY_CATEGORY_WITH_PAGING } from '../utils/gql'\n\nconst TopStory = () => {\n let { slug } = useParams()\n\n const { data, loading, error } = useQuery(GET_POST_BY_SLUG, {\n variables: { slug }\n }) \n\n const latest = useQuery(GET_POSTS_BY_CATEGORY_WITH_PAGING, {\n variables: { first: 6, after: null, category: 'Customer Experience' },\n notifyOnNetworkStatusChange: true,\n })\n \n if (error) {\n return

Sorry, an error happened. Reload Please

\n }\n \n return (\n
\n {\n data &&\n <>\n {data.post.seo.title}\n \n \n \n \n \n \n \n }\n
\n
\n {\n (!data && loading) ?\n <>\n \n :\n

{ data.post.title }

\n }\n
\n
\n
\n
\n \n
\n {\n (!data && loading) ?\n <>\n \n :\n
\n \n
\n
\n }\n
\n \n
\n
\n
\n
\n {\n (!data && loading) ?\n <>\n \n :\n data.post.tags.edges.map(edge => edge.node.posts.nodes.filter(post => post.id !== data.post.id)).flat(1).length &&\n <>\n

Related Articles

\n
\n { \n data.post.tags.edges.map(edge => edge.node.posts.nodes.filter(post => post.id !== data.post.id)).flat(1).slice(0,3).map((post, i) => \n \n )\n }\n
\n \n }\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport default TopStory","import { createContext, useReducer } from 'react'\n\nexport const SearchContext = createContext(null)\nexport const SearchDispatchContext = createContext(null)\n\nexport const SearchProvider = ({ children }) => {\n const [variables, dispatch] = useReducer(searchReducer, initalVariables)\n return (\n \n \n {children}\n \n \n )\n}\n\nconst searchReducer = (variables, action) => {\n switch(action.type) {\n case 'add': {\n return {\n ...variables,\n [action.dataType]:\n variables[action.dataType]\n ? !variables[action.dataType].includes(action.value)\n ? [ ...variables[action.dataType], action.value ]\n : variables[action.dataType] \n : [ action.value ]\n }\n }\n case 'add-only': {\n return { ...variables, [action.dataType]: action.value }\n }\n case 'none': {\n delete(variables[action.dataType])\n return { ...variables }\n }\n case 'remove': {\n const filtered = variables[action.dataType] ? variables[action.dataType].filter(variable => variable !== action.value) : []\n return filtered.length ? { ...variables, [action.dataType]: filtered } : Object.fromEntries(Object.entries(variables).filter(([key]) => key !== action.dataType))\n }\n case 'init': {\n populateInitialVariables(action)\n return {}\n }\n case 'reset': {\n return {\n [action.dataType]: [ action.value ]\n }\n }\n default: {\n throw Error('Unkonwn action: ' + action.type)\n }\n }\n}\n\nlet initalVariables = {}\n\nconst populateInitialVariables = (action) => {\n if(!initalVariables[action.dataType]) initalVariables[action.dataType] = action.value\n}","/**\n * Core\n */\nimport { useState, useContext, useEffect } from 'react'\n\n/**\n * Context\n */\nimport { SearchDispatchContext } from '../../../context/search.context'\n\nconst Region = ({ region }) => {\n const [isChecked, setIsChecked] = useState(false)\n const dispatch = useContext(SearchDispatchContext)\n\n /* useEffect(() => {\n dispatch({\n type: 'add',\n dataType: 'regionSlug',\n value: region.slug\n })\n }, []) */\n \n const handleChange = (type, value) => {\n setIsChecked(!isChecked)\n dispatch({\n type: isChecked ? 'remove' : 'add',\n dataType: type,\n value\n })\n }\n return (\n
\n handleChange('regionSlug', region.slug) } type=\"checkbox\" role=\"switch\" checked={isChecked} id={region.slug} className=\"mr-2 mt-[0.3rem] h-3.5 w-8 appearance-none rounded-[0.4375rem] bg-neutral-300 before:pointer-events-none before:absolute before:h-3.5 before:w-3.5 before:rounded-full before:bg-transparent before:content-[''] after:absolute after:z-[2] after:-mt-[0.1875rem] after:h-5 after:w-5 after:rounded-full after:border-none after:bg-neutral-100 after:shadow-[0_0px_3px_0_rgb(0_0_0_/_7%),_0_2px_2px_0_rgb(0_0_0_/_4%)] after:transition-[background-color_0.2s,transform_0.2s] after:content-[''] checked:bg-ai-primary-500 checked:after:absolute checked:after:z-[2] checked:after:-mt-[3px] checked:after:ml-[1.0625rem] checked:after:h-5 checked:after:w-5 checked:after:rounded-full checked:after:border-none checked:after:bg-ai-primary-500 checked:after:shadow-[0_3px_1px_-2px_rgba(0,0,0,0.2),_0_2px_2px_0_rgba(0,0,0,0.14),_0_1px_5px_0_rgba(0,0,0,0.12)] checked:after:transition-[background-color_0.2s,transform_0.2s] checked:after:content-[''] hover:cursor-pointer focus:outline-none focus:ring-0 focus:before:scale-100 focus:before:opacity-[0.12] focus:before:shadow-[3px_-1px_0px_13px_rgba(0,0,0,0.6)] focus:before:transition-[box-shadow_0.2s,transform_0.2s] focus:after:absolute focus:after:z-[1] focus:after:block focus:after:h-5 focus:after:w-5 focus:after:rounded-full focus:after:content-[''] checked:focus:border-primary checked:focus:bg-primary checked:focus:before:ml-[1.0625rem] checked:focus:before:scale-100 checked:focus:before:shadow-[3px_-1px_0px_13px_#3b71ca] checked:focus:before:transition-[box-shadow_0.2s,transform_0.2s] dark:bg-neutral-600 dark:after:bg-neutral-400 dark:checked:bg-primary dark:checked:after:bg-primary dark:focus:before:shadow-[3px_-1px_0px_13px_rgba(255,255,255,0.4)] dark:checked:focus:before:shadow-[3px_-1px_0px_13px_#3b71ca]\" />\n \n
\n )\n}\n\nexport default Region","/**\n * Core\n */\nimport { useContext, useEffect } from 'react'\n\n/**\n * graphql\n */\nimport { useQuery } from '@apollo/client'\nimport { GET_REGIONS } from '../../../utils/gql'\n\n/**\n * Components\n */\nimport Region from './region'\nimport Spinner from '../top-stories/spinner'\n\n/**\n * Context\n */\nimport { SearchDispatchContext } from '../../../context/search.context'\n\nconst RegionsList = () => {\n const dispatch = useContext(SearchDispatchContext)\n const { data, error, loading } = useQuery(GET_REGIONS, {\n variables: {},\n notifyOnNetworkStatusChange: true,\n })\n\n useEffect(() => {\n dispatch({\n type: 'init',\n dataType: 'regionSlug',\n value: data?.regions?.nodes?.map(region => region.slug)\n })\n }, [data])\n\n if (error) {\n return

Sorry, an error happened. Reload Please

\n }\n\n const render = (data) => {\n return (\n
\n {\n data.regions.nodes.map((region, key) => \n \n )\n }\n
\n )\n }\n\n return (\n (!data && loading) ? : render(data)\n )\n}\n\nexport default RegionsList","/**\n * Core\n */\nimport { useState, useContext, useEffect } from 'react'\n\n/**\n * Context\n */\nimport { SearchDispatchContext } from '../../../context/search.context'\n\nconst Topic = ({ topic }) => {\n const [isChecked, setIsChecked] = useState(false)\n const dispatch = useContext(SearchDispatchContext)\n\n /* useEffect(() => {\n dispatch({\n type: 'add',\n dataType: 'topicSlug',\n value: topic.slug\n })\n }, []) */\n \n const handleChange = (type, value) => {\n setIsChecked(!isChecked)\n dispatch({\n type: isChecked ? 'remove' : 'add',\n dataType: type,\n value\n })\n }\n return (\n
\n handleChange('topicSlug', topic.slug) } type=\"checkbox\" role=\"switch\" checked={isChecked} id={topic.slug} className=\"mr-2 mt-[0.3rem] h-3.5 w-8 appearance-none rounded-[0.4375rem] bg-neutral-300 before:pointer-events-none before:absolute before:h-3.5 before:w-3.5 before:rounded-full before:bg-transparent before:content-[''] after:absolute after:z-[2] after:-mt-[0.1875rem] after:h-5 after:w-5 after:rounded-full after:border-none after:bg-neutral-100 after:shadow-[0_0px_3px_0_rgb(0_0_0_/_7%),_0_2px_2px_0_rgb(0_0_0_/_4%)] after:transition-[background-color_0.2s,transform_0.2s] after:content-[''] checked:bg-ai-primary-500 checked:after:absolute checked:after:z-[2] checked:after:-mt-[3px] checked:after:ml-[1.0625rem] checked:after:h-5 checked:after:w-5 checked:after:rounded-full checked:after:border-none checked:after:bg-ai-primary-500 checked:after:shadow-[0_3px_1px_-2px_rgba(0,0,0,0.2),_0_2px_2px_0_rgba(0,0,0,0.14),_0_1px_5px_0_rgba(0,0,0,0.12)] checked:after:transition-[background-color_0.2s,transform_0.2s] checked:after:content-[''] hover:cursor-pointer focus:outline-none focus:ring-0 focus:before:scale-100 focus:before:opacity-[0.12] focus:before:shadow-[3px_-1px_0px_13px_rgba(0,0,0,0.6)] focus:before:transition-[box-shadow_0.2s,transform_0.2s] focus:after:absolute focus:after:z-[1] focus:after:block focus:after:h-5 focus:after:w-5 focus:after:rounded-full focus:after:content-[''] checked:focus:border-primary checked:focus:bg-primary checked:focus:before:ml-[1.0625rem] checked:focus:before:scale-100 checked:focus:before:shadow-[3px_-1px_0px_13px_#3b71ca] checked:focus:before:transition-[box-shadow_0.2s,transform_0.2s] dark:bg-neutral-600 dark:after:bg-neutral-400 dark:checked:bg-primary dark:checked:after:bg-primary dark:focus:before:shadow-[3px_-1px_0px_13px_rgba(255,255,255,0.4)] dark:checked:focus:before:shadow-[3px_-1px_0px_13px_#3b71ca]\" />\n \n
\n )\n}\n\nexport default Topic","/**\n * Core\n */\nimport { useContext, useEffect } from 'react'\n\n/**\n * graphql\n */\nimport { useQuery } from '@apollo/client'\nimport { GET_TOPICS } from '../../../utils/gql'\n\n/**\n * Components\n */\nimport Topic from './topic'\nimport Spinner from '../top-stories/spinner'\n\n/**\n * Context\n */\nimport { SearchDispatchContext } from '../../../context/search.context'\n\nconst TopicsList = () => {\n const dispatch = useContext(SearchDispatchContext)\n const { data, error, loading } = useQuery(GET_TOPICS, {\n variables: {},\n notifyOnNetworkStatusChange: true,\n })\n\n useEffect(() => {\n dispatch({\n type: 'init',\n dataType: 'topicSlug',\n value: data?.topics?.nodes?.map(topic => topic.slug)\n })\n }, [data])\n\n if (error) {\n return

Sorry, an error happened. Reload Please

\n }\n\n const render = (data) => {\n return (\n
\n {\n data.topics.nodes.map((topic, key) => \n \n )\n }\n
\n )\n }\n\n return (\n (!data && loading) ? : render(data)\n )\n}\n\nexport default TopicsList","/**\n * Core\n */\nimport { useState, useContext, useEffect } from 'react'\n\n/**\n * Context\n */\nimport { SearchDispatchContext } from '../../../context/search.context'\n\nconst EventType = ({ eventType }) => {\n const [isChecked, setIsChecked] = useState(false)\n const dispatch = useContext(SearchDispatchContext)\n\n /* useEffect(() => {\n dispatch({\n type: 'add',\n dataType: 'eventtypesSlug',\n value: eventType.slug\n })\n }, []) */\n \n const handleChange = (type, value) => {\n setIsChecked(!isChecked)\n dispatch({\n type: isChecked ? 'remove' : 'add',\n dataType: type,\n value\n })\n }\n return (\n
\n handleChange('eventtypeSlug', eventType.slug)} type=\"checkbox\" role=\"switch\" checked={isChecked} id={eventType.slug} className=\"mr-2 mt-[0.3rem] h-3.5 w-8 appearance-none rounded-[0.4375rem] bg-neutral-300 before:pointer-events-none before:absolute before:h-3.5 before:w-3.5 before:rounded-full before:bg-transparent before:content-[''] after:absolute after:z-[2] after:-mt-[0.1875rem] after:h-5 after:w-5 after:rounded-full after:border-none after:bg-neutral-100 after:shadow-[0_0px_3px_0_rgb(0_0_0_/_7%),_0_2px_2px_0_rgb(0_0_0_/_4%)] after:transition-[background-color_0.2s,transform_0.2s] after:content-[''] checked:bg-ai-primary-500 checked:after:absolute checked:after:z-[2] checked:after:-mt-[3px] checked:after:ml-[1.0625rem] checked:after:h-5 checked:after:w-5 checked:after:rounded-full checked:after:border-none checked:after:bg-ai-primary-500 checked:after:shadow-[0_3px_1px_-2px_rgba(0,0,0,0.2),_0_2px_2px_0_rgba(0,0,0,0.14),_0_1px_5px_0_rgba(0,0,0,0.12)] checked:after:transition-[background-color_0.2s,transform_0.2s] checked:after:content-[''] hover:cursor-pointer focus:outline-none focus:ring-0 focus:before:scale-100 focus:before:opacity-[0.12] focus:before:shadow-[3px_-1px_0px_13px_rgba(0,0,0,0.6)] focus:before:transition-[box-shadow_0.2s,transform_0.2s] focus:after:absolute focus:after:z-[1] focus:after:block focus:after:h-5 focus:after:w-5 focus:after:rounded-full focus:after:content-[''] checked:focus:border-primary checked:focus:bg-primary checked:focus:before:ml-[1.0625rem] checked:focus:before:scale-100 checked:focus:before:shadow-[3px_-1px_0px_13px_#3b71ca] checked:focus:before:transition-[box-shadow_0.2s,transform_0.2s] dark:bg-neutral-600 dark:after:bg-neutral-400 dark:checked:bg-primary dark:checked:after:bg-primary dark:focus:before:shadow-[3px_-1px_0px_13px_rgba(255,255,255,0.4)] dark:checked:focus:before:shadow-[3px_-1px_0px_13px_#3b71ca]\" />\n \n
\n )\n}\n\nexport default EventType","/**\n * Core\n */\nimport { useContext, useEffect } from 'react'\n\n/**\n * graphql\n */\nimport { useQuery } from '@apollo/client'\nimport { GET_EVENTTYPES } from '../../../utils/gql'\n\n/**\n * Components\n */\nimport EventType from './event-type'\nimport Spinner from '../top-stories/spinner'\n\n/**\n * Context\n */\nimport { SearchDispatchContext } from '../../../context/search.context'\n\nconst EventTypesList = () => {\n const dispatch = useContext(SearchDispatchContext)\n const { data, error, loading } = useQuery(GET_EVENTTYPES, {\n variables: {},\n notifyOnNetworkStatusChange: true,\n })\n\n useEffect(() => {\n dispatch({\n type: 'init',\n dataType: 'eventtypesSlug',\n value: data?.eventtypes?.nodes?.map(eventType => eventType.slug)\n })\n }, [data])\n\n if (error) {\n return

Sorry, an error happened. Reload Please

\n }\n\n const render = (data) => {\n return (\n
\n {\n data.eventtypes.nodes.map((eventType, key) => \n \n )\n }\n
\n )\n }\n\n return (\n (!data && loading) ? : render(data)\n )\n}\n\nexport default EventTypesList","/*!\n * @preserve\n *\n * ++++++++++++++++++++++++++++++++++++++\n * Add to Calendar TimeZones iCal Library\n * ++++++++++++++++++++++++++++++++++++++\n *\n * Version: 1.8.2\n * Creator: Jens Kuerschner (https://jenskuerschner.de)\n * Project: https://github.com/add2cal/timezones-ical-library\n * License: Apache-2.0\n *\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst tzlibVersion = '1.8.2';\nconst tzlibZonesDB = {\n Zulu: ['Etc/UTC', 0],\n WET: ['', 1],\n 'W-SU': ['Europe/Moscow', 2],\n Universal: ['Etc/UTC', 0],\n UTC: ['Etc/UTC', 0],\n UCT: ['Etc/UTC', 0],\n Turkey: ['Europe/Istanbul', 3],\n Singapore: ['Asia/Singapore', 4],\n ROK: ['Asia/Seoul', 5],\n ROC: ['Asia/Taipei', 6],\n Portugal: ['Europe/Lisbon', 7],\n Poland: ['Europe/Warsaw', 8],\n PST8PDT: ['', 9],\n PRC: ['Asia/Shanghai', 6],\n Navajo: ['America/Denver', 10],\n NZ: ['Pacific/Auckland', 11],\n 'NZ-CHAT': ['Pacific/Chatham', 12],\n MST7MDT: ['', 10],\n MST: ['', 13],\n MET: ['', 14],\n Libya: ['Africa/Tripoli', 15],\n Kwajalein: ['Pacific/Kwajalein', 16],\n Japan: ['Asia/Tokyo', 17],\n Jamaica: ['America/Jamaica', 18],\n Israel: ['Asia/Jerusalem', 19],\n Iran: ['Asia/Tehran', 20],\n Iceland: ['Africa/Abidjan', 21],\n Hongkong: ['Asia/Hong_Kong', 22],\n HST: ['', 23],\n Greenwich: ['Etc/GMT', 24],\n GMT0: ['Etc/GMT', 24],\n GMT: ['Etc/GMT', 24],\n 'GMT-0': ['Etc/GMT', 24],\n 'GMT+0': ['Etc/GMT', 24],\n GB: ['Europe/London', 25],\n 'GB-Eire': ['Europe/London', 25],\n Eire: ['Europe/Dublin', 26],\n Egypt: ['Africa/Cairo', 27],\n EST5EDT: ['', 28],\n EST: ['', 18],\n EET: ['', 29],\n Cuba: ['America/Havana', 30],\n CST6CDT: ['', 31],\n CET: ['', 8],\n US: {\n Samoa: ['Pacific/Pago_Pago', 32],\n Pacific: ['America/Los_Angeles', 9],\n Mountain: ['America/Denver', 10],\n Michigan: ['America/Detroit', 28],\n 'Indiana-Starke': ['America/Indiana/Knox', 31],\n Hawaii: ['Pacific/Honolulu', 23],\n Eastern: ['America/New_York', 28],\n 'East-Indiana': ['America/Indiana/Indianapolis', 28],\n Central: ['America/Chicago', 31],\n Arizona: ['America/Phoenix', 13],\n Aleutian: ['America/Adak', 33],\n Alaska: ['America/Anchorage', 34],\n },\n Pacific: {\n Yap: ['Pacific/Port_Moresby', 35],\n Wallis: ['Pacific/Tarawa', 16],\n Wake: ['Pacific/Tarawa', 16],\n Truk: ['Pacific/Port_Moresby', 35],\n Tongatapu: ['', 36],\n Tarawa: ['', 16],\n Tahiti: ['', 37],\n Samoa: ['Pacific/Pago_Pago', 32],\n Saipan: ['Pacific/Guam', 38],\n Rarotonga: ['', 37],\n Port_Moresby: ['', 35],\n Ponape: ['Pacific/Guadalcanal', 39],\n Pohnpei: ['Pacific/Guadalcanal', 39],\n Pitcairn: ['', 40],\n Palau: ['', 41],\n Pago_Pago: ['', 32],\n Noumea: ['', 39],\n Norfolk: ['', 42],\n Niue: ['', 43],\n Nauru: ['', 16],\n Midway: ['Pacific/Pago_Pago', 32],\n Marquesas: ['', 44],\n Majuro: ['Pacific/Tarawa', 16],\n Kwajalein: ['', 16],\n Kosrae: ['', 39],\n Kiritimati: ['', 45],\n Kanton: ['', 36],\n Johnston: ['Pacific/Honolulu', 23],\n Honolulu: ['', 23],\n Guam: ['', 38],\n Guadalcanal: ['', 39],\n Gambier: ['', 46],\n Galapagos: ['', 47],\n Funafuti: ['Pacific/Tarawa', 16],\n Fiji: ['', 16],\n Fakaofo: ['', 36],\n Enderbury: ['Pacific/Kanton', 36],\n Efate: ['', 39],\n Easter: ['', 48],\n Chuuk: ['Pacific/Port_Moresby', 35],\n Chatham: ['', 12],\n Bougainville: ['', 39],\n Auckland: ['', 11],\n Apia: ['', 36],\n },\n Mexico: {\n General: ['America/Mexico_City', 49],\n BajaSur: ['America/Mazatlan', 13],\n BajaNorte: ['America/Tijuana', 9],\n },\n Indian: {\n Reunion: ['Asia/Dubai', 50],\n Mayotte: ['Africa/Nairobi', 51],\n Mauritius: ['', 50],\n Maldives: ['', 52],\n Mahe: ['Asia/Dubai', 50],\n Kerguelen: ['Indian/Maldives', 52],\n Comoro: ['Africa/Nairobi', 51],\n Cocos: ['Asia/Yangon', 53],\n Christmas: ['Asia/Bangkok', 54],\n Chagos: ['', 55],\n Antananarivo: ['Africa/Nairobi', 51],\n },\n Europe: {\n Zurich: ['', 8],\n Zaporozhye: ['Europe/Kyiv', 56],\n Zagreb: ['Europe/Belgrade', 8],\n Warsaw: ['', 8],\n Volgograd: ['', 2],\n Vilnius: ['', 29],\n Vienna: ['', 8],\n Vatican: ['Europe/Rome', 8],\n Vaduz: ['Europe/Zurich', 8],\n Uzhgorod: ['Europe/Kyiv', 56],\n Ulyanovsk: ['', 50],\n Tiraspol: ['Europe/Chisinau', 57],\n Tirane: ['', 8],\n Tallinn: ['', 29],\n Stockholm: ['Europe/Berlin', 8],\n Sofia: ['', 29],\n Skopje: ['Europe/Belgrade', 8],\n Simferopol: ['', 2],\n Saratov: ['', 50],\n Sarajevo: ['Europe/Belgrade', 8],\n San_Marino: ['Europe/Rome', 8],\n Samara: ['', 50],\n Rome: ['', 8],\n Riga: ['', 29],\n Prague: ['', 8],\n Podgorica: ['Europe/Belgrade', 8],\n Paris: ['', 8],\n Oslo: ['Europe/Berlin', 8],\n Nicosia: ['Asia/Nicosia', 56],\n Moscow: ['', 2],\n Monaco: ['Europe/Paris', 8],\n Minsk: ['', 3],\n Mariehamn: ['Europe/Helsinki', 29],\n Malta: ['', 8],\n Madrid: ['', 8],\n Luxembourg: ['Europe/Brussels', 8],\n London: ['', 25],\n Ljubljana: ['Europe/Belgrade', 8],\n Lisbon: ['', 7],\n Kyiv: ['', 56],\n Kirov: ['', 2],\n Kiev: ['Europe/Kyiv', 56],\n Kaliningrad: ['', 15],\n Jersey: ['Europe/London', 25],\n Istanbul: ['', 3],\n Isle_of_Man: ['Europe/London', 25],\n Helsinki: ['', 29],\n Guernsey: ['Europe/London', 25],\n Gibraltar: ['', 8],\n Dublin: ['', 26],\n Copenhagen: ['Europe/Berlin', 8],\n Chisinau: ['', 57],\n Busingen: ['Europe/Zurich', 8],\n Budapest: ['', 8],\n Bucharest: ['', 29],\n Brussels: ['', 8],\n Bratislava: ['Europe/Prague', 8],\n Berlin: ['', 8],\n Belgrade: ['', 8],\n Belfast: ['Europe/London', 25],\n Athens: ['', 29],\n Astrakhan: ['', 50],\n Andorra: ['', 8],\n Amsterdam: ['Europe/Brussels', 8],\n },\n Etc: {\n Zulu: ['Etc/UTC', 0],\n Universal: ['Etc/UTC', 0],\n UTC: ['', 0],\n UCT: ['Etc/UTC', 0],\n Greenwich: ['Etc/GMT', 24],\n GMT0: ['Etc/GMT', 24],\n GMT: ['', 24],\n 'GMT-9': ['', 58],\n 'GMT-8': ['', 59],\n 'GMT-7': ['', 60],\n 'GMT-6': ['', 61],\n 'GMT-5': ['', 62],\n 'GMT-4': ['', 63],\n 'GMT-3': ['', 64],\n 'GMT-2': ['', 65],\n 'GMT-14': ['', 66],\n 'GMT-13': ['', 67],\n 'GMT-12': ['', 68],\n 'GMT-11': ['', 69],\n 'GMT-10': ['', 70],\n 'GMT-1': ['', 71],\n 'GMT-0': ['Etc/GMT', 24],\n 'GMT+9': ['', 72],\n 'GMT+8': ['', 73],\n 'GMT+7': ['', 74],\n 'GMT+6': ['', 47],\n 'GMT+5': ['', 75],\n 'GMT+4': ['', 76],\n 'GMT+3': ['', 77],\n 'GMT+2': ['', 78],\n 'GMT+12': ['', 79],\n 'GMT+11': ['', 80],\n 'GMT+10': ['', 81],\n 'GMT+1': ['', 82],\n 'GMT+0': ['Etc/GMT', 24],\n },\n Chile: { EasterIsland: ['Pacific/Easter', 48], Continental: ['America/Santiago', 83] },\n Canada: {\n Yukon: ['America/Whitehorse', 13],\n Saskatchewan: ['America/Regina', 49],\n Pacific: ['America/Vancouver', 9],\n Newfoundland: ['America/St_Johns', 84],\n Mountain: ['America/Edmonton', 10],\n Eastern: ['America/Toronto', 28],\n Central: ['America/Winnipeg', 31],\n Atlantic: ['America/Halifax', 85],\n },\n Brazil: {\n West: ['America/Manaus', 86],\n East: ['America/Sao_Paulo', 87],\n DeNoronha: ['America/Noronha', 88],\n Acre: ['America/Rio_Branco', 89],\n },\n Australia: {\n Yancowinna: ['Australia/Broken_Hill', 90],\n West: ['Australia/Perth', 91],\n Victoria: ['Australia/Melbourne', 92],\n Tasmania: ['Australia/Hobart', 93],\n Sydney: ['', 92],\n South: ['Australia/Adelaide', 90],\n Queensland: ['Australia/Brisbane', 94],\n Perth: ['', 91],\n North: ['Australia/Darwin', 95],\n NSW: ['Australia/Sydney', 92],\n Melbourne: ['', 92],\n Lord_Howe: ['', 96],\n Lindeman: ['', 94],\n LHI: ['Australia/Lord_Howe', 96],\n Hobart: ['', 93],\n Eucla: ['', 97],\n Darwin: ['', 95],\n Currie: ['Australia/Hobart', 93],\n Canberra: ['Australia/Sydney', 92],\n Broken_Hill: ['', 90],\n Brisbane: ['', 94],\n Adelaide: ['', 90],\n ACT: ['Australia/Sydney', 92],\n },\n Atlantic: {\n Stanley: ['', 77],\n St_Helena: ['Africa/Abidjan', 21],\n South_Georgia: ['', 78],\n Reykjavik: ['Africa/Abidjan', 21],\n Madeira: ['', 1],\n Jan_Mayen: ['Europe/Berlin', 8],\n Faroe: ['', 1],\n Faeroe: ['Atlantic/Faroe', 1],\n Cape_Verde: ['', 98],\n Canary: ['', 1],\n Bermuda: ['', 85],\n Azores: ['', 99],\n },\n Asia: {\n Yerevan: ['', 50],\n Yekaterinburg: ['', 52],\n Yangon: ['', 53],\n Yakutsk: ['', 41],\n Vladivostok: ['', 35],\n Vientiane: ['Asia/Bangkok', 54],\n 'Ust-Nera': ['', 35],\n Urumqi: ['', 55],\n Ulan_Bator: ['Asia/Ulaanbaatar', 4],\n Ulaanbaatar: ['', 4],\n Ujung_Pandang: ['Asia/Makassar', 100],\n Tomsk: ['', 54],\n Tokyo: ['', 17],\n Thimphu: ['', 55],\n Thimbu: ['Asia/Thimphu', 55],\n Tel_Aviv: ['Asia/Jerusalem', 19],\n Tehran: ['', 20],\n Tbilisi: ['', 50],\n Tashkent: ['', 52],\n Taipei: ['', 6],\n Srednekolymsk: ['', 39],\n Singapore: ['', 4],\n Shanghai: ['', 6],\n Seoul: ['', 5],\n Samarkand: ['', 52],\n Sakhalin: ['', 39],\n Saigon: ['Asia/Ho_Chi_Minh', 54],\n Riyadh: ['', 3],\n Rangoon: ['Asia/Yangon', 53],\n Qyzylorda: ['', 52],\n Qostanay: ['', 52],\n Qatar: ['', 3],\n Pyongyang: ['', 5],\n Pontianak: ['', 101],\n Phnom_Penh: ['Asia/Bangkok', 54],\n Oral: ['', 52],\n Omsk: ['', 55],\n Novosibirsk: ['', 54],\n Novokuznetsk: ['', 54],\n Nicosia: ['', 56],\n Muscat: ['Asia/Dubai', 50],\n Manila: ['', 102],\n Makassar: ['', 100],\n Magadan: ['', 39],\n Macau: ['', 6],\n Macao: ['Asia/Macau', 6],\n Kuwait: ['Asia/Riyadh', 3],\n Kuching: ['', 4],\n Kuala_Lumpur: ['Asia/Singapore', 4],\n Krasnoyarsk: ['', 54],\n Kolkata: ['', 103],\n Khandyga: ['', 41],\n Katmandu: ['Asia/Kathmandu', 104],\n Kathmandu: ['', 104],\n Kashgar: ['Asia/Urumqi', 55],\n Karachi: ['', 105],\n Kamchatka: ['', 16],\n Kabul: ['', 106],\n Jerusalem: ['', 19],\n Jayapura: ['', 107],\n Jakarta: ['', 101],\n Istanbul: ['Europe/Istanbul', 3],\n Irkutsk: ['', 4],\n Hovd: ['', 54],\n Hong_Kong: ['', 22],\n Ho_Chi_Minh: ['', 54],\n Hebron: ['', 108],\n Harbin: ['Asia/Shanghai', 6],\n Gaza: ['', 108],\n Famagusta: ['', 29],\n Dushanbe: ['', 52],\n Dubai: ['', 50],\n Dili: ['', 41],\n Dhaka: ['', 55],\n Damascus: ['', 3],\n Dacca: ['Asia/Dhaka', 55],\n Colombo: ['', 109],\n Chungking: ['Asia/Shanghai', 6],\n Chongqing: ['Asia/Shanghai', 6],\n Choibalsan: ['', 4],\n Chita: ['', 41],\n Calcutta: ['Asia/Kolkata', 103],\n Brunei: ['Asia/Kuching', 4],\n Bishkek: ['', 55],\n Beirut: ['', 110],\n Barnaul: ['', 54],\n Bangkok: ['', 54],\n Baku: ['', 50],\n Bahrain: ['Asia/Qatar', 3],\n Baghdad: ['', 3],\n Atyrau: ['', 52],\n Ashkhabad: ['Asia/Ashgabat', 52],\n Ashgabat: ['', 52],\n Aqtobe: ['', 52],\n Aqtau: ['', 52],\n Anadyr: ['', 16],\n Amman: ['', 3],\n Almaty: ['', 52],\n Aden: ['Asia/Riyadh', 3],\n },\n Arctic: { Longyearbyen: ['Europe/Berlin', 8] },\n Antarctica: {\n Vostok: ['', 52],\n Troll: ['', 111],\n Syowa: ['Asia/Riyadh', 3],\n South_Pole: ['Pacific/Auckland', 11],\n Rothera: ['', 87],\n Palmer: ['', 77],\n McMurdo: ['Pacific/Auckland', 11],\n Mawson: ['', 52],\n Macquarie: ['', 92],\n DumontDUrville: ['Pacific/Port_Moresby', 35],\n Davis: ['', 54],\n Casey: ['', 4],\n },\n America: {\n Yellowknife: ['America/Edmonton', 10],\n Yakutat: ['', 34],\n Winnipeg: ['', 31],\n Whitehorse: ['', 13],\n Virgin: ['America/Puerto_Rico', 112],\n Vancouver: ['', 9],\n Tortola: ['America/Puerto_Rico', 112],\n Toronto: ['', 28],\n Tijuana: ['', 9],\n Thunder_Bay: ['America/Toronto', 28],\n Thule: ['', 85],\n Tegucigalpa: ['', 49],\n Swift_Current: ['', 49],\n St_Vincent: ['America/Puerto_Rico', 112],\n St_Thomas: ['America/Puerto_Rico', 112],\n St_Lucia: ['America/Puerto_Rico', 112],\n St_Kitts: ['America/Puerto_Rico', 112],\n St_Johns: ['', 84],\n St_Barthelemy: ['America/Puerto_Rico', 112],\n Sitka: ['', 34],\n Shiprock: ['America/Denver', 10],\n Scoresbysund: ['', 113],\n Sao_Paulo: ['', 87],\n Santo_Domingo: ['', 112],\n Santiago: ['', 83],\n Santarem: ['', 87],\n Santa_Isabel: ['America/Tijuana', 9],\n Rosario: ['America/Argentina/Cordoba', 87],\n Rio_Branco: ['', 89],\n Resolute: ['', 114],\n Regina: ['', 49],\n Recife: ['', 87],\n Rankin_Inlet: ['', 31],\n Rainy_River: ['America/Winnipeg', 31],\n Punta_Arenas: ['', 87],\n Puerto_Rico: ['', 112],\n Porto_Velho: ['', 86],\n Porto_Acre: ['America/Rio_Branco', 89],\n Port_of_Spain: ['America/Puerto_Rico', 112],\n 'Port-au-Prince': ['', 28],\n Phoenix: ['', 13],\n Paramaribo: ['', 77],\n Pangnirtung: ['America/Iqaluit', 28],\n Panama: ['', 18],\n Ojinaga: ['', 31],\n Nuuk: ['', 115],\n Noronha: ['', 88],\n Nome: ['', 34],\n Nipigon: ['America/Toronto', 28],\n New_York: ['', 28],\n Nassau: ['America/Toronto', 28],\n Montserrat: ['America/Puerto_Rico', 112],\n Montreal: ['America/Toronto', 28],\n Montevideo: ['', 77],\n Monterrey: ['', 49],\n Moncton: ['', 85],\n Miquelon: ['', 116],\n Mexico_City: ['', 49],\n Metlakatla: ['', 34],\n Merida: ['', 49],\n Menominee: ['', 31],\n Mendoza: ['America/Argentina/Mendoza', 87],\n Mazatlan: ['', 13],\n Matamoros: ['', 31],\n Martinique: ['', 112],\n Marigot: ['America/Puerto_Rico', 112],\n Manaus: ['', 86],\n Managua: ['', 49],\n Maceio: ['', 87],\n Lower_Princes: ['America/Puerto_Rico', 112],\n Louisville: ['America/Kentucky/Louisville', 28],\n Los_Angeles: ['', 9],\n Lima: ['', 75],\n La_Paz: ['', 86],\n Kralendijk: ['America/Puerto_Rico', 112],\n Knox_IN: ['America/Indiana/Knox', 31],\n Juneau: ['', 34],\n Jujuy: ['America/Argentina/Jujuy', 87],\n Jamaica: ['', 18],\n Iqaluit: ['', 28],\n Inuvik: ['', 10],\n Indianapolis: ['America/Indiana/Indianapolis', 28],\n Hermosillo: ['', 13],\n Havana: ['', 30],\n Halifax: ['', 85],\n Guyana: ['', 76],\n Guayaquil: ['', 75],\n Guatemala: ['', 49],\n Guadeloupe: ['America/Puerto_Rico', 112],\n Grenada: ['America/Puerto_Rico', 112],\n Grand_Turk: ['', 117],\n Goose_Bay: ['', 118],\n Godthab: ['America/Nuuk', 115],\n Glace_Bay: ['', 85],\n Fortaleza: ['', 87],\n Fort_Wayne: ['America/Indiana/Indianapolis', 28],\n Fort_Nelson: ['', 13],\n Ensenada: ['America/Tijuana', 9],\n El_Salvador: ['', 49],\n Eirunepe: ['', 89],\n Edmonton: ['', 10],\n Dominica: ['America/Puerto_Rico', 112],\n Detroit: ['', 28],\n Denver: ['', 10],\n Dawson_Creek: ['', 13],\n Dawson: ['', 13],\n Danmarkshavn: ['', 21],\n Curacao: ['America/Puerto_Rico', 112],\n Cuiaba: ['', 86],\n Creston: ['America/Phoenix', 13],\n Costa_Rica: ['', 49],\n Cordoba: ['America/Argentina/Cordoba', 87],\n Coral_Harbour: ['America/Panama', 18],\n Ciudad_Juarez: ['', 10],\n Chihuahua: ['', 49],\n Chicago: ['', 31],\n Cayman: ['America/Panama', 18],\n Cayenne: ['', 77],\n Catamarca: ['America/Argentina/Catamarca', 87],\n Caracas: ['', 76],\n Cancun: ['', 18],\n Campo_Grande: ['', 86],\n Cambridge_Bay: ['', 10],\n Buenos_Aires: ['America/Argentina/Buenos_Aires', 87],\n Boise: ['', 10],\n Bogota: ['', 75],\n Boa_Vista: ['', 86],\n 'Blanc-Sablon': ['America/Puerto_Rico', 112],\n Belize: ['', 49],\n Belem: ['', 87],\n Barbados: ['', 112],\n Bahia_Banderas: ['', 49],\n Bahia: ['', 87],\n Atka: ['America/Adak', 33],\n Atikokan: ['America/Panama', 18],\n Asuncion: ['', 119],\n Aruba: ['America/Puerto_Rico', 112],\n Araguaina: ['', 87],\n Antigua: ['America/Puerto_Rico', 112],\n Anguilla: ['America/Puerto_Rico', 112],\n Anchorage: ['', 34],\n Adak: ['', 33],\n North_Dakota: { New_Salem: ['', 31], Center: ['', 31], Beulah: ['', 31] },\n Kentucky: { Monticello: ['', 28], Louisville: ['', 28] },\n Indiana: {\n Winamac: ['', 117],\n Vincennes: ['', 28],\n Vevay: ['', 28],\n Tell_City: ['', 31],\n Petersburg: ['', 28],\n Marengo: ['', 28],\n Knox: ['', 31],\n Indianapolis: ['', 28],\n },\n Argentina: {\n Ushuaia: ['', 87],\n Tucuman: ['', 87],\n San_Luis: ['', 87],\n San_Juan: ['', 87],\n Salta: ['', 87],\n Rio_Gallegos: ['', 87],\n Mendoza: ['', 87],\n La_Rioja: ['', 87],\n Jujuy: ['', 87],\n Cordoba: ['', 87],\n ComodRivadavia: ['America/Argentina/Catamarca', 87],\n Catamarca: ['', 87],\n Buenos_Aires: ['', 87],\n },\n },\n Africa: {\n Windhoek: ['', 120],\n Tunis: ['', 121],\n Tripoli: ['', 15],\n Timbuktu: ['Africa/Abidjan', 21],\n Sao_Tome: ['', 21],\n 'Porto-Novo': ['Africa/Lagos', 122],\n Ouagadougou: ['Africa/Abidjan', 21],\n Nouakchott: ['Africa/Abidjan', 21],\n Niamey: ['Africa/Lagos', 122],\n Ndjamena: ['', 122],\n Nairobi: ['', 51],\n Monrovia: ['', 21],\n Mogadishu: ['Africa/Nairobi', 51],\n Mbabane: ['Africa/Johannesburg', 123],\n Maseru: ['Africa/Johannesburg', 123],\n Maputo: ['', 120],\n Malabo: ['Africa/Lagos', 122],\n Lusaka: ['Africa/Maputo', 120],\n Lubumbashi: ['Africa/Maputo', 120],\n Luanda: ['Africa/Lagos', 122],\n Lome: ['Africa/Abidjan', 21],\n Libreville: ['Africa/Lagos', 122],\n Lagos: ['', 122],\n Kinshasa: ['Africa/Lagos', 122],\n Kigali: ['Africa/Maputo', 120],\n Khartoum: ['', 120],\n Kampala: ['Africa/Nairobi', 51],\n Juba: ['', 120],\n Johannesburg: ['', 123],\n Harare: ['Africa/Maputo', 120],\n Gaborone: ['Africa/Maputo', 120],\n Freetown: ['Africa/Abidjan', 21],\n El_Aaiun: ['', 124],\n Douala: ['Africa/Lagos', 122],\n Djibouti: ['Africa/Nairobi', 51],\n Dar_es_Salaam: ['Africa/Nairobi', 51],\n Dakar: ['Africa/Abidjan', 21],\n Conakry: ['Africa/Abidjan', 21],\n Ceuta: ['', 8],\n Casablanca: ['', 124],\n Cairo: ['', 27],\n Bujumbura: ['Africa/Maputo', 120],\n Brazzaville: ['Africa/Lagos', 122],\n Blantyre: ['Africa/Maputo', 120],\n Bissau: ['', 21],\n Banjul: ['Africa/Abidjan', 21],\n Bangui: ['Africa/Lagos', 122],\n Bamako: ['Africa/Abidjan', 21],\n Asmera: ['Africa/Nairobi', 51],\n Asmara: ['Africa/Nairobi', 51],\n Algiers: ['', 121],\n Addis_Ababa: ['Africa/Nairobi', 51],\n Accra: ['Africa/Abidjan', 21],\n Abidjan: ['', 21],\n },\n};\nconst tzlibZonesDetailsDB = [\n '20240205T192835ZUTC+0000+000019700101T000000',\n '20240205T192834ZWEST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUWET+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20240205T192834ZMSK+0300+030019700101T000000',\n '20240205T192834Z+03+0300+030019700101T000000',\n '20240205T192834Z+08+0800+080019700101T000000',\n '20240205T192834ZKST+0900+090019700101T000000',\n '20240205T192834ZCST+0800+080019700101T000000',\n '20240205T192834ZWET+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SUWEST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU',\n '20240205T192834ZCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20240205T192834ZPDT-0800-070019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUPST-0700-080019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20240205T192834ZMDT-0700-060019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUMST-0600-070019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20240205T192834ZNZDT+1200+130019700927T020000FREQ=YEARLY;BYMONTH=9;BYDAY=-1SUNZST+1300+120019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU',\n '20240205T192834Z+1345+1245+134519700927T024500FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU+1245+1345+124519700405T034500FREQ=YEARLY;BYMONTH=4;BYDAY=1SU',\n '20240205T192834ZMST-0700-070019700101T000000',\n '20240205T192834ZMEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUMET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20240205T192834ZEET+0200+020019700101T000000',\n '20240205T192834Z+12+1200+120019700101T000000',\n '20240205T192834ZJST+0900+090019700101T000000',\n '20240205T192834ZEST-0500-050019700101T000000',\n '20240205T192834ZIDT+0200+030019700327T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1FRIST+0300+020019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20240205T192834Z+0330+0330+033019700101T000000',\n '20240205T192834ZGMT+0000+000019700101T000000',\n '20240205T192834ZHKT+0800+080019700101T000000',\n '20240205T192834ZHST-1000-100019700101T000000',\n '20240205T192835ZGMT+0000+000019700101T000000',\n '20240205T192834ZBST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUGMT+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20240205T192834ZIST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUGMT+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20240205T192834ZEEST+0200+030019700424T000000FREQ=YEARLY;BYMONTH=4;BYDAY=-1FREET+0300+020019701030T000000FREQ=YEARLY;BYMONTH=10;BYDAY=-1FR',\n '20240205T192834ZEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20240205T192834ZEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20240205T192834ZCST-0400-050019701101T010000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUCDT-0500-040019700308T000000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU',\n '20240205T192834ZCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20240205T192834ZSST-1100-110019700101T000000',\n '20240205T192834ZHDT-1000-090019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUHST-0900-100019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20240205T192834ZAKDT-0900-080019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAKST-0800-090019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20240205T192834Z+10+1000+100019700101T000000',\n '20240205T192834Z+13+1300+130019700101T000000',\n '20240205T192834Z-10-1000-100019700101T000000',\n '20240205T192834ZChST+1000+100019700101T000000',\n '20240205T192834Z+11+1100+110019700101T000000',\n '20240205T192834Z-08-0800-080019700101T000000',\n '20240205T192834Z+09+0900+090019700101T000000',\n '20240205T192834Z+12+1100+120019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU+11+1200+110019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU',\n '20240205T192834Z-11-1100-110019700101T000000',\n '20240205T192834Z-0930-0930-093019700101T000000',\n '20240205T192834Z+14+1400+140019700101T000000',\n '20240205T192834Z-09-0900-090019700101T000000',\n '20240205T192835Z-06-0600-060019700101T000000',\n '20240205T192835Z-06-0500-060019700404T220000FREQ=YEARLY;BYMONTH=4;BYDAY=1SA-05-0600-050019700905T220000FREQ=YEARLY;BYMONTH=9;BYDAY=1SA',\n '20240205T192834ZCST-0600-060019700101T000000',\n '20240205T192834Z+04+0400+040019700101T000000',\n '20240205T192834ZEAT+0300+030019700101T000000',\n '20240205T192834Z+05+0500+050019700101T000000',\n '20240205T192834Z+0630+0630+063019700101T000000',\n '20240205T192834Z+07+0700+070019700101T000000',\n '20240205T192834Z+06+0600+060019700101T000000',\n '20240205T192834ZEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SUEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU',\n '20240205T192834ZEEST+0200+030019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20240205T192835Z+09+0900+090019700101T000000',\n '20240205T192835Z+08+0800+080019700101T000000',\n '20240205T192835Z+07+0700+070019700101T000000',\n '20240205T192835Z+06+0600+060019700101T000000',\n '20240205T192835Z+05+0500+050019700101T000000',\n '20240205T192835Z+04+0400+040019700101T000000',\n '20240205T192835Z+03+0300+030019700101T000000',\n '20240205T192835Z+02+0200+020019700101T000000',\n '20240205T192835Z+14+1400+140019700101T000000',\n '20240205T192835Z+13+1300+130019700101T000000',\n '20240205T192835Z+12+1200+120019700101T000000',\n '20240205T192835Z+11+1100+110019700101T000000',\n '20240205T192835Z+10+1000+100019700101T000000',\n '20240205T192835Z+01+0100+010019700101T000000',\n '20240205T192835Z-09-0900-090019700101T000000',\n '20240205T192835Z-08-0800-080019700101T000000',\n '20240205T192835Z-07-0700-070019700101T000000',\n '20240205T192835Z-05-0500-050019700101T000000',\n '20240205T192835Z-04-0400-040019700101T000000',\n '20240205T192835Z-03-0300-030019700101T000000',\n '20240205T192835Z-02-0200-020019700101T000000',\n '20240205T192835Z-12-1200-120019700101T000000',\n '20240205T192835Z-11-1100-110019700101T000000',\n '20240205T192835Z-10-1000-100019700101T000000',\n '20240205T192835Z-01-0100-010019700101T000000',\n '20240205T192834Z-04-0300-040019700405T000000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU-03-0400-030019700906T000000FREQ=YEARLY;BYMONTH=9;BYDAY=1SU',\n '20240205T192834ZNST-0230-033019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUNDT-0330-023019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU',\n '20240205T192834ZADT-0400-030019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAST-0300-040019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20240205T192834Z-04-0400-040019700101T000000',\n '20240205T192834Z-03-0300-030019700101T000000',\n '20240205T192834Z-02-0200-020019700101T000000',\n '20240205T192834Z-05-0500-050019700101T000000',\n '20240205T192834ZACST+1030+093019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SUACDT+0930+103019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU',\n '20240205T192834ZAWST+0800+080019700101T000000',\n '20240205T192834ZAEST+1100+100019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SUAEDT+1000+110019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU',\n '20240205T192834ZAEDT+1000+110019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SUAEST+1100+100019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU',\n '20240205T192834ZAEST+1000+100019700101T000000',\n '20240205T192834ZACST+0930+093019700101T000000',\n '20240205T192834Z+1030+1100+103019700405T020000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU+11+1030+110019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU',\n '20240205T192834Z+0845+0845+084519700101T000000',\n '20240205T192834Z-01-0100-010019700101T000000',\n '20240205T192834Z+00-0100+000019700329T000000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU-01+0000-010019701025T010000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20240205T192834ZWITA+0800+080019700101T000000',\n '20240205T192834ZWIB+0700+070019700101T000000',\n '20240205T192834ZPST+0800+080019700101T000000',\n '20240205T192834ZIST+0530+053019700101T000000',\n '20240205T192834Z+0545+0545+054519700101T000000',\n '20240205T192834ZPKT+0500+050019700101T000000',\n '20240205T192834Z+0430+0430+043019700101T000000',\n '20240205T192834ZWIT+0900+090019700101T000000',\n '20240205T192834ZEEST+0200+030019700328T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SAEET+0300+020019701024T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SA',\n '20240205T192834Z+0530+0530+053019700101T000000',\n '20240205T192834ZEEST+0200+030019700329T000000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T000000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20240205T192834Z+02+0000+020019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU+00+0200+000019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20240205T192834ZAST-0400-040019700101T000000',\n '20240205T192834Z-02-0100-020019701025T000000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU-01-0200-010019700328T230000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SA',\n '20240205T192834ZCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU',\n '20240205T192834Z-01-0200-010019700328T230000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SA-02-0100-020019701025T000000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20240205T192834Z-02-0300-020019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU-03-0200-030019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20240205T192834ZEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU',\n '20240205T192834ZAST-0300-040019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUADT-0400-030019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU',\n '20240205T192835Z-03-0400-030019701004T000000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU-04-0300-040019700322T000000FREQ=YEARLY;BYMONTH=3;BYDAY=4SU',\n '20240205T192834ZCAT+0200+020019700101T000000',\n '20240205T192834ZCET+0100+010019700101T000000',\n '20240205T192834ZWAT+0100+010019700101T000000',\n '20240205T192834ZSAST+0200+020019700101T000000',\n '20240205T192834Z+01+0100+010019700101T000000',\n];\nfunction tzlib_get_content(tzName) {\n const nameParts = tzName.split('/');\n if (\n (nameParts.length === 3 &&\n (!tzlibZonesDB[`${nameParts[0]}`] ||\n !tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`] ||\n !tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][`${nameParts[2]}`])) ||\n (nameParts.length === 2 &&\n (!tzlibZonesDB[`${nameParts[0]}`] || !tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`])) ||\n (nameParts.length === 1 && !tzlibZonesDB[`${nameParts[0]}`])\n ) {\n console.error('Given timezone not valid.');\n return '';\n }\n if (nameParts.length === 3) {\n return [\n tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][`${nameParts[2]}`][0],\n tzlib_enrich_data(\n tzlibZonesDetailsDB[tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][`${nameParts[2]}`][1]],\n ),\n ];\n }\n if (nameParts.length === 2) {\n return [\n tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][0],\n tzlib_enrich_data(tzlibZonesDetailsDB[tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][1]]),\n ];\n }\n return [\n tzlibZonesDB[`${nameParts[0]}`][0],\n tzlib_enrich_data(tzlibZonesDetailsDB[tzlibZonesDB[`${nameParts[0]}`][1]]),\n ];\n}\nfunction tzlib_enrich_data(string) {\n const shortenerMap = {\n '
': '',\n 'TZNAME:': '',\n 'TZOFFSETFROM:': '',\n 'TZOFFSETTO:': '',\n 'DTSTART:': '',\n 'RRULE:': '',\n 'BEGIN:DAYLIGHT': '',\n 'END:DAYLIGHT': '',\n 'BEGIN:STANDARD': '',\n 'END:STANDARD': '',\n };\n for (const [key, value] of Object.entries(shortenerMap)) {\n string = string.replaceAll(value, key);\n }\n return string;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction tzlib_get_ical_block(tzName, jsonType = false) {\n const tzBlock = tzlib_get_content(tzName);\n if (tzBlock[1] == null || tzBlock[1] == '') {\n return '';\n }\n const location = (function () {\n if (tzBlock[0] == '') {\n return tzName;\n } else {\n return tzBlock[0];\n }\n })();\n const tzidLine = 'TZID=' + location;\n const output = [\n 'BEGIN:VTIMEZONE\\r\\nTZID:' +\n location +\n '\\r\\nX-LIC-LOCATION:' +\n location +\n '\\r\\nLAST-MODIFIED:' +\n tzBlock[1].replace(/[^\\w_\\-:,;=+/
]/g, '').replace(/
/g, '\\r\\n') +\n 'END:VTIMEZONE',\n tzidLine,\n ];\n if (jsonType) {\n return JSON.stringify(output);\n }\n return output;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction tzlib_get_offset(tzName, isoDate, isoTime) {\n const tzBlock = tzlib_get_content(tzName);\n if (tzBlock[1] == null || tzBlock[1] == '') {\n return '';\n }\n if (!isoDate.match(/^\\d{4}-\\d{2}-\\d{2}$/)) {\n console.error('offset calculation failed: date misspelled [-> YYYY-MM-DD]');\n return '';\n }\n if (!isoTime.match(/^\\d{2}:\\d{2}$/)) {\n console.error('offset calculation failed: time misspelled [-> hh:mm]');\n return '';\n }\n if (!tzBlock[1].match(/BEGIN:DAYLIGHT/i)) {\n return tzBlock[1].match(/TZOFFSETTO:([+|-]\\d{4})/i)[1];\n }\n const dateString = isoDate + 'T' + isoTime + ':00';\n const date = new Date(dateString);\n const dateYear = date.getFullYear();\n const dateMonth = date.getMonth() + 1;\n const dateDay = date.getDate();\n const dateHour = date.getHours();\n const timezoneData = tzBlock[1].replace(/[^\\w_\\-:,;=+/
]/g, '').split('
');\n const tzBreakpoints = { 1: {}, 2: {} };\n let breakpointCount = 0;\n for (let i = 0; i < timezoneData.length; i++) {\n if (timezoneData[`${i}`].startsWith('TZOFFSETTO')) {\n breakpointCount++;\n tzBreakpoints[`${breakpointCount}`].offset = timezoneData[`${i}`].split(':')[1];\n }\n if (timezoneData[`${i}`].startsWith('DTSTART')) {\n tzBreakpoints[`${breakpointCount}`].hour = parseInt(timezoneData[`${i}`].substr(17, 2));\n }\n if (timezoneData[`${i}`].startsWith('RRULE')) {\n let rruleParts = timezoneData[`${i}`].split(';');\n let rruleMonth = parseInt(rruleParts[1].split('=')[1]);\n tzBreakpoints[`${breakpointCount}`].month = parseInt(rruleMonth);\n tzBreakpoints[`${breakpointCount}`].day = rruleParts[2].split('=')[1];\n }\n }\n if (tzBreakpoints[1].month > tzBreakpoints[2].month) {\n [tzBreakpoints[1], tzBreakpoints[2]] = [tzBreakpoints[2], tzBreakpoints[1]];\n }\n if (dateMonth != tzBreakpoints[1].month && dateMonth != tzBreakpoints[2].month) {\n if (dateMonth < tzBreakpoints[1].month || dateMonth > tzBreakpoints[2].month) {\n return tzBreakpoints[2].offset;\n } else {\n return tzBreakpoints[1].offset;\n }\n }\n const theCase = (function () {\n return Object.keys(tzBreakpoints).find((key) => tzBreakpoints[`${key}`].month == dateMonth);\n })();\n const helperArrayWeekdays = ['SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'];\n const numberDays = new Date(dateYear, dateMonth, 0).getDate();\n let weekdayCount = new Date(dateYear, dateMonth - 1, 1).getDay();\n const weekdays = { SU: {}, MO: {}, TU: {}, WE: {}, TH: {}, FR: {}, SA: {} };\n for (let d = 1; d <= numberDays; d++) {\n const occurence = Object.keys(weekdays[helperArrayWeekdays[`${weekdayCount}`]]).length + 1;\n weekdays[helperArrayWeekdays[`${weekdayCount}`]][`${occurence}`] = d;\n weekdayCount++;\n if (weekdayCount == 7) {\n weekdayCount = 0;\n }\n }\n const actualDay = (function () {\n if (tzBreakpoints[`${theCase}`].day[0] == '-') {\n const breakpointWeekday = tzBreakpoints[`${theCase}`].day.substr(2, 2);\n const dayIndex =\n Object.keys(weekdays[`${breakpointWeekday}`]).length +\n 1 -\n parseInt(tzBreakpoints[`${theCase}`].day[1]);\n return weekdays[`${breakpointWeekday}`][`${dayIndex}`];\n } else {\n const breakpointWeekday = tzBreakpoints[`${theCase}`].day.substr(1, 2);\n return weekdays[`${breakpointWeekday}`][tzBreakpoints[`${theCase}`].day[0]];\n }\n })();\n if (dateDay > actualDay || (dateDay == actualDay && dateHour >= tzBreakpoints[`${theCase}`].hour)) {\n return tzBreakpoints[`${theCase}`].offset;\n }\n const fallbackCase = (function () {\n if (theCase == 1) {\n return 2;\n } else {\n return 1;\n }\n })();\n return tzBreakpoints[`${fallbackCase}`].offset;\n}\nlet tzlibZoneNames = [];\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction tzlib_get_timezones(jsonType = false) {\n if (tzlibZoneNames.length == 0) {\n tzlibZoneNames = (function () {\n let namesArr = [];\n for (const [key, value] of Object.entries(tzlibZonesDB)) {\n if (typeof value === 'object' && !Array.isArray(value)) {\n for (const [key2, value2] of Object.entries(value)) {\n if (typeof value2 === 'object' && !Array.isArray(value2)) {\n for (const [key3] of Object.entries(value2)) {\n namesArr.push(key + '/' + key2 + '/' + key3);\n }\n } else {\n namesArr.push(key + '/' + key2);\n }\n }\n } else {\n namesArr.push(key);\n }\n }\n return namesArr;\n })();\n }\n if (jsonType) {\n return JSON.stringify(tzlibZoneNames);\n }\n return tzlibZoneNames;\n}\nexport { tzlib_get_ical_block, tzlib_get_offset, tzlib_get_timezones };\n","import { tzlib_get_ical_block, tzlib_get_offset, tzlib_get_timezones } from 'timezones-ical-library';\n/*!\n * @preserve\n *\n * ++++++++++++++++++++++\n * Add to Calendar Button\n * ++++++++++++++++++++++\n *\n * Version: 2.6.5\n * Creator: Jens Kuerschner (https://jekuer.com)\n * Project: https://github.com/add2cal/add-to-calendar-button\n * License: Elastic License 2.0 (ELv2) (https://github.com/add2cal/add-to-calendar-button/blob/main/LICENSE.txt)\n * Note: DO NOT REMOVE THE COPYRIGHT NOTICE ABOVE!\n *\n */\nconst atcbVersion = '2.6.5';\nconst atcbCssTemplate = {\r\"default\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,sans-serif;--accent-color:#1e90ff;--wrapper-padding:1px;--buttonslist-gap:5px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-border:#d2d2d2;--btn-border-radius:6px;--btn-padding-x:1em;--btn-padding-y:.65em;--btn-font-weight:600;--btn-text:#333;--btn-hover-text:#000;--btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 2px -1px;--btn-hover-shadow:rgba(0 0 0 / 25%) 0 5px 12px -2px,rgba(0 0 0 / 25%) 0 3px 5px -2px;--btn-active-shadow:rgba(0 0 0 / 30%) 0 6px 13px -2px,rgba(0 0 0 / 25%) 0 4px 5px -2px;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#333;--list-hover-text:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-border-radius:6px;--list-padding:.8em;--list-shadow:rgba(0 0 0 / 20%) 0 4px 13px -2px,rgba(0 0 0 / 23%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 50%) 0 4px 30px -3px,rgba(0 0 0 / 30%) 0 2px 8px -2px;--input-border-radius:6px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--modal-text:#000;--modal-text-align:left;--modal-text-align-rtl:right;--modal-background:#f5f5f5;--modal-border-radius:6px;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 65%));--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#d2d2d2;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 10%) 0 2px 3px -1px;--modal-btn-hover-shadow:rgba(0 0 0 / 25%) 0 5px 13px -2px,rgba(0 0 0 / 20%) 0 3px 5px -2px;--modal-headline-text-align:center;--modal-headline-text-transform:none;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgba(0 0 0 / 20%) 0 5px 12px -2px,rgba(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:rgba(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-hover-background:#373737;--btn-border:#3d3d3d;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--btn-shadow:rgba(255 255 255 / 5%) -3px -3px 30px -1px,rgba(0 0 0 / 40%) 2px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 3px -1px;--btn-hover-shadow:rgba(0 0 0 / 90%) 2px 5px 20px -4px,rgba(0 0 0 / 50%) 1px 2px 6px -2px;--btn-active-shadow:rgba(0 0 0 / 90%) 2px 5px 20px -4px,rgba(0 0 0 / 50%) 1px 2px 6px -2px;--list-background:#2e2e2e;--list-hover-background:#373737;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#282828;--list-shadow:rgba(0 0 0 / 60%) 0 4px 20px -2px,rgba(0 0 0 / 40%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 40%) -1px 3px 30px 2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgba(255 255 255 / 5%) -2px -2px 10px,rgba(0 0 0 / 40%) 3px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 5px -1px;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgba(0 0 0 / 60%) 0 0 20px -2px,rgba(0 0 0 / 30%) 1px 2px 3px -1px;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:rgba(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:1px solid var(--btn-border);border-radius:var(--btn-border-radius);box-shadow:var(--btn-shadow);box-sizing:content-box;color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.5em;margin:.13em;max-width:300px;padding:var(--btn-padding-y) var(--btn-padding-x);position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button:not(.atcb-no-text,.atcb-modal-style,.atcb-dropoverlay,.atcb-single){min-width:calc(11.6em - 2 * var(--btn-padding-x))}.atcb-button.atcb-no-text{display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-hover-shadow);color:var(--btn-hover-text);margin:0;padding:calc(var(--btn-padding-y) + .13em) calc(var(--btn-padding-x) + .13em)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-active-shadow);color:var(--btn-hover-text);margin:0;padding:calc(var(--btn-padding-y) + .13em) calc(var(--btn-padding-x) + .13em)}.atcb-button.atcb-no-text.atcb-active,.atcb-button.atcb-no-text:focus,.atcb-button.atcb-no-text:hover{height:3.26em;width:3.26em;padding:0!important}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:1em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:4px;height:1px;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;padding:0 4px;position:absolute;z-index:14000090}.atcb-list-wrapper.atcb-dropoverlay{z-index:15000000;max-width:max-content}.atcb-list{background-color:var(--list-background);border-radius:0 0 var(--list-border-radius) var(--list-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);font-weight:600;outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--list-border-radius) var(--list-border-radius)}.atcb-dropup .atcb-list-item:last-child{border-radius:0;padding-bottom:calc(var(--list-padding) + .45em)}.atcb-dropoverlay .atcb-list .atcb-list-item:first-child,.atcb-dropup .atcb-list,.atcb-dropup .atcb-list-item:first-child,.atcb-list.atcb-modal .atcb-list-item:first-child{border-radius:var(--list-border-radius) var(--list-border-radius) 0 0}.atcb-dropoverlay .atcb-list .atcb-list-item:only-child,.atcb-list.atcb-modal .atcb-list-item:only-child{border-radius:var(--list-border-radius)}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:calc(var(--list-padding) + .45em)}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:var(--list-padding)}.atcb-dropoverlay .atcb-list,.atcb-list.atcb-modal{border-radius:var(--list-border-radius)}.atcb-list.atcb-modal{box-shadow:var(--list-modal-shadow)}.atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--modal-border-radius) var(--modal-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn.atcb-modal-btn-border,button.atcb-modal-btn.atcb-modal-btn-border{border:1px solid var(--modal-btn-border)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:7px 4px 4px 7px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay) .atcb-checkmark,.atcb-button.atcb-single:focus .atcb-checkmark,.atcb-button.atcb-single:hover .atcb-checkmark{top:-.77em;right:-.37em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-trigger{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{filter:none;min-width:100%;margin-bottom:0}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro ol,.pro ul{margin:auto;text-align:left;width:fit-content}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em}.pro-form{border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em;text-align:left}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:1px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:1.2em;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;border:1px solid var(--modal-btn-text);border-radius:var(--input-border-radius);box-shadow:var(--btn-shadow);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{border-color:var(--form-success);color:var(--form-success)}#rsvp-status-group label.status-declined{border-color:var(--form-error);color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);box-shadow:var(--btn-hover-shadow);color:var(--status-active-text);opacity:1;transform:scale(1.08)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{box-shadow:var(--btn-hover-shadow);opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p{margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgba(255 255 255 / 80%));height:auto;padding:8px 0;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\r\"3d\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,sans-serif;--accent-color:#1e90ff;--wrapper-padding:0px;--buttonslist-gap:5px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-border:#d2d2d2;--btn-border-radius:6px;--btn-padding-x:1em;--btn-padding-y:.65em;--btn-font-weight:600;--btn-text:#333;--btn-hover-text:#000;--btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 2px -1px;--btn-hover-shadow:rgba(0 0 0 / 25%) 0 5px 12px -2px,rgba(0 0 0 / 25%) 0 3px 5px -2px;--btn-active-shadow:rgba(0 0 0 / 40%) 0 8px 13px -2px,rgba(0 0 0 / 30%) 0 5px 5px -3px;--btn-active-shadow-up:rgba(0 0 0 / 30%) 0 6px 13px -2px,rgba(0 0 0 / 15%) 0 2px 2px -1px,rgba(0 0 0 / 25%) 0 -3px 10px -1px;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#333;--list-hover-text:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-border-radius:6px;--list-padding:.8em;--list-shadow:rgba(0 0 0 / 20%) 0 4px 13px -2px,rgba(0 0 0 / 23%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 50%) 0 4px 30px -3px,rgba(0 0 0 / 30%) 0 2px 8px -2px;--modal-text:#000;--modal-text-align:left;--modal-text-align-rtl:right;--modal-background:#f5f5f5;--modal-border-radius:6px;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 65%));--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#d2d2d2;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 10%) 0 2px 3px -1px;--modal-btn-hover-shadow:rgba(0 0 0 / 25%) 0 5px 13px -2px,rgba(0 0 0 / 20%) 0 3px 5px -2px;--modal-headline-text-align:center;--modal-headline-text-transform:none;--input-border-radius:6px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgba(0 0 0 / 20%) 0 5px 12px -2px,rgba(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:rgba(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-hover-background:#373737;--btn-border:#4d4d4d;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--btn-shadow:rgba(255 255 255 / 5%) -3px -3px 30px -1px,rgba(0 0 0 / 40%) 2px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 3px -1px;--btn-hover-shadow:rgba(0 0 0 / 90%) 2px 5px 20px -4px,rgba(0 0 0 / 50%) 1px 2px 6px -2px;--btn-active-shadow:rgba(0 0 0 / 90%) 2px 5px 20px -4px,rgba(0 0 0 / 50%) 1px 2px 6px -2px;--btn-active-shadow-up:rgba(0 0 0 / 80%) 2px 4px 20px -4px,rgba(0 0 0 / 30%) 1px 1px 3px -1px,rgba(0 0 0 / 45%) 0 -3px 10px -1px;--list-background:#2e2e2e;--list-hover-background:#373737;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#282828;--list-shadow:rgba(0 0 0 / 60%) 0 4px 20px -2px,rgba(0 0 0 / 40%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 40%) -1px 3px 30px 2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgba(255 255 255 / 5%) -2px -2px 10px,rgba(0 0 0 / 40%) 3px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 5px -1px;--modal-btn-hover-shadow:none;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgba(0 0 0 / 60%) 0 0 20px -2px,rgba(0 0 0 / 30%) 1px 2px 3px -1px;--date-btn-hover-shadow:none;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:rgba(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:1px solid var(--btn-border);border-radius:var(--btn-border-radius);box-shadow:var(--btn-shadow);box-sizing:content-box;color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.5em;margin:0;max-width:300px;padding:var(--btn-padding-y) var(--btn-padding-x);position:relative;text-align:center;touch-action:manipulation;transform:translate3d(0,0,-12px);user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button:not(.atcb-no-text,.atcb-modal-style,.atcb-dropoverlay,.atcb-single){min-width:calc(11.6em - 2 * var(--btn-padding-x))}.atcb-button.atcb-no-text{display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-hover-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){background-color:var(--btn-hover-background);z-index:15000000}.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-active-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropup,.atcb-dropoverlay){box-shadow:var(--btn-active-shadow);transform:perspective(100px) rotateX(12deg) translate3d(0,0,2px);transition:transform .1s linear}.atcb-button.atcb-active.atcb-dropup:not(.atcb-modal-style,.atcb-dropoverlay){box-shadow:var(--btn-active-shadow-up);transform:perspective(100px) rotateX(348deg) translate3d(0,0,2px);transition:transform .1s linear}.atcb-button.atcb-active.atcb-dropoverlay{transform:translate3d(0,0,0);z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:1em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:6px;height:1px;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;padding:0 4px;position:absolute;transform:translate3d(0,0,0);z-index:14000090}.atcb-list{background-color:var(--list-background);border-radius:0 0 var(--list-border-radius) var(--list-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-wrapper.atcb-dropdown:not(.atcb-dropup,.atcb-dropoverlay){animation:atcb-list-slide-down .4s ease 50ms 1 normal both;opacity:0}.atcb-list-wrapper.atcb-dropup:not(.atcb-dropoverlay){animation:atcb-list-slide-up .4s ease 50ms 1 normal both;opacity:0}.atcb-list-wrapper.atcb-dropoverlay{transform:translate3d(0,0,2px);z-index:15000000;animation:atcb-list-slide-center .3s ease 0s 1 normal both;opacity:0}@keyframes atcb-list-slide-down{0%{opacity:0;transform:rotateX(70deg);transform-origin:top}100%{opacity:1;transform:rotateX(0);transform-origin:top}}@keyframes atcb-list-slide-up{0%{opacity:0;transform:rotateX(70deg);transform-origin:bottom}100%{opacity:1;transform:rotateX(0);transform-origin:bottom}}@keyframes atcb-list-slide-center{0%{opacity:0;transform:scaleY(1)}1%{opacity:1;transform:scaleY(0)}100%{opacity:1;transform:scaleY(1)}}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);font-weight:600;outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--list-border-radius) var(--list-border-radius)}.atcb-dropup .atcb-list-item:last-child{border-radius:0;padding-bottom:calc(var(--list-padding) + .7em)}.atcb-dropoverlay .atcb-list .atcb-list-item:first-child,.atcb-dropup .atcb-list,.atcb-dropup .atcb-list-item:first-child,.atcb-list.atcb-modal .atcb-list-item:first-child{border-radius:var(--list-border-radius) var(--list-border-radius) 0 0}.atcb-dropoverlay .atcb-list .atcb-list-item:only-child,.atcb-list.atcb-modal .atcb-list-item:only-child{border-radius:var(--list-border-radius)}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:calc(var(--list-padding) + .7em)}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:var(--list-padding)}.atcb-dropoverlay .atcb-list,.atcb-list.atcb-modal{border-radius:var(--list-border-radius)}.atcb-list.atcb-modal{box-shadow:var(--list-modal-shadow)}.atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--modal-border-radius) var(--modal-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn.atcb-modal-btn-border,button.atcb-modal-btn.atcb-modal-btn-border{border:1px solid var(--modal-btn-border)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:7px 4px 4px 7px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-trigger{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{filter:none;min-width:100%;margin-bottom:0}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro ol,.pro ul{margin:auto;text-align:left;width:fit-content}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em}.pro-form{border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em;text-align:left}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:1px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:1.2em;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;border:1px solid var(--modal-btn-text);border-radius:var(--input-border-radius);box-shadow:var(--btn-shadow);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{border-color:var(--form-success);color:var(--form-success)}#rsvp-status-group label.status-declined{border-color:var(--form-error);color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);box-shadow:var(--btn-hover-shadow);color:var(--status-active-text);opacity:1;transform:scale(1.08)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{box-shadow:var(--btn-hover-shadow);opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p{margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgba(255 255 255 / 80%));height:auto;padding:8px 0;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\r\"flat\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,sans-serif;--accent-color:#1e90ff;--wrapper-padding:0px;--buttonslist-gap:8px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-border:#545454;--btn-padding-x:1.2em;--btn-padding-y:.8em;--btn-shadow:#333;--btn-font-weight:600;--btn-text:#333;--btn-hover-text:#000;--list-background:#f5f5f5;--list-hover-background:#fff;--list-border:#545454;--list-text:#333;--list-hover-text:#000;--list-close-background:#545454;--list-close-text:#b0b0b0;--list-close-text-hover:#777;--list-padding:.8em;--modal-text:#000;--modal-text-align:left;--modal-text-align-rtl:right;--modal-background:#f5f5f5;--modal-btn-bar:#bababa;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#545454;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#676767;--modal-headline-text-align:center;--modal-headline-text-transform:uppercase;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#414141;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--overlay-background:rgba(20 20 20 / 40%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#222;--btn-hover-background:#373737;--btn-border:#515151;--btn-shadow:#000;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--list-background:#222;--list-hover-background:#373737;--list-border:#515151;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#111;--list-close-text:#777;--list-close-text-hover:#f1f1f1;--modal-text:#f1f1f1;--modal-background:#242424;--modal-btn-bar:#313131;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#414141;--date-btn-cal-background:#c7c7cd;--date-btn-background:#2d2d2d;--date-btn-hover-background:#474747;--overlay-background:rgba(20 20 20 / 75%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(0.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:.2em solid var(--btn-border);box-sizing:content-box;color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.5em;margin:0;max-width:300px;padding:var(--btn-padding-y) var(--btn-padding-x);top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow);position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button:not(.atcb-no-text,.atcb-modal-style,.atcb-dropoverlay,.atcb-single){min-width:calc(11.6em - 2 * var(--btn-padding-x))}.atcb-button.atcb-no-text{display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-button.atcb-click:not([disabled]){top:-3px;left:-3px;box-shadow:3px 3px 0 0 var(--btn-shadow)}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-hover-background);top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-hover-background);top:-5px;left:-5px;box-shadow:5px 5px 0 0 var(--btn-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:.9em;line-height:1em;margin-right:.8em;width:.9em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:1em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-icon-trigger svg{display:none}.atcb-button .atcb-icon-trigger::after{content:\\\"+\\\";font-size:1.5em}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:0;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;padding:0 2px 0 6px;position:absolute;z-index:16000090}.atcb-list-wrapper.atcb-no-text.atcb-dropdown{padding:0}.atcb-list-wrapper:not(.atcb-dropup,.atcb-dropoverlay){animation:list-entrance-bottom .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropup{animation:list-entrance-top .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropoverlay{z-index:15000000}@keyframes list-entrance-bottom{0%{opacity:0;transform:translateY(150px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-top{0%{opacity:0;transform:translateY(-150px)}100%{opacity:1;transform:translateY(0)}}.atcb-list{background:var(--list-background);box-sizing:border-box;border:.15em solid var(--list-border);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);font-weight:600;outline:0}.atcb-dropup .atcb-list-item:last-child{border-bottom-width:0}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{border-top-width:0}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{border-top-width:.15em}.atcb-list-item .atcb-icon{margin:0 auto;height:1em;width:1em}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item.atcb-list-item-close:hover{color:var(--list-close-text-hover)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{border:.15em solid var(--btn-border);background-color:var(--modal-background);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{padding-top:0}.atcb-modal-content{font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{padding-top:0}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{border:.2em solid var(--btn-border);background-color:var(--modal-btn-secondary-background);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow)}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);color:var(--modal-btn-hover-text);text-decoration:none;top:-3px;left:-3px;box-shadow:3px 3px 0 0 var(--btn-shadow)}.atcb-subevent-btn{border:.15em solid var(--btn-border);display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;background-color:var(--date-btn-background);padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow);width:100%}.atcb-subevent-btn:hover{align-items:center;top:-3px;left:-3px;box-shadow:3px 3px 0 0 var(--btn-shadow)}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-2.1em;right:-2em;padding:.5em;border-radius:100%;height:1.5em}.atcb-checkmark svg{height:100%;width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{background-color:transparent;border:0;filter:none;min-width:100%;margin-bottom:0}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro ol,.pro ul{margin:auto;text-align:left;width:fit-content}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em}.pro-form{border-top:2px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em;text-align:left}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:2px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:2px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:1.2em;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;border:2px solid var(--modal-btn-text);border-radius:var(--input-border-radius);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{border-color:var(--form-success);color:var(--form-success)}#rsvp-status-group label.status-declined{border-color:var(--form-error);color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);color:var(--status-active-text);opacity:1;transform:scale(1.1)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-waiting{background-color:var(--modal-btn-background);border:.2em solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p{margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgba(255 255 255 / 80%));height:auto;padding:8px 0;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\r\"round\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,sans-serif;--accent-color:#1e90ff;--wrapper-padding:1px;--buttonslist-gap:5px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-border:#d2d2d2;--btn-border-radius:500px;--btn-padding-x:1.3em;--btn-padding-y:.65em;--btn-font-weight:600;--btn-text:#333;--btn-hover-text:#000;--btn-shadow:rgba(0 0 0 / 15%) 0 4px 10px -2px,rgba(0 0 0 / 20%) 0 2px 3px -1px;--btn-hover-shadow:rgba(0 0 0 / 30%) 0 5px 15px -3px,rgba(0 0 0 / 25%) 0 3px 5px -2px;--btn-active-shadow:rgba(0 0 0 / 35%) 0 6px 15px -3px,rgba(0 0 0 / 25%) 0 4px 6px -2px;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#333;--list-hover-text:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-border-radius:11px;--list-padding:.8em 1.2em;--list-min-width:100%;--list-shadow:rgba(0 0 0 / 20%) 0 4px 13px -2px,rgba(0 0 0 / 23%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 50%) 0 4px 30px -3px,rgba(0 0 0 / 30%) 0 2px 8px -2px;--modal-text:#000;--modal-text-align:left;--modal-text-align-rtl:right;--modal-background:#f5f5f5;--modal-border-radius:9px;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 65%));--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#d2d2d2;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgba(0 0 0 / 10%) 2px 3px 10px -3px,rgba(0 0 0 / 25%) 1px 1px 8px -4px;--modal-btn-hover-shadow:rgba(0 0 0 / 35%) 3px 5px 15px -2px,rgba(0 0 0 / 20%) 2px 4px 25px -6px;--modal-headline-text-align:center;--modal-headline-text-transform:none;--input-border-radius:6px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgba(0 0 0 / 20%) 0 5px 12px -2px,rgba(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:rgba(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-hover-background:#373737;--btn-border:#4d4d4d;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--btn-shadow:rgba(255 255 255 / 5%) -3px -3px 30px -1px,rgba(0 0 0 / 40%) 2px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 3px -1px;--btn-hover-shadow:rgba(0 0 0 / 90%) 2px 5px 20px -4px,rgba(0 0 0 / 50%) 1px 2px 6px -2px;--btn-active-shadow:rgba(0 0 0 / 90%) 2px 5px 20px -4px,rgba(0 0 0 / 50%) 1px 2px 6px -2px;--list-background:#2e2e2e;--list-hover-background:#373737;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#282828;--list-shadow:rgba(0 0 0 / 60%) 0 4px 20px -2px,rgba(0 0 0 / 40%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 40%) -1px 3px 30px 2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgba(255 255 255 / 5%) -2px -2px 10px,rgba(0 0 0 / 40%) 3px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 5px -1px;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgba(0 0 0 / 60%) 0 0 20px -2px,rgba(0 0 0 / 30%) 1px 2px 3px -1px;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:rgba(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:1px solid var(--btn-border);border-radius:var(--btn-border-radius);box-shadow:var(--btn-shadow);color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.5em;margin:.13em;max-width:350px;padding:var(--btn-padding-y) var(--btn-padding-x);position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button.atcb-no-text{min-width:0;border-radius:100%;display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-hover-shadow);color:var(--btn-hover-text);margin:0;padding:calc(var(--btn-padding-y) + .13em) calc(var(--btn-padding-x) + .13em)}.atcb-button.atcb-no-text.atcb-active,.atcb-button.atcb-no-text:focus,.atcb-button.atcb-no-text:hover{height:3.26em;width:3.26em;padding:0}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-no-text),.atcb-button.atcb-single:not(.atcb-no-text,[disabled]):focus,.atcb-button.atcb-single:not(.atcb-no-text,[disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-active-shadow);color:var(--btn-hover-text);margin:0;padding:calc(var(--btn-padding-y) + .13em) calc(var(--btn-padding-x) + .13em)}.atcb-button.atcb-active.atcb-no-text:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single.atcb-no-text:not([disabled]):focus,.atcb-button.atcb-single.atcb-no-text:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-active-shadow);color:var(--btn-hover-text);margin:0;padding:calc(var(--btn-padding-y) + .28em) calc(var(--btn-padding-x) + .13em)}.atcb-button.atcb-dropup::after,.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{content:\\\"\\\";width:0;height:0;position:absolute;left:0;right:0;margin:0 auto}.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{top:100%;border:0 solid transparent;border-bottom:none;border-top-color:var(--btn-border)}.atcb-button.atcb-dropup::after{bottom:100%;border:0 solid transparent;border-top:none;border-bottom-color:var(--btn-border)}.atcb-button.atcb-active.atcb-dropup::after,.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{border-width:.35em;transition:border-width .1s linear .1s}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:1em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:-15px;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;position:absolute;z-index:14000090;width:auto}.atcb-list-wrapper:not(.atcb-dropup,.atcb-dropoverlay){animation:list-entrance-bottom .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropup{animation:list-entrance-top .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropoverlay{animation:list-entrance-center .2s ease 0s 1 normal forwards;z-index:15000000}@keyframes list-entrance-bottom{0%{opacity:0;transform:translateY(250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-top{0%{opacity:0;transform:translateY(-250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-center{0%{opacity:0;transform:scaleY(1)}1%{opacity:1;transform:scaleY(0)}100%{opacity:1;transform:scaleY(1)}}.atcb-list{background-color:var(--list-background);border-radius:var(--list-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:var(--list-min-width);position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);font-weight:600;outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--list-border-radius) var(--list-border-radius)}.atcb-list-item:first-child{border-radius:var(--list-border-radius) var(--list-border-radius) 0 0}.atcb-list-item:only-child{border-radius:var(--list-border-radius)}.atcb-list.atcb-modal{box-shadow:var(--list-modal-shadow)}.atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content-subevents{margin:auto;width:fit-content}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--modal-border-radius) var(--modal-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn.atcb-modal-btn-border,button.atcb-modal-btn.atcb-modal-btn-border{border:1px solid var(--modal-btn-border)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:7px 4px 4px 7px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay) .atcb-checkmark,.atcb-button:focus .atcb-checkmark,.atcb-button:hover .atcb-checkmark{top:-.77em;right:-.37em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-trigger{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{filter:none;min-width:100%;margin-bottom:0}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro ol,.pro ul{margin:auto;text-align:left;width:fit-content}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em}.pro-form{border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em;text-align:left}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:1px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:1.2em;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;border:1px solid var(--modal-btn-text);border-radius:var(--input-border-radius);box-shadow:var(--btn-shadow);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{border-color:var(--form-success);color:var(--form-success)}#rsvp-status-group label.status-declined{border-color:var(--form-error);color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);box-shadow:var(--btn-hover-shadow);color:var(--status-active-text);opacity:1;transform:scale(1.08)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{box-shadow:var(--btn-hover-shadow);opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p{margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgba(255 255 255 / 80%));height:auto;padding:8px 0;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\r\"neumorphism\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,sans-serif;--accent-color:#1e90ff;--wrapper-padding:0px;--buttonslist-gap:5px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-font-weight:600;--btn-text:#444;--btn-hover-text:#111;--btn-border-radius:15px;--btn-padding-x:1.2em;--btn-padding-y:1em;--btn-shadow:rgba(40 40 40 / 30%) 0.3em 0.3em 0.6em,rgba(255 255 255 / 70%) -0.1em -0.1em 0.3em;--btn-hover-shadow:rgba(40 40 40 / 50%) 0.4em 0.4em 0.8em,rgba(255 255 255 / 90%) -0.2em -0.2em 0.5em;--btn-active-shadow:inset rgba(40 40 40 / 40%) 0.15em 0.15em 0.3em,inset rgba(255 255 255 / 90%) -0.2em -0.2em 0.5em;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#444;--list-hover-text:#111;--list-close-background:#e5e5e5;--list-close-text:#777;--list-border-radius:11px;--list-padding:1em;--list-min-width:100%;--list-shadow:rgba(40 40 40 / 30%) 0.4em 0.4em 0.8em,rgba(255 255 255 / 80%) -0.2em -0.2em 0.5em;--modal-text:#111;--modal-text-align:left;--modal-text-align-rtl:right;--modal-background:#f5f5f5;--modal-border-radius:9px;--modal-shadow:drop-shadow(5px 8px 30px rgba(0 0 0 / 70%));--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#222;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgba(40 40 40 / 15%) 0.2em 0.2em 0.4em,rgba(255 255 255 / 30%) -0.1em -0.1em 0.3em;--modal-btn-hover-shadow:rgba(40 40 40 / 40%) 0.4em 0.4em 0.7em,rgba(255 255 255 / 70%) -0.2em -0.2em 0.5em;--modal-headline-text-align:center;--modal-headline-text-transform:none;--input-border-radius:6px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#e3e5ea;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgba(0 0 0 / 20%) 0 5px 12px -2px,rgba(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:#dcdcdc;--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-hover-background:#373737;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--btn-shadow:rgba(0 0 0 / 70%) 0.3em 0.3em 0.6em,rgba(230 230 230 / 20%) -0.05em -0.05em 0.4em;--btn-hover-shadow:rgba(0 0 0 / 90%) 0.4em 0.4em 0.9em,rgba(230 230 230 / 25%) -0.08em -0.08em 0.6em -0.1em;--btn-active-shadow:inset rgba(0 0 0 / 80%) 0.15em 0.15em 0.25em,inset rgba(230 230 230 / 10%) -0.2em -0.2em 0.7em -0.1em;--list-background:#2e2e2e;--list-hover-background:#373737;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#282828;--list-shadow:rgba(0 0 0) 0.3em 0.3em 1em,rgba(230 230 230 / 40%) -0.08em -0.08em 0.6em;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(5px 8px 35px rgba(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgba(0 0 0 / 60%) 0.2em 0.2em 0.6em,rgba(230 230 230 / 15%) -0.1em -0.1em 0.4em;--modal-btn-hover-shadow:rgba(0 0 0 / 80%) 0.3em 0.3em 0.8em,rgba(230 230 230 / 15%) -0.1em -0.1em 0.6em;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgba(0 0 0 / 70%) 0.2em 0.2em 0.8em,rgba(230 230 230 / 15%) -0.1em -0.1em 0.5em;--date-btn-hover-shadow:rgba(0 0 0) 0.3em 0.4em 1em,rgba(230 230 230 / 15%) -0.2em -0.2em 0.8em;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:#141414;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(0.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--btn-shadow);color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.5em;margin:0;max-width:350px;padding:var(--btn-padding-y) var(--btn-padding-x);position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;transition:box-shadow .1s ease-in-out,background-color .1s ease-in-out;z-index:1}.atcb-button.atcb-no-text{min-width:0;border-radius:100%;display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-hover-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-active-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:1em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:-15px;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;position:absolute;width:auto;animation:list-entrance .6s ease 0s 1 normal forwards;z-index:15000000}@keyframes list-entrance{0%{opacity:0}100%{opacity:1}}.atcb-list{background-color:var(--list-background);border-radius:var(--list-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:var(--list-min-width);position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{box-shadow:none;align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:box-shadow .15s ease-in-out,padding .15s ease-in-out,margin .15s ease-in-out}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{box-shadow:var(--btn-shadow);background-color:var(--list-hover-background);color:var(--list-hover-text);padding:calc(var(--list-padding) + .2em);margin:-.2em;position:relative;z-index:15000010}.atcb-list-item:focus-visible{box-shadow:var(--btn-shadow);background-color:var(--list-hover-background);color:var(--accent-color);padding:calc(var(--list-padding) + .2em);margin:-.2em;position:relative;z-index:15000010;font-weight:600;outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--list-border-radius) var(--list-border-radius)}.atcb-list-item:first-child{border-radius:var(--list-border-radius) var(--list-border-radius) 0 0}.atcb-list-item:only-child{border-radius:var(--list-border-radius)}.atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{animation:list-entrance .6s ease 0s 1 normal forwards;filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--modal-border-radius) var(--modal-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:7px 4px 4px 7px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay) .atcb-checkmark,.atcb-button.atcb-single:focus .atcb-checkmark,.atcb-button.atcb-single:hover .atcb-checkmark{top:-.77em;right:-.37em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .1s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-trigger{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{filter:none;min-width:100%;margin-bottom:0}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro ol,.pro ul{margin:auto;text-align:left;width:fit-content}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em}.pro-form{border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em;text-align:left}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;box-shadow:var(--btn-shadow);caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input:not([disabled],[type=checkbox],[type=radio]):hover{box-shadow:var(--btn-active-shadow)}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{box-shadow:var(--btn-active-shadow)}.pro-field input[type=email]:focus-visible,.pro-field input[type=number]:focus-visible,.pro-field input[type=text]:focus-visible{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:1px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:1.2em;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;background-color:var(--input-background);border-radius:var(--input-border-radius);box-shadow:var(--btn-shadow);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{color:var(--form-success)}#rsvp-status-group label.status-declined{color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);box-shadow:var(--btn-hover-shadow);color:var(--status-active-text);opacity:1;transform:scale(1.08)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{box-shadow:var(--btn-hover-shadow);opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{background-color:var(--btn-hover-background);display:block;margin:auto;min-width:150px}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p{margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgba(255 255 255 / 80%));height:auto;padding:8px 0;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\r\"text\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,sans-serif;--accent-color:#1e90ff;--wrapper-padding:0px;--buttonslist-gap:5px;--btn-underline:#a9ceff;--btn-border:#a8a8a8;--btn-padding-x:.75em;--btn-padding-y:.75em;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-font-weight:600;--btn-text:#333;--btn-hover-text:#000;--btn-hover-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 2px -1px;--btn-text-shadow:#fff;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#333;--list-hover-text:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-border-radius:11px;--list-padding:.8em 1.2em;--list-min-width:100%;--list-shadow:rgba(0 0 0 / 20%) 0 4px 13px -2px,rgba(0 0 0 / 23%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 50%) 0 4px 30px -3px,rgba(0 0 0 / 30%) 0 2px 8px -2px;--modal-text:#000;--modal-text-align:left;--modal-text-align-rtl:right;--modal-background:#f5f5f5;--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-border-radius:9px;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 65%));--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#d2d2d2;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 3px -1px;--modal-btn-hover-shadow:rgba(0 0 0 / 25%) 0 5px 13px -2px,rgba(0 0 0 / 25%) 0 3px 5px -2px;--modal-headline-text-align:center;--modal-headline-text-transform:none;--input-border-radius:6px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgba(0 0 0 / 20%) 0 5px 12px -2px,rgba(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:rgba(200 200 200 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-underline:#336db9;--btn-border:#888;--btn-background:#2e2e2e;--btn-hover-background:#373737;--btn-text:#dedede;--btn-hover-text:#fff;--btn-text-shadow:#000;--list-background:#2e2e2e;--list-hover-background:#373737;--list-text:#dedede;--list-hover-text:#fff;--list-close-background:#282828;--list-shadow:rgba(255 255 255 / 5%) -12px -5px 20px -8px,rgba(255 255 255 / 6%) -7px -5px 15px -3px,rgba(0 0 0 / 50%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 3px 3px 20px -3px;--list-modal-shadow:rgba(255 255 255 / 8%) -12px -5px 30px -8px,rgba(255 255 255 / 8%) -7px -5px 15px -3px,rgba(0 0 0 / 60%) 4px 6px 50px -4px,rgba(0 0 0 / 90%) 8px 12px 40px -2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgba(255 255 255 / 5%) -2px -2px 10px,rgba(0 0 0 / 40%) 3px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 5px -1px;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgba(0 0 0 / 60%) 0 0 20px -2px,rgba(0 0 0 / 30%) 1px 2px 3px -1px;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:rgba(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(0.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{background-image:linear-gradient(120deg,var(--btn-underline) 0,var(--btn-underline) 100%);background-repeat:no-repeat;background-size:100% 8%;background-position:0 100%;background-color:transparent;border:0;border-radius:0;transition:background-size .1s ease-in,border-radius .2s ease-in,box-shadow .1s ease-in;align-items:center;color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.2em;margin:0 .2em;padding:var(--btn-padding-y) var(--btn-padding-x);position:relative;text-align:left;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button.atcb-no-text{min-width:0;display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-size:100% 100%;box-shadow:var(--btn-hover-shadow);color:var(--btn-hover-text);text-shadow:0 0 .7em var(--btn-text-shadow);border-radius:21px}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){background-size:100% 10%;border-radius:3px 3px 11px 11px;background-position:0 0;background-color:var(--btn-background);color:var(--btn-text);text-shadow:none;z-index:15000000}.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-size:100% 10%;background-position:0 100%;border-radius:11px 11px 3px 3px;background-color:var(--btn-background);color:var(--btn-text);text-shadow:none}.atcb-button.atcb-active.atcb-dropup{background-position:0 100%;border-radius:11px 11px 3px 3px}.atcb-button.atcb-dropup::after,.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{content:\\\"\\\";width:0;height:0;position:absolute;left:0;right:0;margin:0 auto}.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{top:100%;border:0 solid transparent;border-bottom:none;border-top-color:var(--btn-background)}.atcb-button.atcb-dropup::after{bottom:100%;border:0 solid transparent;border-top:none;border-bottom-color:var(--btn-background)}.atcb-button.atcb-active.atcb-dropup::after,.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{border-width:.35em;transition:border-width .1s linear .1s}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:.9em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:1em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-icon-trigger svg{display:none}.atcb-button .atcb-icon-trigger::after{content:\\\"+\\\";font-size:1.5em}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:-15px;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;position:absolute;z-index:14000090;width:auto}.atcb-list-wrapper:not(.atcb-dropup,.atcb-dropoverlay){animation:list-entrance-bottom .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropup{animation:list-entrance-top .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropoverlay{animation:list-entrance-center .2s ease 0s 1 normal forwards;z-index:15000000}@keyframes list-entrance-bottom{0%{opacity:0;transform:translateY(250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-top{0%{opacity:0;transform:translateY(-250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-center{0%{opacity:0;transform:scaleY(1)}1%{opacity:1;transform:scaleY(0)}100%{opacity:1;transform:scaleY(1)}}.atcb-list{background-color:var(--list-background);border-radius:var(--list-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:var(--list-min-width);position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);font-weight:600;outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--list-border-radius) var(--list-border-radius)}.atcb-list-item:first-child{border-radius:var(--list-border-radius) var(--list-border-radius) 0 0}.atcb-list-item:only-child{border-radius:var(--list-border-radius)}.atcb-list.atcb-modal{box-shadow:var(--list-modal-shadow)}.atcb-list-item .atcb-icon{margin:0 auto;height:1em;width:1em}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--modal-border-radius) var(--modal-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:21px;box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn.atcb-modal-btn-border,button.atcb-modal-btn.atcb-modal-btn-border{border:1px solid var(--modal-btn-border)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:7px 4px 4px 7px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{filter:none;min-width:100%;margin-bottom:0}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro ol,.pro ul{margin:auto;text-align:left;width:fit-content}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em}.pro-form{border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em;text-align:left}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:1px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:1.2em;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;border:1px solid var(--modal-btn-text);border-radius:var(--input-border-radius);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{border-color:var(--form-success);color:var(--form-success)}#rsvp-status-group label.status-declined{border-color:var(--form-error);color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);box-shadow:var(--btn-hover-shadow);color:var(--status-active-text);opacity:1;transform:scale(1.08)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{box-shadow:var(--btn-hover-shadow);opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p{margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgba(255 255 255 / 80%));height:auto;padding:8px 0;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\r\"date\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,sans-serif;--accent-color:#1e90ff;--wrapper-padding:0px;--buttonslist-gap:5px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-border:#d2d2d2;--btn-border-radius:4px;--btn-text:#333;--btn-hover-text:#000;--btn-shadow:rgba(0 0 0 / 13%) 0 4px 10px -2px,rgba(0 0 0 / 18%) 0 2px 3px -1px;--btn-hover-shadow:rgba(0 0 0 / 25%) 0 5px 12px -2px,rgba(0 0 0 / 25%) 0 3px 5px -2px;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#333;--list-hover-text:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-shadow:rgba(0 0 0 / 20%) 0 4px 13px -2px,rgba(0 0 0 / 23%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 50%) 0 4px 30px -3px,rgba(0 0 0 / 30%) 0 2px 8px -2px;--modal-text:#000;--modal-text-align:left;--modal-text-align-rtl:right;--modal-background:#f5f5f5;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 65%));--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#d2d2d2;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 10%) 0 2px 3px -1px;--modal-btn-hover-shadow:rgba(0 0 0 / 25%) 0 5px 13px -2px,rgba(0 0 0 / 20%) 0 3px 5px -2px;--modal-headline-text-align:center;--modal-headline-text-transform:none;--input-border-radius:3px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgba(0 0 0 / 20%) 0 5px 12px -2px,rgba(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:rgba(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-hover-background:#474747;--btn-border:#4d4d4d;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--btn-shadow:rgba(0 0 0 / 70%) 0 0 25px -2px,rgba(0 0 0 / 40%) 1px 2px 4px -1px;--btn-hover-shadow:rgba(0 0 0 / 90%) 2px 3px 25px -3px,rgba(0 0 0 / 50%) 1px 4px 6px -2px;--list-background:#2e2e2e;--list-hover-background:#474747;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#282828;--list-shadow:rgba(0 0 0 / 60%) 0 4px 20px -2px,rgba(0 0 0 / 40%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 40%) -1px 3px 30px 2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgba(255 255 255 / 5%) -2px -2px 10px,rgba(0 0 0 / 40%) 3px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 5px -1px;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgba(0 0 0 / 60%) 0 0 20px -2px,rgba(0 0 0 / 30%) 1px 2px 3px -1px;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:rgba(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button,.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:calc(var(--btn-border-radius) + 3px) var(--btn-border-radius) var(--btn-border-radius) calc(var(--btn-border-radius) + 3px);padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.atcb-subevent-btn{width:100%}.atcb-button{box-shadow:var(--btn-shadow);min-width:16em;max-width:18em;position:relative;z-index:1}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus,.atcb-button:hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-hover-shadow)}.atcb-button:focus-visible,.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not(.atcb-active):hover,.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:var(--btn-border-radius) 0 0 var(--btn-border-radius);align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 var(--btn-border-radius) var(--btn-border-radius) 0}.atcb-button:hover .atcb-date-btn-left,.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-button:not(.atcb-active):hover .atcb-date-btn-hover,.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-button:not(.atcb-active):hover .atcb-date-btn-details,.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:1em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:4px;height:1px;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;padding:0 4px;position:absolute;z-index:14000090}.atcb-list-wrapper.atcb-dropoverlay{z-index:15000000}.atcb-list{border-radius:0 0 var(--btn-border-radius) var(--btn-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:.8em;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);font-weight:600;outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--btn-border-radius) var(--btn-border-radius)}.atcb-dropup .atcb-list-item:last-child{border-radius:0;padding-bottom:1.25em}.atcb-dropoverlay .atcb-list .atcb-list-item:first-child,.atcb-dropup .atcb-list-item:first-child,.atcb-list.atcb-modal .atcb-list-item:first-child{border-radius:var(--btn-border-radius) var(--btn-border-radius) 0 0}.atcb-dropoverlay .atcb-list .atcb-list-item:only-child,.atcb-list.atcb-modal .atcb-list-item:only-child{border-radius:var(--btn-border-radius)}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:1.25em}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:.8em}.atcb-dropoverlay .atcb-list,.atcb-list.atcb-modal{border-radius:var(--btn-border-radius)}.atcb-list.atcb-modal{box-shadow:var(--list-modal-shadow)}.atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--btn-border-radius) var(--btn-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--btn-border-radius) var(--btn-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--btn-border-radius) var(--btn-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn.atcb-modal-btn-border,button.atcb-modal-btn.atcb-modal-btn-border{border:1px solid var(--modal-btn-border)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.pro{text-align:center}.pro ol,.pro ul{margin:auto;text-align:left;width:fit-content}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro-form{border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em;text-align:left}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding:1.5em 0;text-align:center}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.atcb-modal-content .pro p{margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgba(255 255 255 / 80%));height:auto;padding:8px 0;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\r};\rconst atcbIsBrowser = () => {\n if (typeof window === 'undefined') {\n return false;\n } else {\n return true;\n }\n};\nconst atcbIsiOS = atcbIsBrowser()\n ? () => {\n if ((/iPad|iPhone|iPod/i.test(navigator.userAgent || window.opera) && !window.MSStream) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };\nconst atcbIsAndroid = atcbIsBrowser()\n ? () => {\n if (/android/i.test(navigator.userAgent || window.opera) && !window.MSStream) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };\n/*const atcbIsChrome = atcbIsBrowser()\n ? () => {\n if (/chrome|chromium|crios|google inc/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };*/\nconst atcbIsSafari = atcbIsBrowser()\n ? () => {\n if (/^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };\nconst atcbIsMobile = () => {\n if (atcbIsAndroid() || atcbIsiOS()) {\n return true;\n } else {\n return false;\n }\n};\nconst atcbIsWebView = atcbIsBrowser()\n ? () => {\n if (/(; ?wv|(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari))/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };\nconst atcbIsProblematicWebView = atcbIsBrowser()\n ? () => {\n if (/(Instagram)/i.test(navigator.userAgent || window.opera)) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };\nconst atcbDefaultTarget = atcbIsWebView() ? '_system' : '_blank';\nconst atcbOptions = ['apple', 'google', 'ical', 'ms365', 'outlookcom', 'msteams', 'yahoo'];\nconst atcbValidRecurrOptions = ['apple', 'google', 'ical'];\nconst atcbInvalidSubscribeOptions = ['msteams'];\nconst atcbiOSInvalidOptions = ['ical'];\nconst atcbStates = [];\nconst atcbWcParams = [\n 'debug',\n 'cspnonce',\n 'identifier',\n 'name',\n 'dates',\n 'description',\n 'startDate',\n 'startTime',\n 'endDate',\n 'endTime',\n 'timeZone',\n 'useUserTZ',\n 'location',\n 'status',\n 'uid',\n 'organizer',\n 'attendee',\n 'icsFile',\n 'images',\n 'recurrence',\n 'recurrence_until',\n 'recurrence_byDay',\n 'recurrence_byMonth',\n 'recurrence_byMonthDay',\n 'recurrence_weekstart',\n 'sequence',\n 'recurrence_interval',\n 'recurrence_count',\n 'availability',\n 'created',\n 'updated',\n 'subscribe',\n 'options',\n 'optionsMobile',\n 'optionsIOS',\n 'iCalFileName',\n 'listStyle',\n 'buttonStyle',\n 'trigger',\n 'hideIconButton',\n 'hideIconList',\n 'hideIconModal',\n 'hideTextLabelButton',\n 'hideTextLabelList',\n 'buttonsList',\n 'hideBackground',\n 'hideCheckmark',\n 'hideBranding',\n 'size',\n 'label',\n 'inline',\n 'inlineRsvp',\n 'customLabels',\n 'customCss',\n 'lightMode',\n 'language',\n 'hideRichData',\n 'bypassWebViewCheck',\n 'blockInteraction',\n 'styleLight',\n 'styleDark',\n 'disabled',\n 'hidden',\n 'hideButton',\n 'pastDateHandling',\n 'proxy',\n 'fakeMobile',\n 'fakeIOS',\n 'fakeAndroid',\n 'forceOverlay',\n 'rsvp',\n 'ty',\n 'customVar',\n 'dev',\n];\nconst atcbWcProParams = [\n 'debug',\n 'cspnonce',\n 'attendee',\n 'images',\n 'size',\n 'inline',\n 'inlineRsvp',\n 'customLabels',\n 'customCss',\n 'lightMode',\n 'language',\n 'bypassWebViewCheck',\n 'blockInteraction',\n 'styleLight',\n 'styleDark',\n 'disabled',\n 'hidden',\n 'fakeMobile',\n 'fakeIOS',\n 'fakeAndroid',\n 'forceOverlay',\n 'customVar',\n 'proxy',\n 'dev',\n];\nconst atcbWcBooleanParams = [\n 'debug',\n 'useUserTZ',\n 'hideIconButton',\n 'hideIconList',\n 'hideIconModal',\n 'hideTextLabelButton',\n 'hideTextLabelList',\n 'subscribe',\n 'hideBackground',\n 'hideCheckmark',\n 'hideBranding',\n 'inlineRsvp',\n 'hideRichData',\n 'buttonsList',\n 'inline',\n 'bypassWebViewCheck',\n 'blockInteraction',\n 'disabled',\n 'hidden',\n 'hideButton',\n 'proxy',\n 'fakeMobile',\n 'fakeIOS',\n 'fakeAndroid',\n 'forceOverlay',\n 'dev',\n];\nconst atcbWcObjectParams = ['customLabels', 'ty', 'rsvp', 'customVar'];\nconst atcbWcObjectArrayParams = ['dates'];\nconst atcbWcArrayParams = ['images', 'options', 'optionsMobile', 'optionsIOS'];\nconst atcbWcNumberParams = ['sequence', 'recurrence_interval', 'recurrence_count'];\nconst atcbIcon = {\n trigger:\n '',\n apple:\n '',\n google:\n '',\n ical: '',\n msteams:\n '',\n ms365: '',\n outlookcom:\n '',\n yahoo:\n '',\n close:\n '',\n location:\n '',\n warning:\n '',\n checkmark:\n '',\n rsvp: '',\n};\n\n\nasync function atcb_decorate_data(data) {\n data = atcb_decorate_data_boolean(data);\n data.timeZone = atcb_decorate_data_timezone(data.timeZone);\n data = atcb_decorate_data_rrule(data);\n data = atcb_decorate_data_options(data);\n data = atcb_decorate_data_style(data);\n data.sizes = atcb_decorate_sizes(data.size);\n data.lightMode = atcb_decorate_light_mode(data.lightMode);\n data = atcb_decorate_data_i18n(data);\n data = atcb_decorate_data_dates(data);\n data = atcb_decorate_data_meta(data);\n data = atcb_decorate_data_extend(data);\n data = atcb_decorate_data_button_status_handling(data);\n data = await atcb_decorate_data_rsvp(data);\n return data;\n}\nfunction atcb_decorate_data_boolean(data) {\n for (let i = 0; i < atcbWcBooleanParams.length; i++) {\n const attr = atcbWcBooleanParams[`${i}`];\n if (data[`${attr}`]) {\n if (typeof data[`${attr}`] !== 'boolean') {\n const val = data[`${attr}`].toString().trim().toLowerCase() || '';\n data[`${attr}`] = val === '' || val === 'true' ? true : false;\n }\n } else {\n data[`${attr}`] = false;\n }\n }\n return data;\n}\nfunction atcb_decorate_data_timezone(tz = null) {\n if (!tz || tz === '') {\n return 'GMT';\n }\n return tz;\n}\nfunction atcb_decorate_data_rrule(data) {\n if (data.recurrence && data.recurrence !== '') {\n data.recurrence = data.recurrence.replace(/\\s+/g, '').toUpperCase();\n if (!/^(RRULE:[\\w=;,:+-/\\\\]+|daily|weekly|monthly|yearly)$/im.test(data.recurrence)) {\n data.recurrence = '!wrong rrule format!';\n } else {\n if (/^RRULE:/i.test(data.recurrence)) {\n data.recurrence_simplyfied = false;\n const rruleParts = data.recurrence.substring(6).split(';');\n const rruleObj = new Object();\n rruleParts.forEach(function (rule) {\n rruleObj[rule.split('=')[0]] = rule.split('=')[1];\n });\n data.recurrence_until = rruleObj.UNTIL ? rruleObj.UNTIL : '';\n data.recurrence_count = rruleObj.COUNT ? rruleObj.COUNT : '';\n data.recurrence_byDay = rruleObj.BYDAY ? rruleObj.BYDAY : '';\n data.recurrence_byMonth = rruleObj.BYMONTH ? rruleObj.BYMONTH : '';\n data.recurrence_byMonthDay = rruleObj.BYMONTHDAY ? rruleObj.BYMONTHDAY : '';\n data.recurrence_interval = rruleObj.INTERVAL ? rruleObj.INTERVAL : 1;\n data.recurrence_frequency = rruleObj.FREQ ? rruleObj.FREQ : '';\n } else {\n data.recurrence_simplyfied = true;\n if (!data.recurrence_interval || data.recurrence_interval === '') {\n data.recurrence_interval = 1;\n }\n if (!data.recurrence_weekstart || (data.recurrence_weekstart === '') | (data.recurrence_weekstart.length > 2)) {\n data.recurrence_weekstart = 'MO';\n }\n data.recurrence_frequency = data.recurrence;\n data.recurrence = 'RRULE:FREQ=' + data.recurrence + ';WKST=' + data.recurrence_weekstart + ';INTERVAL=' + data.recurrence_interval;\n if (data.recurrence_until && data.recurrence_until !== '') {\n if (data.endTime && data.endTime !== '') {\n data.recurrence = data.recurrence + ';UNTIL=' + data.recurrence_until.replace(/-/g, '').slice(0, 8) + 'T' + data.endTime.replace(':', '') + '00';\n } else {\n data.recurrence = data.recurrence + ';UNTIL=' + data.recurrence_until.replace(/-/g, '').slice(0, 8);\n }\n }\n if (data.recurrence_count && data.recurrence_count !== '') {\n data.recurrence = data.recurrence + ';COUNT=' + data.recurrence_count;\n }\n if (data.recurrence_byDay && data.recurrence_byDay !== '') {\n data.recurrence = data.recurrence + ';BYDAY=' + data.recurrence_byDay;\n }\n if (data.recurrence_byMonth && data.recurrence_byMonth !== '') {\n data.recurrence = data.recurrence + ';BYMONTH=' + data.recurrence_byMonth;\n }\n if (data.recurrence_byMonthDay && data.recurrence_byMonthDay !== '') {\n data.recurrence = data.recurrence + ';BYMONTHDAY=' + data.recurrence_byMonthDay;\n }\n }\n }\n }\n return data;\n}\nfunction atcb_decorate_data_options(data) {\n const theOptions = (function () {\n if (atcbIsiOS() || data.fakeIOS) {\n if (data.optionsIOS) {\n return data.optionsIOS;\n }\n if (data.optionsMobile) {\n return data.optionsMobile;\n }\n }\n if ((atcbIsAndroid() || data.fakeMobile || data.fakeAndroid) && data.optionsMobile) {\n return data.optionsMobile;\n }\n return data.options || ['ical'];\n })();\n const newOptions = [];\n let iCalGiven = false;\n let appleGiven = false;\n for (let i = 0; i < theOptions.length; i++) {\n const cleanOption = theOptions[`${i}`].split('|');\n const optionName = cleanOption[0].toLowerCase().replace('microsoft', 'ms').replace(/\\./, '');\n if (optionName === 'apple') {\n appleGiven = true;\n }\n if (optionName === 'ical') {\n iCalGiven = true;\n }\n if (\n (atcbIsiOS() && atcbiOSInvalidOptions.includes(optionName)) ||\n (data.recurrence && data.recurrence !== '' && (!atcbValidRecurrOptions.includes(optionName) || (data.recurrence_until && data.recurrence_until !== '' && (optionName === 'apple' || optionName === 'ical')) || (atcbIsiOS() && optionName === 'google'))) ||\n (data.subscribe && atcbInvalidSubscribeOptions.includes(optionName))\n ) {\n continue;\n }\n newOptions.push(optionName);\n }\n if (newOptions.length === 0) {\n if (!atcbIsiOS()) {\n newOptions.push('ical');\n }\n iCalGiven = true;\n }\n if (atcbIsiOS() && iCalGiven && !appleGiven) {\n newOptions.push('apple');\n }\n data.options = newOptions;\n return data;\n}\nfunction atcb_decorate_data_style(data) {\n if (data.inlineRSVP) {\n data.inline = true;\n }\n if (!data.listStyle || data.listStyle === '') {\n data.listStyle = 'dropdown';\n }\n if (data.listStyle === 'modal') {\n data.trigger = 'click';\n }\n if (data.buttonStyle && data.buttonStyle !== '' && data.buttonStyle != 'default') {\n if (data.buttonStyle == 'round' || data.buttonStyle == 'text' || data.buttonStyle == 'date' || data.buttonStyle == 'neumorphism') {\n data.trigger = 'click';\n }\n } else {\n data.buttonStyle = 'default';\n }\n if ((data.buttonStyle == 'default' || data.buttonStyle == '3d' || data.buttonStyle == 'flat') && !data.hideTextLabelList && data.hideTextLabelButton && (data.listStyle == 'dropdown' || data.listStyle == 'dropdown-static' || data.listStyle == 'dropup-static')) {\n data.listStyle = 'overlay';\n }\n if (data.buttonsList && data.buttonStyle == 'date') {\n data.buttonsList = false;\n }\n return data;\n}\nfunction atcb_decorate_sizes(size) {\n const sizes = [];\n sizes['l'] = sizes['m'] = sizes['s'] = 16;\n if (size && size !== '') {\n const sizeParts = size.split('|');\n for (let i = 0; i < sizeParts.length; i++) {\n sizeParts[`${i}`] = parseInt(sizeParts[`${i}`]);\n }\n if (sizeParts[0] >= 0 && sizeParts[0] < 11) {\n sizes['l'] = sizes['m'] = sizes['s'] = 10 + sizeParts[0];\n }\n if (sizeParts.length > 2) {\n if (sizeParts[1] >= 0 && sizeParts[1] < 11) {\n sizes['m'] = 10 + sizeParts[1];\n }\n if (sizeParts[2] >= 0 && sizeParts[2] < 11) {\n sizes['s'] = 10 + sizeParts[2];\n }\n } else if (sizeParts.length == 2) {\n if (sizeParts[1] >= 0 && sizeParts[1] < 11) {\n sizes['m'] = sizes['s'] = 10 + sizeParts[1];\n }\n }\n }\n return sizes;\n}\nfunction atcb_decorate_light_mode(lightMode = '') {\n if (lightMode == 'system' && atcbIsBrowser()) {\n const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)');\n return prefersDarkScheme.matches ? 'dark' : 'light';\n }\n if (lightMode != 'bodyScheme' && lightMode != 'dark') {\n return 'light';\n }\n return lightMode;\n}\nfunction atcb_decorate_data_i18n(data) {\n if (!data.language || data.language === '' || !availableLanguages.includes(data.language)) {\n data.language = 'en';\n }\n if (data.language.length > 2) {\n data.language = data.language.substring(0, 2);\n }\n if (rtlLanguages.includes(data.language)) {\n data.rtl = true;\n } else {\n data.rtl = false;\n }\n return data;\n}\nfunction atcb_decorate_data_dates(data) {\n if (data.dates && data.dates.length > 0) {\n for (let i = 0; i < data.dates.length; i++) {\n if (!data.dates[`${i}`].timeZone && data.timeZone) {\n data.dates[`${i}`].timeZone = data.timeZone;\n }\n if (!data.dates[`${i}`].useUserTZ && data.useUserTZ) {\n data.dates[`${i}`].useUserTZ = data.useUserTZ;\n }\n const cleanedUpDates = atcb_date_cleanup(data.dates[`${i}`]);\n data.dates[`${i}`].startTime = cleanedUpDates.startTime;\n data.dates[`${i}`].endTime = cleanedUpDates.endTime;\n data.dates[`${i}`].timeZone = cleanedUpDates.timeZone;\n data.dates[`${i}`].startDate = atcb_date_calculation(cleanedUpDates.startDate);\n data.dates[`${i}`].endDate = atcb_date_calculation(cleanedUpDates.endDate);\n data.dates[`${i}`].timestamp = atcb_date_specials_calculation('timestamp', data.dates[`${i}`].startDate, data.dates[`${i}`].startTime, data.dates[`${i}`].timeZone);\n data.dates[`${i}`].overdue = atcb_date_specials_calculation('overdue', data.dates[`${i}`].endDate, data.dates[`${i}`].endTime, data.dates[`${i}`].timeZone);\n }\n } else {\n data.dates = [];\n data.dates[0] = new Object();\n if (data.useUserTZ) data.dates[0].useUserTZ = data.useUserTZ;\n const cleanedUpDates = atcb_date_cleanup(data);\n data.startTime = data.dates[0].startTime = cleanedUpDates.startTime;\n data.endTime = data.dates[0].endTime = cleanedUpDates.endTime;\n data.timeZone = data.dates[0].timeZone = cleanedUpDates.timeZone;\n data.startDate = data.dates[0].startDate = atcb_date_calculation(cleanedUpDates.startDate);\n data.endDate = data.dates[0].endDate = atcb_date_calculation(cleanedUpDates.endDate);\n if (!data.recurrence) {\n data.dates[0].overdue = atcb_date_specials_calculation('overdue', data.endDate, data.endTime, data.timeZone);\n } else {\n data.dates[0].overdue = false;\n }\n }\n const now = new Date();\n if (!data.created || data.created === '') {\n data.created = atcb_format_datetime(now, 'clean', true);\n }\n if (!data.updated || data.updated === '') {\n data.updated = atcb_format_datetime(now, 'clean', true);\n }\n return data;\n}\nfunction atcb_decorate_data_meta(data) {\n if (!data.status || data.status === '') {\n data.status = 'CONFIRMED';\n }\n if (!data.sequence || data.sequence === '') {\n data.sequence = 0;\n }\n return data;\n}\nfunction atcb_decorate_data_description(data, i) {\n const cleanDescription = (desc) => desc.replace(/(\\\\r\\\\n|\\\\n|\\\\r|)/g, '');\n let description = data.dates[`${i}`].description || data.description || '';\n if (description) {\n description = cleanDescription(description);\n if (data.customVar) {\n for (const key in data.customVar) {\n const sanitizedKey = key.replace(/[^a-zA-Z0-9\\-_.]/g, '');\n // eslint-disable-next-line security/detect-non-literal-regexp\n description = description.replace(new RegExp(`%%${sanitizedKey}%%`, 'g'), data.customVar[`${key}`]);\n }\n }\n const descriptionHtmlFree = atcb_rewrite_html_elements(description, true);\n const descriptionHtmlFreeICal = atcb_rewrite_html_elements(description, true, true);\n description = atcb_rewrite_html_elements(description);\n data.dates[`${i}`] = { ...data.dates[`${i}`], description, descriptionHtmlFree, descriptionHtmlFreeICal };\n } else {\n data.dates[`${i}`].descriptionHtmlFree = data.dates[`${i}`].descriptionHtmlFreeICal = data.dates[`${i}`].description = '';\n }\n return data;\n}\nfunction atcb_decorate_data_extend(data) {\n for (let i = 0; i < data.dates.length; i++) {\n data = atcb_decorate_data_description(data, i);\n if (!data.dates[`${i}`].name || data.dates[`${i}`].name === '') {\n data.dates[`${i}`].name = data.name;\n }\n if (!data.dates[`${i}`].status) {\n data.dates[`${i}`].status = data.status.toUpperCase();\n } else {\n data.dates[`${i}`].status = data.dates[`${i}`].status.toUpperCase();\n }\n if (!data.dates[`${i}`].sequence) {\n data.dates[`${i}`].sequence = data.sequence;\n }\n if (!data.dates[`${i}`].organizer && data.organizer) {\n data.dates[`${i}`].organizer = data.organizer;\n }\n if (!data.dates[`${i}`].attendee && data.attendee) {\n data.dates[`${i}`].attendee = data.attendee;\n }\n if (!data.dates[`${i}`].availability && data.availability) {\n data.dates[`${i}`].availability = data.availability.toLowerCase();\n } else if (data.dates[`${i}`].availability) {\n data.dates[`${i}`].availability = data.dates[`${i}`].availability.toLowerCase();\n }\n if (!data.dates[`${i}`].location && data.location) {\n data.dates[`${i}`].location = data.location;\n }\n if (data.dates[`${i}`].location && data.dates[`${i}`].location.startsWith('http')) {\n data.dates[`${i}`].onlineEvent = true;\n } else {\n data.dates[`${i}`].onlineEvent = false;\n }\n if (!data.dates[`${i}`].uid) {\n if (i === 0 && data.uid && data.uid !== '') {\n data.dates[0].uid = data.uid;\n } else {\n if (data.uid && data.uid !== '') {\n data.dates[`${i}`].uid = data.uid + '-' + (i + 1);\n } else {\n data.dates[`${i}`].uid = atcb_generate_uuid();\n }\n }\n }\n if (data.customVar) {\n for (const key in data.customVar) {\n const sanitizedKey = key.replace(/[^a-zA-Z0-9\\-_.]/g, '');\n // eslint-disable-next-line security/detect-non-literal-regexp\n data.dates[`${i}`].name = data.dates[`${i}`].name.replace(new RegExp(`%%${sanitizedKey}%%`, 'g'), data.customVar[`${key}`]);\n // eslint-disable-next-line security/detect-non-literal-regexp\n data.dates[`${i}`].location = data.dates[`${i}`].location.replace(new RegExp(`%%${sanitizedKey}%%`, 'g'), data.customVar[`${key}`]);\n }\n }\n }\n if (data.recurrence && data.recurrence !== '') {\n data.dates[0].recurrence = data.recurrence;\n }\n if (data.dates.length > 1) {\n data.dates.sort((a, b) => a.timestamp - b.timestamp);\n }\n return data;\n}\nfunction atcb_date_cleanup(dateTimeData) {\n if (!dateTimeData.endDate || dateTimeData.endDate === '') {\n dateTimeData.endDate = dateTimeData.startDate;\n }\n const endpoints = ['start', 'end'];\n endpoints.forEach(function (point) {\n if (!/^(\\d{4}-\\d{2}-\\d{2}T?(?:\\d{2}:\\d{2}|)Z?|today(?:\\+\\d{1,4}|))$/i.test(dateTimeData[point + 'Date'])) {\n dateTimeData[point + 'Date'] = 'badly-formed';\n } else {\n if (dateTimeData[point + 'Date']) {\n dateTimeData[point + 'Date'] = dateTimeData[point + 'Date'].replace(/\\.\\d{3}/, '').replace('Z', '');\n const tmpSplitStartDate = dateTimeData[point + 'Date'].split('T');\n if (tmpSplitStartDate[1]) {\n dateTimeData[point + 'Date'] = tmpSplitStartDate[0];\n dateTimeData[point + 'Time'] = tmpSplitStartDate[1];\n }\n }\n if (dateTimeData[point + 'Time'] && dateTimeData[point + 'Time'].length === 8) {\n const timeStr = dateTimeData[point + 'Time'];\n dateTimeData[point + 'Time'] = timeStr.substring(0, timeStr.length - 3);\n }\n }\n });\n if (dateTimeData.timeZone === 'currentBrowser' || dateTimeData.useUserTZ) {\n const browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'GMT';\n if (dateTimeData.useUserTZ && dateTimeData.startTime && dateTimeData.startTime !== '' && dateTimeData.endTime && dateTimeData.endTime !== '') {\n const newStartDateTime = atcb_translate_via_time_zone(dateTimeData.startDate, dateTimeData.startTime, dateTimeData.timeZone, browserTimezone);\n const newEndDateTime = atcb_translate_via_time_zone(dateTimeData.endDate, dateTimeData.endTime, dateTimeData.timeZone, browserTimezone);\n dateTimeData.startDate = newStartDateTime[0];\n dateTimeData.startTime = newStartDateTime[1];\n dateTimeData.endDate = newEndDateTime[0];\n dateTimeData.endTime = newEndDateTime[1];\n }\n dateTimeData.timeZone = browserTimezone;\n }\n return dateTimeData;\n}\nfunction atcb_date_specials_calculation(type, dateString, timeString = null, timeZone) {\n try {\n const tmpDate = (function () {\n if (timeString) {\n const offsetEnd = tzlib_get_offset(timeZone, dateString, timeString);\n return new Date(dateString + ' ' + timeString + ':00 GMT' + offsetEnd);\n }\n return new Date(dateString);\n })();\n if (type === 'timestamp') {\n return tmpDate.getTime();\n }\n if (!timeString) {\n tmpDate.setDate(tmpDate.getDate() + 1);\n }\n const currentUtcDate = new Date().toISOString();\n return tmpDate.getTime() < new Date(currentUtcDate).getTime();\n } catch (e) {\n return false;\n }\n}\nfunction atcb_date_calculation(dateString) {\n const today = new Date();\n const todayString = today.getUTCFullYear() + '-' + (today.getUTCMonth() + 1) + '-' + today.getUTCDate();\n dateString = dateString.replace(/today/gi, todayString);\n const dateStringParts = dateString.split('+');\n const dateParts = dateStringParts[0].split('-');\n let newDate = (function () {\n if (dateParts[0].length < 4) {\n return new Date(Date.UTC(dateParts[2], dateParts[0] - 1, dateParts[1]));\n }\n return new Date(Date.UTC(dateParts[0], dateParts[1] - 1, dateParts[2]));\n })();\n if (dateStringParts[1] && dateStringParts[1] > 0) {\n newDate.setDate(newDate.getDate() + parseInt(dateStringParts[1]));\n }\n try {\n return newDate.toISOString().replace(/T(\\d{2}:\\d{2}:\\d{2}\\.\\d{3})Z/g, '');\n } catch (e) {\n return false;\n }\n}\nfunction atcb_decorate_data_button_status_handling(data) {\n if (!data.pastDateHandling || (data.pastDateHandling != 'disable' && data.pastDateHandling != 'hide')) {\n data.pastDateHandling = 'none';\n }\n const overdue = (function () {\n for (let i = 0; i < data.dates.length; i++) {\n if (!data.dates[`${i}`].overdue) {\n return false;\n }\n }\n return true;\n })();\n data.allOverdue = false;\n if (overdue) {\n data.allOverdue = true;\n if (data.pastDateHandling == 'disable') {\n data.disabled = true;\n } else if (data.pastDateHandling == 'hide') {\n data.hidden = true;\n }\n }\n if (data.disabled || data.hidden) {\n data.blockInteraction = true;\n }\n return data;\n}\nasync function atcb_decorate_data_rsvp(data) {\n if (typeof atcb_check_booked_out !== 'function' || !data.rsvp || Object.keys(data.rsvp).length === 0) return data;\n data.rsvp.expired = (function () {\n if (data.rsvp && data.rsvp.expires && new Date(data.rsvp.expires) < new Date()) {\n return true;\n }\n return false;\n })();\n data.rsvp.bookedOut = await atcb_check_booked_out(data);\n if (data.rsvp.expired || data.rsvp.bookedOut) {\n data.blockInteraction = true;\n }\n if (data.blockInteraction) {\n data.disabled = true;\n }\n return data;\n}\n\n\nasync function atcb_check_required(data) {\n if (!data.name || data.name === '') {\n throw new Error('Add to Calendar Button generation failed: required name information missing');\n }\n if (data.dates != null && data.dates.length > 0) {\n const requiredMultiField = ['name', 'startDate'];\n const requiredMultiFieldFlex = ['name'];\n return requiredMultiField.every(function (field) {\n for (let i = 0; i < data.dates.length; i++) {\n if (\n (!requiredMultiFieldFlex.includes(`${field}`) && (!data.dates[`${i}`][`${field}`] || data.dates[`${i}`][`${field}`] === '')) ||\n (requiredMultiFieldFlex.includes(`${field}`) && (!data.dates[`${i}`][`${field}`] || data.dates[`${i}`][`${field}`] === '') && (!data[`${field}`] || data[`${field}`] === ''))\n ) {\n throw new Error('Add to Calendar Button generation failed: required setting missing [dates array object #' + (i + 1) + '/' + data.dates.length + '] => [' + field + ']');\n }\n }\n return true;\n });\n } else {\n const requiredSingleField = ['startDate'];\n return requiredSingleField.every(function (field) {\n if (!data[`${field}`] || data[`${field}`] === '') {\n throw new Error('Add to Calendar Button generation failed: required setting missing [' + field + ']');\n }\n return true;\n });\n }\n}\nasync function atcb_validate(data) {\n const msgPrefix = 'Add to Calendar Button generation (' + data.identifier + ')';\n try {\n await atcb_validate_icsFile(data, msgPrefix);\n await atcb_validate_buttonStyle(data, msgPrefix);\n await atcb_validate_subscribe(data, msgPrefix);\n await atcb_validate_created(data, msgPrefix);\n await atcb_validate_updated(data, msgPrefix);\n await atcb_validate_options(data, msgPrefix);\n await atcb_validate_date_blocks(data, msgPrefix);\n await atcb_validate_rrule(data, msgPrefix);\n if (data.recurrence_simplyfied) {\n await atcb_validate_rrule_simplyfied(data, msgPrefix);\n }\n return true;\n } catch (e) {\n throw new Error(e.message);\n }\n}\nasync function atcb_validate_icsFile(data, msgPrefix, i = '', msgSuffix = '') {\n const icsFileStr = (function () {\n if (i !== '' && data.dates[`${i}`].icsFile) {\n return data.dates[`${i}`].icsFile;\n }\n if (i === '' && data.icsFile) {\n return data.icsFile;\n }\n return '';\n })();\n if (icsFileStr !== '') {\n if (!atcb_secure_url(icsFileStr, false) || (!data.icsFile.startsWith('https://') && !data.icsFile.startsWith('http://'))) {\n throw new Error(msgPrefix + ' failed: explicit ics file path not valid' + msgSuffix);\n }\n }\n return true;\n}\nasync function atcb_validate_buttonStyle(data, msgPrefix) {\n const availableStyles = ['default', '3d', 'flat', 'round', 'neumorphism', 'text', 'date', 'custom', 'none'];\n if (!availableStyles.includes(data.buttonStyle)) {\n throw new Error(msgPrefix + ' failed: provided buttonStyle invalid');\n }\n if (data.customCss && data.customCss !== '' && (!atcb_secure_url(data.customCss, false) || !/\\.css($|\\?)/.test(data.customCss))) {\n throw new Error(msgPrefix + ' failed: customCss provided, but no valid url');\n }\n if ((!data.customCss || data.customCss === '') && data.buttonStyle === 'custom') {\n throw new Error(msgPrefix + ' failed: buttonStyle \"custom\" selected, but no customCss file provided');\n }\n if (data.rsvp && (data.buttonStyle === 'date' || data.buttonStyle === 'none')) {\n throw new Error(msgPrefix + ' failed: buttonStyle ' + data.buttonStyle + ' is not compatible with the RSVP functionality');\n }\n return true;\n}\nasync function atcb_validate_subscribe(data, msgPrefix) {\n if (data.subscribe === true && (!data.icsFile || data.icsFile === '')) {\n throw new Error(msgPrefix + ' failed: a subscription calendar requires a valid explicit ics file as well');\n }\n return true;\n}\nasync function atcb_validate_created(data, msgPrefix) {\n if (!/^\\d{8}T\\d{6}Z$/.test(data.created)) {\n throw new Error(msgPrefix + ' failed: created date format not valid. Needs to be a full ISO-8601 UTC date and time string, formatted YYYYMMDDTHHMMSSZ');\n }\n return true;\n}\nasync function atcb_validate_updated(data, msgPrefix) {\n if (!/^\\d{8}T\\d{6}Z$/.test(data.updated)) {\n throw new Error(msgPrefix + ' failed: updated date format not valid. Needs to be a full ISO-8601 UTC date and time string, formatted YYYYMMDDTHHMMSSZ');\n }\n return true;\n}\nasync function atcb_validate_options(data, msgPrefix) {\n const isValid = data.options.every((option) => {\n if (!atcbOptions.includes(option)) {\n throw new Error(`${msgPrefix} failed: invalid option [${option}]`);\n }\n return true;\n });\n return isValid;\n}\nasync function atcb_validate_date_blocks(data, msgPrefix) {\n try {\n for (let i = 0; i < data.dates.length; i++) {\n const msgSuffix = (function () {\n if (data.dates.length === 1) {\n return '';\n } else {\n return ' [dates array object #' + (i + 1) + '/' + data.dates.length + '] ';\n }\n })();\n await atcb_validate_icsFile(data, msgPrefix, i, msgSuffix);\n await atcb_validate_status(data, msgPrefix, i, msgSuffix);\n await atcb_validate_availability(data, msgPrefix, i, msgSuffix);\n await atcb_validate_organizer(data, msgPrefix, i, msgSuffix);\n await atcb_validate_attendee(data, msgPrefix, i, msgSuffix);\n await atcb_validate_uid(data, msgPrefix, i, msgSuffix);\n await atcb_validate_sequence(data, msgPrefix, i, msgSuffix);\n await atcb_validate_timezone(data, msgPrefix, i, msgSuffix);\n await atcb_validate_datetime(data, msgPrefix, i, msgSuffix);\n }\n return true;\n } catch (e) {\n throw new Error(e.message);\n }\n}\nasync function atcb_validate_status(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].status !== 'TENTATIVE' && data.dates[`${i}`].status !== 'CONFIRMED' && data.dates[`${i}`].status !== 'CANCELLED') {\n throw new Error(msgPrefix + ' failed: event status needs to be TENTATIVE, CONFIRMED, or CANCELLED' + msgSuffix);\n }\n return true;\n}\nasync function atcb_validate_availability(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].availability && data.dates[`${i}`].availability !== '' && data.dates[`${i}`].availability !== 'free' && data.dates[`${i}`].availability !== 'busy') {\n throw new Error(msgPrefix + ' failed: event availability needs to be \"free\" or \"busy\"' + msgSuffix);\n }\n return true;\n}\nasync function atcb_validate_organizer(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].organizer && data.dates[`${i}`].organizer !== '') {\n const organizerParts = data.dates[`${i}`].organizer.split('|');\n if (organizerParts.length !== 2 || organizerParts[0].length > 50 || organizerParts[1].length > 80 || !atcb_validEmail(organizerParts[1])) {\n throw new Error(msgPrefix + ' failed: organizer needs to match the schema \"NAME|EMAIL\" with a valid email address' + msgSuffix);\n }\n }\n return true;\n}\nasync function atcb_validate_attendee(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].attendee && data.dates[`${i}`].attendee !== '') {\n if (!data.dates[`${i}`].organizer || data.dates[`${i}`].organizer === '') {\n throw new Error(msgPrefix + ' failed: if an attendee is set, you also need to set the organizer' + msgSuffix);\n }\n const attendeeParts = data.dates[`${i}`].attendee.split('|');\n if (attendeeParts.length === 1 && atcb_validEmail(attendeeParts[0])) {\n return true;\n }\n if (attendeeParts.length !== 2 || attendeeParts[0].length > 50 || attendeeParts[1].length > 80 || !atcb_validEmail(attendeeParts[1])) {\n throw new Error(msgPrefix + ' failed: attendee needs to be a valid email address or match the schema \"NAME|EMAIL\" with EMAIL being a valid email address' + msgSuffix);\n }\n }\n return true;\n}\nasync function atcb_validate_uid(data, msgPrefix, i, msgSuffix) {\n if (!/^(\\w|-){1,254}$/.test(data.dates[`${i}`].uid)) {\n if (data.debug) {\n console.warn(msgPrefix + ': UID not valid. May only contain alpha, digits, and dashes; and be less than 255 characters. Falling back to an automated value!' + msgSuffix);\n }\n data.dates[`${i}`].uid = atcb_generate_uuid();\n }\n if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(data.dates[`${i}`].uid) && data.debug) {\n console.warn(msgPrefix + ': UID is highly recommended to be a hex-encoded random Universally Unique Identifier (UUID)!' + msgSuffix);\n }\n return true;\n}\nasync function atcb_validate_sequence(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].sequence && (data.dates[`${i}`].sequence < 0 || data.dates[`${i}`].sequence % 1 !== 0)) {\n if (data.debug) {\n console.log(msgPrefix + ': sequence needs to be a full number >= 0. Used the default 0 instead' + msgSuffix);\n }\n data.dates[`${i}`].sequence = 0;\n }\n return true;\n}\nasync function atcb_validate_timezone(data, msgPrefix, i, msgSuffix) {\n const validTimeZones = tzlib_get_timezones();\n if (!validTimeZones.includes(data.dates[`${i}`].timeZone)) {\n throw new Error(msgPrefix + ' failed: invalid time zone given' + msgSuffix);\n }\n return true;\n}\nasync function atcb_validate_datetime(data, msgPrefix, i, msgSuffix) {\n const selectedDate = data.dates[`${i}`];\n const dates = ['startDate', 'endDate'];\n const newDate = {};\n dates.forEach((date) => {\n const dateString = selectedDate[`${date}`];\n if (dateString.length !== 10) {\n throw new Error(`${msgPrefix} failed: date misspelled [-> YYYY-MM-DD]${msgSuffix}`);\n }\n const dateParts = dateString.split('-');\n if (dateParts.length !== 3) {\n throw new Error(`${msgPrefix} failed: date misspelled [${date}: ${dateString}]${msgSuffix}`);\n }\n newDate[`${date}`] = new Date(dateParts[0], dateParts[1] - 1, dateParts[2]);\n });\n const times = ['startTime', 'endTime'];\n times.forEach((time) => {\n const timeString = selectedDate[`${time}`];\n if (timeString) {\n if (timeString.length !== 5) {\n throw new Error(`${msgPrefix} failed: time misspelled [-> HH:MM]${msgSuffix}`);\n }\n const timeParts = timeString.split(':');\n if (timeParts.length !== 2 || timeParts[0] > 23 || timeParts[1] > 59) {\n throw new Error(`${msgPrefix} failed: time misspelled [${time}: ${timeString}]${msgSuffix}`);\n }\n const dateKey = time === 'startTime' ? 'startDate' : 'endDate';\n newDate[`${dateKey}`] = new Date(newDate[`${dateKey}`].getTime() + parseInt(timeParts[0], 10) * 3600000 + parseInt(timeParts[1], 10) * 60000);\n }\n });\n if ((selectedDate.startTime && !selectedDate.endTime) || (!selectedDate.startTime && selectedDate.endTime)) {\n throw new Error(`${msgPrefix} failed: if you set a starting or end time, the respective other one also needs to be defined${msgSuffix}`);\n }\n if (newDate.endDate < newDate.startDate) {\n throw new Error(`${msgPrefix} failed: end date before start date${msgSuffix}`);\n }\n return true;\n}\nasync function atcb_validate_rrule(data, msgPrefix) {\n if (data.recurrence && data.recurrence !== '' && data.dates.length > 1) {\n throw new Error(msgPrefix + ' failed: RRULE and multi-date set at the same time');\n }\n if (data.recurrence && data.recurrence !== '' && !/^RRULE:[\\w=;,:+-/\\\\]+$/i.test(data.recurrence)) {\n throw new Error(msgPrefix + ' failed: RRULE data misspelled');\n }\n return true;\n}\nasync function atcb_validate_rrule_simplyfied(data, msgPrefix) {\n if (data.recurrence_interval && (data.recurrence_interval < 1 || data.recurrence_interval % 1 !== 0)) {\n throw new Error(msgPrefix + ' failed: recurrence data (interval) misspelled');\n }\n if (data.recurrence_until && data.recurrence_until !== '' && !/^(\\d|-|:)+$/i.test(data.recurrence_until)) {\n throw new Error(msgPrefix + ' failed: recurrence data (until) misspelled');\n }\n if (data.recurrence_count && (data.recurrence_count < 1 || data.recurrence_count % 1 !== 0)) {\n throw new Error(msgPrefix + ' failed: recurrence data (interval) misspelled');\n }\n if (data.recurrence_byMonth && data.recurrence_byMonth !== '' && !/^(\\d|,)+$/.test(data.recurrence_byMonth)) {\n throw new Error(msgPrefix + ' failed: recurrence data (byMonth) misspelled');\n }\n if (data.recurrence_byMonthDay && data.recurrence_byMonthDay !== '' && !/^(\\d|,)+$/.test(data.recurrence_byMonthDay)) {\n throw new Error(msgPrefix + ' failed: recurrence data (byMonthDay) misspelled');\n }\n if (data.recurrence_byDay && data.recurrence_byDay !== '' && !/^(\\d|-|MO|TU|WE|TH|FR|SA|SU|,)+$/im.test(data.recurrence_byDay)) {\n throw new Error(msgPrefix + ' failed: recurrence data (byDay) misspelled');\n }\n if (data.recurrence_weekstart && data.recurrence_weekstart !== '' && !/^(MO|TU|WE|TH|FR|SA|SU)$/im.test(data.recurrence_weekstart)) {\n throw new Error(msgPrefix + ' failed: recurrence data (weekstart) misspelled');\n }\n return true;\n}\n\n\nfunction atcb_toggle(host, action, data = '', button = null, keyboardTrigger = false, generatedButton = false) {\n if (action == 'open') {\n atcb_open(host, data, button, keyboardTrigger, generatedButton);\n } else if (action == 'close' || button.classList.contains('atcb-active') || host.querySelector('.atcb-active-modal')) {\n atcb_close(host, keyboardTrigger);\n } else {\n atcb_open(host, data, button, keyboardTrigger, generatedButton);\n }\n}\nasync function atcb_open(host, data, button = null, keyboardTrigger = false, generatedButton = false) {\n if (host.querySelector('.atcb-list') || host.querySelector('.atcb-modal')) return;\n atcb_log_event('openList', data.identifier, data.identifier);\n atcbStates['active'] = data.identifier;\n const list = atcb_generate_dropdown_list(host, data);\n const listWrapper = document.createElement('div');\n listWrapper.classList.add('atcb-list-wrapper');\n listWrapper.setAttribute('part', 'atcb-list-wrapper');\n if (data.hideTextLabelList) {\n listWrapper.classList.add('atcb-no-text');\n }\n if (button) {\n button.classList.add('atcb-active');\n button.setAttribute('aria-expanded', true);\n if (data.listStyle === 'modal') {\n button.classList.add('atcb-modal-style');\n list.classList.add('atcb-modal');\n } else {\n listWrapper.append(list);\n listWrapper.classList.add('atcb-dropdown');\n if (data.listStyle === 'overlay') {\n listWrapper.classList.add('atcb-dropoverlay');\n }\n }\n if (generatedButton) {\n list.classList.add('atcb-generated-button'); \n }\n } else {\n list.classList.add('atcb-modal');\n }\n const bgOverlay = atcb_generate_bg_overlay(host, data.trigger, data.listStyle === 'modal', !data.hideBackground);\n if (data.listStyle === 'modal') {\n const modalHost = await atcb_generate_modal_host(host, data);\n modalHost.querySelector('.atcb-modal-host-initialized').append(bgOverlay);\n bgOverlay.append(list);\n if (!data.hideBranding) {\n atcb_create_atcbl(modalHost, false);\n }\n atcb_set_sizes(list, data.sizes);\n atcb_manage_body_scroll(modalHost);\n atcb_set_fullsize(bgOverlay);\n } else {\n if (data.forceOverlay) {\n host = await atcb_generate_overlay_dom(host, data);\n button = host.querySelector('button.atcb-button');\n }\n host.querySelector('.atcb-initialized').append(listWrapper);\n listWrapper.append(list);\n if (data.buttonStyle != 'default') {\n listWrapper.classList.add('atcb-style-' + data.buttonStyle);\n }\n if (!data.hideBranding) {\n atcb_create_atcbl(host);\n }\n host.append(bgOverlay);\n atcb_set_sizes(list, data.sizes);\n listWrapper.style.display = 'none';\n setTimeout(function () {\n listWrapper.style.display = 'block';\n if (data.listStyle === 'dropdown-static') {\n atcb_position_list(host, button, listWrapper, true);\n } else if (data.listStyle === 'dropup-static') {\n atcb_position_list(host, button, listWrapper, false, true);\n } else {\n atcb_position_list(host, button, listWrapper);\n }\n }, 5);\n atcb_set_fullsize(bgOverlay);\n }\n const focusEl = (function () {\n const hostEl = host.querySelector('.atcb-list-item');\n if (hostEl) {\n return hostEl;\n }\n const modalHost = document.getElementById(data.identifier + '-modal-host');\n if (!modalHost) {\n return;\n }\n return modalHost.shadowRoot.querySelector('.atcb-list-item');\n })();\n if (focusEl) {\n if (keyboardTrigger) {\n focusEl.focus();\n } else {\n focusEl.focus({ preventScroll: true });\n focusEl.blur();\n }\n }\n}\nfunction atcb_close(host, keyboardTrigger = false) {\n const existingModalHost = document.getElementById(host.host.getAttribute('atcb-button-id') + '-modal-host');\n const allModals = (function () {\n if (!existingModalHost || existingModalHost.length === 0) {\n return [];\n }\n return existingModalHost.shadowRoot.querySelectorAll('.atcb-modal[data-modal-nr]');\n })();\n if (allModals.length > 1) {\n existingModalHost.shadowRoot.querySelectorAll('.atcb-modal[data-modal-nr=\"' + allModals.length + '\"]')[0].remove();\n const nextModal = existingModalHost.shadowRoot.querySelectorAll('.atcb-modal[data-modal-nr=\"' + (allModals.length - 1) + '\"]')[0];\n nextModal.style.display = 'block';\n let focusEl = nextModal;\n const availableButtons = nextModal.getElementsByTagName('button');\n if (availableButtons.length > 0) {\n focusEl = availableButtons[0];\n }\n focusEl.focus();\n if (!keyboardTrigger) {\n focusEl.blur();\n }\n } else {\n const newFocusEl = (function () {\n const hostEl = host.querySelector('.atcb-active, .atcb-active-modal');\n if (hostEl) {\n return hostEl;\n }\n return document.querySelector('.atcb-active, .atcb-active-modal');\n })();\n if (newFocusEl) {\n newFocusEl.focus({ preventScroll: true });\n if (!keyboardTrigger) {\n newFocusEl.blur();\n }\n }\n Array.from(host.querySelectorAll('.atcb-active')).forEach((button) => {\n button.classList.remove('atcb-active');\n button.setAttribute('aria-expanded', false);\n });\n Array.from(host.querySelectorAll('.atcb-active-modal')).forEach((modal) => {\n modal.classList.remove('atcb-active-modal');\n });\n Array.from(document.querySelectorAll('.atcb-active')).forEach((button) => {\n button.classList.remove('atcb-active');\n button.setAttribute('aria-expanded', false);\n });\n Array.from(document.querySelectorAll('.atcb-active-modal')).forEach((modal) => {\n modal.classList.remove('atcb-active-modal');\n });\n if (existingModalHost) {\n existingModalHost.remove();\n }\n document.body.classList.remove('atcb-modal-no-scroll');\n document.documentElement.classList.remove('atcb-modal-no-scroll');\n Array.from(host.querySelectorAll('.atcb-list-wrapper'))\n .concat(Array.from(host.querySelectorAll('.atcb-list')))\n .concat(Array.from(host.querySelectorAll('#atcb-reference')))\n .concat(Array.from(host.querySelectorAll('#atcb-bgoverlay')))\n .forEach((el) => el.remove());\n const hiddenButton = document.querySelector('.atcb-shadow-hide');\n if (hiddenButton) {\n hiddenButton.shadowRoot.querySelector('.atcb-initialized').style.opacity = '1';\n hiddenButton.classList.remove('atcb-shadow-hide');\n window.removeEventListener('scroll', atcb_position_shadow_button_listener);\n window.removeEventListener('resize', atcb_position_shadow_button_listener);\n }\n atcbStates['active'] = '';\n }\n}\n\n\nasync function atcb_generate_ty(hostEl, dataObj) {\n let host = hostEl;\n let data = dataObj;\n if (!hostEl.host) {\n host = host.shadowRoot;\n data = await atcb_decorate_data(data);\n }\n const copyIcon =\n '';\n const copiedIcon =\n '';\n const mailIcon =\n '';\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n if ((!data.proKey || data.proKey === '') && !window.location.hostname.match(/^(localhost|.*\\.add-to-calendar-pro.com)$/)) {\n return;\n }\n const tyHost = await atcb_generate_modal_host(host, data);\n atcb_set_fullsize(tyHost.querySelector('.atcb-modal-host-initialized'));\n const tyData = data.ty;\n if ((tyData.type === 'link' || tyData.type === 'form') && (!tyData.url || tyData.url === '' || !tyData.url.startsWith('http'))) {\n tyData.type = 'text';\n }\n if (!tyData.headline || tyData.headline === '') {\n tyData.headline = atcb_translate_hook('thankyou', data) + '!';\n }\n let tyContent = '

' + atcb_translate_hook('form.success', data) + '

';\n if (tyData.text && tyData.text !== '') {\n tyContent += atcb_rewrite_html_elements(tyData.text);\n }\n if (tyData.type === 'share') {\n tyContent += `

\n \n ${mailIcon}\n ${atcb_translate_hook('label.share.email', data)}\n \n \n

`;\n }\n let header = {};\n if (tyData.type === 'form') {\n const label = (function () {\n if (tyData.button_label && tyData.button_label !== '') {\n return tyData.button_label;\n }\n return atcb_translate_hook('submit', data);\n })();\n tyContent += '
';\n if (tyData.fields && tyData.fields.length > 0) {\n const customForm = atcb_build_form(tyData.fields, data.identifier + '-ty');\n tyData.fields = customForm.fields;\n tyContent += customForm.html;\n }\n tyContent += '

';\n tyContent += '

...

';\n tyContent += '
';\n }\n if (tyData.type === 'link') {\n const label = (function () {\n if (tyData.button_label && tyData.button_label !== '') {\n return tyData.button_label;\n }\n return atcb_translate_hook('continue', data);\n })();\n tyContent += '

' + label + '

';\n }\n tyContent += '
';\n await atcb_create_modal(tyHost, data, 'checkmark', tyData.headline, tyContent);\n if (tyData.type === 'share') {\n const copyBtn = tyHost.getElementById('atcb-ty-share-copy');\n copyBtn.addEventListener('click', function () {\n atcb_copy_to_clipboard(tyData.url);\n copyBtn.innerHTML = copiedIcon + atcb_translate_hook('label.share.copied', data) + '!';\n setTimeout(function () {\n copyBtn.innerHTML = copyIcon + atcb_translate_hook('label.share.copy', data);\n }, 3000);\n });\n copyBtn.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n copyBtn.click();\n }\n });\n }\n if (tyData.type === 'form') {\n const tyForm = tyHost.getElementById(data.identifier + '-ty-form');\n const errorMsg = tyHost.getElementById('submit-error');\n const tyFormSubmit = tyHost.getElementById('pro-form-submit');\n const tyFormSubmitting = tyHost.getElementById('pro-form-submitting');\n tyFormSubmit.addEventListener('click', async function (e) {\n e.preventDefault();\n tyFormSubmitting.style.display = 'block';\n tyFormSubmit.style.display = 'none';\n let valid = atcb_validate_form(tyHost, tyData.fields);\n if (!valid) {\n errorMsg.textContent = atcb_translate_hook('form.error.required', data) + '.';\n }\n if (valid) {\n const bodyData = [];\n let skipRadio = false;\n tyData.fields.forEach((field) => {\n if (field.type !== 'label') {\n if (field.type === 'radio') {\n if (!skipRadio) {\n const radioGroup = tyHost.querySelectorAll('[name=\"' + field.name + '\"]');\n radioGroup.forEach(function (radio) {\n if (radio.checked) {\n bodyData.push({ name: field.name, value: radio.value });\n }\n });\n skipRadio = true;\n }\n } else if (field.type === 'checkbox') {\n bodyData.push({ name: field.name, value: tyHost.getElementById(field.fieldId).checked });\n skipRadio = false;\n } else {\n bodyData.push({ name: field.name, value: tyHost.getElementById(field.fieldId).value });\n skipRadio = false;\n }\n }\n });\n const request = await sendPostRequest(tyData.url, bodyData, header);\n if (request === true) {\n tyHost.getElementById('ty-success-msg').style.display = 'block';\n tyHost.getElementById('ty-content').style.display = 'none';\n return;\n }\n errorMsg.textContent = atcb_translate_hook('form.error.sending', data) + '.';\n }\n tyForm.classList.add('form-error');\n tyFormSubmitting.style.display = 'none';\n tyFormSubmit.style.display = 'block';\n });\n tyFormSubmit.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n tyFormSubmit.click();\n }\n });\n }\n}\nasync function atcb_generate_rsvp_form(host, data, hostEl, keyboardTrigger = false) {\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n const rsvpData = data.rsvp;\n let hiddenContent = '';\n let rsvpContent = '
';\n if (!rsvpData.headline || rsvpData.headline === '') {\n rsvpData.headline = atcb_translate_hook('label.rsvp', data);\n }\n const sentStatus = localStorage.getItem(data.proKey + '-rsvp-sent') || false;\n if (sentStatus) {\n rsvpContent += '
';\n rsvpContent += '

' + atcb_translate_hook('form.success.already', data) + '

';\n if (!data.hideButton) rsvpContent += '
';\n if (data.inlineRsvp) rsvpContent += '';\n rsvpContent += '
';\n }\n rsvpContent += '

' + atcb_translate_hook('form.success.sent', data) + '

' + atcb_translate_hook('form.success.email', data) + '

' + atcb_translate_hook('form.success.doi', data) + '

';\n rsvpContent += '
' + atcb_translate_hook('form.success.demo', data) + '
';\n rsvpContent += '
';\n if (rsvpData.text && rsvpData.text !== '') {\n rsvpContent += atcb_rewrite_html_elements(rsvpData.text);\n }\n rsvpContent += '
';\n const staticID = data.proKey || 'demo-rsvp';\n if (rsvpData.initial_confirmation === false) {\n rsvpContent += '
';\n rsvpContent += '

' + atcb_translate_hook('form.status', data) + '

';\n rsvpContent +=\n '
';\n if (rsvpData.maybe_option === true) {\n rsvpContent +=\n '
';\n }\n rsvpContent +=\n '
';\n rsvpContent += '
';\n } else {\n hiddenContent += '';\n }\n const maxAmount = rsvpData.maxpp || 1;\n if (maxAmount === 1) {\n hiddenContent += '';\n } else {\n rsvpContent += '
';\n rsvpContent += '
';\n }\n const attendee = (function () {\n if (data.attendee && data.attendee !== '') {\n const attendeeParts = data.attendee.split('|');\n if (attendeeParts.length > 1) {\n return attendeeParts[1];\n }\n return attendeeParts[0];\n }\n return '';\n })();\n if (attendee !== '') {\n hiddenContent += '';\n } else {\n rsvpContent += '
';\n rsvpContent += '
';\n }\n if (rsvpData.fields && rsvpData.fields.length > 0) {\n const customForm = atcb_build_form(rsvpData.fields, data.identifier + '-rsvp', data.disabled);\n rsvpData.fields = customForm.fields;\n rsvpContent += customForm.html;\n }\n rsvpContent += hiddenContent;\n rsvpContent += '

';\n rsvpContent +=\n '

...

';\n rsvpContent += '
';\n rsvpContent += '
';\n let rsvpHost = null;\n if (!data.inlineRsvp) {\n rsvpHost = await atcb_generate_modal_host(host, data);\n atcb_set_fullsize(rsvpHost.querySelector('.atcb-modal-host-initialized'));\n await atcb_create_modal(\n rsvpHost,\n data,\n undefined,\n rsvpData.headline,\n rsvpContent,\n [\n { type: 'none', label: atcb_translate_hook('label.rsvp.restart', data), small: true, primary: true, id: 'pro-form-restart' },\n { type: 'close', label: atcb_translate_hook('close', data), small: true, id: 'modal-btn-close' },\n { type: 'close', label: atcb_translate_hook('cancel', data), small: true, id: 'modal-btn-cancel' },\n ],\n [],\n keyboardTrigger,\n {},\n false,\n );\n } else {\n rsvpHost = host;\n const rsvpInlineWrapper = document.createElement('div');\n rsvpInlineWrapper.classList.add('atcb-modal-box', 'rsvp-inline-wrapper');\n rsvpInlineWrapper.setAttribute('part', 'atcb-modal-box');\n if (data.rtl) {\n rsvpInlineWrapper.classList.add('atcb-rtl');\n }\n hostEl.append(rsvpInlineWrapper);\n const rsvpInlineHeadline = document.createElement('div');\n rsvpInlineHeadline.classList.add('atcb-modal-headline');\n rsvpInlineWrapper.append(rsvpInlineHeadline);\n rsvpInlineHeadline.innerHTML = rsvpData.headline;\n const rsvpInlineContent = document.createElement('div');\n rsvpInlineContent.classList.add('atcb-modal-content');\n rsvpInlineWrapper.append(rsvpInlineContent);\n if (!data.hideBranding) {\n const atcbL = atcb_create_atcbl(rsvpHost, false, true);\n rsvpInlineWrapper.append(atcbL);\n }\n if (rsvpData.expired) {\n rsvpInlineContent.innerHTML = '

' + atcb_translate_hook('label.rsvp.expired', data) + '

';\n return;\n } else if (rsvpData.bookedOut) {\n rsvpInlineContent.innerHTML = '

' + atcb_translate_hook('label.rsvp.bookedout', data) + '

';\n return;\n } else {\n rsvpInlineContent.innerHTML = rsvpContent;\n }\n }\n const closeBtn = rsvpHost.getElementById('modal-btn-close');\n const cancelBtn = rsvpHost.getElementById('modal-btn-cancel');\n const restartBtn = rsvpHost.getElementById('pro-form-restart');\n atcb_log_event('openRSVP', data.identifier, data.identifier);\n if (data.debug) {\n console.log('RSVP form for \"' + data.identifier + '\" created');\n }\n if (sentStatus) {\n if (cancelBtn) cancelBtn.style.display = 'none';\n const atcbHost = rsvpHost.getElementById('rsvp-atcb');\n if (atcbHost && !data.hideButton) {\n const atcbData = JSON.parse(JSON.stringify(data));\n atcbData.hideTextLabelButton = true;\n atcbData.hideIconButton = false;\n atcbData.buttonsList = true;\n atcb_generate_button(host, atcbHost, atcbData);\n }\n } else {\n if (closeBtn) closeBtn.style.display = 'none';\n if (restartBtn) restartBtn.style.display = 'none';\n }\n const rsvpForm = rsvpHost.getElementById(data.identifier + '-rsvp-form');\n const errorMsg = rsvpHost.getElementById('submit-error');\n const rsvpFormSubmit = rsvpHost.getElementById('pro-form-submit');\n const rsvpFormSubmitting = rsvpHost.getElementById('pro-form-submitting');\n const rsvpRestart = rsvpHost.getElementById('pro-form-restart');\n if (rsvpFormSubmit) {\n rsvpFormSubmit.addEventListener('click', async function (e) {\n e.preventDefault();\n rsvpFormSubmitting.style.display = 'block';\n rsvpFormSubmit.style.display = 'none';\n const staticFields = [\n { type: 'email', name: data.proKey + '-email', fieldId: data.identifier + '-rsvp-email', required: true },\n { type: 'number', name: data.proKey + '-amount', fieldId: data.identifier + '-rsvp-amount', required: true },\n ];\n let valid = atcb_validate_form(rsvpHost, [...staticFields, ...rsvpData.fields]);\n const amountEl = rsvpHost.getElementById(data.identifier + '-rsvp-amount');\n const amount = parseInt(amountEl.value) || 1;\n if (rsvpData.maxpp && rsvpData.maxpp > 0 && amount > rsvpData.maxpp) {\n amountEl.classList.add('error');\n valid = false;\n }\n if (!valid) {\n errorMsg.textContent = atcb_translate_hook('form.error.required', data) + '.';\n }\n if (valid) {\n if (!data.proKey || data.proKey === '') {\n rsvpHost.getElementById('rsvp-success-msg-demo').style.display = 'block';\n rsvpHost.getElementById('rsvp-content').style.display = 'none';\n atcb_log_event('successRSVP', data.identifier, data.identifier);\n if (cancelBtn) cancelBtn.style.display = 'none';\n if (closeBtn) closeBtn.style.display = 'block';\n return;\n }\n const bodyData = [];\n bodyData.push({ name: 'prokey', value: data.proKey });\n bodyData.push({ name: 'language', value: data.language });\n const statusValEl = rsvpHost.querySelector('[name=\"' + data.proKey + '-status\"]:checked');\n bodyData.push({ name: 'status', value: statusValEl ? statusValEl.value : 'confirmed' });\n bodyData.push({ name: 'amount', value: amount });\n bodyData.push({ name: 'email', value: rsvpHost.getElementById(data.identifier + '-rsvp-email').value });\n if (data.dev) bodyData.push({ name: 'dev', value: true });\n const bodyData_payload = {};\n let skipRadio = false;\n rsvpData.fields.forEach((field) => {\n if (field.type !== 'label') {\n if (field.type === 'radio') {\n if (!skipRadio) {\n const radioGroup = rsvpHost.querySelectorAll('[name=\"' + field.name + '\"]');\n radioGroup.forEach(function (radio) {\n if (radio.checked) {\n bodyData_payload[field.name] = radio.value;\n }\n });\n skipRadio = true;\n }\n } else if (field.type === 'checkbox') {\n bodyData_payload[field.name] = rsvpHost.getElementById(field.fieldId).checked;\n skipRadio = false;\n } else {\n bodyData_payload[field.name] = rsvpHost.getElementById(field.fieldId).value;\n skipRadio = false;\n }\n }\n });\n if (Object.keys(bodyData_payload).length > 0) {\n bodyData.push({ name: 'payload', value: bodyData_payload });\n }\n const request = await sendPostRequest('https://api.add-to-calendar-pro.com/24586219-9910-41fe-9b59-df53de9db7af', bodyData, { rsvp: true });\n if (request === 'doi' || request === true) {\n rsvpHost.getElementById('rsvp-success-msg').style.display = 'block';\n if (request === 'doi') {\n rsvpHost.getElementById('rsvp-success-msg-doi').style.display = 'block';\n } else {\n rsvpHost.getElementById('rsvp-success-msg-email').style.display = 'block';\n }\n rsvpHost.getElementById('rsvp-content').style.display = 'none';\n if (cancelBtn) cancelBtn.style.display = 'none';\n if (closeBtn) closeBtn.style.display = 'block';\n atcb_log_event('successRSVP', data.identifier, data.identifier);\n localStorage.setItem(data.proKey + '-rsvp-sent', true);\n return;\n }\n if (request.error && request.error === 2) {\n errorMsg.textContent = atcb_translate_hook('form.error.email', data) + '.';\n } else if (request.error && request.error === 5) {\n errorMsg.textContent = atcb_translate_hook('label.rsvp.expired', data) + '.';\n } else if (request.error && request.error === 6) {\n if (amount > 1) {\n errorMsg.textContent = atcb_translate_hook('form.error.bookedoutmany', data) + '.';\n } else {\n errorMsg.textContent = atcb_translate_hook('label.rsvp.bookedout', data) + '.';\n }\n } else {\n errorMsg.textContent = atcb_translate_hook('form.error.sending', data) + '.';\n }\n }\n rsvpForm.classList.add('form-error');\n rsvpFormSubmitting.style.display = 'none';\n rsvpFormSubmit.style.display = 'block';\n });\n rsvpFormSubmit.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n rsvpFormSubmit.click();\n }\n });\n }\n if (rsvpRestart) {\n rsvpRestart.addEventListener('click', function (e) {\n e.preventDefault();\n rsvpHost.getElementById('rsvp-sent-content').style.display = 'none';\n rsvpHost.getElementById('rsvp-content').style.display = 'block';\n if (closeBtn) closeBtn.style.display = 'none';\n if (restartBtn) restartBtn.style.display = 'none';\n if (cancelBtn) cancelBtn.style.display = 'block';\n });\n rsvpRestart.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n rsvpRestart.click();\n }\n });\n }\n}\nasync function atcb_generate_rsvp_button(host, data) {\n const btnHostEl = host.querySelector('.atcb-initialized');\n const buttonTriggerWrapper = document.createElement('div');\n buttonTriggerWrapper.classList.add('atcb-button-wrapper');\n if (data.rtl) {\n buttonTriggerWrapper.classList.add('atcb-rtl');\n }\n btnHostEl.append(buttonTriggerWrapper);\n atcb_set_sizes(buttonTriggerWrapper, data.sizes);\n const buttonTrigger = document.createElement('button');\n buttonTrigger.classList.add('atcb-button', 'atcb-click', 'atcb-single');\n if (data.disabled) {\n buttonTrigger.setAttribute('disabled', true);\n }\n if (data.hideTextLabelButton) {\n buttonTrigger.classList.add('atcb-no-text');\n }\n buttonTrigger.type = 'button';\n buttonTrigger.setAttribute('aria-expanded', false); \n buttonTriggerWrapper.append(buttonTrigger);\n const label = (function () {\n if (data.rsvp.expired) {\n return atcb_translate_hook('label.rsvp.expired', data);\n }\n if (data.rsvp.bookedOut) {\n return atcb_translate_hook('label.rsvp.bookedout', data);\n }\n return atcb_translate_hook('label.rsvp', data);\n })();\n atcb_generate_label(host, data, buttonTrigger, 'rsvp', !data.hideIconButton, label, true);\n if (data.debug) {\n console.log('Add to Calendar RSVP Button \"' + data.identifier + '\" created');\n }\n return true;\n}\nasync function atcb_check_booked_out(data) {\n if (data.rsvp && data.rsvp.max && data.proKey && data.proKey !== '') {\n try {\n const response = await fetch('https://api.add-to-calendar-pro.com/dffb8bbd-ee5e-4a4f-a7ea-503af98ca468?prokey=' + data.proKey + (data.dev ? '&dev=true' : ''), {\n method: 'GET',\n });\n if (!response.ok) {\n throw new Error('Network response was not ok');\n }\n const responseJson = await response.json();\n if (parseInt(responseJson.total) >= data.rsvp.max) {\n return true;\n }\n } catch (error) {\n console.error('Error:', error);\n }\n }\n return false;\n}\nfunction atcb_build_form(fields, identifier = '', disabled = false) {\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n let form = '';\n let hiddenForm = '';\n let n = 0;\n let prevType = '';\n let skipped = false;\n for (let i = 1; i <= fields.length; i++) {\n skipped = false;\n const field = fields[i - 1];\n if (field.type !== 'label' && (!field.name || field.name === '')) {\n skipped = true;\n continue;\n }\n if ((prevType === 'radio' && field.type !== 'radio') || prevType !== 'radio') {\n n = i;\n }\n fields[i - 1].fieldId = identifier + '-' + i;\n const fieldValue = field.type === 'radio' ? field.placeholder || '' : field.default || '';\n const fieldLabel = field.label || '';\n const fieldPlaceholder = field.type === 'radio' ? '' : field.placeholder || '';\n let fieldHtml = '';\n if (prevType !== 'hidden' && i === n && i !== 1 && !skipped) {\n fieldHtml += '
';\n }\n if (field.type !== 'hidden' && i === n) {\n fieldHtml += '
';\n }\n if (field.type === 'label') {\n fieldHtml += '

' + fieldLabel + '

';\n } else {\n if (field.type === 'radio') {\n fieldHtml += '
';\n }\n if (field.type === 'hidden') {\n hiddenForm += '';\n } else {\n fieldHtml += atcb_create_field_html(field.type, field.name, fieldLabel, field.fieldId, field.required, fieldValue, field.default, fieldPlaceholder, disabled);\n }\n if (field.type === 'radio') {\n fieldHtml += '
';\n }\n }\n form += fieldHtml;\n prevType = field.type;\n }\n if (prevType !== 'hidden') {\n form += '
';\n }\n form += hiddenForm;\n return { html: form, fields: fields };\n}\nfunction atcb_create_field_html(type, name, fieldLabel, fieldId, required = false, fieldValue, defaultVal = null, fieldPlaceholder = '', disabled = false) {\n let fieldHtml = '';\n if ((type === 'text' || type === 'number') && (fieldLabel !== '' || required)) {\n fieldHtml += '';\n }\n fieldHtml +=\n '';\n if ((type === 'checkbox' || type === 'radio') && (fieldLabel !== '' || required)) {\n fieldHtml += '';\n }\n return fieldHtml;\n}\nfunction atcb_validate_form(host, fields) {\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n let state = true;\n fields.forEach(function (field) {\n if (field.type !== 'label' && field.type !== 'radio') {\n const input = host.getElementById(field.fieldId);\n if (field.type !== 'checkbox') {\n input.value = atcb_secure_content(input.value.trim());\n if (field.type === 'number') {\n input.value = input.value.replace(/\\D/g, '');\n }\n if (field.type === 'email' && input.value !== '' && !atcb_validEmail(input.value)) {\n input.classList.add('error');\n state = false;\n return;\n }\n if (field.required && input.value === '') {\n input.classList.add('error');\n state = false;\n return;\n } else {\n input.classList.remove('error');\n }\n } else {\n if (field.required && input.checked === false) {\n input.classList.add('error');\n state = false;\n return;\n } else {\n input.classList.remove('error');\n }\n }\n }\n if (field.type === 'radio') {\n const radioGroup = host.querySelectorAll('[name=\"' + field.name + '\"]');\n let checked = false;\n radioGroup.forEach(function (radio) {\n if (radio.checked) {\n checked = true;\n }\n });\n if (checked === false) {\n radioGroup[0].classList.add('error');\n state = false;\n return;\n } else {\n radioGroup[0].classList.remove('error');\n }\n }\n });\n return state;\n}\nasync function sendPostRequest(url, fields, header = {}) {\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n let formData = new FormData();\n let data = {};\n let requestData = {};\n if (Object.keys(header).length === 0) {\n fields.forEach((field) => {\n formData.append(field.name, field.value);\n });\n requestData = { method: 'POST', body: formData };\n } else {\n header['Cache-Control'] = 'no-cache';\n header['Content-Type'] = 'application/json';\n header['Accept'] = '*/*';\n fields.forEach((field) => {\n data[field.name] = field.value;\n });\n requestData = { method: 'POST', headers: header, body: JSON.stringify(data) };\n }\n try {\n const response = await fetch(url, requestData);\n const responseJson = await response.json();\n if (!response.ok) {\n console.error('Network response was not ok');\n if (responseJson.error) return responseJson;\n return false;\n }\n if (responseJson.status && responseJson.status === 'doi') {\n return 'doi';\n }\n return true;\n } catch (error) {\n console.error('Error:', error);\n return false;\n }\n}\n\n\nfunction atcb_generate_label(host, data, parent, type, icon = false, text = '', oneOption = false) {\n switch (type) {\n case 'trigger':\n case 'rsvp':\n default:\n parent.id = data.identifier;\n if (!data.blockInteraction) {\n parent.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || (event.key === 'Alt' && event.key === 'Control' && event.code === 'Space')) {\n event.preventDefault();\n if (type === 'rsvp' && typeof atcb_generate_rsvp_form === 'function') {\n atcb_generate_rsvp_form(host, data, parent, true);\n } else {\n atcb_toggle(host, 'auto', data, parent, true, true);\n }\n }\n });\n parent.addEventListener(\n 'touchend',\n atcb_debounce_leading((event) => {\n event.preventDefault();\n if (type === 'rsvp' && typeof atcb_generate_rsvp_form === 'function') {\n atcb_generate_rsvp_form(host, data, parent);\n } else {\n atcb_toggle(host, 'auto', data, parent, false, true);\n }\n }),\n );\n if (data.trigger === 'click' || (type === 'rsvp' && typeof atcb_generate_rsvp_form === 'function')) {\n parent.addEventListener(\n 'mouseup',\n atcb_debounce_leading((event) => {\n event.preventDefault();\n if (type === 'rsvp' && typeof atcb_generate_rsvp_form === 'function') {\n atcb_generate_rsvp_form(host, data, parent);\n } else {\n atcb_toggle(host, 'auto', data, parent, false, true);\n }\n }),\n );\n } else {\n parent.addEventListener(\n 'mouseenter',\n atcb_debounce_leading((event) => {\n event.preventDefault();\n atcb_toggle(host, 'open', data, parent, false, true);\n }),\n );\n }\n }\n break;\n case 'apple':\n case 'google':\n case 'ical':\n case 'msteams':\n case 'ms365':\n case 'outlookcom':\n case 'yahoo':\n parent.id = data.identifier + '-' + type;\n if (!data.blockInteraction) {\n parent.addEventListener(\n 'click',\n atcb_debounce_leading(() => {\n if (oneOption) {\n host.querySelector('#' + parent.id)?.blur();\n atcb_log_event('openSingletonLink', parent.id, data.identifier);\n } else {\n atcb_toggle(host, 'close');\n atcb_log_event('openCalendarLink', parent.id, data.identifier);\n }\n atcb_generate_links(host, type, data);\n }),\n );\n parent.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n if (oneOption) {\n host.querySelector('#' + parent.id)?.blur();\n atcb_log_event('openSingletonLink', parent.id, data.identifier);\n } else {\n atcb_toggle(host, 'close');\n atcb_log_event('openCalendarLink', parent.id, data.identifier);\n }\n atcb_generate_links(host, type, data, 'all', true);\n }\n });\n }\n break;\n case 'close':\n parent.id = data.identifier + '-close';\n parent.addEventListener(\n 'click',\n atcb_debounce(() => {\n atcb_log_event('closeList', 'List Close Button', atcbStates['active']);\n atcb_toggle(host, 'close');\n }),\n );\n parent.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n atcb_log_event('closeList', 'List Close Button', atcbStates['active']);\n atcb_toggle(host, 'close', data, 'all', true);\n }\n });\n break;\n }\n atcb_generate_label_content(data, parent, type, icon, text, oneOption);\n}\nfunction atcb_generate_label_content(data, parent, type, icon, text, oneOption) {\n const defaultTriggerText = (function () {\n if (data.pastDateHandling != 'none') {\n let allOverdue = true;\n for (let i = 0; i < data.dates.length; i++) {\n if (!data.dates[`${i}`].overdue) {\n allOverdue = false;\n break;\n }\n }\n if (allOverdue) {\n return atcb_translate_hook('expired', data);\n }\n }\n return atcb_translate_hook('label.addtocalendar', data);\n })();\n if (text === '') {\n if (data.options.length === 1 || type === 'trigger') {\n text = defaultTriggerText;\n } else if (type === 'close') {\n text = atcb_translate_hook('close', data);\n } else {\n text = atcb_translate_hook(type, data);\n }\n }\n if (data.buttonStyle === 'date' && (type === 'trigger' || oneOption)) {\n return;\n }\n if (icon) {\n const iconEl = document.createElement('div');\n iconEl.classList.add('atcb-icon');\n iconEl.setAttribute('part', type === 'trigger' ? 'atcb-button-icon' : 'atcb-list-icon');\n iconEl.classList.add(`atcb-icon-${type}`);\n iconEl.innerHTML = atcbIcon[`${type}`];\n parent.append(iconEl);\n }\n if (((type === 'trigger' || oneOption) && !data.hideTextLabelButton) || (!oneOption && type !== 'trigger' && !data.hideTextLabelList)) {\n const textEl = document.createElement('span');\n textEl.classList.add('atcb-text');\n textEl.setAttribute('part', type === 'trigger' ? 'atcb-button-text' : 'atcb-list-text');\n textEl.textContent = text;\n parent.append(textEl);\n }\n parent.setAttribute('aria-label', text);\n}\nfunction atcb_generate_button(host, button, data) {\n const oneOption = (function () {\n if (data.options.length === 1 || (data.buttonsList && data.buttonStyle != 'date')) {\n return true;\n }\n return false;\n })();\n const optionSplit = oneOption ? data.options : ['default'];\n optionSplit.forEach(function (option, index) {\n const buttonTriggerWrapper = document.createElement('div');\n buttonTriggerWrapper.classList.add('atcb-button-wrapper');\n buttonTriggerWrapper.setAttribute('part', 'atcb-button-wrapper');\n if (data.rtl) {\n buttonTriggerWrapper.classList.add('atcb-rtl');\n }\n button.append(buttonTriggerWrapper);\n atcb_set_sizes(buttonTriggerWrapper, data.sizes);\n const buttonTrigger = document.createElement('button');\n buttonTrigger.classList.add('atcb-button');\n buttonTrigger.setAttribute('part', 'atcb-button');\n if (data.disabled) {\n buttonTrigger.setAttribute('disabled', true);\n }\n if (data.hideTextLabelButton) {\n buttonTrigger.classList.add('atcb-no-text');\n }\n if (data.trigger === 'click') {\n buttonTrigger.classList.add('atcb-click');\n }\n if (data.listStyle === 'overlay') {\n buttonTrigger.classList.add('atcb-dropoverlay');\n }\n buttonTrigger.type = 'button';\n buttonTrigger.setAttribute('aria-expanded', false); \n buttonTriggerWrapper.append(buttonTrigger);\n if (data.buttonStyle === 'date') {\n atcb_generate_date_button(data, buttonTrigger);\n }\n if (oneOption) {\n buttonTrigger.classList.add('atcb-single');\n const label = (function () {\n if (data.buttonsList && data.options.length > 1) {\n return atcb_translate_hook(`${data.options[`${index}`]}`, data);\n }\n return data.label;\n })();\n atcb_generate_label(host, data, buttonTrigger, option, !data.hideIconButton, label, true);\n buttonTrigger.id = data.identifier;\n if (data.buttonsList) {\n buttonTrigger.id = data.identifier + '-' + option;\n }\n } else {\n atcb_generate_label(host, data, buttonTrigger, 'trigger', !data.hideIconButton, data.label);\n const buttonDropdownAnchor = document.createElement('div');\n buttonDropdownAnchor.classList.add('atcb-dropdown-anchor');\n buttonTrigger.append(buttonDropdownAnchor);\n }\n if (!data.hideCheckmark && !data.hideTextLabelButton && !data.buttonsList && !data.disabled) {\n const btnCheck = document.createElement('div');\n btnCheck.classList.add('atcb-checkmark');\n btnCheck.innerHTML = atcbIcon['checkmark'];\n buttonTrigger.append(btnCheck);\n }\n });\n if (data.debug) {\n console.log('Add to Calendar Button \"' + data.identifier + '\" created');\n }\n}\nfunction atcb_generate_dropdown_list(host, data) {\n const optionsList = document.createElement('div');\n optionsList.classList.add('atcb-list');\n optionsList.setAttribute('part', 'atcb-list');\n optionsList.role = 'list';\n if (data.rtl) {\n optionsList.classList.add('atcb-rtl');\n }\n let listCount = 0;\n data.options.forEach(function (option) {\n const optionItem = document.createElement('div');\n optionItem.classList.add('atcb-list-item');\n optionItem.setAttribute('part', 'atcb-list-item');\n optionItem.role = 'link';\n optionItem.tabIndex = 0;\n listCount++;\n optionItem.dataset.optionNumber = listCount;\n optionsList.append(optionItem);\n atcb_generate_label(host, data, optionItem, option, !data.hideIconList);\n });\n if (data.listStyle === 'modal') {\n const optionItem = document.createElement('div');\n optionItem.classList.add('atcb-list-item', 'atcb-list-item-close');\n optionItem.setAttribute('part', 'atcb-list-item-close');\n optionItem.role = 'button';\n optionItem.tabIndex = 0;\n listCount++;\n optionItem.dataset.optionNumber = listCount;\n optionsList.append(optionItem);\n atcb_generate_label(host, data, optionItem, 'close', !data.hideIconList);\n }\n return optionsList;\n}\nfunction atcb_generate_bg_overlay(host, trigger = '', modal = false, darken = true, closable = true) {\n const bgOverlay = (function () {\n if (modal) {\n return document.createElement('dialog');\n }\n return document.createElement('div');\n })();\n if (modal) {\n bgOverlay.setAttribute('open', true);\n }\n bgOverlay.id = 'atcb-bgoverlay';\n if (!darken) {\n bgOverlay.classList.add('atcb-no-bg');\n }\n bgOverlay.role = 'button';\n bgOverlay.tabIndex = 0;\n if (closable) {\n bgOverlay.addEventListener(\n 'mouseup',\n atcb_debounce_leading((e) => {\n if (e.target !== e.currentTarget) return;\n atcb_log_event('closeList', 'Background Hit', atcbStates['active']);\n atcb_toggle(host, 'close');\n }),\n );\n let fingerMoved = false;\n bgOverlay.addEventListener(\n 'touchstart',\n atcb_debounce_leading(() => (fingerMoved = false)),\n { passive: true },\n );\n bgOverlay.addEventListener(\n 'touchmove',\n atcb_debounce_leading(() => (fingerMoved = true)),\n { passive: true },\n );\n bgOverlay.addEventListener(\n 'touchend',\n atcb_debounce((e) => {\n if (fingerMoved !== false || e.target !== e.currentTarget) return;\n atcb_log_event('closeList', 'Background Hit', atcbStates['active']);\n atcb_toggle(host, 'close');\n }),\n { passive: true },\n );\n if (trigger !== 'click') {\n bgOverlay.addEventListener(\n 'mousemove',\n atcb_debounce_leading((e) => {\n if (e.target !== e.currentTarget) return;\n atcb_log_event('closeList', 'Background Hit', atcbStates['active']);\n atcb_toggle(host, 'close');\n }),\n );\n } else {\n bgOverlay.classList.add('atcb-click');\n }\n }\n return bgOverlay;\n}\nfunction atcb_create_atcbl(host, atList = true, returnEl = false) {\n const atcbL = document.createElement('div');\n atcbL.id = 'atcb-reference';\n setTimeout(() => {\n const svg =\n '';\n atcbL.innerHTML = '' + svg + '';\n }, 500);\n if (atList) {\n host.querySelector('.atcb-initialized .atcb-list-wrapper').append(atcbL);\n } else if (returnEl) {\n return atcbL;\n } else {\n if (window.innerHeight > 1000 || window.innerWidth > 1000) {\n host.append(atcbL);\n atcbL.classList.add('fixed-ref');\n }\n }\n}\nasync function atcb_create_modal(mainHost, data, icon = '', headline, content = '', buttons = [], subEvents = [], keyboardTrigger = false, goto = {}, closable = true) {\n atcbStates['active'] = data.identifier;\n const modalHost = await atcb_generate_modal_host(mainHost, data, false);\n const bgOverlay = (function () {\n const el = modalHost.getElementById('atcb-bgoverlay');\n if (!el) {\n const newOverlay = atcb_generate_bg_overlay(mainHost, 'click', true, !data.hideBackground, closable);\n modalHost.querySelector('.atcb-modal-host-initialized').append(newOverlay);\n return newOverlay;\n }\n return el;\n })();\n const modalWrapper = document.createElement('div');\n modalWrapper.classList.add('atcb-modal');\n bgOverlay.append(modalWrapper);\n const modalCount = modalHost.querySelectorAll('.atcb-modal').length;\n modalWrapper.dataset.modalNr = modalCount;\n modalWrapper.tabIndex = 0;\n modalWrapper.focus({ preventScroll: true });\n modalWrapper.blur();\n const parentButton = (function () {\n const hostEl = mainHost.getElementById(data.identifier);\n if (hostEl) {\n return hostEl;\n }\n return document.getElementById(data.identifier);\n })();\n if (parentButton) {\n parentButton.classList.add('atcb-active-modal');\n }\n const modal = document.createElement('div');\n modal.classList.add('atcb-modal-box');\n modal.setAttribute('part', 'atcb-modal-box');\n if (data.rtl) {\n modal.classList.add('atcb-rtl');\n }\n modalWrapper.append(modal);\n atcb_set_sizes(modal, data.sizes);\n atcb_set_fullsize(bgOverlay);\n if (icon !== '' && !data.hideIconModal) {\n const modalIcon = document.createElement('div');\n modalIcon.classList.add('atcb-modal-icon');\n modalIcon.innerHTML = atcbIcon[`${icon}`];\n modal.append(modalIcon);\n }\n if (headline && headline !== '') {\n const modalHeadline = document.createElement('div');\n modalHeadline.classList.add('atcb-modal-headline');\n modalHeadline.textContent = headline;\n modal.append(modalHeadline);\n }\n if (content !== '') {\n const modalContent = document.createElement('div');\n modalContent.classList.add('atcb-modal-content');\n modalContent.innerHTML = content;\n modal.append(modalContent);\n }\n if (!data.hideBranding) {\n atcb_create_atcbl(modalHost, false);\n }\n if (subEvents.length > 1) {\n const modalsubEventsContentWrapper = document.createElement('div');\n modalsubEventsContentWrapper.classList.add('atcb-modal-content');\n modal.append(modalsubEventsContentWrapper);\n const modalsubEventsContent = document.createElement('div');\n modalsubEventsContent.classList.add('atcb-modal-content-subevents');\n modalsubEventsContentWrapper.append(modalsubEventsContent);\n for (let i = 1; i < subEvents.length; i++) {\n const modalSubEventButton = document.createElement('button');\n modalSubEventButton.type = 'button';\n modalSubEventButton.id = data.identifier + '-' + subEvents[0] + '-' + i;\n if (atcbStates[`${data.identifier}`][`${subEvents[0]}`][i - 1] > 0) {\n modalSubEventButton.classList.add('atcb-saved');\n }\n modalSubEventButton.classList.add('atcb-subevent-btn');\n modalsubEventsContent.append(modalSubEventButton);\n atcb_generate_date_button(data, modalSubEventButton, i);\n if (!data.dates[i - 1].overdue || data.pastDateHandling === 'none') {\n if (i === 1 && keyboardTrigger) {\n modalSubEventButton.focus();\n }\n modalSubEventButton.addEventListener(\n 'click',\n atcb_debounce(() => {\n atcb_log_event('openSubEventLink', modalSubEventButton.id, data.identifier);\n modalSubEventButton.blur();\n atcb_generate_links(mainHost, subEvents[0], data, subEvents[`${i}`], keyboardTrigger, true);\n }),\n );\n } else {\n modalSubEventButton.setAttribute('disabled', true);\n }\n }\n }\n if (buttons.length === 0) {\n buttons.push({ type: 'close', label: atcb_translate_hook('close', data), small: true });\n }\n const modalButtons = document.createElement('div');\n modalButtons.classList.add('atcb-modal-buttons');\n modal.append(modalButtons);\n buttons.forEach((button, index) => {\n let modalButton;\n if (button.href && button.href !== '') {\n modalButton = document.createElement('a');\n modalButton.setAttribute('target', atcbDefaultTarget);\n modalButton.setAttribute('href', button.href);\n modalButton.setAttribute('rel', 'noopener');\n } else {\n modalButton = document.createElement('button');\n modalButton.type = 'button';\n }\n if (button.id && button.id !== '') {\n modalButton.id = button.id;\n }\n modalButton.classList.add('atcb-modal-btn');\n if (button.primary) {\n modalButton.classList.add('atcb-modal-btn-primary');\n }\n if (button.small) {\n modalButton.classList.add('btn-small');\n }\n if (!button.label || button.label === '') {\n button.label = atcb_translate_hook('modal.button.default', data);\n }\n modalButton.textContent = button.label;\n modalButtons.append(modalButton);\n if (index === 0 && subEvents.length < 2 && keyboardTrigger) {\n modalButton.focus();\n }\n switch (button.type) {\n default:\n case 'close':\n modalButton.addEventListener(\n 'click',\n atcb_debounce(() => {\n atcb_log_event('closeList', 'Modal Close Button', atcbStates['active']);\n atcb_close(mainHost);\n }),\n );\n modalButton.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || (event.key === 'Alt' && event.key === 'Control' && event.code === 'Space')) {\n atcb_log_event('closeList', 'Modal Close Button', atcbStates['active']);\n atcb_toggle(mainHost, 'close', '', '', true);\n }\n });\n break;\n case 'yahoo2nd': // for yahoo subscribe modal, where we guide the user through the process\n modalButton.addEventListener(\n 'click',\n atcb_debounce(() => {\n atcb_close(mainHost);\n atcb_subscribe_yahoo_modal_switch(mainHost, data);\n }),\n );\n modalButton.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || (event.key === 'Alt' && event.key === 'Control' && event.code === 'Space')) {\n atcb_toggle(mainHost, 'close', '', '', true);\n atcb_subscribe_yahoo_modal_switch(mainHost, data, keyboardTrigger);\n }\n });\n break;\n case '2timeslink': // for the note that the user shall click the button twice\n modalButton.addEventListener(\n 'click',\n atcb_debounce(() => {\n atcb_close(mainHost);\n atcb_generate_links(mainHost, goto.type, data, goto.id, keyboardTrigger, false, true);\n }),\n );\n modalButton.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || (event.key === 'Alt' && event.key === 'Control' && event.code === 'Space')) {\n atcb_toggle(mainHost, 'close', '', '', true);\n atcb_generate_links(mainHost, goto.type, data, goto.id, keyboardTrigger, false, true);\n }\n });\n break;\n case 'none':\n break;\n }\n });\n if (modalCount > 1) {\n const prevModal = modalHost.querySelector('.atcb-modal[data-modal-nr=\"' + (modalCount - 1) + '\"]');\n prevModal.classList.add('atcb-hidden');\n }\n atcb_manage_body_scroll(modalHost, modalWrapper);\n}\nfunction atcb_subscribe_yahoo_modal_switch(host, data, keyboardTrigger) {\n atcb_set_fully_successful(host, data);\n atcb_generate_links(host, 'yahoo2nd', data, 'all', keyboardTrigger);\n}\nfunction atcb_generate_date_button(data, parent, subEvent = 'all') {\n if (subEvent != 'all') {\n subEvent = parseInt(subEvent) - 1;\n } else if (data.dates.length == 1) {\n subEvent = 0;\n }\n const fullTimeInfo = atcb_generate_timestring(data.dates, data.language, subEvent);\n const hoverText = (function () {\n if (subEvent != 'all' && data.dates[`${subEvent}`].status == 'CANCELLED') {\n return atcb_translate_hook('date.status.cancelled', data) + '
' + atcb_translate_hook('date.status.cancelled.cta', data);\n }\n if (data.pastDateHandling != 'none') {\n if ((subEvent == 'all' && data.allOverdue) || (subEvent != 'all' && data.dates[`${subEvent}`].overdue)) {\n return atcb_translate_hook('expired', data);\n }\n }\n if (data.label && data.label != '') {\n return data.label;\n }\n return '+ ' + atcb_translate_hook('label.addtocalendar', data);\n })();\n const cancelledInfo = (function () {\n if (subEvent != 'all' && data.dates[`${subEvent}`].status == 'CANCELLED') {\n return atcb_translate_hook('date.status.cancelled', data);\n }\n return '';\n })();\n const recurringString = (function () {\n if (fullTimeInfo.length == 0) {\n return atcb_translate_hook('recurring', data) + ' ⟳';\n }\n return '⟳';\n })();\n let subEventAll = false;\n if (subEvent === 'all') {\n subEvent = 0;\n subEventAll = true;\n }\n const startDate = new Date(atcb_generate_time(data.dates[`${subEvent}`]).start);\n const allDay = atcb_generate_time(data.dates[`${subEvent}`]).allday;\n const timeZone = data.dates[`${subEvent}`].timeZone;\n const btnLeft = document.createElement('div');\n btnLeft.classList.add('atcb-date-btn-left');\n parent.append(btnLeft);\n const btnDay = document.createElement('div');\n btnDay.classList.add('atcb-date-btn-day');\n btnLeft.append(btnDay);\n const btnMonth = document.createElement('div');\n btnMonth.classList.add('atcb-date-btn-month');\n btnDay.textContent = (function () {\n if (allDay) {\n return startDate.toLocaleString(data.language, { day: 'numeric' });\n }\n return startDate.toLocaleString(data.language, {\n day: 'numeric',\n timeZone: timeZone,\n });\n })();\n btnMonth.textContent = (function () {\n if (allDay) {\n return startDate.toLocaleString(data.language, { month: 'short' });\n }\n return startDate.toLocaleString(data.language, {\n month: 'short',\n timeZone: timeZone,\n });\n })();\n btnLeft.append(btnMonth);\n const btnRight = document.createElement('div');\n btnRight.classList.add('atcb-date-btn-right');\n parent.append(btnRight);\n const btnDetails = document.createElement('div');\n btnDetails.classList.add('atcb-date-btn-details');\n btnRight.append(btnDetails);\n const btnHeadline = document.createElement('div');\n btnHeadline.classList.add('atcb-date-btn-headline');\n if (data.dates.length > 1 && subEventAll) {\n btnHeadline.textContent = data.name; \n } else {\n btnHeadline.textContent = data.dates[`${subEvent}`].name;\n }\n btnDetails.append(btnHeadline);\n if ((data.dates[`${subEvent}`].location && data.dates[`${subEvent}`].location !== '' && !data.dates[`${subEvent}`].onlineEvent) || cancelledInfo !== '') {\n const btnLocation = document.createElement('div');\n btnLocation.classList.add('atcb-date-btn-content');\n btnDetails.append(btnLocation);\n if (cancelledInfo != '') {\n btnLocation.classList.add('atcb-date-btn-cancelled');\n btnLocation.textContent = cancelledInfo;\n } else {\n const btnLocationIcon = document.createElement('span');\n btnLocationIcon.classList.add('atcb-date-btn-content-icon');\n btnLocationIcon.innerHTML = atcbIcon['location'];\n btnLocation.append(btnLocationIcon);\n const btnLocationText = document.createElement('span');\n btnLocationText.classList.add('atcb-date-btn-content-location');\n btnLocationText.textContent = data.dates[`${subEvent}`].location;\n btnLocation.append(btnLocationText);\n }\n } else {\n if (data.dates[`${subEvent}`].description !== '' && fullTimeInfo.length === 0 && (!data.recurrence || data.recurrence === '')) {\n const btnDescription = document.createElement('div');\n btnDescription.classList.add('atcb-date-btn-content');\n btnDescription.textContent = data.dates[`${subEvent}`].descriptionHtmlFree;\n btnDescription.style.cssText = 'overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;';\n btnDetails.append(btnDescription);\n } else {\n btnHeadline.style.cssText = '-webkit-line-clamp: 2;';\n if (fullTimeInfo.length == 0 && (data.recurrence == null || data.recurrence == '')) {\n btnRight.style.alignSelf = 'center';\n btnHeadline.style.cssText = 'text-align: center; -webkit-line-clamp: 2;';\n }\n }\n }\n if (fullTimeInfo.length > 0 || (data.recurrence != null && data.recurrence != '')) {\n const btnDateTime = document.createElement('div');\n btnDateTime.classList.add('atcb-date-btn-content');\n btnDetails.append(btnDateTime);\n const btnDateTimeIcon = document.createElement('span');\n btnDateTimeIcon.classList.add('atcb-date-btn-content-icon');\n btnDateTimeIcon.innerHTML = atcbIcon['ical'];\n btnDateTime.append(btnDateTimeIcon);\n const btnDateTimeText = document.createElement('span');\n btnDateTimeText.classList.add('atcb-date-btn-content-text');\n btnDateTime.append(btnDateTimeText);\n fullTimeInfo.forEach(function (block) {\n const btnDateTimeTextBlock = document.createElement('span');\n btnDateTimeTextBlock.textContent = block;\n btnDateTimeText.append(btnDateTimeTextBlock);\n });\n if (data.recurrence != null && data.recurrence != '') {\n const recurSign = document.createElement('span');\n recurSign.innerHTML = recurringString;\n btnDateTimeText.append(recurSign);\n }\n }\n const btnHover = document.createElement('div');\n btnHover.classList.add('atcb-date-btn-hover');\n btnHover.innerHTML = hoverText;\n btnRight.append(btnHover);\n if (!data.hideCheckmark) {\n const btnCheck = document.createElement('div');\n btnCheck.classList.add('atcb-checkmark');\n btnCheck.innerHTML = atcbIcon['checkmark'];\n parent.append(btnCheck);\n }\n}\nasync function atcb_generate_modal_host(host, data, reset = true) {\n const existingModalHost = document.getElementById(data.identifier + '-modal-host');\n if (!reset && existingModalHost) {\n return existingModalHost.shadowRoot;\n }\n if (existingModalHost) {\n existingModalHost.remove();\n }\n let newModalHost = document.createElement('div');\n newModalHost.id = data.identifier + '-modal-host';\n if (host.host.hasAttribute('cspnonce')) {\n newModalHost.setAttribute('cspnonce', host.host.getAttribute('cspnonce'));\n }\n newModalHost.setAttribute('atcb-button-id', data.identifier);\n newModalHost.setAttribute('style', 'transform:translate3D(0, 0, 0);visibility:visible;opacity:1;position:fixed;top:0;left:0;width:100%;height:100%;display:flex;z-index:13999998;');\n document.body.append(newModalHost);\n newModalHost.attachShadow({ mode: 'open', delegateFocus: true });\n const elem = document.createElement('template');\n elem.innerHTML = '
';\n newModalHost.shadowRoot.append(elem.content.cloneNode(true));\n atcb_set_light_mode(newModalHost.shadowRoot, data);\n await atcb_load_css(newModalHost.shadowRoot, null, data);\n return newModalHost.shadowRoot;\n}\nasync function atcb_generate_overlay_dom(host, data) {\n const newHost = await atcb_generate_modal_host(host, data);\n atcb_set_fullsize(newHost.querySelector('.atcb-modal-host-initialized'));\n const nodes = Array.from(host.children);\n nodes.forEach((node) => {\n if (node.tagName != 'STYLE') {\n newHost.querySelector('.atcb-modal-host-initialized').append(node.cloneNode(true));\n }\n });\n newHost.querySelector('button.atcb-button').removeAttribute('id');\n host.host.classList.add('atcb-shadow-hide');\n host.querySelector('.atcb-initialized').style.opacity = '0';\n atcb_position_shadow_button(host, newHost);\n window.addEventListener('scroll', atcb_position_shadow_button_listener);\n window.addEventListener('resize', atcb_position_shadow_button_listener);\n return newHost.querySelector('.atcb-modal-host-initialized');\n}\n\n\nfunction atcb_generate_rich_data(data, parent) {\n const schemaEl = document.createElement('script');\n schemaEl.id = 'atcb-schema-' + data.identifier;\n if (parent.hasAttribute('cspnonce')) {\n const cspnonceRegex = /[`'\"()[\\]{}<>\\s]/;\n if (cspnonceRegex.test(parent.getAttribute('cspnonce'))) {\n throw new Error('cspnonce input contains forbidden characters.');\n }\n schemaEl.setAttribute('nonce', parent.getAttribute('cspnonce'));\n }\n schemaEl.type = 'application/ld+json';\n const id = data.name.replace(/\\s/g, '');\n const schemaContentMulti = [];\n if (data.dates.length > 1) {\n const parts = [];\n parts.push('\"@context\":\"https://schema.org\"');\n parts.push('\"@type\":\"EventSeries\"');\n parts.push('\"@id\":\"' + id + '\"');\n parts.push('\"name\":\"' + data.name + '\",');\n schemaContentMulti.push('{\\r\\n' + parts.join(',\\r\\n') + '\\r\\n');\n }\n const schemaContentFull = [];\n for (let i = 0; i < data.dates.length; i++) {\n const schemaContent = [];\n schemaContent.push('\"@context\":\"https://schema.org\"');\n schemaContent.push('\"@type\":\"Event\"');\n if (data.dates.length > 1) {\n schemaContent.push('\"@id\":\"' + id + '-' + (i + 1) + '\"');\n }\n if (data.dates[`${i}`].status === 'CANCELLED') {\n schemaContent.push('\"eventStatus\":\"https://schema.org/EventCancelled\"');\n }\n schemaContent.push('\"name\":\"' + data.dates[`${i}`].name + '\"');\n if (data.dates[`${i}`].descriptionHtmlFree) {\n schemaContent.push('\"description\":\"' + data.dates[`${i}`].descriptionHtmlFree + '\"');\n }\n const formattedDate = atcb_generate_time(data.dates[`${i}`], 'delimiters', 'general', true);\n schemaContent.push('\"startDate\":\"' + formattedDate.start + '\"');\n if (formattedDate.duration) {\n schemaContent.push('\"duration\":\"' + formattedDate.duration + '\"');\n }\n schemaContent.push(data.dates[`${i}`].onlineEvent ? '\"eventAttendanceMode\":\"https://schema.org/OnlineEventAttendanceMode\",\\r\\n\"location\": {\\r\\n\"@type\":\"VirtualLocation\",\\r\\n\"url\":\"' + data.dates[`${i}`].location + '\"\\r\\n}' : '\"location\":\"' + data.dates[`${i}`].location + '\"');\n if (data.recurrence && data.recurrence !== '') {\n schemaContent.push(...atcb_generate_rich_data_recurrence(data, formattedDate));\n } else {\n schemaContent.push('\"endDate\":\"' + formattedDate.end + '\"');\n }\n if (data.dates[`${i}`].organizer && data.dates[`${i}`].organizer !== '') {\n const organizerParts = data.dates[`${i}`].organizer.split('|');\n schemaContent.push('\"organizer\":{\\r\\n\"@type\":\"Person\",\\r\\n\"name\":\"' + organizerParts[0] + '\",\\r\\n\"email\":\"' + organizerParts[1] + '\"\\r\\n}');\n }\n const imageData = [];\n if (data.images) {\n if (Array.isArray(data.images)) {\n for (let i = 0; i < data.images.length; i++) {\n if (atcb_secure_url(data.images[`${i}`], data.debug) && data.images[`${i}`].startsWith('http')) {\n imageData.push('\"' + data.images[`${i}`] + '\"');\n }\n }\n }\n }\n if (imageData.length > 0) {\n schemaContent.push('\"image\":[\\r\\n' + imageData.join(',\\r\\n') + ']');\n }\n schemaContentFull.push('{\\r\\n' + schemaContent.join(',\\r\\n') + '\\r\\n}');\n }\n if (data.dates.length > 1) {\n schemaEl.textContent = schemaContentMulti.join(',\\r\\n') + '\"subEvents\":[\\r\\n' + schemaContentFull.join(',\\r\\n') + '\\r\\n]\\r\\n}';\n } else {\n schemaEl.textContent = schemaContentFull[0];\n }\n document.body.insertBefore(schemaEl, document.body.firstChild);\n}\nfunction atcb_generate_rich_data_recurrence(data, formattedDate) {\n const schemaRecurrenceContent = [];\n schemaRecurrenceContent.push('\"eventSchedule\": { \"@type\": \"Schedule\"');\n schemaRecurrenceContent.push('\"scheduleTimezone\":\"' + data.dates[0].timeZone + '\"');\n if (data.recurrence_interval && data.recurrence_interval !== '' && data.recurrence_frequency && data.recurrence_frequency !== '') {\n const repeatFrequency = 'P' + data.recurrence_interval + data.recurrence_frequency.substring(0, 1);\n schemaRecurrenceContent.push('\"repeatFrequency\":\"' + repeatFrequency + '\"');\n }\n if (data.recurrence_byDay && data.recurrence_byDay !== '') {\n const byDayString = (function () {\n if (/\\d/.test(data.recurrence_byDay)) {\n return '\"' + data.recurrence_byDay + '\"';\n } else {\n const byDays = data.recurrence_byDay.split(',');\n const helperMap = {\n MO: 'https://schema.org/Monday',\n TU: 'https://schema.org/Tuesday',\n WE: 'https://schema.org/Wednesday',\n TH: 'https://schema.org/Thursday',\n FR: 'https://schema.org/Friday',\n SA: 'https://schema.org/Saturday',\n SU: 'https://schema.org/Sunday',\n };\n const output = [];\n for (let i = 0; i < byDays.length; i++) {\n output.push('\"' + helperMap[byDays[`${i}`]] + '\"');\n }\n return '[' + output.join(',') + ']';\n }\n })();\n schemaRecurrenceContent.push('\"byDay\":' + byDayString);\n }\n if (data.recurrence_byMonth && data.recurrence_byMonth !== '') {\n const byMonthString = data.recurrence_byMonth.includes(',') ? '[' + data.recurrence_byMonth + ']' : data.recurrence_byMonth;\n schemaRecurrenceContent.push('\"byMonth\":\"' + byMonthString + '\"');\n }\n if (data.recurrence_byMonthDay && data.recurrence_byMonthDay !== '') {\n const byMonthDayString = data.recurrence_byMonthDay.includes(',') ? '[' + data.recurrence_byMonthDay + ']' : data.recurrence_byMonthDay;\n schemaRecurrenceContent.push('\"byMonthDay\":\"' + byMonthDayString + '\"');\n }\n if (data.recurrence_count && data.recurrence_count !== '') {\n schemaRecurrenceContent.push('\"repeatCount\":\"' + data.recurrence_count + '\"');\n }\n if (data.recurrence_until && data.recurrence_until !== '') {\n schemaRecurrenceContent.push('\"endDate\":\"' + data.recurrence_until + '\"');\n }\n if (data.startTime && data.startTime !== '' && data.endTime && data.endTime !== '') {\n schemaRecurrenceContent.push('\"startTime\":\"' + data.startTime + ':00\"');\n schemaRecurrenceContent.push('\"endTime\":\"' + data.endTime + ':00\"');\n schemaRecurrenceContent.push('\"duration\":\"' + formattedDate.duration + '\"');\n }\n schemaRecurrenceContent.push('\"startDate\":\"' + data.startDate + '\" }');\n return schemaRecurrenceContent;\n}\n\n\nfunction atcb_generate_links(host, type, data, subEvent = 'all', keyboardTrigger = false, multiDateModal = false, skipDoubleLink = false) {\n let linkType = type;\n if (type === 'apple') {\n linkType = 'ical';\n }\n if (subEvent !== 'all') {\n subEvent = parseInt(subEvent) - 1;\n } else if (data.dates.length == 1) {\n subEvent = 0;\n }\n if (data.subscribe) {\n atcb_generate_subscribe_links(host, linkType, data, keyboardTrigger);\n return;\n }\n if (subEvent !== 'all') {\n if (data.dates[`${subEvent}`].status === 'CANCELLED' && linkType !== 'ical') {\n atcb_create_modal(host, data, 'warning', atcb_translate_hook('date.status.cancelled', data), atcb_translate_hook('date.status.cancelled.cta', data), [], [], keyboardTrigger);\n } else {\n if (!skipDoubleLink) {\n }\n switch (linkType) {\n case 'ical': // also for apple (see above)\n atcb_generate_ical(host, data, subEvent, keyboardTrigger);\n break;\n case 'google':\n atcb_generate_google(data, data.dates[`${subEvent}`], subEvent);\n break;\n case 'msteams':\n atcb_generate_msteams(data, data.dates[`${subEvent}`], subEvent);\n break;\n case 'ms365':\n atcb_generate_microsoft(data, data.dates[`${subEvent}`], subEvent);\n break;\n case 'outlookcom':\n atcb_generate_microsoft(data, data.dates[`${subEvent}`], subEvent, 'outlook');\n break;\n case 'yahoo':\n atcb_generate_yahoo(data, data.dates[`${subEvent}`], subEvent);\n break;\n }\n }\n const modalHost = document.getElementById(data.identifier + '-modal-host');\n if (modalHost) {\n const subEventButton = modalHost.shadowRoot.getElementById(data.identifier + '-' + type + '-' + (subEvent + 1));\n if (subEventButton) {\n subEventButton.classList.add('atcb-saved');\n }\n }\n atcbStates[`${data.identifier}`][`${type}`][`${subEvent}`]++;\n const filteredStates = atcbStates[`${data.identifier}`][`${type}`].filter(function (value) {\n return value < 1;\n });\n if (filteredStates.length == 0) {\n atcb_set_fully_successful(host, data, multiDateModal);\n }\n return;\n }\n atcb_generate_multidate_links(host, type, linkType, data, keyboardTrigger, multiDateModal);\n}\nfunction atcb_generate_multidate_links(host, type, linkType, data, keyboardTrigger, multiDateModal) {\n if (\n linkType === 'ical' &&\n data.dates.every(function (theSubEvent) {\n if (theSubEvent.status == 'CANCELLED' || (theSubEvent.organizer != null && theSubEvent.organizer != '')) {\n return false;\n }\n return true;\n })\n ) {\n atcb_generate_ical(host, data, 'all', keyboardTrigger);\n for (let i = 0; i < atcbStates[`${data.identifier}`][`${type}`].length; i++) {\n atcbStates[`${data.identifier}`][`${type}`][`${i}`]++;\n }\n atcb_set_fully_successful(host, data, multiDateModal);\n return;\n }\n if (!multiDateModal) {\n const individualButtons = [type];\n for (let i = 0; i < data.dates.length; i++) {\n individualButtons.push(i + 1);\n }\n atcb_create_modal(host, data, type, atcb_translate_hook('modal.multidate.h', data), atcb_translate_hook('modal.multidate.text', data), [], individualButtons, keyboardTrigger);\n }\n}\nfunction atcb_generate_subscribe_links(host, linkType, data, keyboardTrigger) {\n const adjustedFileUrl = data.icsFile.replace('https://', 'webcal://');\n switch (linkType) {\n case 'ical': // also for apple (see above)\n if (atcbIsAndroid() || data.fakeAndroid) {\n atcb_subscribe_ical(data, data.icsFile);\n break;\n }\n atcb_subscribe_ical(data, adjustedFileUrl);\n break;\n case 'google':\n atcb_subscribe_google(data, adjustedFileUrl);\n break;\n case 'ms365':\n atcb_subscribe_microsoft(data, adjustedFileUrl, data.name);\n break;\n case 'outlookcom':\n atcb_subscribe_microsoft(data, adjustedFileUrl, data.name, 'outlook');\n break;\n case 'yahoo':\n if (data.proxy) {\n atcb_open_cal_url(data, 'yahoo', '', true);\n return;\n }\n atcb_copy_to_clipboard(data.icsFile);\n atcb_create_modal(\n host,\n data,\n 'yahoo',\n atcb_translate_hook('modal.subscribe.yahoo.h', data),\n atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.subscribe.yahoo.text', data),\n [\n {\n label: atcb_translate_hook('modal.subscribe.yahoo.button', data),\n primary: true,\n type: 'yahoo2nd',\n href: 'https://www.yahoo.com/calendar',\n },\n { label: atcb_translate_hook('cancel', data) },\n ],\n [],\n keyboardTrigger,\n );\n return;\n case 'yahoo2nd':\n atcb_copy_to_clipboard(data.icsFile);\n atcb_create_modal(\n host,\n data,\n 'yahoo',\n atcb_translate_hook('modal.subscribe.yahoo.h', data),\n atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.subscribe.yahoo.text', data),\n [\n {\n label: atcb_translate_hook('modal.subscribe.yahoo.button', data),\n type: 'none',\n href: 'https://www.yahoo.com/calendar',\n },\n { label: atcb_translate_hook('cancel', data) },\n ],\n [],\n keyboardTrigger,\n );\n return;\n }\n atcb_set_fully_successful(host, data);\n}\nfunction atcb_set_fully_successful(host, data, multiDateModal = false) {\n const trigger = host.getElementById(data.identifier);\n if (trigger) {\n trigger.classList.add('atcb-saved');\n }\n atcb_saved_hook(host, data);\n if (multiDateModal && host.querySelectorAll('.atcb-modal[data-modal-nr]').length < 2) {\n atcb_toggle(host, 'close');\n }\n}\nfunction atcb_subscribe_ical(data, fileUrl) {\n atcb_open_cal_url(data, 'ical', fileUrl, true);\n}\nfunction atcb_subscribe_google(data, fileUrl) {\n const baseUrl = 'https://calendar.google.com/calendar/r?cid=';\n const newFileUrl = (function () {\n const fileUrlRegex = /^(https?:\\/\\/|webcal:\\/\\/|\\/\\/)calendar\\.google\\.com\\//;\n if (fileUrlRegex.test(fileUrl)) {\n return fileUrl.replace(/^(.)*\\?cid=/, '');\n }\n return encodeURIComponent(fileUrl);\n })();\n atcb_open_cal_url(data, 'google', baseUrl + newFileUrl, true);\n}\nfunction atcb_subscribe_microsoft(data, fileUrl, calName, type = '365') {\n const urlParts = [];\n const baseUrl = (function () {\n if (type == 'outlook') {\n return 'https://outlook.live.com/calendar/0/addfromweb/?';\n } else {\n return 'https://outlook.office.com/calendar/0/addfromweb/?';\n }\n })();\n urlParts.push('url=' + encodeURIComponent(fileUrl));\n urlParts.push('name=' + encodeURIComponent(calName));\n atcb_open_cal_url(data, type, baseUrl + urlParts.join('&'), true);\n}\nfunction atcb_generate_google(data, date, subEvent = 'all') {\n const urlParts = [];\n urlParts.push('https://calendar.google.com/calendar/render?action=TEMPLATE');\n const formattedDate = atcb_generate_time(date, 'clean', 'google');\n urlParts.push('dates=' + encodeURIComponent(formattedDate.start) + '%2F' + encodeURIComponent(formattedDate.end));\n if (date.timeZone != null && date.timeZone != '' && !/(GMT[+|-]\\d{1,2}|Etc\\/U|Etc\\/Zulu|CET|CST6CDT|EET|EST|EST5EDT|MET|MST|MST7MDT|PST8PDT|WET)/i.test(date.timeZone) && !formattedDate.allday) {\n urlParts.push('ctz=' + date.timeZone);\n }\n if (date.name != null && date.name != '') {\n urlParts.push('text=' + encodeURIComponent(date.name));\n }\n const tmpDataDescription = [];\n if (date.description != null && date.description != '') {\n tmpDataDescription.push(date.description);\n }\n if (date.location != null && date.location != '') {\n urlParts.push('location=' + encodeURIComponent(date.location));\n if (atcbIsiOS() || data.fakeIOS) {\n if (tmpDataDescription.length > 0) {\n tmpDataDescription.push('

');\n }\n tmpDataDescription.push('📍: ' + date.location);\n }\n }\n if (tmpDataDescription.length > 0) {\n urlParts.push('details=' + encodeURIComponent(tmpDataDescription.join('')));\n }\n if (date.recurrence != null && date.recurrence != '') {\n urlParts.push('recur=' + encodeURIComponent(date.recurrence));\n }\n if (date.availability != null && date.availability != '') {\n const availabilityPart = (function () {\n if (date.availability == 'free') {\n return 'crm=AVAILABLE&trp=false';\n }\n return 'crm=BUSY&trp=true';\n })();\n urlParts.push(availabilityPart);\n }\n atcb_open_cal_url(data, 'google', urlParts.join('&'), false, subEvent);\n}\nfunction atcb_generate_yahoo(data, date, subEvent = 'all') {\n const urlParts = [];\n urlParts.push('https://calendar.yahoo.com/?v=60');\n const formattedDate = atcb_generate_time(date, 'clean');\n urlParts.push('st=' + encodeURIComponent(formattedDate.start) + '&et=' + encodeURIComponent(formattedDate.end));\n if (formattedDate.allday) {\n urlParts.push('dur=allday');\n }\n if (date.name != null && date.name != '') {\n urlParts.push('title=' + encodeURIComponent(date.name));\n }\n if (date.location != null && date.location != '') {\n urlParts.push('in_loc=' + encodeURIComponent(date.location));\n }\n if (date.descriptionHtmlFree != null && date.descriptionHtmlFree != '') {\n urlParts.push('desc=' + encodeURIComponent(date.descriptionHtmlFree));\n }\n atcb_open_cal_url(data, 'yahoo', urlParts.join('&'), false, subEvent);\n}\nfunction atcb_generate_microsoft(data, date, subEvent = 'all', type = '365') {\n const urlParts = [];\n const basePath = (function () {\n if (atcbIsMobile() || data.fakeMobile) {\n return '/calendar/0/deeplink/compose?path=%2Fcalendar%2Faction%2Fcompose&rru=addevent';\n }\n return '/calendar/action/compose?rru=addevent';\n })();\n const baseUrl = (function () {\n if (type == 'outlook') {\n return 'https://outlook.live.com' + basePath;\n } else {\n return 'https://outlook.office.com' + basePath;\n }\n })();\n urlParts.push(baseUrl);\n const formattedDate = atcb_generate_time(date, 'delimiters', 'microsoft');\n urlParts.push('startdt=' + formattedDate.start);\n urlParts.push('enddt=' + formattedDate.end);\n if (formattedDate.allday) {\n urlParts.push('allday=true');\n }\n if (date.name != null && date.name != '') {\n urlParts.push('subject=' + encodeURIComponent(date.name.replace(/&/g, '&')));\n }\n if (date.location != null && date.location != '') {\n urlParts.push('location=' + encodeURIComponent(date.location));\n }\n if (date.description != null && date.description != '') {\n urlParts.push('body=' + encodeURIComponent(date.description));\n }\n atcb_open_cal_url(data, type === 'outlook' ? 'outlookcom' : 'ms365', urlParts.join('&'), false, subEvent);\n}\nfunction atcb_generate_msteams(data, date, subEvent = 'all') {\n const urlParts = [];\n const baseUrl = 'https://teams.microsoft.com/l/meeting/new?';\n const formattedDate = atcb_generate_time(date, 'delimiters', 'msteams', true);\n if (!formattedDate.allday || atcbIsMobile() || data.fakeMobile) {\n urlParts.push('startTime=' + encodeURIComponent(formattedDate.start));\n urlParts.push('endTime=' + encodeURIComponent(formattedDate.end));\n } else {\n urlParts.push('startTime=' + formattedDate.start);\n urlParts.push('endTime=' + formattedDate.end);\n }\n if (date.name != null && date.name != '') {\n urlParts.push('subject=' + encodeURIComponent(date.name));\n }\n let locationString = '';\n if (date.location != null && date.location != '') {\n locationString = date.location;\n locationString += ' // '; \n urlParts.push('location=' + encodeURIComponent(locationString));\n }\n if (date.descriptionHtmlFree && date.descriptionHtmlFree != '') {\n urlParts.push('content=' + locationString + encodeURIComponent(date.descriptionHtmlFree));\n }\n atcb_open_cal_url(data, 'msteams', baseUrl + urlParts.join('&'), false, subEvent);\n}\nfunction atcb_open_cal_url(data, type, url, subscribe = false, subEvent = null, target = '') {\n if (target == '') {\n target = atcbDefaultTarget;\n }\n if (atcb_secure_url(url)) {\n if (data.proxy && data.proKey && data.proKey != '') {\n const urlType = subscribe ? 's' : 'o';\n const query = (function () {\n const parts = [];\n if (data.attendee && data.attendee !== '') {\n parts.push('attendee=' + encodeURIComponent(data.attendee));\n }\n if (data.customVar && typeof data.customVar === 'object' && Object.keys(data.customVar).length > 0) {\n parts.push('customvar=' + encodeURIComponent(JSON.stringify(data.customVar)));\n }\n if (data.dates && data.dates.length > 1 && subEvent !== null && subEvent !== 'all') {\n parts.push('sub-event=' + subEvent);\n }\n if (parts.length > 0) {\n return '?' + parts.join('&');\n }\n return '';\n })();\n url = (data.dev ? 'https://dev.caldn.net/' : 'https://caldn.net/') + data.proKey + '/' + urlType + '/' + type + query;\n if (!atcb_secure_url(url)) {\n return;\n }\n }\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n const newTab = window.open(url, target);\n if (newTab) {\n newTab.focus();\n }\n }\n}\nfunction atcb_generate_ical(host, data, subEvent = 'all', keyboardTrigger = false) {\n if (subEvent != 'all') {\n subEvent = parseInt(subEvent);\n }\n const filename = atcb_determine_ical_filename(data, subEvent);\n const givenIcsFile = (function () {\n const potentialHostAttendee = host.host.getAttribute('attendee') || '';\n const potentialHostCustomVar = host.host.getAttribute('customVar') || '';\n if ((data.attendee && data.attendee !== '' && potentialHostAttendee !== '') || (data.customVar && data.customVar !== '' && potentialHostCustomVar !== '')) {\n return '';\n }\n if (subEvent != 'all' && data.dates[`${subEvent}`].icsFile != null && data.dates[`${subEvent}`].icsFile != '') {\n return data.dates[`${subEvent}`].icsFile;\n }\n if (data.icsFile != null && data.icsFile != '') {\n return data.icsFile;\n }\n return '';\n })();\n if (data.proxy) {\n atcb_open_cal_url(data, 'ical', 'https://add-to-calendar-pro.com', false, subEvent);\n return;\n }\n if (givenIcsFile !== '' && (!atcbIsiOS() || !atcbIsWebView() || data.bypassWebViewCheck)) {\n atcb_save_file(givenIcsFile, filename);\n return;\n }\n const now = new Date();\n const ics_lines = ['BEGIN:VCALENDAR', 'VERSION:2.0'];\n ics_lines.push('PRODID:-// https://add-to-calendar-pro.com // button v' + atcbVersion + ' //EN');\n ics_lines.push('CALSCALE:GREGORIAN');\n if (subEvent == 'all') {\n ics_lines.push('METHOD:PUBLISH');\n } else {\n if (data.dates[`${subEvent}`].status != null && data.dates[`${subEvent}`].status == 'CANCELLED') {\n ics_lines.push('METHOD:CANCEL');\n } else {\n if (data.dates[`${subEvent}`].organizer != null && data.dates[`${subEvent}`].organizer != '') {\n ics_lines.push('METHOD:REQUEST');\n } else {\n ics_lines.push('METHOD:PUBLISH');\n }\n }\n }\n const usedTimeZones = [];\n const loopStart = (function () {\n if (subEvent != 'all') {\n return subEvent;\n }\n return 0;\n })();\n const loopEnd = (function () {\n if (subEvent != 'all') {\n return subEvent;\n }\n return data.dates.length - 1;\n })();\n for (let i = loopStart; i <= loopEnd; i++) {\n const formattedDate = atcb_generate_time(data.dates[`${i}`], 'clean', 'ical');\n const timeAddon = (function () {\n if (formattedDate.allday) {\n return ';VALUE=DATE';\n }\n if (data.dates[`${i}`].timeZone && data.dates[`${i}`].timeZone !== '') {\n const timeZoneBlock = tzlib_get_ical_block(data.dates[`${i}`].timeZone);\n if (!usedTimeZones.includes(data.dates[`${i}`].timeZone)) {\n ics_lines.push(timeZoneBlock[0]);\n }\n usedTimeZones.push(data.dates[`${i}`].timeZone);\n return ';' + timeZoneBlock[1];\n }\n })();\n ics_lines.push('BEGIN:VEVENT');\n if (data.dates[`${i}`].uid && data.dates[`${i}`].uid !== '') {\n ics_lines.push('UID:' + data.dates[`${i}`].uid);\n }\n ics_lines.push('DTSTAMP:' + atcb_format_datetime(now, 'clean', true));\n ics_lines.push('DTSTART' + timeAddon + ':' + formattedDate.start);\n ics_lines.push('DTEND' + timeAddon + ':' + formattedDate.end);\n ics_lines.push('SUMMARY:' + atcb_rewrite_ical_text(data.dates[`${i}`].name, true));\n if (data.dates[`${i}`].descriptionHtmlFreeICal && data.dates[`${i}`].descriptionHtmlFreeICal !== '') {\n ics_lines.push('DESCRIPTION:' + atcb_rewrite_ical_text(data.dates[`${i}`].descriptionHtmlFreeICal, true));\n }\n if (data.dates[`${i}`].description && data.dates[`${i}`].description !== '') {\n ics_lines.push('X-ALT-DESC;FMTTYPE=text/html:\\r\\n \\r\\n \\r\\n ' + atcb_rewrite_ical_text(data.dates[`${i}`].description, true) + '\\r\\n ');\n }\n if (data.dates[`${i}`].location && data.dates[`${i}`].location !== '') {\n ics_lines.push('LOCATION:' + atcb_rewrite_ical_text(data.dates[`${i}`].location, true));\n }\n if (data.dates[`${i}`].organizer && data.dates[`${i}`].organizer !== '') {\n const organizerParts = data.dates[`${i}`].organizer.split('|');\n ics_lines.push('ORGANIZER;CN=' + atcb_rewrite_ical_text(organizerParts[0], false, true) + ':MAILTO:' + organizerParts[1]);\n }\n if (data.dates[`${i}`].attendee && data.dates[`${i}`].attendee !== '') {\n const attendeeParts = data.dates[`${i}`].attendee.split('|');\n if (attendeeParts.length === 2) {\n ics_lines.push('ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=' + atcb_rewrite_ical_text(attendeeParts[0], false, true) + ';X-NUM-GUESTS=0:mailto:' + attendeeParts[1]);\n } else {\n ics_lines.push('ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=' + attendeeParts[0] + ';X-NUM-GUESTS=0:mailto:' + attendeeParts[0]);\n }\n }\n if (data.recurrence && data.recurrence !== '') {\n ics_lines.push(data.recurrence);\n }\n if (data.dates[`${i}`].availability && data.dates[`${i}`].availability !== '') {\n const transpVal = (function () {\n if (data.dates[`${i}`].availability == 'free') {\n return 'TRANSPARENT';\n }\n return 'OPAQUE';\n })();\n ics_lines.push('TRANSP:' + transpVal);\n }\n ics_lines.push('SEQUENCE:' + data.dates[`${i}`].sequence);\n ics_lines.push('STATUS:' + data.dates[`${i}`].status);\n ics_lines.push('CREATED:' + data.created);\n ics_lines.push('LAST-MODIFIED:' + data.updated);\n ics_lines.push('END:VEVENT');\n }\n ics_lines.push('END:VCALENDAR');\n const dataUrl = (function () {\n if (givenIcsFile != '') {\n return givenIcsFile;\n }\n return 'data:text/calendar;charset=utf-8,' + encodeURIComponent(ics_lines.join('\\r\\n'));\n })();\n if ((atcbIsiOS() && !atcbIsSafari()) || (atcbIsWebView() && (atcbIsiOS() || (atcbIsAndroid() && atcbIsProblematicWebView())))) {\n atcb_ical_copy_note(host, dataUrl, data, keyboardTrigger);\n return;\n }\n atcb_save_file(dataUrl, filename);\n}\nfunction atcb_determine_ical_filename(data, subEvent) {\n const filenameSuffix = (function () {\n if (subEvent != 'all' && subEvent != 0) {\n return '-' + parseInt(subEvent) + 1;\n }\n return '';\n })();\n if (data.iCalFileName != null && data.iCalFileName != '') {\n return data.iCalFileName + filenameSuffix;\n }\n if (data.icsFile != null && data.icsFile != '') {\n const filenamePart = data.icsFile.split('/').pop().split('.')[0];\n if (filenamePart != '') {\n return filenamePart + filenameSuffix;\n }\n }\n return 'event-to-save-in-my-calendar' + filenameSuffix;\n}\nfunction atcb_ical_copy_note(host, dataUrl, data, keyboardTrigger) {\n atcb_copy_to_clipboard(dataUrl);\n if (atcbIsiOS() && !atcbIsSafari()) {\n atcb_create_modal(\n host,\n data,\n 'warning',\n atcb_translate_hook('modal.opensafari.ical.h', data),\n atcb_translate_hook('modal.opensafari.ical.text', data) + '
' + atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.opensafari.ical.steps', data),\n [],\n [],\n keyboardTrigger,\n );\n return;\n }\n atcb_create_modal(host, data, 'warning', atcb_translate_hook('modal.webview.ical.h', data), atcb_translate_hook('modal.webview.ical.text', data) + '
' + atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.webview.ical.steps', data), [], [], keyboardTrigger);\n}\n\n\nfunction atcb_saved_hook(host, data) {\n atcb_log_event('success', data.identifier, data.identifier);\n if (data.ty && typeof atcb_generate_ty === 'function') {\n setTimeout(() => {\n atcb_generate_ty(host, data);\n }, 1000);\n }\n}\nfunction atcb_save_file(file, filename) {\n try {\n const save = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');\n save.rel = 'noopener';\n save.href = file;\n if (atcbIsMobile()) {\n save.target = '_self';\n } else {\n save.target = '_blank';\n }\n save.download = filename + '.ics';\n const evt = new MouseEvent('click', {\n view: window,\n button: 0,\n bubbles: true,\n cancelable: false,\n });\n save.dispatchEvent(evt);\n (window.URL || window.webkitURL).revokeObjectURL(save.href);\n } catch (e) {\n console.error(e);\n }\n}\nfunction atcb_generate_time(data, style = 'delimiters', targetCal = 'general', addTimeZoneOffset = false) {\n if (data.startTime && data.startTime !== '' && data.endTime && data.endTime !== '') {\n const newStartDate = new Date(data.startDate + 'T' + data.startTime + ':00.000+00:00');\n if (!data.endDate) data.endDate = data.startDate;\n const newEndDate = new Date(data.endDate + 'T' + data.endTime + ':00.000+00:00');\n const durationMS = newEndDate - newStartDate;\n const durationHours = Math.floor(durationMS / 1000 / 60 / 60);\n const durationMinutes = Math.floor(((durationMS - durationHours * 60 * 60 * 1000) / 1000 / 60) % 60);\n const durationString = (function () {\n if (durationHours < 10) {\n return '0' + durationHours + ':' + ('0' + durationMinutes).slice(-2);\n }\n return durationHours + ':' + ('0' + durationMinutes).slice(-2);\n })();\n if (targetCal == 'ical' || (targetCal == 'google' && !/(GMT[+|-]\\d{1,2}|Etc\\/U|Etc\\/Zulu|CET|CST6CDT|EET|EST|EST5EDT|MET|MST|MST7MDT|PST8PDT|WET)/i.test(data.timeZone))) {\n return {\n start: atcb_format_datetime(newStartDate, 'clean', true, true),\n end: atcb_format_datetime(newEndDate, 'clean', true, true),\n duration: durationString,\n allday: false,\n };\n }\n const offsetStart = tzlib_get_offset(data.timeZone, data.startDate, data.startTime);\n const offsetEnd = tzlib_get_offset(data.timeZone, data.endDate, data.endTime);\n if (addTimeZoneOffset) {\n const formattedOffsetStart = offsetStart.slice(0, 3) + ':' + offsetStart.slice(3);\n const formattedOffsetEnd = offsetEnd.slice(0, 3) + ':' + offsetEnd.slice(3);\n return {\n start: newStartDate.toISOString().replace('.000Z', formattedOffsetStart),\n end: newEndDate.toISOString().replace('.000Z', formattedOffsetEnd),\n duration: durationString,\n allday: false,\n };\n }\n const calcOffsetStart = parseInt(offsetStart[0] + 1) * -1 * ((parseInt(offsetStart.substring(1, 3)) * 60 + parseInt(offsetStart.substring(3, 5))) * 60 * 1000);\n const calcOffsetEnd = parseInt(offsetEnd[0] + 1) * -1 * ((parseInt(offsetEnd.substring(1, 3)) * 60 + parseInt(offsetEnd.substring(3, 5))) * 60 * 1000);\n newStartDate.setTime(newStartDate.getTime() + calcOffsetStart);\n newEndDate.setTime(newEndDate.getTime() + calcOffsetEnd);\n return {\n start: atcb_format_datetime(newStartDate, style),\n end: atcb_format_datetime(newEndDate, style),\n duration: durationString,\n allday: false,\n };\n } else {\n const startDate = data.startDate.split('-');\n const endDate = data.endDate ? data.endDate.split('-') : startDate;\n const newStartDate = new Date(Date.UTC(startDate[0], startDate[1] - 1, startDate[2], 12, 0, 0));\n const newEndDate = new Date(Date.UTC(endDate[0], endDate[1] - 1, endDate[2], 12, 0, 0));\n if (targetCal === 'google' || (targetCal === 'microsoft' && !atcbIsMobile()) || targetCal === 'msteams' || targetCal === 'ical') {\n newEndDate.setDate(newEndDate.getDate() + 1);\n }\n if (targetCal === 'msteams') {\n if (atcbIsMobile()) {\n const offset = newStartDate.getTimezoneOffset();\n const formattedOffset = (function () {\n if (offset < 0) {\n return '+' + ('0' + Math.abs(offset / 60)).slice(-2) + ':' + ('0' + Math.abs(offset % 60)).slice(-2);\n } else {\n return '-' + ('0' + Math.abs(offset / 60)).slice(-2) + ':' + ('0' + Math.abs(offset % 60)).slice(-2);\n }\n })();\n return {\n start: atcb_format_datetime(newStartDate, style, false, true) + 'T00:00:00' + formattedOffset,\n end: atcb_format_datetime(newEndDate, style, false, true) + 'T00:00:00' + formattedOffset,\n allday: true,\n };\n }\n return {\n start: atcb_format_datetime(newStartDate, style, false, true) + '+00:00',\n end: atcb_format_datetime(newEndDate, style, false, true) + '+00:00',\n allday: true,\n };\n }\n return {\n start: atcb_format_datetime(newStartDate, style, false),\n end: atcb_format_datetime(newEndDate, style, false),\n allday: true,\n };\n }\n}\nfunction atcb_format_datetime(datetime, style = 'delimiters', includeTime = true, removeZ = false) {\n const regex = (function () {\n if (includeTime) {\n if (style == 'clean') {\n return /(-|:|(\\.\\d{3}))/g;\n }\n return /(\\.\\d{3})/g;\n }\n if (style == 'clean') {\n return /(-|T(\\d{2}:\\d{2}:\\d{2}\\.\\d{3})Z)/g;\n }\n return /T(\\d{2}:\\d{2}:\\d{2}\\.\\d{3})Z/g;\n })();\n const output = removeZ ? datetime.toISOString().replace(regex, '').replace('Z', '') : datetime.toISOString().replace(regex, '');\n return output;\n}\nfunction offsetToMilliseconds(offset) {\n const sign = offset[0] === '+' ? 1 : -1;\n const hours = parseInt(offset.substring(1, 3), 10);\n const minutes = parseInt(offset.substring(3, 5), 10);\n const totalMinutes = (hours * 60 + minutes) * sign;\n const milliseconds = totalMinutes * 60000;\n return milliseconds;\n}\nfunction atcb_translate_via_time_zone(date, time, baseTimeZone, targetTimeZone) {\n const dateTime = new Date(`${date}T${time}:00Z`);\n const offset = tzlib_get_offset(baseTimeZone, date, time); \n const dateTimeUTC = new Date(dateTime.getTime() - offsetToMilliseconds(offset));\n const formatter = new Intl.DateTimeFormat('en-CA', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n timeZone: targetTimeZone,\n hour12: false,\n });\n const dateInTargetTimeZone = formatter.format(dateTimeUTC);\n return ([date, time] = dateInTargetTimeZone.split(', '));\n}\nfunction atcb_generate_timestring(dates, language = 'en', subEvent = 'all', decorate = false, browserTimeOverride = false, enforceYear = false, hideTimeZone = false) {\n if (decorate) {\n const tmpRootTZ = atcb_decorate_data_timezone();\n dates = atcb_decorate_data_dates({ dates: dates, timeZone: tmpRootTZ }).dates;\n }\n let startDateInfo, endDateInfo, timeZoneInfoStart, timeZoneInfoEnd;\n let formattedTimeStart = {};\n let formattedTimeEnd = {};\n let timeBlocks = [];\n let timeZoneInfoStringStart = '';\n let timeZoneInfoStringEnd = '';\n const browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n if (subEvent === 'all') {\n formattedTimeStart = atcb_generate_time(dates[0]);\n formattedTimeEnd = atcb_generate_time(dates[dates.length - 1]);\n timeZoneInfoStart = browserTimeOverride ? browserTimezone : dates[0].timeZone;\n timeZoneInfoEnd = browserTimeOverride ? browserTimezone : dates[dates.length - 1].timeZone;\n } else {\n formattedTimeStart = atcb_generate_time(dates[`${subEvent}`]);\n formattedTimeEnd = formattedTimeStart;\n timeZoneInfoStart = browserTimeOverride ? browserTimezone : dates[`${subEvent}`].timeZone;\n timeZoneInfoEnd = timeZoneInfoStart;\n }\n startDateInfo = new Date(formattedTimeStart.start);\n endDateInfo = new Date(formattedTimeEnd.end);\n if (formattedTimeStart.allday) {\n timeZoneInfoStart = 'GMT';\n }\n if (formattedTimeEnd.allday) {\n timeZoneInfoEnd = 'GMT';\n }\n const magicLocationPhrases = ['global', 'world-wide', 'worldwide', 'online'];\n const convertable = (function () {\n let i = 0;\n let j = dates.length - 1;\n if (subEvent != 'all') {\n i = j = subEvent;\n }\n for (i; i <= j; i++) {\n const magicLocation = (function () {\n if (dates[`${i}`].location && dates[`${i}`].location !== '') {\n if (magicLocationPhrases.includes(dates[`${i}`].location.toLowerCase())) {\n return true;\n }\n }\n return false;\n })();\n if (!magicLocation && !dates[`${i}`].onlineEvent) {\n return false;\n }\n }\n return true;\n })();\n if (convertable) {\n timeZoneInfoStart = timeZoneInfoEnd = browserTimezone;\n } else {\n if (!formattedTimeStart.allday && browserTimezone !== timeZoneInfoStart && timeZoneInfoStart !== timeZoneInfoEnd) {\n timeZoneInfoStringStart = '(' + timeZoneInfoStart + ')';\n }\n if ((!formattedTimeEnd.allday && browserTimezone !== timeZoneInfoEnd) || timeZoneInfoStart !== timeZoneInfoEnd) {\n timeZoneInfoStringEnd = '(' + timeZoneInfoEnd + ')';\n }\n }\n const now = new Date();\n const dropYearStart = (function () {\n if (!enforceYear && startDateInfo.getFullYear() === now.getFullYear()) {\n return true;\n }\n return false;\n })();\n const dropYearEnd = (function () {\n if (!enforceYear && endDateInfo.getFullYear() === now.getFullYear()) {\n return true;\n }\n return false;\n })();\n const formatOptionsStart = get_format_options(timeZoneInfoStart, dropYearStart, language);\n const formatOptionsEnd = get_format_options(timeZoneInfoEnd, dropYearEnd, language);\n if (startDateInfo.toLocaleDateString(language, formatOptionsEnd.DateLong) === endDateInfo.toLocaleDateString(language, formatOptionsEnd.DateLong)) {\n if (formattedTimeStart.allday) {\n if (!dropYearStart) {\n timeBlocks.push(startDateInfo.toLocaleDateString(language, formatOptionsStart.DateLong));\n }\n } else {\n let timeString = '';\n if (dropYearStart) {\n timeString = startDateInfo.toLocaleString(language, formatOptionsStart.Time);\n } else {\n timeString = startDateInfo.toLocaleString(language, formatOptionsStart.DateTimeLong);\n }\n if (language === 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n if (timeZoneInfoStringStart !== '' && !hideTimeZone) {\n timeBlocks.push(timeZoneInfoStringStart);\n }\n timeBlocks.push('-');\n timeString = endDateInfo.toLocaleTimeString(language, formatOptionsEnd.Time);\n if (language === 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n if (timeZoneInfoStringEnd !== '' && !hideTimeZone) {\n timeBlocks.push(timeZoneInfoStringEnd);\n }\n }\n } else {\n if (formattedTimeStart.allday) {\n timeBlocks.push(startDateInfo.toLocaleDateString(language, formatOptionsStart.DateLong));\n } else {\n let timeString = '';\n if (dropYearStart) {\n timeString = startDateInfo.toLocaleString(language, formatOptionsStart.Time);\n } else {\n timeString = startDateInfo.toLocaleString(language, formatOptionsStart.DateTimeLong);\n }\n if (language === 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n }\n if (timeZoneInfoStringStart !== '' && !hideTimeZone) {\n timeBlocks.push(timeZoneInfoStringStart);\n }\n timeBlocks.push('-');\n if (formattedTimeEnd.allday) {\n timeBlocks.push(endDateInfo.toLocaleDateString(language, formatOptionsEnd.DateLong));\n } else {\n let timeString = endDateInfo.toLocaleString(language, formatOptionsEnd.DateTimeLong);\n if (language === 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n }\n if (timeZoneInfoStringEnd !== '' && !hideTimeZone) {\n timeBlocks.push(timeZoneInfoStringEnd);\n }\n }\n return timeBlocks;\n}\nfunction get_format_options(timeZoneInfo, dropYear = false, language = 'en') {\n const hoursFormat = (function () {\n if (language === 'en') {\n return 'h12'; \n }\n return 'h23'; \n })();\n if (dropYear) {\n return {\n DateLong: {\n timeZone: timeZoneInfo,\n month: 'short',\n day: 'numeric',\n },\n DateTimeLong: {\n timeZone: timeZoneInfo,\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat,\n },\n Time: {\n timeZone: timeZoneInfo,\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat,\n },\n };\n }\n return {\n DateLong: {\n timeZone: timeZoneInfo,\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n },\n DateTimeLong: {\n timeZone: timeZoneInfo,\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat,\n },\n Time: {\n timeZone: timeZoneInfo,\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat,\n },\n };\n}\nfunction atcb_secure_content(data, isJSON = true) {\n const toClean = isJSON ? JSON.stringify(data) : data.toString();\n const cleanedUp = toClean.replace(/(<(?!br)([^>]+)>)/gi, '');\n if (isJSON) {\n return JSON.parse(cleanedUp);\n } else {\n return cleanedUp;\n }\n}\nfunction atcb_secure_url(url, throwError = true) {\n if (url && url.match(/((\\.\\.\\/)|(\\.\\.\\\\)|(%2e%2e%2f)|(%252e%252e%252f)|(%2e%2e\\/)|(%252e%252e\\/)|(\\.\\.%2f)|(\\.\\.%252f)|(%2e%2e%5c)|(%252e%252e%255c)|(%2e%2e\\\\)|(%252e%252e\\\\)|(\\.\\.%5c)|(\\.\\.%255c)|(\\.\\.%c0%af)|(\\.\\.%25c0%25af)|(\\.\\.%c1%9c)|(\\.\\.%25c1%259c))/gi)) {\n if (throwError) {\n console.error('Seems like the generated URL includes at least one security issue and got blocked. Please check the calendar button parameters!');\n }\n return false;\n } else {\n return true;\n }\n}\nfunction atcb_validEmail(email) {\n if (!/^.{0,70}@.{1,30}\\.[a-zA-Z]{2,9}$/.test(email)) {\n return false;\n }\n return true;\n}\nfunction atcb_rewrite_html_elements(content, clear = false, iCalBreaks = false) {\n if (clear) {\n if (iCalBreaks) {\n content = content.replace(/(\\[br\\s?\\/?\\]|\\{br\\s?\\/?\\}|(\\[\\/p\\](?=.))|(\\{\\/p\\}(?=.)))/gi, '\\\\n');\n } else {\n content = content.replace(/(\\[br\\s?\\/?\\]|\\{br\\s?\\/?\\}|(\\[\\/p\\](?=.))|(\\{\\/p\\}(?=.)))/gi, ' ');\n }\n content = content.replace(/\\[url\\](.+?)\\[\\/url\\]/gi, (match, p1) => {\n return p1.split('|')[0];\n });\n content = content.replace(/\\{url\\}(.+?)\\{\\/url\\}/gi, (match, p1) => {\n return p1.split('|')[0];\n });\n content = content.replace(/\\[(|\\/)(hr|p|b|strong|u|i|em|li|ul|ol|h\\d)\\]/gi, '');\n content = content.replace(/\\{(|\\/)(hr|p|b|strong|u|i|em|li|ul|ol|h\\d)\\}/gi, '');\n content = content.replace(/&[#a-zA-Z0-9]{1,9};/gi, '');\n } else {\n content = content.replace(/\\[url\\]((?:(?!\\[\\/url\\])[\\w&$+.,:;=~!*'?@^%#|\\s\\-()[\\]/])*)\\[\\/url\\]/gi, function (match, p1) {\n return atcb_parse_url_code(p1);\n });\n content = content.replace(/\\{url\\}((?:(?!\\[\\/url\\])[\\w&$+.,:;=~!*'?@^%#|\\s\\-()[\\]/])*)\\{\\/url\\}/gi, function (match, p1) {\n return atcb_parse_url_code(p1);\n });\n content = content.replace(/\\[(\\/|)(br|hr|p|b|strong|u|i|em|li|ul|ol|h\\d)(\\s?\\/?)\\]/gi, '<$1$2$3>');\n content = content.replace(/\\{(\\/|)(br|hr|p|b|strong|u|i|em|li|ul|ol|h\\d)(\\s?\\/?)\\}/gi, '<$1$2$3>');\n }\n return content;\n}\nfunction atcb_parse_url_code(input) {\n const urlText = input.split('|');\n const text = (function () {\n if (urlText.length > 1 && urlText[1] != '') {\n return urlText[1];\n } else {\n return urlText[0];\n }\n })();\n return '' + text + '';\n}\nfunction atcb_rewrite_ical_text(content, truncate = true, inQuotes = false) {\n if (inQuotes) {\n content = content.replace(/\"/g, '');\n } else {\n content = content.replace(/\\\\/g, '\\\\\\\\').replace(/(,|;)/g, '\\\\$1').replace(/\\\\\\\\n/g, '\\\\n');\n }\n if (truncate) {\n content = content.replace(/.{60}/g, '$&' + '\\r\\n ');\n }\n return content;\n}\nfunction atcb_position_list(host, trigger, list, blockUpwards = false, blockDownwards = false) {\n let anchorSet = false;\n const originalTrigger = trigger;\n if (trigger.querySelector('.atcb-dropdown-anchor') !== null) {\n trigger = trigger.querySelector('.atcb-dropdown-anchor');\n anchorSet = true;\n }\n list.style.position = 'relative';\n list.style.display = 'inline-block';\n let triggerDim = trigger.getBoundingClientRect();\n const btnDim = originalTrigger.getBoundingClientRect();\n const btnParentDim = originalTrigger.parentNode.getBoundingClientRect();\n const viewportHeight = document.documentElement.clientHeight;\n if (anchorSet === true && !list.classList.contains('atcb-dropoverlay')) {\n let listDim = list.getBoundingClientRect();\n list.style.width = listDim.width + 'px';\n if (list.classList.contains('atcb-dropup') || (!blockUpwards && triggerDim.top + listDim.height > viewportHeight - 20 && 2 * btnDim.top + btnDim.height - triggerDim.top - listDim.height > 20) || blockDownwards) {\n originalTrigger.classList.add('atcb-dropup');\n list.classList.add('atcb-dropup');\n list.style.bottom = btnParentDim.bottom - btnDim.bottom + (triggerDim.top - btnDim.top) + 'px';\n } else {\n list.style.top = btnDim.top - btnParentDim.top + (triggerDim.top - btnDim.top) + 'px';\n if (originalTrigger.classList.contains('atcb-dropup')) {\n originalTrigger.classList.remove('atcb-dropup');\n }\n }\n triggerDim = trigger.getBoundingClientRect();\n if (!list.classList.contains('atcb-style-round') && !list.classList.contains('atcb-style-text') && !list.classList.contains('atcb-style-neumorphism')) {\n list.style.minWidth = triggerDim.width + 'px';\n if (list.classList.contains('atcb-dropdown')) {\n list.style.maxWidth = triggerDim.width + 'px';\n }\n }\n listDim = list.getBoundingClientRect();\n list.style.left = Math.round(triggerDim.left - btnParentDim.left - (listDim.width - triggerDim.width) / 2) + 'px';\n } else {\n list.style.minWidth = btnDim.width + 20 + 'px';\n const listDim = list.getBoundingClientRect();\n list.style.width = listDim.width + 'px';\n const sideMargin = Math.round((btnDim.width - listDim.width) / 2);\n list.style.margin = -Math.round((listDim.height + btnDim.height) / 2) + 'px ' + sideMargin + 'px 0 ' + sideMargin + 'px';\n }\n list.style.position = 'absolute';\n list.style.display = 'block';\n const atcbL = host.querySelector('#atcb-reference');\n if (atcbL) {\n if (originalTrigger.classList.contains('atcb-dropup')) {\n originalTrigger.parentNode.after(atcbL);\n atcbL.classList.add('atcb-dropup');\n }\n }\n}\nfunction atcb_position_shadow_button(originalShadowHost, modalShadowHost) {\n const wrapperDim = originalShadowHost.querySelector('.atcb-initialized ').getBoundingClientRect();\n const newWrapper = modalShadowHost.querySelector('.atcb-initialized');\n let widthVal = wrapperDim.width;\n if (wrapperDim.width < 250) {\n widthVal = 250;\n }\n newWrapper.style.width = widthVal + 'px';\n newWrapper.style.height = wrapperDim.height + 'px';\n newWrapper.style.top = wrapperDim.top + 'px';\n newWrapper.style.left = wrapperDim.left + 'px';\n}\nfunction atcb_position_shadow_button_listener() {\n const active = atcbStates['active'];\n if (active !== null && active !== '') {\n const originalEl = document.querySelector('add-to-calendar-button[atcb-button-id=' + active + ']').shadowRoot;\n const shadowEl = document.querySelector('div[atcb-button-id=' + active + ']').shadowRoot;\n atcb_position_shadow_button(originalEl, shadowEl);\n }\n}\nfunction atcb_manage_body_scroll(host, modalObj = null) {\n const modal = (function () {\n if (modalObj != null) {\n return modalObj;\n } else {\n const allModals = host.querySelectorAll('.atcb-modal');\n if (allModals.length === 0) {\n return null;\n }\n return allModals[allModals.length - 1];\n }\n })();\n if (modal == null) {\n return;\n }\n const modalDim = modal.getBoundingClientRect();\n if (modalDim.height + 150 > window.innerHeight) {\n document.body.classList.add('atcb-modal-no-scroll');\n document.documentElement.classList.add('atcb-modal-no-scroll');\n } else {\n document.body.classList.remove('atcb-modal-no-scroll');\n document.documentElement.classList.remove('atcb-modal-no-scroll');\n }\n}\nfunction atcb_set_fullsize(el) {\n el.style.width = window.innerWidth + 'px';\n el.style.height = window.innerHeight + 100 + 'px';\n}\nfunction atcb_set_sizes(el, sizes) {\n el.style.setProperty('--base-font-size-l', sizes['l'] + 'px');\n el.style.setProperty('--base-font-size-m', sizes['m'] + 'px');\n el.style.setProperty('--base-font-size-s', sizes['s'] + 'px');\n}\nfunction atcb_generate_uuid() {\n const id = ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) => (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16));\n return id;\n}\nfunction atcb_copy_to_clipboard(dataString) {\n const tmpInput = document.createElement('input');\n document.body.append(tmpInput);\n const editable = tmpInput.contentEditable;\n const readOnly = tmpInput.readOnly;\n tmpInput.contentEditable = true;\n tmpInput.readOnly = false;\n tmpInput.value = dataString;\n if (atcbIsiOS()) {\n var range = document.createRange();\n range.selectNodeContents(tmpInput);\n var selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n tmpInput.setSelectionRange(0, 999999);\n } else {\n tmpInput.select();\n }\n tmpInput.contentEditable = editable;\n tmpInput.readOnly = readOnly;\n document.execCommand('copy');\n tmpInput.remove();\n}\nfunction atcb_debounce(func, timeout = 200) {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(this, args);\n }, timeout);\n };\n}\nfunction atcb_debounce_leading(func, timeout = 300) {\n let timer;\n return (...args) => {\n if (!timer) {\n func.apply(this, args);\n }\n clearTimeout(timer);\n timer = setTimeout(() => {\n timer = undefined;\n }, timeout);\n };\n}\n\n\nfunction atcb_log_event(event, trigger, identifier) {\n const parentEl = (function () {\n const customTrigger = document.getElementById(identifier);\n if (customTrigger) {\n return customTrigger;\n }\n return document.querySelector('[atcb-button-id=\"' + identifier + '\"]');\n })();\n if (parentEl) {\n parentEl.setAttribute('atcb-last-event', event + ':' + trigger);\n }\n if (atcbIsBrowser()) {\n atcb_push_to_data_layer(event, trigger);\n }\n}\nfunction atcb_push_to_data_layer(event, trigger) {\n let action = '';\n switch (event) {\n case 'initialization':\n action = 'Initialized';\n break;\n case 'openList':\n action = 'Opened';\n break;\n case 'closeList':\n action = 'Closed';\n break;\n case 'openCalendarLink':\n action = 'Opened';\n break;\n case 'openSingletonLink':\n action = 'Opened';\n break;\n case 'openSubEventLink':\n action = 'Opened';\n break;\n case 'openRSVP':\n action = 'Opened';\n break;\n case 'success':\n action = 'Saved';\n break;\n case 'successRSVP':\n action = 'Saved';\n break;\n }\n const category = event === 'openRSVP' || event === 'successRSVP' ? 'Add-to-Calendar-RSVP' : 'Add-to-Calendar-Button';\n const atcbDataLayer = (window.dataLayer = window.dataLayer || []);\n atcbDataLayer.push({\n eventCategory: category,\n eventAction: action,\n eventLabel: trigger,\n event: event,\n });\n}\n\n\n/* How to add new languages:\n * 1. Duplicate the \"en\" block at the following \"i18nStrings\" object.\n * 2. Change the key to the ISO 639-1 code of your language (https://www.w3schools.com/tags/ref_language_codes.asp).\n * 3. Translate the labels.\n * 4. Add the language to the \"rtlLanguages\" array below, if it write from right to left.\n * 4. Update the \"language\" part at the configuration page of the demo page - add the new lagnuages to the \"Options\" info (/demo/pages/configuration.vue).\n * 5. Also update the language.ts file at the demo page, so the language appears at the demo playground (/demo/src/components/models/language.ts).\n */\nconst rtlLanguages = ['ar', 'fa'];\nconst calendarNames = {\n apple: 'Apple',\n google: 'Google',\n ms365: 'Microsoft 365',\n msteams: 'Microsoft Teams',\n outlookcom: 'Outlook.com',\n yahoo: 'Yahoo',\n};\nconst i18nStrings = {\n en: {\n 'label.addtocalendar': 'Add to Calendar',\n ical: 'iCal File',\n ...calendarNames,\n 'modal.button.default': 'Click me',\n 'modal.webview.ical.h': 'Open your browser',\n 'modal.webview.ical.text': 'Unfortunately, in-app browsers have problems with the way we generate the calendar file.',\n 'modal.clipboard.text': 'We automatically copied a magical URL into your clipboard.',\n 'modal.webview.ical.steps': '
  1. Open another browser on your phone, ...
  2. Paste the clipboard content and go.
',\n 'modal.opensafari.ical.h': 'Open Safari',\n 'modal.opensafari.ical.text': 'Unfortunately, iOS has some problems generating and opening the calendar file outside of Safari.',\n 'modal.opensafari.ical.steps': '
  1. Open Safari, ...
  2. Paste the clipboard content and go.
',\n 'modal.multidate.h': 'This is an event series',\n 'modal.multidate.text': 'Add the individual events one by one:',\n 'date.status.cancelled': 'This date got cancelled.',\n 'date.status.cancelled.cta': 'Please update your calendar!',\n 'modal.subscribe.yahoo.h': 'Add Calendar to Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Open now the Yahoo Calendar.
  2. Click the \"Actions\" tab.
  3. Hit \"Follow Other Calendars\".
  4. Set a name and paste the clipboard content into the url field.
',\n 'modal.subscribe.yahoo.button': 'Open Yahoo Calendar',\n close: 'Close',\n continue: 'Continue',\n cancel: 'Cancel',\n expired: 'Expired',\n recurring: 'Recurring',\n thankyou: 'Thank you',\n submit: 'Submit',\n 'label.rsvp': 'RSVP',\n 'label.share.email': 'Share via Email',\n 'label.share.copy': 'Copy Link',\n 'label.share.copied': 'Copied',\n 'label.share.email.subject': 'Save this event',\n 'form.error.required': 'You did not properly fill all required fields',\n 'form.error.sending': 'There was a problem sending your response. Please try again later',\n 'form.success': 'Sent successfully!',\n },\n de: {\n 'label.addtocalendar': 'Im Kalender speichern',\n ical: 'iCal-Datei',\n ...calendarNames,\n 'modal.button.default': 'Klick mich',\n 'modal.webview.ical.h': 'Öffne deinen Browser',\n 'modal.webview.ical.text': 'Leider haben In-App-Browser Probleme mit der Art, wie wir Kalender-Dateien erzeugen.',\n 'modal.clipboard.text': 'Wir haben automatisch eine magische URL in deine Zwischenablage kopiert.',\n 'modal.webview.ical.steps': '
  1. Öffne einen anderen Browser auf deinem Smartphone, ...
  2. Nutze die Einfügen-Funktion, um fortzufahren.
',\n 'modal.opensafari.ical.h': 'Öffne Safari',\n 'modal.opensafari.ical.text': 'Leider hat iOS einige Probleme beim Generieren und Öffnen der Kalenderdatei außerhalb von Safari.',\n 'modal.opensafari.ical.steps': '
  1. Öffne Safari, ...
  2. Nutze die Einfügen-Funktion, um fortzufahren.
',\n 'modal.multidate.h': 'Dies ist eine Termin-Reihe',\n 'modal.multidate.text': 'Füge die einzelnen Termine der Reihe nach deinem Kalender hinzu:',\n 'date.status.cancelled': 'Dieser Termin wurde abgesagt.',\n 'date.status.cancelled.cta': 'Bitte aktualisiere deinen Kalender!',\n 'modal.subscribe.yahoo.h': 'Kalender zu Yahoo hinzufügen',\n 'modal.subscribe.yahoo.text': '
  1. Öffne den Yahoo-Kalender.
  2. Klicke auf den \"Aktionen\"-Tab.
  3. Wähle \"Weiteren Kalendern folgen\".
  4. Wähle einen Namen und füge die URL aus deiner Zwischenablage in das URL-Feld ein.
',\n 'modal.subscribe.yahoo.button': 'Yahoo-Kalender öffnen',\n close: 'Schließen',\n continue: 'Weiter',\n cancel: 'Abbrechen',\n expired: 'Abgelaufen',\n recurring: 'Wiederkehrend',\n thankyou: 'Danke',\n submit: 'Absenden',\n 'label.share.email': 'Per E-Mail teilen',\n 'label.share.copy': 'Link kopieren',\n 'label.share.copied': 'Kopiert',\n 'label.share.email.subject': 'Merke dir diesen Termin',\n 'form.error.required': 'Du hast nicht alle erforderlichen Felder korrekt ausgefüllt',\n 'form.error.sending': 'Es gab ein Problem beim Senden deiner Antwort. Bitte versuche es später noch einmal',\n 'form.success': 'Erfolgreich gesendet!',\n },\n es: {\n 'label.addtocalendar': 'Añadir al Calendario',\n ical: 'iCal Ficha',\n ...calendarNames,\n 'modal.button.default': 'Haz clic mí',\n 'modal.webview.ical.h': 'Abra su browser',\n 'modal.webview.ical.text': 'Lamentablemente, los browsers in-app tienen problemas con la forma en que generamos el archivo del calendario.',\n 'modal.clipboard.text': 'Hemos copiado automáticamente una URL mágica en su portapapeles.',\n 'modal.webview.ical.steps': '
  1. Abre otro browser en tu smartphone, ...
  2. Utilice la función de pegar para continuar.
',\n 'modal.opensafari.ical.h': 'Abrir Safari',\n 'modal.opensafari.ical.text': 'Desafortunadamente, iOS tiene algunos problemas para generar y abrir el archivo de calendario fuera de Safari.',\n 'modal.opensafari.ical.steps': '
  1. Abrir Safari, ...
  2. Utilice la función de pegar para continuar.
',\n 'modal.multidate.h': 'Esta es una serie de fechas',\n 'modal.multidate.text': 'Añada las fechas individuales a su calendario en orden:',\n 'date.status.cancelled': 'Esta fecha fue cancelada.',\n 'date.status.cancelled.cta': 'Actualice su calendario!',\n 'modal.subscribe.yahoo.h': 'Añadir calendario a Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Abra el calendario de Yahoo.
  2. Haga clic en la pestaña \"Acciones\".
  3. Seleccione \"Seguir otros calendarios\".
  4. Elige un nombre y pega la URL de tu portapapeles en el campo URL.
',\n 'modal.subscribe.yahoo.button': 'Abrir calendario de Yahoo',\n close: 'Ciérralo',\n continue: 'Continuar',\n cancel: 'Cancelar',\n expired: 'Caducada',\n recurring: 'Periódica',\n thankyou: 'Gracias',\n submit: 'Enviar',\n 'label.share.email': 'Compartir por E-mail',\n 'label.share.copy': 'Copiar enlace',\n 'label.share.copied': 'Copiado',\n 'label.share.email.subject': 'Recuerda esta fecha',\n 'form.error.required': 'No has completado correctamente todos los campos requeridos',\n 'form.error.sending': 'Hubo un problema al enviar tu respuesta. Por favor, inténtalo de nuevo más tarde',\n 'form.success': 'Enviado con éxito!',\n },\n pt: {\n 'label.addtocalendar': 'Incluir no Calendário',\n ical: 'Ficheiro iCal',\n ...calendarNames,\n 'modal.button.default': 'Clicar-me',\n 'modal.webview.ical.h': 'Abra o seu browser',\n 'modal.webview.ical.text': 'Infelizmente, os navegadores em tampas têm problemas com a forma como geramos o ficheiro de calendário.',\n 'modal.clipboard.text': 'Copiámos automaticamente um URL mágico para a sua área de transferência.',\n 'modal.webview.ical.steps': '
  1. Abrir outro browser en tu smartphone, ...
  2. Use a função colar para continuar.
',\n 'modal.opensafari.ical.h': 'Safari aberto',\n 'modal.opensafari.ical.text': 'Infelizmente, o iOS tem alguns problemas para gerar e abrir o arquivo de calendário fora do Safari.',\n 'modal.opensafari.ical.steps': '
  1. Safari aberto, ...
  2. Use a função colar para continuar.
',\n 'modal.multidate.h': 'Esta é uma série de datas',\n 'modal.multidate.text': 'Adicione as datas individuais ao seu calendário, por ordem:',\n 'date.status.cancelled': 'Esta data foi cancelada.',\n 'date.status.cancelled.cta': 'Actualize o seu calendário!',\n 'modal.subscribe.yahoo.h': 'Adicionar calendário ao Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Abrir o calendário do Yahoo.
  2. Clique no separador \"Acções\".
  3. Seleccione \"Seguir outros calendários\".
  4. Escolha um nome e cole o URL da sua área de transferência no campo URL.
',\n 'modal.subscribe.yahoo.button': 'Abra o Calendário do Yahoo',\n close: 'Fechar',\n continue: 'Continuar',\n cancel: 'Cancelar',\n expired: 'Expirada',\n recurring: 'Recorrente',\n thankyou: 'Obrigado',\n submit: 'Enviar',\n 'label.share.email': 'Compartilhar por e-mail',\n 'label.share.copy': 'Copiar link',\n 'label.share.copied': 'Copiado',\n 'label.share.email.subject': 'Lembre-se desta data',\n 'form.error.required': 'Você não preencheu todos os campos obrigatórios corretamente',\n 'form.error.sending': 'Houve um problema ao enviar sua resposta. Por favor, tente novamente mais tarde',\n 'form.success': 'Enviado com sucesso!',\n },\n fr: {\n 'label.addtocalendar': \"Ajouter à l'Agenda\",\n ical: 'Fichier iCal',\n ...calendarNames,\n 'modal.button.default': 'Cliquez-moi',\n 'modal.webview.ical.h': 'Ouvrez votre navigateur',\n 'modal.webview.ical.text': 'Malheureusement, les navigateurs intégrés aux applications ont des problèmes avec la manière dont nous créons les fichiers de calendrier.',\n 'modal.clipboard.text': 'Nous avons automatiquement copié une URL magique dans votre presse-papier.',\n 'modal.webview.ical.steps': '
  1. Ouvrez un autre navigateur sur votre smartphone ;
  2. Collez le contenu du presse-papier et continuez.
',\n 'modal.opensafari.ical.h': 'Ouvrir Safari',\n 'modal.opensafari.ical.text': 'Malheureusement, iOS rencontre des problèmes pour générer et ouvrir le fichier de calendrier en dehors de Safari.',\n 'modal.opensafari.ical.steps': '
  1. Ouvrez Safari ;
  2. Collez le contenu du presse-papier et continuez.
',\n 'modal.multidate.h': 'Ceci est une liste d’évènements',\n 'modal.multidate.text': 'Ajouter les évènements un par un :',\n 'date.status.cancelled': 'Cet évènement est annulé.',\n 'date.status.cancelled.cta': 'Actualisez votre agenda !',\n 'modal.subscribe.yahoo.h': 'Ajouter un agenda à Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Ouvrez l’Agenda Yahoo ;
  2. Cliquez sur l’onglet « Actions » ;
  3. Sélectionnez « Suivre d’autres agendas » ;
  4. Choisissez un nom et collez le contenu de votre presse-papier dans le champ URL.
',\n 'modal.subscribe.yahoo.button': 'Ouvrir le calendrier Yahoo',\n close: 'Fermer',\n continue: 'Continuer',\n cancel: 'Annuler',\n expired: 'Expiré',\n recurring: 'Récurrent',\n thankyou: 'Merci',\n submit: 'Envoyer',\n 'label.share.email': 'Partager par E-mail',\n 'label.share.copy': 'Copier le lien',\n 'label.share.copied': 'Copié',\n 'label.share.email.subject': 'Retenez cette date',\n 'form.error.required': \"Tu n'as pas correctement rempli tous les champs requis\",\n 'form.error.sending': \"Il y a eu un problème lors de l'envoi de ta réponse. Veuillez réessayer plus tard\",\n 'form.success': 'Envoyé avec succès!',\n },\n nl: {\n 'label.addtocalendar': 'Opslaan in Agenda',\n ical: 'iCal File',\n ...calendarNames,\n 'modal.button.default': 'Klik me',\n 'modal.webview.ical.h': 'Open uw browser',\n 'modal.webview.ical.text': 'Helaas hebben in-app browsers problemen met de manier waarop wij kalenderbestanden maken.',\n 'modal.clipboard.text': 'We hebben automatisch een magische URL naar je klembord gekopieerd.',\n 'modal.webview.ical.steps': '
  1. Open een andere browser op uw smartphone, ...
  2. Gebruik de insert functie om verder te gaan.
',\n 'modal.opensafari.ical.h': 'Open Safari',\n 'modal.opensafari.ical.text': 'Helaas heeft iOS enkele problemen met het genereren en openen van het agendabestand buiten Safari.',\n 'modal.opensafari.ical.steps': '
  1. Open Safari, ...
  2. Gebruik de insert functie om verder te gaan.
',\n 'modal.multidate.h': 'Dit is een reeks data',\n 'modal.multidate.text': 'Voeg de afzonderlijke delen één voor één toe:',\n 'date.status.cancelled': 'Deze datum is geannuleerd.',\n 'date.status.cancelled.cta': 'Uw agenda bijwerken!',\n 'modal.subscribe.yahoo.h': 'Toevoegen aan Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Open de Yahoo calendar.
  2. Klik op de \"Acties\" tab.
  3. Selecteer \"Volg Andere Agenda\\'s\".
  4. Kies een naam en plak de URL van uw klembord in het URL-veld.
',\n 'modal.subscribe.yahoo.button': 'Open Yahoo Agenda',\n close: 'Sluiten',\n continue: 'Doorgaan',\n cancel: 'Annuleren',\n expired: 'Verlopen',\n recurring: 'Terugkerend',\n thankyou: 'Bedankt',\n submit: 'Versturen',\n 'label.share.email': 'Delen via E-mail',\n 'label.share.copy': 'Link kopiëren',\n 'label.share.copied': 'Gekopieerd',\n 'label.share.email.subject': 'Onthoud deze datum',\n 'form.error.required': 'Je hebt niet alle vereiste velden correct ingevuld',\n 'form.error.sending': 'Er was een probleem met het versturen van je antwoord. Probeer het later opnieuw',\n 'form.success': 'Succesvol verstuurd!',\n },\n tr: {\n 'label.addtocalendar': 'Takvime Ekle',\n ical: 'iCal Dosyası',\n ...calendarNames,\n 'modal.button.default': 'Beni tıklayın',\n 'modal.webview.ical.h': 'Tarayıcınızı açın',\n 'modal.webview.ical.text': 'Ne yazık ki, uygulama içi tarayıcılar takvim dosyalarını oluşturma şeklimizle ilgili sorunlar yaşıyor.',\n 'modal.clipboard.text': 'Panonuza otomatik olarak sihirli bir URL kopyaladık.',\n 'modal.webview.ical.steps': '
  1. Akıllı telefonunuzda başka bir tarayıcı açın, ...
  2. Devam etmek için insert fonksiyonunu kullanın.
',\n 'modal.opensafari.ical.h': 'Açık Safari',\n 'modal.opensafari.ical.text': 'Ne yazık ki iOS, takvim dosyasını Safari dışında oluştururken ve açarken bazı sorunlar yaşıyor.',\n 'modal.opensafari.ical.steps': '
  1. Açık Safari, ...
  2. Devam etmek için insert fonksiyonunu kullanın.
',\n 'modal.multidate.h': 'Bu bir etkinlik serisidir',\n 'modal.multidate.text': 'Parçaları teker teker ekleyin:',\n 'date.status.cancelled': 'Bu tarih iptal edildi.',\n 'date.status.cancelled.cta': 'Lütfen takviminizi güncelleyin!',\n 'modal.subscribe.yahoo.h': \"Yahoo'ya takvim ekleme\",\n 'modal.subscribe.yahoo.text': '
  1. Yahoo takvimini açın.
  2. \"Eylemler\" sekmesine tıklayın.
  3. \"Diğer Takvimleri Takip Et\" öğesini seçin.
  4. Bir ad seçin ve URL\\'yi panonuzdan URL alanına yapıştırın.
',\n 'modal.subscribe.yahoo.button': 'Yahoo Takvimini aç',\n close: 'Kapat',\n continue: 'Devam etmek',\n cancel: 'İptal',\n expired: 'Günü geçmiş',\n recurring: 'Yinelenen',\n thankyou: 'Teşekkürler',\n submit: 'Gönder',\n 'label.share.email': 'E-posta ile Paylaş',\n 'label.share.copy': 'Bağlantıyı Kopyala',\n 'label.share.copied': 'Kopyalandı',\n 'label.share.email.subject': 'Bu Tarihi Unutma',\n 'form.error.required': 'Gerekli tüm alanları doğru şekilde doldurmadınız',\n 'form.error.sending': 'Yanıtınızı gönderirken bir sorun oluştu. Lütfen daha sonra tekrar deneyin',\n 'form.success': 'Başarıyla gönderildi!',\n },\n zh: {\n 'label.addtocalendar': '添加到日历',\n ical: 'iCal 文件',\n ...calendarNames,\n 'modal.button.default': '点我',\n 'modal.webview.ical.h': '打开浏览器',\n 'modal.webview.ical.text': '不幸的是,应用内浏览器在我们生成日历文件的方式上存在问题。',\n 'modal.clipboard.text': '我们自动将魔术 URL 复制到您的剪贴板。',\n 'modal.webview.ical.steps': '
  1. 打开手机上的任何其他浏览器, ...
  2. 粘贴剪贴板内容并开始。
',\n 'modal.opensafari.ical.h': '打开 Safari',\n 'modal.opensafari.ical.text': '不幸的是,iOS 在 Safari 之外生成和打开日历文件时遇到一些问题。',\n 'modal.opensafari.ical.steps': '
  1. 打开 Safari, ...
  2. 粘贴剪贴板内容并开始。
',\n 'modal.multidate.h': '这是一个活动系列',\n 'modal.multidate.text': '逐个添加各个部分:',\n 'date.status.cancelled': '此日期已取消。',\n 'date.status.cancelled.cta': '请更新您的日历!',\n 'modal.subscribe.yahoo.h': '将日历添加到 Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. 打开 Yahoo 日历。
  2. 点击“操作”标签。
  3. 选择“关注其他日历”。
  4. 选择一个名称并将剪贴板中的 URL 粘贴到 URL 字段中。
',\n 'modal.subscribe.yahoo.button': '打开雅虎日历',\n close: '关',\n continue: '继续',\n cancel: '中止',\n expired: '已到期',\n recurring: '再次发生的',\n thankyou: '谢谢',\n submit: '提交',\n 'label.share.email': '通过电子邮件分享',\n 'label.share.copy': '复制链接',\n 'label.share.copied': '已复制',\n 'label.share.email.subject': '记住这个日期',\n 'form.error.required': '你没有正确填写所有必填字段',\n 'form.error.sending': '发送你的回复时出现问题。请稍后再试',\n 'form.success': '成功发送!',\n },\n ar: {\n 'label.addtocalendar': 'إضافة إلى التقويم',\n ical: 'ملف iCal',\n ...calendarNames,\n 'modal.button.default': 'انقر فوق لي',\n 'modal.webview.ical.h': 'افتح المستعرض الخاص بك',\n 'modal.webview.ical.text': 'لسوء الحظ ، تواجه المتصفحات داخل التطبيق مشاكل في طريقة إنشاء ملف التقويم.',\n 'modal.clipboard.text': 'قمنا تلقائيًا بنسخ عنوان URL سحري إلى الحافظة الخاصة بك.',\n 'modal.webview.ical.steps': '
  1. افتح أي متصفح آخر على هاتفك الذكي, ...
  2. .الصق محتوى الحافظة واذهب
',\n 'modal.opensafari.ical.h': 'افتح Safari',\n 'modal.opensafari.ical.text': 'لسوء الحظ ، يواجه iOS بعض المشكلات في إنشاء ملف التقويم وفتحه خارج Safari.',\n 'modal.opensafari.ical.steps': '
  1. افتح Safari, ...
  2. الصق محتوى الحافظة واذهب.
',\n 'modal.multidate.h': 'هذه سلسلة أحداث',\n 'modal.multidate.text': 'أضف الأجزاء الفردية واحدة تلو الأخرى:',\n 'date.status.cancelled': 'تم إلغاء هذا التاريخ.',\n 'date.status.cancelled.cta': 'الرجاء تحديث التقويم الخاص بك!',\n 'modal.subscribe.yahoo.h': 'أضف التقويم إلى Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. افتح تقويم Yahoo.
  2. انقر فوق علامة التبويب \"الإجراءات\".
  3. حدد \"متابعة تقويمات أخرى\".
  4. اختر اسمًا والصق عنوان URL من الحافظة الخاصة بك في حقل URL.
',\n 'modal.subscribe.yahoo.button': 'افتح تقويم ياهو',\n close: 'قريب',\n continue: 'استمر',\n cancel: 'إحباط',\n expired: 'منتهي الصلاحية',\n recurring: 'يتكرر',\n thankyou: 'شكرا',\n submit: 'إرسال',\n 'label.share.email': 'مشاركة عبر البريد الإلكتروني',\n 'label.share.copy': 'نسخ الرابط',\n 'label.share.copied': 'تم النسخ',\n 'label.share.email.subject': 'تذكر هذا الموعد',\n 'form.error.required': 'لم تقم بملء جميع الحقول المطلوبة بشكل صحيح',\n 'form.error.sending': 'حدثت مشكلة أثناء إرسال ردك. الرجاء المحاولة لاحقاً',\n 'form.success': 'تم الإرسال بنجاح!',\n },\n hi: {\n 'label.addtocalendar': 'कैलेंडर में जोड़ें',\n ical: 'iCal फ़ाइल',\n ...calendarNames,\n 'modal.button.default': 'मुझे क्लिक करें',\n 'modal.webview.ical.h': 'अपना ब्राउज़र खोलें',\n 'modal.webview.ical.text': 'दुर्भाग्य से, इन-ऐप ब्राउज़र में कैलेंडर फ़ाइल बनाने के तरीके में समस्याएँ हैं।',\n 'modal.clipboard.text': 'हमने आपके क्लिपबोर्ड पर स्वचालित रूप से एक जादुई URL कॉपी कर लिया है।',\n 'modal.webview.ical.steps': '
  1. अपने फ़ोन पर दूसरा ब्राउज़र खोलें, ...
  2. क्लिपबोर्ड सामग्री चिपकाएं और जाएं।
',\n 'modal.opensafari.ical.h': 'सफारी खोलें',\n 'modal.opensafari.ical.text': 'दुर्भाग्य से, iOS में सफ़ारी के बाहर कैलेंडर फ़ाइल बनाने और खोलने में कुछ समस्याएँ हैं।',\n 'modal.opensafari.ical.steps': '
  1. सफारी खोलें, ...
  2. क्लिपबोर्ड सामग्री चिपकाएं और जाएं।
',\n 'modal.multidate.h': 'यह एक इवेंट सीरीज़ है',\n 'modal.multidate.text': 'अलग-अलग हिस्सों को एक-एक करके जोड़ें:',\n 'date.status.cancelled': 'यह तिथि रद्द हो गई।',\n 'date.status.cancelled.cta': 'कृपया अपना कैलेंडर अपडेट करें!',\n 'modal.subscribe.yahoo.h': 'Yahoo . में कैलेंडर जोड़ें',\n 'modal.subscribe.yahoo.text': '
  1. Yahoo कैलेंडर खोलें।
  2. \"कृती\" टैब पर क्लिक करें।
  3. \"इतर कॅलेंडर्सचे अनुसरण करा\" चुनें।
  4. एक नाम चुनें और अपने क्लिपबोर्ड से URL को URL फ़ील्ड में पेस्ट करें।
',\n 'modal.subscribe.yahoo.button': 'याहू कैलेंडर खोलें',\n close: 'बंद करना',\n continue: 'जारी रखें',\n cancel: 'रद्द करना',\n expired: 'खत्म हो चुका',\n recurring: 'पुनरावर्ती',\n thankyou: 'धन्यवाद',\n submit: 'जमा करें',\n 'label.share.email': 'ईमेल के माध्यम से साझा करें',\n 'label.share.copy': 'लिंक कॉपी करें',\n 'label.share.copied': 'कॉपी हो गया',\n 'label.share.email.subject': 'इस तारीख को याद रखें',\n 'form.error.required': 'आपने सभी आवश्यक फ़ील्ड सही ढंग से नहीं भरी हैं',\n 'form.error.sending': 'आपका जवाब भेजते समय एक समस्या हुई। कृपया बाद में पुनः प्रयास करें',\n 'form.success': 'सफलतापूर्वक भेजा गया!',\n },\n pl: {\n 'label.addtocalendar': 'Dodaj do kalendarza',\n ical: 'Plik iCal',\n ...calendarNames,\n 'modal.button.default': 'Kliknij mnie',\n 'modal.webview.ical.h': 'Otwórz przeglądarkę',\n 'modal.webview.ical.text': 'Niestety, przeglądarki in-app mają problemy ze sposobem, w jaki generujemy plik kalendarza.',\n 'modal.clipboard.text': 'Automatycznie skopiowaliśmy magiczny adres URL do schowka.',\n 'modal.webview.ical.steps': '
  1. Otwórz inną przeglądarkę w swoim telefonie, ...
  2. Wklej zawartość schowka i ruszaj.
',\n 'modal.opensafari.ical.h': 'Otwórz Safari',\n 'modal.opensafari.ical.text': 'Niestety iOS ma pewne problemy z generowaniem i otwieraniem pliku kalendarza poza Safari.',\n 'modal.opensafari.ical.steps': '
  1. Otwórz Safari, ...
  2. Wklej zawartość schowka i ruszaj.
',\n 'modal.multidate.h': 'To jest cykl imprez',\n 'modal.multidate.text': 'Dodawać po kolei poszczególne części:',\n 'date.status.cancelled': 'Ta data została odwołana.',\n 'date.status.cancelled.cta': 'Zaktualizuj swój kalendarz!',\n 'modal.subscribe.yahoo.h': 'Dodaj kalendarz do Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Otwórz kalendarz Yahoo.
  2. Kliknij na zakładkę \"Czynności\".
  3. Wybierz \"Obserwuj inne kalendarze\".
  4. Wybierz nazwę i wklej adres URL ze schowka w polu URL.
',\n 'modal.subscribe.yahoo.button': 'Otwórz kalendarz Yahoo',\n close: 'Zamknij',\n continue: 'Kontynuować',\n cancel: 'Anuluj',\n expired: 'Wygasły',\n recurring: 'Powtarzający się',\n thankyou: 'Dziękuję',\n submit: 'Wyślij',\n 'label.share.email': 'Udostępnij przez e-mail',\n 'label.share.copy': 'Kopiuj link',\n 'label.share.copied': 'Skopiowane',\n 'label.share.email.subject': 'Zapamiętaj tę datę',\n 'form.error.required': 'Nie wypełniłeś wszystkich wymaganych pól poprawnie',\n 'form.error.sending': 'Wystąpił problem z wysłaniem twojej odpowiedzi. Spróbuj ponownie później',\n 'form.success': 'Wysłano pomyślnie!',\n },\n id: {\n 'label.addtocalendar': 'Tambahkan ke Kalender',\n ical: 'File iCal',\n ...calendarNames,\n 'modal.button.default': 'Klik saya',\n 'modal.webview.ical.h': 'Buka browser Anda',\n 'modal.webview.ical.text': 'Sayangnya, browser dalam aplikasi memiliki masalah dengan cara kami menghasilkan file kalender.',\n 'modal.clipboard.text': 'Kami telah secara otomatis menyalin URL ajaib ke clipboard Anda.',\n 'modal.webview.ical.steps': '
  1. Buka peramban lain pada ponsel Anda, ...
  2. Tempelkan konten clipboard dan pergi.
',\n 'modal.opensafari.ical.h': 'Buka Safari',\n 'modal.opensafari.ical.text': 'Sayangnya, iOS memiliki beberapa masalah dalam membuat dan membuka file kalender di luar Safari.',\n 'modal.opensafari.ical.steps': '
  1. Buka Safari, ...
  2. Tempelkan konten clipboard dan pergi.
',\n 'modal.multidate.h': 'Ini adalah rangkaian acara',\n 'modal.multidate.text': 'Tambahkan masing-masing bagian satu per satu:',\n 'date.status.cancelled': 'Tanggal ini dibatalkan.',\n 'date.status.cancelled.cta': 'Perbarui kalender Anda!',\n 'modal.subscribe.yahoo.h': 'Tambahkan kalender ke Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Buka kalender Yahoo.
  2. Klik pada tab \"Tindakan\".
  3. Pilih \"Ikuti Kalender Lain\".
  4. Pilih nama dan tempelkan URL dari clipboard Anda ke bidang URL.
',\n 'modal.subscribe.yahoo.button': 'Buka kalender Yahoo',\n close: 'Tutup',\n continue: 'Lanjutkan',\n cancel: 'Batal',\n expired: 'Kedaluwarsa',\n recurring: 'Berulang',\n thankyou: 'Terima kasih',\n submit: 'Kirim',\n 'label.share.email': 'Bagikan via email',\n 'label.share.copy': 'Salin tautan',\n 'label.share.copied': 'Tersalin',\n 'label.share.email.subject': 'Ingat tanggal ini',\n 'form.error.required': 'Kamu belum mengisi semua kolom yang diperlukan dengan benar',\n 'form.error.sending': 'Ada masalah saat mengirim jawabanmu. Coba lagi nanti',\n 'form.success': 'Berhasil terkirim!',\n },\n no: {\n 'label.addtocalendar': 'Legg til i kalenderen',\n ical: 'iCal-fil',\n ...calendarNames,\n 'modal.button.default': 'Klikk på meg',\n 'modal.webview.ical.h': 'Åpne nettleseren din',\n 'modal.webview.ical.text': 'Dessverre har nettlesere i appen problemer med måten vi genererer kalenderfilen på.',\n 'modal.clipboard.text': 'Vi kopierte automatisk en magisk URL til utklippstavlen din.',\n 'modal.webview.ical.steps': '
  1. Åpne en annen nettleser på telefonen, ...
  2. Lim inn innholdet på utklippstavlen og gå.
',\n 'modal.opensafari.ical.h': 'Åpne Safari',\n 'modal.opensafari.ical.text': 'Dessverre har iOS noen problemer med å generere og åpne kalenderfilen utenfor Safari.',\n 'modal.opensafari.ical.steps': '
  1. Åpne Safari, ...
  2. Lim inn innholdet på utklippstavlen og gå.
',\n 'modal.multidate.h': 'Dette er en avtaleserie',\n 'modal.multidate.text': 'Legg til de enkelte datoene i kalenderen din i rekkefølge:',\n 'date.status.cancelled': 'Denne datoen ble avlyst.',\n 'date.status.cancelled.cta': 'Oppdater kalenderen din!',\n 'modal.subscribe.yahoo.h': 'Legg til kalender til Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Åpne Yahoo-kalenderen.
  2. Klikk på «Handlinger»-fanen.
  3. Velg «Følg andre kalendere».
  4. Velg et navn og lim inn URL-en fra utklippstavlen i URL-feltet.
',\n 'modal.subscribe.yahoo.button': 'Åpne Yahoo-kalenderen',\n close: 'Lukk',\n continue: 'Fortsette',\n cancel: 'Avbryt',\n expired: 'Utløpt',\n recurring: 'Tilbakevendende',\n thankyou: 'Takk',\n submit: 'Send inn',\n 'label.share.email': 'Del via e-post',\n 'label.share.copy': 'Kopier lenke',\n 'label.share.copied': 'Kopiert',\n 'label.share.email.subject': 'Husk denne datoen',\n 'form.error.required': 'Du har ikke fylt ut alle de nødvendige feltene riktig',\n 'form.error.sending': 'Det oppsto et problem med å sende svaret ditt. Vennligst prøv igjen senere',\n 'form.success': 'Sendt suksessfullt!',\n },\n fi: {\n 'label.addtocalendar': 'Lisää kalenteriin',\n ical: 'iCal-tiedosto',\n ...calendarNames,\n 'modal.button.default': 'Klikkaa minua',\n 'modal.webview.ical.h': 'Avaa selain',\n 'modal.webview.ical.text': 'Valitettavasti sovelluksen sisäisillä selaimilla on ongelmia kalenteritiedoston luomisessa.',\n 'modal.clipboard.text': 'Olemme automaattisesti kopioineet maagisen URL-osoitteen leikepöydällesi.',\n 'modal.webview.ical.steps': '
  1. Avaa toinen selain puhelimessasi., ...
  2. liitä leikepöydän sisältö ja lähde.
',\n 'modal.opensafari.ical.h': 'Avaa Safari',\n 'modal.opensafari.ical.text': 'Valitettavasti iOS:llä on ongelmia kalenteritiedoston luomisessa ja avaamisessa Safarin ulkopuolella.',\n 'modal.opensafari.ical.steps': '
  1. Avaa Safari, ...
  2. liitä leikepöydän sisältö ja lähde.
',\n 'modal.multidate.h': 'Tämä on tapahtumasarja',\n 'modal.multidate.text': 'Lisää yksittäiset osat yksi kerrallaan:',\n 'date.status.cancelled': 'Tämä päivämäärä peruttiin.',\n 'date.status.cancelled.cta': 'Päivitä kalenterisi!',\n 'modal.subscribe.yahoo.h': 'Lisää kalenteri Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Avaa Yahoo-kalenteri.
  2. Napsauta \"Toiminnot\"-välilehteä.
  3. Valitse \"Seuraa muiden kalentereita\".
  4. Valitse nimi ja liitä URL-osoite leikepöydältäsi URL-kenttään.
',\n 'modal.subscribe.yahoo.button': 'Avaa Yahoo-kalenteri',\n close: 'Sulje',\n continue: 'Jatkaa',\n cancel: 'Peruuta',\n expired: 'Vanhentunut',\n recurring: 'Toistuva',\n thankyou: 'Kiitos',\n submit: 'Lähetä',\n 'label.share.email': 'Jaa sähköpostitse',\n 'label.share.copy': 'Kopioi linkki',\n 'label.share.copied': 'Kopioitu',\n 'label.share.email.subject': 'Muista tämä päivämäärä',\n 'form.error.required': 'Et täyttänyt kaikkia vaadittuja kenttiä oikein',\n 'form.error.sending': 'Vastauksen lähettämisessä ilmeni ongelma. Yritä myöhemmin uudelleen',\n 'form.success': 'Lähetetty onnistuneesti!',\n },\n sv: {\n 'label.addtocalendar': 'Lägg till i kalender',\n ical: 'iCal-fil',\n ...calendarNames,\n 'modal.button.default': 'Klicka på mig',\n 'modal.webview.ical.h': 'Öppna din webbläsare',\n 'modal.webview.ical.text': 'Tyvärr har webbläsare i appen problem med hur vi genererar kalenderfilen.',\n 'modal.clipboard.text': 'Vi har automatiskt kopierat en magisk URL till ditt klippblock.',\n 'modal.webview.ical.steps': '
  1. Öppna en annan webbläsare på telefonen, ...
  2. Insätt innehållet i klippbordet och kör.
',\n 'modal.opensafari.ical.h': 'Öppna Safari',\n 'modal.opensafari.ical.text': 'Tyvärr har iOS vissa problem med att generera och öppna kalenderfilen utanför Safari.',\n 'modal.opensafari.ical.steps': '
  1. Öppna Safari, ...
  2. Insätt innehållet i klippbordet och kör.
',\n 'modal.multidate.h': 'Detta är en evenemangsserie',\n 'modal.multidate.text': 'Lägg till de enskilda delarna en efter en:',\n 'date.status.cancelled': 'Detta datum har ställts in.',\n 'date.status.cancelled.cta': 'Uppdatera din kalender!',\n 'modal.subscribe.yahoo.h': 'Lägg till kalender i Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Öppna Yahoo-kalendern.
  2. Klicka på fliken \"Åtgärder\".
  3. Välj \"Följ andra kalendrar\".
  4. Välj ett namn och klistra in URL:en från klippbordet i URL-fältet.
',\n 'modal.subscribe.yahoo.button': 'Öppna Yahoo-kalendern',\n close: 'Stäng',\n continue: 'Fortsätta',\n cancel: 'Avbryt',\n expired: 'Utgånget',\n recurring: 'Återkommande',\n thankyou: 'Tack',\n submit: 'Skicka',\n 'label.share.email': 'Dela via e-post',\n 'label.share.copy': 'Kopiera länk',\n 'label.share.copied': 'Kopierat',\n 'label.share.email.subject': 'Kom ihåg detta datum',\n 'form.error.required': 'Du har inte fyllt i alla nödvändiga fält korrekt',\n 'form.error.sending': 'Det uppstod ett problem när ditt svar skickades. Försök igen senare',\n 'form.success': 'Skickat framgångsrikt!',\n },\n cs: {\n 'label.addtocalendar': 'Přidat do kalendáře',\n ical: 'Soubor iCal',\n ...calendarNames,\n 'modal.button.default': 'Klikněte na mě',\n 'modal.webview.ical.h': 'Otevřete prohlížeč',\n 'modal.webview.ical.text': 'Prohlížeče v aplikacích mají bohužel problémy se způsobem generování souboru kalendáře.',\n 'modal.clipboard.text': 'Do schránky jsme automaticky zkopírovali kouzelnou adresu URL.',\n 'modal.webview.ical.steps': '
  1. Otevření jiného prohlížeče v telefonu, ...
  2. Vložte obsah schránky a přejděte.
',\n 'modal.opensafari.ical.h': 'Otevřít Safari',\n 'modal.opensafari.ical.text': 'Bohužel má iOS nějaké problémy s generováním a otevíráním souboru kalendáře mimo Safari.',\n 'modal.opensafari.ical.steps': '
  1. Otevřít Safari, ...
  2. Vložte obsah schránky a přejděte.
',\n 'modal.multidate.h': 'Jedná se o sérii událostí',\n 'modal.multidate.text': 'Přidávejte jednotlivé díly jeden po druhém:',\n 'date.status.cancelled': 'Toto datum bylo zrušeno.',\n 'date.status.cancelled.cta': 'Aktualizujte svůj kalendář!',\n 'modal.subscribe.yahoo.h': 'Přidat kalendář do Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Otevřete kalendář Yahoo.
  2. Klikněte na kartu \"Akce\".
  3. Vyberte možnost \"Sledovat další kalendáře\".
  4. Vyberte název a vložte adresu URL ze schránky do pole URL.
',\n 'modal.subscribe.yahoo.button': 'Otevřete kalendář Yahoo',\n close: 'Zavřít',\n continue: 'Pokračovat',\n cancel: 'Storno',\n expired: 'Platnost vypršela',\n recurring: 'Opakující se',\n thankyou: 'Děkuji',\n submit: 'Odeslat',\n 'label.share.email': 'Sdílet e-mailem',\n 'label.share.copy': 'Kopírovat odkaz',\n 'label.share.copied': 'Zkopírováno',\n 'label.share.email.subject': 'Zapamatuj si tento termín',\n 'form.error.required': 'Nevyplnil jsi správně všechna požadovaná pole',\n 'form.error.sending': 'Při odesílání tvé odpovědi došlo k problému. Zkus to prosím později znovu',\n 'form.success': 'Úspěšně odesláno!',\n },\n ja: {\n 'label.addtocalendar': 'カレンダーに追加',\n ical: 'iCalファイル',\n ...calendarNames,\n 'modal.button.default': 'クリックしてください',\n 'modal.webview.ical.h': 'ブラウザを起動する',\n 'modal.webview.ical.text': '残念ながら、アプリ内ブラウザは、カレンダーファイルの生成方法に問題があります。',\n 'modal.clipboard.text': '魔法のURLを自動的にクリップボードにコピーしています。',\n 'modal.webview.ical.steps': '
  1. スマートフォンで別のブラウザを起動する, ...
  2. クリップボードの内容を貼り付けて行く。
',\n 'modal.opensafari.ical.h': 'オープンSafari',\n 'modal.opensafari.ical.text': '残念ながら、iOS では、Safari の外でカレンダー ファイルを生成したり開いたりする際にいくつかの問題があります。',\n 'modal.opensafari.ical.steps': '
  1. オープンSafari, ...
  2. クリップボードの内容を貼り付けて行く。
',\n 'modal.multidate.h': 'イベントシリーズです',\n 'modal.multidate.text': '個々のパーツを一つずつ追加していく:',\n 'date.status.cancelled': 'この日はキャンセルになりました。',\n 'date.status.cancelled.cta': 'カレンダーを更新する!',\n 'modal.subscribe.yahoo.h': 'Yahooにカレンダーを追加する',\n 'modal.subscribe.yahoo.text': '
  1. Yahooカレンダーを開く。
  2. [実行] タブをクリックします。
  3. [その他のカレンダーのフォロー] を選択します。
  4. 名前を決めて、クリップボードにあるURLをURL欄に貼り付けます。
',\n 'modal.subscribe.yahoo.button': 'Yahooカレンダーを開く',\n close: '閉じる',\n continue: '続ける',\n cancel: 'キャンセル',\n expired: '期限切れ',\n recurring: '繰り返し',\n thankyou: 'ありがとう',\n submit: '送信',\n 'label.share.email': 'メールで共有',\n 'label.share.copy': 'リンクをコピー',\n 'label.share.copied': 'コピー済み',\n 'label.share.email.subject': 'この日付を覚えておいて',\n 'form.error.required': '必要なフィールドをすべて正しく入力していません',\n 'form.error.sending': 'あなたの回答を送信する際に問題が発生しました。後で再試行してください',\n 'form.success': '正常に送信されました!',\n },\n it: {\n 'label.addtocalendar': 'Aggiungi al calendario',\n ical: 'File iCal',\n ...calendarNames,\n 'modal.button.default': 'Clicca su di me',\n 'modal.webview.ical.h': 'Aprire il browser',\n 'modal.webview.ical.text': 'Purtroppo i browser in-app hanno problemi con il modo in cui generiamo il file del calendario.',\n 'modal.clipboard.text': 'Abbiamo copiato automaticamente un URL magico negli appunti.',\n 'modal.webview.ical.steps': '
  1. Aprire un altro browser sul cellulare, ...
  2. Incollare il contenuto degli appunti e partire.
',\n 'modal.opensafari.ical.h': 'Aprire Safari',\n 'modal.opensafari.ical.text': \"Sfortunatamente, iOS ha alcuni problemi nella generazione e nell'apertura del file del calendario al di fuori di Safari.\",\n 'modal.opensafari.ical.steps': '
  1. Aprire Safari, ...
  2. Incollare il contenuto degli appunti e partire.
',\n 'modal.multidate.h': 'Questa è una serie di eventi',\n 'modal.multidate.text': 'Aggiungere le singole parti una per una:',\n 'date.status.cancelled': 'La data è stata annullata.',\n 'date.status.cancelled.cta': 'Aggiornare il calendario!',\n 'modal.subscribe.yahoo.h': 'Aggiungi il calendario a Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Aprire il calendario di Yahoo.
  2. Fare clic sulla scheda \"Azioni\".
  3. Selezionare \"Segui altri calendari\".
  4. Scegliere un nome e incollare l\\'URL dagli appunti nel campo URL.
',\n 'modal.subscribe.yahoo.button': 'Apri il calendario di Yahoo',\n close: 'Chiudere',\n continue: 'Continuare',\n cancel: 'Annulla',\n expired: 'Scaduta',\n recurring: 'Ricorrente',\n thankyou: 'Grazie',\n submit: 'Invia',\n 'label.share.email': 'Condividi via Email',\n 'label.share.copy': 'Copia il link',\n 'label.share.copied': 'Copiato',\n 'label.share.email.subject': 'Ricorda questa data',\n 'form.error.required': 'Non hai compilato correttamente tutti i campi richiesti',\n 'form.error.sending': \"C'è stato un problema nell'invio della tua risposta. Prova di nuovo più tardi\",\n 'form.success': 'Inviato con successo!',\n },\n ko: {\n 'label.addtocalendar': '캘린더에 추가',\n ical: 'iCal 파일',\n ...calendarNames,\n 'modal.button.default': '클릭 해주세요',\n 'modal.webview.ical.h': '브라우저 열기',\n 'modal.webview.ical.text': '불행히도 인앱 브라우저는 캘린더 파일을 생성하는 방식에 문제가 있습니다.',\n 'modal.clipboard.text': '매직 URL을 클립보드에 자동으로 복사했습니다.',\n 'modal.webview.ical.steps': '
  1. 휴대전화에서 다른 브라우저 열기, ...
  2. 클립보드 내용을 붙여넣고 이동합니다.
',\n 'modal.opensafari.ical.h': 'Safari 열기',\n 'modal.opensafari.ical.text': '안타깝게도 iOS에는 Safari 외부에서 캘린더 파일을 생성하고 여는 데 몇 가지 문제가 있습니다.',\n 'modal.opensafari.ical.steps': '
  1. Safari 열기, ...
  2. 클립보드 내용을 붙여넣고 이동합니다.
',\n 'modal.multidate.h': '이벤트 시리즈입니다',\n 'modal.multidate.text': '개별 부품을 하나씩 추가:',\n 'date.status.cancelled': '이 날짜는 취소되었습니다.',\n 'date.status.cancelled.cta': '캘린더를 업데이트하세요!',\n 'modal.subscribe.yahoo.h': 'Yahoo에 캘린더 추가',\n 'modal.subscribe.yahoo.text': '
  1. Yahoo 캘린더를 엽니다.
  2. \"동작\" 탭을 클릭합니다.
  3. \"다른 일정관리 팔로우\"를 선택합니다.
  4. 이름을 선택하고 클립보드의 URL을 URL 필드에 붙여넣습니다.
',\n 'modal.subscribe.yahoo.button': '야후 캘린더 열기',\n close: '닫다',\n continue: '계속하다',\n cancel: '취소',\n expired: '만료됨',\n recurring: '되풀이',\n thankyou: '감사합니다',\n submit: '제출하기',\n 'label.share.email': '이메일로 공유하기',\n 'label.share.copy': '링크 복사하기',\n 'label.share.copied': '복사됨',\n 'label.share.email.subject': '이 날짜를 기억하세요',\n 'form.error.required': '필수 필드를 모두 올바르게 채우지 않았습니다',\n 'form.error.sending': '응답을 보내는 데 문제가 발생했습니다. 나중에 다시 시도해주세요',\n 'form.success': '성공적으로 전송됨!',\n },\n vi: {\n 'label.addtocalendar': 'Thêm vào Lịch',\n ical: 'Tệp iCal',\n ...calendarNames,\n 'modal.button.default': 'Nhấp vào đây',\n 'modal.webview.ical.h': 'Mở trình duyệt của bạn',\n 'modal.webview.ical.text': 'Rất tiếc, các trình duyệt trong ứng dụng gặp sự cố với cách chúng tôi tạo tệp lịch.',\n 'modal.clipboard.text': 'Chúng tôi đã tự động sao chép một URL ma thuật vào khay nhớ tạm của bạn.',\n 'modal.webview.ical.steps': '
  1. Mở trình duyệt khác trên điện thoại của bạn, ...
  2. Dán nội dung khay nhớ tạm và bắt đầu.
',\n 'modal.opensafari.ical.h': 'Mở Safari',\n 'modal.opensafari.ical.text': 'Rất tiếc, iOS gặp một số sự cố khi tạo và mở tệp lịch bên ngoài Safari.',\n 'modal.opensafari.ical.steps': '
  1. Mở Safari, ...
  2. Dán nội dung khay nhớ tạm và bắt đầu.
',\n 'modal.multidate.h': 'Đây là một chuỗi sự kiện',\n 'modal.multidate.text': 'Thêm từng phần riêng lẻ một:',\n 'date.status.cancelled': 'Ngày này đã bị hủy.',\n 'date.status.cancelled.cta': 'Cập nhật lịch của bạn!',\n 'modal.subscribe.yahoo.h': 'Thêm lịch vào Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Mở Lịch Yahoo.
  2. Nhấp vào tab \"Hành động\".
  3. Chọn \"Theo dõi các Lịch khác\".
  4. Chọn tên và dán URL từ khay nhớ tạm của bạn vào trường URL.
',\n 'modal.subscribe.yahoo.button': 'Mở lịch Yahoo',\n close: 'Đóng',\n continue: 'Tiếp tục',\n cancel: 'Hủy bỏ',\n expired: 'Hết hạn',\n recurring: 'Định kỳ',\n thankyou: 'Cảm ơn',\n submit: 'Gửi',\n 'label.share.email': 'Chia sẻ qua Email',\n 'label.share.copy': 'Sao chép liên kết',\n 'label.share.copied': 'Đã sao chép',\n 'label.share.email.subject': 'Ghi nhớ ngày này',\n 'form.error.required': 'Bạn chưa điền đúng tất cả các trường bắt buộc',\n 'form.error.sending': 'Có sự cố khi gửi phản hồi của bạn. Vui lòng thử lại sau',\n 'form.success': 'Gửi thành công!',\n },\n ro: {\n 'label.addtocalendar': 'Adauga In Calendar',\n ical: 'Fisier iCal',\n ...calendarNames,\n 'modal.button.default': 'Apasa-ma',\n 'modal.webview.ical.h': 'Deschide browserul',\n 'modal.webview.ical.text': 'Din pacate, browserele din aplicatie au probleme cu generarea de fisiere pentru calendar.',\n 'modal.clipboard.text': 'Ti-am copiat automat un URL magic in clipboard',\n 'modal.webview.ical.steps': '
  1. Deschide un alt browser pe telefonul tau, ...
  2. Lipeste continutul din clipboard si continua.
',\n 'modal.opensafari.ical.h': 'Deschide Safari',\n 'modal.opensafari.ical.text': 'Din păcate, iOS are unele probleme la generarea și deschiderea fișierului calendar în afara Safari.',\n 'modal.opensafari.ical.steps': '
  1. Deschides Safari, ...
  2. Lipeste continutul din clipboard si continua.
',\n 'modal.multidate.h': 'Aceasta este o serie de evenimente',\n 'modal.multidate.text': 'Adauga evenimentele individuale una cate una:',\n 'date.status.cancelled': 'Aceasta data a fost anulata.',\n 'date.status.cancelled.cta': 'Te rugam sa-ti updatezi calendarul!',\n 'modal.subscribe.yahoo.h': 'Adauga Calendar in Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Deschide acum calendarul Yahoo.
  2. Apasa pe tab-ul de \"Actiuni\".
  3. Apasa \"Urmareste alte calendare\".
  4. Seteaza un nume si lipeste continutul din clipboard in casuta cu url.
',\n 'modal.subscribe.yahoo.button': 'Deschideți calendarul Yahoo',\n close: 'Inchide',\n continue: 'Continua',\n cancel: 'Anuleaza',\n expired: 'Expirat',\n recurring: 'Recurente',\n thankyou: 'Mulțumesc',\n submit: 'Trimite',\n 'label.share.email': 'Distribuie prin e-mail',\n 'label.share.copy': 'Copiază linkul',\n 'label.share.copied': 'Copiat',\n 'label.share.email.subject': 'Ține minte această dată',\n 'form.error.required': 'Nu ai completat corect toate câmpurile necesare',\n 'form.error.sending': 'A apărut o problemă la trimiterea răspunsului tău. Încearcă din nou mai târziu',\n 'form.success': 'Trimis cu succes!',\n },\n fa: {\n 'label.addtocalendar': 'افزودن به تقویم',\n ical: 'پرونده iCal',\n ...calendarNames,\n 'modal.button.default': 'اینجا کلیک کنید',\n 'modal.webview.ical.h': 'مرورگر خود را باز کنید',\n 'modal.webview.ical.text': 'متاسفانه، مرورگرهای درون برنامه‌ای با نحوه تولید پرونده تقویم مشکل دارند.',\n 'modal.clipboard.text': 'ما به طور خودکار یک نشانی اینترنتی جادویی را در کلیپ‌بورد شما کپی کردیم.',\n 'modal.webview.ical.steps': '
  1. مرورگر دیگری را در گوشی خود باز کنید، ...
  2. محتوای کلیپ‌بورد را Paste کنید و Go را بزنید که آدرس باز شود.
',\n 'modal.opensafari.ical.h': 'سافاری را باز کنید',\n 'modal.opensafari.ical.text': 'متأسفانه iOS در تولید و باز کردن فایل تقویم خارج از سافاری مشکلاتی دارد.',\n 'modal.opensafari.ical.steps': '
  1. سافاری را باز کنید، ...
  2. محتوای کلیپ‌بورد را Paste کنید و Go را بزنید که آدرس باز شود.
',\n 'modal.multidate.h': 'این یک سری رویداد است',\n 'modal.multidate.text': 'رویدادهای شخصی را یکی یکی اضافه کنید:',\n 'date.status.cancelled': 'این تاریخ لغو شد',\n 'date.status.cancelled.cta': 'لطفا تقویم خود را به‌روز کنید!',\n 'modal.subscribe.yahoo.h': 'افزودن تقویم به یاهو',\n 'modal.subscribe.yahoo.text': '
  1. اکنون تقویم یاهو را باز کنید.
  2. روی زبانه «Actions» کلیک کنید.
  3. روی «Follow Other Calendars» ضربه بزنید.
  4. یک نام وارد کنید و محتوای کلیپ‌بورد را در قسمت url قرار دهید.
',\n 'modal.subscribe.yahoo.button': 'تقویم یاهو را باز کنید',\n close: 'بستن',\n continue: 'ادامه دادن',\n cancel: 'لغو',\n expired: 'منقضی شده',\n thankyou: 'ممنون',\n submit: 'ارسال',\n 'label.share.email': 'اشتراک‌گذاری از طریق ایمیل',\n 'label.share.copy': 'کپی لینک',\n 'label.share.copied': 'کپی شد',\n 'label.share.email.subject': 'این تاریخ را به یاد داشته باشید',\n 'form.error.required': 'شما همه فیلدهای لازم را به درستی پر نکرده‌اید',\n 'form.error.sending': 'مشکلی در ارسال پاسخ شما وجود داشت. لطفا بعدا دوباره تلاش کنید',\n 'form.success': 'با موفقیت ارسال شد!',\n },\n et: {\n 'label.addtocalendar': 'Lisa kalendrisse',\n ical: 'iCal fail',\n ...calendarNames,\n 'modal.button.default': 'Kliki siia',\n 'modal.webview.ical.h': 'Ava oma veebilehitseja',\n 'modal.webview.ical.text': 'Kahjuks on rakendusesisestel veebilehitsejatel probleeme kalendrifailide loomisega.',\n 'modal.clipboard.text': 'Kalendri veebi aadress on automaatselt kopeeritud sinu lõikelauale.',\n 'modal.webview.ical.steps': '
  1. Ava teine veebilehitseja oma telefonis, ...
  2. Kleebi lõikelaua sisu ning mine sellele lehele.
',\n 'modal.opensafari.ical.h': 'Ava Safari',\n 'modal.opensafari.ical.text': 'Kahjuks on iOS-il probleeme kalendrifaili genereerimise ja avamisega väljaspool Safarit.',\n 'modal.opensafari.ical.steps': '
  1. Ava Safari, ...
  2. Kleebi lõikelaua sisu ning mine sellele lehele.
',\n 'modal.multidate.h': 'See on sündmuste seeria',\n 'modal.multidate.text': 'Ava üksikud sündmused ükshaaval:',\n 'date.status.cancelled': 'See kuupäev on tühistatud.',\n 'date.status.cancelled.cta': 'Palun uuenda oma kalendrit!',\n 'modal.subscribe.yahoo.h': 'Lisa kalender Yahoo-sse',\n 'modal.subscribe.yahoo.text': '
  1. Ava oma Yahoo kalender.
  2. Kliki \"Actions\" vahelehte.
  3. Vajuta \"Follow Other Calendars\".
  4. Määra nimi ning lisa lõikelaua sisu URL (veebi aadressi) väljale.
',\n 'modal.subscribe.yahoo.button': 'Avage Yahoo kalender',\n close: 'Sulge',\n continue: 'Jätkama',\n cancel: 'Tühista',\n expired: 'Aegunud',\n thankyou: 'Aitäh',\n submit: 'Saada',\n 'label.share.email': 'Jaga e-posti teel',\n 'label.share.copy': 'Kopeeri link',\n 'label.share.copied': 'Kopeeritud',\n 'label.share.email.subject': 'Pane see kuupäev kirja',\n 'form.error.required': 'Sa pole kõiki nõutavaid välju korrektselt täitnud',\n 'form.error.sending': 'Sinu vastuse saatmisel tekkis probleem. Palun proovi hiljem uuesti',\n 'form.success': 'Edukalt saadetud!',\n },\n};\nconst availableLanguages = Object.keys(i18nStrings);\nfunction atcb_translate_hook(identifier, data) {\n if (data.customLabels && data.customLabels[`${identifier}`] && data.customLabels[`${identifier}`] !== '') {\n return atcb_rewrite_html_elements(data.customLabels[`${identifier}`]);\n } else {\n return atcb_translate(identifier, data.language);\n }\n}\nfunction atcb_translate(identifier, language) {\n if (!language) {\n language = 'en';\n }\n if (i18nStrings[`${language}`][`${identifier}`]) {\n return i18nStrings[`${language}`][`${identifier}`];\n }\n if (language !== 'en') {\n return atcb_translate(identifier, 'en');\n }\n return identifier;\n}\n\n\nlet atcbInitialGlobalInit = false;\nlet atcbBtnCount = 0;\nconst lightModeMutationObserver = [];\nconst template = `
`;\nif (atcbIsBrowser()) {\n class AddToCalendarButton extends HTMLElement {\n constructor() {\n super();\n this._initialized = new Promise((resolve) => (this._initializedResolver = resolve));\n const elem = document.createElement('template');\n elem.innerHTML = template;\n this.attachShadow({ mode: 'open', delegateFocus: true });\n this.shadowRoot.append(elem.content.cloneNode(true));\n this.state = {\n initializing: false,\n initialized: false,\n ready: false,\n updatePending: false,\n };\n this.data = {};\n this.error = false;\n }\n connectedCallback() {\n if (!this.initializing) {\n this.initializing = true;\n setTimeout(() => this.initializeComponent(), 0);\n }\n }\n async initializeComponent() {\n if (this.state.ready) {\n return;\n }\n this.state.initializing = true;\n const debugVal = this.getAttribute('debug');\n this.debug = this.hasAttribute('debug') && (!debugVal || debugVal === 'true' || debugVal === '') ? true : false;\n if ((this.hasAttribute('proKey') && this.getAttribute('proKey') !== '') || (this.hasAttribute('prokey') && this.getAttribute('prokey') !== '')) {\n const dev = this.hasAttribute('dev') && (this.getAttribute('dev') === null || this.getAttribute('dev') === '' || this.getAttribute('dev') === 'true') ? true : false;\n if (this.hasAttribute('proKey') && this.getAttribute('proKey') !== '') {\n this.data = await atcb_get_pro_data(this.getAttribute('proKey'), this, { dev: dev });\n } else {\n this.data = await atcb_get_pro_data(this.getAttribute('prokey'), this, { dev: dev });\n }\n if (this.data.proKey) this.proKey = this.data.proKey;\n }\n if (!this.data.name || this.data.name === '') {\n this.data.proKey = '';\n try {\n this.data = await atcb_process_inline_data(this, this.debug);\n } catch (e) {\n if (this.debug) {\n console.error(e);\n atcb_render_debug_msg(this.shadowRoot, e);\n }\n this.state.initializing = false;\n this.state.ready = true;\n return;\n }\n }\n await this.initButton();\n this.state.initializing = false;\n this.state.initialized = true;\n this.state.ready = true;\n this._initializedResolver();\n return;\n }\n whenInitialized() {\n return this._initialized;\n }\n disconnectedCallback() {\n atcb_cleanup(this.shadowRoot, this.identifier);\n if (this.debug) {\n console.log('Add to Calendar Button \"' + this.identifier + '\" destroyed');\n }\n if (document.querySelectorAll('add-to-calendar-button').length === 0) {\n atcbBtnCount = 0;\n }\n }\n static get observedAttributes() {\n const observeAdditionally = ['instance', 'prokey', 'proKey'];\n if (this.proKey && this.proKey !== '') {\n return atcbWcProParams\n .map((element) => {\n return element.toLowerCase();\n })\n .concat(observeAdditionally);\n }\n return atcbWcParams\n .map((element) => {\n return element.toLowerCase();\n })\n .concat(observeAdditionally);\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (!this.state.ready) {\n return;\n }\n if (this.debug && this.state.initialized) {\n console.log(`${name}'s value has been changed from ${oldValue} to ${newValue}`);\n }\n if (!this.updatePending) {\n this.updatePending = true;\n setTimeout(() => this.updateComponent(), 0);\n }\n }\n async updateComponent() {\n if (!this.updatePending) return;\n this.data = {};\n this.shadowRoot.querySelector('.atcb-initialized').remove();\n const elem = document.createElement('template');\n elem.innerHTML = template;\n this.shadowRoot.append(elem.content.cloneNode(true));\n if (this.hasAttribute('proKey') && this.getAttribute('proKey') !== '') {\n this.data = await atcb_get_pro_data(this.getAttribute('proKey'), this);\n if (this.data.proKey) this.proKey = this.data.proKey;\n } else if (this.hasAttribute('prokey') && this.getAttribute('prokey') !== '') {\n this.data = await atcb_get_pro_data(this.getAttribute('prokey'), this);\n if (this.data.proKey) this.proKey = this.data.proKey;\n }\n if (!this.data.name || this.data.name === '') {\n try {\n this.data = await atcb_process_inline_data(this, this.debug);\n } catch (e) {\n if (this.debug) {\n console.error(e);\n atcb_render_debug_msg(this.shadowRoot, e);\n }\n this.updatePending = false;\n return;\n }\n }\n atcb_cleanup(this.shadowRoot, this.identifier);\n await this.initButton();\n this.updatePending = false;\n }\n async initButton() {\n if (!this.state.initialized) {\n atcbBtnCount = atcbBtnCount + 1;\n }\n if (this.identifier && this.identifier !== '') {\n this.data.identifier = this.identifier;\n } else {\n if (this.data.identifier && this.data.identifier !== '') {\n if (!/^[\\w\\-_]+$/.test(this.data.identifier)) {\n this.data.identifier = '';\n if (this.debug) {\n let prefix = 'Add to Calendar Button';\n if (this.data.rsvp && Object.keys(this.data.rsvp).length > 0) {\n prefix = 'RSVP';\n }\n console.warn(prefix + ' generation: identifier invalid - using auto numbers instead');\n }\n } else {\n this.data.identifier = 'atcb-btn-' + this.data.identifier;\n }\n }\n if (this.data.identifier == null || this.data.identifier == '') {\n this.data.identifier = 'atcb-btn-' + atcbBtnCount;\n }\n this.identifier = this.data.identifier;\n }\n this.setAttribute('atcb-button-id', this.data.identifier);\n try {\n this.style.visibility = 'visible';\n this.style.opacity = '1';\n this.style.position = 'relative';\n await atcb_build_button(this.shadowRoot, this.data);\n return true;\n } catch (e) {\n if (this.debug) {\n console.error(e.message ? e.message : e);\n atcb_render_debug_msg(this.shadowRoot, e);\n }\n return false;\n }\n }\n }\n if (!customElements.get('add-to-calendar-button')) {\n customElements.define('add-to-calendar-button', AddToCalendarButton);\n }\n}\nasync function atcb_process_inline_data(el, debug = false) {\n let data;\n try {\n data = atcb_read_attributes(el);\n await atcb_check_required(data);\n } catch (e) {\n const slotInput = el.innerHTML.trim();\n if (!slotInput) {\n throw new Error('Add to Calendar Button generation failed: No data provided.');\n }\n try {\n const atcbJsonInput = JSON.parse(atcb_secure_content(slotInput.replace(/(\\r\\n|\\n|\\r)/g, ''), false));\n await atcb_check_required(atcbJsonInput);\n data = atcbJsonInput;\n } catch (jsonError) {\n if (debug) {\n console.error(jsonError);\n }\n throw new Error('Add to Calendar Button generation failed: no data provided or missing required fields - see console logs for details');\n }\n }\n return data;\n}\nfunction atcb_read_attributes(el, params = atcbWcParams) {\n let data = {};\n for (let i = 0; i < params.length; i++) {\n let attr = params[`${i}`];\n if (el.hasAttribute(`${attr}`)) {\n let inputVal = atcb_secure_content(el.getAttribute(`${attr}`).replace(/(\\\\r\\\\n|\\\\n|\\\\r)/g, ''), false);\n let val;\n if (atcbWcBooleanParams.includes(attr)) {\n val = !inputVal || inputVal === '' || inputVal.toLowerCase() === 'true' ? true : false;\n } else if (atcbWcObjectParams.includes(attr)) {\n val = JSON.parse(inputVal);\n } else if (atcbWcObjectArrayParams.includes(attr)) {\n const cleanedInput = (function () {\n if (inputVal.substring(0, 1) != '[') {\n return '[' + inputVal + ']';\n }\n return inputVal;\n })();\n val = JSON.parse(cleanedInput);\n } else if (atcbWcArrayParams.includes(attr)) {\n const cleanedInput = (function () {\n let newVal = inputVal;\n if (inputVal.includes('\"') || inputVal.includes(\"'\")) {\n if (inputVal.includes('[')) {\n newVal = inputVal.substring(2, inputVal.length - 2);\n } else {\n newVal = inputVal.substring(1, inputVal.length - 1);\n }\n }\n if (!inputVal.includes('|')) {\n newVal = newVal.replace(/\\s/g, '');\n }\n return newVal;\n })();\n if (cleanedInput.includes(\"','\")) {\n val = cleanedInput.split(\"','\");\n } else {\n val = cleanedInput.split('\",\"');\n }\n } else if (atcbWcNumberParams.includes(attr)) {\n val = parseInt(inputVal);\n } else {\n val = inputVal;\n }\n if ((typeof val === 'object' && Object.keys(val).length === 0) || (Array.isArray(val) && (val.length === 0 || (val.length === 1 && val[0] === '')))) {\n continue;\n }\n data[`${attr}`] = val;\n }\n }\n return data;\n}\nasync function atcb_build_button(host, data) {\n try {\n data = await atcb_decorate_data(data);\n await atcb_validate(data);\n const rootObj = host.querySelector('.atcb-initialized');\n atcb_set_light_mode(host, data);\n rootObj.setAttribute('lang', data.language);\n atcb_load_css(host, rootObj, data);\n atcb_setup_state_management(data);\n atcb_set_global_event_listener(host, data);\n atcb_init_log(data.proKey, data.debug);\n if (!data.hidden) {\n if (typeof atcb_generate_rsvp_form === 'function' && data.rsvp && Object.keys(data.rsvp).length > 0) {\n if (!data.inlineRsvp) {\n await atcb_generate_rsvp_button(host, data);\n } else {\n await atcb_generate_rsvp_form(host, data, rootObj);\n }\n } else {\n atcb_generate_button(host, rootObj, data);\n }\n if (!data.hideRichData && data.name && data.dates[0].location && data.dates[0].startDate) {\n atcb_generate_rich_data(data, host.host);\n }\n }\n atcb_log_event('initialization', data.identifier, data.identifier);\n return true;\n } catch (e) {\n throw new Error(e.message);\n }\n}\nfunction atcb_cleanup(host, identifier) {\n atcb_close(host);\n atcb_unset_global_event_listener(identifier);\n const schemaEl = document.getElementById('atcb-schema-' + identifier);\n if (schemaEl) {\n schemaEl.remove();\n }\n Array.from(host.querySelectorAll('.atcb-debug-error-msg'))\n .concat(Array.from(host.querySelectorAll('style')))\n .concat(Array.from(host.querySelectorAll('link')))\n .concat(Array.from(host.querySelectorAll('.atcb-placeholder')))\n .concat(Array.from(host.querySelectorAll('.atcb-button-wrapper')))\n .forEach((el) => el.remove());\n delete atcbStates[`${identifier}`];\n}\nfunction atcb_set_light_mode(shadowRoot, data) {\n shadowRoot.host.classList.remove('atcb-dark', 'atcb-light', 'atcb-bodyScheme');\n const hostLightMode = (function () {\n if (data.lightMode == 'bodyScheme') {\n if (\n document.body.classList.contains('atcb-dark') ||\n document.documentElement.classList.contains('atcb-dark') ||\n document.body.classList.contains('atcp-dark') ||\n document.documentElement.classList.contains('atcp-dark') ||\n document.body.classList.contains('dark') ||\n document.documentElement.classList.contains('dark')\n ) {\n return 'dark';\n } else {\n return 'light';\n }\n }\n return data.lightMode;\n })();\n shadowRoot.host.classList.add('atcb-' + hostLightMode);\n}\nfunction atcb_csp_nonce(host) {\n const cspnonceRegex = /[`'\"()[\\]{}<>\\s]/;\n if (!host.host.hasAttribute('cspnonce')) {\n return null;\n }\n if (cspnonceRegex.test(host.host.getAttribute('cspnonce'))) {\n throw new Error('cspnonce input contains forbidden characters.');\n }\n return host.host.getAttribute('cspnonce');\n}\nasync function atcb_load_css(host, rootObj = null, data) {\n const nonceVal = atcb_csp_nonce(host);\n if (!document.getElementById('atcb-global-style')) {\n const cssGlobalContent = document.createElement('style');\n cssGlobalContent.id = 'atcb-global-style';\n const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;\n cssGlobalContent.innerText = '.atcb-modal-no-scroll{overflow-y:hidden !important;-webkit-overflow-scrolling:touch;} body.atcb-modal-no-scroll{padding-right:' + scrollBarWidth + 'px;}';\n if (nonceVal) {\n cssGlobalContent.setAttribute('nonce', nonceVal);\n }\n document.head.append(cssGlobalContent);\n }\n const generalCssContent = document.createElement('style');\n const initWidth = data.inlineRsvp && data.rsvp && Object.keys(data.rsvp).length > 0 ? '100%' : 'fit-content';\n generalCssContent.innerText = `.atcb-initialized { display: block; position: relative; width: ${initWidth}; }.atcb-initialized.atcb-inline { display: inline-block; }.atcb-initialized.atcb-buttons-list { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--buttonslist-gap); }.atcb-hidden { display: none; }`;\n if (nonceVal) {\n generalCssContent.setAttribute('nonce', nonceVal);\n }\n host.prepend(generalCssContent);\n const overrideDefaultCss = (function () {\n if (data.styleLight) {\n return ':host{' + atcb_secure_content(data.styleLight.replace(/(\\\\r\\\\n|\\\\n|\\\\r)/g, ''), false) + '}';\n }\n return '';\n })();\n const overrideDarkCss = (function () {\n if (data.styleDark) {\n return ':host(.atcb-dark){' + atcb_secure_content(data.styleDark.replace(/(\\\\r\\\\n|\\\\n|\\\\r)/g, ''), false) + '}';\n }\n return '';\n })();\n if (data.customCss && data.customCss !== '') {\n const cssFile = document.createElement('link');\n cssFile.setAttribute('rel', 'stylesheet');\n cssFile.setAttribute('type', 'text/css');\n cssFile.setAttribute('href', data.customCss);\n if (nonceVal) {\n cssFile.setAttribute('nonce', nonceVal);\n }\n if (!rootObj) {\n await loadExternalCssAsynch(cssFile, host, null, nonceVal, null, false, false, overrideDefaultCss + overrideDarkCss);\n } else {\n const placeholder = document.createElement('div');\n placeholder.classList.add('atcb-placeholder');\n host.prepend(placeholder);\n const placeholderCssContent = document.createElement('style');\n placeholderCssContent.innerText = '.atcb-placeholder { background-color: #777; border-radius: 200px; height: 40px; opacity: .3; width: 150px; }';\n if (nonceVal) {\n placeholderCssContent.setAttribute('nonce', nonceVal);\n }\n host.prepend(placeholderCssContent);\n loadExternalCssAsynch(cssFile, host, rootObj, nonceVal, placeholder, data.inline, data.buttonsList, overrideDefaultCss + overrideDarkCss);\n }\n return;\n }\n if (data.buttonStyle !== 'none' && atcbCssTemplate[`${data.buttonStyle}`]) {\n const cssContent = document.createElement('style');\n if (nonceVal) {\n cssContent.setAttribute('nonce', nonceVal);\n }\n cssContent.innerText = atcbCssTemplate[`${data.buttonStyle}`] + overrideDefaultCss + overrideDarkCss;\n host.prepend(cssContent);\n }\n if (rootObj) {\n if (data.inline) {\n rootObj.style.display = 'inline-block';\n rootObj.classList.add('atcb-inline');\n } else {\n if (data.buttonsList) {\n rootObj.classList.add('atcb-buttons-list');\n }\n }\n rootObj.classList.remove('atcb-hidden');\n }\n}\nasync function loadExternalCssAsynch(cssFile, host, rootObj = null, nonceVal = null, placeholder = null, inline = false, buttonsList = false, overrideCss = '') {\n if (overrideCss !== '') {\n const cssContent = document.createElement('style');\n cssContent.innerText = overrideCss;\n if (nonceVal) {\n cssContent.setAttribute('nonce', nonceVal);\n }\n host.prepend(cssContent);\n }\n try {\n host.prepend(cssFile);\n await new Promise((resolve) => {\n cssFile.onload = resolve;\n });\n if (rootObj) {\n if (placeholder) {\n placeholder.remove();\n }\n if (inline) {\n rootObj.style.display = 'inline-block';\n rootObj.classList.add('atcb-inline');\n } else {\n if (buttonsList) {\n rootObj.classList.add('atcb-buttons-list');\n }\n }\n rootObj.classList.remove('atcb-hidden');\n }\n } catch (e) {\n console.log(e);\n }\n}\nfunction atcb_render_debug_msg(host, error) {\n if (host.querySelector('.atcb-debug-error-msg')) return;\n const nonceVal = atcb_csp_nonce(host);\n const errorBanner = document.createElement('div');\n errorBanner.classList.add('atcb-debug-error-msg');\n const cssContent = document.createElement('style');\n cssContent.innerText = '.atcb-debug-error-msg { color: #bf2e2e; font-size: 12px; font-weight: bold; padding: 12px 15px; border: 2px solid #bf2e2e; max-width: 180px; border-radius: 13px; }';\n if (nonceVal) {\n cssContent.setAttribute('nonce', nonceVal);\n }\n host.prepend(cssContent);\n errorBanner.textContent = error;\n host.append(errorBanner);\n}\nasync function atcb_action(inputData, triggerElement, keyboardTrigger = false) {\n if (!atcbIsBrowser()) {\n return;\n }\n let data = await (async function () {\n const cleanedInput = atcb_secure_content(inputData);\n if (cleanedInput.prokey && cleanedInput.prokey !== '') {\n cleanedInput.proKey = cleanedInput.prokey;\n }\n if (cleanedInput.proKey && cleanedInput.proKey !== '') {\n const proData = await atcb_get_pro_data(cleanedInput.proKey, null, cleanedInput);\n if (proData.name && proData.name != '') {\n return proData;\n }\n }\n return cleanedInput;\n })();\n data.debug = data.debug === 'true';\n try {\n await atcb_check_required(data);\n } catch (e) {\n if (data.debug) {\n console.error(e);\n }\n throw new Error('Add to Calendar Button generation failed: no data provided or missing required fields - see console logs for details');\n }\n data = await atcb_decorate_data(data);\n let root = document.body;\n data.trigger = 'click';\n if (triggerElement) {\n root = triggerElement;\n if (triggerElement.id && triggerElement.id !== '') {\n data.identifier = triggerElement.id;\n } else {\n if (data.identifier && data.identifier != '' && /^[\\w\\-_]+$/.test(data.identifier)) {\n data.identifier = 'atcb-btn-' + data.identifier;\n } else {\n data.identifier = 'atcb-btn-custom';\n }\n triggerElement.id = data.identifier;\n }\n if (data.listStyle === 'dropdown' || data.listStyle === 'dropdown-static' || data.listStyle === 'dropup-static') {\n data.listStyle = 'modal';\n }\n } else {\n data.identifier = 'atcb-btn-custom';\n data.listStyle = 'modal';\n }\n try {\n await atcb_validate(data);\n } catch (e) {\n console.error(e);\n return false;\n }\n const oneOption = (function () {\n if (data.options.length === 1) {\n return true;\n }\n return false;\n })();\n const potentialExistingHost = document.getElementById('atcb-customTrigger-' + data.identifier + '-host');\n if (potentialExistingHost) {\n atcb_close(potentialExistingHost.shadowRoot, false);\n if (atcbStates[`${atcbStates['active']}`]) {\n delete atcbStates[`${atcbStates['active']}`];\n }\n potentialExistingHost.remove();\n }\n atcb_log_event('initialization', data.identifier, data.identifier);\n if (!data.blockInteraction && !data.hidden) {\n const host = document.createElement('div');\n host.id = 'atcb-customTrigger-' + data.identifier + '-host';\n if (root === document.body) {\n document.body.append(host);\n } else {\n root.after(host);\n }\n if (triggerElement) {\n const btnDim = triggerElement.getBoundingClientRect();\n host.style.position = 'relative';\n host.style.left = -btnDim.width + 'px';\n host.style.top = btnDim.height + 'px';\n }\n host.setAttribute('atcb-button-id', data.identifier);\n host.attachShadow({ mode: 'open', delegateFocus: true });\n const elem = document.createElement('template');\n elem.innerHTML = template;\n host.shadowRoot.append(elem.content.cloneNode(true));\n const rootObj = host.shadowRoot.querySelector('.atcb-initialized');\n atcb_setup_state_management(data);\n atcb_set_light_mode(host.shadowRoot, data);\n host.shadowRoot.querySelector('.atcb-initialized').setAttribute('lang', data.language);\n atcb_load_css(host.shadowRoot, rootObj, data);\n atcb_set_global_event_listener(host.shadowRoot, data);\n if (typeof atcb_generate_rsvp_form === 'function' && data.rsvp && Object.keys(data.rsvp).length > 0) {\n atcb_generate_rsvp_form(host.shadowRoot, data, triggerElement, keyboardTrigger);\n } else {\n if (oneOption) {\n atcb_generate_links(host.shadowRoot, data.options[0], data, 'all', keyboardTrigger);\n atcb_log_event('openSingletonLink', data.identifier, data.identifier);\n } else {\n atcb_toggle(host.shadowRoot, 'open', data, triggerElement, keyboardTrigger);\n }\n }\n }\n atcb_init_log(data.proKey, data.debug);\n if (data.debug) {\n console.log('Add to Calendar Button \"' + data.identifier + '\" triggered');\n }\n return data.identifier;\n}\nfunction atcb_setup_state_management(data) {\n const singleDates = [];\n for (let i = 0; i < data.options.length; i++) {\n singleDates[data.options[`${i}`]] = [];\n for (let id = 1; id <= data.dates.length; id++) {\n singleDates[data.options[`${i}`]].push(0);\n }\n }\n atcbStates[data.identifier] = singleDates;\n}\nfunction atcb_init_log(pro = '', debug = false) {\n if (!atcbInitialGlobalInit) {\n const versionOutput = (function () {\n if (debug) {\n return ' (version ' + atcbVersion + ')';\n }\n return '';\n })();\n if (pro != '') {\n console.log('Add to Calendar PRO script initialized' + versionOutput + ' | https://add-to-calendar-pro.com');\n } else {\n console.log('%c\\nAdd to Calendar Button script initialized' + versionOutput + '\\n' + 'see https://add-to-calendar-button.com for details.\\n', 'font-weight: bold;');\n console.log('✨ %cPRO version available at https://add-to-calendar-pro.com ← check it out!', 'font-weight: bold; line-height: 60px;');\n }\n atcbInitialGlobalInit = true;\n }\n}\nasync function atcb_get_pro_data(licenseKey, el = null, directData = {}) {\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n if (licenseKey && licenseKey !== '') {\n try {\n const response = await fetch((directData.dev ? 'https://event-dev.caldn.net/' : 'https://event.caldn.net/') + licenseKey + '/config.json');\n if (response.ok) {\n const data = await response.json();\n if (!data.name || data.name === '') {\n throw new Error('Not possible to read proKey config from server...');\n }\n const dataOverrides = el ? atcb_read_attributes(el, atcbWcProParams) : directData;\n atcbWcProParams.forEach((key) => {\n if (Object.prototype.hasOwnProperty.call(dataOverrides, key)) {\n data[`${key}`] = dataOverrides[`${key}`];\n }\n });\n data.proKey = licenseKey;\n data.identifier = licenseKey;\n return data;\n }\n throw new Error('Not possible to read proKey config from server...');\n } catch (e) {\n console.error('Add to Calendar Button proKey invalid or server not responding! Falling back to local data...');\n }\n }\n return {};\n}\nfunction atcb_set_global_event_listener(host, data) {\n if (!atcbIsBrowser()) {\n return;\n }\n if (data.lightMode == 'bodyScheme') {\n lightModeMutationObserver[data.identifier] = new MutationObserver(function (mutationsList) {\n mutationsList.forEach((mutation) => {\n if (mutation.attributeName === 'class') {\n atcb_set_light_mode(host, data);\n }\n });\n });\n lightModeMutationObserver[data.identifier].observe(document.documentElement, { attributes: true });\n lightModeMutationObserver[data.identifier].observe(document.body, { attributes: true });\n }\n if (!atcbInitialGlobalInit) {\n document.addEventListener('keyup', atcb_global_listener_keyup);\n document.addEventListener('keydown', atcb_global_listener_keydown);\n window.addEventListener('resize', atcb_global_listener_resize);\n }\n}\nfunction atcb_global_listener_keyup(event) {\n const host = (function () {\n const root = document.querySelector('[atcb-button-id=\"' + atcbStates['active'] + '\"]');\n if (root) {\n return root.shadowRoot;\n }\n return null;\n })();\n if (host && event.key === 'Escape') {\n atcb_log_event('closeList', 'Ecs Hit', atcbStates['active']);\n atcb_toggle(host, 'close', '', '', true);\n }\n}\nfunction atcb_global_listener_keydown(event) {\n const host = (function () {\n const root = document.querySelector('[atcb-button-id=\"' + atcbStates['active'] + '\"]');\n const rootModal = document.getElementById(atcbStates['active'] + '-modal-host');\n if (rootModal) {\n return rootModal.shadowRoot;\n }\n if (root) {\n return root.shadowRoot;\n }\n return null;\n })();\n if (host && host.querySelector('.atcb-list') && (event.key === 'ArrowDown' || event.key === 'ArrowUp' || event.key === 'Tab')) {\n event.preventDefault();\n let targetFocus = 0;\n let currFocusOption = host.activeElement;\n const optionListCount = host.querySelectorAll('.atcb-list-item').length;\n if (currFocusOption && currFocusOption.classList.contains('atcb-list-item')) {\n if (event.key === 'ArrowDown' && currFocusOption.dataset.optionNumber < optionListCount) {\n targetFocus = parseInt(currFocusOption.dataset.optionNumber) + 1;\n } else if (event.key === 'Tab') {\n if (currFocusOption.dataset.optionNumber < optionListCount) {\n targetFocus = parseInt(currFocusOption.dataset.optionNumber) + 1;\n } else {\n targetFocus = 1;\n }\n } else if (event.key === 'ArrowUp' && currFocusOption.dataset.optionNumber >= 1) {\n targetFocus = parseInt(currFocusOption.dataset.optionNumber) - 1;\n }\n if (targetFocus > 0) {\n host.querySelector('.atcb-list-item[data-option-number=\"' + targetFocus + '\"]').focus();\n }\n } else {\n switch (event.key) {\n default:\n host.querySelector('.atcb-list-item[data-option-number=\"1\"]').focus();\n break;\n case 'ArrowUp':\n host.querySelector('.atcb-list-item[data-option-number=\"' + optionListCount + '\"]').focus();\n break;\n }\n }\n }\n}\nfunction atcb_global_listener_resize() {\n const host = (function () {\n const root = document.querySelector('[atcb-button-id=\"' + atcbStates['active'] + '\"]');\n const rootModal = document.getElementById(atcbStates['active'] + '-modal-host');\n if (rootModal) {\n return rootModal.shadowRoot;\n }\n if (root) {\n return root.shadowRoot;\n }\n return null;\n })();\n if (host) {\n const activeOverlay = host.querySelector('#atcb-bgoverlay');\n if (activeOverlay) {\n atcb_set_fullsize(activeOverlay);\n atcb_manage_body_scroll(host);\n }\n }\n}\nfunction atcb_unset_global_event_listener(identifier) {\n if (typeof lightModeMutationObserver[`${identifier}`] !== 'undefined') {\n lightModeMutationObserver[`${identifier}`].disconnect();\n }\n}\n\nexport { atcb_action, i18nStrings, atcbCssTemplate as cssStyles, atcb_generate_ty, atcb_generate_timestring };","/**\n * Core\n */\nimport { useContext, useEffect, useState } from 'react'\nimport { useSearchParams } from 'react-router-dom'\nimport { Link } from 'react-router-dom'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\nimport RegionsList from '../components/pages/events/regions-list'\nimport TopicsList from '../components/pages/events/topics-list'\nimport EventTypesList from '../components/pages/events/event-types-list'\nimport PostSkeleton from '../components/pages/top-stories/post-skeleton'\n//import { AddToCalendarButton } from 'add-to-calendar-button-react'\nimport { atcb_action } from \"add-to-calendar-button\"\n\n/**\n * graphql\n */\nimport { useQuery } from '@apollo/client'\nimport { FILTER_EVENTS } from '../utils/gql'\n\n/**\n * Context\n */\nimport { SearchContext, SearchDispatchContext } from '../context/search.context'\n\n/**\n * Hooks\n */\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n\nconst Events = () => {\n \n const dispatch = useContext(SearchDispatchContext)\n\n const [searchParams] = useSearchParams()\n const type = searchParams.get('type') || null\n const value = searchParams.get('value') || null\n\n useEffect(() => {\n if(type !== null && value !== null) dispatch({\n type: 'reset',\n dataType: type,\n value\n })\n }, [type, value])\n\n \n \n return (\n \n )\n}\n\nconst EventsMain = () => {\n const [filtersShown, setFiltersShown] = useState(false)\n const variables = useContext(SearchContext)\n \n useScrollTrigger('.reveal')\n\n const { data, error, loading } = useQuery(FILTER_EVENTS, {\n variables,\n notifyOnNetworkStatusChange: true,\n first: 1000\n })\n\n if (error) {\n return

Sorry, an error happened. Reload Please

\n }\n\n const randomImages = [\n 'https://blog.juliedesk.com/wp-content/uploads/2017/06/1200x600-default-facebook.png',\n 'https://static.zerochan.net/Sakimori.full.1626278.jpg',\n 'https://media.kasperskycontenthub.com/wp-content/uploads/sites/43/2022/04/25092934/abstract-data-waves-storm-sl-1200x600.jpg',\n 'https://www.teahub.io/photos/full/276-2762871_desktop-background-images-hd.jpg',\n 'https://www.eba250.com/wp-content/uploads/2019/03/eba250-slider-918402766-1200x600.jpg',\n 'https://www.teahub.io/photos/full/276-2762658_4k-ultra-hd-wallpapers-for-pc.jpg',\n 'https://images.ctfassets.net/ao073xfdpkqn/S3DND1wzeiqpgnHqToCtX/7957f679a92e8fc7eca4f93fe17663c7/fast-blurred-headlights-1200x600.jpg'\n ]\n\n const randomImage = () => randomImages[Math.floor(Math.random() * randomImages.length)]\n\n const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n\n const getDate = date => {\n const dd = new Date(date.slice(0,-6))\n const d = dd.getDate()\n const m = dd.getMonth()\n const y = dd.getFullYear()\n return {\n text: `${months[m]} ${d}, ${y}`,\n sql: `${y}-${m<9?'0'+(m+1):(m+1)}-${d<10?'0'+d:d}`,\n }\n }\n\n const getEvents = (data) => {\n let events = []\n data.map( event => {\n const obj = {\n title: event.title,\n events: event.events,\n eventtypes: event.eventtypes,\n regions: event.regions,\n topics: event.topics,\n keyDates: [],\n sortableKeydate: null\n }\n if(event.events.keyDates.keyDate !== null) obj.keyDates.push({date: event.events.keyDates.keyDate, label: event.events.keyDates.keyDateLabel})\n if(event.events.keyDates.keyDate1 !== null) obj.keyDates.push({date: event.events.keyDates.keyDate1, label: event.events.keyDates.keyDateLabel1})\n if(event.events.keyDates.keyDate2 !== null) obj.keyDates.push({date: event.events.keyDates.keyDate2, label: event.events.keyDates.keyDateLabel2})\n obj.keyDates.sort((date1, date2) => date1.date > date2.date ? 1 : -1)\n obj.sortableKeydate = obj.keyDates.find(keydate => {\n const d = new Date(keydate.date)\n return d > Date.now() ? keydate : null\n })\n events.push(obj)\n })\n events = [\n ...events.filter(event => event.sortableKeydate).sort((a,b) => a.sortableKeydate.date > b.sortableKeydate.date ? 1 : -1),\n ...(events.filter(event => !event.sortableKeydate))\n ]\n return events\n }\n\n const isLink = (link) => {\n const expression = /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$/gi\n const regex = new RegExp(expression)\n return link ? link.match(regex) ? true : false : false\n }\n\n const handleAddToCalendar = (e, event, whichDate) => {\n console.log(getDate(event.events.keyDates['keyDate'+whichDate]).sql)\n const config = {\n name: event.title,\n description: event.events.keyDates['keyDateLabel'+whichDate] + (isLink(event.events.joinUs) ? \"[url]\" + event.events.joinUs + \"|[br]Find out more[/url]\" : ''),\n startDate: getDate(event.events.keyDates['keyDate'+whichDate]).sql,\n //startTime: \"10:15\",\n //endTime: \"23:30\",\n options: [\n 'Apple', 'Google', 'iCal', 'Microsoft365', 'MicrosoftTeams', 'Outlook.com', 'Yahoo'\n ],\n //timeZone: \"America/Los_Angeles\"\n }\n atcb_action(config, e.target)\n //console.log(e.target)\n /* name={event.title}\n startDate={getDate(event.events.keyDates.keyDate).sql}\n options={['Apple','Google','Yahoo','iCal']} */\n }\n\n return (\n
\n
\n
\n

Events

\n

We organise many events throughout the year including awards. Use the filter below to find something that will help you with your business.

\n
\n
\n
\n
\n
{ setFiltersShown(!filtersShown) }} className='cursor-pointer container mx-auto flex items-center font-semibold text-2xl'>Filters instant_mix
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n {\n (!data && loading) ?\n <>\n \n \n \n \n :\n getEvents(data.events.nodes).map((event, key) => {\n return (\n
\n
\n {\n isLink(event.events.joinUs) ?\n \n \n {\n event.events.logo &&\n
\n \n
\n }\n
:\n <>\n \n {\n event.events.logo &&\n
\n \n
\n }\n \n }\n
\n
\n
\n {event.topics.nodes.map(topic => topic.name)}\n
\n
\n {event.regions.nodes.map(region => region.name)}\n
\n {\n isLink(event.events.joinUs) ?\n \n

{event.title}

\n
\n :\n

{event.title}

\n }\n
\n location_on {event.events.city ? event.events.city + ', ' : ''}{event.events.type}\n
\n \n
\n
\n {\n event.events.keyDates.keyDate &&\n
\n {event.events.keyDates.keyDateLabel}\n
\n {getDate(event.events.keyDates.keyDate).text}\n handleAddToCalendar(e, event, '')}>calendar_add_on\n
\n
\n }\n {\n event.events.keyDates.keyDate1 &&\n
\n {event.events.keyDates.keyDateLabel1}\n
\n {getDate(event.events.keyDates.keyDate1).text}\n handleAddToCalendar(e, event, '1')}>calendar_add_on\n
\n
\n }\n {\n event.events.keyDates.keyDate2 &&\n
\n {event.events.keyDates.keyDateLabel2}\n
\n {getDate(event.events.keyDates.keyDate2).text}\n handleAddToCalendar(e, event, '2')}>calendar_add_on\n
\n
\n }\n
\n \n
\n )\n })\n }\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport default Events","var _path, _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgUkcxa25Logo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"{277.259} \",\n height: \"{60.454} \",\n viewBox: \"0 0 73.358 15.995\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.667 0h-.023L3.09.255a.34.34 0 00-.213.096L.402 2.767a.332.332 0 00-.101.213l-.3 3.357a.35.35 0 00.046.203l1.288 2.203c.013.023.028.04.046.061l2.022 2.159.038.035 2.538 2.006 3.254 2.906a.345.345 0 00.45 0l3.249-2.906 2.541-2.009a.25.25 0 00.038-.033l2.023-2.159a.36.36 0 00.046-.061l1.288-2.203a.335.335 0 00.046-.203l-.3-3.354a.342.342 0 00-.101-.213L16.036.351a.36.36 0 00-.211-.096L12.271 0h-.025a.34.34 0 00-.221.084L9.46 2.312 6.888.084a.334.334 0 00-.22-.081zm.035.549l.025.072zm5.821.017l2.596.186-2.139 1.161zm-.346.005h.005l-.005.079V.569zm-5.848 0l-.721 1.347L3.727.757 6.329.572zm.394.087l2.098 1.819-.31-.048-1.059-.163-1.469-.224zm5.431.031l.46 1.349-2.505.425zM3.567.694l.005.063zm12.199.152l1.938 1.893-4.233-.65zM3.141.851l1.994 1.234-3.917.646zm2.253 1.587L4.113 6.23 1.042 3.155zm7.789 0l4.682.719-3.084 3.087zm-7.141.008l3.122.477-1.369 2.719zm6.498 0l-1.438 3.165-1.351-2.69zm-6.816.229l1.774 3.234-3.013.44zm7.139 0L14.4 6.344c-.015 0-.025-.005-.046-.007l-.358-.051-1.087-.16-1.514-.221zm-12.07.78l2.909 2.908-.392-.02-1.14-.061-1.621-.088zm17.326 0l.244 2.739c-.064 0-.821.043-1.623.086l-1.138.063-.391.02zm-8.668.007c.008 0 .012 0 .018.01l1.367 2.795a.131.131 0 00.091.068l3.061.447h.002c.005.005.013.007.016.013s0 .017-.005.023l-2.215 2.174a.118.118 0 00-.036.107l.524 3.072c0 .007-.002.016-.008.02-.015.005-.016.005-.022 0l-2.736-1.448c-.018-.011-.038-.016-.056-.016s-.041.005-.059.016l-2.736 1.448c-.013.005-.018.005-.02 0a.022.022 0 01-.011-.02L7.148 9.1a.132.132 0 00-.033-.107h-.002L4.898 6.819c-.005-.005-.005-.016-.005-.023.005-.007.008-.013.016-.013h.002l3.061-.447a.127.127 0 00.092-.068l1.37-2.795c.002-.005.01-.01.018-.01zM.598 6.505v.005zm.091.086l1.522.081 1.455.079-1.984 1.537zm17.534 0l-.993 1.697-1.984-1.537 2.977-.16zm-3.115.087l.002.071zm-10.804.183v.081zm10.599.023v.081zM4.34 6.999l2.136 2.096L3.892 10.4zm10.233 0l.449 3.401-2.586-1.305zM3.944 7.03l-.432 3.28-1.598-1.707zm11.025 0l2.03 1.573-1.598 1.707zM6.55 9.494L6.06 12.4l-2.05-1.623zm5.812 0l2.541 1.283-2.051 1.623zm-3.099 1.875v3.864l-2.728-2.436zm.386 0l2.728 1.428-2.728 2.436z\",\n fill: \"#e81f71\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#141a23\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.245 3.283h-.751V2.63h2.222v.653h-.751v3.921h-.719zm1.816-.653h1.026l.457 3.274h.013l.457-3.274h1.026v4.574h-.68V3.741h-.013l-.523 3.463h-.601L57.7 3.741h-.013v3.463h-.627zM38.71 13.715q-1.254 0-1.921-.715-.651-.715-.651-2.017V5.012q0-1.302.651-2.017.667-.715 1.921-.715 1.255 0 1.906.715.667.715.667 2.017v1.175h-1.651V4.901q0-1.032-.873-1.032t-.873 1.032v6.209q0 1.016.873 1.016t.873-1.016V9.411h1.651v1.572q0 1.302-.667 2.017-.651.715-1.906.715zm5.05-5.844L41.838 2.44h1.842l1.175 3.589h.032l1.207-3.589h1.651l-1.921 5.431 2.017 5.685h-1.842l-1.27-3.875h-.032l-1.302 3.875h-1.652zm6.288-5.431h2.366l1.81 11.116h-1.747l-.318-2.207v.032h-1.985l-.318 2.176h-1.62zm1.906 7.432l-.778-5.494h-.032l-.762 5.494z\",\n paintOrder: \"stroke fill markers\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.712 13.714q-1.288 0-1.965-.725-.676-.741-.676-2.11V2.281h1.771v8.728q0 .58.225.837.242.258.676.258.435 0 .66-.258.242-.258.242-.837V2.281h1.707v8.599q0 1.369-.676 2.11-.676.725-1.965.725zm3.897-11.433h1.771v4.75l2.254-4.75h1.771l-2.11 4.139 2.142 7.134h-1.852L32.087 8.53l-.709 1.433v3.591h-1.771z\",\n paintOrder: \"markers fill stroke\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.651 12.33q0-1.208.386-2.061.386-.87 1.385-1.916.982-1.047 1.353-1.787.386-.741.386-1.546 0-.725-.242-.998-.225-.29-.676-.29-.918 0-.918 1.111V6.05H61.65V4.955q0-1.369.676-2.093.676-.741 1.965-.741 1.288 0 1.965.741.676.725.676 2.093 0 1.031-.499 2.013-.483.982-1.691 2.254-.789.837-1.063 1.369-.274.515-.274 1.111v.242h3.366v1.61H61.65zm9.066 1.385q-1.288 0-1.965-.725-.676-.741-.676-2.109v-.886h1.675v1.014q0 1.095.918 1.095t.918-1.095V8.481q0-1.111-.918-1.111t-.918 1.111v.097h-1.675l.322-6.296h4.67v1.61h-3.092l-.145 2.689h.032q.499-.821 1.53-.821.966 0 1.465.66.499.66.499 1.916v2.544q0 1.369-.676 2.109-.676.725-1.965.725z\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUkcxa25Logo);\nexport default __webpack_public_path__ + \"static/media/UKCXA25_logo.8f58f600995bcdfedbc7100edfd2f058.svg\";\nexport { ForwardRef as ReactComponent };","import { Link } from 'react-router-dom'\nimport Footer from '../components/footer'\n\nimport { ReactComponent as Logo } from '../assets/images/components/menu/UKCXA25_logo.svg'\n\nconst Awards = () =>\n <>\n
\n
\n {/*
*/}\n {/*

Awards

*/}\n \n {/*

Unrivalled rigour, service and professionalism.

*/}\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n\nexport default Awards","/**\n * Core\n */\nimport { Link } from 'react-router-dom'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\nimport Mailto from '../components/mailto'\n\n\nconst PrivacyPolicy = () => {\n \n return (\n <>\n
\n
\n

Privacy Policy

\n
\n
\n
\n
\n
\n

Questions or concerns? Reading this privacy notice will help you understand your privacy rights and choices. If you do not agree with our policies and practices, please do not use our Services.

\n \n

Summary of Key Points

\n

This summary provides key points from our privacy notice, but you can find out more details about any of these topics by clicking the link following each key point or by using our table of contents below to find the section you are looking for.

\n

What personal information do we process? When you visit, use, or navigate our Services, we may process personal information depending on how you interact with us and the Services, the choices you make, and the products and features you use. Learn more about personal information you disclose to us.

\n

Do we process any sensitive personal information? We do not process sensitive personal information.

\n

Do we receive any information from third parties? We may receive information from public databases, marketing partners, social media platforms, and other outside sources. Learn more about information collected from other sources.

\n

How do we process your information? We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent. We process your information only when we have a valid legal reason to do so. Learn more about how we process your information.

\n

In what situations and with which parties do we share personal information? We may share information in specific situations and with specific third parties. Learn more about when and with whom we share your personal information.

\n

What are your rights? Depending on where you are located geographically, the applicable privacy law may mean you have certain rights regarding your personal information. Learn more about your privacy rights.

\n

How do you exercise your rights? The easiest way to exercise your rights is by submitting a data subject access request, or by contacting us. We will consider and act upon any request in accordance with applicable data protection laws.

\n

Want to learn more about what we do with any information we collect? Review the privacy notice in full.

\n \n
TABLE OF CONTENTS
\n
    \n
  1. WHAT INFORMATION DO WE COLLECT?
  2. \n
  3. HOW DO WE PROCESS YOUR INFORMATION?
  4. \n
  5. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?
  6. \n
  7. DO WE USE COOKIES AND OTHER TRACKING TECHNOLOGIES?
  8. \n
  9. HOW DO WE HANDLE YOUR SOCIAL LOGINS?
  10. \n
  11. IS YOUR INFORMATION TRANSFERRED INTERNATIONALLY?
  12. \n
  13. HOW LONG DO WE KEEP YOUR INFORMATION?
  14. \n
  15. DO WE COLLECT INFORMATION FROM MINORS?
  16. \n
  17. WHAT ARE YOUR PRIVACY RIGHTS?
  18. \n \n
  19. CONTROLS FOR DO-NOT-TRACK FEATURES
  20. \n
  21. DO WE MAKE UPDATES TO THIS NOTICE?
  22. \n
  23. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?
  24. \n
  25. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?
  26. \n
\n
\n
\n

1. What information do we collect?

\n
Personal information you disclose to us
\n

In Short: We collect personal information that you provide to us.

\n

We collect personal information that you voluntarily provide to us when you register on the Services, express an interest in obtaining information about us or our products and Services, when you participate in activities on the Services, or otherwise when you contact us.

\n

Sensitive Information. We do not process sensitive information.

\n

All personal information that you provide to us must be true, complete, and accurate, and you must notify us of any changes to such personal information.

\n \n
Information automatically collected
\n

In Short: Some information — such as your Internet Protocol (IP) address and/or browser and device characteristics — is collected automatically when you visit our Services.

\n

We automatically collect certain information when you visit, use, or navigate the Services. This information does not reveal your specific identity (like your name or contact information) but may include device and usage information, such as your IP address, browser and device characteristics, operating system, language preferences, referring URLs, device name, country, location, information about how and when you use our Services, and other technical information. This information is primarily needed to maintain the security and operation of our Services, and for our internal analytics and reporting purposes.

\n

Like many businesses, we also collect information through cookies and similar technologies.

\n \n
\n
\n

2. How do we process your information?

\n

In Short: We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent.

\n

We process your personal information for a variety of reasons, depending on how you interact with our Services, including:

\n \n
\n
\n

3. When and with whom do we share your personal information?

\n

In Short: We may share information in specific situations described in this section and/or with the following third parties.

\n
    We may need to share your personal information in the following situations: \n
  • Business Transfers. We may share or transfer your information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company.
  • \n
  • Affiliates. We may share your information with our affiliates, in which case we will require those affiliates to honor this privacy notice. Affiliates include our parent company and any subsidiaries, joint venture partners, or other companies that we control or that are under common control with us.
  • \n
  • Business Partners. We may share your information with our business partners to offer you certain products, services, or promotions.
  • \n
\n \n
\n
\n

4. Do we use cookies and other tracking technologies?

\n

In Short: We may use cookies and other tracking technologies to collect and store your information.

\n

We may use cookies and similar tracking technologies (like web beacons and pixels) to access or store information. Specific information about how we use such technologies and how you can refuse certain cookies is set out in our Cookie Notice.

\n \n
\n
\n

5. How do we handle your social logins?

\n

In Short: If you choose to register or log in to our Services using a social media account, we may have access to certain information about you.

\n

Our Services offer you the ability to register and log in using your third-party social media account details (like your Facebook or Twitter logins). Where you choose to do this, we will receive certain profile information about you from your social media provider. The profile information we receive may vary depending on the social media provider concerned, but will often include your name, email address, friends list, and profile picture, as well as other information you choose to make public on such a social media platform.

\n

We will use the information we receive only for the purposes that are described in this privacy notice or that are otherwise made clear to you on the relevant Services. Please note that we do not control, and are not responsible for, other uses of your personal information by your third-party social media provider. We recommend that you review their privacy notice to understand how they collect, use, and share your personal information, and how you can set your privacy preferences on their sites and apps.

\n \n
\n
\n

6. Is your information transferred internationally?

\n

In Short: We may transfer, store, and process your information in countries other than your own.

\n

Our servers are located in. If you are accessing our Services from outside, please be aware that your information may be transferred to, stored, and processed by us in our facilities and by those third parties with whom we may share your personal information (see \"WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?\" above), in and other countries.

\n

If you are a resident in the European Economic Area (EEA), United Kingdom (UK), or Switzerland, then these countries may not necessarily have data protection laws or other similar laws as comprehensive as those in your country. However, we will take all necessary measures to protect your personal information in accordance with this privacy notice and applicable law.

\n \n
\n
\n

7. How long do we keep your information?

\n

In Short: We keep your information for as long as necessary to fulfill the purposes outlined in this privacy notice unless otherwise required by law.

\n

We will only keep your personal information for as long as it is necessary for the purposes set out in this privacy notice, unless a longer retention period is required or permitted by law (such as tax, accounting, or other legal requirements).

\n

When we have no ongoing legitimate business need to process your personal information, we will either delete or anonymize such information, or, if this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible.

\n \n
\n
\n

8. Do we collect information from minors?

\n

In Short: We do not knowingly collect data from or market to children under 18 years of age.

\n

We do not knowingly solicit data from or market to children under 18 years of age. By using the Services, you represent that you are at least 18 or that you are the parent or guardian of such a minor and consent to such minor dependent’s use of the Services. If we learn that personal information from users less than 18 years of age has been collected, we will deactivate the account and take reasonable measures to promptly delete such data from our records. If you become aware of any data we may have collected from children under age 18, please contact us at accounts@awardsinternational.com.

\n \n
\n
\n

9. What are your privacy rights?

\n

In Short: You may review, change, or terminate your account at any time.

\n

Withdrawing your consent: If we are relying on your consent to process your personal information, which may be express and/or implied consent depending on the applicable law, you have the right to withdraw your consent at any time. You can withdraw your consent at any time by contacting us by using the contact details provided in the section \"HOW CAN YOU CONTACT US ABOUT THIS NOTICE?\" below.

\n

However, please note that this will not affect the lawfulness of the processing before its withdrawal nor, when applicable law allows, will it affect the processing of your personal information conducted in reliance on lawful processing grounds other than consent.

\n
Account Information
\n

If you would at any time like to review or change the information in your account or terminate your account, you can:

\n

Upon your request to terminate your account, we will deactivate or delete your account and information from our active databases. However, we may retain some information in our files to prevent fraud, troubleshoot problems, assist with any investigations, enforce our legal terms and/or comply with applicable legal requirements.

\n
\n
\n

10. Controls for do-not-track features

\n

Most web browsers and some mobile operating systems and mobile applications include a Do-Not-Track (\"DNT\") feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. At this stage no uniform technology standard for recognising and implementing DNT signals has been finalised. As such, we do not currently respond to DNT browser signals or any other mechanism that automatically communicates your choice not to be tracked online. If a standard for online tracking is adopted that we must follow in the future, we will inform you about that practice in a revised version of this privacy notice.

\n
\n
\n

11. Do we make updates to this notice?

\n

In Short: Yes, we will update this notice as necessary to stay compliant with relevant laws.

\n

We may update this privacy notice from time to time. The updated version will be indicated by an updated \"Revised\" date and the updated version will be effective as soon as it is accessible. If we make material changes to this privacy notice, we may notify you either by prominently posting a notice of such changes or by directly sending you a notification. We encourage you to review this privacy notice frequently to be informed of how we are protecting your information.

\n \n
\n
\n

12. How can you contact us about this notice?

\n

If you have questions or comments about this notice, you may contact us by post at:

\n

\n Awards International ltd
\n Acacia Farm
\n Lower Road
\n Royston SG8 0EE
\n United Kingdom
\n Phone: +44 7383 551117
\n accounts@awardsinternational.com\n

\n
\n

13. How can you review, update or delete the data we collect from you?

\n Based on the applicable laws of your country, you may have the right to request access to the \n personal information we collect from you, change that information, or delete it. To request to review, \n update, or delete your personal information, please fill out and submit a data subject access request. \n
\n
\n
\n
\n
\n
\n
\n \n )\n}\n\nexport default PrivacyPolicy","/**\n * Core\n */\nimport { Link } from 'react-router-dom'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\nimport Mailto from '../components/mailto'\n\n\nconst TermsOfUse = () => {\n \n return (\n <>\n
\n
\n

Terms of Use

\n
\n
\n
\n
\n
\n

We operate the website https://www.awardsinternational.com (the 'Site'), as well as any other related products and services that refer or link to these legal terms (the 'Legal Terms') (collectively, the 'Services').

\n

Awards International was founded in 2008 and operates 15 awards in different countries.

\n

You can contact us by phone at +44 7383 551117, email at accounts@awardsinternational.com, or by mail to Acacia Farm, Lower Road, Royston SG8 0EE, United Kingdom.

\n

These Legal Terms constitute a legally binding agreement made between you, whether personally or on behalf of an entity ('you'), and Awards International ltd, concerning your access to and use of the Services. You agree that by accessing the Services, you have read, understood, and agreed to be bound by all of these Legal Terms. IF YOU DO NOT AGREE WITH ALL OF THESE LEGAL TERMS, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE SERVICES AND YOU MUST DISCONTINUE USE IMMEDIATELY.

\n

Supplemental terms and conditions or documents that may be posted on the Services from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Legal Terms from time to time. We will alert you about any changes by updating the 'Last updated' date of these Legal Terms, and you waive any right to receive specific notice of each such change. It is your responsibility to periodically review these Legal Terms to stay informed of updates. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Legal Terms by your continued use of the Services after the date such revised Legal Terms are posted.

\n

All users who are minors in the jurisdiction in which they reside (generally under the age of 18) must have the permission of, and be directly supervised by, their parent or guardian to use the Services. If you are a minor, you must have your parent or guardian read and agree to these Legal Terms prior to you using the Services.

\n

We recommend that you print a copy of these Legal Terms for your records.

\n
\n \n
\n

1. Our services

\n

The information provided when using the Services is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Services from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable.

\n

The Services are not tailored to comply with industry-specific regulations (Health Insurance Portability and Accountability Act (HIPAA), Federal Information Security Management Act (FISMA), etc.), so if your interactions would be subjected to such laws, you may not use the Services. You may not use the Services in a way that would violate the Gramm-Leach-Bliley Act (GLBA).

\n\n
\n
\n

2. Intellectual property rights

\n
Our intellectual property
\n

We are the owner or the licensee of all intellectual property rights in our Services, including all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics in the Services (collectively, the 'Content'), as well as the trademarks, service marks, and logos contained therein (the 'Marks').

\n

Our Content and Marks are protected by copyright and trademark laws (and various other intellectual property rights and unfair competition laws) and treaties in the United States and around the world.

\n

The Content and Marks are provided in or through the Services 'AS IS' for your personal, non-commercial use or internal business purpose only.

\n
Your use of our Services
\n
    Subject to your compliance with these Legal Terms, including the 'PROHIBITED ACTIVITIES' section below, we grant you a non-exclusive, non-transferable, revocable licence to:\n
  • access the Services; and
  • \n
  • download or print a copy of any portion of the Content to which you have properly gained access.
  • \n
\n

solely for your personal, non-commercial use or internal business purpose.

\n

Except as set out in this section or elsewhere in our Legal Terms, no part of the Services and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission.

\n

If you wish to make any use of the Services, Content, or Marks other than as set out in this section or elsewhere in our Legal Terms, please address your request to: accounts@awardsinternational.com. If we ever grant you the permission to post, reproduce, or publicly display any part of our Services or Content, you must identify us as the owners or licensors of the Services, Content, or Marks and ensure that any copyright or proprietary notice appears or is visible on posting, reproducing, or displaying our Content.

\n

We reserve all rights not expressly granted to you in and to the Services, Content, and Marks.

\n

Any breach of these Intellectual Property Rights will constitute a material breach of our Legal Terms and your right to use our Services will terminate immediately.

\n
Your submissions
\n

Please review this section and the 'PROHIBITED ACTIVITIES' section carefully prior to using our Services to understand the (a) rights you give us and (b) obligations you have when you post or upload any content through the Services.

\n

Submissions: By directly sending us any question, comment, suggestion, idea, feedback, or other information about the Services ('Submissions'), you agree to assign to us all intellectual property rights in such Submission. You agree that we shall own this Submission and be entitled to its unrestricted use and dissemination for any lawful purpose, commercial or otherwise, without acknowledgment or compensation to you.

\n
    You are responsible for what you post or upload: By sending us Submissions through any part of the Services you:\n
  • confirm that you have read and agree with our 'PROHIBITED ACTIVITIES' and will not post, send, publish, upload, or transmit through the Services any Submission that is illegal, harassing, hateful, harmful, defamatory, obscene, bullying, abusive, discriminatory, threatening to any person or group, sexually explicit, false, inaccurate, deceitful, or misleading;
  • \n
  • to the extent permissible by applicable law, waive any and all moral rights to any such Submission;
  • \n
  • warrant that any such Submission are original to you or that you have the necessary rights and licences to submit such Submissions and that you have full authority to grant us the above-mentioned rights in relation to your Submissions; and
  • \n
  • warrant and represent that your Submissions do not constitute confidential information.
  • \n
  • You are solely responsible for your Submissions and you expressly agree to reimburse us for any and all losses that we may suffer because of your breach of (a) this section, (b) any third party’s intellectual property rights, or (c) applicable law.
  • \n
\n
\n
\n

3. User representations

\n

By using the Services, you represent and warrant that: (1) you have the legal capacity and you agree to comply with these Legal Terms; (2) you are not a minor in the jurisdiction in which you reside, or if a minor, you have received parental permission to use the Services; (3) you will not access the Services through automated or non-human means, whether through a bot, script or otherwise; (4) you will not use the Services for any illegal or unauthorised purpose; and (5) your use of the Services will not violate any applicable law or regulation.

\n

If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Services (or any portion thereof).

\n\n
\n
\n

4. Prohibited activities

\n
    As a user of the Services, yoYou may not access or use the Services for any purpose other than that for which we make the Services available. The Services may not be used in connection with any commercial endeavours except those that are specifically endorsed or approved by us.u agree not to:\n
  • Systematically retrieve data or other content from the Services to create or compile, directly or indirectly, a collection, compilation, database, or directory without written permission from us.
  • \n
  • Trick, defraud, or mislead us and other users, especially in any attempt to learn sensitive account information such as user passwords.
  • \n
  • Circumvent, disable, or otherwise interfere with security-related features of the Services, including features that prevent or restrict the use or copying of any Content or enforce limitations on the use of the Services and/or the Content contained therein.
  • \n
  • Disparage, tarnish, or otherwise harm, in our opinion, us and/or the Services.
  • \n
  • Use any information obtained from the Services in order to harass, abuse, or harm another person.
  • \n
  • Make improper use of our support services or submit false reports of abuse or misconduct.
  • \n
  • Use the Services in a manner inconsistent with any applicable laws or regulations.
  • \n
  • Engage in unauthorised framing of or linking to the Services.
  • \n
  • Upload or transmit (or attempt to upload or to transmit) viruses, Trojan horses, or other material, including excessive use of capital letters and spamming (continuous posting of repetitive text), that interferes with any party’s uninterrupted use and enjoyment of the Services or modifies, impairs, disrupts, alters, or interferes with the use, features, functions, operation, or maintenance of the Services.
  • \n
  • Engage in any automated use of the system, such as using scripts to send comments or messages, or using any data mining, robots, or similar data gathering and extraction tools.
  • \n
  • Delete the copyright or other proprietary rights notice from any Content.
  • \n
  • Attempt to impersonate another user or person or use the username of another user.
  • \n
  • Upload or transmit (or attempt to upload or to transmit) any material that acts as a passive or active information collection or transmission mechanism, including without limitation, clear graphics interchange formats ('gifs'), 1×1 pixels, web bugs, cookies, or other similar devices (sometimes referred to as 'spyware' or 'passive collection mechanisms' or 'pcms').
  • \n
  • Interfere with, disrupt, or create an undue burden on the Services or the networks or services connected to the Services.
  • \n
  • Harass, annoy, intimidate, or threaten any of our employees or agents engaged in providing any portion of the Services to you.
  • \n
  • Attempt to bypass any measures of the Services designed to prevent or restrict access to the Services, or any portion of the Services.
  • \n
  • Copy or adapt the Services' software, including but not limited to Flash, PHP, HTML, JavaScript, or other code.
  • \n
  • Except as permitted by applicable law, decipher, decompile, disassemble, or reverse engineer any of the software comprising or in any way making up a part of the Services.
  • \n
  • Except as may be the result of standard search engine or Internet browser usage, use, launch, develop, or distribute any automated system, including without limitation, any spider, robot, cheat utility, scraper, or offline reader that accesses the Services, or use or launch any unauthorised script or other software.
  • \n
  • Use a buying agent or purchasing agent to make purchases on the Services.
  • \n
  • Make any unauthorised use of the Services, including collecting usernames and/or email addresses of users by electronic or other means for the purpose of sending unsolicited email, or creating user accounts by automated means or under false pretences.
  • \n
  • Use the Services as part of any effort to compete with us or otherwise use the Services and/or the Content for any revenue-generating endeavour or commercial enterprise.
  • \n
  • Copy our content
  • \n
  • Steal our intellectual property
  • \n
\n
\n
\n

5. User generated contributions

\n
    The Services does not offer users to submit or post content. We may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute, or broadcast content and materials to us or on the Services, including but not limited to text, writings, video, audio, photographs, graphics, comments, suggestions, or personal information or other material (collectively, 'Contributions'). Contributions may be viewable by other users of the Services and through third-party websites. As such, any Contributions you transmit may be treated in accordance with the Services' Privacy Policy. When you create or make available any Contributions, you thereby represent and warrant that:\n
  • The creation, distribution, transmission, public display, or performance, and the accessing, downloading, or copying of your Contributions do not and will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark, trade secret, or moral rights of any third party.
  • \n
  • You are the creator and owner of or have the necessary licences, rights, consents, releases, and permissions to use and to authorise us, the Services, and other users of the Services to use your Contributions in any manner contemplated by the Services and these Legal Terms.
  • \n
  • You have the written consent, release, and/or permission of each and every identifiable individual person in your Contributions to use the name or likeness of each and every such identifiable individual person to enable inclusion and use of your Contributions in any manner contemplated by the Services and these Legal Terms.
  • \n
  • Your Contributions are not false, inaccurate, or misleading.
  • \n
  • Your Contributions are not unsolicited or unauthorised advertising, promotional materials, pyramid schemes, chain letters, spam, mass mailings, or other forms of solicitation.
  • \n
  • Your Contributions are not obscene, lewd, lascivious, filthy, violent, harassing, libellous, slanderous, or otherwise objectionable (as determined by us).
  • \n
  • Your Contributions do not ridicule, mock, disparage, intimidate, or abuse anyone.
  • \n
  • Your Contributions are not used to harass or threaten (in the legal sense of those terms) any other person and to promote violence against a specific person or class of people.
  • \n
  • Your Contributions do not violate any applicable law, regulation, or rule.
  • \n
  • Your Contributions do not violate the privacy or publicity rights of any third party.
  • \n
  • Your Contributions do not violate any applicable law concerning child pornography, or otherwise intended to protect the health or well-being of minors.
  • \n
  • Your Contributions do not include any offensive comments that are connected to race, national origin, gender, sexual preference, or physical handicap.
  • \n
  • Your Contributions do not otherwise violate, or link to material that violates, any provision of these Legal Terms, or any applicable law or regulation.
  • \n
\n

Any use of the Services in violation of the foregoing violates these Legal Terms and may result in, among other things, termination or suspension of your rights to use the Services.

\n\n
\n
\n

6. Contribution licence

\n

You and Services agree that we may access, store, process, and use any information and personal data that you provide following the terms of the Privacy Policy and your choices (including settings).

\n

By submitting suggestions or other feedback regarding the Services, you agree that we can use and share such feedback for any purpose without compensation to you.

\n

We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Services. You are solely responsible for your Contributions to the Services and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions.

\n\n
\n
\n

7. Services management

\n

We reserve the right, but not the obligation, to: (1) monitor the Services for violations of these Legal Terms; (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Legal Terms, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Services or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Services in a manner designed to protect our rights and property and to facilitate the proper functioning of the Services.

\n\n
\n
\n

8. Privacy policy

\n

We care about data privacy and security. Please review our Privacy Policy. By using the Services, you agree to be bound by our Privacy Policy, which is incorporated into these Legal Terms. Please be advised the Services are hosted in the United Kingdom. If you access the Services from any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in the United Kingdom, then through your continued use of the Services, you are transferring your data to the United Kingdom, and you expressly consent to have your data transferred to and processed in the United Kingdom.

\n\n
\n
\n

9. Term and termination

\n

These Legal Terms shall remain in full force and effect while you use the Services. WITHOUT LIMITING ANY OTHER PROVISION OF THESE LEGAL TERMS, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SERVICES (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE LEGAL TERMS OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SERVICES OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.

\n

If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.

\n\n
\n
\n

10. Modifications and interruptions

\n

We reserve the right to change, modify, or remove the contents of the Services at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Services. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Services.

\n

We cannot guarantee the Services will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Services, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Services at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Services during any downtime or discontinuance of the Services. Nothing in these Legal Terms will be construed to obligate us to maintain and support the Services or to supply any corrections, updates, or releases in connection therewith.

\n\n
\n
\n

11. Governing law

\n

These Legal Terms are governed by and interpreted following the laws of the United Kingdom, and the use of the United Nations Convention of Contracts for the International Sales of Goods is expressly excluded. If your habitual residence is in the EU, and you are a consumer, you additionally possess the protection provided to you by obligatory provisions of the law in your country to residence. Awards International ltd and yourself both agree to submit to the non-exclusive jurisdiction of the courts of London, UK, which means that you may make a claim to defend your consumer protection rights in regards to these Legal Terms in the United Kingdom, or in the EU country in which you reside.

\n\n
\n
\n

12. Dispute resolution

\n
Binding Arbitration
\n

Any dispute arising from the relationships between the Parties to these Legal Terms shall be determined by one arbitrator who will be chosen in accordance with the Arbitration and Internal Rules of the European Court of Arbitration being part of the European Centre of Arbitration having its seat in Strasbourg, and which are in force at the time the application for arbitration is filed, and of which adoption of this clause constitutes acceptance. The seat of arbitration shall be London, United Kingdom. The language of the proceedings shall be English. Applicable rules of substantive law shall be the law of the United Kingdom.

\n
Restrictions
\n

The Parties agree that any arbitration shall be limited to the Dispute between the Parties individually. To the full extent permitted by law, (a) no arbitration shall be joined with any other proceeding; (b) there is no right or authority for any Dispute to be arbitrated on a class-action basis or to utilise class action procedures; and (c) there is no right or authority for any Dispute to be brought in a purported representative capacity on behalf of the general public or any other persons.

\n
Exceptions to Arbitration
\n

The Parties agree that the following Disputes are not subject to the above provisions concerning binding arbitration: (a) any Disputes seeking to enforce or protect, or concerning the validity of, any of the intellectual property rights of a Party; (b) any Dispute related to, or arising from, allegations of theft, piracy, invasion of privacy, or unauthorised use; and (c) any claim for injunctive relief. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.

\n\n
\n
\n

13. Corrections

\n

There may be information on the Services that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Services at any time, without prior notice.

\n\n
\n
\n

14. Disclaimer

\n

THE SERVICES ARE PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SERVICES AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SERVICES' CONTENT OR THE CONTENT OF ANY WEBSITES OR MOBILE APPLICATIONS LINKED TO THE SERVICES AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE SERVICES, (3) ANY UNAUTHORISED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SERVICES, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE SERVICES BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SERVICES. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SERVICES, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGEMENT AND EXERCISE CAUTION WHERE APPROPRIATE.

\n\n
\n
\n

15. Limitations of liability

\n

IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE SERVICES, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

\n\n
\n
\n

16. Indemnification

\n

You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) use of the Services; (2) breach of these Legal Terms; (3) any breach of your representations and warranties set forth in these Legal Terms; (4) your violation of the rights of a third party, including but not limited to intellectual property rights; or (5) any overt harmful act toward any other user of the Services with whom you connected via the Services. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defence and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defence of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it.

\n\n
\n
\n

17. User data

\n

We will maintain certain data that you transmit to the Services for the purpose of managing the performance of the Services, as well as data relating to your use of the Services. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Services. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.

\n\n
\n
\n

18. Electronic communications, transactions and signatures

\n

Visiting the Services, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Services, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SERVICES. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.

\n\n
\n
\n

19. California users and residents

\n

If any complaint with us is not satisfactorily resolved, you can contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs in writing at 1625 North Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone at (800) 952-5210 or (916) 445-1254.

\n\n
\n
\n

20. Miscellaneous

\n

These Legal Terms and any policies or operating rules posted by us on the Services or in respect to the Services constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Legal Terms shall not operate as a waiver of such right or provision. These Legal Terms operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Legal Terms is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Legal Terms and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Legal Terms or use of the Services. You agree that these Legal Terms will not be construed against us by virtue of having drafted them. You hereby waive any and all defences you may have based on the electronic form of these Legal Terms and the lack of signing by the parties hereto to execute these Legal Terms.

\n\n
\n
\n

21. Contact us

\n

In order to resolve a complaint regarding the Services or to receive further information regarding use of the Services, please contact us at:

\n\n

\n Awards International ltd
\n Acacia Farm
\n Lower Road
\n Royston SG8 0EE
\n United Kingdom
\n Phone: +44 7383 551117
\n accounts@awardsinternational.com\n

\n
\n \n
\n
\n
\n
\n
\n \n )\n}\n\nexport default TermsOfUse","/**\n * Compponents\n */\nimport Footer from '../components/footer'\n\n\nconst Media = () => {\n \n return (\n <>\n
\n
\n

Media

\n
\n
\n
\n
\n
\n \n )\n}\n\nexport default Media","import Footer from \"../components/footer\"\n\nconst NoMatch = () => {\n return (\n <>\n
\n
\n

404

\n
\n
\n
\n
\n

The page you are looking for doesn’t exist.

\n
\n
\n
\n
\n
\n \n )\n}\n\nexport default NoMatch","/**\n * Core\n */\nimport { useEffect } from 'react'\nimport { useLocation, useNavigate } from 'react-router-dom'\n\n/**\n * Compponents\n */\nimport Footer from '../components/footer'\n\nconst ThankYou = () => {\n const { state } = useLocation()\n const navigate = useNavigate()\n useEffect(() => {\n if(!state) navigate('/')\n }, [])\n return (\n state &&\n <>\n
\n
\n

Thank You

\n
\n
\n
\n
\n
\n
\n
\n
\n \n )\n}\n\nexport default ThankYou","/**\n * Core\n */\nimport React from 'react'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\n\n/**\n * Hooks\n */\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n\n\nconst CertifiedJudges = () => {\n\n useScrollTrigger('.reveal')\n \n \n return (\n <>\n
\n
\n

Certified Judges

\n
\n
\n\n
\n
\n
\n \n )\n}\n\nexport default CertifiedJudges","import { useState } from \"react\"\n\nconst PriceAccordion = ({ heading, date, firstBoxHeading, secondBoxHeading, thirdBoxHeading, firstBoxPrice, secondBoxPrice, thirdBoxPrice, open, toggle }) => {\n\n \n\n return (\n <>\n
\n
\n

{open ? 'arrow_drop_up' : 'arrow_drop_down' }{heading} (expires on {date})

\n
\n\n {open && \n
\n\n
\n

{firstBoxHeading}

\n
{firstBoxPrice}
\n
\n
\n

{secondBoxHeading}

\n
{secondBoxPrice}
\n
\n
\n

{thirdBoxHeading}

\n
{thirdBoxPrice}
\n
\n
\n } \n
\n \n )\n}\n\nexport default PriceAccordion\n","/**\n * Core\n */\nimport React from 'react'\nimport { Link } from 'react-router-dom'\nimport { useState } from 'react'\n\n/**\n * Components\n */\n\nimport Footer from '../components/footer'\nimport VerticalStepper from '../components/vertical-stepper'\nimport PriceAccordion from '../components/prices-accordion'\n\n/**\n * Hooks\n */\n\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n\nconst EnterTheAwards = () => {\n\n const [activeIndex, setActiveIndex] = useState(0);\n\n const handleToggle = (index) => {\n setActiveIndex(index === activeIndex ? null : index);\n };\n\n useScrollTrigger('.reveal')\n \n return(\n <>\n
\n
\n

About the Awards

\n
\n
\n\n\n
\n
\n

Why enter

\n

We could give you countless reasons to enter the UK Customer Experience Awards™, but we think our customers say it best. Here’s why they keep coming back:

\n\n

\"The range of categories is vast, with clear instructions for entering. I felt informed throughout the journey, and the judges were friendly and supportive.\" (Ethos Farm)

\n
\n \n
\n
\n
    \n
  • Gain external validation from top industry professionals.
  • \n
  • Boost your company’s value and reputation in the market.
  • \n
  • Strengthen your team with a fun, rewarding experience - a chance to celebrate together at a gala event.
  • \n
\n
\n
\n
    \n
  • Enhance your appeal to internal stakeholders and employees.
  • \n
  • Network with a diverse range of companies and expand your connections.
  • \n
  • Showcase your exceptional customer service and reward your team for their dedication and success.
  • \n
\n
\n
\n
\n

Entering the UKCXA™ is more than just an opportunity to win—it’s a chance to grow, celebrate, and elevate your organisation to new heights. Join us and see why businesses across the UK continue to participate year after year.

\n\n \n
\n
\n \n \n \n
\n
\n \n \n
\n Mark your calendars for expert advice on transforming your incredible work into a compelling, award-winning story! Join a free webinar hosted by Donna O'Toole, Founder & MD of August Recognition.

` },\n // { mark: '3', title: 'How to Prepare an Award-Winning Presentation', date: '24th July 2025, 12 PM UK Time', content: '

Donna returns to share expert tips on crafting a powerful presentation to showcase your achievements.

' },\n { mark: '1', title: 'Select Categories', date: 'Deadline for submissions: 4th July 2025', content: '

Choose the categories that best match your business initiative(s) and complete the payment. After payment, you\\'ll gain access to the Awards Manager™, where you can submit your entry(ies) and upload supporting material by 4th July 2025.

' },\n { mark: '2', title: 'Finalists Announcement', date: '18th July 2025, 3 PM UK Time', content: '

After submitting your written entry, it will be reviewed by a shortlisting panel. If successful, your entry will be shortlisted, and you’ll take the next step toward recognition.

' },\n { mark: '3', title: 'Book Seats for the Ceremony', date: 'Early bird prices available until 5th Septemer 2025', content: `

Celebrate in style with your team! Enjoy discounted booking prices until 5th September. The final chance to book is 2nd October 2025-don’t miss out!

` },\n { mark: '4', title: 'Finalists Presentations', date: '3rd October 2025', content: `

Present your achievements live in an online environment to the expert judging panel. This is your opportunity to shine!

` },\n { mark: '5', title: 'Attend the Build-up and the Awards Ceremony', date: '16th October 2025', content: `

Join us for the Build-Up to the Awards and the grand Awards Ceremony. Celebrate excellence and network with industry leaders at this spectacular event.

` },\n { mark: '6', title: 'Receive Benchmark Report and watch Awards TV', date: '30th October 2025', content: `

Finalists’ Benchmark reports will be issued, and you’ll gain access to Awards TV, where you can watch recordings of the finalists' open presentations.

` },\n ]\n }} />\n
\n
\n
\n
\n

Explore the Plan2Win Brochure

\n

Get a detailed overview of key dates, preparation webinars, category descriptions, scoring criteria, and more. Plan your journey to success!

\n \n
\n
\n
\n\n
\n
\n

How Entries are Scored

\n

Each entry is assessed by an average of four judges per panel. The scoring process has two phases.

\n\n
    \n
  • In Phase 1, judges evaluate written entries against seven criteria. CX Professionals categories are assessed on three criteria.
  • \n
  • In Phase 2, judges score live presentations based on six criteria. The written summary is not included.
  • \n
  • Finalists can further explain their presentation in a Q&A session with the judges. Each phase contributes 50% to the total score.
  • \n
  • Judges score independently and don’t know their panel members before finals day. They sign NDAs and spend 6.5 hours on each entry.
  • \n
  • All entries, presentations, and scoring happen on Awards Manager™. This system ensures transparency, security, and fairness for all participants.
  • \n
\n\n

For full details about the scoring process and many more, visit the Plan2Win page.

\n \n
\n \n
\n\n
\n
\n\n
\n
\n

Entry Fees

\n\n {/* handleToggle(0)}\n open={activeIndex === 0}/> */}\n\n handleToggle(0)}\n open={activeIndex === 0}/>\n\n handleToggle(1)}\n open={activeIndex === 1}/>\n\n \n
\n \n
\n \n
\n
\n \n
\n
\n

Get in touch

\n
\n
\n

Neena Miskelly
Awards Consultant

\n

\n
\n
\n

\n Email: neena@awardsinternational.com
\n Phone Number: +44 7383 329903\n

\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n ) \n}\n\nexport default EnterTheAwards","import { useState } from \"react\"\n\nconst CatAccordion = () => {\n\n const categories = [\n {\n label: \"CX Classics\",\n category: [\n {\n name: \"Customers at the Heart of Everything™\",\n info: \"The signature category of the UK Customer Experience Awards, traditionally the most popular, recognises companies with the most comprehensive CX approaches. This category is dedicated to organisations whose ethos is centred around customer happiness, with this commitment deeply embedded in their core values.\" \n },\n {\n name: \"Best Customer-Centric Culture\",\n info: \"This category celebrates companies that have a customer-centric mindset deeply embedded in their company culture, where every aspect of the organisation prioritises the needs and satisfaction of the customer.\" \n },\n {\n name: \"Best CX Strategy\",\n info: \"This category recognises companies with a 360-degree approach to customer experience: those who've left no stone unturned to devise a comprehensive and efficient customer experience strategy.\" \n },\n {\n name: \"Best Measurement in CX\",\n info: \"This category highlights companies that embody the mantra, 'If you can't measure it, you can't manage it.' These organisations effectively evaluate every step of the customer journey, using data to drive and enhance CX performance.\" \n },\n {\n name: \"Best Use of Customer Insight and Feedback\",\n info: \"This category recognises companies that excel in collecting, analysing, and acting upon customer insight and feedback. From gathering valuable data to implementing meaningful actions, these companies demonstrate a clear commitment to using customer feedback to drive improvements and enhance the overall experience.\" \n },\n {\n name: \"Best Customer Service\",\n info: \"This category recognises companies that excel in providing exceptional customer service, ensuring a seamless and positive experience at every touchpoint, addressing customer needs promptly, and building lasting relationships through effective support and care.\" \n },\n {\n name: \"Best Contact Centre\",\n info: \"This category is reserved for those companies that ensure the best contact centre interactions with customers. Show us how you went above and beyond to resolve customers' issues swiftly and effectively by investing in a top-notch contact centre.\" \n },\n {\n name: \"Best Complaint Handling\",\n info: \"This category celebrates companies that view complaints as a valuable opportunity for improvement. These organisations excel in handling customer complaints with care, turning feedback into actionable insights that drive service enhancement and strengthen customer loyalty.\" \n }\n ]\n },\n {\n label: \"CX Spotlight\",\n category: [\n {\n name: \"Best Innovation in CX\",\n info: \"Innovation drives success and customer lifetime value. This category is for forward-thinking businesses that stay ahead of the curve by successfully implementing innovative solutions and processes or introducing innovative products, features, or services, taking their customer experience to new levels.\" \n },\n {\n name: \"Best Business Change or Transformation\",\n info: \"The Business Change and Transformation category recognises organisations that have successfully implemented strategic shifts in processes, structure, culture, or technology to drive significant improvements in customer experience. This award highlights efforts that enhance efficiency, innovation, and overall customer satisfaction.\" \n },\n {\n name: \"Best Product or Service Development\",\n info: \"The Best Business Change or Service Development category celebrates companies that have excelled in adapting their products or services to meet the evolving needs of customers. This award highlights innovative approaches that prioritise customer satisfaction and deliver impactful, customer-centric solutions.\" \n },\n {\n name: \"Best B2B CX\",\n info: \"This award is for companies operating in a B2B market who provide a truly outstanding customer experience. Show us how you have created a winning strategy for achieving the best B2B results.\" \n },\n {\n name: \"Best BPO Partnership\",\n info: \"This category recognises outstanding collaborations between Business Process Outsourcing (BPO) providers and their client companies in delivering exceptional customer experiences. It celebrates partnerships that have demonstrated innovation, effectiveness, and tangible results in enhancing customer satisfaction, loyalty, and overall business performance.\" \n },\n {\n name: \"Best CX for Vulnerable Customers\",\n info: \"Vulnerability plays a significant role in ensuring the fair treatment of all customers, especially those negatively affected by life events, limited capabilities, or impairment. Implementing appropriate processes allows companies to efficiently respond and meet the needs of their vulnerable customers, making them feel protected and valued.\" \n },\n {\n name: \"Best Accessibility in CX\",\n info: \"The Best Accessibility in CX category honours organisations that have demonstrated outstanding commitment to making their customer experience accessible to all. This award recognises efforts to remove barriers and provide inclusive, seamless experiences for customers with diverse needs and abilities.\" \n },\n {\n name: \"Best ESG Framework\",\n info: \"This category is for companies that have demonstrated an ethical approach to their customer experience by successfully integrating the ESG (Environmental, Social and Governance) Framework, ensuring their customers' product and service choices have a positive impact on the society and environment.\" \n }\n ]\n },\n {\n label: \"DX Spotlight\",\n category: [\n {\n name: \"Best Digital CX\",\n info: \"Brands with great digital customer experience provide a cohesive and consistent online experience that delights their customers, regardless of the channel or device of choice. This category welcomes companies whose customers enjoy a seamless experience at any stage of their digital customer journey.\" \n },\n {\n name: \"Best Use of Technology\",\n info: \"Digital tools allow CX practitioners to coordinate their activities, monitor customer sentiment and execute on CX strategies like never before. If your organization has made innovative use of new and existing technologies, we'd love to hear your story in this category!\" \n },\n {\n name: \"Best Digital Transformation\",\n info: \"Transitioning to digital is a business imperative in today's world. Implementing digital solutions can help your customers immensely, but this is rarely an easy task. This is a category for those companies that have managed to execute the best digital transformation as part of their CX efforts.\" \n },\n {\n name: \"Best Use of AI\",\n info: \"This category acknowledges organisations that harness artificial intelligence to revolutionise customer experiences. From chatbots to personalised recommendations, we celebrate innovative AI-driven solutions that enhance engagement, streamline processes, and set new benchmarks in customer-centric excellence.\" \n },\n {\n name: \"Best User Experience\",\n info: \"User experience is an essential aspect of customer experience, because it reflects the very interaction between the customer and the company. Customers want a simple and intuitive approach with as little friction as possible, and this category recognises those companies that provide just that.\" \n }\n ]\n },\n {\n label: \"EX Spotlight\",\n category: [\n {\n name: \"Best Employee Experience\",\n info: \"A business cannot progress and prosper in the long run without its key resource - people! The Best Employee Experience awards will go to a company that invests in their employees' wellbeing and development and acknowledges their efforts and contribution.\" \n },\n {\n name: \"Best Learning and Development\",\n info: \"In a fast-moving world, a company's success depends on enhancing the skillset of its employees. This category celebrates organisations who deliver exceptional learning and development programmes, and upskill their employees to ensure they constantly learn and grow in their roles.\" \n },\n {\n name: \"Best Employee-driven CX\",\n info: \"This category recognises outstanding efforts in providing the best customer experience with exceptional involvement and engagement from employees. How are your employees contributing to the company's CX? Share your initiative and showcase your results!\" \n }\n ]\n },\n {\n label: \"CX Professionals\",\n category: [\n {\n name: \"CX Team of the Year\",\n info: \"With a skilled and dedicated team onboard, a company is ready to face the hardest of challenges and surpass them. Show us how your team contributed to your company's success and why they deserves to be recognised as the CX Team of the Year.\" \n },\n {\n name: \"Leader of the Year\",\n info: \"Behind every great team there's an amazing CX leader, inspiring everyone to get better and reach new heights. This award will go to an individual that has demonstrated remarkable leadership and improved their company's customer experience as a result.\" \n }\n ]\n }\n ]\n\n const [isActive, setActive] = useState(0);\n \n function toggleAcc(id) {\n setActive(isActive === id ? null : id);\n console.log(isActive, id)\n }\n\n return (\n <>\n {categories.map((cat, index) => (\n\n
\n
toggleAcc(index)}>\n

{isActive === index ? 'arrow_drop_up' : 'arrow_drop_down' }{cat.label}

\n
\n\n {isActive === index &&\n\n
\n {cat.category.map((inside, index) => (\n
\n
{inside.name}
\n

{inside.info}

\n
\n ))}\n
\n }\n
\n ))}\n \n )\n}\n\nexport default CatAccordion\n","const root = 'https://cxa.co.uk'\n\nconst routes = [\n {\n 'path': '',\n 'props': {\n 'name': 'Home',\n 'title': 'UK Customer Experience Awards | Home',\n 'description': '',\n 'og:type': 'website',\n 'og:url': `${root}/`,\n 'og:image:secure_url': `${root}/images/og/home.jpg`,\n 'og:image': `${root}/images/og/home.jpg`\n }\n },\n {\n 'path': 'events',\n 'props': {\n 'name': 'Events',\n 'title': 'UK Customer Experience Awards | Events',\n 'description': '',\n 'og:type': 'website',\n 'og:url': `${root}/events`,\n 'og:image:secure_url': `${root}/images/og/events.png`,\n 'og:image': `${root}/images/og/events.png`\n }\n },\n {\n 'path': 'get-started',\n 'props': {\n 'name': 'Get Started',\n 'title': 'UK Customer Experience Awards | Get Started',\n 'description': '',\n 'og:type': 'website',\n 'og:url': `${root}/get-started`,\n 'og:image:secure_url': `${root}/images/og/get-started.png`,\n 'og:image': `${root}/images/og/get-started.png`\n }\n },\n {\n 'path': 'about-us',\n 'props': {\n 'name': 'About Us',\n 'title': 'UK Customer Experience Awards | About Us',\n 'description': '',\n 'og:type': 'website',\n 'og:url': `${root}/about-us`,\n 'og:image:secure_url': `${root}/images/og/about-us.png`,\n 'og:image': `${root}/images/og/about-us.png`\n }\n },\n {\n 'path': 'top-stories',\n 'props': {\n 'name': 'Top Stories',\n 'title': 'UK Customer Experience Awards | Top Stories',\n 'description': '',\n 'og:type': 'website',\n 'og:url': `${root}/top-stories`,\n 'og:image:secure_url': `${root}/images/og/top-stories.png`,\n 'og:image': `${root}/images/og/top-stories.png`\n }\n },\n {\n 'path': 'the-judge-club',\n 'props': {\n 'name': 'The Judge Club',\n 'title': 'UK Customer Experience Awards | The Judge Club',\n 'description': '',\n 'og:type': 'website',\n 'og:url': `${root}/the-judge-club`,\n 'og:image:secure_url': `${root}/images/og/the-judge-club.png`,\n 'og:image': `${root}/images/og/the-judge-club.png`\n }\n },\n {\n 'path': 'privacy-policy',\n 'props': {\n 'name': 'Privacy Policy',\n 'title': 'UK Customer Experience Awards | Privacy Policy',\n 'description': '',\n 'og:type': 'website',\n 'og:url': `${root}/privacy-policy`,\n 'og:image:secure_url': `${root}/images/og/privacy-policy.png`,\n 'og:image': `${root}/images/og/privacy-policy.png`\n }\n },\n {\n 'path': 'terms-of-use',\n 'props': {\n 'name': 'Terms of Use',\n 'title': 'UK Customer Experience Awards | Terms of Use',\n 'description': '',\n 'og:type': 'website',\n 'og:url': `${root}/terms-of-use`,\n 'og:image:secure_url': `${root}/images/og/privacy-policy.png`,\n 'og:image': `${root}/images/og/privacy-policy.png`\n }\n },\n {\n 'path': 'categories',\n 'props': {\n 'name': 'Categories',\n 'title': 'UK Customer Experience Awards | Categories',\n 'description': '',\n 'og:type': 'website',\n 'og:url': `${root}/categories`,\n 'og:image:secure_url': `${root}/images/og/events.png`,\n 'og:image': `${root}/images/og/events.png`\n }\n },\n]\n\nconst getMeta = (route) => {\n const meta = routes.find(r => r.path == route)\n return meta\n}\n\nexport default routes\nexport { getMeta }","import { getMeta } from \"../config/routes\"\n\n\nexport const meta = (path) => {\n\n const meta = getMeta(path)\n\n let result\n\n for(const [metaProperty, metaValue] of Object.entries(meta.props)) {\n if(metaProperty === 'title') {\n const title = (meta !== null && meta['title']) || metaValue\n result = `${result}\\n${title}`\n result = `${result}\\n`\n } else if (metaProperty === 'description') {\n const description = (meta !== null && meta['description']) || metaValue\n result = `${result}\\n`\n result = `${result}\\n`\n } else {\n const content = (meta !== null && meta[metaProperty]) || metaValue\n result = `${result}\\n`\n } \n }\n\n return result\n\n}","/**\n * Core\n */\nimport React from 'react'\nimport { Link } from 'react-router-dom'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\nimport CatAccordion from '../components/cat-accordion'\n\n/**\n * Hooks\n */\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n/**\n * meta\n */\nimport { meta } from '../utils/meta'\nimport rehypeRaw from 'rehype-raw'\nimport ReactMarkdown from 'react-markdown'\n\n\nconst Categories = () => {\n\n useScrollTrigger('.reveal')\n const metaData = meta('categories')\n \n return (\n
\n {metaData}\n
\n
\n

Categories

\n
\n
\n
\n
\n

This year, the UK Customer Experience Awards™ features 26 categories, thoughtfully organised into five distinct groups: CX Classics, CX Spotlight, DX Spotlight, EX Spotlight, and CX Professionals. Each group shares similar criteria, allowing you to easily select multiple categories and increase your chances of winning.

\n\n

Whether you're aiming to highlight your innovative CX initiatives, showcase exceptional employee experience strategies, or recognise individual achievements in the industry, there's a category for every standout performance.

\n\n
\n
\n
    \n
  • CX Classics: Recognising established leaders in customer experience.
  • \n
  • CX Spotlight: Spotlighting cutting-edge CX innovations and initiatives.
  • \n
  • DX Spotlight: Highlighting innovation and excellence in digital transformation across industries and customer experiences.
  • \n
  • EX Spotlight: Honouring the exceptional work that drives employee experience excellence.
  • \n
  • CX Professionals: Celebrating the individuals who lead and inspire CX success.
  • \n
\n\n

Each year, the UKCXA™ continues to evolve, bringing attention to the companies and professionals pushing the boundaries of customer and employee experience.

\n
\n
\n
\n
\n\n
\n\n
\n\n \n\n
\n \n
\n\n
\n
\n\n
\n
\n
\n
\n )\n}\n\nexport default Categories","import { Link } from \"react-router-dom\"\n\nconst Webinars = ({ img, heading, desc, link }) => {\n return (\n
\n \"webinar-img\"\n
\n

{heading}

\n

{desc}

\n\n
\n \n
\n
\n
\n )\n}\n\nexport default Webinars\n","/**\n * Core\n */\nimport React from 'react'\nimport { Link } from 'react-router-dom'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\nimport Webinars from '../components/webinars'\nimport { TheForm } from './form'\n\n/**\n * Hooks\n */\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\nimport entryWebinar from \"../assets/images/pages/webinars/UKCXA25_webinar_O'Toole_entry.png\"\nimport presWebinar from \"../assets/images/pages/webinars/UKCXA25_webinar_O'Toole_presentation.png\"\n\n\nconst HowToEnterKit = () => {\n\n useScrollTrigger('.reveal')\n \n \n return (\n <>\n
\n
\n

Plan2Win

\n
\n
\n
\n
\n

Your team’s incredible work deserves the spotlight, and we’re here to support you every step of the way! Whether you need help choosing the right categories, understanding the criteria, or learning from the success of previous winners, you’ve found the right place.

\n

Here’s how we’ll help:

\n
\n
\n
    \n
  • Expert Guidance: Join free webinars hosted by our partners to craft a standout entry and prepare your presentation. Mark your calendars for 9th April and 20th August with Donna O'Toole.
  • \n
  • One-on-One Support: Get personalised advice with free consultations from our awards expert, Neena Miskely
  • \n
  • Plan2Win® Guide: Your go-to resource for navigating the UK Customer Experience Awards journey with ease.
  • \n
  • Samples of Winning Case Studies: Access valuable resources including entry forms, finalists' presentations, and benchmark reports to inspire and guide your submission.
  • \n
\n\n

Dive into the Plan2Win, a premium collection of case studies and judges’ feedback from past UKCXA winners. Discover how these stories were crafted to inspire and captivate, and use this exclusive content to elevate your own entry. Unlock your path to success today!

\n\n {/*
\n \n
*/}\n
\n
\n
\n
\n\n
\n\n
\n \n

Submit your details to access the Plan2Win

\n\n \n
\n\n
\n\n
\n
\n

Register for free webinars to help you put your initiative into a compelling story.

\n
\n\n
\n\n \n\n \n\n
\n
\n
\n
\n
\n \n )\n}\n\nexport default HowToEnterKit","const Testimonial = ({ props }) => {\n return (\n
\n \n

{props.description}

\n

{props.title}

\n
\n )\n}\n\nexport default Testimonial","/**\n * Core\n */\nimport React from 'react'\nimport { Link } from 'react-router-dom'\n\n/**\n * Components\n */\n\nimport Footer from '../components/footer'\nimport VerticalStepper from '../components/vertical-stepper'\nimport Slider from '../components/slider'\nimport Testimonial from '../components/pages/home/testimonial'\n\n/**\n * Hooks\n */\n\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n\n\n\nconst JudgingProcess = () => {\n\n useScrollTrigger('.reveal')\n \n return(\n <>\n
\n
\n

Judging process

\n
\n
\n\n\n
\n
\n

How the judges are selected

\n

We take great pride in our rigorous judging process. Judges are selected based on their expertise and standing in the customer experience industry, undergoing a thorough application process reviewed by our internal acceptance panel. Upon approval, they sign a non-disclosure agreement (NDA) to ensure confidentiality and are assigned to categories with no conflicts of interest. What makes our process truly rigorous is our commitment to transparency and fairness—we review every score from every judge, checking for consistency, accuracy, and potential bias to ensure an impartial evaluation. Additionally, judges are certified based on the quality of their assessments, professionalism, and conduct, reinforcing the integrity of the awards.

\n
\n \n
\n \n
\n
\n\n
\n
\n

Why Become a Judge at the UKCXA™?

\n

Judging at the UK Customer Experience Awards™ is a chance to celebrate CX excellence and share your expertise. Here are some of the benefits you can get as a judge:

\n\n
\n
\n
    \n
  • Contributing to a community that celebrates positive recognition and success.
  • \n
  • Learning from real life initiatives through entries and presentations.
  • \n
  • Staying updated with the latest trends and innovations in the industry.
  • \n
  • Enhancing your professional profile and showcasing your expertise.
  • \n
\n
\n
\n
    \n
  • Expanding your network, connecting with peers, and building lasting business relationships.
  • \n
  • Earning certification as a judge, recognising your professionalism and conduct.
  • \n
  • Joining The Judge Club, an exclusive network of CX professionals.
  • \n
  • Gain up to 12 CRC points toward renewing your CCXP accreditation.
  • \n
\n
\n
\n
\n\n

Join us as a judge and make a lasting impact on the world of customer experience!

\n\n

To discover all the benefits, access the Plan2Judge.

\n \n
\n \n
\n
\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n
\n
\n \n \n \n
\n
\n \n \n
\n Discover the companies that have made it to the finals! This is your chance to choose your top three preferred categories for scoring based on your expertise and interests. You’ll be assigned to one of these categories.

` },\n { mark: '2', title: 'Judge Briefing Webinar - Scoring Of Entries', date: '19th Aug 2025, 12 PM UK Time', content: '

Learn how to evaluate entries and provide meaningful feedback during this informative session. Mark your calendar to ensure you’re fully prepared for your judging responsibilities.' },\n { mark: '3', title: 'How to get the most out of being a judge - Final Judge Briefing Webinar', date: '23rd Sep 2025, 12 PM UK Time', content: '

Get tips on maximising your experience as a judge. This session is designed to help you make the most of your role and your time at the event.

' },\n { mark: '4', title: 'Finalists Presentations', date: '3rd October 2025', content: `

The excitement reaches its peak! Meet your fellow judges and witness finalists bring their stories to life through engaging presentations.

` },\n { mark: '5', title: 'Build-Up and Awards Ceremony', date: '16th October 2025', content: `

Attend the Build-Up to the Awards and the grand Awards Ceremony. Use this opportunity to connect with judges and finalists — pre-book catch-ups to make the most of this networking experience.

` },\n { mark: '6', title: 'Judges Feedback Report & Awards TV', date: '30th October 2025', content: `

Receive your Judges’ Feedback Report and a certificate (if you scored well). Gain access to Awards TV to watch recordings of finalists’ presentations online.

` },\n ]\n }} />\n
\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n

Judging Panels

\n

Every judge is scoring up to 8 entries across a maximum of two categories. We tend to have three to five judges per each panel (category). All judges score independently, which means that during the scoring process, they don't know who are their fellow judges till the day of the awards finals (finalists presentations or the second round of scoring). As at the UKCXA we normally have around 30 categories that means we will have 120 judges scoring finalists entries!

\n

Take a look at our Meet the Judges. The recruitment process has started, so make sure you secure your spot on time.

\n
\n\n
\n \n
\n
\n\n
\n
\n {\n \n \n \n\n \n\n \n \n \n }\n
\n
\n\n \n
\n
\n

Get in touch

\n
\n
\n

Neena Miskelly
Awards Consultant

\n

\n
\n
\n

\n Email: neena@awardsinternational.com
\n Phone Number: +44 7383 329903\n

\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n ) \n}\n\nexport default JudgingProcess","/**\n * Core\n */\nimport React from 'react'\nimport { Link } from 'react-router-dom'\nimport { useState } from 'react'\n\n/**\n * Components\n */\n\nimport Footer from '../components/footer'\nimport Slider from '../components/slider'\nimport PriceAccordion from '../components/prices-accordion'\n\n/**\n * Hooks\n */\n\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n\nconst EventDetails = () => {\n\n const [activeIndex, setActiveIndex] = useState(0);\n \n const handleToggle = (index) => {\n setActiveIndex(index === activeIndex ? null : index);\n };\n \n\n useScrollTrigger('.reveal')\n\n return (\n <>\n
\n
\n

Event Details

\n
\n
\n\n\n
\n
\n

Build-up to the Awards

\n

Key facts:

\n
\n \n
\n
\n
    \n
  • Estimated Attendees: 400
  • \n
  • Date & Timings: 16th Oct 2025, 12 PM – 4 PM
  • \n
\n
\n
\n
    \n
  • Dress Code: Business Casual
  • \n
  • Venue: Wembley Stadium, Great Hall
  • \n
\n
\n
\n
\n

The Build-Up to the Awards is a must-attend part of the UKCXA™ experience, offering exclusive insights and inspiration. Hear from industry leaders as they unveil the latest CX trends, research, and innovations. Dive into the future of CX with engaging panel discussions featuring this year’s finalists, and take part in interactive sessions where you can ask questions, vote in polls, and share conclusions. This is your chance to connect with like-minded professionals over a delicious lunch and drinks, all in the iconic Wembley Stadium. Don’t miss this dynamic event designed to energise and prepare you for the Awards celebration!

\n
\n\n
\n \n \n \n \n \n
\n
\n\n
\n
\n

Awards Ceremony

\n

Key facts:

\n
\n \n
\n
\n
    \n
  • Estimated Attendees: 900
  • \n
  • Date & Timings: 16th Oct 2025; 6 PM – 1 AM
  • \n
\n
\n
\n
    \n
  • Dress Code: Black Tie or Cocktail Dress
  • \n
  • Venue: Wembley Stadium, Great Hall
  • \n
\n
\n
\n
\n

Step onto the red carpet and enjoy pre-dinner drinks at the iconic Wembley Stadium, where the excitement is palpable, and anticipation fills the air. Hosted by the dynamic duo Emma Dark and Ian Golding, the awards ceremony takes centre stage with a glamorous setup, live band, and dazzling ambiance.

\n\n

As the moment of truth arrives, the atmosphere is electric — everyone eagerly awaits the winners' announcements. After celebrating the well-deserved victories, it’s time to hit the dance floor and toast to your team’s incredible achievements. This unforgettable evening is the perfect finale to an extraordinary day!

\n
\n\n
\n \n \n \n \n \n \n
\n
\n\n\n
\n
\n

Booking Fees

\n\n handleToggle(0)}\n open={activeIndex === 0}/>\n\n handleToggle(1)}\n open={activeIndex === 1}/>\n \n\n\n
\n

All prices net of VAT

\n\n

Table Packages

\n
\n\n
\n
\n

Standard Table

\n
    \n
  • Best positioned spots in the ballroom
  • \n
  • Opportunity to organise the seating plan for your team
  • \n
  • Half a bottle of wine per person
  • \n
  • Two jars of juice, still and sparkling water
  • \n
  • Prominent branding on the table (branded centrepiece)
  • \n
  • Three-course gala dinner
  • \n
  • Admission to attend the Build-Up to the Awards
  • \n
  • Food and drinks during the Build-Up to the Awards
  • \n
  • Receive your trophy if your company wins
  • \n
  • Receive personalised winners logos if your company wins
  • \n
  • Featured in Customer Experience Magazine to showcase your success
  • \n
\n
\n
\n

Premium Table (limited to 8 tables)

\n
    \n
  • All benefits of the Standard Table
  • \n
  • Table positioned in the first two rows in front of the stage
  • \n
  • Upgrade in drinks with three bottles of champagne and a bucket of beer
  • \n
\n
\n
\n\n
\n \n
\n\n
\n

For additional information about booking, please speak to the consultant.

\n
\n \n
\n
\n\n
\n
\n

Get in touch

\n
\n
\n

Neena Miskelly
Awards Consultant

\n

\n
\n
\n

\n Email: neena@awardsinternational.com
\n Phone Number: +44 7383 329903\n

\n
\n
\n
\n \n
\n
\n
\n\n\n
\n
\n
\n \n )\n}\n\nexport default EventDetails","/**\n * Core\n */\nimport React from 'react'\nimport { Link } from 'react-router-dom'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\n\n/**\n * Hooks\n */\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n\nconst KitResources = () => {\n\n useScrollTrigger('.reveal')\n \n \n return (\n <>\n
\n
\n

Plan2Win®

\n
\n
\n
\n
\n

Congratulations on accessing the Plan2Win® - your exclusive gateway to premium insights and award-winning excellence. This carefully curated resource is designed to inspire, guide, and equip you with everything you need to craft a compelling entry and elevate your journey in the UK Customer Experience Awards and beyond.

\n

Start your journey by exploring Plan2Win, your go-to resource for navigating the UKCXA™ journey with ease. To access even more valuable insights and exclusive content, get in touch with your awards consultant and take the next step toward submitting your nomination.

\n
\n
\n\n
\n
\n

Plan2Win®

\n

Your step-by-step guide to mastering the awards process, packed with tips, tools, and best practices.

\n \n \n\n
\n \n\n

Contact your Awards Consultant, Neena Miskelly.

\n
\n
\n
\n\n
\n
\n

Get in touch

\n
\n
\n

Neena Miskelly
Awards Consultant

\n

\n
\n
\n

\n Email: neena@awardsinternational.com
\n Phone Number: +44 7383 329903\n

\n
\n
\n
\n \n
\n
\n
\n\n\n
\n
\n
\n \n )\n}\n\nexport default KitResources","/**\n * Core\n */\nimport React from 'react'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\n\n/**\n * Hooks\n */\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n\nconst Plan2Judge = () => {\n\n useScrollTrigger('.reveal')\n \n \n return (\n <>\n
\n
\n

Plan2Judge

\n
\n
\n
\n
\n

Welcome to the Plan2Judge page! Here, you’ll find everything you need to know about becoming a judge for the UK Customer Experience Awards. This comprehensive guide outlines all the benefits of judging, including exclusive access to the Judge Club, personalised promo cards, and the chance to gain a judges' certificate and feedback report if you excel in your role. We’ll also provide clear guidance on how to assess entries effectively, ensuring you make the most of this rewarding experience. Join us and be part of the process that recognises and celebrates the best in customer experience!

\n
\n
\n\n
\n
\n

Plan2Judge™

\n

Your complete guide to becoming a top judge at the UKCXA, with exclusive benefits and expert judging tips.

\n \n \n\n\n {/*

Judge Feedback Report & Certificate

\n

Receive detailed feedback on your judging performance and earn a prestigious certification recognising your expertise and contribution to UKCXA.

\n

One Feedback Report is sufficient to be presented in this section.

\n\n */}\n
\n
\n
\n
\n
\n \n )\n}\n\nexport default Plan2Judge","/**\n * Core\n */\nimport React from 'react'\nimport { Link } from 'react-router-dom'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\nimport PostSkeleton from '../components/pages/top-stories/post-skeleton'\n\n/**\n * Hooks\n */\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n/**\n * graphql\n */\nimport { useQuery } from '@apollo/client'\nimport { GET_POSTS_BY_CATEGORY_WITH_PAGING } from '../utils/gql'\n\n\nconst NewsAndInsight = () => {\n\n useScrollTrigger('.reveal')\n\n const { data, loading, error, fetchMore } = useQuery(GET_POSTS_BY_CATEGORY_WITH_PAGING, {\n variables: { first: 6, after: null, category: 'Customer Experience' },\n notifyOnNetworkStatusChange: true,\n })\n\n if (error) {\n return

Sorry, an error happened. Reload Please

\n }\n\n const loadMore = () => {\n fetchMore({\n variables: { after: data?.posts?.pageInfo?.endCursor, first: 4 },\n updateQuery: (prevResult, { fetchMoreResult }) => {\n if (!fetchMoreResult) return prevResult\n return {\n posts: {\n ...fetchMoreResult.posts,\n edges: [\n ...prevResult.posts.edges,\n ...fetchMoreResult.posts.edges,\n ],\n },\n }\n },\n })\n }\n \n \n return (\n <>\n
\n
\n

News and Insight

\n
\n
\n
\n
\n

Customer Experience Magazine (CXM) is the world’s first publication dedicated exclusively to CX and EX topics. Owned by Awards International, CXM complements the UKCXA™ by providing participants a platform to share their success stories. Featuring premium content, including daily news, industry insights, trends, thought leadership, and global case studies, CXM is your go-to source for all things customer and employee experience. Stay informed, inspired, and ahead of the curve with CXM’s expert-driven content.

\n
\n
\n\n
\n
\n {\n (!data && loading) ?\n <>\n
\n \n \n
\n
\n \n \n \n \n
\n :\n <>\n
\n {\n data.posts.edges.map((edge) => edge.node).slice(0,2).map((post, i) => {\n return (\n
\n \n
{ post?.title }
\n
\n )\n })\n }\n
\n
\n {\n data.posts.edges.map((edge) => edge.node).slice(2).map((post, i) => {\n return (\n
\n \n
{ post?.title }
\n
\n )\n })\n }\n
\n {\n data?.posts?.pageInfo?.hasNextPage && \n }\n \n }\n
\n
\n\n
\n
\n
\n \n )\n}\n\nexport default NewsAndInsight","import { useState } from \"react\"\nimport { Link } from \"react-router-dom\";\n\n\nconst SponsorsCard = ({ img, heading, desc, bio, website_url}) => {\n\n const [isActive, setActive] = useState(false);\n\n function learnMore() {\n setActive(!isActive);\n }\n return (\n
\n \n
\n \n
\n \"logo-img\"\n
\n \n
\n \n\n
\n\n

{heading}

\n

{desc}

\n \n
\n\n
learnMore()} className=\"text-base text-ai-gray-900 mb-5 flex items-center hover:cursor-pointer hover:text-cxa_primary hover:duration-300\">Learn More {isActive ? 'arrow_drop_up' : 'arrow_drop_down' }
\n\n \n
\n

{bio}

\n

Website {'>'}

\n
\n \n
\n
\n
\n )\n}\n\nexport default SponsorsCard\n","/**\n * Core\n */\nimport React from 'react'\nimport { Link } from 'react-router-dom'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\nimport ImageScroller from '../components/image-scroller'\nimport SponsorsCard from '../components/sponsors-card'\n\n/**\n * Hooks\n */\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n\nconst SponsorsAndPartners = () => {\n\n useScrollTrigger('.reveal')\n\n const scrollingLogos = ['cemantica.jpg', 'clientship.png', 'ipsos.png', 'PIC.png', 'SELT.png', 'Sudale.jpg', 'Davies.png', 'Skewb.png', 'Kantar.svg']\n \n \n return (\n <>\n
\n
\n

Sponsors and Partners

\n
\n
\n
\n
\n

The UK Customer Experience Awards bring together the people driving change and innovation in customer experience. This event is a chance to connect with decision-makers from some of the UK’s biggest and most influential businesses.

\n

Sponsoring the UKCXA gives you the opportunity to:

\n
\n\n
\n
\n
    \n
  • Reach Decision-Makers: Meet the key players shaping the future of CX.
  • \n
  • Showcase Your Business: Share your expertise with an audience looking for innovative solutions.
  • \n
  • Grow Your Network: Build partnerships and connect with businesses that value what you offer.
  • \n
\n
\n
\n\n
\n

The earlier you start supporting the UK Customer Experience Awards, the greater and longer-lasting exposure you’ll enjoy with participants. Sponsoring the awards also pairs perfectly with the added benefits offered by Customer Experience Magazine, giving you even more opportunities to amplify your brand and connect with key decision-makers in the CX industry.

\n

Don’t miss the opportunity to amplify your brand and connect with the leading voices in CX!

\n
\n
\n\n
\n
\n

Our Partners

\n \n
\n \n\n \n
\n\n
\n
\n\n
\n
\n

Previous Sponsors

\n
\n\n \n\n
\n
\n \n {/* */}\n
\n
\n
\n\n
\n
\n
\n \n )\n}\n\nexport default SponsorsAndPartners","/**\n * Core\n */\nimport React from 'react'\nimport { Link } from 'react-router-dom'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\n\n/**\n * Hooks\n */\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n\nconst WinningLibrary = () => {\n\n useScrollTrigger('.reveal')\n \n \n return (\n <>\n
\n
\n

Winning Library

\n
\n
\n
\n
\n

Congratulations on making it this far!

\n

We’re thrilled to provide you with final tips and resources to help you transform your achievements into a compelling story.

\n

Explore winning case studies, gain insights from the judges’ benchmark report, and make the most of the tools and support we’ve prepared for you.

\n

Enjoy the journey, and let’s create something extraordinary together!

\n
\n
\n\n
\n
\n\n

Case Studies

\n

Explore the stories behind previous winners—learn how they showcased their achievements, the strategies they employed, and why they stood out to the judges.

\n

Presentation and Entry Form for all of the entries listed here

\n\n

Landmark Information Group

\n\n
\n
\n
\n
\n
\n \n )\n}\n\nexport default WinningLibrary","/**\n * Core\n */\nimport React from 'react'\nimport { Link } from 'react-router-dom'\nimport { useState, useEffect } from 'react'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\nimport Bio from '../components/pages/about/bio'\n\n/**\n * Hooks\n */\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n\nconst MeetTheJudges = () => {\n\n useScrollTrigger('.reveal')\n\n const [judges, setJudges] = useState([]);\n\n useEffect(() => {\n fetch('https://api.awintern.com/api/v1/judge_certifications/programs/52')\n .then((res) => {\n return res.json(); \n })\n .then((data) => {\n console.log(data);\n setJudges(data);\n })\n .catch((error) => {\n console.error('Error:', error); \n });\n }, []) \n\n return (\n <>\n
\n
\n

Meet the Judges

\n
\n
\n
\n
\n

Every entry at UK CXA™ is assessed by an independent judging panel.

\n

All our judges are seasoned professionals with distinguished CX careers; many have judged with us several times before and keep coming back!

\n

Using the scoring criteria, they’ll carefully scrutinise your written submission and live presentation. Scores from each judge are added together to determine the winners in each category. After the event, every finalist will receive a detailed Feedback Report with constructive comments that help you improve your CX going forward.

\n

Our judge selection process is ongoing, but as soon as we add more judges to our line-up, we’ll post their details on here. Scroll down to see who's taking part this year!

\n

If you’re interested in becoming a judge, please click the link below, or email Neena at neena@awardsinternational.com

\n\n
\n \n
\n
\n
\n\n
\n\n
\n

Our Previous Judges

\n
\n\n
\n \n {judges.map((judge, index) => (\n\n \n ))}\n\n
\n\n
\n
\n
\n
\n \n )\n}\n\nexport default MeetTheJudges","/**\n * Core\n */\nimport React from 'react'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\nimport { TheForm } from './form'\n\n/**\n * Hooks\n */\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n\nconst Plan2JudgeForm = () => {\n\n useScrollTrigger('.reveal')\n \n \n return (\n <>\n
\n
\n

Plan2Judge

\n
\n
\n
\n
\n

The Plan2Judge brochure is your essential guide to the Awards. It will take you through the judging process, give you tips on how to apply and make the most of your judging experience, and point out various benefits of becoming an awards judge.

\n
\n
\n\n
\n
\n

Submit your details to access the Plan2Judge

\n \n
\n
\n
\n
\n
\n \n )\n}\n\nexport default Plan2JudgeForm","/**\n * Core\n */\nimport React from 'react'\nimport { Link } from 'react-router-dom'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\nimport Bio from '../components/pages/about/bio'\n\n/**\n * Hooks\n */\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n/**\n * Images\n */\nimport alex from '../assets/images/pages/steering-council/Alex_Rutherford.jpg'\nimport jamie from '../assets/images/pages/steering-council/Jamie_Thorpe.jpg'\nimport helen from '../assets/images/pages/steering-council/Helen_Luty.jpeg'\nimport valentina from '../assets/images/pages/steering-council/Valentina_Postelnicu.jpg'\nimport peter from '../assets/images/pages/steering-council/Peter_Aitken.jpg'\nimport michelle from '../assets/images/pages/steering-council/Michelle_Ansell.jpg'\nimport kirstin from '../assets/images/pages/steering-council/Kirstin_Simons.jpg'\nimport linzi from '../assets/images/pages/steering-council/Linzi_Hindle.png'\nimport katie from '../assets/images/pages/steering-council/Katie_Stabler.jpeg'\nimport robert from '../assets/images/pages/steering-council/Robert_Dermott.jpg'\nimport janette from '../assets/images/pages/steering-council/Janette_Fiander.jpg'\nimport stuart from '../assets/images/pages/steering-council/Stuart_Wilson.jpg'\nimport caroline from '../assets/images/pages/steering-council/Caroline_King.jpeg'\nimport sally from '../assets/images/pages/steering-council/Sally_Anne_Hicks.jpg'\nimport alington from '../assets/images/pages/steering-council/Sally_Alington.png'\nimport kat from '../assets/images/pages/steering-council/Kat_Stroud.jpg'\nimport adrian from '../assets/images/pages/steering-council/Adrian_Stephenson.jpeg'\n\n\n\nconst SteeringCouncil = () => {\n\n useScrollTrigger('.reveal')\n \n \n return (\n <>\n
\n
\n

Steering Council

\n
\n
\n
\n
\n

Composed of leading CX professionals, our Steering Council provides guidance and support as we lay the foundations for another year of UK CXA®.

\n

Members are selected for a one-year term: they are all winners or judges at the UK Customer Experience Awards™.

\n

The Chair of the Steering Council for 2025 is Michelle Ansell.

\n

Take a look below to see who's helping us make 2025 the best UK CXA® yet!

\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n\n
\n
\n

Get in touch

\n
\n
\n

Neena Miskelly
Awards Consultant

\n

\n
\n
\n

\n Email: neena@awardsinternational.com
\n Phone Number: +44 7383 329903\n

\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n \n )\n}\n\nexport default SteeringCouncil","/**\n * Core\n */\nimport { Link } from 'react-router-dom'\n\n/**\n * Components\n */\nimport Footer from '../components/footer'\nimport Mailto from '../components/mailto'\n\n/**\n * Hooks\n */\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n\nconst TermsAndConditions = () => {\n\n useScrollTrigger('.reveal')\n\n \n return (\n <>\n
\n
\n

Terms and Conditions

\n
\n
\n
\n
\n
\n

These Terms and Conditions, together with any and all other documents referred to herein, set out the terms of use under which you may use any of the websites operated by Awards International anywhere in the world (“Our Sites”).

\n

Please read these Terms and Conditions carefully and ensure that you understand them.

\n

Your agreement to comply with and be bound by these Terms and Conditions is deemed to occur upon your first use of Our Sites. If you do not agree to comply with and be bound by these Terms and Conditions, you must stop using Our Sites immediately.

\n
\n {/* */}\n
\n
1. Definitions and Interpretation
\n\n
    \n
  1. 1.1. In these Terms and Conditions, unless the context otherwise requires, the following expressions have the following meanings:
  2. \n
  3. 1.2. “Content” means any and all text, images, audio, video, scripts, code, software, databases and any other form of information capable of being stored on a computer that appears on, or forms part of, Our Sites; and “We/Us/Our” means Awards International [, a company registered in England under company number 6707388, whose registered address is Acacia Farm, Lower Road, Royston Hertfordshire SG8 0EE.
  4. \n
\n\n
\n
\n
2. Information About Us
\n\n
    \n
  1. 2.1. Our Sites, are owned and operated by Awards International, a limited company registered in England under company number 6707388, whose registered address is Acacia Farm, Lower Road, Royston Hertfordshire SG8 0EE.
  2. \n
\n
\n
\n\n
3. Access to Our Sites
\n
    \n
  1. 3.1. Access to Our Sites is free of charge.
  2. \n
  3. 3.2. It is your responsibility to make any and all arrangements necessary in order to access Our Sites.
  4. \n
  5. 3.3. Access to Our Sites is provided “as is” and on an “as available” basis. We may alter, suspend or discontinue Our Sites (or any part of it) at any time and without notice. We will not be liable to you in any way if Our Sites (or any part of it) is unavailable at any time and for any period.
  6. \n
\n
\n
\n
4. Intellectual Property Rights
\n
    \n
  1. 4.1. All Content included on Our Sites and the copyright and other intellectual property rights subsisting in that Content, unless specifically labelled otherwise, belongs to or has been licensed by Us. All Content is protected by applicable United Kingdom and international intellectual property laws and treaties.
  2. \n
  3. 4.2. Subject to sub-Clause[s] 4.3 [and 4.6] you may not reproduce, copy, distribute, sell, rent, sub-license, store, or in any other manner re-use Content from Our Sites unless given express written permission to do so by Us.
  4. \n
  5. \n 4.3. You may:\n
      \n
    1. 4.3.1 Access, view and use Our Sites in a web browser (including any web browsing capability built into other types of software or app);
    2. \n
    3. 4.3.2 Download Our Sites (or any part of it) for caching;
    4. \n
    5. 4.3.3 Print one copy of any page from Our Sites;
    6. \n
    7. 4.3.4 Download extracts from pages on Our Sites; and
    8. \n
    9. 4.3.5 Save pages from Our Sites for later and/or offline viewing.
    10. \n
    \n
  6. \n
  7. 4.4. Our status as the owner and author of the Content on Our Sites (or that of identified licensors, as appropriate) must always be acknowledged.
  8. \n
  9. 4.5. You may not use any Content saved or downloaded from Our Sites for commercial purposes without first obtaining a license from Us to do so.
  10. \n
  11. 4.6. Nothing in these Terms and Conditions limits or excludes the provisions of Chapter III of the Copyrights, Designs and Patents Act 1988 ‘Acts Permitted in Relation to Copyright Works’, covering in particular the making of temporary copies; research and private study; the making of copies for text and data analysis for non- commercial research; criticism, review, quotation and news reporting; caricature, parody or pastiche; and the incidental inclusion of copyright material.
  12. \n
\n
\n
\n
5. Links to Our Sites
\n
    \n
  1. 5.1. You may link to Our Sites provided that:
  2. \n
  3. 5.2. You do so in a fair and legal manner;
  4. \n
  5. 5.3. You do not do so in a manner that suggests any form of association, endorsement or approval on Our part where none exists;
  6. \n
  7. 5.4. You do not use any logos or trademarks displayed on Our Sites without Our express written permission; and
  8. \n
  9. 5.5. You do not do so in a way that is calculated to damage Our reputation or to take unfair advantage of it.
  10. \n
  11. 5.6. You may not link to any page other than the homepage of Our Sites. Deep-linking to other pages requires Our express written permission.
  12. \n
  13. 5.7. Framing or embedding of Our Sites on other websites is not permitted without Our express
  14. \n
  15. 5.8. Written permission. Please contact Us at accounts@awardsinternational.com for further information.
  16. \n
  17. \n 5.9. In any event you may not link to Our Sites from any other site the main content of which contains material that:\n
      \n
    1. 5.9.1 is sexually explicit;
    2. \n
    3. 5.9.2 is obscene, deliberately offensive, hateful or otherwise inflammatory;
    4. \n
    5. 5.9.3 promotes violence;
    6. \n
    7. 5.9.4 promotes or assists in any form of unlawful activity;
    8. \n
    9. 5.9.5 discriminates against, or is in any way defamatory of, any person, group or class of persons, race, sex, religion, nationality, disability, sexual orientation, or age;
    10. \n
    11. 5.9.6 is intended or is otherwise likely to threaten, harass, annoy, alarm, inconvenience, upset, or embarrass another person;
    12. \n
    13. 5.9.7 is calculated or is otherwise likely to deceive another person;
    14. \n
    15. 5.9.8 is intended or otherwise likely to infringe (or threaten to infringe) another\n person’s right to privacy;
    16. \n
    17. 5.9.9 misleadingly impersonates any person or otherwise misrepresents the identity or affiliation of a particular person in a way that is calculated to deceive (obvious parodies are not included in this definition provided that they do not fall within any of the other provisions of this sub-Clause 5.4);
    18. \n
    19. 5.9.10 implies any form of affiliation with Us where none exists;
    20. \n
    21. 5.9.11 infringes, or assists in the infringement of, the intellectual property rights (including, but not limited to, copyright, trademarks and database rights) of any other party; or
    22. \n
    23. 5.9.12 is made in breach of any legal duty owed to a third party including, but not limited to, contractual duties and duties of confidence.
    24. \n
    \n
  18. \n
  19. 5.10. The content restrictions in sub-Clause 5.4 do not apply to content submitted to sites by other users provided that the primary purpose of the site accords with the provisions of sub-Clause 5.4. You are not, for example, prohibited from posting links on general-purpose social networking sites merely because another user may post such content. You are, however, prohibited from posting links on websites which focus on or encourage the submission of such content from users.
  20. \n
\n
\n
\n
6. Links to Other Sites
\n

Links to other sites may be included on Our Sites. Unless expressly stated, these sites are not under Our control. We neither assume nor accept responsibility or liability for the content of third-party sites. The inclusion of a link to another site on Our Sites is for information only and does not imply any endorsement of the sites themselves or of those in control of them.

\n
\n
\n
7. Disclaimers
\n
    \n
  1. 7.1. Nothing on Our Sites constitutes advice on which you should rely. It is provided for general information purposes only
  2. \n
  3. 7.2. Insofar as is permitted by law, We make no representation, warranty, or guarantee that Our Sites will meet your requirements, that it will not infringe the rights of third parties, that it will be compatible with all software and hardware, or that it will be secure.
  4. \n
  5. 7.3. We make reasonable efforts to ensure that the Content on Our Sites is complete, accurate, and up-to-date. We do not, however, make any representations, warranties or guarantees (whether express or implied) that the Content is complete, accurate, or up-to-date.
  6. \n
\n
\n
\n
8. Our Liability
\n
    \n
  1. 8.1. To the fullest extent permissible by law, We accept no liability to any user for any loss or damage, whether foreseeable or otherwise, in contract, tort (including negligence), for breach of statutory duty, or otherwise, arising out of or in connection with the use of (or inability to use) Our Sites or the use of or reliance upon any Content included on Our Sites.
  2. \n
  3. 8.2. To the fullest extent permissible by law, We exclude all representations, warranties, and guarantees (whether express or implied) that may apply to Our Sites or any Content included on Our Sites.
  4. \n
  5. 8.3. If you are a business user, We accept no liability for loss of profits, sales, business or revenue; loss of business opportunity, goodwill or reputation; loss of anticipated savings; business interruption; or for any indirect or consequential loss or damage.
  6. \n
  7. 8.4. We exercise all reasonable skill and care to ensure that Our Sites are free from viruses and other malware. We accept no liability for any loss or damage resulting from a virus or other malware, a distributed denial of service attack, or other harmful material or event that may adversely affect your hardware, software, data or other material that occurs as a result of your use of Our Sites (including the downloading of any Content from it) or any other site referred to on Our Sites.
  8. \n
  9. 8.5. We neither assume nor accept responsibility or liability arising out of any disruption or non-availability of Our Sites resulting from external causes including, but not limited to, ISP equipment failure, host equipment failure, communications network failure, natural events, acts of war, or legal restrictions and censorship.
  10. \n
  11. 8.6. Nothing in these Terms and Conditions excludes or restricts Our liability for fraud or fraudulent misrepresentation, for death or personal injury resulting from negligence, or for any other forms of liability which cannot be excluded or restricted by law. For full details of consumers’ legal rights, including those relating to digital content, please contact your local Citizens’ Advice Bureau or Trading Standards Office.
  12. \n
\n
\n
\n
9. Viruses, Malware and Security
\n
    \n
  1. 9.1. We exercise all reasonable skill and care to ensure that Our Sites are secure and free from viruses and other malware
  2. \n
  3. 9.2. You are responsible for protecting your hardware, software, data and other material from viruses, malware, and other internet security risks.
  4. \n
  5. 9.3. You must not deliberately introduce viruses or other malware, or any other material which is malicious or technologically harmful either to or via Our Sites.
  6. \n
  7. 9.4.You must not attempt to gain unauthorised access to any part of Our Sites, the server on which Our Sites is stored, or any other server, computer, or database connected to Our Sites.
  8. \n
  9. 9.5. You must not attack Our Sites by means of a denial of service attack, a distributed denial of service attack, or by any other means.
  10. \n
  11. 9.6. By breaching the provisions of sub-Clauses 9.3 to 9.5 you may be committing a criminal offence under the Computer Misuse Act 1990. Any and all such breaches will be reported to the relevant law enforcement authorities and We will cooperate fully with those authorities by disclosing your identity to them. Your right to use Our Sites will cease immediately in the event of such a breach.
  12. \n
\n\n
\n
\n
10. Acceptable Usage Policy
\n
    \n
  1. \n 10.1. You may only use Our Sites in a manner that is lawful. Specifically:\n
      \n
    1. 10.1.1 you must ensure that you comply fully with any and all local, national or international laws and/or regulations;
    2. \n
    3. 10.1.2 you must not use Our Sites in any way, or for any purpose, that is unlawful or fraudulent;
    4. \n
    5. 10.1.3 you must not use Our Sites to knowingly send, upload, or in any other way transmit data that contains any form of virus or other malware, or any other code designed to adversely affect computer hardware, software, or data of any kind; and
    6. \n
    7. 10.1.4 you must not use Our Sites in any way, or for any purpose, that is intended to harm any person or persons in any way.
    8. \n
    \n
  2. \n
  3. \n 10.2. We reserve the right to suspend or terminate your access to Our Sites if you materially breach the provisions of this Clause 10 or any of the other provisions of these Terms and Conditions. Specifically, We may take one or more of the following actions:\n
      \n
    1. 10.2.1 suspend, whether temporarily or permanently, your right to access Our Sites;
    2. \n
    3. 10.2.2 issue you with a written warning;
    4. \n
    5. 10.2.3 take legal proceedings against you for reimbursement of any and all relevant costs on an indemnity basis resulting from your breach;
    6. \n
    7. 10.2.4 take further legal action against you as appropriate;
    8. \n
    9. 10.2.5 disclose such information to law enforcement authorities as required or as We deem reasonably necessary; and/or
    10. \n
    11. 10.2.6 any other actions which We deem reasonably appropriate (and lawful).
    12. \n
    \n
  4. \n
  5. 10.3. We hereby exclude any and all liability arising out of any actions (including, but not limited to those set out above) that We may take in response to breaches of these Terms and Conditions.
  6. \n
\n\n
\n
\n
11. Privacy and Cookies
\n

Use of Our Sites is also governed by Our Privacy and Cookies Policy, available from https://awardsinternational.com/privacy-policy. These policies are incorporated into these Terms and Conditions by this reference.

\n\n
\n
\n
12. Changes to these Terms and Conditions
\n
    \n
  1. 12.1 We may alter these Terms and Conditions at any time. Any such changes will become binding on you upon your first use of Our Sites after the changes have been implemented. You are therefore advised to check this page from time to time.
  2. \n
  3. 12.1 In the event of any conflict between the current version of these Terms and Conditions and any previous version(s), the provisions current and in effect shall prevail unless it is expressly stated otherwise.
  4. \n
\n\n
\n
\n
13. Contacting Us
\n

To contact Us, please email Us at accounts@awardsinternational.com or using any of the methods provided on Our contact page one of Our Sites.

\n\n
\n
\n
14. Communications from Us
\n
    \n
  1. 14.1 If We have your contact details, We may from time to time send you important notices by email. Such notices may relate to matters including, but not limited to, service changes and changes to these Terms and Conditions.
  2. \n
  3. 14.2 We will never send you marketing emails of any kind without your express consent. If you do give such consent, you may opt out at any time. Any and all marketing emails sent by Us include an unsubscribe link. If you opt out of receiving emails from Us at any time, it may take up to seven business days for Us to comply with your request. During that time, you may continue to receive emails from Us.
  4. \n
  5. 14.3 For questions or complaints about communications from Us (including, but not limited to marketing emails), please contact Us at accounts@awardsinternational.com.
  6. \n
\n
\n
\n
15. Data Protection
\n
    \n
  1. 15.1 All personal information that We may use will be collected, processed, and held in accordance with the provisions of EU Regulation 2016/679 General Data Protection Regulation (“GDPR”) and your rights under the GDPR.\n For complete details of Our collection, processing, storage, and retention of personal data including, but not limited to, the purpose(s) for which personal data is used, the legal basis or bases for using it, details of your rights and how to exercise them, and personal data sharing (where applicable), please refer to Our Privacy Policy as mentioned above.
  2. \n
\n\n
\n
\n
16. Law and Jurisdiction
\n
    \n
  1. 16.1 These Terms and Conditions, and the relationship between you and Us (whether contractual or otherwise) shall be governed by, and construed in accordance with the law of England & Wales.
  2. \n
  3. 16.2 If you are a consumer, you will benefit from any mandatory provisions of the law in your country of residence. Nothing in Sub-Clause 16.1 above takes away or reduces your rights as a consumer to rely on those provisions.
  4. \n
  5. 16.3 If you are a consumer, any dispute, controversy, proceedings or claim between you and Us relating to these Terms and Conditions, or the relationship between you and Us (whether contractual or otherwise) shall be subject to the jurisdiction of the courts of England & Wales.
  6. \n
  7. 16.4 If you are a business, any disputes concerning these Terms and Conditions, the relationship between you and Us, or any matters arising therefrom or associated therewith (whether contractual or otherwise) shall be subject to the exclusive jurisdiction of the courts of England & Wales.
  8. \n
\n\n
\n
\n
\n
\n
\n
\n \n )\n}\n\nexport default TermsAndConditions","/**\n * Components\n */\nimport Footer from '../components/footer'\n\n/**\n * Hooks\n */\nimport useScrollTrigger from '../hooks/scroll-trigger.hook'\n\n\nconst TermsOfPayment = () => {\n\n useScrollTrigger('.reveal')\n\n \n return (\n <>\n
\n
\n

Terms of Payment

\n
\n
\n
\n
\n
\n
Definitions:
\n

The following terms shall have the following meaning throughout these terms of payment: ‘Events’ means any and all awards programmes or events operated by Awards International anywhere in the world on any medium including video conference software.

\n

‘Services’ means those services which are provided by Awards International or its suppliers to provide the Events and generally refers to the processes, web and personal services for participation in the Events.

\n

‘Venue’ means the location of the provision of the services and includes online video conference software.

\n

‘Customer’ means the person or company whose name appears on the appropriate forms required for making a purchase.

\n

‘Company’ means: Awards International Ltd, whose registered office is at Acacia Farm, Lower Road, Royston SG8 0EE. Company number 5638188 a company registered in England and Wales.

\n

‘Parties’ means the customer and the company when referred to jointly.

\n

The following terms of payment refer to and govern the purchase of Awards International services.

\n

Please read these Terms of Payment carefully, because by using the Services you accept and agree to be bound and abide by these Terms of Payment.

\n

Customers acknowledge and agree that it is their responsibility to review these Terms of Payment from time to time and to familiarise themselves with any modifications.

\n

Customers’ continued use of this Website after such modifications will constitute acknowledgement of the modified Terms of Payment and agreement to abide and be bound by the modified Terms of Payment.

\n

If there is any agreement between the parties to vary these Terms of Payment the Parties will do so in writing via email or post.

\n

Information supplied by the Company in relation to any activity is accurate to the best of its knowledge and belief but shall not constitute any warranty or representation by the Company.

\n

We expressly reserve the right to change these Terms of Payment from time to time without notice.

\n
\n
The Company Agrees
\n

To provide the Events and Services and to ensure the Customer benefits from doing so to the best of its ability and in good faith.

\n

To provide the Customer with the forms and instructions to enable them to enroll in the Events according to the purpose of the Event.

\n

To provide the Customer appropriate support and opportunities to communicate with the Company in the event that the Customer wishes to do so.

\n

To seek feedback from Customers to improve the Events and Services to the best of their ability.

\n
\n
The Customer Agrees
\n

That they wish to participate in the Events and wish to benefit from the Services provided to the Customer in the manner that the Company determines.

\n

To comply with the rules or guidelines as provided by the Company from time to time to enable them to participate in the awards and benefit from the Services.

\n

That they are authorised to apply for the Services.

\n

To pay for the services as per the Terms of Payment set out herein and in particular the Payment Terms section below.

\n
\n
Confidentiality
\n

All information submitted by the Customer to the Company will be treated with the strictest confidence.

\n

Any information which is readily available in the public domain or becomes available in the public domain after the submission of such information will be exempt from the above.

\n

The Company reserves the right to share the content of the Customer’s entry, that the Customer has provided to us through the use of our Awards Manager platform, to third parties if The Customer has provided us with a special consent to do so for the purposes of art. 6. (1) lit. f of the General Data Protection Regulation.

\n

In such cases that the Customer has have provided the Company with the special consent the information provided on the Customer’s entry form will be shared with our Customers in the form of brochures, websites, networking meetings, social media, for the purpose of helping businesses learn and improve.

\n

No information will be provided to third parties not involved in the running of the Events without the written consent of the Customer, apart from exceptions further provided in these Terms of Payment.

\n

To ensure that all records of Customer information are retained securely and kept strictly confidential and in accordance with the data protection act, in force at the time.

\n
\n
True and Accurate Representation
\n

All information provided by the Customer in applying for an event or for the services is true and accurate to the best of their knowledge.

\n

The Customer confirms they are entitled to submit such information as is required and in the event that they are an agent or a representative of third parties they will indemnify the Company from any complaint arising from any misrepresentation.

\n
\n
Use of Data for Academic Purposes
\n

The Customer agrees that the Company may use the information provided in the entry form for the creation of academic research or the commercialisation of the same.

\n

In the event that a third party is required to assist the Company in production of such work, the Company will take steps to ensure the security and confidentiality of the data is maintained.

\n

If in any doubt with regard to any matters of confidentiality or sensitivity with regard to any information the Company will contact the Customer and request permission or guidance before taking further steps.

\n

Payment Terms

\n
\n
Online Payment
\n

Customers may purchase services through our website using a debit or credit card. The Company does not impose additional fees for card payments. A VAT receipt will be issued upon receipt of payment.

\n
\n
Invoice Payment
\n

Payment by invoice is available only by prior agreement with the Company. There are no credit terms, and payment must be made immediately or within a maximum of 30 days from the invoice date, or before the final deadline for discounted pricing (Super Early Bird or Early Bird), whichever comes first.

\n

An acceptable Purchase Order (PO) must be received for payment by invoice. The issuance of a PO number alone is not sufficient; the Company requires its own Purchase Order to be completed. The Company is not obligated to accept any Purchase Order or its terms unless explicitly agreed upon.

\n

If a Customer’s accounts payable department requires a PO before approving payment, this does not affect the invoice due date, which remains based on the date the Company issues the invoice.

\n

Partial payments are not permitted; the full invoice amount must be settled in a single transaction. Additionally, all bank charges related to the transaction must be fully covered by the remitter (Customer).

\n

The Company reserves the right to withhold services until full payment is received.

\n
\n
Refund Policy
\n

No refunds will be issued 14 days after the payment date or within 30 days of the closing deadline for the purchased service, whichever comes first.  Due to Payment Service Provider (PSP) fees not being refunded to the Company, the Company will not refund the PSP credit card fee portion, which is normally approximately 3.9% of the gross sales value.

\n

Cancellation of an invoice supported by a signed Purchase Order will not be accepted.

\n

The Company may choose to offer a Customer an alternative option at its sole discretion.

\n

This means that the Company will continue to collect payment whether the Customer participates in its Events or not.

\n

The Customer agrees to pay the price for the Services as advertised on the appropriate Event web page or web site.

\n

In the event that the Customer does not comply with these Payment Terms, the Company reserves the right to withhold the Services. This may mean but may not be limited to the following:

\n

In the case of Awards, the Customer may not be considered as a finalist or winner.

\n

The status of winner or finalist may be withdrawn such information may be communicated publicly in a correction statement.

\n

The Customer may not have their profile listed on the website nor use the assets for the awards for publicity.

\n

The Customer or their employees or guests may not be able to attend the Event.

\n

The Customer acknowledges that failure to submit forms, such as an entry form or booking information requested according to the rules and guidelines does not cancel the agreement between the Parties.

\n
\n
Late Payment
\n

After 7 days of the due date of the invoice interest will be added to the balance owing at the rate of 2.2% per month in accordance with the late payment of commercial debts act 1998. A £40 administration charge will also be added to the balance outstanding.

\n

For each reminder to pay the Company will add £40 to the balance outstanding.

\n

In the event that more than two reminders have been sent, and in the absence of payment the Company will immediately apply to the county court for a judgement and will not issue any further notice.

\n
\n
The Entry Fee (Awards)
\n

The Company charges an Entry Fee for Awards participation. This fee covers access to the online entry form, administration of the entry, shortlisting evaluation, and scoring by a panel of independent judges. If the Customer is shortlisted, the Entry Fee also includes the provision of a Finalist’s Logo.

\n

The Entry Fee does not guarantee shortlisting, nor does it include attendance at the Event. It is not sold on the premise that attendance at the Event is guaranteed.

\n

If the Customer’s entry reaches the finals, the Entry Fee entitles them to present to the judges, but only as a single presenter. Additional presenters or attendance at the Awards Ceremony require payment of the Booking Fee. If the Customer does not pay the Booking Fee but still presents, they will not be permitted to watch other finalists’ presentations.

\n
\n
Awards Ceremony
\n

All winners will be announced at the Awards Ceremony.

\n

If the winner is not in attendance, the Award will still be announced.

\n

Agreement with these Terms of Payment is a pre-condition of attendance at the Awards Finals.

\n

Entry to the Awards, places no obligation on the Company that the entrant will receive an award.

\n
\n
Non-attendance at Awards Ceremony
\n

If the Customer does not book Finalists’ Tickets to attend the Awards Finals and Ceremony after entering the Awards they can still win providing that have presented to the Judging Panel at the Finals.

\n

If the Customer does not book Finalists’ Tickets they will not be entitled to items listed on the relevant website that the tickets includes.

\n

Any Winning Customer who has not booked Finalists’ Tickets may purchase a Winners’ Package as outlined below. Prices include the Additional Winners’ Packages listed on the relevant website, where applicable.

\n
\n
In-Person Awards Ceremony
\n

\n Overall Winner – Up to £8,000
\n Gold Winner – Up to £6,000
\n Silver Winner – Up to £5,000
\n Bronze Winner – Up to £4,000
\n (All prices are subject to VAT.)\n

\n

If a Customer wins multiple awards in the same programme, they will be charged the highest Winners’ Package price, with a 50% discount applied to each additional award won.

\n
\n
Online Awards Ceremony
\n

\n Overall Winner – Up to £5,000
\n Gold Winner – Up to £3,000
\n Silver Winner – Up to £2,000
\n Bronze Winner – Up to £1,000
\n (All prices are subject to VAT.)\n

\n

The same multiple-win discount applies: the Customer will be charged for the highest Winners’ Package, with a 50% discount on any additional awards won in the same programme.

\n

The Winning Customer will then be invoiced in accordance with the prices of the Winners Packages above. Payment should be made in accordance with the Payment Terms within this policy.

\n

The price of the Winners Packages may vary, in which case the correct information will be provided to the customer at the time.

\n
\n
Changes to Event Dates, Venues and Features
\n

The Customer agrees that dates of Events and activities may vary from those advertised on the website or other marketing information.

\n

The Customer agrees such changes may be made at the sole discretion of the Company. If an Event cannot be held for any reason at an advertised venue or date, the Company reserves the right to cancel or postpone the Event or move it to a different venue.

\n

The Company will notify the Customer of any changes which affect them, as soon as possible.

\n

The Customer shall have no claim against the Company in respect of any loss or damage consequent upon the activity or activities from failing to occur wholly or partially, for whatsoever reason save where such loss or damage is caused by the company’s negligence, fraud or willful default.

\n

This includes postponement or cancellation of the Event or parts of the Event.

\n

The Company may substitute other activities or Events in place of planned Events and in the event of such decisions, will normally consult with Customers and to the best of its ability give prior notice to the Customer.

\n

Neither party to these Payment Terms shall without previous consent of the other party assign any rights or obligations hereunder, unless otherwise stated in the Payment Terms. Employees and agents for the Company shall not in any circumstances be liable for consequential, indirect or special damages of any kind arising out of or in any way connected with the performance or failure to perform the awards services

\n
\n
Scoring and Judging (Awards)
\n

There will be no communication between the judges and those submitting entries regarding judging criteria, process, and decisions on the winners.

\n

The judges’ decisions are final regarding all entries and the decisions on the winners.

\n

The Company secures that all judges who are assessing Customers’ entries, sign an NDA which secures that no no judges will have conflict of interest with the entries or companies they are scoring and that the judges will not distribute the content of the entries publically (not limited to internal stakeholder’s meetings, public distribution or anywhere outside the Awards Manager platform).

\n
\n
Promotion and Marketing
\n

The Customer agrees that photographs and videos may be taken by the Company or its representatives of any attendees at the Events. The copyright of such materials belongs to the Company, and the Company may use these photographs and videos for marketing purposes, including on the Company’s website. The Company will ensure that the Customers are presented in a professional and distinguished manner in any promotional content.

\n

In addition, quotes or comments shared on social media may be captured and attributed to the author, where the author is known, and may be used by the Company for marketing purposes. The Company will carefully consider any requests for removal of photographs, but the final decision will rest with the Company.

\n

The Customer agrees not to amend, publish, make available to the public, or use any of the Company’s copyrighted images (such as logos, promotional banners, etc.) for promotional purposes without prior written permission from the Company.

\n
\n
Attendance at Events
\n

Should any member of the Customer’s party behave in a manner that is unacceptable to the Company they may be asked to leave the Event.

\n

In this case the Customer will be liable to the Company for payment in full for all or any expenses incurred and for any fees that may ordinarily have been due for attendance or participation in such activities.

\n

In such case the Customer may also be liable for any damages or compensation for damages caused under the circumstances.

\n

The Company will cooperate with all Customers to the best of its ability in all matters. The Company will not be liable for any loss or damage to the property of the Customer. In the case of loss or damage to property, it should be reported to the venue holders or the Company at the time of discovery.

\n

For business conducted with Awards International Ltd, the construction, validity and performance of these Payment Terms shall be governed by the English law and both parties agree to submit to the non-exclusive jurisdiction of the English courts.

\n

Nothing in these Terms of Payment create legal rights, for, or enforceable by, any party other than the Customer and the Company.

\n
\n
\n
\n
\n
\n
\n \n )\n}\n\nexport default TermsOfPayment","var _path, _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgUkcxa25LogoV1(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n id: \"svg12\",\n width: 277.259,\n height: 60.454,\n viewBox: \"0 0 73.358 15.995\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"path2\",\n fill: \"#e81f71\",\n d: \"M6.667 0h-.023L3.09.255a.34.34 0 0 0-.213.096L.402 2.767a.33.33 0 0 0-.101.213l-.3 3.357a.35.35 0 0 0 .046.203l1.288 2.203c.013.023.028.04.046.061l2.022 2.159.038.035 2.538 2.006 3.254 2.906a.345.345 0 0 0 .45 0l3.249-2.906 2.541-2.009a.3.3 0 0 0 .038-.033l2.023-2.159a.4.4 0 0 0 .046-.061l1.288-2.203a.34.34 0 0 0 .046-.203l-.3-3.354a.34.34 0 0 0-.101-.213L16.036.351a.36.36 0 0 0-.211-.096L12.271 0h-.025a.34.34 0 0 0-.221.084L9.46 2.312 6.888.084a.33.33 0 0 0-.22-.081zm.035.549.025.072zm5.821.017 2.596.186-2.139 1.161zm-.346.005h.005l-.005.079V.569zm-5.848 0-.721 1.347L3.727.757 6.329.572zm.394.087 2.098 1.819-.31-.048-1.059-.163-1.469-.224zm5.431.031.46 1.349-2.505.425zM3.567.694l.005.063zm12.199.152 1.938 1.893-4.233-.65zM3.141.851l1.994 1.234-3.917.646zm2.253 1.587L4.113 6.23 1.042 3.155zm7.789 0 4.682.719-3.084 3.087zm-7.141.008 3.122.477-1.369 2.719zm6.498 0-1.438 3.165-1.351-2.69zm-6.816.229 1.774 3.234-3.013.44zm7.139 0L14.4 6.344c-.015 0-.025-.005-.046-.007l-.358-.051-1.087-.16-1.514-.221zm-12.07.78 2.909 2.908-.392-.02-1.14-.061-1.621-.088zm17.326 0 .244 2.739c-.064 0-.821.043-1.623.086l-1.138.063-.391.02zm-8.668.007c.008 0 .012 0 .018.01l1.367 2.795a.13.13 0 0 0 .091.068l3.061.447h.002c.005.005.013.007.016.013s0 .017-.005.023l-2.215 2.174a.12.12 0 0 0-.036.107l.524 3.072q0 .012-.008.02c-.015.005-.016.005-.022 0l-2.736-1.448q-.028-.016-.056-.016a.1.1 0 0 0-.059.016l-2.736 1.448q-.018.008-.02 0a.02.02 0 0 1-.011-.02L7.148 9.1a.13.13 0 0 0-.033-.107h-.002L4.898 6.819c-.005-.005-.005-.016-.005-.023q.006-.012.016-.013h.002l3.061-.447a.13.13 0 0 0 .092-.068l1.37-2.795q.005-.009.018-.01zM.598 6.505v.005zm.091.086 1.522.081 1.455.079-1.984 1.537zm17.534 0-.993 1.697-1.984-1.537zm-3.115.087.002.071zm-10.804.183v.081zm10.599.023v.081zM4.34 6.999l2.136 2.096L3.892 10.4zm10.233 0 .449 3.401-2.586-1.305zM3.944 7.03l-.432 3.28-1.598-1.707zm11.025 0 2.03 1.573-1.598 1.707zM6.55 9.494 6.06 12.4l-2.05-1.623zm5.812 0 2.541 1.283-2.051 1.623zm-3.099 1.875v3.864l-2.728-2.436zm.386 0 2.728 1.428-2.728 2.436z\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"g10\",\n fill: \"#141a23\",\n fillOpacity: 0.8\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"path4\",\n d: \"M55.245 3.283h-.751V2.63h2.222v.653h-.751v3.921h-.719zm1.816-.653h1.026l.457 3.274h.013l.457-3.274h1.026v4.574h-.68V3.741h-.013l-.523 3.463h-.601L57.7 3.741h-.013v3.463h-.627zM38.71 13.715q-1.254 0-1.921-.715-.651-.715-.651-2.017V5.012q0-1.302.651-2.017.667-.715 1.921-.715t1.906.715q.667.715.667 2.017v1.175h-1.651V4.901q0-1.032-.873-1.032t-.873 1.032v6.209q0 1.016.873 1.016t.873-1.016V9.411h1.651v1.572q0 1.302-.667 2.017-.651.715-1.906.715m5.05-5.844L41.838 2.44h1.842l1.175 3.589h.032l1.207-3.589h1.651l-1.921 5.431 2.017 5.685h-1.842l-1.27-3.875h-.032l-1.302 3.875h-1.652zm6.288-5.431h2.366l1.81 11.116h-1.747l-.318-2.207v.032h-1.985l-.318 2.176h-1.62zm1.906 7.432-.778-5.494h-.032l-.762 5.494z\",\n paintOrder: \"stroke fill markers\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"path6\",\n d: \"M25.712 13.714q-1.288 0-1.965-.725-.676-.741-.676-2.11V2.281h1.771v8.728q0 .58.225.837.242.258.676.258t.66-.258q.242-.258.242-.837V2.281h1.707v8.599q0 1.369-.676 2.11-.676.725-1.965.725zm3.897-11.433h1.771v4.75l2.254-4.75h1.771l-2.11 4.139 2.142 7.134h-1.852L32.087 8.53l-.709 1.433v3.591h-1.771z\",\n paintOrder: \"markers fill stroke\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"path8\",\n d: \"M61.651 12.33q0-1.208.386-2.061.386-.87 1.385-1.916.982-1.047 1.353-1.787.386-.741.386-1.546 0-.725-.242-.998-.225-.29-.676-.29-.918 0-.918 1.111V6.05H61.65V4.955q0-1.369.676-2.093.676-.741 1.965-.741 1.288 0 1.965.741.676.725.676 2.093 0 1.031-.499 2.013-.483.982-1.691 2.254-.789.837-1.063 1.369-.274.515-.274 1.111v.242h3.366v1.61H61.65zm9.066 1.385q-1.288 0-1.965-.725-.676-.741-.676-2.109v-.886h1.675v1.014q0 1.095.918 1.095t.918-1.095V8.481q0-1.111-.918-1.111t-.918 1.111v.097h-1.675l.322-6.296h4.67v1.61h-3.092l-.145 2.689h.032q.499-.821 1.53-.821.966 0 1.465.66t.499 1.916v2.544q0 1.369-.676 2.109-.676.725-1.965.725z\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUkcxa25LogoV1);\nexport default __webpack_public_path__ + \"static/media/UKCXA25_logo_v1.cde059246531971e7db1b8fa4566ed22.svg\";\nexport { ForwardRef as ReactComponent };","import { createContext } from 'react'\n\nexport const NavigationContext = createContext()","import { useRef, useEffect } from 'react'\n\nconst useOutsideClick = (callback) => {\n const ref = useRef()\n \n useEffect(() => {\n const handleClick = (event) => {\n if (ref.current && !ref.current.contains(event.target)) {\n callback()\n }\n }\n \n document.addEventListener('click', handleClick, true)\n \n return () => {\n document.removeEventListener('click', handleClick, true);\n }\n }, [ref])\n \n return ref\n}\n\nexport default useOutsideClick","function subscribe(eventName, listener) {\n document.addEventListener(eventName, listener)\n}\n\nfunction unsubscribe(eventName, listener) {\n document.removeEventListener(eventName, listener)\n}\n\nfunction publish(eventName, data) {\n const event = new CustomEvent(eventName, { detail: data })\n document.dispatchEvent(event)\n}\n\nexport { publish, subscribe, unsubscribe}","\n/**\n * Core\n */\nimport { useEffect, useState, useContext } from 'react'\nimport { Link } from 'react-router-dom'\n\n/**\n * Components\n */\nimport { ReactComponent as Logo } from '../assets/images/components/menu/UKCXA25_logo_v1.svg'\n\n/**\n * Context\n */\nimport { NavigationContext } from '../context/navigation.context'\n\n/**\n * Hooks\n */\nimport useOutsideClick from '../hooks/outside-click.hook'\n\n/**\n * Utils\n */\nimport { publish } from '../utils/event'\nimport items from '../config/menu'\n\nconst Menu = () => {\n\n const { location } = useContext(NavigationContext)\n const bigLogoHeight = 'h-36'\n\n const onFormTriggered = () => {\n publish('formTriggered', { slug: 'register-interest', openIn: 'page' })\n }\n\n \n\n const handleClickOutside = () => {\n setMenuOpen(false)\n }\n\n const [taglineTransform, setTaglineTransform] = useState(null)\n const [headerTransform, setHeaderTransform] = useState(null)\n const ref = useOutsideClick(handleClickOutside)\n const [menuOpen, setMenuOpen] = useState(false)\n useEffect(() => {\n window.removeEventListener(\"scroll\", listenToScroll)\n setTaglineTransform('opacity-0 text-xs')\n setHeaderTransform('h-24')\n /* if(location.pathname == '/') {\n window.addEventListener(\"scroll\", listenToScroll)\n setTaglineTransform('opacity-100 text-xl')\n setHeaderTransform(bigLogoHeight)\n }\n else {\n window.removeEventListener(\"scroll\", listenToScroll)\n setTaglineTransform('opacity-0 text-xs')\n setHeaderTransform('h-24')\n } */\n return () => \n window.removeEventListener(\"scroll\", listenToScroll)\n }, [location])\n\n const listenToScroll = () => {\n let heightToHideFrom = 0\n const winScroll = document.body.scrollTop || document.documentElement.scrollTop\n if (winScroll > heightToHideFrom) { \n setTaglineTransform('opacity-0 text-xs')\n setHeaderTransform('h-24')\n } else {\n setTaglineTransform('opacity-100 text-xl')\n setHeaderTransform(bigLogoHeight)\n } \n }\n\n \n\n return (\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
    \n
    \n {\n items.slice(0,5).map((item, key) => \n
  • \n {item.title}\n
  • \n )\n }\n
    \n
  • \n {\n items.length > 5 ?\n <>\n
    setMenuOpen(!menuOpen)} className='cursor-pointer text-3xl pl-4 font-symbol relative h-full items-center bg-white flex z-[9]'>more_vert
    \n
      \n
      \n {\n items.slice(5).map((item, key) => \n
    • setMenuOpen(!menuOpen)} key={key} className='relative transition-all duration-300 border-l border-l-transparent text-ai-gray-900 hover:text-cxa_primary after:bg-cxa_primary after:bottom-0 after:absolute my-2 after:w-[2px] after:content-[\"\"] after:h-0 after:-left-4 hover:after:h-full after:transition-all after:duration-300'>\n {item.title}\n
    • \n )\n }\n
      \n
    \n :\n <>\n
    setMenuOpen(!menuOpen)} className='cursor-pointer text-3xl pl-4 font-symbol relative h-full items-center bg-white flex z-[9]'>more_vert
    \n
      \n
      \n {\n items.slice(5).map((item, key) => \n
    • setMenuOpen(!menuOpen)} key={key} className='relative transition-all duration-300 border-l border-l-transparent hover:text-white after:bg-gradient-primary-analagous-pink after:bottom-0 after:absolute my-2 after:w-[2px] after:content-[\"\"] after:h-0 after:-left-4 hover:after:h-full after:transition-all after:duration-300'>\n {item.title}\n
    • \n )\n }\n
      \n
    \n \n }\n
  • \n
\n
\n \n
\n
\n
    \n
    \n { items.map((item, key) =>
  • {item.title}
  • ) }\n \n
    \n
\n
\n )\n}\n\n\nexport default Menu\n","import Markdown from 'react-markdown'\nimport { publish } from '../utils/event'\n\nconst renderFormField = (field, key) => {\n switch(field.tag) {\n case 'input': return \n case 'checkbox':\n return (\n \n \n \n \n )\n case 'checkbox-group':\n return (\n
\n {\n field.fields.map(subfield => \n
\n \n {\n subfield.type === 'checkbox'\n ? \n : <>\n }\n
\n )\n }\n
\n )\n case 'select': return
\n case 'button': return
\n case 'html':\n return (\n
\n {field.value}\n
\n )\n default: <>\n }\n}\nconst handleFormClosed = () => {\n publish('formClosed')\n}\n\nconst Form = ({ formData }) => {\n let condition = formData != null && formData.action !== null\n return (\n <>\n {\n condition &&
\n }\n
\n {\n (condition) ?\n
\n close\n

{formData.name}

\n
\n
\n { formData.FormField.map((field, index) => renderFormField(field, index) ) }\n
\n
\n \n
\n
\n
: <>\n }\n
\n \n )\n}\n\nexport default Form\nexport { renderFormField, handleFormClosed }","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n * @public\n */\n\nvar parse_1 = parse;\nvar serialize_1 = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar __toString = Object.prototype.toString;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {};\n var opt = options || {};\n var dec = opt.decode || decode;\n\n var index = 0;\n while (index < str.length) {\n var eqIdx = str.indexOf('=', index);\n\n // no more cookie pairs\n if (eqIdx === -1) {\n break\n }\n\n var endIdx = str.indexOf(';', index);\n\n if (endIdx === -1) {\n endIdx = str.length;\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(';', eqIdx - 1) + 1;\n continue\n }\n\n var key = str.slice(index, eqIdx).trim();\n\n // only assign once\n if (undefined === obj[key]) {\n var val = str.slice(eqIdx + 1, endIdx).trim();\n\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1);\n }\n\n obj[key] = tryDecode(val, dec);\n }\n\n index = endIdx + 1;\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n var expires = opt.expires;\n\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.partitioned) {\n str += '; Partitioned';\n }\n\n if (opt.priority) {\n var priority = typeof opt.priority === 'string'\n ? opt.priority.toLowerCase()\n : opt.priority;\n\n switch (priority) {\n case 'low':\n str += '; Priority=Low';\n break\n case 'medium':\n str += '; Priority=Medium';\n break\n case 'high':\n str += '; Priority=High';\n break\n default:\n throw new TypeError('option priority is invalid')\n }\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction decode (str) {\n return str.indexOf('%') !== -1\n ? decodeURIComponent(str)\n : str\n}\n\n/**\n * URL-encode value.\n *\n * @param {string} val\n * @returns {string}\n */\n\nfunction encode (val) {\n return encodeURIComponent(val)\n}\n\n/**\n * Determine if value is a Date.\n *\n * @param {*} val\n * @private\n */\n\nfunction isDate (val) {\n return __toString.call(val) === '[object Date]' ||\n val instanceof Date\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n\nfunction hasDocumentCookie() {\n const testingValue = typeof global === 'undefined'\n ? undefined\n : global.TEST_HAS_DOCUMENT_COOKIE;\n if (typeof testingValue === 'boolean') {\n return testingValue;\n }\n // Can we get/set cookies on document.cookie?\n return typeof document === 'object' && typeof document.cookie === 'string';\n}\nfunction parseCookies(cookies) {\n if (typeof cookies === 'string') {\n return parse_1(cookies);\n }\n else if (typeof cookies === 'object' && cookies !== null) {\n return cookies;\n }\n else {\n return {};\n }\n}\nfunction readCookie(value, options = {}) {\n const cleanValue = cleanupCookieValue(value);\n if (!options.doNotParse) {\n try {\n return JSON.parse(cleanValue);\n }\n catch (e) {\n // At least we tried\n }\n }\n // Ignore clean value if we failed the deserialization\n // It is not relevant anymore to trim those values\n return value;\n}\nfunction cleanupCookieValue(value) {\n // express prepend j: before serializing a cookie\n if (value && value[0] === 'j' && value[1] === ':') {\n return value.substr(2);\n }\n return value;\n}\n\nclass Cookies {\n constructor(cookies, defaultSetOptions = {}) {\n this.changeListeners = [];\n this.HAS_DOCUMENT_COOKIE = false;\n this.update = () => {\n if (!this.HAS_DOCUMENT_COOKIE) {\n return;\n }\n const previousCookies = this.cookies;\n this.cookies = parse_1(document.cookie);\n this._checkChanges(previousCookies);\n };\n const domCookies = typeof document === 'undefined' ? '' : document.cookie;\n this.cookies = parseCookies(cookies || domCookies);\n this.defaultSetOptions = defaultSetOptions;\n this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\n }\n _emitChange(params) {\n for (let i = 0; i < this.changeListeners.length; ++i) {\n this.changeListeners[i](params);\n }\n }\n _checkChanges(previousCookies) {\n const names = new Set(Object.keys(previousCookies).concat(Object.keys(this.cookies)));\n names.forEach((name) => {\n if (previousCookies[name] !== this.cookies[name]) {\n this._emitChange({\n name,\n value: readCookie(this.cookies[name]),\n });\n }\n });\n }\n _startPolling() {\n this.pollingInterval = setInterval(this.update, 300);\n }\n _stopPolling() {\n if (this.pollingInterval) {\n clearInterval(this.pollingInterval);\n }\n }\n get(name, options = {}) {\n if (!options.doNotUpdate) {\n this.update();\n }\n return readCookie(this.cookies[name], options);\n }\n getAll(options = {}) {\n if (!options.doNotUpdate) {\n this.update();\n }\n const result = {};\n for (let name in this.cookies) {\n result[name] = readCookie(this.cookies[name], options);\n }\n return result;\n }\n set(name, value, options) {\n if (options) {\n options = Object.assign(Object.assign({}, this.defaultSetOptions), options);\n }\n else {\n options = this.defaultSetOptions;\n }\n const stringValue = typeof value === 'string' ? value : JSON.stringify(value);\n this.cookies = Object.assign(Object.assign({}, this.cookies), { [name]: stringValue });\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = serialize_1(name, stringValue, options);\n }\n this._emitChange({ name, value, options });\n }\n remove(name, options) {\n const finalOptions = (options = Object.assign(Object.assign(Object.assign({}, this.defaultSetOptions), options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\n this.cookies = Object.assign({}, this.cookies);\n delete this.cookies[name];\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = serialize_1(name, '', finalOptions);\n }\n this._emitChange({ name, value: undefined, options });\n }\n addChangeListener(callback) {\n this.changeListeners.push(callback);\n if (this.HAS_DOCUMENT_COOKIE && this.changeListeners.length === 1) {\n if (typeof window === 'object' && 'cookieStore' in window) {\n window.cookieStore.addEventListener('change', this.update);\n }\n else {\n this._startPolling();\n }\n }\n }\n removeChangeListener(callback) {\n const idx = this.changeListeners.indexOf(callback);\n if (idx >= 0) {\n this.changeListeners.splice(idx, 1);\n }\n if (this.HAS_DOCUMENT_COOKIE && this.changeListeners.length === 0) {\n if (typeof window === 'object' && 'cookieStore' in window) {\n window.cookieStore.removeEventListener('change', this.update);\n }\n else {\n this._stopPolling();\n }\n }\n }\n}\n\nexport { Cookies as default };\n","import Cookies from 'universal-cookie';\nexport { default as Cookies } from 'universal-cookie';\nimport * as React from 'react';\nimport { useContext, useState, useLayoutEffect, useMemo } from 'react';\n\nconst CookiesContext = React.createContext(new Cookies());\nconst { Provider, Consumer } = CookiesContext;\n\nclass CookiesProvider extends React.Component {\n constructor(props) {\n super(props);\n if (props.cookies) {\n this.cookies = props.cookies;\n }\n else {\n this.cookies = new Cookies(undefined, props.defaultSetOptions);\n }\n }\n render() {\n return React.createElement(Provider, { value: this.cookies }, this.props.children);\n }\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar reactIs$1 = {exports: {}};\n\nvar reactIs_production_min = {};\n\n/** @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\nvar hasRequiredReactIs_production_min;\n\nfunction requireReactIs_production_min () {\n\tif (hasRequiredReactIs_production_min) return reactIs_production_min;\n\thasRequiredReactIs_production_min = 1;\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\n\tSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\n\tfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}reactIs_production_min.AsyncMode=l;reactIs_production_min.ConcurrentMode=m;reactIs_production_min.ContextConsumer=k;reactIs_production_min.ContextProvider=h;reactIs_production_min.Element=c;reactIs_production_min.ForwardRef=n;reactIs_production_min.Fragment=e;reactIs_production_min.Lazy=t;reactIs_production_min.Memo=r;reactIs_production_min.Portal=d;\n\treactIs_production_min.Profiler=g;reactIs_production_min.StrictMode=f;reactIs_production_min.Suspense=p;reactIs_production_min.isAsyncMode=function(a){return A(a)||z(a)===l};reactIs_production_min.isConcurrentMode=A;reactIs_production_min.isContextConsumer=function(a){return z(a)===k};reactIs_production_min.isContextProvider=function(a){return z(a)===h};reactIs_production_min.isElement=function(a){return \"object\"===typeof a&&null!==a&&a.$$typeof===c};reactIs_production_min.isForwardRef=function(a){return z(a)===n};reactIs_production_min.isFragment=function(a){return z(a)===e};reactIs_production_min.isLazy=function(a){return z(a)===t};\n\treactIs_production_min.isMemo=function(a){return z(a)===r};reactIs_production_min.isPortal=function(a){return z(a)===d};reactIs_production_min.isProfiler=function(a){return z(a)===g};reactIs_production_min.isStrictMode=function(a){return z(a)===f};reactIs_production_min.isSuspense=function(a){return z(a)===p};\n\treactIs_production_min.isValidElementType=function(a){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)};reactIs_production_min.typeOf=z;\n\treturn reactIs_production_min;\n}\n\nvar reactIs_development = {};\n\n/** @license React v16.13.1\n * react-is.development.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\nvar hasRequiredReactIs_development;\n\nfunction requireReactIs_development () {\n\tif (hasRequiredReactIs_development) return reactIs_development;\n\thasRequiredReactIs_development = 1;\n\n\n\n\tif (process.env.NODE_ENV !== \"production\") {\n\t (function() {\n\n\t// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n\t// nor polyfill, then a plain number is used for performance.\n\tvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\tvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\n\tvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\n\tvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\n\tvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\n\tvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\n\tvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\n\tvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n\t// (unstable) APIs that have been removed. Can we remove the symbols?\n\n\tvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\n\tvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\n\tvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n\tvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\n\tvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\n\tvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\n\tvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\tvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\n\tvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\n\tvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n\tvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\n\tfunction isValidElementType(type) {\n\t return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n\t type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n\t}\n\n\tfunction typeOf(object) {\n\t if (typeof object === 'object' && object !== null) {\n\t var $$typeof = object.$$typeof;\n\n\t switch ($$typeof) {\n\t case REACT_ELEMENT_TYPE:\n\t var type = object.type;\n\n\t switch (type) {\n\t case REACT_ASYNC_MODE_TYPE:\n\t case REACT_CONCURRENT_MODE_TYPE:\n\t case REACT_FRAGMENT_TYPE:\n\t case REACT_PROFILER_TYPE:\n\t case REACT_STRICT_MODE_TYPE:\n\t case REACT_SUSPENSE_TYPE:\n\t return type;\n\n\t default:\n\t var $$typeofType = type && type.$$typeof;\n\n\t switch ($$typeofType) {\n\t case REACT_CONTEXT_TYPE:\n\t case REACT_FORWARD_REF_TYPE:\n\t case REACT_LAZY_TYPE:\n\t case REACT_MEMO_TYPE:\n\t case REACT_PROVIDER_TYPE:\n\t return $$typeofType;\n\n\t default:\n\t return $$typeof;\n\t }\n\n\t }\n\n\t case REACT_PORTAL_TYPE:\n\t return $$typeof;\n\t }\n\t }\n\n\t return undefined;\n\t} // AsyncMode is deprecated along with isAsyncMode\n\n\tvar AsyncMode = REACT_ASYNC_MODE_TYPE;\n\tvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\n\tvar ContextConsumer = REACT_CONTEXT_TYPE;\n\tvar ContextProvider = REACT_PROVIDER_TYPE;\n\tvar Element = REACT_ELEMENT_TYPE;\n\tvar ForwardRef = REACT_FORWARD_REF_TYPE;\n\tvar Fragment = REACT_FRAGMENT_TYPE;\n\tvar Lazy = REACT_LAZY_TYPE;\n\tvar Memo = REACT_MEMO_TYPE;\n\tvar Portal = REACT_PORTAL_TYPE;\n\tvar Profiler = REACT_PROFILER_TYPE;\n\tvar StrictMode = REACT_STRICT_MODE_TYPE;\n\tvar Suspense = REACT_SUSPENSE_TYPE;\n\tvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\n\tfunction isAsyncMode(object) {\n\t {\n\t if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n\t hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n\t console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n\t }\n\t }\n\n\t return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n\t}\n\tfunction isConcurrentMode(object) {\n\t return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n\t}\n\tfunction isContextConsumer(object) {\n\t return typeOf(object) === REACT_CONTEXT_TYPE;\n\t}\n\tfunction isContextProvider(object) {\n\t return typeOf(object) === REACT_PROVIDER_TYPE;\n\t}\n\tfunction isElement(object) {\n\t return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n\t}\n\tfunction isForwardRef(object) {\n\t return typeOf(object) === REACT_FORWARD_REF_TYPE;\n\t}\n\tfunction isFragment(object) {\n\t return typeOf(object) === REACT_FRAGMENT_TYPE;\n\t}\n\tfunction isLazy(object) {\n\t return typeOf(object) === REACT_LAZY_TYPE;\n\t}\n\tfunction isMemo(object) {\n\t return typeOf(object) === REACT_MEMO_TYPE;\n\t}\n\tfunction isPortal(object) {\n\t return typeOf(object) === REACT_PORTAL_TYPE;\n\t}\n\tfunction isProfiler(object) {\n\t return typeOf(object) === REACT_PROFILER_TYPE;\n\t}\n\tfunction isStrictMode(object) {\n\t return typeOf(object) === REACT_STRICT_MODE_TYPE;\n\t}\n\tfunction isSuspense(object) {\n\t return typeOf(object) === REACT_SUSPENSE_TYPE;\n\t}\n\n\treactIs_development.AsyncMode = AsyncMode;\n\treactIs_development.ConcurrentMode = ConcurrentMode;\n\treactIs_development.ContextConsumer = ContextConsumer;\n\treactIs_development.ContextProvider = ContextProvider;\n\treactIs_development.Element = Element;\n\treactIs_development.ForwardRef = ForwardRef;\n\treactIs_development.Fragment = Fragment;\n\treactIs_development.Lazy = Lazy;\n\treactIs_development.Memo = Memo;\n\treactIs_development.Portal = Portal;\n\treactIs_development.Profiler = Profiler;\n\treactIs_development.StrictMode = StrictMode;\n\treactIs_development.Suspense = Suspense;\n\treactIs_development.isAsyncMode = isAsyncMode;\n\treactIs_development.isConcurrentMode = isConcurrentMode;\n\treactIs_development.isContextConsumer = isContextConsumer;\n\treactIs_development.isContextProvider = isContextProvider;\n\treactIs_development.isElement = isElement;\n\treactIs_development.isForwardRef = isForwardRef;\n\treactIs_development.isFragment = isFragment;\n\treactIs_development.isLazy = isLazy;\n\treactIs_development.isMemo = isMemo;\n\treactIs_development.isPortal = isPortal;\n\treactIs_development.isProfiler = isProfiler;\n\treactIs_development.isStrictMode = isStrictMode;\n\treactIs_development.isSuspense = isSuspense;\n\treactIs_development.isValidElementType = isValidElementType;\n\treactIs_development.typeOf = typeOf;\n\t })();\n\t}\n\treturn reactIs_development;\n}\n\nif (process.env.NODE_ENV === 'production') {\n reactIs$1.exports = requireReactIs_production_min();\n} else {\n reactIs$1.exports = requireReactIs_development();\n}\n\nvar reactIsExports = reactIs$1.exports;\n\nvar reactIs = reactIsExports;\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;\n\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\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\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\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nvar hoistNonReactStatics_cjs = hoistNonReactStatics;\n\nvar hoistStatics = /*@__PURE__*/getDefaultExportFromCjs(hoistNonReactStatics_cjs);\n\nfunction withCookies(WrappedComponent) {\n // @ts-ignore\n const name = WrappedComponent.displayName || WrappedComponent.name;\n class CookieWrapper extends React.Component {\n constructor() {\n super(...arguments);\n this.onChange = () => {\n // Make sure to update children with new values\n this.forceUpdate();\n };\n }\n listen() {\n this.props.cookies.addChangeListener(this.onChange);\n }\n unlisten(cookies) {\n (cookies || this.props.cookies).removeChangeListener(this.onChange);\n }\n componentDidMount() {\n this.listen();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.cookies !== this.props.cookies) {\n this.unlisten(prevProps.cookies);\n this.listen();\n }\n }\n componentWillUnmount() {\n this.unlisten();\n }\n render() {\n const _a = this.props, { forwardedRef, cookies } = _a, restProps = __rest(_a, [\"forwardedRef\", \"cookies\"]);\n const allCookies = cookies.getAll();\n return (React.createElement(WrappedComponent, Object.assign({}, restProps, { ref: forwardedRef, cookies: cookies, allCookies: allCookies })));\n }\n }\n CookieWrapper.displayName = `withCookies(${name})`;\n CookieWrapper.WrappedComponent = WrappedComponent;\n const ForwardedComponent = React.forwardRef((props, ref) => {\n return (React.createElement(Consumer, null, (cookies) => (React.createElement(CookieWrapper, Object.assign({ cookies: cookies }, props, { forwardedRef: ref })))));\n });\n ForwardedComponent.displayName = CookieWrapper.displayName;\n ForwardedComponent.WrappedComponent = CookieWrapper.WrappedComponent;\n return hoistStatics(ForwardedComponent, WrappedComponent);\n}\n\nfunction isInBrowser() {\n return (typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined');\n}\n\nfunction useCookies(dependencies) {\n const cookies = useContext(CookiesContext);\n if (!cookies) {\n throw new Error('Missing ');\n }\n const [allCookies, setCookies] = useState(() => cookies.getAll());\n if (isInBrowser()) {\n useLayoutEffect(() => {\n function onChange() {\n const newCookies = cookies.getAll({\n doNotUpdate: true,\n });\n if (shouldUpdate(dependencies || null, newCookies, allCookies)) {\n setCookies(newCookies);\n }\n }\n cookies.addChangeListener(onChange);\n return () => {\n cookies.removeChangeListener(onChange);\n };\n }, [cookies, allCookies]);\n }\n const setCookie = useMemo(() => cookies.set.bind(cookies), [cookies]);\n const removeCookie = useMemo(() => cookies.remove.bind(cookies), [cookies]);\n const updateCookies = useMemo(() => cookies.update.bind(cookies), [cookies]);\n return [allCookies, setCookie, removeCookie, updateCookies];\n}\nfunction shouldUpdate(dependencies, newCookies, oldCookies) {\n if (!dependencies) {\n return true;\n }\n for (let dependency of dependencies) {\n if (newCookies[dependency] !== oldCookies[dependency]) {\n return true;\n }\n }\n return false;\n}\n\nexport { CookiesProvider, useCookies, withCookies };\n","/**\n * Core\n */\nimport { useEffect, useState } from 'react'\nimport { Routes, Route, useLocation, useNavigate } from 'react-router-dom'\n\n/**\n * Styles\n */\nimport './App.scss'\n\n/**\n * Components\n */\nimport Home from './pages/home'\nimport AboutUs from './pages/about-us'\nimport GetStarted from './pages/get-started'\nimport TheJudgeClub from './pages/the-judge-club'\nimport TopStories from './pages/top-stories'\nimport TopStory from './pages/top-story'\nimport Events from './pages/events'\nimport Awards from './pages/awards'\nimport PrivacyPolicy from './pages/privacy-policy'\nimport TermsOfUse from './pages/terms-of-use'\nimport Media from './pages/media'\nimport CookiesConsent from './components/cookies-consent/cookies-consent'\nimport NoMatch from './pages/no-match'\n// import Splash from './components/splash'\nimport ThankYou from './pages/thank-you'\nimport CertifiedJudges from './pages/certified-judges'\nimport EnterTheAwards from './pages/enter-the-awards'\nimport Categories from './pages/categories'\nimport HowToEnterKit from './pages/how-to-enter-kit'\nimport JudgingProcess from './pages/judging-process'\nimport EventDetails from './pages/event-details'\nimport KitResources from './pages/kit-resources'\nimport Plan2Judge from './pages/plan2judge'\nimport NewsAndInsight from './pages/news-and-insight'\nimport SponsorsAndPartners from './pages/sponsors-and-partners'\nimport WinningLibrary from './pages/winning-library'\nimport MeetTheJudges from './pages/meet-the-judges'\nimport Plan2JudgeForm from './pages/plan2judge-form'\nimport SteeringCouncil from './pages/steering-coucnil'\nimport TermsAndConditions from './pages/terms-and-conditions'\nimport TermsOfPayment from './pages/terms-of-payment'\n\nimport Menu from './components/menu'\nimport Form from './components/form'\nimport FormPage from './pages/form'\nimport MenuTest from './components/menu-test'\n\n/**\n * Context\n */\nimport { NavigationContext } from './context/navigation.context'\nimport { SearchProvider } from './context/search.context'\n\n/**\n * Utils\n */\nimport { subscribe, unsubscribe } from './utils/event'\nimport forms from './config/forms'\nimport routes from './config/routes'\nimport useMeta from './hooks/meta.hook'\n\n/**\n * Cookies\n */\nimport { CookiesProvider, useCookies } from 'react-cookie'\n\n\n\n\nconst ScrollToTop = () => {\n const { pathname } = useLocation()\n\n useEffect(() => {\n window.scrollTo({top: 0, left: 0, behavior: 'instant'})\n }, [pathname])\n\n return null\n}\n\nconst App = () => {\n const location = useLocation()\n const [formData, setFormData] = useState(null)\n const [openFormIn, setOpenFormIn] = useState(null)\n const navigate = useNavigate()\n \n const [cookies, setCookie] = useCookies()\n const [cookiesOn, setCookiesOn] = useState(false)\n\n const [splash, setSplash] = useState(true)\n const [meta, setMeta] = useState(null)\n \n useEffect(() => {\n subscribe('formTriggered', (e) => handleFormTriggered(e))\n subscribe('formClosed', () => { setFormData(null) } )\n\n setTimeout(() => { setSplash(false) }, 3000)\n\n return () => {\n unsubscribe('resourceDownloadTriggered')\n unsubscribe('formClosed')\n }\n }, [])\n\n useEffect(() => {\n if(!cookies.hasOwnProperty('_awardsinternationalcom_cookiesConsent')) setCookiesOn(true)\n const m = routes.find(route => route.path === location.pathname)\n setMeta(m)\n }, [location])\n const handleFormTriggered = (e) => {\n setFormData(forms.find(form => form.slug == e.detail.slug))\n if(e.detail.openIn == 'page') navigate(`/${e.detail.slug}`)\n //setOpenFormIn(e.detail.openIn)\n }\n\n \n return (\n <>\n {/* { splash && } */}\n \n \n \n
\n \n \n {/* { cookiesOn && setCookiesOn(!cookiesOn)} callback={(data) => { setCookie('_awardsinternationalcom_cookiesConsent', encodeURIComponent(JSON.stringify(data))) }}/> } */}\n \n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n \n {\n formData !== null && openFormIn == 'modal' &&
\n }\n
\n
\n
\n
\n \n )\n}\n\nexport default App\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import { invariant } from \"../../utilities/globals/index.js\";\n\nimport * as React from \"rehackt\";\nimport type * as ReactTypes from \"react\";\n\nimport type { ApolloClient } from \"../../core/index.js\";\nimport { getApolloContext } from \"./ApolloContext.js\";\n\nexport interface ApolloProviderProps {\n client: ApolloClient;\n children: ReactTypes.ReactNode | ReactTypes.ReactNode[] | null;\n}\n\nexport const ApolloProvider: ReactTypes.FC> = ({\n client,\n children,\n}) => {\n const ApolloContext = getApolloContext();\n const parentContext = React.useContext(ApolloContext);\n\n const context = React.useMemo(() => {\n return {\n ...parentContext,\n client: client || parentContext.client,\n };\n }, [parentContext, client]);\n\n invariant(\n context.client,\n \"ApolloProvider was not passed a client instance. Make \" +\n 'sure you pass in your client via the \"client\" prop.'\n );\n\n return (\n {children}\n );\n};\n","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// === Symbol Support ===\nvar hasSymbols = function () {\n return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function (name) {\n return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function (name) {\n return hasSymbol(name) ? Symbol[name] : '@@' + name;\n};\n\nif (hasSymbols() && !hasSymbol('observable')) {\n Symbol.observable = Symbol('observable');\n}\n\nvar SymbolIterator = getSymbol('iterator');\nvar SymbolObservable = getSymbol('observable');\nvar SymbolSpecies = getSymbol('species'); // === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n if (value == null) return undefined;\n if (typeof value !== 'function') throw new TypeError(value + ' is not a function');\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n\n if (ctor !== undefined) {\n ctor = ctor[SymbolSpecies];\n\n if (ctor === null) {\n ctor = undefined;\n }\n }\n\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction isObservable(x) {\n return x instanceof Observable; // SPEC: Brand check\n}\n\nfunction hostReportError(e) {\n if (hostReportError.log) {\n hostReportError.log(e);\n } else {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nfunction enqueue(fn) {\n Promise.resolve().then(function () {\n try {\n fn();\n } catch (e) {\n hostReportError(e);\n }\n });\n}\n\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (cleanup === undefined) return;\n subscription._cleanup = undefined;\n\n if (!cleanup) {\n return;\n }\n\n try {\n if (typeof cleanup === 'function') {\n cleanup();\n } else {\n var unsubscribe = getMethod(cleanup, 'unsubscribe');\n\n if (unsubscribe) {\n unsubscribe.call(cleanup);\n }\n }\n } catch (e) {\n hostReportError(e);\n }\n}\n\nfunction closeSubscription(subscription) {\n subscription._observer = undefined;\n subscription._queue = undefined;\n subscription._state = 'closed';\n}\n\nfunction flushSubscription(subscription) {\n var queue = subscription._queue;\n\n if (!queue) {\n return;\n }\n\n subscription._queue = undefined;\n subscription._state = 'ready';\n\n for (var i = 0; i < queue.length; ++i) {\n notifySubscription(subscription, queue[i].type, queue[i].value);\n if (subscription._state === 'closed') break;\n }\n}\n\nfunction notifySubscription(subscription, type, value) {\n subscription._state = 'running';\n var observer = subscription._observer;\n\n try {\n var m = getMethod(observer, type);\n\n switch (type) {\n case 'next':\n if (m) m.call(observer, value);\n break;\n\n case 'error':\n closeSubscription(subscription);\n if (m) m.call(observer, value);else throw value;\n break;\n\n case 'complete':\n closeSubscription(subscription);\n if (m) m.call(observer);\n break;\n }\n } catch (e) {\n hostReportError(e);\n }\n\n if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready';\n}\n\nfunction onNotify(subscription, type, value) {\n if (subscription._state === 'closed') return;\n\n if (subscription._state === 'buffering') {\n subscription._queue.push({\n type: type,\n value: value\n });\n\n return;\n }\n\n if (subscription._state !== 'ready') {\n subscription._state = 'buffering';\n subscription._queue = [{\n type: type,\n value: value\n }];\n enqueue(function () {\n return flushSubscription(subscription);\n });\n return;\n }\n\n notifySubscription(subscription, type, value);\n}\n\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(observer, subscriber) {\n // ASSERT: observer is an object\n // ASSERT: subscriber is callable\n this._cleanup = undefined;\n this._observer = observer;\n this._queue = undefined;\n this._state = 'initializing';\n var subscriptionObserver = new SubscriptionObserver(this);\n\n try {\n this._cleanup = subscriber.call(undefined, subscriptionObserver);\n } catch (e) {\n subscriptionObserver.error(e);\n }\n\n if (this._state === 'initializing') this._state = 'ready';\n }\n\n var _proto = Subscription.prototype;\n\n _proto.unsubscribe = function unsubscribe() {\n if (this._state !== 'closed') {\n closeSubscription(this);\n cleanupSubscription(this);\n }\n };\n\n _createClass(Subscription, [{\n key: \"closed\",\n get: function () {\n return this._state === 'closed';\n }\n }]);\n\n return Subscription;\n}();\n\nvar SubscriptionObserver = /*#__PURE__*/function () {\n function SubscriptionObserver(subscription) {\n this._subscription = subscription;\n }\n\n var _proto2 = SubscriptionObserver.prototype;\n\n _proto2.next = function next(value) {\n onNotify(this._subscription, 'next', value);\n };\n\n _proto2.error = function error(value) {\n onNotify(this._subscription, 'error', value);\n };\n\n _proto2.complete = function complete() {\n onNotify(this._subscription, 'complete');\n };\n\n _createClass(SubscriptionObserver, [{\n key: \"closed\",\n get: function () {\n return this._subscription._state === 'closed';\n }\n }]);\n\n return SubscriptionObserver;\n}();\n\nvar Observable = /*#__PURE__*/function () {\n function Observable(subscriber) {\n if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function');\n if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function');\n this._subscriber = subscriber;\n }\n\n var _proto3 = Observable.prototype;\n\n _proto3.subscribe = function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n observer = {\n next: observer,\n error: arguments[1],\n complete: arguments[2]\n };\n }\n\n return new Subscription(observer, this._subscriber);\n };\n\n _proto3.forEach = function forEach(fn) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n reject(new TypeError(fn + ' is not a function'));\n return;\n }\n\n function done() {\n subscription.unsubscribe();\n resolve();\n }\n\n var subscription = _this.subscribe({\n next: function (value) {\n try {\n fn(value, done);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n };\n\n _proto3.map = function map(fn) {\n var _this2 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this2.subscribe({\n next: function (value) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.filter = function filter(fn) {\n var _this3 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this3.subscribe({\n next: function (value) {\n try {\n if (!fn(value)) return;\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.reduce = function reduce(fn) {\n var _this4 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new C(function (observer) {\n return _this4.subscribe({\n next: function (value) {\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n } catch (e) {\n return observer.error(e);\n }\n } else {\n acc = value;\n }\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence'));\n observer.next(acc);\n observer.complete();\n }\n });\n });\n };\n\n _proto3.concat = function concat() {\n var _this5 = this;\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscription;\n var index = 0;\n\n function startNext(next) {\n subscription = next.subscribe({\n next: function (v) {\n observer.next(v);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (index === sources.length) {\n subscription = undefined;\n observer.complete();\n } else {\n startNext(C.from(sources[index++]));\n }\n }\n });\n }\n\n startNext(_this5);\n return function () {\n if (subscription) {\n subscription.unsubscribe();\n subscription = undefined;\n }\n };\n });\n };\n\n _proto3.flatMap = function flatMap(fn) {\n var _this6 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscriptions = [];\n\n var outer = _this6.subscribe({\n next: function (value) {\n if (fn) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n }\n\n var inner = C.from(value).subscribe({\n next: function (value) {\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n var i = subscriptions.indexOf(inner);\n if (i >= 0) subscriptions.splice(i, 1);\n completeIfDone();\n }\n });\n subscriptions.push(inner);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n completeIfDone();\n }\n });\n\n function completeIfDone() {\n if (outer.closed && subscriptions.length === 0) observer.complete();\n }\n\n return function () {\n subscriptions.forEach(function (s) {\n return s.unsubscribe();\n });\n outer.unsubscribe();\n };\n });\n };\n\n _proto3[SymbolObservable] = function () {\n return this;\n };\n\n Observable.from = function from(x) {\n var C = typeof this === 'function' ? this : Observable;\n if (x == null) throw new TypeError(x + ' is not an object');\n var method = getMethod(x, SymbolObservable);\n\n if (method) {\n var observable = method.call(x);\n if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object');\n if (isObservable(observable) && observable.constructor === C) return observable;\n return new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n\n if (hasSymbol('iterator')) {\n method = getMethod(x, SymbolIterator);\n\n if (method) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var _iterator = _createForOfIteratorHelperLoose(method.call(x)), _step; !(_step = _iterator()).done;) {\n var item = _step.value;\n observer.next(item);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n }\n\n if (Array.isArray(x)) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < x.length; ++i) {\n observer.next(x[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n\n throw new TypeError(x + ' is not observable');\n };\n\n Observable.of = function of() {\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n\n var C = typeof this === 'function' ? this : Observable;\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < items.length; ++i) {\n observer.next(items[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n };\n\n _createClass(Observable, null, [{\n key: SymbolSpecies,\n get: function () {\n return this;\n }\n }]);\n\n return Observable;\n}();\n\nif (hasSymbols()) {\n Object.defineProperty(Observable, Symbol('extensions'), {\n value: {\n symbol: SymbolObservable,\n hostReportError: hostReportError\n },\n configurable: true\n });\n}\n\nexport { Observable };\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { isNode, QueryDocumentKeys } from './ast.mjs';\nimport { Kind } from './kinds.mjs';\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport const BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * ```ts\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n * ```\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to three permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n * ```\n *\n * 2) Named visitors that trigger upon entering and leaving a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n * ```\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * ```ts\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n * ```\n */\n\nexport function visit(root, visitor, visitorKeys = QueryDocumentKeys) {\n const enterLeaveMap = new Map();\n\n for (const kind of Object.values(Kind)) {\n enterLeaveMap.set(kind, getEnterLeaveForKind(visitor, kind));\n }\n /* eslint-disable no-undef-init */\n\n let stack = undefined;\n let inArray = Array.isArray(root);\n let keys = [root];\n let index = -1;\n let edits = [];\n let node = root;\n let key = undefined;\n let parent = undefined;\n const path = [];\n const ancestors = [];\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n const isLeaving = index === keys.length;\n const isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n let editOffset = 0;\n\n for (const [editKey, editValue] of edits) {\n const arrayKey = editKey - editOffset;\n\n if (editValue === null) {\n node.splice(arrayKey, 1);\n editOffset++;\n } else {\n node[arrayKey] = editValue;\n }\n }\n } else {\n node = Object.defineProperties(\n {},\n Object.getOwnPropertyDescriptors(node),\n );\n\n for (const [editKey, editValue] of edits) {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else if (parent) {\n key = inArray ? index : keys[index];\n node = parent[key];\n\n if (node === null || node === undefined) {\n continue;\n }\n\n path.push(key);\n }\n\n let result;\n\n if (!Array.isArray(node)) {\n var _enterLeaveMap$get, _enterLeaveMap$get2;\n\n isNode(node) || devAssert(false, `Invalid AST Node: ${inspect(node)}.`);\n const visitFn = isLeaving\n ? (_enterLeaveMap$get = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get === void 0\n ? void 0\n : _enterLeaveMap$get.leave\n : (_enterLeaveMap$get2 = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get2 === void 0\n ? void 0\n : _enterLeaveMap$get2.enter;\n result =\n visitFn === null || visitFn === void 0\n ? void 0\n : visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _node$kind;\n\n stack = {\n inArray,\n index,\n keys,\n edits,\n prev: stack,\n };\n inArray = Array.isArray(node);\n keys = inArray\n ? node\n : (_node$kind = visitorKeys[node.kind]) !== null &&\n _node$kind !== void 0\n ? _node$kind\n : [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n // New root\n return edits[edits.length - 1][1];\n }\n\n return root;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n const skipping = new Array(visitors.length).fill(null);\n const mergedVisitor = Object.create(null);\n\n for (const kind of Object.values(Kind)) {\n let hasVisitor = false;\n const enterList = new Array(visitors.length).fill(undefined);\n const leaveList = new Array(visitors.length).fill(undefined);\n\n for (let i = 0; i < visitors.length; ++i) {\n const { enter, leave } = getEnterLeaveForKind(visitors[i], kind);\n hasVisitor || (hasVisitor = enter != null || leave != null);\n enterList[i] = enter;\n leaveList[i] = leave;\n }\n\n if (!hasVisitor) {\n continue;\n }\n\n const mergedEnterLeave = {\n enter(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _enterList$i;\n\n const result =\n (_enterList$i = enterList[i]) === null || _enterList$i === void 0\n ? void 0\n : _enterList$i.apply(visitors[i], args);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n },\n\n leave(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _leaveList$i;\n\n const result =\n (_leaveList$i = leaveList[i]) === null || _leaveList$i === void 0\n ? void 0\n : _leaveList$i.apply(visitors[i], args);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n },\n };\n mergedVisitor[kind] = mergedEnterLeave;\n }\n\n return mergedVisitor;\n}\n/**\n * Given a visitor instance and a node kind, return EnterLeaveVisitor for that kind.\n */\n\nexport function getEnterLeaveForKind(visitor, kind) {\n const kindVisitor = visitor[kind];\n\n if (typeof kindVisitor === 'object') {\n // { Kind: { enter() {}, leave() {} } }\n return kindVisitor;\n } else if (typeof kindVisitor === 'function') {\n // { Kind() {} }\n return {\n enter: kindVisitor,\n leave: undefined,\n };\n } // { enter() {}, leave() {} }\n\n return {\n enter: visitor.enter,\n leave: visitor.leave,\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n *\n * @deprecated Please use `getEnterLeaveForKind` instead. Will be removed in v17\n */\n\n/* c8 ignore next 8 */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n const { enter, leave } = getEnterLeaveForKind(visitor, kind);\n return isLeaving ? leave : enter;\n}\n","import { invariant, newInvariantError } from \"../globals/index.js\";\n\nimport { BREAK, visit } from \"graphql\";\nimport type {\n DocumentNode,\n FragmentDefinitionNode,\n InlineFragmentNode,\n SelectionNode,\n} from \"graphql\";\n\n// TODO(brian): A hack until this issue is resolved (https://github.com/graphql/graphql-js/issues/3356)\ntype Kind = any;\ntype OperationTypeNode = any;\n/**\n * Returns a query document which adds a single query operation that only\n * spreads the target fragment inside of it.\n *\n * So for example a document of:\n *\n * ```graphql\n * fragment foo on Foo { a b c }\n * ```\n *\n * Turns into:\n *\n * ```graphql\n * { ...foo }\n *\n * fragment foo on Foo { a b c }\n * ```\n *\n * The target fragment will either be the only fragment in the document, or a\n * fragment specified by the provided `fragmentName`. If there is more than one\n * fragment, but a `fragmentName` was not defined then an error will be thrown.\n */\nexport function getFragmentQueryDocument(\n document: DocumentNode,\n fragmentName?: string\n): DocumentNode {\n let actualFragmentName = fragmentName;\n\n // Build an array of all our fragment definitions that will be used for\n // validations. We also do some validations on the other definitions in the\n // document while building this list.\n const fragments: Array = [];\n document.definitions.forEach((definition) => {\n // Throw an error if we encounter an operation definition because we will\n // define our own operation definition later on.\n if (definition.kind === \"OperationDefinition\") {\n throw newInvariantError(\n `Found a %s operation%s. ` +\n \"No operations are allowed when using a fragment as a query. Only fragments are allowed.\",\n definition.operation,\n definition.name ? ` named '${definition.name.value}'` : \"\"\n );\n }\n // Add our definition to the fragments array if it is a fragment\n // definition.\n if (definition.kind === \"FragmentDefinition\") {\n fragments.push(definition);\n }\n });\n\n // If the user did not give us a fragment name then let us try to get a\n // name from a single fragment in the definition.\n if (typeof actualFragmentName === \"undefined\") {\n invariant(\n fragments.length === 1,\n `Found %s fragments. \\`fragmentName\\` must be provided when there is not exactly 1 fragment.`,\n fragments.length\n );\n actualFragmentName = fragments[0].name.value;\n }\n\n // Generate a query document with an operation that simply spreads the\n // fragment inside of it.\n const query: DocumentNode = {\n ...document,\n definitions: [\n {\n kind: \"OperationDefinition\" as Kind,\n // OperationTypeNode is an enum\n operation: \"query\" as OperationTypeNode,\n selectionSet: {\n kind: \"SelectionSet\" as Kind,\n selections: [\n {\n kind: \"FragmentSpread\" as Kind,\n name: {\n kind: \"Name\" as Kind,\n value: actualFragmentName,\n },\n },\n ],\n },\n },\n ...document.definitions,\n ],\n };\n\n return query;\n}\n\n/**\n * This is an interface that describes a map from fragment names to fragment definitions.\n */\nexport interface FragmentMap {\n [fragmentName: string]: FragmentDefinitionNode;\n}\n\nexport type FragmentMapFunction = (\n fragmentName: string\n) => FragmentDefinitionNode | null;\n\n// Utility function that takes a list of fragment definitions and makes a hash out of them\n// that maps the name of the fragment to the fragment definition.\nexport function createFragmentMap(\n fragments: FragmentDefinitionNode[] = []\n): FragmentMap {\n const symTable: FragmentMap = {};\n fragments.forEach((fragment) => {\n symTable[fragment.name.value] = fragment;\n });\n return symTable;\n}\n\nexport function getFragmentFromSelection(\n selection: SelectionNode,\n fragmentMap?: FragmentMap | FragmentMapFunction\n): InlineFragmentNode | FragmentDefinitionNode | null {\n switch (selection.kind) {\n case \"InlineFragment\":\n return selection;\n case \"FragmentSpread\": {\n const fragmentName = selection.name.value;\n if (typeof fragmentMap === \"function\") {\n return fragmentMap(fragmentName);\n }\n const fragment = fragmentMap && fragmentMap[fragmentName];\n invariant(fragment, `No fragment named %s`, fragmentName);\n return fragment || null;\n }\n default:\n return null;\n }\n}\n\nexport function isFullyUnmaskedOperation(document: DocumentNode) {\n let isUnmasked = true;\n\n visit(document, {\n FragmentSpread: (node) => {\n isUnmasked =\n !!node.directives &&\n node.directives.some((directive) => directive.name.value === \"unmask\");\n\n if (!isUnmasked) {\n return BREAK;\n }\n },\n });\n\n return isUnmasked;\n}\n","import {\n AutoCleanedStrongCache,\n cacheSizes,\n defaultCacheSizes,\n} from \"../../utilities/caching/index.js\";\nimport { registerGlobalCache } from \"../caching/getMemoryInternals.js\";\n\n/**\n * Like JSON.stringify, but with object keys always sorted in the same order.\n *\n * To achieve performant sorting, this function uses a Map from JSON-serialized\n * arrays of keys (in any order) to sorted arrays of the same keys, with a\n * single sorted array reference shared by all permutations of the keys.\n *\n * As a drawback, this function will add a little bit more memory for every\n * object encountered that has different (more, less, a different order of) keys\n * than in the past.\n *\n * In a typical application, this extra memory usage should not play a\n * significant role, as `canonicalStringify` will be called for only a limited\n * number of object shapes, and the cache will not grow beyond a certain point.\n * But in some edge cases, this could be a problem, so we provide\n * canonicalStringify.reset() as a way of clearing the cache.\n * */\nexport const canonicalStringify = Object.assign(\n function canonicalStringify(value: any): string {\n return JSON.stringify(value, stableObjectReplacer);\n },\n {\n reset() {\n // Clearing the sortingMap will reclaim all cached memory, without\n // affecting the logical results of canonicalStringify, but potentially\n // sacrificing performance until the cache is refilled.\n sortingMap = new AutoCleanedStrongCache(\n cacheSizes.canonicalStringify || defaultCacheSizes.canonicalStringify\n );\n },\n }\n);\n\nif (__DEV__) {\n registerGlobalCache(\"canonicalStringify\", () => sortingMap.size);\n}\n\n// Values are JSON-serialized arrays of object keys (in any order), and values\n// are sorted arrays of the same keys.\nlet sortingMap!: AutoCleanedStrongCache;\ncanonicalStringify.reset();\n\n// The JSON.stringify function takes an optional second argument called a\n// replacer function. This function is called for each key-value pair in the\n// object being stringified, and its return value is used instead of the\n// original value. If the replacer function returns a new value, that value is\n// stringified as JSON instead of the original value of the property.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#the_replacer_parameter\nfunction stableObjectReplacer(key: string, value: any) {\n if (value && typeof value === \"object\") {\n const proto = Object.getPrototypeOf(value);\n // We don't want to mess with objects that are not \"plain\" objects, which\n // means their prototype is either Object.prototype or null. This check also\n // prevents needlessly rearranging the indices of arrays.\n if (proto === Object.prototype || proto === null) {\n const keys = Object.keys(value);\n // If keys is already sorted, let JSON.stringify serialize the original\n // value instead of creating a new object with keys in the same order.\n if (keys.every(everyKeyInOrder)) return value;\n const unsortedKey = JSON.stringify(keys);\n let sortedKeys = sortingMap.get(unsortedKey);\n if (!sortedKeys) {\n keys.sort();\n const sortedKey = JSON.stringify(keys);\n // Checking for sortedKey in the sortingMap allows us to share the same\n // sorted array reference for all permutations of the same set of keys.\n sortedKeys = sortingMap.get(sortedKey) || keys;\n sortingMap.set(unsortedKey, sortedKeys);\n sortingMap.set(sortedKey, sortedKeys);\n }\n const sortedObject = Object.create(proto);\n // Reassigning the keys in sorted order will cause JSON.stringify to\n // serialize them in sorted order.\n sortedKeys.forEach((key) => {\n sortedObject[key] = value[key];\n });\n return sortedObject;\n }\n }\n return value;\n}\n\n// Since everything that happens in stableObjectReplacer benefits from being as\n// efficient as possible, we use a static function as the callback for\n// keys.every in order to test if the provided keys are already sorted without\n// allocating extra memory for a callback.\nfunction everyKeyInOrder(\n key: string,\n i: number,\n keys: readonly string[]\n): boolean {\n return i === 0 || keys[i - 1] <= key;\n}\n","import { newInvariantError } from \"../globals/index.js\";\n\nimport type {\n DirectiveNode,\n FieldNode,\n IntValueNode,\n FloatValueNode,\n StringValueNode,\n BooleanValueNode,\n ObjectValueNode,\n ListValueNode,\n EnumValueNode,\n NullValueNode,\n VariableNode,\n InlineFragmentNode,\n ValueNode,\n SelectionNode,\n NameNode,\n SelectionSetNode,\n DocumentNode,\n FragmentSpreadNode,\n} from \"graphql\";\n\nimport { isNonNullObject } from \"../common/objects.js\";\nimport type { FragmentMap } from \"./fragments.js\";\nimport { getFragmentFromSelection } from \"./fragments.js\";\nimport { canonicalStringify } from \"../common/canonicalStringify.js\";\n\nexport interface Reference {\n readonly __ref: string;\n}\n\nexport function makeReference(id: string): Reference {\n return { __ref: String(id) };\n}\n\nexport function isReference(obj: any): obj is Reference {\n return Boolean(\n obj && typeof obj === \"object\" && typeof obj.__ref === \"string\"\n );\n}\n\nexport type StoreValue =\n | number\n | string\n | string[]\n | Reference\n | Reference[]\n | null\n | undefined\n | void\n | Object;\n\nexport interface StoreObject {\n __typename?: string;\n [storeFieldName: string]: StoreValue;\n}\n\n/**\n * Workaround for a TypeScript quirk:\n * types per default have an implicit index signature that makes them\n * assignable to `StoreObject`.\n * interfaces do not have that implicit index signature, so they cannot\n * be assigned to `StoreObject`.\n * This type just maps over a type or interface that is passed in,\n * implicitly adding the index signature.\n * That way, the result can be assigned to `StoreObject`.\n *\n * This is important if some user-defined interface is used e.g.\n * in cache.modify, where the `toReference` method expects a\n * `StoreObject` as input.\n */\nexport type AsStoreObject = {\n [K in keyof T]: T[K];\n};\n\nexport function isDocumentNode(value: any): value is DocumentNode {\n return (\n isNonNullObject(value) &&\n (value as DocumentNode).kind === \"Document\" &&\n Array.isArray((value as DocumentNode).definitions)\n );\n}\n\nfunction isStringValue(value: ValueNode): value is StringValueNode {\n return value.kind === \"StringValue\";\n}\n\nfunction isBooleanValue(value: ValueNode): value is BooleanValueNode {\n return value.kind === \"BooleanValue\";\n}\n\nfunction isIntValue(value: ValueNode): value is IntValueNode {\n return value.kind === \"IntValue\";\n}\n\nfunction isFloatValue(value: ValueNode): value is FloatValueNode {\n return value.kind === \"FloatValue\";\n}\n\nfunction isVariable(value: ValueNode): value is VariableNode {\n return value.kind === \"Variable\";\n}\n\nfunction isObjectValue(value: ValueNode): value is ObjectValueNode {\n return value.kind === \"ObjectValue\";\n}\n\nfunction isListValue(value: ValueNode): value is ListValueNode {\n return value.kind === \"ListValue\";\n}\n\nfunction isEnumValue(value: ValueNode): value is EnumValueNode {\n return value.kind === \"EnumValue\";\n}\n\nfunction isNullValue(value: ValueNode): value is NullValueNode {\n return value.kind === \"NullValue\";\n}\n\nexport function valueToObjectRepresentation(\n argObj: any,\n name: NameNode,\n value: ValueNode,\n variables?: Object\n) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n } else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n } else if (isObjectValue(value)) {\n const nestedArgObj = {};\n value.fields.map((obj) =>\n valueToObjectRepresentation(nestedArgObj, obj.name, obj.value, variables)\n );\n argObj[name.value] = nestedArgObj;\n } else if (isVariable(value)) {\n const variableValue = (variables || ({} as any))[value.name.value];\n argObj[name.value] = variableValue;\n } else if (isListValue(value)) {\n argObj[name.value] = value.values.map((listValue) => {\n const nestedArgArrayObj = {};\n valueToObjectRepresentation(\n nestedArgArrayObj,\n name,\n listValue,\n variables\n );\n return (nestedArgArrayObj as any)[name.value];\n });\n } else if (isEnumValue(value)) {\n argObj[name.value] = (value as EnumValueNode).value;\n } else if (isNullValue(value)) {\n argObj[name.value] = null;\n } else {\n throw newInvariantError(\n `The inline argument \"%s\" of kind \"%s\"` +\n \"is not supported. Use variables instead of inline arguments to \" +\n \"overcome this limitation.\",\n name.value,\n (value as any).kind\n );\n }\n}\n\nexport function storeKeyNameFromField(\n field: FieldNode,\n variables?: Object\n): string {\n let directivesObj: any = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach((directive) => {\n directivesObj[directive.name.value] = {};\n\n if (directive.arguments) {\n directive.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(\n directivesObj[directive.name.value],\n name,\n value,\n variables\n )\n );\n }\n });\n }\n\n let argObj: any = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables)\n );\n }\n\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\n\nexport type Directives = {\n [directiveName: string]: {\n [argName: string]: any;\n };\n};\n\nconst KNOWN_DIRECTIVES: string[] = [\n \"connection\",\n \"include\",\n \"skip\",\n \"client\",\n \"rest\",\n \"export\",\n \"nonreactive\",\n];\n\n// Default stable JSON.stringify implementation used by getStoreKeyName. Can be\n// updated/replaced with something better by calling\n// getStoreKeyName.setStringify(newStringifyFunction).\nlet storeKeyNameStringify: (value: any) => string = canonicalStringify;\n\nexport const getStoreKeyName = Object.assign(\n function (\n fieldName: string,\n args?: Record | null,\n directives?: Directives\n ): string {\n if (\n args &&\n directives &&\n directives[\"connection\"] &&\n directives[\"connection\"][\"key\"]\n ) {\n if (\n directives[\"connection\"][\"filter\"] &&\n (directives[\"connection\"][\"filter\"] as string[]).length > 0\n ) {\n const filterKeys =\n directives[\"connection\"][\"filter\"] ?\n (directives[\"connection\"][\"filter\"] as string[])\n : [];\n filterKeys.sort();\n\n const filteredArgs = {} as { [key: string]: any };\n filterKeys.forEach((key) => {\n filteredArgs[key] = args[key];\n });\n\n return `${directives[\"connection\"][\"key\"]}(${storeKeyNameStringify(\n filteredArgs\n )})`;\n } else {\n return directives[\"connection\"][\"key\"];\n }\n }\n\n let completeFieldName: string = fieldName;\n\n if (args) {\n // We can't use `JSON.stringify` here since it's non-deterministic,\n // and can lead to different store key names being created even though\n // the `args` object used during creation has the same properties/values.\n const stringifiedArgs: string = storeKeyNameStringify(args);\n completeFieldName += `(${stringifiedArgs})`;\n }\n\n if (directives) {\n Object.keys(directives).forEach((key) => {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += `@${key}(${storeKeyNameStringify(\n directives[key]\n )})`;\n } else {\n completeFieldName += `@${key}`;\n }\n });\n }\n\n return completeFieldName;\n },\n {\n setStringify(s: typeof storeKeyNameStringify) {\n const previous = storeKeyNameStringify;\n storeKeyNameStringify = s;\n return previous;\n },\n }\n);\n\nexport function argumentsObjectFromField(\n field: FieldNode | DirectiveNode,\n variables?: Record\n): Object | null {\n if (field.arguments && field.arguments.length) {\n const argObj: Object = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables)\n );\n return argObj;\n }\n return null;\n}\n\nexport function resultKeyNameFromField(field: FieldNode): string {\n return field.alias ? field.alias.value : field.name.value;\n}\n\nexport function getTypenameFromResult(\n result: Record,\n selectionSet: SelectionSetNode,\n fragmentMap?: FragmentMap\n): string | undefined {\n let fragments: undefined | Array;\n for (const selection of selectionSet.selections) {\n if (isField(selection)) {\n if (selection.name.value === \"__typename\") {\n return result[resultKeyNameFromField(selection)];\n }\n } else if (fragments) {\n fragments.push(selection);\n } else {\n fragments = [selection];\n }\n }\n if (typeof result.__typename === \"string\") {\n return result.__typename;\n }\n if (fragments) {\n for (const selection of fragments) {\n const typename = getTypenameFromResult(\n result,\n getFragmentFromSelection(selection, fragmentMap)!.selectionSet,\n fragmentMap\n );\n if (typeof typename === \"string\") {\n return typename;\n }\n }\n }\n}\n\nexport function isField(selection: SelectionNode): selection is FieldNode {\n return selection.kind === \"Field\";\n}\n\nexport function isInlineFragment(\n selection: SelectionNode\n): selection is InlineFragmentNode {\n return selection.kind === \"InlineFragment\";\n}\n\nexport type VariableValue = (node: VariableNode) => any;\n","import { invariant, newInvariantError } from \"../globals/index.js\";\n\nimport type {\n DocumentNode,\n OperationDefinitionNode,\n FragmentDefinitionNode,\n ValueNode,\n} from \"graphql\";\n\nimport { valueToObjectRepresentation } from \"./storeUtils.js\";\n\ntype OperationDefinitionWithName = OperationDefinitionNode & {\n name: NonNullable;\n};\n\n// Checks the document for errors and throws an exception if there is an error.\nexport function checkDocument(doc: DocumentNode) {\n invariant(\n doc && doc.kind === \"Document\",\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`\n );\n\n const operations = doc.definitions\n .filter((d) => d.kind !== \"FragmentDefinition\")\n .map((definition) => {\n if (definition.kind !== \"OperationDefinition\") {\n throw newInvariantError(\n `Schema type definitions not allowed in queries. Found: \"%s\"`,\n definition.kind\n );\n }\n return definition;\n });\n\n invariant(\n operations.length <= 1,\n `Ambiguous GraphQL document: contains %s operations`,\n operations.length\n );\n\n return doc;\n}\n\nexport function getOperationDefinition(\n doc: DocumentNode\n): OperationDefinitionNode | undefined {\n checkDocument(doc);\n return doc.definitions.filter(\n (definition): definition is OperationDefinitionNode =>\n definition.kind === \"OperationDefinition\"\n )[0];\n}\n\nexport function getOperationName(doc: DocumentNode): string | null {\n return (\n doc.definitions\n .filter(\n (definition): definition is OperationDefinitionWithName =>\n definition.kind === \"OperationDefinition\" && !!definition.name\n )\n .map((x) => x.name.value)[0] || null\n );\n}\n\n// Returns the FragmentDefinitions from a particular document as an array\nexport function getFragmentDefinitions(\n doc: DocumentNode\n): FragmentDefinitionNode[] {\n return doc.definitions.filter(\n (definition): definition is FragmentDefinitionNode =>\n definition.kind === \"FragmentDefinition\"\n );\n}\n\nexport function getQueryDefinition(doc: DocumentNode): OperationDefinitionNode {\n const queryDef = getOperationDefinition(doc)!;\n\n invariant(\n queryDef && queryDef.operation === \"query\",\n \"Must contain a query definition.\"\n );\n\n return queryDef;\n}\n\nexport function getFragmentDefinition(\n doc: DocumentNode\n): FragmentDefinitionNode {\n invariant(\n doc.kind === \"Document\",\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`\n );\n\n invariant(\n doc.definitions.length <= 1,\n \"Fragment must have exactly one definition.\"\n );\n\n const fragmentDef = doc.definitions[0] as FragmentDefinitionNode;\n\n invariant(\n fragmentDef.kind === \"FragmentDefinition\",\n \"Must be a fragment definition.\"\n );\n\n return fragmentDef as FragmentDefinitionNode;\n}\n\n/**\n * Returns the first operation definition found in this document.\n * If no operation definition is found, the first fragment definition will be returned.\n * If no definitions are found, an error will be thrown.\n */\nexport function getMainDefinition(\n queryDoc: DocumentNode\n): OperationDefinitionNode | FragmentDefinitionNode {\n checkDocument(queryDoc);\n\n let fragmentDefinition;\n\n for (let definition of queryDoc.definitions) {\n if (definition.kind === \"OperationDefinition\") {\n const operation = (definition as OperationDefinitionNode).operation;\n if (\n operation === \"query\" ||\n operation === \"mutation\" ||\n operation === \"subscription\"\n ) {\n return definition as OperationDefinitionNode;\n }\n }\n if (definition.kind === \"FragmentDefinition\" && !fragmentDefinition) {\n // we do this because we want to allow multiple fragment definitions\n // to precede an operation definition.\n fragmentDefinition = definition as FragmentDefinitionNode;\n }\n }\n\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n\n throw newInvariantError(\n \"Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.\"\n );\n}\n\nexport function getDefaultValues(\n definition: OperationDefinitionNode | undefined\n): Record {\n const defaultValues = Object.create(null);\n const defs = definition && definition.variableDefinitions;\n if (defs && defs.length) {\n defs.forEach((def) => {\n if (def.defaultValue) {\n valueToObjectRepresentation(\n defaultValues,\n def.variable.name,\n def.defaultValue as ValueNode\n );\n }\n });\n }\n return defaultValues;\n}\n","import { newInvariantError, invariant } from \"../../utilities/globals/index.js\";\n\nimport type { Observer } from \"../../utilities/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport type {\n NextLink,\n Operation,\n RequestHandler,\n FetchResult,\n GraphQLRequest,\n} from \"./types.js\";\nimport {\n validateOperation,\n createOperation,\n transformOperation,\n} from \"../utils/index.js\";\n\nfunction passthrough(op: Operation, forward: NextLink) {\n return (forward ? forward(op) : Observable.of()) as Observable;\n}\n\nfunction toLink(handler: RequestHandler | ApolloLink) {\n return typeof handler === \"function\" ? new ApolloLink(handler) : handler;\n}\n\nfunction isTerminating(link: ApolloLink): boolean {\n return link.request.length <= 1;\n}\n\nexport class ApolloLink {\n public static empty(): ApolloLink {\n return new ApolloLink(() => Observable.of());\n }\n\n public static from(links: (ApolloLink | RequestHandler)[]): ApolloLink {\n if (links.length === 0) return ApolloLink.empty();\n return links.map(toLink).reduce((x, y) => x.concat(y)) as ApolloLink;\n }\n\n public static split(\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right?: ApolloLink | RequestHandler\n ): ApolloLink {\n const leftLink = toLink(left);\n const rightLink = toLink(right || new ApolloLink(passthrough));\n\n let ret: ApolloLink;\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n ret = new ApolloLink((operation) => {\n return test(operation) ?\n leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n } else {\n ret = new ApolloLink((operation, forward) => {\n return test(operation) ?\n leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n return Object.assign(ret, { left: leftLink, right: rightLink });\n }\n\n public static execute(\n link: ApolloLink,\n operation: GraphQLRequest\n ): Observable {\n return (\n link.request(\n createOperation(\n operation.context,\n transformOperation(validateOperation(operation))\n )\n ) || Observable.of()\n );\n }\n\n public static concat(\n first: ApolloLink | RequestHandler,\n second: ApolloLink | RequestHandler\n ) {\n const firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n invariant.warn(\n `You are calling concat on a terminating link, which will have no effect %o`,\n firstLink\n );\n return firstLink;\n }\n const nextLink = toLink(second);\n\n let ret: ApolloLink;\n if (isTerminating(nextLink)) {\n ret = new ApolloLink(\n (operation) =>\n firstLink.request(\n operation,\n (op) => nextLink.request(op) || Observable.of()\n ) || Observable.of()\n );\n } else {\n ret = new ApolloLink((operation, forward) => {\n return (\n firstLink.request(operation, (op) => {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of()\n );\n });\n }\n return Object.assign(ret, { left: firstLink, right: nextLink });\n }\n\n constructor(request?: RequestHandler) {\n if (request) this.request = request;\n }\n\n public split(\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right?: ApolloLink | RequestHandler\n ): ApolloLink {\n return this.concat(\n ApolloLink.split(test, left, right || new ApolloLink(passthrough))\n );\n }\n\n public concat(next: ApolloLink | RequestHandler): ApolloLink {\n return ApolloLink.concat(this, next);\n }\n\n public request(\n operation: Operation,\n forward?: NextLink\n ): Observable | null {\n throw newInvariantError(\"request is not implemented\");\n }\n\n protected onError(\n error: any,\n observer?: Observer\n ): false | void {\n if (observer && observer.error) {\n observer.error(error);\n // Returning false indicates that observer.error does not need to be\n // called again, since it was already called (on the previous line).\n // Calling observer.error again would not cause any real problems,\n // since only the first call matters, but custom onError functions\n // might have other reasons for wanting to prevent the default\n // behavior by returning false.\n return false;\n }\n // Throw errors will be passed to observer.error.\n throw error;\n }\n\n public setOnError(fn: ApolloLink[\"onError\"]): this {\n this.onError = fn;\n return this;\n }\n\n /**\n * @internal\n * Used to iterate through all links that are concatenations or `split` links.\n */\n readonly left?: ApolloLink;\n /**\n * @internal\n * Used to iterate through all links that are concatenations or `split` links.\n */\n readonly right?: ApolloLink;\n\n /**\n * @internal\n * Can be provided by a link that has an internal cache to report it's memory details.\n */\n getMemoryInternals?: () => unknown;\n}\n","import type { GraphQLRequest, Operation } from \"../core/index.js\";\n\nexport function createOperation(\n starting: any,\n operation: GraphQLRequest\n): Operation {\n let context = { ...starting };\n const setContext: Operation[\"setContext\"] = (next) => {\n if (typeof next === \"function\") {\n context = { ...context, ...next(context) };\n } else {\n context = { ...context, ...next };\n }\n };\n const getContext: Operation[\"getContext\"] = () => ({ ...context });\n\n Object.defineProperty(operation, \"setContext\", {\n enumerable: false,\n value: setContext,\n });\n\n Object.defineProperty(operation, \"getContext\", {\n enumerable: false,\n value: getContext,\n });\n\n return operation as Operation;\n}\n","import type { GraphQLRequest, Operation } from \"../core/index.js\";\nimport { getOperationName } from \"../../utilities/index.js\";\n\nexport function transformOperation(operation: GraphQLRequest): GraphQLRequest {\n const transformedOperation: GraphQLRequest = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n\n // Best guess at an operation name\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== \"string\" ?\n getOperationName(transformedOperation.query) || undefined\n : \"\";\n }\n\n return transformedOperation as Operation;\n}\n","import { newInvariantError } from \"../../utilities/globals/index.js\";\nimport type { GraphQLRequest } from \"../core/index.js\";\n\nexport function validateOperation(operation: GraphQLRequest): GraphQLRequest {\n const OPERATION_FIELDS = [\n \"query\",\n \"operationName\",\n \"variables\",\n \"extensions\",\n \"context\",\n ];\n for (let key of Object.keys(operation)) {\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw newInvariantError(`illegal argument: %s`, key);\n }\n }\n\n return operation;\n}\n","import { ApolloLink } from \"./ApolloLink.js\";\n\nexport const execute = ApolloLink.execute;\n","import { invariant } from \"../globals/index.js\";\n\n// Provides the methods that allow QueryManager to handle the `skip` and\n// `include` directives within GraphQL.\nimport type {\n SelectionNode,\n VariableNode,\n BooleanValueNode,\n DirectiveNode,\n DocumentNode,\n ArgumentNode,\n ValueNode,\n ASTNode,\n FragmentSpreadNode,\n} from \"graphql\";\nimport { visit, BREAK, Kind } from \"graphql\";\n\nexport type DirectiveInfo = {\n [fieldName: string]: { [argName: string]: any };\n};\n\nexport function shouldInclude(\n { directives }: SelectionNode,\n variables?: Record\n): boolean {\n if (!directives || !directives.length) {\n return true;\n }\n return getInclusionDirectives(directives).every(\n ({ directive, ifArgument }) => {\n let evaledValue: boolean = false;\n if (ifArgument.value.kind === \"Variable\") {\n evaledValue =\n variables && variables[(ifArgument.value as VariableNode).name.value];\n invariant(\n evaledValue !== void 0,\n `Invalid variable referenced in @%s directive.`,\n directive.name.value\n );\n } else {\n evaledValue = (ifArgument.value as BooleanValueNode).value;\n }\n return directive.name.value === \"skip\" ? !evaledValue : evaledValue;\n }\n );\n}\n\nexport function getDirectiveNames(root: ASTNode) {\n const names: string[] = [];\n\n visit(root, {\n Directive(node: DirectiveNode) {\n names.push(node.name.value);\n },\n });\n\n return names;\n}\n\nexport const hasAnyDirectives = (names: string[], root: ASTNode) =>\n hasDirectives(names, root, false);\n\nexport const hasAllDirectives = (names: string[], root: ASTNode) =>\n hasDirectives(names, root, true);\n\nexport function hasDirectives(names: string[], root: ASTNode, all?: boolean) {\n const nameSet = new Set(names);\n const uniqueCount = nameSet.size;\n\n visit(root, {\n Directive(node) {\n if (nameSet.delete(node.name.value) && (!all || !nameSet.size)) {\n return BREAK;\n }\n },\n });\n\n // If we found all the names, nameSet will be empty. If we only care about\n // finding some of them, the < condition is sufficient.\n return all ? !nameSet.size : nameSet.size < uniqueCount;\n}\n\nexport function hasClientExports(document: DocumentNode) {\n return document && hasDirectives([\"client\", \"export\"], document, true);\n}\n\nexport type InclusionDirectives = Array<{\n directive: DirectiveNode;\n ifArgument: ArgumentNode;\n}>;\n\nfunction isInclusionDirective({ name: { value } }: DirectiveNode): boolean {\n return value === \"skip\" || value === \"include\";\n}\n\nexport function getInclusionDirectives(\n directives: ReadonlyArray\n): InclusionDirectives {\n const result: InclusionDirectives = [];\n\n if (directives && directives.length) {\n directives.forEach((directive) => {\n if (!isInclusionDirective(directive)) return;\n\n const directiveArguments = directive.arguments;\n const directiveName = directive.name.value;\n\n invariant(\n directiveArguments && directiveArguments.length === 1,\n `Incorrect number of arguments for the @%s directive.`,\n directiveName\n );\n\n const ifArgument = directiveArguments![0];\n invariant(\n ifArgument.name && ifArgument.name.value === \"if\",\n `Invalid argument for the @%s directive.`,\n directiveName\n );\n\n const ifValue: ValueNode = ifArgument.value;\n\n // means it has to be a variable value if this is a valid @skip or @include directive\n invariant(\n ifValue &&\n (ifValue.kind === \"Variable\" || ifValue.kind === \"BooleanValue\"),\n `Argument for the @%s directive must be a variable or a boolean value.`,\n directiveName\n );\n\n result.push({ directive, ifArgument });\n });\n }\n\n return result;\n}\n\n/** @internal */\nexport function getFragmentMaskMode(\n fragment: FragmentSpreadNode\n): \"mask\" | \"migrate\" | \"unmask\" {\n const directive = fragment.directives?.find(\n ({ name }) => name.value === \"unmask\"\n );\n\n if (!directive) {\n return \"mask\";\n }\n\n const modeArg = directive.arguments?.find(\n ({ name }) => name.value === \"mode\"\n );\n\n if (__DEV__) {\n if (modeArg) {\n if (modeArg.value.kind === Kind.VARIABLE) {\n invariant.warn(\"@unmask 'mode' argument does not support variables.\");\n } else if (modeArg.value.kind !== Kind.STRING) {\n invariant.warn(\"@unmask 'mode' argument must be of type string.\");\n } else if (modeArg.value.value !== \"migrate\") {\n invariant.warn(\n \"@unmask 'mode' argument does not recognize value '%s'.\",\n modeArg.value.value\n );\n }\n }\n }\n\n if (\n modeArg &&\n \"value\" in modeArg.value &&\n modeArg.value.value === \"migrate\"\n ) {\n return \"migrate\";\n }\n\n return \"unmask\";\n}\n","import { newInvariantError } from \"../../utilities/globals/index.js\";\nimport type { InvariantError } from \"../../utilities/globals/index.js\";\n\nexport type ClientParseError = InvariantError & {\n parseError: Error;\n};\n\nexport const serializeFetchParameter = (p: any, label: string) => {\n let serialized;\n try {\n serialized = JSON.stringify(p);\n } catch (e: any) {\n const parseError = newInvariantError(\n `Network request failed. %s is not serializable: %s`,\n label,\n e.message\n ) as ClientParseError;\n parseError.parseError = e;\n throw parseError;\n }\n return serialized;\n};\n","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/nodeStream.ts\n */\n\nimport type { Readable as NodeReadableStream } from \"stream\";\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\n\ninterface NodeStreamIterator {\n next(): Promise>;\n [Symbol.asyncIterator]?(): AsyncIterator;\n}\n\nexport default function nodeStreamIterator(\n stream: NodeReadableStream\n): AsyncIterableIterator {\n let cleanup: (() => void) | null = null;\n let error: Error | null = null;\n let done = false;\n const data: unknown[] = [];\n\n const waiting: [\n (\n value:\n | IteratorResult\n | PromiseLike>\n ) => void,\n (reason?: any) => void,\n ][] = [];\n\n function onData(chunk: any) {\n if (error) return;\n if (waiting.length) {\n const shiftedArr = waiting.shift();\n if (Array.isArray(shiftedArr) && shiftedArr[0]) {\n return shiftedArr[0]({ value: chunk, done: false });\n }\n }\n data.push(chunk);\n }\n function onError(err: Error) {\n error = err;\n const all = waiting.slice();\n all.forEach(function (pair) {\n pair[1](err);\n });\n !cleanup || cleanup();\n }\n function onEnd() {\n done = true;\n const all = waiting.slice();\n all.forEach(function (pair) {\n pair[0]({ value: undefined, done: true });\n });\n !cleanup || cleanup();\n }\n\n cleanup = function () {\n cleanup = null;\n stream.removeListener(\"data\", onData);\n stream.removeListener(\"error\", onError);\n stream.removeListener(\"end\", onEnd);\n stream.removeListener(\"finish\", onEnd);\n stream.removeListener(\"close\", onEnd);\n };\n stream.on(\"data\", onData);\n stream.on(\"error\", onError);\n stream.on(\"end\", onEnd);\n stream.on(\"finish\", onEnd);\n stream.on(\"close\", onEnd);\n\n function getNext(): Promise> {\n return new Promise(function (resolve, reject) {\n if (error) return reject(error);\n if (data.length)\n return resolve({ value: data.shift() as T, done: false });\n if (done) return resolve({ value: undefined, done: true });\n waiting.push([resolve, reject]);\n });\n }\n\n const iterator: NodeStreamIterator = {\n next(): Promise> {\n return getNext();\n },\n };\n\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function (): AsyncIterator {\n return this;\n };\n }\n\n return iterator as AsyncIterableIterator;\n}\n","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/reader.ts\n */\n\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\n\ninterface ReaderIterator {\n next(): Promise>;\n [Symbol.asyncIterator]?(): AsyncIterator;\n}\n\nexport default function readerIterator(\n reader: ReadableStreamDefaultReader\n): AsyncIterableIterator {\n const iterator: ReaderIterator = {\n next() {\n return reader.read() as Promise<\n | ReadableStreamReadValueResult\n // DoneResult has `value` optional, which doesn't comply with an\n // `IteratorResult`, so we assert it to `T | undefined` instead\n | Required>\n >;\n },\n };\n\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function (): AsyncIterator<\n T,\n T | undefined\n > {\n return this;\n };\n }\n\n return iterator as AsyncIterableIterator;\n}\n","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/index.ts\n */\n\nimport type { Response as NodeResponse } from \"node-fetch\";\nimport type { Readable as NodeReadableStream } from \"stream\";\nimport { canUseAsyncIteratorSymbol } from \"../../utilities/index.js\";\n\nimport asyncIterator from \"./iterators/async.js\";\nimport nodeStreamIterator from \"./iterators/nodeStream.js\";\nimport promiseIterator from \"./iterators/promise.js\";\nimport readerIterator from \"./iterators/reader.js\";\n\nfunction isNodeResponse(value: any): value is NodeResponse {\n return !!(value as NodeResponse).body;\n}\n\nfunction isReadableStream(value: any): value is ReadableStream {\n return !!(value as ReadableStream).getReader;\n}\n\nfunction isAsyncIterableIterator(\n value: any\n): value is AsyncIterableIterator {\n return !!(\n canUseAsyncIteratorSymbol &&\n (value as AsyncIterableIterator)[Symbol.asyncIterator]\n );\n}\n\nfunction isStreamableBlob(value: any): value is Blob {\n return !!(value as Blob).stream;\n}\n\nfunction isBlob(value: any): value is Blob {\n return !!(value as Blob).arrayBuffer;\n}\n\nfunction isNodeReadableStream(value: any): value is NodeReadableStream {\n return !!(value as NodeReadableStream).pipe;\n}\n\nexport function responseIterator(\n response: Response | NodeResponse\n): AsyncIterableIterator {\n let body: unknown = response;\n\n if (isNodeResponse(response)) body = response.body;\n\n if (isAsyncIterableIterator(body)) return asyncIterator(body);\n\n if (isReadableStream(body)) return readerIterator(body.getReader());\n\n // this errors without casting to ReadableStream\n // because Blob.stream() returns a NodeJS ReadableStream\n if (isStreamableBlob(body)) {\n return readerIterator(\n (body.stream() as unknown as ReadableStream).getReader()\n );\n }\n\n if (isBlob(body)) return promiseIterator(body.arrayBuffer());\n\n if (isNodeReadableStream(body)) return nodeStreamIterator(body);\n\n throw new Error(\n \"Unknown body type for responseIterator. Please pass a streamable response.\"\n );\n}\n","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/async.ts\n */\n\nexport default function asyncIterator(\n source: AsyncIterableIterator\n): AsyncIterableIterator {\n const iterator = source[Symbol.asyncIterator]();\n return {\n next(): Promise> {\n return iterator.next();\n },\n [Symbol.asyncIterator](): AsyncIterableIterator {\n return this;\n },\n };\n}\n","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/promise.ts\n */\n\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\n\ninterface PromiseIterator {\n next(): Promise>;\n [Symbol.asyncIterator]?(): AsyncIterator;\n}\n\nexport default function promiseIterator(\n promise: Promise\n): AsyncIterableIterator {\n let resolved = false;\n\n const iterator: PromiseIterator = {\n next(): Promise> {\n if (resolved)\n return Promise.resolve({\n value: undefined,\n done: true,\n });\n resolved = true;\n return new Promise(function (resolve, reject) {\n promise\n .then(function (value) {\n resolve({ value: value as unknown as T, done: false });\n })\n .catch(reject);\n });\n },\n };\n\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function (): AsyncIterator {\n return this;\n };\n }\n\n return iterator as AsyncIterableIterator;\n}\n","export type ServerError = Error & {\n response: Response;\n result: Record | string;\n statusCode: number;\n};\n\nexport const throwServerError = (\n response: Response,\n result: any,\n message: string\n) => {\n const error = new Error(message) as ServerError;\n error.name = \"ServerError\";\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n throw error;\n};\n","import { isNonNullObject } from \"./objects.js\";\n\nconst { hasOwnProperty } = Object.prototype;\n\n// These mergeDeep and mergeDeepArray utilities merge any number of objects\n// together, sharing as much memory as possible with the source objects, while\n// remaining careful to avoid modifying any source objects.\n\n// Logically, the return type of mergeDeep should be the intersection of\n// all the argument types. The binary call signature is by far the most\n// common, but we support 0- through 5-ary as well. After that, the\n// resulting type is just the inferred array element type. Note to nerds:\n// there is a more clever way of doing this that converts the tuple type\n// first to a union type (easy enough: T[number]) and then converts the\n// union to an intersection type using distributive conditional type\n// inference, but that approach has several fatal flaws (boolean becomes\n// true & false, and the inferred type ends up as unknown in many cases),\n// in addition to being nearly impossible to explain/understand.\nexport type TupleToIntersection =\n T extends [infer A] ? A\n : T extends [infer A, infer B] ? A & B\n : T extends [infer A, infer B, infer C] ? A & B & C\n : T extends [infer A, infer B, infer C, infer D] ? A & B & C & D\n : T extends [infer A, infer B, infer C, infer D, infer E] ? A & B & C & D & E\n : T extends (infer U)[] ? U\n : any;\n\nexport function mergeDeep(\n ...sources: T\n): TupleToIntersection {\n return mergeDeepArray(sources);\n}\n\n// In almost any situation where you could succeed in getting the\n// TypeScript compiler to infer a tuple type for the sources array, you\n// could just use mergeDeep instead of mergeDeepArray, so instead of\n// trying to convert T[] to an intersection type we just infer the array\n// element type, which works perfectly when the sources array has a\n// consistent element type.\nexport function mergeDeepArray(sources: T[]): T {\n let target = sources[0] || ({} as T);\n const count = sources.length;\n if (count > 1) {\n const merger = new DeepMerger();\n for (let i = 1; i < count; ++i) {\n target = merger.merge(target, sources[i]);\n }\n }\n return target;\n}\n\nexport type ReconcilerFunction = (\n this: DeepMerger,\n target: Record,\n source: Record,\n property: string | number,\n ...context: TContextArgs\n) => any;\n\nconst defaultReconciler: ReconcilerFunction = function (\n target,\n source,\n property\n) {\n return this.merge(target[property], source[property]);\n};\n\nexport class DeepMerger {\n constructor(\n private reconciler: ReconcilerFunction = defaultReconciler as any as ReconcilerFunction\n ) {}\n\n public merge(target: any, source: any, ...context: TContextArgs): any {\n if (isNonNullObject(source) && isNonNullObject(target)) {\n Object.keys(source).forEach((sourceKey) => {\n if (hasOwnProperty.call(target, sourceKey)) {\n const targetValue = target[sourceKey];\n if (source[sourceKey] !== targetValue) {\n const result = this.reconciler(\n target,\n source,\n sourceKey,\n ...context\n );\n // A well-implemented reconciler may return targetValue to indicate\n // the merge changed nothing about the structure of the target.\n if (result !== targetValue) {\n target = this.shallowCopyForMerge(target);\n target[sourceKey] = result;\n }\n }\n } else {\n // If there is no collision, the target can safely share memory with\n // the source, and the recursion can terminate here.\n target = this.shallowCopyForMerge(target);\n target[sourceKey] = source[sourceKey];\n }\n });\n\n return target;\n }\n\n // If source (or target) is not an object, let source replace target.\n return source;\n }\n\n public isObject = isNonNullObject;\n\n private pastCopies = new Set();\n\n public shallowCopyForMerge(value: T): T {\n if (isNonNullObject(value)) {\n if (!this.pastCopies.has(value)) {\n if (Array.isArray(value)) {\n value = (value as any).slice(0);\n } else {\n value = {\n __proto__: Object.getPrototypeOf(value),\n ...value,\n };\n }\n this.pastCopies.add(value);\n }\n }\n return value;\n }\n}\n","import type {\n ExecutionPatchIncrementalResult,\n ExecutionPatchInitialResult,\n ExecutionPatchResult,\n ApolloPayloadResult,\n FetchResult,\n} from \"../../link/core/index.js\";\nimport { isNonNullObject } from \"./objects.js\";\nimport { isNonEmptyArray } from \"./arrays.js\";\nimport { DeepMerger } from \"./mergeDeep.js\";\n\nexport function isExecutionPatchIncrementalResult(\n value: FetchResult\n): value is ExecutionPatchIncrementalResult {\n return \"incremental\" in value;\n}\n\nexport function isExecutionPatchInitialResult(\n value: FetchResult\n): value is ExecutionPatchInitialResult {\n return \"hasNext\" in value && \"data\" in value;\n}\n\nexport function isExecutionPatchResult(\n value: FetchResult\n): value is ExecutionPatchResult {\n return (\n isExecutionPatchIncrementalResult(value) ||\n isExecutionPatchInitialResult(value)\n );\n}\n\n// This function detects an Apollo payload result before it is transformed\n// into a FetchResult via HttpLink; it cannot detect an ApolloPayloadResult\n// once it leaves the link chain.\nexport function isApolloPayloadResult(\n value: unknown\n): value is ApolloPayloadResult {\n return isNonNullObject(value) && \"payload\" in value;\n}\n\nexport function mergeIncrementalData(\n prevResult: TData,\n result: ExecutionPatchResult\n) {\n let mergedData = prevResult;\n const merger = new DeepMerger();\n if (\n isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)\n ) {\n result.incremental.forEach(({ data, path }) => {\n for (let i = path.length - 1; i >= 0; --i) {\n const key = path[i];\n const isNumericKey = !isNaN(+key);\n const parent: Record = isNumericKey ? [] : {};\n parent[key] = data;\n data = parent as typeof data;\n }\n mergedData = merger.merge(mergedData, data);\n });\n }\n return mergedData as TData;\n}\n","import { responseIterator } from \"./responseIterator.js\";\nimport type { Operation } from \"../core/index.js\";\nimport { throwServerError } from \"../utils/index.js\";\nimport { PROTOCOL_ERRORS_SYMBOL } from \"../../errors/index.js\";\nimport { isApolloPayloadResult } from \"../../utilities/common/incrementalResult.js\";\nimport type { SubscriptionObserver } from \"zen-observable-ts\";\n\nconst { hasOwnProperty } = Object.prototype;\n\nexport type ServerParseError = Error & {\n response: Response;\n statusCode: number;\n bodyText: string;\n};\n\nexport async function readMultipartBody<\n T extends object = Record,\n>(response: Response, nextValue: (value: T) => void) {\n if (TextDecoder === undefined) {\n throw new Error(\n \"TextDecoder must be defined in the environment: please import a polyfill.\"\n );\n }\n const decoder = new TextDecoder(\"utf-8\");\n const contentType = response.headers?.get(\"content-type\");\n const delimiter = \"boundary=\";\n\n // parse boundary value and ignore any subsequent name/value pairs after ;\n // https://www.rfc-editor.org/rfc/rfc9110.html#name-parameters\n // e.g. multipart/mixed;boundary=\"graphql\";deferSpec=20220824\n // if no boundary is specified, default to -\n const boundaryVal =\n contentType?.includes(delimiter) ?\n contentType\n ?.substring(contentType?.indexOf(delimiter) + delimiter.length)\n .replace(/['\"]/g, \"\")\n .replace(/\\;(.*)/gm, \"\")\n .trim()\n : \"-\";\n\n const boundary = `\\r\\n--${boundaryVal}`;\n let buffer = \"\";\n const iterator = responseIterator(response);\n let running = true;\n\n while (running) {\n const { value, done } = await iterator.next();\n const chunk = typeof value === \"string\" ? value : decoder.decode(value);\n const searchFrom = buffer.length - boundary.length + 1;\n running = !done;\n buffer += chunk;\n let bi = buffer.indexOf(boundary, searchFrom);\n\n while (bi > -1) {\n let message: string;\n [message, buffer] = [\n buffer.slice(0, bi),\n buffer.slice(bi + boundary.length),\n ];\n const i = message.indexOf(\"\\r\\n\\r\\n\");\n const headers = parseHeaders(message.slice(0, i));\n const contentType = headers[\"content-type\"];\n if (\n contentType &&\n contentType.toLowerCase().indexOf(\"application/json\") === -1\n ) {\n throw new Error(\n \"Unsupported patch content type: application/json is required.\"\n );\n }\n // nb: Technically you'd want to slice off the beginning \"\\r\\n\" but since\n // this is going to be `JSON.parse`d there is no need.\n const body = message.slice(i);\n\n if (body) {\n const result = parseJsonBody(response, body);\n if (\n Object.keys(result).length > 1 ||\n \"data\" in result ||\n \"incremental\" in result ||\n \"errors\" in result ||\n \"payload\" in result\n ) {\n if (isApolloPayloadResult(result)) {\n let next = {};\n if (\"payload\" in result) {\n if (Object.keys(result).length === 1 && result.payload === null) {\n return;\n }\n next = { ...result.payload };\n }\n if (\"errors\" in result) {\n next = {\n ...next,\n extensions: {\n ...(\"extensions\" in next ? next.extensions : (null as any)),\n [PROTOCOL_ERRORS_SYMBOL]: result.errors,\n },\n };\n }\n nextValue(next as T);\n } else {\n // for the last chunk with only `hasNext: false`\n // we don't need to call observer.next as there is no data/errors\n nextValue(result);\n }\n } else if (\n // If the chunk contains only a \"hasNext: false\", we can call\n // observer.complete() immediately.\n Object.keys(result).length === 1 &&\n \"hasNext\" in result &&\n !result.hasNext\n ) {\n return;\n }\n }\n bi = buffer.indexOf(boundary);\n }\n }\n}\n\nexport function parseHeaders(headerText: string): Record {\n const headersInit: Record = {};\n headerText.split(\"\\n\").forEach((line) => {\n const i = line.indexOf(\":\");\n if (i > -1) {\n // normalize headers to lowercase\n const name = line.slice(0, i).trim().toLowerCase();\n const value = line.slice(i + 1).trim();\n headersInit[name] = value;\n }\n });\n return headersInit;\n}\n\nexport function parseJsonBody(response: Response, bodyText: string): T {\n if (response.status >= 300) {\n // Network error\n const getResult = (): Record | string => {\n try {\n return JSON.parse(bodyText);\n } catch (err) {\n return bodyText;\n }\n };\n throwServerError(\n response,\n getResult(),\n `Response not successful: Received status code ${response.status}`\n );\n }\n\n try {\n return JSON.parse(bodyText) as T;\n } catch (err) {\n const parseError = err as ServerParseError;\n parseError.name = \"ServerParseError\";\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n throw parseError;\n }\n}\n\nexport function handleError(err: any, observer: SubscriptionObserver) {\n // if it is a network error, BUT there is graphql result info fire\n // the next observer before calling error this gives apollo-client\n // (and react-apollo) the `graphqlErrors` and `networkErrors` to\n // pass to UI this should only happen if we *also* have data as\n // part of the response key per the spec\n if (err.result && err.result.errors && err.result.data) {\n // if we don't call next, the UI can only show networkError\n // because AC didn't get any graphqlErrors this is graphql\n // execution result info (i.e errors and possibly data) this is\n // because there is no formal spec how errors should translate to\n // http status codes. So an auth error (401) could have both data\n // from a public field, errors from a private field, and a status\n // of 401\n // {\n // user { // this will have errors\n // firstName\n // }\n // products { // this is public so will have data\n // cost\n // }\n // }\n //\n // the result of above *could* look like this:\n // {\n // data: { products: [{ cost: \"$10\" }] },\n // errors: [{\n // message: 'your session has timed out',\n // path: []\n // }]\n // }\n // status code of above would be a 401\n // in the UI you want to show data where you can, errors as data where you can\n // and use correct http status codes\n observer.next(err.result);\n }\n\n observer.error(err);\n}\n\nexport function parseAndCheckHttpResponse(operations: Operation | Operation[]) {\n return (response: Response) =>\n response\n .text()\n .then((bodyText) => parseJsonBody(response, bodyText))\n .then((result: any) => {\n if (\n !Array.isArray(result) &&\n !hasOwnProperty.call(result, \"data\") &&\n !hasOwnProperty.call(result, \"errors\")\n ) {\n // Data error\n throwServerError(\n response,\n result,\n `Server response was missing for query '${\n Array.isArray(operations) ?\n operations.map((op) => op.operationName)\n : operations.operationName\n }'.`\n );\n }\n return result;\n });\n}\n","/**\n * Prints a string as a GraphQL StringValue literal. Replaces control characters\n * and excluded characters (\" U+0022 and \\\\ U+005C) with escape sequences.\n */\nexport function printString(str) {\n return `\"${str.replace(escapedRegExp, escapedReplacer)}\"`;\n} // eslint-disable-next-line no-control-regex\n\nconst escapedRegExp = /[\\x00-\\x1f\\x22\\x5c\\x7f-\\x9f]/g;\n\nfunction escapedReplacer(str) {\n return escapeSequences[str.charCodeAt(0)];\n} // prettier-ignore\n\nconst escapeSequences = [\n '\\\\u0000',\n '\\\\u0001',\n '\\\\u0002',\n '\\\\u0003',\n '\\\\u0004',\n '\\\\u0005',\n '\\\\u0006',\n '\\\\u0007',\n '\\\\b',\n '\\\\t',\n '\\\\n',\n '\\\\u000B',\n '\\\\f',\n '\\\\r',\n '\\\\u000E',\n '\\\\u000F',\n '\\\\u0010',\n '\\\\u0011',\n '\\\\u0012',\n '\\\\u0013',\n '\\\\u0014',\n '\\\\u0015',\n '\\\\u0016',\n '\\\\u0017',\n '\\\\u0018',\n '\\\\u0019',\n '\\\\u001A',\n '\\\\u001B',\n '\\\\u001C',\n '\\\\u001D',\n '\\\\u001E',\n '\\\\u001F',\n '',\n '',\n '\\\\\"',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 2F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 3F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 4F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\\\\\',\n '',\n '',\n '', // 5F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 6F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\u007F',\n '\\\\u0080',\n '\\\\u0081',\n '\\\\u0082',\n '\\\\u0083',\n '\\\\u0084',\n '\\\\u0085',\n '\\\\u0086',\n '\\\\u0087',\n '\\\\u0088',\n '\\\\u0089',\n '\\\\u008A',\n '\\\\u008B',\n '\\\\u008C',\n '\\\\u008D',\n '\\\\u008E',\n '\\\\u008F',\n '\\\\u0090',\n '\\\\u0091',\n '\\\\u0092',\n '\\\\u0093',\n '\\\\u0094',\n '\\\\u0095',\n '\\\\u0096',\n '\\\\u0097',\n '\\\\u0098',\n '\\\\u0099',\n '\\\\u009A',\n '\\\\u009B',\n '\\\\u009C',\n '\\\\u009D',\n '\\\\u009E',\n '\\\\u009F',\n];\n","import { printBlockString } from './blockString.mjs';\nimport { printString } from './printString.mjs';\nimport { visit } from './visitor.mjs';\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, printDocASTReducer);\n}\nconst MAX_LINE_LENGTH = 80;\nconst printDocASTReducer = {\n Name: {\n leave: (node) => node.value,\n },\n Variable: {\n leave: (node) => '$' + node.name,\n },\n // Document\n Document: {\n leave: (node) => join(node.definitions, '\\n\\n'),\n },\n OperationDefinition: {\n leave(node) {\n const varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n const prefix = join(\n [\n node.operation,\n join([node.name, varDefs]),\n join(node.directives, ' '),\n ],\n ' ',\n ); // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return (prefix === 'query' ? '' : prefix + ' ') + node.selectionSet;\n },\n },\n VariableDefinition: {\n leave: ({ variable, type, defaultValue, directives }) =>\n variable +\n ': ' +\n type +\n wrap(' = ', defaultValue) +\n wrap(' ', join(directives, ' ')),\n },\n SelectionSet: {\n leave: ({ selections }) => block(selections),\n },\n Field: {\n leave({ alias, name, arguments: args, directives, selectionSet }) {\n const prefix = wrap('', alias, ': ') + name;\n let argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n if (argsLine.length > MAX_LINE_LENGTH) {\n argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n }\n\n return join([argsLine, join(directives, ' '), selectionSet], ' ');\n },\n },\n Argument: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Fragments\n FragmentSpread: {\n leave: ({ name, directives }) =>\n '...' + name + wrap(' ', join(directives, ' ')),\n },\n InlineFragment: {\n leave: ({ typeCondition, directives, selectionSet }) =>\n join(\n [\n '...',\n wrap('on ', typeCondition),\n join(directives, ' '),\n selectionSet,\n ],\n ' ',\n ),\n },\n FragmentDefinition: {\n leave: (\n { name, typeCondition, variableDefinitions, directives, selectionSet }, // Note: fragment variable definitions are experimental and may be changed\n ) =>\n // or removed in the future.\n `fragment ${name}${wrap('(', join(variableDefinitions, ', '), ')')} ` +\n `on ${typeCondition} ${wrap('', join(directives, ' '), ' ')}` +\n selectionSet,\n },\n // Value\n IntValue: {\n leave: ({ value }) => value,\n },\n FloatValue: {\n leave: ({ value }) => value,\n },\n StringValue: {\n leave: ({ value, block: isBlockString }) =>\n isBlockString ? printBlockString(value) : printString(value),\n },\n BooleanValue: {\n leave: ({ value }) => (value ? 'true' : 'false'),\n },\n NullValue: {\n leave: () => 'null',\n },\n EnumValue: {\n leave: ({ value }) => value,\n },\n ListValue: {\n leave: ({ values }) => '[' + join(values, ', ') + ']',\n },\n ObjectValue: {\n leave: ({ fields }) => '{' + join(fields, ', ') + '}',\n },\n ObjectField: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Directive\n Directive: {\n leave: ({ name, arguments: args }) =>\n '@' + name + wrap('(', join(args, ', '), ')'),\n },\n // Type\n NamedType: {\n leave: ({ name }) => name,\n },\n ListType: {\n leave: ({ type }) => '[' + type + ']',\n },\n NonNullType: {\n leave: ({ type }) => type + '!',\n },\n // Type System Definitions\n SchemaDefinition: {\n leave: ({ description, directives, operationTypes }) =>\n wrap('', description, '\\n') +\n join(['schema', join(directives, ' '), block(operationTypes)], ' '),\n },\n OperationTypeDefinition: {\n leave: ({ operation, type }) => operation + ': ' + type,\n },\n ScalarTypeDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') +\n join(['scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n FieldDefinition: {\n leave: ({ description, name, arguments: args, type, directives }) =>\n wrap('', description, '\\n') +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n ': ' +\n type +\n wrap(' ', join(directives, ' ')),\n },\n InputValueDefinition: {\n leave: ({ description, name, type, defaultValue, directives }) =>\n wrap('', description, '\\n') +\n join(\n [name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')],\n ' ',\n ),\n },\n InterfaceTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeDefinition: {\n leave: ({ description, name, directives, types }) =>\n wrap('', description, '\\n') +\n join(\n ['union', name, join(directives, ' '), wrap('= ', join(types, ' | '))],\n ' ',\n ),\n },\n EnumTypeDefinition: {\n leave: ({ description, name, directives, values }) =>\n wrap('', description, '\\n') +\n join(['enum', name, join(directives, ' '), block(values)], ' '),\n },\n EnumValueDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') + join([name, join(directives, ' ')], ' '),\n },\n InputObjectTypeDefinition: {\n leave: ({ description, name, directives, fields }) =>\n wrap('', description, '\\n') +\n join(['input', name, join(directives, ' '), block(fields)], ' '),\n },\n DirectiveDefinition: {\n leave: ({ description, name, arguments: args, repeatable, locations }) =>\n wrap('', description, '\\n') +\n 'directive @' +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n (repeatable ? ' repeatable' : '') +\n ' on ' +\n join(locations, ' | '),\n },\n SchemaExtension: {\n leave: ({ directives, operationTypes }) =>\n join(\n ['extend schema', join(directives, ' '), block(operationTypes)],\n ' ',\n ),\n },\n ScalarTypeExtension: {\n leave: ({ name, directives }) =>\n join(['extend scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n InterfaceTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeExtension: {\n leave: ({ name, directives, types }) =>\n join(\n [\n 'extend union',\n name,\n join(directives, ' '),\n wrap('= ', join(types, ' | ')),\n ],\n ' ',\n ),\n },\n EnumTypeExtension: {\n leave: ({ name, directives, values }) =>\n join(['extend enum', name, join(directives, ' '), block(values)], ' '),\n },\n InputObjectTypeExtension: {\n leave: ({ name, directives, fields }) =>\n join(['extend input', name, join(directives, ' '), block(fields)], ' '),\n },\n};\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\nfunction join(maybeArray, separator = '') {\n var _maybeArray$filter$jo;\n\n return (_maybeArray$filter$jo =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.filter((x) => x).join(separator)) !== null &&\n _maybeArray$filter$jo !== void 0\n ? _maybeArray$filter$jo\n : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an indented `{ }` block.\n */\n\nfunction block(array) {\n return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\nfunction wrap(start, maybeString, end = '') {\n return maybeString != null && maybeString !== ''\n ? start + maybeString + end\n : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction hasMultilineItems(maybeArray) {\n var _maybeArray$some;\n\n // FIXME: https://github.com/graphql/graphql-js/issues/2203\n\n /* c8 ignore next */\n return (_maybeArray$some =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.some((str) => str.includes('\\n'))) !== null &&\n _maybeArray$some !== void 0\n ? _maybeArray$some\n : false;\n}\n","import type { ASTNode } from \"graphql\";\nimport { print as origPrint } from \"graphql\";\nimport {\n AutoCleanedWeakCache,\n cacheSizes,\n defaultCacheSizes,\n} from \"../caching/index.js\";\nimport { registerGlobalCache } from \"../caching/getMemoryInternals.js\";\n\nlet printCache!: AutoCleanedWeakCache;\nexport const print = Object.assign(\n (ast: ASTNode) => {\n let result = printCache.get(ast);\n\n if (!result) {\n result = origPrint(ast);\n printCache.set(ast, result);\n }\n return result;\n },\n {\n reset() {\n printCache = new AutoCleanedWeakCache(\n cacheSizes.print || defaultCacheSizes.print\n );\n },\n }\n);\nprint.reset();\n\nif (__DEV__) {\n registerGlobalCache(\"print\", () => (printCache ? printCache.size : 0));\n}\n","import type { ASTNode } from \"graphql\";\nimport { print } from \"../../utilities/index.js\";\n\nimport type { Operation } from \"../core/index.js\";\n\nexport interface Printer {\n (node: ASTNode, originalPrint: typeof print): string;\n}\n\nexport interface UriFunction {\n (operation: Operation): string;\n}\n\nexport interface Body {\n query?: string;\n operationName?: string;\n variables?: Record;\n extensions?: Record;\n}\n\nexport interface HttpOptions {\n /**\n * The URI to use when fetching operations.\n *\n * Defaults to '/graphql'.\n */\n uri?: string | UriFunction;\n\n /**\n * Passes the extensions field to your graphql server.\n *\n * Defaults to false.\n */\n includeExtensions?: boolean;\n\n /**\n * A `fetch`-compatible API to use when making requests.\n */\n fetch?: typeof fetch;\n\n /**\n * An object representing values to be sent as headers on the request.\n */\n headers?: Record;\n\n /**\n * If set to true, header names won't be automatically normalized to\n * lowercase. This allows for non-http-spec-compliant servers that might\n * expect capitalized header names.\n */\n preserveHeaderCase?: boolean;\n\n /**\n * The credentials policy you want to use for the fetch call.\n */\n credentials?: string;\n\n /**\n * Any overrides of the fetch options argument to pass to the fetch call.\n */\n fetchOptions?: any;\n\n /**\n * If set to true, use the HTTP GET method for query operations. Mutations\n * will still use the method specified in fetchOptions.method (which defaults\n * to POST).\n */\n useGETForQueries?: boolean;\n\n /**\n * If set to true, the default behavior of stripping unused variables\n * from the request will be disabled.\n *\n * Unused variables are likely to trigger server-side validation errors,\n * per https://spec.graphql.org/draft/#sec-All-Variables-Used, but this\n * includeUnusedVariables option can be useful if your server deviates\n * from the GraphQL specification by not strictly enforcing that rule.\n */\n includeUnusedVariables?: boolean;\n /**\n * A function to substitute for the default query print function. Can be\n * used to apply changes to the results of the print function.\n */\n print?: Printer;\n}\n\nexport interface HttpQueryOptions {\n includeQuery?: boolean;\n includeExtensions?: boolean;\n preserveHeaderCase?: boolean;\n}\n\nexport interface HttpConfig {\n http?: HttpQueryOptions;\n options?: any;\n headers?: Record;\n credentials?: any;\n}\n\nconst defaultHttpOptions: HttpQueryOptions = {\n includeQuery: true,\n includeExtensions: false,\n preserveHeaderCase: false,\n};\n\nconst defaultHeaders = {\n // headers are case insensitive (https://stackoverflow.com/a/5259004)\n accept: \"*/*\",\n // The content-type header describes the type of the body of the request, and\n // so it typically only is sent with requests that actually have bodies. One\n // could imagine that Apollo Client would remove this header when constructing\n // a GET request (which has no body), but we historically have not done that.\n // This means that browsers will preflight all Apollo Client requests (even\n // GET requests). Apollo Server's CSRF prevention feature (introduced in\n // AS3.7) takes advantage of this fact and does not block requests with this\n // header. If you want to drop this header from GET requests, then you should\n // probably replace it with a `apollo-require-preflight` header, or servers\n // with CSRF prevention enabled might block your GET request. See\n // https://www.apollographql.com/docs/apollo-server/security/cors/#preventing-cross-site-request-forgery-csrf\n // for more details.\n \"content-type\": \"application/json\",\n};\n\nconst defaultOptions = {\n method: \"POST\",\n};\n\nexport const fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\n\nexport const defaultPrinter: Printer = (ast, printer) => printer(ast);\n\nexport function selectHttpOptionsAndBody(\n operation: Operation,\n fallbackConfig: HttpConfig,\n ...configs: Array\n) {\n configs.unshift(fallbackConfig);\n return selectHttpOptionsAndBodyInternal(\n operation,\n defaultPrinter,\n ...configs\n );\n}\n\nexport function selectHttpOptionsAndBodyInternal(\n operation: Operation,\n printer: Printer,\n ...configs: HttpConfig[]\n) {\n let options = {} as HttpConfig & Record;\n let http = {} as HttpQueryOptions;\n\n configs.forEach((config) => {\n options = {\n ...options,\n ...config.options,\n headers: {\n ...options.headers,\n ...config.headers,\n },\n };\n\n if (config.credentials) {\n options.credentials = config.credentials;\n }\n\n http = {\n ...http,\n ...config.http,\n };\n });\n\n if (options.headers) {\n options.headers = removeDuplicateHeaders(\n options.headers,\n http.preserveHeaderCase\n );\n }\n\n //The body depends on the http options\n const { operationName, extensions, variables, query } = operation;\n const body: Body = { operationName, variables };\n\n if (http.includeExtensions) (body as any).extensions = extensions;\n\n // not sending the query (i.e persisted queries)\n if (http.includeQuery) (body as any).query = printer(query, print);\n\n return {\n options,\n body,\n };\n}\n\n// Remove potential duplicate header names, preserving last (by insertion order).\n// This is done to prevent unintentionally duplicating a header instead of\n// overwriting it (See #8447 and #8449).\nfunction removeDuplicateHeaders(\n headers: Record,\n preserveHeaderCase: boolean | undefined\n): typeof headers {\n // If we're not preserving the case, just remove duplicates w/ normalization.\n if (!preserveHeaderCase) {\n const normalizedHeaders: Record = {};\n Object.keys(Object(headers)).forEach((name) => {\n normalizedHeaders[name.toLowerCase()] = headers[name];\n });\n return normalizedHeaders;\n }\n\n // If we are preserving the case, remove duplicates w/ normalization,\n // preserving the original name.\n // This allows for non-http-spec-compliant servers that expect intentionally\n // capitalized header names (See #6741).\n const headerData: Record =\n {};\n Object.keys(Object(headers)).forEach((name) => {\n headerData[name.toLowerCase()] = {\n originalName: name,\n value: headers[name],\n };\n });\n\n const normalizedHeaders: Record = {};\n Object.keys(headerData).forEach((name) => {\n normalizedHeaders[headerData[name].originalName] = headerData[name].value;\n });\n return normalizedHeaders;\n}\n","import { Observable } from \"../../utilities/index.js\";\n\nexport function fromError(errorValue: any): Observable {\n return new Observable((observer) => {\n observer.error(errorValue);\n });\n}\n","import { invariant } from \"../globals/index.js\";\n\nimport type {\n DocumentNode,\n SelectionNode,\n SelectionSetNode,\n OperationDefinitionNode,\n FieldNode,\n DirectiveNode,\n FragmentDefinitionNode,\n ArgumentNode,\n FragmentSpreadNode,\n VariableDefinitionNode,\n ASTNode,\n ASTVisitFn,\n InlineFragmentNode,\n} from \"graphql\";\nimport { visit, Kind } from \"graphql\";\n\nimport {\n checkDocument,\n getOperationDefinition,\n getFragmentDefinition,\n getFragmentDefinitions,\n getMainDefinition,\n} from \"./getFromAST.js\";\nimport { isField } from \"./storeUtils.js\";\nimport type { FragmentMap } from \"./fragments.js\";\nimport { createFragmentMap } from \"./fragments.js\";\nimport { isArray, isNonEmptyArray } from \"../common/arrays.js\";\n\n// https://github.com/graphql/graphql-js/blob/8d7c8fccf5a9846a50785de04abda58a7eb13fc0/src/language/visitor.ts#L20-L23\ninterface EnterLeaveVisitor {\n readonly enter?: ASTVisitFn;\n readonly leave?: ASTVisitFn;\n}\n\nexport type RemoveNodeConfig = {\n name?: string;\n test?: (node: N) => boolean;\n remove?: boolean;\n};\n\nexport type GetNodeConfig = {\n name?: string;\n test?: (node: N) => boolean;\n};\n\nexport type RemoveDirectiveConfig = RemoveNodeConfig;\nexport type GetDirectiveConfig = GetNodeConfig;\nexport type RemoveArgumentsConfig = RemoveNodeConfig;\nexport type GetFragmentSpreadConfig = GetNodeConfig;\nexport type RemoveFragmentSpreadConfig = RemoveNodeConfig;\nexport type RemoveFragmentDefinitionConfig =\n RemoveNodeConfig;\nexport type RemoveVariableDefinitionConfig =\n RemoveNodeConfig;\n\nconst TYPENAME_FIELD: FieldNode = {\n kind: Kind.FIELD,\n name: {\n kind: Kind.NAME,\n value: \"__typename\",\n },\n};\n\nfunction isEmpty(\n op: OperationDefinitionNode | FragmentDefinitionNode,\n fragmentMap: FragmentMap\n): boolean {\n return (\n !op ||\n op.selectionSet.selections.every(\n (selection) =>\n selection.kind === Kind.FRAGMENT_SPREAD &&\n isEmpty(fragmentMap[selection.name.value], fragmentMap)\n )\n );\n}\n\nfunction nullIfDocIsEmpty(doc: DocumentNode) {\n return (\n isEmpty(\n getOperationDefinition(doc) || getFragmentDefinition(doc),\n createFragmentMap(getFragmentDefinitions(doc))\n )\n ) ?\n null\n : doc;\n}\n\nfunction getDirectiveMatcher(\n configs: (RemoveDirectiveConfig | GetDirectiveConfig)[]\n) {\n const names = new Map();\n\n const tests = new Map<\n (directive: DirectiveNode) => boolean,\n RemoveDirectiveConfig | GetDirectiveConfig\n >();\n\n configs.forEach((directive) => {\n if (directive) {\n if (directive.name) {\n names.set(directive.name, directive);\n } else if (directive.test) {\n tests.set(directive.test, directive);\n }\n }\n });\n\n return (directive: DirectiveNode) => {\n let config = names.get(directive.name.value);\n if (!config && tests.size) {\n tests.forEach((testConfig, test) => {\n if (test(directive)) {\n config = testConfig;\n }\n });\n }\n return config;\n };\n}\n\n// Helper interface and function used by removeDirectivesFromDocument to keep\n// track of variable references and fragments spreads found within a given\n// operation or fragment definition.\ninterface InternalInUseInfo {\n variables: Set;\n fragmentSpreads: Set;\n // Set to true when we deliberately remove a fragment definition, so we can\n // make sure also to remove dangling ...spreads that refer to it.\n removed?: boolean;\n // Populated by the populateTransitiveVars helper function below.\n transitiveVars?: Set;\n}\nfunction makeInUseGetterFunction(defaultKey: TKey) {\n const map = new Map();\n\n return function inUseGetterFunction(\n key: TKey = defaultKey\n ): InternalInUseInfo {\n let inUse = map.get(key);\n if (!inUse) {\n map.set(\n key,\n (inUse = {\n // Variable and fragment spread names used directly within this\n // operation or fragment definition, as identified by key. These sets\n // will be populated during the first traversal of the document in\n // removeDirectivesFromDocument below.\n variables: new Set(),\n fragmentSpreads: new Set(),\n })\n );\n }\n return inUse;\n };\n}\n\nexport function removeDirectivesFromDocument(\n directives: RemoveDirectiveConfig[],\n doc: DocumentNode\n): DocumentNode | null {\n checkDocument(doc);\n\n // Passing empty strings to makeInUseGetterFunction means we handle anonymous\n // operations as if their names were \"\". Anonymous fragment definitions are\n // not supposed to be possible, but the same default naming strategy seems\n // appropriate for that case as well.\n const getInUseByOperationName = makeInUseGetterFunction(\"\");\n const getInUseByFragmentName = makeInUseGetterFunction(\"\");\n const getInUse = (\n ancestors: readonly (ASTNode | readonly ASTNode[])[]\n ): InternalInUseInfo | null => {\n for (\n let p = 0, ancestor: ASTNode | readonly ASTNode[];\n p < ancestors.length && (ancestor = ancestors[p]);\n ++p\n ) {\n if (isArray(ancestor)) continue;\n if (ancestor.kind === Kind.OPERATION_DEFINITION) {\n // If an operation is anonymous, we use the empty string as its key.\n return getInUseByOperationName(ancestor.name && ancestor.name.value);\n }\n if (ancestor.kind === Kind.FRAGMENT_DEFINITION) {\n return getInUseByFragmentName(ancestor.name.value);\n }\n }\n invariant.error(`Could not find operation or fragment`);\n return null;\n };\n\n let operationCount = 0;\n for (let i = doc.definitions.length - 1; i >= 0; --i) {\n if (doc.definitions[i].kind === Kind.OPERATION_DEFINITION) {\n ++operationCount;\n }\n }\n\n const directiveMatcher = getDirectiveMatcher(directives);\n const shouldRemoveField = (nodeDirectives: FieldNode[\"directives\"]) =>\n isNonEmptyArray(nodeDirectives) &&\n nodeDirectives\n .map(directiveMatcher)\n .some(\n (config: RemoveDirectiveConfig | undefined) => config && config.remove\n );\n\n const originalFragmentDefsByPath = new Map();\n\n // Any time the first traversal of the document below makes a change like\n // removing a fragment (by returning null), this variable should be set to\n // true. Once it becomes true, it should never be set to false again. If this\n // variable remains false throughout the traversal, then we can return the\n // original doc immediately without any modifications.\n let firstVisitMadeChanges = false;\n\n const fieldOrInlineFragmentVisitor: EnterLeaveVisitor<\n FieldNode | InlineFragmentNode\n > = {\n enter(node) {\n if (shouldRemoveField(node.directives)) {\n firstVisitMadeChanges = true;\n return null;\n }\n },\n };\n\n const docWithoutDirectiveSubtrees = visit(doc, {\n // These two AST node types share the same implementation, defined above.\n Field: fieldOrInlineFragmentVisitor,\n InlineFragment: fieldOrInlineFragmentVisitor,\n\n VariableDefinition: {\n enter() {\n // VariableDefinition nodes do not count as variables in use, though\n // they do contain Variable nodes that might be visited below. To avoid\n // counting variable declarations as usages, we skip visiting the\n // contents of this VariableDefinition node by returning false.\n return false;\n },\n },\n\n Variable: {\n enter(node, _key, _parent, _path, ancestors) {\n const inUse = getInUse(ancestors);\n if (inUse) {\n inUse.variables.add(node.name.value);\n }\n },\n },\n\n FragmentSpread: {\n enter(node, _key, _parent, _path, ancestors) {\n if (shouldRemoveField(node.directives)) {\n firstVisitMadeChanges = true;\n return null;\n }\n const inUse = getInUse(ancestors);\n if (inUse) {\n inUse.fragmentSpreads.add(node.name.value);\n }\n // We might like to remove this FragmentSpread by returning null here if\n // the corresponding FragmentDefinition node is also going to be removed\n // by the logic below, but we can't control the relative order of those\n // events, so we have to postpone the removal of dangling FragmentSpread\n // nodes until after the current visit of the document has finished.\n },\n },\n\n FragmentDefinition: {\n enter(node, _key, _parent, path) {\n originalFragmentDefsByPath.set(JSON.stringify(path), node);\n },\n leave(node, _key, _parent, path) {\n const originalNode = originalFragmentDefsByPath.get(\n JSON.stringify(path)\n );\n if (node === originalNode) {\n // If the FragmentNode received by this leave function is identical to\n // the one received by the corresponding enter function (above), then\n // the visitor must not have made any changes within this\n // FragmentDefinition node. This fragment definition may still be\n // removed if there are no ...spread references to it, but it won't be\n // removed just because it has only a __typename field.\n return node;\n }\n\n if (\n // This logic applies only if the document contains one or more\n // operations, since removing all fragments from a document containing\n // only fragments makes the document useless.\n operationCount > 0 &&\n node.selectionSet.selections.every(\n (selection) =>\n selection.kind === Kind.FIELD &&\n selection.name.value === \"__typename\"\n )\n ) {\n // This is a somewhat opinionated choice: if a FragmentDefinition ends\n // up having no fields other than __typename, we remove the whole\n // fragment definition, and later prune ...spread references to it.\n getInUseByFragmentName(node.name.value).removed = true;\n firstVisitMadeChanges = true;\n return null;\n }\n },\n },\n\n Directive: {\n leave(node) {\n // If a matching directive is found, remove the directive itself. Note\n // that this does not remove the target (field, argument, etc) of the\n // directive, but only the directive itself.\n if (directiveMatcher(node)) {\n firstVisitMadeChanges = true;\n return null;\n }\n },\n },\n });\n\n if (!firstVisitMadeChanges) {\n // If our first pass did not change anything about the document, then there\n // is no cleanup we need to do, and we can return the original doc.\n return doc;\n }\n\n // Utility for making sure inUse.transitiveVars is recursively populated.\n // Because this logic assumes inUse.fragmentSpreads has been completely\n // populated and inUse.removed has been set if appropriate,\n // populateTransitiveVars must be called after that information has been\n // collected by the first traversal of the document.\n const populateTransitiveVars = (inUse: InternalInUseInfo) => {\n if (!inUse.transitiveVars) {\n inUse.transitiveVars = new Set(inUse.variables);\n if (!inUse.removed) {\n inUse.fragmentSpreads.forEach((childFragmentName) => {\n populateTransitiveVars(\n getInUseByFragmentName(childFragmentName)\n ).transitiveVars!.forEach((varName) => {\n inUse.transitiveVars!.add(varName);\n });\n });\n }\n }\n return inUse;\n };\n\n // Since we've been keeping track of fragment spreads used by particular\n // operations and fragment definitions, we now need to compute the set of all\n // spreads used (transitively) by any operations in the document.\n const allFragmentNamesUsed = new Set();\n docWithoutDirectiveSubtrees.definitions.forEach((def) => {\n if (def.kind === Kind.OPERATION_DEFINITION) {\n populateTransitiveVars(\n getInUseByOperationName(def.name && def.name.value)\n ).fragmentSpreads.forEach((childFragmentName) => {\n allFragmentNamesUsed.add(childFragmentName);\n });\n } else if (\n def.kind === Kind.FRAGMENT_DEFINITION &&\n // If there are no operations in the document, then all fragment\n // definitions count as usages of their own fragment names. This heuristic\n // prevents accidentally removing all fragment definitions from the\n // document just because it contains no operations that use the fragments.\n operationCount === 0 &&\n !getInUseByFragmentName(def.name.value).removed\n ) {\n allFragmentNamesUsed.add(def.name.value);\n }\n });\n // Now that we have added all fragment spreads used by operations to the\n // allFragmentNamesUsed set, we can complete the set by transitively adding\n // all fragment spreads used by those fragments, and so on.\n allFragmentNamesUsed.forEach((fragmentName) => {\n // Once all the childFragmentName strings added here have been seen already,\n // the top-level allFragmentNamesUsed.forEach loop will terminate.\n populateTransitiveVars(\n getInUseByFragmentName(fragmentName)\n ).fragmentSpreads.forEach((childFragmentName) => {\n allFragmentNamesUsed.add(childFragmentName);\n });\n });\n\n const fragmentWillBeRemoved = (fragmentName: string) =>\n !!(\n // A fragment definition will be removed if there are no spreads that refer\n // to it, or the fragment was explicitly removed because it had no fields\n // other than __typename.\n (\n !allFragmentNamesUsed.has(fragmentName) ||\n getInUseByFragmentName(fragmentName).removed\n )\n );\n\n const enterVisitor: EnterLeaveVisitor<\n FragmentSpreadNode | FragmentDefinitionNode\n > = {\n enter(node) {\n if (fragmentWillBeRemoved(node.name.value)) {\n return null;\n }\n },\n };\n\n return nullIfDocIsEmpty(\n visit(docWithoutDirectiveSubtrees, {\n // If the fragment is going to be removed, then leaving any dangling\n // FragmentSpread nodes with the same name would be a mistake.\n FragmentSpread: enterVisitor,\n\n // This is where the fragment definition is actually removed.\n FragmentDefinition: enterVisitor,\n\n OperationDefinition: {\n leave(node) {\n // Upon leaving each operation in the depth-first AST traversal, prune\n // any variables that are declared by the operation but unused within.\n if (node.variableDefinitions) {\n const usedVariableNames = populateTransitiveVars(\n // If an operation is anonymous, we use the empty string as its key.\n getInUseByOperationName(node.name && node.name.value)\n ).transitiveVars!;\n\n // According to the GraphQL spec, all variables declared by an\n // operation must either be used by that operation or used by some\n // fragment included transitively into that operation:\n // https://spec.graphql.org/draft/#sec-All-Variables-Used\n //\n // To stay on the right side of this validation rule, if/when we\n // remove the last $var references from an operation or its fragments,\n // we must also remove the corresponding $var declaration from the\n // enclosing operation. This pruning applies only to operations and\n // not fragment definitions, at the moment. Fragments may be able to\n // declare variables eventually, but today they can only consume them.\n if (usedVariableNames.size < node.variableDefinitions.length) {\n return {\n ...node,\n variableDefinitions: node.variableDefinitions.filter((varDef) =>\n usedVariableNames.has(varDef.variable.name.value)\n ),\n };\n }\n }\n },\n },\n })\n );\n}\n\nexport const addTypenameToDocument = Object.assign(\n function (doc: TNode): TNode {\n return visit(doc, {\n SelectionSet: {\n enter(node, _key, parent) {\n // Don't add __typename to OperationDefinitions.\n if (\n parent &&\n (parent as OperationDefinitionNode).kind ===\n Kind.OPERATION_DEFINITION\n ) {\n return;\n }\n\n // No changes if no selections.\n const { selections } = node;\n if (!selections) {\n return;\n }\n\n // If selections already have a __typename, or are part of an\n // introspection query, do nothing.\n const skip = selections.some((selection) => {\n return (\n isField(selection) &&\n (selection.name.value === \"__typename\" ||\n selection.name.value.lastIndexOf(\"__\", 0) === 0)\n );\n });\n if (skip) {\n return;\n }\n\n // If this SelectionSet is @export-ed as an input variable, it should\n // not have a __typename field (see issue #4691).\n const field = parent as FieldNode;\n if (\n isField(field) &&\n field.directives &&\n field.directives.some((d) => d.name.value === \"export\")\n ) {\n return;\n }\n\n // Create and return a new SelectionSet with a __typename Field.\n return {\n ...node,\n selections: [...selections, TYPENAME_FIELD],\n };\n },\n },\n });\n },\n {\n added(field: FieldNode): boolean {\n return field === TYPENAME_FIELD;\n },\n }\n);\n\nconst connectionRemoveConfig = {\n test: (directive: DirectiveNode) => {\n const willRemove = directive.name.value === \"connection\";\n if (willRemove) {\n if (\n !directive.arguments ||\n !directive.arguments.some((arg) => arg.name.value === \"key\")\n ) {\n invariant.warn(\n \"Removing an @connection directive even though it does not have a key. \" +\n \"You may want to use the key parameter to specify a store key.\"\n );\n }\n }\n\n return willRemove;\n },\n};\n\nexport function removeConnectionDirectiveFromDocument(doc: DocumentNode) {\n return removeDirectivesFromDocument(\n [connectionRemoveConfig],\n checkDocument(doc)\n );\n}\n\nfunction hasDirectivesInSelectionSet(\n directives: GetDirectiveConfig[],\n selectionSet: SelectionSetNode | undefined,\n nestedCheck = true\n): boolean {\n return (\n !!selectionSet &&\n selectionSet.selections &&\n selectionSet.selections.some((selection) =>\n hasDirectivesInSelection(directives, selection, nestedCheck)\n )\n );\n}\n\nfunction hasDirectivesInSelection(\n directives: GetDirectiveConfig[],\n selection: SelectionNode,\n nestedCheck = true\n): boolean {\n if (!isField(selection)) {\n return true;\n }\n\n if (!selection.directives) {\n return false;\n }\n\n return (\n selection.directives.some(getDirectiveMatcher(directives)) ||\n (nestedCheck &&\n hasDirectivesInSelectionSet(\n directives,\n selection.selectionSet,\n nestedCheck\n ))\n );\n}\n\nfunction getArgumentMatcher(config: RemoveArgumentsConfig[]) {\n return function argumentMatcher(argument: ArgumentNode) {\n return config.some(\n (aConfig: RemoveArgumentsConfig) =>\n argument.value &&\n argument.value.kind === Kind.VARIABLE &&\n argument.value.name &&\n (aConfig.name === argument.value.name.value ||\n (aConfig.test && aConfig.test(argument)))\n );\n };\n}\n\nexport function removeArgumentsFromDocument(\n config: RemoveArgumentsConfig[],\n doc: DocumentNode\n): DocumentNode | null {\n const argMatcher = getArgumentMatcher(config);\n\n return nullIfDocIsEmpty(\n visit(doc, {\n OperationDefinition: {\n enter(node) {\n return {\n ...node,\n // Remove matching top level variables definitions.\n variableDefinitions:\n node.variableDefinitions ?\n node.variableDefinitions.filter(\n (varDef) =>\n !config.some(\n (arg) => arg.name === varDef.variable.name.value\n )\n )\n : [],\n };\n },\n },\n\n Field: {\n enter(node) {\n // If `remove` is set to true for an argument, and an argument match\n // is found for a field, remove the field as well.\n const shouldRemoveField = config.some(\n (argConfig) => argConfig.remove\n );\n\n if (shouldRemoveField) {\n let argMatchCount = 0;\n if (node.arguments) {\n node.arguments.forEach((arg) => {\n if (argMatcher(arg)) {\n argMatchCount += 1;\n }\n });\n }\n\n if (argMatchCount === 1) {\n return null;\n }\n }\n },\n },\n\n Argument: {\n enter(node) {\n // Remove all matching arguments.\n if (argMatcher(node)) {\n return null;\n }\n },\n },\n })\n );\n}\n\nexport function removeFragmentSpreadFromDocument(\n config: RemoveFragmentSpreadConfig[],\n doc: DocumentNode\n): DocumentNode | null {\n function enter(\n node: FragmentSpreadNode | FragmentDefinitionNode\n ): null | void {\n if (config.some((def) => def.name === node.name.value)) {\n return null;\n }\n }\n\n return nullIfDocIsEmpty(\n visit(doc, {\n FragmentSpread: { enter },\n FragmentDefinition: { enter },\n })\n );\n}\n\n// If the incoming document is a query, return it as is. Otherwise, build a\n// new document containing a query operation based on the selection set\n// of the previous main operation.\nexport function buildQueryFromSelectionSet(\n document: DocumentNode\n): DocumentNode {\n const definition = getMainDefinition(document);\n const definitionOperation = (definition).operation;\n\n if (definitionOperation === \"query\") {\n // Already a query, so return the existing document.\n return document;\n }\n\n // Build a new query using the selection set of the main operation.\n const modifiedDoc = visit(document, {\n OperationDefinition: {\n enter(node) {\n return {\n ...node,\n operation: \"query\",\n };\n },\n },\n });\n return modifiedDoc;\n}\n\n// Remove fields / selection sets that include an @client directive.\nexport function removeClientSetsFromDocument(\n document: DocumentNode\n): DocumentNode | null {\n checkDocument(document);\n\n let modifiedDoc = removeDirectivesFromDocument(\n [\n {\n test: (directive: DirectiveNode) => directive.name.value === \"client\",\n remove: true,\n },\n ],\n document\n );\n\n return modifiedDoc;\n}\n\nexport function addNonReactiveToNamedFragments(document: DocumentNode) {\n checkDocument(document);\n\n return visit(document, {\n FragmentSpread: (node) => {\n // Do not add `@nonreactive` if the fragment is marked with `@unmask`\n // since we want to react to changes in this fragment.\n if (\n node.directives?.some((directive) => directive.name.value === \"unmask\")\n ) {\n return;\n }\n\n return {\n ...node,\n directives: [\n ...(node.directives || []),\n {\n kind: Kind.DIRECTIVE,\n name: { kind: Kind.NAME, value: \"nonreactive\" },\n } satisfies DirectiveNode,\n ],\n };\n },\n });\n}\n","import { invariant } from \"../../utilities/globals/index.js\";\n\nimport type { DefinitionNode } from \"graphql\";\n\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable, hasDirectives } from \"../../utilities/index.js\";\nimport { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nimport { selectURI } from \"./selectURI.js\";\nimport {\n handleError,\n readMultipartBody,\n parseAndCheckHttpResponse,\n} from \"./parseAndCheckHttpResponse.js\";\nimport { checkFetcher } from \"./checkFetcher.js\";\nimport type { HttpOptions } from \"./selectHttpOptionsAndBody.js\";\nimport {\n selectHttpOptionsAndBodyInternal,\n defaultPrinter,\n fallbackHttpConfig,\n} from \"./selectHttpOptionsAndBody.js\";\nimport { rewriteURIForGET } from \"./rewriteURIForGET.js\";\nimport { fromError, filterOperationVariables } from \"../utils/index.js\";\nimport {\n maybe,\n getMainDefinition,\n removeClientSetsFromDocument,\n} from \"../../utilities/index.js\";\n\nconst backupFetch = maybe(() => fetch);\n\nexport const createHttpLink = (linkOptions: HttpOptions = {}) => {\n let {\n uri = \"/graphql\",\n // use default global fetch if nothing passed in\n fetch: preferredFetch,\n print = defaultPrinter,\n includeExtensions,\n preserveHeaderCase,\n useGETForQueries,\n includeUnusedVariables = false,\n ...requestOptions\n } = linkOptions;\n\n if (__DEV__) {\n // Make sure at least one of preferredFetch, window.fetch, or backupFetch is\n // defined, so requests won't fail at runtime.\n checkFetcher(preferredFetch || backupFetch);\n }\n\n const linkConfig = {\n http: { includeExtensions, preserveHeaderCase },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n\n return new ApolloLink((operation) => {\n let chosenURI = selectURI(operation, uri);\n\n const context = operation.getContext();\n\n // `apollographql-client-*` headers are automatically set if a\n // `clientAwareness` object is found in the context. These headers are\n // set first, followed by the rest of the headers pulled from\n // `context.headers`. If desired, `apollographql-client-*` headers set by\n // the `clientAwareness` object can be overridden by\n // `apollographql-client-*` headers set in `context.headers`.\n const clientAwarenessHeaders: {\n \"apollographql-client-name\"?: string;\n \"apollographql-client-version\"?: string;\n } = {};\n\n if (context.clientAwareness) {\n const { name, version } = context.clientAwareness;\n if (name) {\n clientAwarenessHeaders[\"apollographql-client-name\"] = name;\n }\n if (version) {\n clientAwarenessHeaders[\"apollographql-client-version\"] = version;\n }\n }\n\n const contextHeaders = { ...clientAwarenessHeaders, ...context.headers };\n\n const contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders,\n };\n\n if (hasDirectives([\"client\"], operation.query)) {\n const transformedQuery = removeClientSetsFromDocument(operation.query);\n\n if (!transformedQuery) {\n return fromError(\n new Error(\n \"HttpLink: Trying to send a client-only query to the server. To send to the server, ensure a non-client field is added to the query or set the `transformOptions.removeClientFields` option to `true`.\"\n )\n );\n }\n\n operation.query = transformedQuery;\n }\n\n //uses fallback, link, and then context to build options\n const { options, body } = selectHttpOptionsAndBodyInternal(\n operation,\n print,\n fallbackHttpConfig,\n linkConfig,\n contextConfig\n );\n\n if (body.variables && !includeUnusedVariables) {\n body.variables = filterOperationVariables(\n body.variables,\n operation.query\n );\n }\n\n let controller: AbortController | undefined;\n if (!options.signal && typeof AbortController !== \"undefined\") {\n controller = new AbortController();\n options.signal = controller.signal;\n }\n\n // If requested, set method to GET if there are no mutations.\n const definitionIsMutation = (d: DefinitionNode) => {\n return d.kind === \"OperationDefinition\" && d.operation === \"mutation\";\n };\n const definitionIsSubscription = (d: DefinitionNode) => {\n return d.kind === \"OperationDefinition\" && d.operation === \"subscription\";\n };\n const isSubscription = definitionIsSubscription(\n getMainDefinition(operation.query)\n );\n // does not match custom directives beginning with @defer\n const hasDefer = hasDirectives([\"defer\"], operation.query);\n if (\n useGETForQueries &&\n !operation.query.definitions.some(definitionIsMutation)\n ) {\n options.method = \"GET\";\n }\n\n if (hasDefer || isSubscription) {\n options.headers = options.headers || {};\n let acceptHeader = \"multipart/mixed;\";\n // Omit defer-specific headers if the user attempts to defer a selection\n // set on a subscription and log a warning.\n if (isSubscription && hasDefer) {\n invariant.warn(\"Multipart-subscriptions do not support @defer\");\n }\n\n if (isSubscription) {\n acceptHeader +=\n \"boundary=graphql;subscriptionSpec=1.0,application/json\";\n } else if (hasDefer) {\n acceptHeader += \"deferSpec=20220824,application/json\";\n }\n options.headers.accept = acceptHeader;\n }\n\n if (options.method === \"GET\") {\n const { newURI, parseError } = rewriteURIForGET(chosenURI, body);\n if (parseError) {\n return fromError(parseError);\n }\n chosenURI = newURI;\n } else {\n try {\n (options as any).body = serializeFetchParameter(body, \"Payload\");\n } catch (parseError) {\n return fromError(parseError);\n }\n }\n\n return new Observable((observer) => {\n // Prefer linkOptions.fetch (preferredFetch) if provided, and otherwise\n // fall back to the *current* global window.fetch function (see issue\n // #7832), or (if all else fails) the backupFetch function we saved when\n // this module was first evaluated. This last option protects against the\n // removal of window.fetch, which is unlikely but not impossible.\n const currentFetch = preferredFetch || maybe(() => fetch) || backupFetch;\n\n const observerNext = observer.next.bind(observer);\n currentFetch!(chosenURI, options)\n .then((response) => {\n operation.setContext({ response });\n const ctype = response.headers?.get(\"content-type\");\n\n if (ctype !== null && /^multipart\\/mixed/i.test(ctype)) {\n return readMultipartBody(response, observerNext);\n } else {\n return parseAndCheckHttpResponse(operation)(response).then(\n observerNext\n );\n }\n })\n .then(() => {\n controller = undefined;\n observer.complete();\n })\n .catch((err) => {\n controller = undefined;\n handleError(err, observer);\n });\n\n return () => {\n // XXX support canceling this request\n // https://developers.google.com/web/updates/2017/09/abortable-fetch\n if (controller) controller.abort();\n };\n });\n });\n};\n","import { newInvariantError } from \"../../utilities/globals/index.js\";\n\nexport const checkFetcher = (fetcher: typeof fetch | undefined) => {\n if (!fetcher && typeof fetch === \"undefined\") {\n throw newInvariantError(`\n\"fetch\" has not been found globally and no fetcher has been \\\nconfigured. To fix this, install a fetch package (like \\\nhttps://www.npmjs.com/package/cross-fetch), instantiate the \\\nfetcher, and pass it into your HttpLink constructor. For example:\n\nimport fetch from 'cross-fetch';\nimport { ApolloClient, HttpLink } from '@apollo/client';\nconst client = new ApolloClient({\n link: new HttpLink({ uri: '/graphql', fetch })\n});\n `);\n }\n};\n","import type { Operation } from \"../core/index.js\";\n\nexport const selectURI = (\n operation: Operation,\n fallbackURI?: string | ((operation: Operation) => string)\n) => {\n const context = operation.getContext();\n const contextURI = context.uri;\n\n if (contextURI) {\n return contextURI;\n } else if (typeof fallbackURI === \"function\") {\n return fallbackURI(operation);\n } else {\n return (fallbackURI as string) || \"/graphql\";\n }\n};\n","import type { VariableDefinitionNode, DocumentNode } from \"graphql\";\nimport { visit } from \"graphql\";\n\nexport function filterOperationVariables(\n variables: Record,\n query: DocumentNode\n) {\n const result = { ...variables };\n const unusedNames = new Set(Object.keys(variables));\n visit(query, {\n Variable(node, _key, parent) {\n // A variable type definition at the top level of a query is not\n // enough to silence server-side errors about the variable being\n // unused, so variable definitions do not count as usage.\n // https://spec.graphql.org/draft/#sec-All-Variables-Used\n if (\n parent &&\n (parent as VariableDefinitionNode).kind !== \"VariableDefinition\"\n ) {\n unusedNames.delete(node.name.value);\n }\n },\n });\n unusedNames.forEach((name) => {\n delete result![name];\n });\n return result;\n}\n","import { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nimport type { Body } from \"./selectHttpOptionsAndBody.js\";\n\n// For GET operations, returns the given URI rewritten with parameters, or a\n// parse error.\nexport function rewriteURIForGET(chosenURI: string, body: Body) {\n // Implement the standard HTTP GET serialization, plus 'extensions'. Note\n // the extra level of JSON serialization!\n const queryParams: string[] = [];\n const addQueryParam = (key: string, value: string) => {\n queryParams.push(`${key}=${encodeURIComponent(value)}`);\n };\n\n if (\"query\" in body) {\n addQueryParam(\"query\", body.query!);\n }\n if (body.operationName) {\n addQueryParam(\"operationName\", body.operationName);\n }\n if (body.variables) {\n let serializedVariables;\n try {\n serializedVariables = serializeFetchParameter(\n body.variables,\n \"Variables map\"\n );\n } catch (parseError) {\n return { parseError };\n }\n addQueryParam(\"variables\", serializedVariables);\n }\n if (body.extensions) {\n let serializedExtensions;\n try {\n serializedExtensions = serializeFetchParameter(\n body.extensions,\n \"Extensions map\"\n );\n } catch (parseError) {\n return { parseError };\n }\n addQueryParam(\"extensions\", serializedExtensions);\n }\n\n // Reconstruct the URI with added query params.\n // XXX This assumes that the URI is well-formed and that it doesn't\n // already contain any of these query params. We could instead use the\n // URL API and take a polyfill (whatwg-url@6) for older browsers that\n // don't support URLSearchParams. Note that some browsers (and\n // versions of whatwg-url) support URL but not URLSearchParams!\n let fragment = \"\",\n preFragment = chosenURI;\n const fragmentStart = chosenURI.indexOf(\"#\");\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n const queryParamsPrefix = preFragment.indexOf(\"?\") === -1 ? \"?\" : \"&\";\n const newURI =\n preFragment + queryParamsPrefix + queryParams.join(\"&\") + fragment;\n return { newURI };\n}\n","import { ApolloLink } from \"../core/index.js\";\nimport type { HttpOptions } from \"./selectHttpOptionsAndBody.js\";\nimport { createHttpLink } from \"./createHttpLink.js\";\n\nexport class HttpLink extends ApolloLink {\n constructor(public options: HttpOptions = {}) {\n super(createHttpLink(options).request);\n }\n}\n","// A [trie](https://en.wikipedia.org/wiki/Trie) data structure that holds\n// object keys weakly, yet can also hold non-object keys, unlike the\n// native `WeakMap`.\n\n// If no makeData function is supplied, the looked-up data will be an empty,\n// null-prototype Object.\nconst defaultMakeData = () => Object.create(null);\n\n// Useful for processing arguments objects as well as arrays.\nconst { forEach, slice } = Array.prototype;\nconst { hasOwnProperty } = Object.prototype;\n\nexport class Trie {\n // Since a `WeakMap` cannot hold primitive values as keys, we need a\n // backup `Map` instance to hold primitive keys. Both `this._weakMap`\n // and `this._strongMap` are lazily initialized.\n private weak?: WeakMap>;\n private strong?: Map>;\n private data?: Data;\n\n constructor(\n private weakness = true,\n private makeData: (array: any[]) => Data = defaultMakeData,\n ) {}\n\n public lookup(...array: T): Data;\n public lookup(): Data {\n return this.lookupArray(arguments);\n }\n\n public lookupArray(array: T): Data {\n let node: Trie = this;\n forEach.call(array, key => node = node.getChildTrie(key));\n return hasOwnProperty.call(node, \"data\")\n ? node.data as Data\n : node.data = this.makeData(slice.call(array));\n }\n\n public peek(...array: T): Data | undefined;\n public peek(): Data | undefined {\n return this.peekArray(arguments);\n }\n\n public peekArray(array: T): Data | undefined {\n let node: Trie | undefined = this;\n\n for (let i = 0, len = array.length; node && i < len; ++i) {\n const map = node.mapFor(array[i], false);\n node = map && map.get(array[i]);\n }\n\n return node && node.data;\n }\n\n public remove(...array: any[]): Data | undefined;\n public remove(): Data | undefined {\n return this.removeArray(arguments);\n }\n\n public removeArray(array: T): Data | undefined {\n let data: Data | undefined;\n\n if (array.length) {\n const head = array[0];\n const map = this.mapFor(head, false);\n const child = map && map.get(head);\n if (child) {\n data = child.removeArray(slice.call(array, 1));\n if (!child.data && !child.weak && !(child.strong && child.strong.size)) {\n map.delete(head);\n }\n }\n } else {\n data = this.data;\n delete this.data;\n }\n\n return data;\n }\n\n private getChildTrie(key: any) {\n const map = this.mapFor(key, true)!;\n let child = map.get(key);\n if (!child) map.set(key, child = new Trie(this.weakness, this.makeData));\n return child;\n }\n\n private mapFor(key: any, create: boolean): Trie[\"weak\" | \"strong\"] | undefined {\n return this.weakness && isObjRef(key)\n ? this.weak || (create ? this.weak = new WeakMap : void 0)\n : this.strong || (create ? this.strong = new Map : void 0);\n }\n}\n\nfunction isObjRef(value: any) {\n switch (typeof value) {\n case \"object\":\n if (value === null) break;\n // Fall through to return true...\n case \"function\":\n return true;\n }\n return false;\n}\n","// A [trie](https://en.wikipedia.org/wiki/Trie) data structure that holds\n// object keys weakly, yet can also hold non-object keys, unlike the\n// native `WeakMap`.\n\n// If no makeData function is supplied, the looked-up data will be an empty,\n// null-prototype Object.\nconst defaultMakeData = () => Object.create(null);\n\n// Useful for processing arguments objects as well as arrays.\nconst { forEach, slice } = Array.prototype;\nconst { hasOwnProperty } = Object.prototype;\n\nexport class Trie {\n // Since a `WeakMap` cannot hold primitive values as keys, we need a\n // backup `Map` instance to hold primitive keys. Both `this._weakMap`\n // and `this._strongMap` are lazily initialized.\n private weak?: WeakMap>;\n private strong?: Map>;\n private data?: Data;\n\n constructor(\n private weakness = true,\n private makeData: (array: any[]) => Data = defaultMakeData,\n ) {}\n\n public lookup(...array: T): Data {\n return this.lookupArray(array);\n }\n\n public lookupArray(array: T): Data {\n let node: Trie = this;\n forEach.call(array, key => node = node.getChildTrie(key));\n return hasOwnProperty.call(node, \"data\")\n ? node.data as Data\n : node.data = this.makeData(slice.call(array));\n }\n\n public peek(...array: T): Data | undefined {\n return this.peekArray(array);\n }\n\n public peekArray(array: T): Data | undefined {\n let node: Trie | undefined = this;\n\n for (let i = 0, len = array.length; node && i < len; ++i) {\n const map: Trie[\"weak\" | \"strong\"] =\n this.weakness && isObjRef(array[i]) ? node.weak : node.strong;\n\n node = map && map.get(array[i]);\n }\n\n return node && node.data;\n }\n\n private getChildTrie(key: any) {\n const map = this.weakness && isObjRef(key)\n ? this.weak || (this.weak = new WeakMap>())\n : this.strong || (this.strong = new Map>());\n let child = map.get(key);\n if (!child) map.set(key, child = new Trie(this.weakness, this.makeData));\n return child;\n }\n}\n\nfunction isObjRef(value: any) {\n switch (typeof value) {\n case \"object\":\n if (value === null) break;\n // Fall through to return true...\n case \"function\":\n return true;\n }\n return false;\n}\n","type Context = {\n parent: Context | null;\n slots: { [slotId: string]: any };\n}\n\n// This currentContext variable will only be used if the makeSlotClass\n// function is called, which happens only if this is the first copy of the\n// @wry/context package to be imported.\nlet currentContext: Context | null = null;\n\n// This unique internal object is used to denote the absence of a value\n// for a given Slot, and is never exposed to outside code.\nconst MISSING_VALUE: any = {};\n\nlet idCounter = 1;\n\n// Although we can't do anything about the cost of duplicated code from\n// accidentally bundling multiple copies of the @wry/context package, we can\n// avoid creating the Slot class more than once using makeSlotClass.\nconst makeSlotClass = () => class Slot {\n // If you have a Slot object, you can find out its slot.id, but you cannot\n // guess the slot.id of a Slot you don't have access to, thanks to the\n // randomized suffix.\n public readonly id = [\n \"slot\",\n idCounter++,\n Date.now(),\n Math.random().toString(36).slice(2),\n ].join(\":\");\n\n public hasValue() {\n for (let context = currentContext; context; context = context.parent) {\n // We use the Slot object iself as a key to its value, which means the\n // value cannot be obtained without a reference to the Slot object.\n if (this.id in context.slots) {\n const value = context.slots[this.id];\n if (value === MISSING_VALUE) break;\n if (context !== currentContext) {\n // Cache the value in currentContext.slots so the next lookup will\n // be faster. This caching is safe because the tree of contexts and\n // the values of the slots are logically immutable.\n currentContext!.slots[this.id] = value;\n }\n return true;\n }\n }\n if (currentContext) {\n // If a value was not found for this Slot, it's never going to be found\n // no matter how many times we look it up, so we might as well cache\n // the absence of the value, too.\n currentContext.slots[this.id] = MISSING_VALUE;\n }\n return false;\n }\n\n public getValue(): TValue | undefined {\n if (this.hasValue()) {\n return currentContext!.slots[this.id] as TValue;\n }\n }\n\n public withValue(\n value: TValue,\n callback: (this: TThis, ...args: TArgs) => TResult,\n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args?: TArgs,\n thisArg?: TThis,\n ): TResult {\n const slots = {\n __proto__: null,\n [this.id]: value,\n };\n const parent = currentContext;\n currentContext = { parent, slots };\n try {\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg!, args!);\n } finally {\n currentContext = parent;\n }\n }\n\n // Capture the current context and wrap a callback function so that it\n // reestablishes the captured context when called.\n static bind(\n callback: (this: TThis, ...args: TArgs) => TResult,\n ) {\n const context = currentContext;\n return function (this: TThis) {\n const saved = currentContext;\n try {\n currentContext = context;\n return callback.apply(this, arguments as any);\n } finally {\n currentContext = saved;\n }\n } as typeof callback;\n }\n\n // Immediately run a callback function without any captured context.\n static noContext(\n callback: (this: TThis, ...args: TArgs) => TResult,\n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args?: TArgs,\n thisArg?: TThis,\n ) {\n if (currentContext) {\n const saved = currentContext;\n try {\n currentContext = null;\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg!, args!);\n } finally {\n currentContext = saved;\n }\n } else {\n return callback.apply(thisArg!, args!);\n }\n }\n};\n\nfunction maybe(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (ignored) {}\n}\n\n// We store a single global implementation of the Slot class as a permanent\n// non-enumerable property of the globalThis object. This obfuscation does\n// nothing to prevent access to the Slot class, but at least it ensures the\n// implementation (i.e. currentContext) cannot be tampered with, and all copies\n// of the @wry/context package (hopefully just one) will share the same Slot\n// implementation. Since the first copy of the @wry/context package to be\n// imported wins, this technique imposes a steep cost for any future breaking\n// changes to the Slot class.\nconst globalKey = \"@wry/context:Slot\";\n\nconst host =\n // Prefer globalThis when available.\n // https://github.com/benjamn/wryware/issues/347\n maybe(() => globalThis) ||\n // Fall back to global, which works in Node.js and may be converted by some\n // bundlers to the appropriate identifier (window, self, ...) depending on the\n // bundling target. https://github.com/endojs/endo/issues/576#issuecomment-1178515224\n maybe(() => global) ||\n // Otherwise, use a dummy host that's local to this module. We used to fall\n // back to using the Array constructor as a namespace, but that was flagged in\n // https://github.com/benjamn/wryware/issues/347, and can be avoided.\n Object.create(null) as typeof Array;\n\n// Whichever globalHost we're using, make TypeScript happy about the additional\n// globalKey property.\nconst globalHost: typeof host & {\n [globalKey]?: typeof Slot;\n} = host;\n\nexport const Slot: ReturnType =\n globalHost[globalKey] ||\n // Earlier versions of this package stored the globalKey property on the Array\n // constructor, so we check there as well, to prevent Slot class duplication.\n (Array as typeof globalHost)[globalKey] ||\n (function (Slot) {\n try {\n Object.defineProperty(globalHost, globalKey, {\n value: Slot,\n enumerable: false,\n writable: false,\n // When it was possible for globalHost to be the Array constructor (a\n // legacy Slot dedup strategy), it was important for the property to be\n // configurable:true so it could be deleted. That does not seem to be as\n // important when globalHost is the global object, but I don't want to\n // cause similar problems again, and configurable:true seems safest.\n // https://github.com/endojs/endo/issues/576#issuecomment-1178274008\n configurable: true\n });\n } finally {\n return Slot;\n }\n })(makeSlotClass());\n","import { Slot } from \"./slot.js\";\nexport { Slot }\nexport const { bind, noContext } = Slot;\n\n// Relying on the @types/node declaration of global.setTimeout can make\n// things tricky for dowstream projects (see PR #7).\ndeclare function setTimeout(\n callback: (...args: any[]) => any,\n ms?: number,\n ...args: any[]\n): any;\n\n// Like global.setTimeout, except the callback runs with captured context.\nexport { setTimeoutWithContext as setTimeout };\nfunction setTimeoutWithContext(callback: () => any, delay: number) {\n return setTimeout(bind(callback), delay);\n}\n\n// Turn any generator function into an async function (using yield instead\n// of await), with context automatically preserved across yields.\nexport function asyncFromGen<\n TArgs extends any[],\n TYield = any,\n TReturn = any,\n TNext = any,\n>(\n genFn: (...args: TArgs) => Generator\n) {\n return function (this: any) {\n const gen = genFn.apply(this, arguments as any);\n\n type Method = (\n this: Generator,\n arg: any,\n ) => IteratorResult;\n\n const boundNext: Method = bind(gen.next);\n const boundThrow: Method = bind(gen.throw!);\n\n return new Promise((resolve, reject) => {\n function invoke(method: Method, argument: any) {\n try {\n var result: any = method.call(gen, argument);\n } catch (error) {\n return reject(error);\n }\n const next = result.done ? resolve : invokeNext;\n if (isPromiseLike(result.value)) {\n result.value.then(next, result.done ? reject : invokeThrow);\n } else {\n next(result.value);\n }\n }\n const invokeNext = (value?: any) => invoke(boundNext, value);\n const invokeThrow = (error: any) => invoke(boundThrow, error);\n invokeNext();\n });\n } as (...args: TArgs) => Promise;\n}\n\nfunction isPromiseLike(value: any): value is PromiseLike {\n return value && typeof value.then === \"function\";\n}\n\n// If you use the fibers npm package to implement coroutines in Node.js,\n// you should call this function at least once to ensure context management\n// remains coherent across any yields.\nconst wrappedFibers: Function[] = [];\nexport function wrapYieldingFiberMethods(Fiber: F): F {\n // There can be only one implementation of Fiber per process, so this array\n // should never grow longer than one element.\n if (wrappedFibers.indexOf(Fiber) < 0) {\n const wrap = (obj: any, method: string) => {\n const fn = obj[method];\n obj[method] = function () {\n return noContext(fn, arguments as any, this);\n };\n }\n // These methods can yield, according to\n // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\n wrap(Fiber, \"yield\");\n wrap(Fiber.prototype, \"run\");\n wrap(Fiber.prototype, \"throwInto\");\n wrappedFibers.push(Fiber);\n }\n return Fiber;\n}\n","import { Slot } from \"@wry/context\";\nimport { AnyEntry } from \"./entry.js\";\n\nexport const parentEntrySlot = new Slot();\n\nexport function nonReactive(fn: () => R): R {\n return parentEntrySlot.withValue(void 0, fn);\n}\n\nexport { Slot }\nexport {\n bind as bindContext,\n noContext,\n setTimeout,\n asyncFromGen,\n} from \"@wry/context\";\n","export type NoInfer = [T][T extends any ? 0 : never];\n\nexport const {\n hasOwnProperty,\n} = Object.prototype;\n\nexport const arrayFromSet: (set: Set) => T[] =\n Array.from ||\n function (set) {\n const array: any[] = [];\n set.forEach(item => array.push(item));\n return array;\n };\n\nexport type Unsubscribable = {\n unsubscribe?: void | (() => any);\n}\n\nexport function maybeUnsubscribe(entryOrDep: Unsubscribable) {\n const { unsubscribe } = entryOrDep;\n if (typeof unsubscribe === \"function\") {\n entryOrDep.unsubscribe = void 0;\n unsubscribe();\n }\n}\n","import { parentEntrySlot } from \"./context.js\";\nimport { OptimisticWrapOptions } from \"./index.js\";\nimport { Dep } from \"./dep.js\";\nimport { maybeUnsubscribe, arrayFromSet, Unsubscribable } from \"./helpers.js\";\n\nconst emptySetPool: Set[] = [];\nconst POOL_TARGET_SIZE = 100;\n\n// Since this package might be used browsers, we should avoid using the\n// Node built-in assert module.\nfunction assert(condition: any, optionalMessage?: string) {\n if (! condition) {\n throw new Error(optionalMessage || \"assertion failure\");\n }\n}\n\n// Since exceptions are cached just like normal values, we need an efficient\n// way of representing unknown, ordinary, and exceptional values.\ntype Value =\n | [] // unknown\n | [T] // known value\n | [void, any]; // known exception\n\nfunction valueIs(a: Value, b: Value) {\n const len = a.length;\n return (\n // Unknown values are not equal to each other.\n len > 0 &&\n // Both values must be ordinary (or both exceptional) to be equal.\n len === b.length &&\n // The underlying value or exception must be the same.\n a[len - 1] === b[len - 1]\n );\n}\n\nfunction valueGet(value: Value): T {\n switch (value.length) {\n case 0: throw new Error(\"unknown value\");\n case 1: return value[0];\n case 2: throw value[1];\n }\n}\n\nfunction valueCopy(value: Value): Value {\n return value.slice(0) as Value;\n}\n\nexport type AnyEntry = Entry;\n\nexport class Entry {\n public static count = 0;\n\n public normalizeResult: OptimisticWrapOptions[\"normalizeResult\"];\n public subscribe: OptimisticWrapOptions[\"subscribe\"];\n public unsubscribe: Unsubscribable[\"unsubscribe\"];\n\n public readonly parents = new Set();\n public readonly childValues = new Map>();\n\n // When this Entry has children that are dirty, this property becomes\n // a Set containing other Entry objects, borrowed from emptySetPool.\n // When the set becomes empty, it gets recycled back to emptySetPool.\n public dirtyChildren: Set | null = null;\n\n public dirty = true;\n public recomputing = false;\n public readonly value: Value = [];\n\n constructor(\n public readonly fn: (...args: TArgs) => TValue,\n ) {\n ++Entry.count;\n }\n\n public peek(): TValue | undefined {\n if (this.value.length === 1 && !mightBeDirty(this)) {\n rememberParent(this);\n return this.value[0];\n }\n }\n\n // This is the most important method of the Entry API, because it\n // determines whether the cached this.value can be returned immediately,\n // or must be recomputed. The overall performance of the caching system\n // depends on the truth of the following observations: (1) this.dirty is\n // usually false, (2) this.dirtyChildren is usually null/empty, and thus\n // (3) valueGet(this.value) is usually returned without recomputation.\n public recompute(args: TArgs): TValue {\n assert(! this.recomputing, \"already recomputing\");\n rememberParent(this);\n return mightBeDirty(this)\n ? reallyRecompute(this, args)\n : valueGet(this.value);\n }\n\n public setDirty() {\n if (this.dirty) return;\n this.dirty = true;\n reportDirty(this);\n // We can go ahead and unsubscribe here, since any further dirty\n // notifications we receive will be redundant, and unsubscribing may\n // free up some resources, e.g. file watchers.\n maybeUnsubscribe(this);\n }\n\n public dispose() {\n this.setDirty();\n\n // Sever any dependency relationships with our own children, so those\n // children don't retain this parent Entry in their child.parents sets,\n // thereby preventing it from being fully garbage collected.\n forgetChildren(this);\n\n // Because this entry has been kicked out of the cache (in index.js),\n // we've lost the ability to find out if/when this entry becomes dirty,\n // whether that happens through a subscription, because of a direct call\n // to entry.setDirty(), or because one of its children becomes dirty.\n // Because of this loss of future information, we have to assume the\n // worst (that this entry might have become dirty very soon), so we must\n // immediately mark this entry's parents as dirty. Normally we could\n // just call entry.setDirty() rather than calling parent.setDirty() for\n // each parent, but that would leave this entry in parent.childValues\n // and parent.dirtyChildren, which would prevent the child from being\n // truly forgotten.\n eachParent(this, (parent, child) => {\n parent.setDirty();\n forgetChild(parent, this);\n });\n }\n\n public forget() {\n // The code that creates Entry objects in index.ts will replace this method\n // with one that actually removes the Entry from the cache, which will also\n // trigger the entry.dispose method.\n this.dispose();\n }\n\n private deps: Set> | null = null;\n\n public dependOn(dep: Dep) {\n dep.add(this);\n if (! this.deps) {\n this.deps = emptySetPool.pop() || new Set>();\n }\n this.deps.add(dep);\n }\n\n public forgetDeps() {\n if (this.deps) {\n arrayFromSet(this.deps).forEach(dep => dep.delete(this));\n this.deps.clear();\n emptySetPool.push(this.deps);\n this.deps = null;\n }\n }\n}\n\nfunction rememberParent(child: AnyEntry) {\n const parent = parentEntrySlot.getValue();\n if (parent) {\n child.parents.add(parent);\n\n if (! parent.childValues.has(child)) {\n parent.childValues.set(child, []);\n }\n\n if (mightBeDirty(child)) {\n reportDirtyChild(parent, child);\n } else {\n reportCleanChild(parent, child);\n }\n\n return parent;\n }\n}\n\nfunction reallyRecompute(entry: AnyEntry, args: any[]) {\n forgetChildren(entry);\n\n // Set entry as the parent entry while calling recomputeNewValue(entry).\n parentEntrySlot.withValue(entry, recomputeNewValue, [entry, args]);\n\n if (maybeSubscribe(entry, args)) {\n // If we successfully recomputed entry.value and did not fail to\n // (re)subscribe, then this Entry is no longer explicitly dirty.\n setClean(entry);\n }\n\n return valueGet(entry.value);\n}\n\nfunction recomputeNewValue(entry: AnyEntry, args: any[]) {\n entry.recomputing = true;\n\n const { normalizeResult } = entry;\n let oldValueCopy: Value | undefined;\n if (normalizeResult && entry.value.length === 1) {\n oldValueCopy = valueCopy(entry.value);\n }\n\n // Make entry.value an empty array, representing an unknown value.\n entry.value.length = 0;\n\n try {\n // If entry.fn succeeds, entry.value will become a normal Value.\n entry.value[0] = entry.fn.apply(null, args);\n\n // If we have a viable oldValueCopy to compare with the (successfully\n // recomputed) new entry.value, and they are not already === identical, give\n // normalizeResult a chance to pick/choose/reuse parts of oldValueCopy[0]\n // and/or entry.value[0] to determine the final cached entry.value.\n if (normalizeResult && oldValueCopy && !valueIs(oldValueCopy, entry.value)) {\n try {\n entry.value[0] = normalizeResult(entry.value[0], oldValueCopy[0]);\n } catch {\n // If normalizeResult throws, just use the newer value, rather than\n // saving the exception as entry.value[1].\n }\n }\n\n } catch (e) {\n // If entry.fn throws, entry.value will hold that exception.\n entry.value[1] = e;\n }\n\n // Either way, this line is always reached.\n entry.recomputing = false;\n}\n\nfunction mightBeDirty(entry: AnyEntry) {\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\n}\n\nfunction setClean(entry: AnyEntry) {\n entry.dirty = false;\n\n if (mightBeDirty(entry)) {\n // This Entry may still have dirty children, in which case we can't\n // let our parents know we're clean just yet.\n return;\n }\n\n reportClean(entry);\n}\n\nfunction reportDirty(child: AnyEntry) {\n eachParent(child, reportDirtyChild);\n}\n\nfunction reportClean(child: AnyEntry) {\n eachParent(child, reportCleanChild);\n}\n\nfunction eachParent(\n child: AnyEntry,\n callback: (parent: AnyEntry, child: AnyEntry) => any,\n) {\n const parentCount = child.parents.size;\n if (parentCount) {\n const parents = arrayFromSet(child.parents);\n for (let i = 0; i < parentCount; ++i) {\n callback(parents[i], child);\n }\n }\n}\n\n// Let a parent Entry know that one of its children may be dirty.\nfunction reportDirtyChild(parent: AnyEntry, child: AnyEntry) {\n // Must have called rememberParent(child) before calling\n // reportDirtyChild(parent, child).\n assert(parent.childValues.has(child));\n assert(mightBeDirty(child));\n const parentWasClean = !mightBeDirty(parent);\n\n if (! parent.dirtyChildren) {\n parent.dirtyChildren = emptySetPool.pop() || new Set;\n\n } else if (parent.dirtyChildren.has(child)) {\n // If we already know this child is dirty, then we must have already\n // informed our own parents that we are dirty, so we can terminate\n // the recursion early.\n return;\n }\n\n parent.dirtyChildren.add(child);\n\n // If parent was clean before, it just became (possibly) dirty (according to\n // mightBeDirty), since we just added child to parent.dirtyChildren.\n if (parentWasClean) {\n reportDirty(parent);\n }\n}\n\n// Let a parent Entry know that one of its children is no longer dirty.\nfunction reportCleanChild(parent: AnyEntry, child: AnyEntry) {\n // Must have called rememberChild(child) before calling\n // reportCleanChild(parent, child).\n assert(parent.childValues.has(child));\n assert(! mightBeDirty(child));\n\n const childValue = parent.childValues.get(child)!;\n if (childValue.length === 0) {\n parent.childValues.set(child, valueCopy(child.value));\n } else if (! valueIs(childValue, child.value)) {\n parent.setDirty();\n }\n\n removeDirtyChild(parent, child);\n\n if (mightBeDirty(parent)) {\n return;\n }\n\n reportClean(parent);\n}\n\nfunction removeDirtyChild(parent: AnyEntry, child: AnyEntry) {\n const dc = parent.dirtyChildren;\n if (dc) {\n dc.delete(child);\n if (dc.size === 0) {\n if (emptySetPool.length < POOL_TARGET_SIZE) {\n emptySetPool.push(dc);\n }\n parent.dirtyChildren = null;\n }\n }\n}\n\n// Removes all children from this entry and returns an array of the\n// removed children.\nfunction forgetChildren(parent: AnyEntry) {\n if (parent.childValues.size > 0) {\n parent.childValues.forEach((_value, child) => {\n forgetChild(parent, child);\n });\n }\n\n // Remove this parent Entry from any sets to which it was added by the\n // addToSet method.\n parent.forgetDeps();\n\n // After we forget all our children, this.dirtyChildren must be empty\n // and therefore must have been reset to null.\n assert(parent.dirtyChildren === null);\n}\n\nfunction forgetChild(parent: AnyEntry, child: AnyEntry) {\n child.parents.delete(parent);\n parent.childValues.delete(child);\n removeDirtyChild(parent, child);\n}\n\nfunction maybeSubscribe(entry: AnyEntry, args: any[]) {\n if (typeof entry.subscribe === \"function\") {\n try {\n maybeUnsubscribe(entry); // Prevent double subscriptions.\n entry.unsubscribe = entry.subscribe.apply(null, args);\n } catch (e) {\n // If this Entry has a subscribe function and it threw an exception\n // (or an unsubscribe function it previously returned now throws),\n // return false to indicate that we were not able to subscribe (or\n // unsubscribe), and this Entry should remain dirty.\n entry.setDirty();\n return false;\n }\n }\n\n // Returning true indicates either that there was no entry.subscribe\n // function or that it succeeded.\n return true;\n}\n","import { AnyEntry } from \"./entry.js\";\nimport { OptimisticWrapOptions } from \"./index.js\";\nimport { parentEntrySlot } from \"./context.js\";\nimport {\n hasOwnProperty,\n Unsubscribable,\n maybeUnsubscribe,\n arrayFromSet,\n } from \"./helpers.js\";\n\ntype EntryMethodName = keyof typeof EntryMethods;\nconst EntryMethods = {\n setDirty: true, // Mark parent Entry as needing to be recomputed (default)\n dispose: true, // Detach parent Entry from parents and children, but leave in LRU cache\n forget: true, // Fully remove parent Entry from LRU cache and computation graph\n};\n\nexport type OptimisticDependencyFunction =\n ((key: TKey) => void) & {\n dirty: (key: TKey, entryMethodName?: EntryMethodName) => void;\n };\n\nexport type Dep = Set & {\n subscribe: OptimisticWrapOptions<[TKey]>[\"subscribe\"];\n} & Unsubscribable;\n\nexport function dep(options?: {\n subscribe: Dep[\"subscribe\"];\n}) {\n const depsByKey = new Map>();\n const subscribe = options && options.subscribe;\n\n function depend(key: TKey) {\n const parent = parentEntrySlot.getValue();\n if (parent) {\n let dep = depsByKey.get(key);\n if (!dep) {\n depsByKey.set(key, dep = new Set as Dep);\n }\n parent.dependOn(dep);\n if (typeof subscribe === \"function\") {\n maybeUnsubscribe(dep);\n dep.unsubscribe = subscribe(key);\n }\n }\n }\n\n depend.dirty = function dirty(\n key: TKey,\n entryMethodName?: EntryMethodName,\n ) {\n const dep = depsByKey.get(key);\n if (dep) {\n const m: EntryMethodName = (\n entryMethodName &&\n hasOwnProperty.call(EntryMethods, entryMethodName)\n ) ? entryMethodName : \"setDirty\";\n // We have to use arrayFromSet(dep).forEach instead of dep.forEach,\n // because modifying a Set while iterating over it can cause elements in\n // the Set to be removed from the Set before they've been iterated over.\n arrayFromSet(dep).forEach(entry => entry[m]());\n depsByKey.delete(key);\n maybeUnsubscribe(dep);\n }\n };\n\n return depend as OptimisticDependencyFunction;\n}\n","import { Trie } from \"@wry/trie\";\n\nimport { StrongCache, CommonCache } from \"@wry/caches\";\nimport { Entry, AnyEntry } from \"./entry.js\";\nimport { parentEntrySlot } from \"./context.js\";\nimport type { NoInfer } from \"./helpers.js\";\n\n// These helper functions are important for making optimism work with\n// asynchronous code. In order to register parent-child dependencies,\n// optimism needs to know about any currently active parent computations.\n// In ordinary synchronous code, the parent context is implicit in the\n// execution stack, but asynchronous code requires some extra guidance in\n// order to propagate context from one async task segment to the next.\nexport {\n bindContext,\n noContext,\n nonReactive,\n setTimeout,\n asyncFromGen,\n Slot,\n} from \"./context.js\";\n\n// A lighter-weight dependency, similar to OptimisticWrapperFunction, except\n// with only one argument, no makeCacheKey, no wrapped function to recompute,\n// and no result value. Useful for representing dependency leaves in the graph\n// of computation. Subscriptions are supported.\nexport { dep, OptimisticDependencyFunction } from \"./dep.js\";\n\n// The defaultMakeCacheKey function is remarkably powerful, because it gives\n// a unique object for any shallow-identical list of arguments. If you need\n// to implement a custom makeCacheKey function, you may find it helpful to\n// delegate the final work to defaultMakeCacheKey, which is why we export it\n// here. However, you may want to avoid defaultMakeCacheKey if your runtime\n// does not support WeakMap, or you have the ability to return a string key.\n// In those cases, just write your own custom makeCacheKey functions.\nlet defaultKeyTrie: Trie | undefined;\nexport function defaultMakeCacheKey(...args: any[]): object {\n const trie = defaultKeyTrie || (\n defaultKeyTrie = new Trie(typeof WeakMap === \"function\")\n );\n return trie.lookupArray(args);\n}\n\n// If you're paranoid about memory leaks, or you want to avoid using WeakMap\n// under the hood, but you still need the behavior of defaultMakeCacheKey,\n// import this constructor to create your own tries.\nexport { Trie as KeyTrie }\n\nexport type OptimisticWrapperFunction<\n TArgs extends any[],\n TResult,\n TKeyArgs extends any[] = TArgs,\n TCacheKey = any,\n> = ((...args: TArgs) => TResult) & {\n // Get the current number of Entry objects in the LRU cache.\n readonly size: number;\n\n // Snapshot of wrap options used to create this wrapper function.\n options: OptionsWithCacheInstance;\n\n // \"Dirty\" any cached Entry stored for the given arguments, marking that Entry\n // and its ancestors as potentially needing to be recomputed. The .dirty(...)\n // method of an optimistic function takes the same parameter types as the\n // original function by default, unless a keyArgs function is configured, and\n // then it matters that .dirty takes TKeyArgs instead of TArgs.\n dirty: (...args: TKeyArgs) => void;\n // A version of .dirty that accepts a key returned by .getKey.\n dirtyKey: (key: TCacheKey | undefined) => void;\n\n // Examine the current value without recomputing it.\n peek: (...args: TKeyArgs) => TResult | undefined;\n // A version of .peek that accepts a key returned by .getKey.\n peekKey: (key: TCacheKey | undefined) => TResult | undefined;\n\n // Completely remove the entry from the cache, dirtying any parent entries.\n forget: (...args: TKeyArgs) => boolean;\n // A version of .forget that accepts a key returned by .getKey.\n forgetKey: (key: TCacheKey | undefined) => boolean;\n\n // In order to use the -Key version of the above functions, you need a key\n // rather than the arguments used to compute the key. These two functions take\n // TArgs or TKeyArgs and return the corresponding TCacheKey. If no keyArgs\n // function has been configured, TArgs will be the same as TKeyArgs, and thus\n // getKey and makeCacheKey will be synonymous.\n getKey: (...args: TArgs) => TCacheKey | undefined;\n\n // This property is equivalent to the makeCacheKey function provided in the\n // OptimisticWrapOptions, or (if no options.makeCacheKey function is provided)\n // a default implementation of makeCacheKey. This function is also exposed as\n // optimistic.options.makeCacheKey, somewhat redundantly.\n makeCacheKey: (...args: TKeyArgs) => TCacheKey | undefined;\n};\n\nexport { CommonCache }\nexport interface CommonCacheConstructor extends Function {\n new >(max?: number, dispose?: (value: V, key?: K) => void): CommonCache;\n}\n\nexport type OptimisticWrapOptions<\n TArgs extends any[],\n TKeyArgs extends any[] = TArgs,\n TCacheKey = any,\n TResult = any,\n> = {\n // The maximum number of cache entries that should be retained before the\n // cache begins evicting the oldest ones.\n max?: number;\n // Transform the raw arguments to some other type of array, which will then\n // be passed to makeCacheKey.\n keyArgs?: (...args: TArgs) => TKeyArgs;\n // The makeCacheKey function takes the same arguments that were passed to\n // the wrapper function and returns a single value that can be used as a key\n // in a Map to identify the cached result.\n makeCacheKey?: (...args: NoInfer) => TCacheKey | undefined;\n // Called when a new value is computed to allow efficient normalization of\n // results over time, for example by returning older if equal(newer, older).\n normalizeResult?: (newer: TResult, older: TResult) => TResult;\n // If provided, the subscribe function should either return an unsubscribe\n // function or return nothing.\n subscribe?: (...args: TArgs) => void | (() => any);\n cache?: CommonCache, Entry, NoInfer>>\n | CommonCacheConstructor, NoInfer, NoInfer>;\n};\n\nexport interface OptionsWithCacheInstance<\n TArgs extends any[],\n TKeyArgs extends any[] = TArgs,\n TCacheKey = any,\n TResult = any,\n> extends OptimisticWrapOptions {\n cache: CommonCache, Entry, NoInfer>>;\n};\n\nconst caches = new Set>();\n\nexport function wrap<\n TArgs extends any[],\n TResult,\n TKeyArgs extends any[] = TArgs,\n TCacheKey = any,\n>(originalFunction: (...args: TArgs) => TResult, {\n max = Math.pow(2, 16),\n keyArgs,\n makeCacheKey = (defaultMakeCacheKey as () => TCacheKey),\n normalizeResult,\n subscribe,\n cache: cacheOption = StrongCache,\n}: OptimisticWrapOptions = Object.create(null)) {\n const cache: CommonCache> =\n typeof cacheOption === \"function\"\n ? new cacheOption(max, entry => entry.dispose())\n : cacheOption;\n\n const optimistic = function (): TResult {\n const key = makeCacheKey.apply(\n null,\n keyArgs ? keyArgs.apply(null, arguments as any) : arguments as any\n );\n\n if (key === void 0) {\n return originalFunction.apply(null, arguments as any);\n }\n\n let entry = cache.get(key)!;\n if (!entry) {\n cache.set(key, entry = new Entry(originalFunction));\n entry.normalizeResult = normalizeResult;\n entry.subscribe = subscribe;\n // Give the Entry the ability to trigger cache.delete(key), even though\n // the Entry itself does not know about key or cache.\n entry.forget = () => cache.delete(key);\n }\n\n const value = entry.recompute(\n Array.prototype.slice.call(arguments) as TArgs,\n );\n\n // Move this entry to the front of the least-recently used queue,\n // since we just finished computing its value.\n cache.set(key, entry);\n\n caches.add(cache);\n\n // Clean up any excess entries in the cache, but only if there is no\n // active parent entry, meaning we're not in the middle of a larger\n // computation that might be flummoxed by the cleaning.\n if (! parentEntrySlot.hasValue()) {\n caches.forEach(cache => cache.clean());\n caches.clear();\n }\n\n return value;\n } as OptimisticWrapperFunction;\n\n Object.defineProperty(optimistic, \"size\", {\n get: () => cache.size,\n configurable: false,\n enumerable: false,\n });\n\n Object.freeze(optimistic.options = {\n max,\n keyArgs,\n makeCacheKey,\n normalizeResult,\n subscribe,\n cache,\n });\n\n function dirtyKey(key: TCacheKey | undefined) {\n const entry = key && cache.get(key);\n if (entry) {\n entry.setDirty();\n }\n }\n optimistic.dirtyKey = dirtyKey;\n optimistic.dirty = function dirty() {\n dirtyKey(makeCacheKey.apply(null, arguments as any));\n };\n\n function peekKey(key: TCacheKey | undefined) {\n const entry = key && cache.get(key);\n if (entry) {\n return entry.peek();\n }\n }\n optimistic.peekKey = peekKey;\n optimistic.peek = function peek() {\n return peekKey(makeCacheKey.apply(null, arguments as any));\n };\n\n function forgetKey(key: TCacheKey | undefined) {\n return key ? cache.delete(key) : false;\n }\n optimistic.forgetKey = forgetKey;\n optimistic.forget = function forget() {\n return forgetKey(makeCacheKey.apply(null, arguments as any));\n };\n\n optimistic.makeCacheKey = makeCacheKey;\n optimistic.getKey = keyArgs ? function getKey() {\n return makeCacheKey.apply(null, keyArgs.apply(null, arguments as any));\n } : makeCacheKey as (...args: any[]) => TCacheKey | undefined;\n\n return Object.freeze(optimistic);\n}\n","import { Trie } from \"@wry/trie\";\nimport { canUseWeakMap, canUseWeakSet } from \"../common/canUse.js\";\nimport { checkDocument } from \"./getFromAST.js\";\nimport { invariant } from \"../globals/index.js\";\nimport type { DocumentNode } from \"graphql\";\nimport { WeakCache } from \"@wry/caches\";\nimport { wrap } from \"optimism\";\nimport { cacheSizes } from \"../caching/index.js\";\n\nexport type DocumentTransformCacheKey = ReadonlyArray;\n\ntype TransformFn = (document: DocumentNode) => DocumentNode;\n\ninterface DocumentTransformOptions {\n /**\n * Determines whether to cache the transformed GraphQL document. Caching can speed up repeated calls to the document transform for the same input document. Set to `false` to completely disable caching for the document transform. When disabled, this option takes precedence over the [`getCacheKey`](#getcachekey) option.\n *\n * The default value is `true`.\n */\n cache?: boolean;\n /**\n * Defines a custom cache key for a GraphQL document that will determine whether to re-run the document transform when given the same input GraphQL document. Returns an array that defines the cache key. Return `undefined` to disable caching for that GraphQL document.\n *\n * > **Note:** The items in the array may be any type, but also need to be referentially stable to guarantee a stable cache key.\n *\n * The default implementation of this function returns the `document` as the cache key.\n */\n getCacheKey?: (\n document: DocumentNode\n ) => DocumentTransformCacheKey | undefined;\n}\n\nfunction identity(document: DocumentNode) {\n return document;\n}\n\nexport class DocumentTransform {\n private readonly transform: TransformFn;\n private cached: boolean;\n\n private readonly resultCache =\n canUseWeakSet ? new WeakSet() : new Set();\n\n // This default implementation of getCacheKey can be overridden by providing\n // options.getCacheKey to the DocumentTransform constructor. In general, a\n // getCacheKey function may either return an array of keys (often including\n // the document) to be used as a cache key, or undefined to indicate the\n // transform for this document should not be cached.\n private getCacheKey(\n document: DocumentNode\n ): DocumentTransformCacheKey | undefined {\n return [document];\n }\n\n static identity() {\n // No need to cache this transform since it just returns the document\n // unchanged. This should save a bit of memory that would otherwise be\n // needed to populate the `documentCache` of this transform.\n return new DocumentTransform(identity, { cache: false });\n }\n\n static split(\n predicate: (document: DocumentNode) => boolean,\n left: DocumentTransform,\n right: DocumentTransform = DocumentTransform.identity()\n ) {\n return Object.assign(\n new DocumentTransform(\n (document) => {\n const documentTransform = predicate(document) ? left : right;\n\n return documentTransform.transformDocument(document);\n },\n // Reasonably assume both `left` and `right` transforms handle their own caching\n { cache: false }\n ),\n { left, right }\n );\n }\n\n constructor(\n transform: TransformFn,\n options: DocumentTransformOptions = Object.create(null)\n ) {\n this.transform = transform;\n\n if (options.getCacheKey) {\n // Override default `getCacheKey` function, which returns [document].\n this.getCacheKey = options.getCacheKey;\n }\n this.cached = options.cache !== false;\n\n this.resetCache();\n }\n\n /**\n * Resets the internal cache of this transform, if it has one.\n */\n resetCache() {\n if (this.cached) {\n const stableCacheKeys = new Trie(canUseWeakMap);\n this.performWork = wrap(\n DocumentTransform.prototype.performWork.bind(this),\n {\n makeCacheKey: (document) => {\n const cacheKeys = this.getCacheKey(document);\n if (cacheKeys) {\n invariant(\n Array.isArray(cacheKeys),\n \"`getCacheKey` must return an array or undefined\"\n );\n return stableCacheKeys.lookupArray(cacheKeys);\n }\n },\n max: cacheSizes[\"documentTransform.cache\"],\n cache: WeakCache,\n }\n );\n }\n }\n\n private performWork(document: DocumentNode) {\n checkDocument(document);\n return this.transform(document);\n }\n\n transformDocument(document: DocumentNode) {\n // If a user passes an already transformed result back to this function,\n // immediately return it.\n if (this.resultCache.has(document)) {\n return document;\n }\n\n const transformedDocument = this.performWork(document);\n\n this.resultCache.add(transformedDocument);\n\n return transformedDocument;\n }\n\n concat(otherTransform: DocumentTransform): DocumentTransform {\n return Object.assign(\n new DocumentTransform(\n (document) => {\n return otherTransform.transformDocument(\n this.transformDocument(document)\n );\n },\n // Reasonably assume both transforms handle their own caching\n { cache: false }\n ),\n {\n left: this,\n right: otherTransform,\n }\n );\n }\n\n /**\n * @internal\n * Used to iterate through all transforms that are concatenations or `split` links.\n */\n readonly left?: DocumentTransform;\n /**\n * @internal\n * Used to iterate through all transforms that are concatenations or `split` links.\n */\n readonly right?: DocumentTransform;\n}\n","import type { Observer } from \"./Observable.js\";\nimport { Observable } from \"./Observable.js\";\n\n// Like Observable.prototype.map, except that the mapping function can\n// optionally return a Promise (or be async).\nexport function asyncMap(\n observable: Observable,\n mapFn: (value: V) => R | PromiseLike,\n catchFn?: (error: any) => R | PromiseLike\n): Observable {\n return new Observable((observer) => {\n let promiseQueue = {\n // Normally we would initialize promiseQueue to Promise.resolve(), but\n // in this case, for backwards compatibility, we need to be careful to\n // invoke the first callback synchronously.\n then(callback: () => any) {\n return new Promise((resolve) => resolve(callback()));\n },\n } as Promise;\n\n function makeCallback(\n examiner: typeof mapFn | typeof catchFn,\n key: \"next\" | \"error\"\n ): (arg: any) => void {\n return (arg) => {\n if (examiner) {\n const both = () =>\n // If the observer is closed, we don't want to continue calling the\n // mapping function - it's result will be swallowed anyways.\n observer.closed ?\n /* will be swallowed */ (0 as any)\n : examiner(arg);\n\n promiseQueue = promiseQueue.then(both, both).then(\n (result) => observer.next(result),\n (error) => observer.error(error)\n );\n } else {\n observer[key](arg);\n }\n };\n }\n\n const handler: Observer = {\n next: makeCallback(mapFn, \"next\"),\n error: makeCallback(catchFn, \"error\"),\n complete() {\n // no need to reassign `promiseQueue`, after `observer.complete`,\n // the observer will be closed and short-circuit everything anyways\n /*promiseQueue = */ promiseQueue.then(() => observer.complete());\n },\n };\n\n const sub = observable.subscribe(handler);\n return () => sub.unsubscribe();\n });\n}\n","import type { FetchResult } from \"../../link/core/index.js\";\nimport { isNonEmptyArray } from \"./arrays.js\";\nimport { isExecutionPatchIncrementalResult } from \"./incrementalResult.js\";\n\nexport function graphQLResultHasError(result: FetchResult): boolean {\n const errors = getGraphQLErrorsFromResult(result);\n return isNonEmptyArray(errors);\n}\n\nexport function getGraphQLErrorsFromResult(result: FetchResult) {\n const graphQLErrors =\n isNonEmptyArray(result.errors) ? result.errors.slice(0) : [];\n\n if (\n isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)\n ) {\n result.incremental.forEach((incrementalResult) => {\n if (incrementalResult.errors) {\n graphQLErrors.push(...incrementalResult.errors);\n }\n });\n }\n return graphQLErrors;\n}\n","import type { Observer } from \"./Observable.js\";\n\nexport function iterateObserversSafely(\n observers: Set>,\n method: keyof Observer,\n argument?: A\n) {\n // In case observers is modified during iteration, we need to commit to the\n // original elements, which also provides an opportunity to filter them down\n // to just the observers with the given method.\n const observersWithMethod: Observer[] = [];\n observers.forEach((obs) => obs[method] && observersWithMethod.push(obs));\n observersWithMethod.forEach((obs) => (obs as any)[method](argument));\n}\n","import { Observable } from \"./Observable.js\";\nimport { canUseSymbol } from \"../common/canUse.js\";\n\n// Generic implementations of Observable.prototype methods like map and\n// filter need to know how to create a new Observable from an Observable\n// subclass (like Concast or ObservableQuery). Those methods assume\n// (perhaps unwisely?) that they can call the subtype's constructor with a\n// Subscriber function, even though the subclass constructor might expect\n// different parameters. Defining this static Symbol.species property on\n// the subclass is a hint to generic Observable code to use the default\n// constructor instead of trying to do `new Subclass(observer => ...)`.\nexport function fixObservableSubclass<\n S extends new (...args: any[]) => Observable,\n>(subclass: S): S {\n function set(key: symbol | string) {\n // Object.defineProperty is necessary because the Symbol.species\n // property is a getter by default in modern JS environments, so we\n // can't assign to it with a normal assignment expression.\n Object.defineProperty(subclass, key, { value: Observable });\n }\n if (canUseSymbol && Symbol.species) {\n set(Symbol.species);\n }\n // The \"@@species\" string is used as a fake Symbol.species value in some\n // polyfill systems (including the SymbolSpecies variable used by\n // zen-observable), so we should set it as well, to be safe.\n set(\"@@species\");\n return subclass;\n}\n","import type {\n Observer,\n ObservableSubscription,\n Subscriber,\n} from \"./Observable.js\";\nimport { Observable } from \"./Observable.js\";\nimport { iterateObserversSafely } from \"./iteration.js\";\nimport { fixObservableSubclass } from \"./subclassing.js\";\n\ntype MaybeAsync = T | PromiseLike;\n\nfunction isPromiseLike(value: MaybeAsync): value is PromiseLike {\n return value && typeof (value as any).then === \"function\";\n}\n\n// Any individual Source can be an Observable or a promise for one.\ntype Source = MaybeAsync>;\n\nexport type ConcastSourcesIterable = Iterable>;\nexport type ConcastSourcesArray = Array>;\n\n// A Concast observable concatenates the given sources into a single\n// non-overlapping sequence of Ts, automatically unwrapping any promises,\n// and broadcasts the T elements of that sequence to any number of\n// subscribers, all without creating a bunch of intermediary Observable\n// wrapper objects.\n//\n// Even though any number of observers can subscribe to the Concast, each\n// source observable is guaranteed to receive at most one subscribe call,\n// and the results are multicast to all observers.\n//\n// In addition to broadcasting every next/error message to this.observers,\n// the Concast stores the most recent message using this.latest, so any\n// new observers can immediately receive the latest message, even if it\n// was originally delivered in the past. This behavior means we can assume\n// every active observer in this.observers has received the same most\n// recent message.\n//\n// With the exception of this.latest replay, a Concast is a \"hot\"\n// observable in the sense that it does not replay past results from the\n// beginning of time for each new observer.\n//\n// Could we have used some existing RxJS class instead? Concast is\n// similar to a BehaviorSubject, because it is multicast and redelivers\n// the latest next/error message to new subscribers. Unlike Subject,\n// Concast does not expose an Observer interface (this.handlers is\n// intentionally private), since Concast gets its inputs from the\n// concatenated sources. If we ever switch to RxJS, there may be some\n// value in reusing their code, but for now we use zen-observable, which\n// does not contain any Subject implementations.\nexport class Concast extends Observable {\n // Active observers receiving broadcast messages. Thanks to this.latest,\n // we can assume all observers in this Set have received the same most\n // recent message, though possibly at different times in the past.\n private observers = new Set>();\n\n // This property starts off undefined to indicate the initial\n // subscription has not yet begun, then points to each source\n // subscription in turn, and finally becomes null after the sources have\n // been exhausted. After that, it stays null.\n private sub?: ObservableSubscription | null;\n\n // Not only can the individual elements of the iterable be promises, but\n // also the iterable itself can be wrapped in a promise.\n constructor(sources: MaybeAsync> | Subscriber) {\n super((observer) => {\n this.addObserver(observer);\n return () => this.removeObserver(observer);\n });\n\n // Suppress rejection warnings for this.promise, since it's perfectly\n // acceptable to pay no attention to this.promise if you're consuming\n // the results through the normal observable API.\n this.promise.catch((_) => {});\n\n // If someone accidentally tries to create a Concast using a subscriber\n // function, recover by creating an Observable from that subscriber and\n // using it as the source.\n if (typeof sources === \"function\") {\n sources = [new Observable(sources)];\n }\n\n if (isPromiseLike(sources)) {\n sources.then((iterable) => this.start(iterable), this.handlers.error);\n } else {\n this.start(sources);\n }\n }\n\n // A consumable array of source observables, incrementally consumed each time\n // this.handlers.complete is called. This private field is not initialized\n // until the concast.start method is called, which can happen asynchronously\n // if a Promise is passed to the Concast constructor, so undefined is a\n // possible value for this.sources before concast.start is called.\n private sources: Source[] | undefined;\n\n private start(sources: ConcastSourcesIterable) {\n if (this.sub !== void 0) return;\n\n // In practice, sources is most often simply an Array of observables.\n // TODO Consider using sources[Symbol.iterator]() to take advantage\n // of the laziness of non-Array iterables.\n this.sources = Array.from(sources);\n\n // Calling this.handlers.complete() kicks off consumption of the first\n // source observable. It's tempting to do this step lazily in\n // addObserver, but this.promise can be accessed without calling\n // addObserver, so consumption needs to begin eagerly.\n this.handlers.complete();\n }\n\n private deliverLastMessage(observer: Observer) {\n if (this.latest) {\n const nextOrError = this.latest[0];\n const method = observer[nextOrError];\n if (method) {\n method.call(observer, this.latest[1]);\n }\n // If the subscription is already closed, and the last message was\n // a 'next' message, simulate delivery of the final 'complete'\n // message again.\n if (this.sub === null && nextOrError === \"next\" && observer.complete) {\n observer.complete();\n }\n }\n }\n\n public addObserver(observer: Observer) {\n if (!this.observers.has(observer)) {\n // Immediately deliver the most recent message, so we can always\n // be sure all observers have the latest information.\n this.deliverLastMessage(observer);\n this.observers.add(observer);\n }\n }\n\n public removeObserver(observer: Observer) {\n if (this.observers.delete(observer) && this.observers.size < 1) {\n // In case there are still any listeners in this.nextResultListeners, and\n // no error or completion has been broadcast yet, make sure those\n // observers have a chance to run and then remove themselves from\n // this.observers.\n this.handlers.complete();\n }\n }\n\n // Any Concast object can be trivially converted to a Promise, without\n // having to create a new wrapper Observable. This promise provides an\n // easy way to observe the final state of the Concast.\n private resolve!: (result?: T | PromiseLike) => void;\n private reject!: (reason: any) => void;\n public readonly promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n\n // Name and argument of the most recently invoked observer method, used\n // to deliver latest results immediately to new observers.\n private latest?: [\"next\", T] | [\"error\", any];\n\n // Bound handler functions that can be reused for every internal\n // subscription.\n private handlers = {\n next: (result: T) => {\n if (this.sub !== null) {\n this.latest = [\"next\", result];\n this.notify(\"next\", result);\n iterateObserversSafely(this.observers, \"next\", result);\n }\n },\n\n error: (error: any) => {\n const { sub } = this;\n if (sub !== null) {\n // Delay unsubscribing from the underlying subscription slightly,\n // so that immediately subscribing another observer can keep the\n // subscription active.\n if (sub) setTimeout(() => sub.unsubscribe());\n this.sub = null;\n this.latest = [\"error\", error];\n this.reject(error);\n this.notify(\"error\", error);\n iterateObserversSafely(this.observers, \"error\", error);\n }\n },\n\n complete: () => {\n const { sub, sources = [] } = this;\n if (sub !== null) {\n // If complete is called before concast.start, this.sources may be\n // undefined, so we use a default value of [] for sources. That works\n // here because it falls into the if (!value) {...} block, which\n // appropriately terminates the Concast, even if this.sources might\n // eventually have been initialized to a non-empty array.\n const value = sources.shift();\n if (!value) {\n if (sub) setTimeout(() => sub.unsubscribe());\n this.sub = null;\n if (this.latest && this.latest[0] === \"next\") {\n this.resolve(this.latest[1]);\n } else {\n this.resolve();\n }\n this.notify(\"complete\");\n // We do not store this.latest = [\"complete\"], because doing so\n // discards useful information about the previous next (or\n // error) message. Instead, if new observers subscribe after\n // this Concast has completed, they will receive the final\n // 'next' message (unless there was an error) immediately\n // followed by a 'complete' message (see addObserver).\n iterateObserversSafely(this.observers, \"complete\");\n } else if (isPromiseLike(value)) {\n value.then(\n (obs) => (this.sub = obs.subscribe(this.handlers)),\n this.handlers.error\n );\n } else {\n this.sub = value.subscribe(this.handlers);\n }\n }\n },\n };\n\n private nextResultListeners = new Set();\n\n private notify(\n method: Parameters[0],\n arg?: Parameters[1]\n ) {\n const { nextResultListeners } = this;\n if (nextResultListeners.size) {\n // Replacing this.nextResultListeners first ensures it does not grow while\n // we are iterating over it, potentially leading to infinite loops.\n this.nextResultListeners = new Set();\n nextResultListeners.forEach((listener) => listener(method, arg));\n }\n }\n\n // We need a way to run callbacks just *before* the next result (or error or\n // completion) is delivered by this Concast, so we can be sure any code that\n // runs as a result of delivering that result/error observes the effects of\n // running the callback(s). It was tempting to reuse the Observer type instead\n // of introducing NextResultListener, but that messes with the sizing and\n // maintenance of this.observers, and ends up being more code overall.\n beforeNext(callback: NextResultListener) {\n let called = false;\n this.nextResultListeners.add((method, arg) => {\n if (!called) {\n called = true;\n callback(method, arg);\n }\n });\n }\n\n // A public way to abort observation and broadcast.\n public cancel = (reason: any) => {\n this.reject(reason);\n this.sources = [];\n this.handlers.error(reason);\n };\n}\n\ntype NextResultListener = (\n method: \"next\" | \"error\" | \"complete\",\n arg?: any\n) => any;\n\n// Necessary because the Concast constructor has a different signature\n// than the Observable constructor.\nfixObservableSubclass(Concast);\n","const { toString } = Object.prototype;\n\n/**\n * Deeply clones a value to create a new instance.\n */\nexport function cloneDeep(value: T): T {\n return cloneDeepHelper(value);\n}\n\nfunction cloneDeepHelper(val: T, seen?: Map): T {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n seen = seen || new Map();\n if (seen.has(val)) return seen.get(val);\n const copy: T & any[] = (val as any).slice(0);\n seen.set(val, copy);\n copy.forEach(function (child, i) {\n copy[i] = cloneDeepHelper(child, seen);\n });\n return copy;\n }\n\n case \"[object Object]\": {\n seen = seen || new Map();\n if (seen.has(val)) return seen.get(val);\n // High fidelity polyfills of Object.create and Object.getPrototypeOf are\n // possible in all JS environments, so we will assume they exist/work.\n const copy = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy);\n Object.keys(val as T & Record).forEach((key) => {\n copy[key] = cloneDeepHelper((val as any)[key], seen);\n });\n return copy;\n }\n\n default:\n return val;\n }\n}\n","import equal from \"@wry/equality\";\n\nimport type {\n DirectiveNode,\n DocumentNode,\n FieldNode,\n FragmentDefinitionNode,\n FragmentSpreadNode,\n InlineFragmentNode,\n SelectionNode,\n SelectionSetNode,\n} from \"graphql\";\n\nimport type { ApolloQueryResult, OperationVariables } from \"./types.js\";\n\nimport type { FragmentMap } from \"../utilities/index.js\";\nimport {\n createFragmentMap,\n getFragmentDefinitions,\n getFragmentFromSelection,\n getMainDefinition,\n isField,\n resultKeyNameFromField,\n shouldInclude,\n} from \"../utilities/index.js\";\n\n// Returns true if aResult and bResult are deeply equal according to the fields\n// selected by the given query, ignoring any fields marked as @nonreactive.\nexport function equalByQuery(\n query: DocumentNode,\n { data: aData, ...aRest }: Partial>,\n { data: bData, ...bRest }: Partial>,\n variables?: OperationVariables\n): boolean {\n return (\n equal(aRest, bRest) &&\n equalBySelectionSet(getMainDefinition(query).selectionSet, aData, bData, {\n fragmentMap: createFragmentMap(getFragmentDefinitions(query)),\n variables,\n })\n );\n}\n\n// Encapsulates the information used by equalBySelectionSet that does not change\n// during the recursion.\ninterface CompareContext {\n fragmentMap: FragmentMap;\n variables: TVariables | undefined;\n}\n\nfunction equalBySelectionSet(\n selectionSet: SelectionSetNode,\n aResult: any,\n bResult: any,\n context: CompareContext\n): boolean {\n if (aResult === bResult) {\n return true;\n }\n\n const seenSelections = new Set();\n\n // Returning true from this Array.prototype.every callback function skips the\n // current field/subtree. Returning false aborts the entire traversal\n // immediately, causing equalBySelectionSet to return false.\n return selectionSet.selections.every((selection) => {\n // Avoid re-processing the same selection at the same level of recursion, in\n // case the same field gets included via multiple indirect fragment spreads.\n if (seenSelections.has(selection)) return true;\n seenSelections.add(selection);\n\n // Ignore @skip(if: true) and @include(if: false) fields.\n if (!shouldInclude(selection, context.variables)) return true;\n\n // If the field or (named) fragment spread has a @nonreactive directive on\n // it, we don't care if it's different, so we pretend it's the same.\n if (selectionHasNonreactiveDirective(selection)) return true;\n\n if (isField(selection)) {\n const resultKey = resultKeyNameFromField(selection);\n const aResultChild = aResult && aResult[resultKey];\n const bResultChild = bResult && bResult[resultKey];\n const childSelectionSet = selection.selectionSet;\n\n if (!childSelectionSet) {\n // These are scalar values, so we can compare them with deep equal\n // without redoing the main recursive work.\n return equal(aResultChild, bResultChild);\n }\n\n const aChildIsArray = Array.isArray(aResultChild);\n const bChildIsArray = Array.isArray(bResultChild);\n if (aChildIsArray !== bChildIsArray) return false;\n if (aChildIsArray && bChildIsArray) {\n const length = aResultChild.length;\n if (bResultChild.length !== length) {\n return false;\n }\n for (let i = 0; i < length; ++i) {\n if (\n !equalBySelectionSet(\n childSelectionSet,\n aResultChild[i],\n bResultChild[i],\n context\n )\n ) {\n return false;\n }\n }\n return true;\n }\n\n return equalBySelectionSet(\n childSelectionSet,\n aResultChild,\n bResultChild,\n context\n );\n } else {\n const fragment = getFragmentFromSelection(selection, context.fragmentMap);\n if (fragment) {\n // The fragment might === selection if it's an inline fragment, but\n // could be !== if it's a named fragment ...spread.\n if (selectionHasNonreactiveDirective(fragment)) return true;\n\n return equalBySelectionSet(\n fragment.selectionSet,\n // Notice that we reuse the same aResult and bResult values here,\n // since the fragment ...spread does not specify a field name, but\n // consists of multiple fields (within the fragment's selection set)\n // that should be applied to the current result value(s).\n aResult,\n bResult,\n context\n );\n }\n }\n });\n}\n\nfunction selectionHasNonreactiveDirective(\n selection:\n | FieldNode\n | InlineFragmentNode\n | FragmentSpreadNode\n | FragmentDefinitionNode\n): boolean {\n return (\n !!selection.directives && selection.directives.some(directiveIsNonreactive)\n );\n}\n\nfunction directiveIsNonreactive(dir: DirectiveNode): boolean {\n return dir.name.value === \"nonreactive\";\n}\n","import { invariant } from \"../utilities/globals/index.js\";\nimport type { DocumentNode } from \"graphql\";\nimport { equal } from \"@wry/equality\";\n\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport type {\n Concast,\n Observer,\n ObservableSubscription,\n} from \"../utilities/index.js\";\nimport {\n cloneDeep,\n compact,\n getOperationDefinition,\n Observable,\n iterateObserversSafely,\n fixObservableSubclass,\n getQueryDefinition,\n preventUnhandledRejection,\n} from \"../utilities/index.js\";\nimport { ApolloError, isApolloError } from \"../errors/index.js\";\nimport type { QueryManager } from \"./QueryManager.js\";\nimport type {\n ApolloQueryResult,\n OperationVariables,\n TypedDocumentNode,\n} from \"./types.js\";\nimport type {\n WatchQueryOptions,\n FetchMoreQueryOptions,\n SubscribeToMoreOptions,\n NextFetchPolicyContext,\n WatchQueryFetchPolicy,\n UpdateQueryMapFn,\n UpdateQueryOptions,\n} from \"./watchQueryOptions.js\";\nimport type { QueryInfo } from \"./QueryInfo.js\";\nimport type { MissingFieldError } from \"../cache/index.js\";\nimport type { MissingTree } from \"../cache/core/types/common.js\";\nimport { equalByQuery } from \"./equalByQuery.js\";\nimport type { TODO } from \"../utilities/types/TODO.js\";\nimport type { MaybeMasked, Unmasked } from \"../masking/index.js\";\n\nconst { assign, hasOwnProperty } = Object;\n\nexport interface FetchMoreOptions<\n TData = any,\n TVariables = OperationVariables,\n> {\n updateQuery?: (\n previousQueryResult: TData,\n options: {\n fetchMoreResult?: TData;\n variables?: TVariables;\n }\n ) => TData;\n}\n\ninterface Last {\n result: ApolloQueryResult;\n variables?: TVariables;\n error?: ApolloError;\n}\n\nexport class ObservableQuery<\n TData = any,\n TVariables extends OperationVariables = OperationVariables,\n> extends Observable>> {\n public readonly options: WatchQueryOptions;\n public readonly queryId: string;\n public readonly queryName?: string;\n\n // The `query` computed property will always reflect the document transformed\n // by the last run query. `this.options.query` will always reflect the raw\n // untransformed query to ensure document transforms with runtime conditionals\n // are run on the original document.\n public get query(): TypedDocumentNode {\n return this.lastQuery || this.options.query;\n }\n\n // Computed shorthand for this.options.variables, preserved for\n // backwards compatibility.\n /**\n * An object containing the variables that were provided for the query.\n */\n public get variables(): TVariables | undefined {\n return this.options.variables;\n }\n\n private isTornDown: boolean;\n private queryManager: QueryManager;\n private observers = new Set<\n Observer>>\n >();\n private subscriptions = new Set();\n\n private waitForOwnResult: boolean;\n private last?: Last;\n private lastQuery?: DocumentNode;\n\n private queryInfo: QueryInfo;\n\n // When this.concast is defined, this.observer is the Observer currently\n // subscribed to that Concast.\n private concast?: Concast>;\n private observer?: Observer>;\n\n private pollingInfo?: {\n interval: number;\n timeout: ReturnType;\n };\n\n constructor({\n queryManager,\n queryInfo,\n options,\n }: {\n queryManager: QueryManager;\n queryInfo: QueryInfo;\n options: WatchQueryOptions;\n }) {\n super((observer: Observer>>) => {\n // Zen Observable has its own error function, so in order to log correctly\n // we need to provide a custom error callback.\n try {\n var subObserver = (observer as any)._subscription._observer;\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n } catch {}\n\n const first = !this.observers.size;\n this.observers.add(observer);\n\n // Deliver most recent error or result.\n const last = this.last;\n if (last && last.error) {\n observer.error && observer.error(last.error);\n } else if (last && last.result) {\n observer.next && observer.next(this.maskResult(last.result));\n }\n\n // Initiate observation of this query if it hasn't been reported to\n // the QueryManager yet.\n if (first) {\n // Blindly catching here prevents unhandled promise rejections,\n // and is safe because the ObservableQuery handles this error with\n // this.observer.error, so we're not just swallowing the error by\n // ignoring it here.\n this.reobserve().catch(() => {});\n }\n\n return () => {\n if (this.observers.delete(observer) && !this.observers.size) {\n this.tearDownQuery();\n }\n };\n });\n\n // related classes\n this.queryInfo = queryInfo;\n this.queryManager = queryManager;\n\n // active state\n this.waitForOwnResult = skipCacheDataFor(options.fetchPolicy);\n this.isTornDown = false;\n\n this.subscribeToMore = this.subscribeToMore.bind(this);\n this.maskResult = this.maskResult.bind(this);\n\n const {\n watchQuery: { fetchPolicy: defaultFetchPolicy = \"cache-first\" } = {},\n } = queryManager.defaultOptions;\n\n const {\n fetchPolicy = defaultFetchPolicy,\n // Make sure we don't store \"standby\" as the initialFetchPolicy.\n initialFetchPolicy = fetchPolicy === \"standby\" ? defaultFetchPolicy : (\n fetchPolicy\n ),\n } = options;\n\n this.options = {\n ...options,\n\n // Remember the initial options.fetchPolicy so we can revert back to this\n // policy when variables change. This information can also be specified\n // (or overridden) by providing options.initialFetchPolicy explicitly.\n initialFetchPolicy,\n\n // This ensures this.options.fetchPolicy always has a string value, in\n // case options.fetchPolicy was not provided.\n fetchPolicy,\n };\n\n this.queryId = queryInfo.queryId || queryManager.generateQueryId();\n\n const opDef = getOperationDefinition(this.query);\n this.queryName = opDef && opDef.name && opDef.name.value;\n }\n\n public result(): Promise>> {\n return new Promise((resolve, reject) => {\n // TODO: this code doesn’t actually make sense insofar as the observer\n // will never exist in this.observers due how zen-observable wraps observables.\n // https://github.com/zenparsing/zen-observable/blob/master/src/Observable.js#L169\n const observer: Observer>> = {\n next: (result) => {\n resolve(result);\n\n // Stop the query within the QueryManager if we can before\n // this function returns.\n //\n // We do this in order to prevent observers piling up within\n // the QueryManager. Notice that we only fully unsubscribe\n // from the subscription in a setTimeout(..., 0) call. This call can\n // actually be handled by the browser at a much later time. If queries\n // are fired in the meantime, observers that should have been removed\n // from the QueryManager will continue to fire, causing an unnecessary\n // performance hit.\n this.observers.delete(observer);\n if (!this.observers.size) {\n this.queryManager.removeQuery(this.queryId);\n }\n\n setTimeout(() => {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject,\n };\n const subscription = this.subscribe(observer);\n });\n }\n\n /** @internal */\n public resetDiff() {\n this.queryInfo.resetDiff();\n }\n\n private getCurrentFullResult(\n saveAsLastResult = true\n ): ApolloQueryResult {\n // Use the last result as long as the variables match this.variables.\n const lastResult = this.getLastResult(true);\n\n const networkStatus =\n this.queryInfo.networkStatus ||\n (lastResult && lastResult.networkStatus) ||\n NetworkStatus.ready;\n\n const result = {\n ...lastResult,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus,\n } as ApolloQueryResult;\n\n const { fetchPolicy = \"cache-first\" } = this.options;\n if (\n // These fetch policies should never deliver data from the cache, unless\n // redelivering a previously delivered result.\n skipCacheDataFor(fetchPolicy) ||\n // If this.options.query has @client(always: true) fields, we cannot\n // trust diff.result, since it was read from the cache without running\n // local resolvers (and it's too late to run resolvers now, since we must\n // return a result synchronously).\n this.queryManager.getDocumentInfo(this.query).hasForcedResolvers\n ) {\n // Fall through.\n } else if (this.waitForOwnResult) {\n // This would usually be a part of `QueryInfo.getDiff()`.\n // which we skip in the waitForOwnResult case since we are not\n // interested in the diff.\n this.queryInfo[\"updateWatch\"]();\n } else {\n const diff = this.queryInfo.getDiff();\n\n if (diff.complete || this.options.returnPartialData) {\n result.data = diff.result;\n }\n\n if (equal(result.data, {})) {\n result.data = void 0 as any;\n }\n\n if (diff.complete) {\n // Similar to setting result.partial to false, but taking advantage of the\n // falsiness of missing fields.\n delete result.partial;\n\n // If the diff is complete, and we're using a FetchPolicy that\n // terminates after a complete cache read, we can assume the next result\n // we receive will have NetworkStatus.ready and !loading.\n if (\n diff.complete &&\n result.networkStatus === NetworkStatus.loading &&\n (fetchPolicy === \"cache-first\" || fetchPolicy === \"cache-only\")\n ) {\n result.networkStatus = NetworkStatus.ready;\n result.loading = false;\n }\n } else {\n result.partial = true;\n }\n\n if (\n __DEV__ &&\n !diff.complete &&\n !this.options.partialRefetch &&\n !result.loading &&\n !result.data &&\n !result.error\n ) {\n logMissingFieldErrors(diff.missing);\n }\n }\n\n if (saveAsLastResult) {\n this.updateLastResult(result);\n }\n\n return result;\n }\n\n public getCurrentResult(\n saveAsLastResult = true\n ): ApolloQueryResult> {\n return this.maskResult(this.getCurrentFullResult(saveAsLastResult));\n }\n\n // Compares newResult to the snapshot we took of this.lastResult when it was\n // first received.\n public isDifferentFromLastResult(\n newResult: ApolloQueryResult,\n variables?: TVariables\n ) {\n if (!this.last) {\n return true;\n }\n\n const documentInfo = this.queryManager.getDocumentInfo(this.query);\n const dataMasking = this.queryManager.dataMasking;\n const query = dataMasking ? documentInfo.nonReactiveQuery : this.query;\n\n const resultIsDifferent =\n dataMasking || documentInfo.hasNonreactiveDirective ?\n !equalByQuery(query, this.last.result, newResult, this.variables)\n : !equal(this.last.result, newResult);\n\n return (\n resultIsDifferent || (variables && !equal(this.last.variables, variables))\n );\n }\n\n private getLast>(\n key: K,\n variablesMustMatch?: boolean\n ) {\n const last = this.last;\n if (\n last &&\n last[key] &&\n (!variablesMustMatch || equal(last.variables, this.variables))\n ) {\n return last[key];\n }\n }\n\n public getLastResult(\n variablesMustMatch?: boolean\n ): ApolloQueryResult | undefined {\n return this.getLast(\"result\", variablesMustMatch);\n }\n\n public getLastError(variablesMustMatch?: boolean): ApolloError | undefined {\n return this.getLast(\"error\", variablesMustMatch);\n }\n\n public resetLastResults(): void {\n delete this.last;\n this.isTornDown = false;\n }\n\n public resetQueryStoreErrors() {\n this.queryManager.resetErrors(this.queryId);\n }\n\n /**\n * Update the variables of this observable query, and fetch the new results.\n * This method should be preferred over `setVariables` in most use cases.\n *\n * @param variables - The new set of variables. If there are missing variables,\n * the previous values of those variables will be used.\n */\n public refetch(\n variables?: Partial\n ): Promise>> {\n const reobserveOptions: Partial> = {\n // Always disable polling for refetches.\n pollInterval: 0,\n };\n\n // Unless the provided fetchPolicy always consults the network\n // (no-cache, network-only, or cache-and-network), override it with\n // network-only to force the refetch for this fetchQuery call.\n const { fetchPolicy } = this.options;\n if (fetchPolicy === \"cache-and-network\") {\n reobserveOptions.fetchPolicy = fetchPolicy;\n } else if (fetchPolicy === \"no-cache\") {\n reobserveOptions.fetchPolicy = \"no-cache\";\n } else {\n reobserveOptions.fetchPolicy = \"network-only\";\n }\n\n if (__DEV__ && variables && hasOwnProperty.call(variables, \"variables\")) {\n const queryDef = getQueryDefinition(this.query);\n const vars = queryDef.variableDefinitions;\n if (!vars || !vars.some((v) => v.variable.name.value === \"variables\")) {\n invariant.warn(\n `Called refetch(%o) for query %o, which does not declare a $variables variable.\nDid you mean to call refetch(variables) instead of refetch({ variables })?`,\n variables,\n queryDef.name?.value || queryDef\n );\n }\n }\n\n if (variables && !equal(this.options.variables, variables)) {\n // Update the existing options with new variables\n reobserveOptions.variables = this.options.variables = {\n ...this.options.variables,\n ...variables,\n } as TVariables;\n }\n\n this.queryInfo.resetLastWrite();\n return this.reobserve(reobserveOptions, NetworkStatus.refetch);\n }\n\n /**\n * A function that helps you fetch the next set of results for a [paginated list field](https://www.apollographql.com/docs/react/pagination/core-api/).\n */\n public fetchMore<\n TFetchData = TData,\n TFetchVars extends OperationVariables = TVariables,\n >(\n fetchMoreOptions: FetchMoreQueryOptions & {\n updateQuery?: (\n previousQueryResult: Unmasked,\n options: {\n fetchMoreResult: Unmasked;\n variables: TFetchVars;\n }\n ) => Unmasked;\n }\n ): Promise>> {\n const combinedOptions = {\n ...(fetchMoreOptions.query ? fetchMoreOptions : (\n {\n ...this.options,\n query: this.options.query,\n ...fetchMoreOptions,\n variables: {\n ...this.options.variables,\n ...fetchMoreOptions.variables,\n },\n }\n )),\n // The fetchMore request goes immediately to the network and does\n // not automatically write its result to the cache (hence no-cache\n // instead of network-only), because we allow the caller of\n // fetchMore to provide an updateQuery callback that determines how\n // the data gets written to the cache.\n fetchPolicy: \"no-cache\",\n } as WatchQueryOptions;\n\n combinedOptions.query = this.transformDocument(combinedOptions.query);\n\n const qid = this.queryManager.generateQueryId();\n\n // If a temporary query is passed to `fetchMore`, we don't want to store\n // it as the last query result since it may be an optimized query for\n // pagination. We will however run the transforms on the original document\n // as well as the document passed in `fetchMoreOptions` to ensure the cache\n // uses the most up-to-date document which may rely on runtime conditionals.\n this.lastQuery =\n fetchMoreOptions.query ?\n this.transformDocument(this.options.query)\n : combinedOptions.query;\n\n // Simulate a loading result for the original query with\n // result.networkStatus === NetworkStatus.fetchMore.\n const { queryInfo } = this;\n const originalNetworkStatus = queryInfo.networkStatus;\n queryInfo.networkStatus = NetworkStatus.fetchMore;\n if (combinedOptions.notifyOnNetworkStatusChange) {\n this.observe();\n }\n\n const updatedQuerySet = new Set();\n\n const updateQuery = fetchMoreOptions?.updateQuery;\n const isCached = this.options.fetchPolicy !== \"no-cache\";\n\n if (!isCached) {\n invariant(\n updateQuery,\n \"You must provide an `updateQuery` function when using `fetchMore` with a `no-cache` fetch policy.\"\n );\n }\n\n return this.queryManager\n .fetchQuery(qid, combinedOptions, NetworkStatus.fetchMore)\n .then((fetchMoreResult) => {\n this.queryManager.removeQuery(qid);\n\n if (queryInfo.networkStatus === NetworkStatus.fetchMore) {\n queryInfo.networkStatus = originalNetworkStatus;\n }\n\n if (isCached) {\n // Performing this cache update inside a cache.batch transaction ensures\n // any affected cache.watch watchers are notified at most once about any\n // updates. Most watchers will be using the QueryInfo class, which\n // responds to notifications by calling reobserveCacheFirst to deliver\n // fetchMore cache results back to this ObservableQuery.\n this.queryManager.cache.batch({\n update: (cache) => {\n const { updateQuery } = fetchMoreOptions;\n if (updateQuery) {\n cache.updateQuery(\n {\n query: this.query,\n variables: this.variables,\n returnPartialData: true,\n optimistic: false,\n },\n (previous) =>\n updateQuery(previous! as any, {\n fetchMoreResult: fetchMoreResult.data as any,\n variables: combinedOptions.variables as TFetchVars,\n })\n );\n } else {\n // If we're using a field policy instead of updateQuery, the only\n // thing we need to do is write the new data to the cache using\n // combinedOptions.variables (instead of this.variables, which is\n // what this.updateQuery uses, because it works by abusing the\n // original field value, keyed by the original variables).\n cache.writeQuery({\n query: combinedOptions.query,\n variables: combinedOptions.variables,\n data: fetchMoreResult.data as Unmasked,\n });\n }\n },\n\n onWatchUpdated: (watch) => {\n // Record the DocumentNode associated with any watched query whose\n // data were updated by the cache writes above.\n updatedQuerySet.add(watch.query);\n },\n });\n } else {\n // There is a possibility `lastResult` may not be set when\n // `fetchMore` is called which would cause this to crash. This should\n // only happen if we haven't previously reported a result. We don't\n // quite know what the right behavior should be here since this block\n // of code runs after the fetch result has executed on the network.\n // We plan to let it crash in the meantime.\n //\n // If we get bug reports due to the `data` property access on\n // undefined, this should give us a real-world scenario that we can\n // use to test against and determine the right behavior. If we do end\n // up changing this behavior, this may require, for example, an\n // adjustment to the types on `updateQuery` since that function\n // expects that the first argument always contains previous result\n // data, but not `undefined`.\n const lastResult = this.getLast(\"result\")!;\n const data = updateQuery!(lastResult.data as Unmasked, {\n fetchMoreResult: fetchMoreResult.data as Unmasked,\n variables: combinedOptions.variables as TFetchVars,\n });\n\n this.reportResult(\n {\n ...lastResult,\n networkStatus: originalNetworkStatus!,\n loading: isNetworkRequestInFlight(originalNetworkStatus),\n data: data as TData,\n },\n this.variables\n );\n }\n\n return this.maskResult(fetchMoreResult);\n })\n .finally(() => {\n // In case the cache writes above did not generate a broadcast\n // notification (which would have been intercepted by onWatchUpdated),\n // likely because the written data were the same as what was already in\n // the cache, we still want fetchMore to deliver its final loading:false\n // result with the unchanged data.\n if (isCached && !updatedQuerySet.has(this.query)) {\n reobserveCacheFirst(this);\n }\n });\n }\n\n // XXX the subscription variables are separate from the query variables.\n // if you want to update subscription variables, right now you have to do that separately,\n // and you can only do it by stopping the subscription and then subscribing again with new variables.\n /**\n * A function that enables you to execute a [subscription](https://www.apollographql.com/docs/react/data/subscriptions/), usually to subscribe to specific fields that were included in the query.\n *\n * This function returns _another_ function that you can call to terminate the subscription.\n */\n public subscribeToMore<\n TSubscriptionData = TData,\n TSubscriptionVariables extends OperationVariables = TVariables,\n >(\n options: SubscribeToMoreOptions<\n TData,\n TSubscriptionVariables,\n TSubscriptionData,\n TVariables\n >\n ): () => void {\n const subscription = this.queryManager\n .startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n context: options.context,\n })\n .subscribe({\n next: (subscriptionData: { data: Unmasked }) => {\n const { updateQuery } = options;\n if (updateQuery) {\n this.updateQuery((previous, updateOptions) =>\n updateQuery(previous, {\n subscriptionData,\n ...updateOptions,\n })\n );\n }\n },\n error: (err: any) => {\n if (options.onError) {\n options.onError(err);\n return;\n }\n invariant.error(\"Unhandled GraphQL subscription error\", err);\n },\n });\n\n this.subscriptions.add(subscription);\n\n return () => {\n if (this.subscriptions.delete(subscription)) {\n subscription.unsubscribe();\n }\n };\n }\n\n public setOptions(\n newOptions: Partial>\n ): Promise>> {\n return this.reobserve(newOptions);\n }\n\n public silentSetOptions(\n newOptions: Partial>\n ) {\n const mergedOptions = compact(this.options, newOptions || {});\n assign(this.options, mergedOptions);\n }\n\n /**\n * Update the variables of this observable query, and fetch the new results\n * if they've changed. Most users should prefer `refetch` instead of\n * `setVariables` in order to to be properly notified of results even when\n * they come from the cache.\n *\n * Note: the `next` callback will *not* fire if the variables have not changed\n * or if the result is coming from cache.\n *\n * Note: the promise will return the old results immediately if the variables\n * have not changed.\n *\n * Note: the promise will return null immediately if the query is not active\n * (there are no subscribers).\n *\n * @param variables - The new set of variables. If there are missing variables,\n * the previous values of those variables will be used.\n */\n public setVariables(\n variables: TVariables\n ): Promise> | void> {\n if (equal(this.variables, variables)) {\n // If we have no observers, then we don't actually want to make a network\n // request. As soon as someone observes the query, the request will kick\n // off. For now, we just store any changes. (See #1077)\n return this.observers.size ? this.result() : Promise.resolve();\n }\n\n this.options.variables = variables;\n\n // See comment above\n if (!this.observers.size) {\n return Promise.resolve();\n }\n\n return this.reobserve(\n {\n // Reset options.fetchPolicy to its original value.\n fetchPolicy: this.options.initialFetchPolicy,\n variables,\n },\n NetworkStatus.setVariables\n );\n }\n\n /**\n * A function that enables you to update the query's cached result without executing a followup GraphQL operation.\n *\n * See [using updateQuery and updateFragment](https://www.apollographql.com/docs/react/caching/cache-interaction/#using-updatequery-and-updatefragment) for additional information.\n */\n public updateQuery(mapFn: UpdateQueryMapFn): void {\n const { queryManager } = this;\n const { result, complete } = queryManager.cache.diff({\n query: this.options.query,\n variables: this.variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n const newResult = mapFn(\n result! as Unmasked,\n {\n variables: this.variables,\n complete: !!complete,\n previousData: result,\n } as UpdateQueryOptions\n );\n\n if (newResult) {\n queryManager.cache.writeQuery({\n query: this.options.query,\n data: newResult,\n variables: this.variables,\n });\n\n queryManager.broadcastQueries();\n }\n }\n\n /**\n * A function that instructs the query to begin re-executing at a specified interval (in milliseconds).\n */\n public startPolling(pollInterval: number) {\n this.options.pollInterval = pollInterval;\n this.updatePolling();\n }\n\n /**\n * A function that instructs the query to stop polling after a previous call to `startPolling`.\n */\n public stopPolling() {\n this.options.pollInterval = 0;\n this.updatePolling();\n }\n\n // Update options.fetchPolicy according to options.nextFetchPolicy.\n private applyNextFetchPolicy(\n reason: NextFetchPolicyContext[\"reason\"],\n // It's possible to use this method to apply options.nextFetchPolicy to\n // options.fetchPolicy even if options !== this.options, though that happens\n // most often when the options are temporary, used for only one request and\n // then thrown away, so nextFetchPolicy may not end up mattering.\n options: WatchQueryOptions\n ) {\n if (options.nextFetchPolicy) {\n const { fetchPolicy = \"cache-first\", initialFetchPolicy = fetchPolicy } =\n options;\n\n if (fetchPolicy === \"standby\") {\n // Do nothing, leaving options.fetchPolicy unchanged.\n } else if (typeof options.nextFetchPolicy === \"function\") {\n // When someone chooses \"cache-and-network\" or \"network-only\" as their\n // initial FetchPolicy, they often do not want future cache updates to\n // trigger unconditional network requests, which is what repeatedly\n // applying the \"cache-and-network\" or \"network-only\" policies would\n // seem to imply. Instead, when the cache reports an update after the\n // initial network request, it may be desirable for subsequent network\n // requests to be triggered only if the cache result is incomplete. To\n // that end, the options.nextFetchPolicy option provides an easy way to\n // update options.fetchPolicy after the initial network request, without\n // having to call observableQuery.setOptions.\n options.fetchPolicy = options.nextFetchPolicy(fetchPolicy, {\n reason,\n options,\n observable: this,\n initialFetchPolicy,\n });\n } else if (reason === \"variables-changed\") {\n options.fetchPolicy = initialFetchPolicy;\n } else {\n options.fetchPolicy = options.nextFetchPolicy;\n }\n }\n\n return options.fetchPolicy;\n }\n\n private fetch(\n options: WatchQueryOptions,\n newNetworkStatus?: NetworkStatus,\n query?: DocumentNode\n ) {\n // TODO Make sure we update the networkStatus (and infer fetchVariables)\n // before actually committing to the fetch.\n this.queryManager.setObservableQuery(this);\n return this.queryManager[\"fetchConcastWithInfo\"](\n this.queryId,\n options,\n newNetworkStatus,\n query\n );\n }\n\n // Turns polling on or off based on this.options.pollInterval.\n private updatePolling() {\n // Avoid polling in SSR mode\n if (this.queryManager.ssrMode) {\n return;\n }\n\n const {\n pollingInfo,\n options: { pollInterval },\n } = this;\n\n if (!pollInterval || !this.hasObservers()) {\n if (pollingInfo) {\n clearTimeout(pollingInfo.timeout);\n delete this.pollingInfo;\n }\n return;\n }\n\n if (pollingInfo && pollingInfo.interval === pollInterval) {\n return;\n }\n\n invariant(\n pollInterval,\n \"Attempted to start a polling query without a polling interval.\"\n );\n\n const info = pollingInfo || (this.pollingInfo = {} as any);\n info.interval = pollInterval;\n\n const maybeFetch = () => {\n if (this.pollingInfo) {\n if (\n !isNetworkRequestInFlight(this.queryInfo.networkStatus) &&\n !this.options.skipPollAttempt?.()\n ) {\n this.reobserve(\n {\n // Most fetchPolicy options don't make sense to use in a polling context, as\n // users wouldn't want to be polling the cache directly. However, network-only and\n // no-cache are both useful for when the user wants to control whether or not the\n // polled results are written to the cache.\n fetchPolicy:\n this.options.initialFetchPolicy === \"no-cache\" ?\n \"no-cache\"\n : \"network-only\",\n },\n NetworkStatus.poll\n ).then(poll, poll);\n } else {\n poll();\n }\n }\n };\n\n const poll = () => {\n const info = this.pollingInfo;\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch, info.interval);\n }\n };\n\n poll();\n }\n\n private updateLastResult(\n newResult: ApolloQueryResult,\n variables = this.variables\n ) {\n let error: ApolloError | undefined = this.getLastError();\n // Preserve this.last.error unless the variables have changed.\n if (error && this.last && !equal(variables, this.last.variables)) {\n error = void 0;\n }\n return (this.last = {\n result:\n this.queryManager.assumeImmutableResults ?\n newResult\n : cloneDeep(newResult),\n variables,\n ...(error ? { error } : null),\n });\n }\n\n public reobserveAsConcast(\n newOptions?: Partial>,\n newNetworkStatus?: NetworkStatus\n ): Concast> {\n this.isTornDown = false;\n\n const useDisposableConcast =\n // Refetching uses a disposable Concast to allow refetches using different\n // options/variables, without permanently altering the options of the\n // original ObservableQuery.\n newNetworkStatus === NetworkStatus.refetch ||\n // The fetchMore method does not actually call the reobserve method, but,\n // if it did, it would definitely use a disposable Concast.\n newNetworkStatus === NetworkStatus.fetchMore ||\n // Polling uses a disposable Concast so the polling options (which force\n // fetchPolicy to be \"network-only\" or \"no-cache\") won't override the original options.\n newNetworkStatus === NetworkStatus.poll;\n\n // Save the old variables, since Object.assign may modify them below.\n const oldVariables = this.options.variables;\n const oldFetchPolicy = this.options.fetchPolicy;\n\n const mergedOptions = compact(this.options, newOptions || {});\n const options =\n useDisposableConcast ?\n // Disposable Concast fetches receive a shallow copy of this.options\n // (merged with newOptions), leaving this.options unmodified.\n mergedOptions\n : assign(this.options, mergedOptions);\n\n // Don't update options.query with the transformed query to avoid\n // overwriting this.options.query when we aren't using a disposable concast.\n // We want to ensure we can re-run the custom document transforms the next\n // time a request is made against the original query.\n const query = this.transformDocument(options.query);\n\n this.lastQuery = query;\n\n if (!useDisposableConcast) {\n // We can skip calling updatePolling if we're not changing this.options.\n this.updatePolling();\n\n // Reset options.fetchPolicy to its original value when variables change,\n // unless a new fetchPolicy was provided by newOptions.\n if (\n newOptions &&\n newOptions.variables &&\n !equal(newOptions.variables, oldVariables) &&\n // Don't mess with the fetchPolicy if it's currently \"standby\".\n options.fetchPolicy !== \"standby\" &&\n // If we're changing the fetchPolicy anyway, don't try to change it here\n // using applyNextFetchPolicy. The explicit options.fetchPolicy wins.\n (options.fetchPolicy === oldFetchPolicy ||\n // A `nextFetchPolicy` function has even higher priority, though,\n // so in that case `applyNextFetchPolicy` must be called.\n typeof options.nextFetchPolicy === \"function\")\n ) {\n this.applyNextFetchPolicy(\"variables-changed\", options);\n if (newNetworkStatus === void 0) {\n newNetworkStatus = NetworkStatus.setVariables;\n }\n }\n }\n\n this.waitForOwnResult &&= skipCacheDataFor(options.fetchPolicy);\n const finishWaitingForOwnResult = () => {\n if (this.concast === concast) {\n this.waitForOwnResult = false;\n }\n };\n\n const variables = options.variables && { ...options.variables };\n const { concast, fromLink } = this.fetch(options, newNetworkStatus, query);\n const observer: Observer> = {\n next: (result) => {\n if (equal(this.variables, variables)) {\n finishWaitingForOwnResult();\n this.reportResult(result, variables);\n }\n },\n error: (error) => {\n if (equal(this.variables, variables)) {\n // Coming from `getResultsFromLink`, `error` here should always be an `ApolloError`.\n // However, calling `concast.cancel` can inject another type of error, so we have to\n // wrap it again here.\n if (!isApolloError(error)) {\n error = new ApolloError({ networkError: error });\n }\n finishWaitingForOwnResult();\n this.reportError(error, variables);\n }\n },\n };\n\n if (!useDisposableConcast && (fromLink || !this.concast)) {\n // We use the {add,remove}Observer methods directly to avoid wrapping\n // observer with an unnecessary SubscriptionObserver object.\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n }\n\n this.concast = concast;\n this.observer = observer;\n }\n\n concast.addObserver(observer);\n\n return concast;\n }\n\n public reobserve(\n newOptions?: Partial>,\n newNetworkStatus?: NetworkStatus\n ): Promise>> {\n return preventUnhandledRejection(\n this.reobserveAsConcast(newOptions, newNetworkStatus).promise.then(\n this.maskResult as TODO\n )\n );\n }\n\n public resubscribeAfterError(\n onNext: (value: ApolloQueryResult>) => void,\n onError?: (error: any) => void,\n onComplete?: () => void\n ): ObservableSubscription;\n\n public resubscribeAfterError(\n observer: Observer>\n ): ObservableSubscription;\n\n public resubscribeAfterError(...args: [any, any?, any?]) {\n // If `lastError` is set in the current when the subscription is re-created,\n // the subscription will immediately receive the error, which will\n // cause it to terminate again. To avoid this, we first clear\n // the last error/result from the `observableQuery` before re-starting\n // the subscription, and restore the last value afterwards so that the\n // subscription has a chance to stay open.\n const last = this.last;\n this.resetLastResults();\n\n const subscription = this.subscribe(...args);\n this.last = last;\n\n return subscription;\n }\n\n // (Re)deliver the current result to this.observers without applying fetch\n // policies or making network requests.\n private observe() {\n this.reportResult(\n // Passing false is important so that this.getCurrentResult doesn't\n // save the fetchMore result as this.lastResult, causing it to be\n // ignored due to the this.isDifferentFromLastResult check in\n // this.reportResult.\n this.getCurrentFullResult(false),\n this.variables\n );\n }\n\n private reportResult(\n result: ApolloQueryResult,\n variables: TVariables | undefined\n ) {\n const lastError = this.getLastError();\n const isDifferent = this.isDifferentFromLastResult(result, variables);\n // Update the last result even when isDifferentFromLastResult returns false,\n // because the query may be using the @nonreactive directive, and we want to\n // save the the latest version of any nonreactive subtrees (in case\n // getCurrentResult is called), even though we skip broadcasting changes.\n if (lastError || !result.partial || this.options.returnPartialData) {\n this.updateLastResult(result, variables);\n }\n if (lastError || isDifferent) {\n iterateObserversSafely(this.observers, \"next\", this.maskResult(result));\n }\n }\n\n private reportError(error: ApolloError, variables: TVariables | undefined) {\n // Since we don't get the current result on errors, only the error, we\n // must mirror the updates that occur in QueryStore.markQueryError here\n const errorResult = {\n ...this.getLastResult(),\n error,\n errors: error.graphQLErrors,\n networkStatus: NetworkStatus.error,\n loading: false,\n } as ApolloQueryResult;\n\n this.updateLastResult(errorResult, variables);\n\n iterateObserversSafely(this.observers, \"error\", (this.last!.error = error));\n }\n\n public hasObservers() {\n return this.observers.size > 0;\n }\n\n private tearDownQuery() {\n if (this.isTornDown) return;\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n delete this.concast;\n delete this.observer;\n }\n\n this.stopPolling();\n // stop all active GraphQL subscriptions\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n this.subscriptions.clear();\n this.queryManager.stopQuery(this.queryId);\n this.observers.clear();\n this.isTornDown = true;\n }\n\n private transformDocument(document: DocumentNode) {\n return this.queryManager.transform(document);\n }\n\n private maskResult(\n result: ApolloQueryResult\n ): ApolloQueryResult> {\n return result && \"data\" in result ?\n {\n ...result,\n data: this.queryManager.maskOperation({\n document: this.query,\n data: result.data,\n fetchPolicy: this.options.fetchPolicy,\n id: this.queryId,\n }),\n }\n : result;\n }\n}\n\n// Necessary because the ObservableQuery constructor has a different\n// signature than the Observable constructor.\nfixObservableSubclass(ObservableQuery);\n\n// Reobserve with fetchPolicy effectively set to \"cache-first\", triggering\n// delivery of any new data from the cache, possibly falling back to the network\n// if any cache data are missing. This allows _complete_ cache results to be\n// delivered without also kicking off unnecessary network requests when\n// this.options.fetchPolicy is \"cache-and-network\" or \"network-only\". When\n// this.options.fetchPolicy is any other policy (\"cache-first\", \"cache-only\",\n// \"standby\", or \"no-cache\"), we call this.reobserve() as usual.\nexport function reobserveCacheFirst(\n obsQuery: ObservableQuery\n) {\n const { fetchPolicy, nextFetchPolicy } = obsQuery.options;\n\n if (fetchPolicy === \"cache-and-network\" || fetchPolicy === \"network-only\") {\n return obsQuery.reobserve({\n fetchPolicy: \"cache-first\",\n // Use a temporary nextFetchPolicy function that replaces itself with the\n // previous nextFetchPolicy value and returns the original fetchPolicy.\n nextFetchPolicy(\n this: WatchQueryOptions,\n currentFetchPolicy: WatchQueryFetchPolicy,\n context: NextFetchPolicyContext\n ) {\n // Replace this nextFetchPolicy function in the options object with the\n // original this.options.nextFetchPolicy value.\n this.nextFetchPolicy = nextFetchPolicy;\n // If the original nextFetchPolicy value was a function, give it a\n // chance to decide what happens here.\n if (typeof this.nextFetchPolicy === \"function\") {\n return this.nextFetchPolicy(currentFetchPolicy, context);\n }\n // Otherwise go back to the original this.options.fetchPolicy.\n return fetchPolicy!;\n },\n });\n }\n\n return obsQuery.reobserve();\n}\n\nfunction defaultSubscriptionObserverErrorCallback(error: ApolloError) {\n invariant.error(\"Unhandled error\", error.message, error.stack);\n}\n\nexport function logMissingFieldErrors(\n missing: MissingFieldError[] | MissingTree | undefined\n) {\n if (__DEV__ && missing) {\n invariant.debug(`Missing cache result fields: %o`, missing);\n }\n}\n\nfunction skipCacheDataFor(\n fetchPolicy?: WatchQueryFetchPolicy /* `undefined` would mean `\"cache-first\"` */\n) {\n return (\n fetchPolicy === \"network-only\" ||\n fetchPolicy === \"no-cache\" ||\n fetchPolicy === \"standby\"\n );\n}\n","export function preventUnhandledRejection(promise: Promise): Promise {\n promise.catch(() => {});\n\n return promise;\n}\n","import type { DocumentNode, GraphQLFormattedError } from \"graphql\";\nimport { equal } from \"@wry/equality\";\n\nimport type { Cache, ApolloCache } from \"../cache/index.js\";\nimport { DeepMerger } from \"../utilities/index.js\";\nimport { mergeIncrementalData } from \"../utilities/index.js\";\nimport type { WatchQueryOptions, ErrorPolicy } from \"./watchQueryOptions.js\";\nimport type { ObservableQuery } from \"./ObservableQuery.js\";\nimport { reobserveCacheFirst } from \"./ObservableQuery.js\";\nimport type { QueryListener } from \"./types.js\";\nimport type { FetchResult } from \"../link/core/index.js\";\nimport {\n isNonEmptyArray,\n graphQLResultHasError,\n canUseWeakMap,\n} from \"../utilities/index.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport type { ApolloError } from \"../errors/index.js\";\nimport type { QueryManager } from \"./QueryManager.js\";\nimport type { Unmasked } from \"../masking/index.js\";\n\nexport type QueryStoreValue = Pick<\n QueryInfo,\n \"variables\" | \"networkStatus\" | \"networkError\" | \"graphQLErrors\"\n>;\n\nexport const enum CacheWriteBehavior {\n FORBID,\n OVERWRITE,\n MERGE,\n}\n\nconst destructiveMethodCounts = new (canUseWeakMap ? WeakMap : Map)<\n ApolloCache,\n number\n>();\n\nfunction wrapDestructiveCacheMethod(\n cache: ApolloCache,\n methodName: \"evict\" | \"modify\" | \"reset\"\n) {\n const original = cache[methodName];\n if (typeof original === \"function\") {\n // @ts-expect-error this is just too generic to be typed correctly\n cache[methodName] = function () {\n destructiveMethodCounts.set(\n cache,\n // The %1e15 allows the count to wrap around to 0 safely every\n // quadrillion evictions, so there's no risk of overflow. To be\n // clear, this is more of a pedantic principle than something\n // that matters in any conceivable practical scenario.\n (destructiveMethodCounts.get(cache)! + 1) % 1e15\n );\n // @ts-expect-error this is just too generic to be typed correctly\n return original.apply(this, arguments);\n };\n }\n}\n\nfunction cancelNotifyTimeout(info: QueryInfo) {\n if (info[\"notifyTimeout\"]) {\n clearTimeout(info[\"notifyTimeout\"]);\n info[\"notifyTimeout\"] = void 0;\n }\n}\n\n// A QueryInfo object represents a single query managed by the\n// QueryManager, which tracks all QueryInfo objects by queryId in its\n// this.queries Map. QueryInfo objects store the latest results and errors\n// for the given query, and are responsible for reporting those results to\n// the corresponding ObservableQuery, via the QueryInfo.notify method.\n// Results are reported asynchronously whenever setDiff marks the\n// QueryInfo object as dirty, though a call to the QueryManager's\n// broadcastQueries method may trigger the notification before it happens\n// automatically. This class used to be a simple interface type without\n// any field privacy or meaningful methods, which is why it still has so\n// many public fields. The effort to lock down and simplify the QueryInfo\n// interface is ongoing, and further improvements are welcome.\nexport class QueryInfo {\n listeners = new Set();\n document: DocumentNode | null = null;\n lastRequestId = 1;\n variables?: Record;\n networkStatus?: NetworkStatus;\n networkError?: Error | null;\n graphQLErrors?: ReadonlyArray;\n stopped = false;\n\n private cache: ApolloCache;\n\n constructor(\n queryManager: QueryManager,\n public readonly queryId = queryManager.generateQueryId()\n ) {\n const cache = (this.cache = queryManager.cache);\n\n // Track how often cache.evict is called, since we want eviction to\n // override the feud-stopping logic in the markResult method, by\n // causing shouldWrite to return true. Wrapping the cache.evict method\n // is a bit of a hack, but it saves us from having to make eviction\n // counting an official part of the ApolloCache API.\n if (!destructiveMethodCounts.has(cache)) {\n destructiveMethodCounts.set(cache, 0);\n wrapDestructiveCacheMethod(cache, \"evict\");\n wrapDestructiveCacheMethod(cache, \"modify\");\n wrapDestructiveCacheMethod(cache, \"reset\");\n }\n }\n\n public init(query: {\n document: DocumentNode;\n variables: Record | undefined;\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus?: NetworkStatus;\n observableQuery?: ObservableQuery;\n lastRequestId?: number;\n }): this {\n let networkStatus = query.networkStatus || NetworkStatus.loading;\n if (\n this.variables &&\n this.networkStatus !== NetworkStatus.loading &&\n !equal(this.variables, query.variables)\n ) {\n networkStatus = NetworkStatus.setVariables;\n }\n\n if (!equal(query.variables, this.variables)) {\n this.lastDiff = void 0;\n }\n\n Object.assign(this, {\n document: query.document,\n variables: query.variables,\n networkError: null,\n graphQLErrors: this.graphQLErrors || [],\n networkStatus,\n });\n\n if (query.observableQuery) {\n this.setObservableQuery(query.observableQuery);\n }\n\n if (query.lastRequestId) {\n this.lastRequestId = query.lastRequestId;\n }\n\n return this;\n }\n\n private dirty: boolean = false;\n\n private notifyTimeout?: ReturnType;\n\n reset() {\n cancelNotifyTimeout(this);\n this.dirty = false;\n }\n\n resetDiff() {\n this.lastDiff = void 0;\n }\n\n getDiff(): Cache.DiffResult {\n const options = this.getDiffOptions();\n\n if (this.lastDiff && equal(options, this.lastDiff.options)) {\n return this.lastDiff.diff;\n }\n\n this.updateWatch(this.variables);\n\n const oq = this.observableQuery;\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return { complete: false };\n }\n\n const diff = this.cache.diff(options);\n this.updateLastDiff(diff, options);\n return diff;\n }\n\n private lastDiff?: {\n diff: Cache.DiffResult;\n options: Cache.DiffOptions;\n };\n\n private updateLastDiff(\n diff: Cache.DiffResult | null,\n options?: Cache.DiffOptions\n ) {\n this.lastDiff =\n diff ?\n {\n diff,\n options: options || this.getDiffOptions(),\n }\n : void 0;\n }\n\n private getDiffOptions(variables = this.variables): Cache.DiffOptions {\n return {\n query: this.document!,\n variables,\n returnPartialData: true,\n optimistic: true,\n canonizeResults: this.observableQuery?.options.canonizeResults,\n };\n }\n\n setDiff(diff: Cache.DiffResult | null) {\n const oldDiff = this.lastDiff && this.lastDiff.diff;\n\n // If we are trying to deliver an incomplete cache result, we avoid\n // reporting it if the query has errored, otherwise we let the broadcast try\n // and repair the partial result by refetching the query. This check avoids\n // a situation where a query that errors and another succeeds with\n // overlapping data does not report the partial data result to the errored\n // query.\n //\n // See https://github.com/apollographql/apollo-client/issues/11400 for more\n // information on this issue.\n if (diff && !diff.complete && this.observableQuery?.getLastError()) {\n return;\n }\n\n this.updateLastDiff(diff);\n\n if (!this.dirty && !equal(oldDiff && oldDiff.result, diff && diff.result)) {\n this.dirty = true;\n if (!this.notifyTimeout) {\n this.notifyTimeout = setTimeout(() => this.notify(), 0);\n }\n }\n }\n\n public readonly observableQuery: ObservableQuery | null = null;\n private oqListener?: QueryListener;\n\n setObservableQuery(oq: ObservableQuery | null) {\n if (oq === this.observableQuery) return;\n\n if (this.oqListener) {\n this.listeners.delete(this.oqListener);\n }\n\n (this as any).observableQuery = oq;\n\n if (oq) {\n oq[\"queryInfo\"] = this;\n this.listeners.add(\n (this.oqListener = () => {\n const diff = this.getDiff();\n if (diff.fromOptimisticTransaction) {\n // If this diff came from an optimistic transaction, deliver the\n // current cache data to the ObservableQuery, but don't perform a\n // reobservation, since oq.reobserveCacheFirst might make a network\n // request, and we never want to trigger network requests in the\n // middle of optimistic updates.\n oq[\"observe\"]();\n } else {\n // Otherwise, make the ObservableQuery \"reobserve\" the latest data\n // using a temporary fetch policy of \"cache-first\", so complete cache\n // results have a chance to be delivered without triggering additional\n // network requests, even when options.fetchPolicy is \"network-only\"\n // or \"cache-and-network\". All other fetch policies are preserved by\n // this method, and are handled by calling oq.reobserve(). If this\n // reobservation is spurious, isDifferentFromLastResult still has a\n // chance to catch it before delivery to ObservableQuery subscribers.\n reobserveCacheFirst(oq);\n }\n })\n );\n } else {\n delete this.oqListener;\n }\n }\n\n notify() {\n cancelNotifyTimeout(this);\n\n if (this.shouldNotify()) {\n this.listeners.forEach((listener) => listener(this));\n }\n\n this.dirty = false;\n }\n\n private shouldNotify() {\n if (!this.dirty || !this.listeners.size) {\n return false;\n }\n\n if (isNetworkRequestInFlight(this.networkStatus) && this.observableQuery) {\n const { fetchPolicy } = this.observableQuery.options;\n if (fetchPolicy !== \"cache-only\" && fetchPolicy !== \"cache-and-network\") {\n return false;\n }\n }\n\n return true;\n }\n\n public stop() {\n if (!this.stopped) {\n this.stopped = true;\n\n // Cancel the pending notify timeout\n this.reset();\n\n this.cancel();\n // Revert back to the no-op version of cancel inherited from\n // QueryInfo.prototype.\n this.cancel = QueryInfo.prototype.cancel;\n\n const oq = this.observableQuery;\n if (oq) oq.stopPolling();\n }\n }\n\n // This method is a no-op by default, until/unless overridden by the\n // updateWatch method.\n private cancel() {}\n\n private lastWatch?: Cache.WatchOptions;\n\n private updateWatch(variables = this.variables) {\n const oq = this.observableQuery;\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return;\n }\n\n const watchOptions: Cache.WatchOptions = {\n // Although this.getDiffOptions returns Cache.DiffOptions instead of\n // Cache.WatchOptions, all the overlapping options should be the same, so\n // we can reuse getDiffOptions here, for consistency.\n ...this.getDiffOptions(variables),\n watcher: this,\n callback: (diff) => this.setDiff(diff),\n };\n\n if (!this.lastWatch || !equal(watchOptions, this.lastWatch)) {\n this.cancel();\n this.cancel = this.cache.watch((this.lastWatch = watchOptions));\n }\n }\n\n private lastWrite?: {\n result: FetchResult;\n variables: WatchQueryOptions[\"variables\"];\n dmCount: number | undefined;\n };\n\n public resetLastWrite() {\n this.lastWrite = void 0;\n }\n\n private shouldWrite(\n result: FetchResult,\n variables: WatchQueryOptions[\"variables\"]\n ) {\n const { lastWrite } = this;\n return !(\n lastWrite &&\n // If cache.evict has been called since the last time we wrote this\n // data into the cache, there's a chance writing this result into\n // the cache will repair what was evicted.\n lastWrite.dmCount === destructiveMethodCounts.get(this.cache) &&\n equal(variables, lastWrite.variables) &&\n equal(result.data, lastWrite.result.data)\n );\n }\n\n public markResult(\n result: FetchResult,\n document: DocumentNode,\n options: Pick<\n WatchQueryOptions,\n \"variables\" | \"fetchPolicy\" | \"errorPolicy\"\n >,\n cacheWriteBehavior: CacheWriteBehavior\n ) {\n const merger = new DeepMerger();\n const graphQLErrors =\n isNonEmptyArray(result.errors) ? result.errors.slice(0) : [];\n\n // Cancel the pending notify timeout (if it exists) to prevent extraneous network\n // requests. To allow future notify timeouts, diff and dirty are reset as well.\n this.reset();\n\n if (\"incremental\" in result && isNonEmptyArray(result.incremental)) {\n const mergedData = mergeIncrementalData(this.getDiff().result, result);\n result.data = mergedData;\n\n // Detect the first chunk of a deferred query and merge it with existing\n // cache data. This ensures a `cache-first` fetch policy that returns\n // partial cache data or a `cache-and-network` fetch policy that already\n // has full data in the cache does not complain when trying to merge the\n // initial deferred server data with existing cache data.\n } else if (\"hasNext\" in result && result.hasNext) {\n const diff = this.getDiff();\n result.data = merger.merge(diff.result, result.data);\n }\n\n this.graphQLErrors = graphQLErrors;\n\n if (options.fetchPolicy === \"no-cache\") {\n this.updateLastDiff(\n { result: result.data, complete: true },\n this.getDiffOptions(options.variables)\n );\n } else if (cacheWriteBehavior !== CacheWriteBehavior.FORBID) {\n if (shouldWriteResult(result, options.errorPolicy)) {\n // Using a transaction here so we have a chance to read the result\n // back from the cache before the watch callback fires as a result\n // of writeQuery, so we can store the new diff quietly and ignore\n // it when we receive it redundantly from the watch callback.\n this.cache.performTransaction((cache) => {\n if (this.shouldWrite(result, options.variables)) {\n cache.writeQuery({\n query: document,\n data: result.data as Unmasked,\n variables: options.variables,\n overwrite: cacheWriteBehavior === CacheWriteBehavior.OVERWRITE,\n });\n\n this.lastWrite = {\n result,\n variables: options.variables,\n dmCount: destructiveMethodCounts.get(this.cache),\n };\n } else {\n // If result is the same as the last result we received from\n // the network (and the variables match too), avoid writing\n // result into the cache again. The wisdom of skipping this\n // cache write is far from obvious, since any cache write\n // could be the one that puts the cache back into a desired\n // state, fixing corruption or missing data. However, if we\n // always write every network result into the cache, we enable\n // feuds between queries competing to update the same data in\n // incompatible ways, which can lead to an endless cycle of\n // cache broadcasts and useless network requests. As with any\n // feud, eventually one side must step back from the brink,\n // letting the other side(s) have the last word(s). There may\n // be other points where we could break this cycle, such as\n // silencing the broadcast for cache.writeQuery (not a good\n // idea, since it just delays the feud a bit) or somehow\n // avoiding the network request that just happened (also bad,\n // because the server could return useful new data). All\n // options considered, skipping this cache write seems to be\n // the least damaging place to break the cycle, because it\n // reflects the intuition that we recently wrote this exact\n // result into the cache, so the cache *should* already/still\n // contain this data. If some other query has clobbered that\n // data in the meantime, that's too bad, but there will be no\n // winners if every query blindly reverts to its own version\n // of the data. This approach also gives the network a chance\n // to return new data, which will be written into the cache as\n // usual, notifying only those queries that are directly\n // affected by the cache updates, as usual. In the future, an\n // even more sophisticated cache could perhaps prevent or\n // mitigate the clobbering somehow, but that would make this\n // particular cache write even less important, and thus\n // skipping it would be even safer than it is today.\n if (this.lastDiff && this.lastDiff.diff.complete) {\n // Reuse data from the last good (complete) diff that we\n // received, when possible.\n result.data = this.lastDiff.diff.result;\n return;\n }\n // If the previous this.diff was incomplete, fall through to\n // re-reading the latest data with cache.diff, below.\n }\n\n const diffOptions = this.getDiffOptions(options.variables);\n const diff = cache.diff(diffOptions);\n\n // In case the QueryManager stops this QueryInfo before its\n // results are delivered, it's important to avoid restarting the\n // cache watch when markResult is called. We also avoid updating\n // the watch if we are writing a result that doesn't match the current\n // variables to avoid race conditions from broadcasting the wrong\n // result.\n if (!this.stopped && equal(this.variables, options.variables)) {\n // Any time we're about to update this.diff, we need to make\n // sure we've started watching the cache.\n this.updateWatch(options.variables);\n }\n\n // If we're allowed to write to the cache, and we can read a\n // complete result from the cache, update result.data to be the\n // result from the cache, rather than the raw network result.\n // Set without setDiff to avoid triggering a notify call, since\n // we have other ways of notifying for this result.\n this.updateLastDiff(diff, diffOptions);\n if (diff.complete) {\n result.data = diff.result;\n }\n });\n } else {\n this.lastWrite = void 0;\n }\n }\n }\n\n public markReady() {\n this.networkError = null;\n return (this.networkStatus = NetworkStatus.ready);\n }\n\n public markError(error: ApolloError) {\n this.networkStatus = NetworkStatus.error;\n this.lastWrite = void 0;\n\n this.reset();\n\n if (error.graphQLErrors) {\n this.graphQLErrors = error.graphQLErrors;\n }\n\n if (error.networkError) {\n this.networkError = error.networkError;\n }\n\n return error;\n }\n}\n\nexport function shouldWriteResult(\n result: FetchResult,\n errorPolicy: ErrorPolicy = \"none\"\n) {\n const ignoreErrors = errorPolicy === \"ignore\" || errorPolicy === \"all\";\n let writeWithErrors = !graphQLResultHasError(result);\n if (!writeWithErrors && ignoreErrors && result.data) {\n writeWithErrors = true;\n }\n return writeWithErrors;\n}\n","import { Slot } from \"optimism\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { canUseWeakMap, canUseWeakSet } from \"../utilities/index.js\";\n\nexport const MapImpl = canUseWeakMap ? WeakMap : Map;\nexport const SetImpl = canUseWeakSet ? WeakSet : Set;\n\n// Contextual slot that allows us to disable accessor warnings on fields when in\n// migrate mode.\n/** @internal */\nexport const disableWarningsSlot = new Slot();\n\nlet issuedWarning = false;\nexport function warnOnImproperCacheImplementation() {\n if (!issuedWarning) {\n issuedWarning = true;\n invariant.warn(\n \"The configured cache does not support data masking which effectively disables it. Please use a cache that supports data masking or disable data masking to silence this warning.\"\n );\n }\n}\n","import { Kind } from \"graphql\";\nimport type { FragmentDefinitionNode, SelectionSetNode } from \"graphql\";\nimport {\n getFragmentMaskMode,\n maybeDeepFreeze,\n resultKeyNameFromField,\n} from \"../utilities/index.js\";\nimport type { FragmentMap } from \"../utilities/index.js\";\nimport type { ApolloCache } from \"../cache/index.js\";\nimport { disableWarningsSlot } from \"./utils.js\";\nimport { invariant } from \"../utilities/globals/index.js\";\n\ninterface MaskingContext {\n operationType: \"query\" | \"mutation\" | \"subscription\" | \"fragment\";\n operationName: string | undefined;\n fragmentMap: FragmentMap;\n cache: ApolloCache;\n mutableTargets: WeakMap;\n knownChanged: WeakSet;\n}\n\nexport function maskDefinition(\n data: Record,\n selectionSet: SelectionSetNode,\n context: MaskingContext\n) {\n return disableWarningsSlot.withValue(true, () => {\n const masked = maskSelectionSet(data, selectionSet, context, false);\n\n if (Object.isFrozen(data)) {\n maybeDeepFreeze(masked);\n }\n return masked;\n });\n}\n\nfunction getMutableTarget(\n data: Record,\n mutableTargets: WeakMap\n): typeof data {\n if (mutableTargets.has(data)) {\n return mutableTargets.get(data);\n }\n\n const mutableTarget = Array.isArray(data) ? [] : Object.create(null);\n mutableTargets.set(data, mutableTarget);\n return mutableTarget;\n}\n\nfunction maskSelectionSet(\n data: any,\n selectionSet: SelectionSetNode,\n context: MaskingContext,\n migration: boolean,\n path?: string | undefined\n): typeof data {\n const { knownChanged } = context;\n const memo = getMutableTarget(data, context.mutableTargets);\n\n if (Array.isArray(data)) {\n for (const [index, item] of Array.from(data.entries())) {\n if (item === null) {\n memo[index] = null;\n continue;\n }\n\n const masked = maskSelectionSet(\n item,\n selectionSet,\n context,\n migration,\n __DEV__ ? `${path || \"\"}[${index}]` : void 0\n );\n if (knownChanged.has(masked)) {\n knownChanged.add(memo);\n }\n\n memo[index] = masked;\n }\n\n return knownChanged.has(memo) ? memo : data;\n }\n\n for (const selection of selectionSet.selections) {\n let value: any;\n\n // we later want to add acessor warnings to the final result\n // so we need a new object to add the accessor warning to\n if (migration) {\n knownChanged.add(memo);\n }\n\n if (selection.kind === Kind.FIELD) {\n const keyName = resultKeyNameFromField(selection);\n const childSelectionSet = selection.selectionSet;\n\n value = memo[keyName] || data[keyName];\n\n if (value === void 0) {\n continue;\n }\n\n if (childSelectionSet && value !== null) {\n const masked = maskSelectionSet(\n data[keyName],\n childSelectionSet,\n context,\n migration,\n __DEV__ ? `${path || \"\"}.${keyName}` : void 0\n );\n\n if (knownChanged.has(masked)) {\n value = masked;\n }\n }\n\n if (!__DEV__) {\n memo[keyName] = value;\n }\n if (__DEV__) {\n if (\n migration &&\n keyName !== \"__typename\" &&\n // either the field is not present in the memo object\n // or it has a `get` descriptor, not a `value` descriptor\n // => it is a warning accessor and we can overwrite it\n // with another accessor\n !Object.getOwnPropertyDescriptor(memo, keyName)?.value\n ) {\n Object.defineProperty(\n memo,\n keyName,\n getAccessorWarningDescriptor(\n keyName,\n value,\n path || \"\",\n context.operationName,\n context.operationType\n )\n );\n } else {\n delete memo[keyName];\n memo[keyName] = value;\n }\n }\n }\n\n if (\n selection.kind === Kind.INLINE_FRAGMENT &&\n (!selection.typeCondition ||\n context.cache.fragmentMatches!(selection, data.__typename))\n ) {\n value = maskSelectionSet(\n data,\n selection.selectionSet,\n context,\n migration,\n path\n );\n }\n\n if (selection.kind === Kind.FRAGMENT_SPREAD) {\n const fragmentName = selection.name.value;\n const fragment: FragmentDefinitionNode | null =\n context.fragmentMap[fragmentName] ||\n (context.fragmentMap[fragmentName] =\n context.cache.lookupFragment(fragmentName)!);\n invariant(\n fragment,\n \"Could not find fragment with name '%s'.\",\n fragmentName\n );\n\n const mode = getFragmentMaskMode(selection);\n\n if (mode !== \"mask\") {\n value = maskSelectionSet(\n data,\n fragment.selectionSet,\n context,\n mode === \"migrate\",\n path\n );\n }\n }\n\n if (knownChanged.has(value)) {\n knownChanged.add(memo);\n }\n }\n\n if (\"__typename\" in data && !(\"__typename\" in memo)) {\n memo.__typename = data.__typename;\n }\n\n // This check prevents cases where masked fields may accidentally be\n // returned as part of this object when the fragment also selects\n // additional fields from the same child selection.\n if (Object.keys(memo).length !== Object.keys(data).length) {\n knownChanged.add(memo);\n }\n\n return knownChanged.has(memo) ? memo : data;\n}\n\nfunction getAccessorWarningDescriptor(\n fieldName: string,\n value: any,\n path: string,\n operationName: string | undefined,\n operationType: string\n): PropertyDescriptor {\n let getValue = () => {\n if (disableWarningsSlot.getValue()) {\n return value;\n }\n\n invariant.warn(\n \"Accessing unmasked field on %s at path '%s'. This field will not be available when masking is enabled. Please read the field from the fragment instead.\",\n operationName ?\n `${operationType} '${operationName}'`\n : `anonymous ${operationType}`,\n `${path}.${fieldName}`.replace(/^\\./, \"\")\n );\n\n getValue = () => value;\n\n return value;\n };\n\n return {\n get() {\n return getValue();\n },\n set(newValue) {\n getValue = () => newValue;\n },\n enumerable: true,\n configurable: true,\n };\n}\n","import { Kind } from \"graphql\";\nimport type { FragmentDefinitionNode } from \"graphql\";\nimport type {\n ApolloCache,\n DocumentNode,\n TypedDocumentNode,\n} from \"../core/index.js\";\nimport {\n MapImpl,\n SetImpl,\n warnOnImproperCacheImplementation,\n} from \"./utils.js\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport equal from \"@wry/equality\";\nimport { maskDefinition } from \"./maskDefinition.js\";\nimport {\n createFragmentMap,\n getFragmentDefinitions,\n} from \"../utilities/index.js\";\n\n/** @internal */\nexport function maskFragment(\n data: TData,\n document: TypedDocumentNode | DocumentNode,\n cache: ApolloCache,\n fragmentName?: string\n): TData {\n if (!cache.fragmentMatches) {\n if (__DEV__) {\n warnOnImproperCacheImplementation();\n }\n\n return data;\n }\n\n const fragments = document.definitions.filter(\n (node): node is FragmentDefinitionNode =>\n node.kind === Kind.FRAGMENT_DEFINITION\n );\n\n if (typeof fragmentName === \"undefined\") {\n invariant(\n fragments.length === 1,\n `Found %s fragments. \\`fragmentName\\` must be provided when there is not exactly 1 fragment.`,\n fragments.length\n );\n fragmentName = fragments[0].name.value;\n }\n\n const fragment = fragments.find(\n (fragment) => fragment.name.value === fragmentName\n );\n\n invariant(\n !!fragment,\n `Could not find fragment with name \"%s\".`,\n fragmentName\n );\n\n if (data == null) {\n // Maintain the original `null` or `undefined` value\n return data;\n }\n\n if (equal(data, {})) {\n // Return early and skip the masking algorithm if we don't have any data\n // yet. This can happen when cache.diff returns an empty object which is\n // used from watchFragment.\n return data;\n }\n\n return maskDefinition(data, fragment.selectionSet, {\n operationType: \"fragment\",\n operationName: fragment.name.value,\n fragmentMap: createFragmentMap(getFragmentDefinitions(document)),\n cache,\n mutableTargets: new MapImpl(),\n knownChanged: new SetImpl(),\n });\n}\n","import { invariant, newInvariantError } from \"../utilities/globals/index.js\";\n\nimport type { DocumentNode } from \"graphql\";\n// TODO(brian): A hack until this issue is resolved (https://github.com/graphql/graphql-js/issues/3356)\ntype OperationTypeNode = any;\nimport { equal } from \"@wry/equality\";\n\nimport type { ApolloLink, FetchResult } from \"../link/core/index.js\";\nimport { execute } from \"../link/core/index.js\";\nimport {\n addNonReactiveToNamedFragments,\n defaultCacheSizes,\n hasDirectives,\n isExecutionPatchIncrementalResult,\n isExecutionPatchResult,\n isFullyUnmaskedOperation,\n removeDirectivesFromDocument,\n} from \"../utilities/index.js\";\nimport type { Cache, ApolloCache } from \"../cache/index.js\";\nimport { canonicalStringify } from \"../cache/index.js\";\n\nimport type {\n ObservableSubscription,\n ConcastSourcesArray,\n} from \"../utilities/index.js\";\nimport {\n getDefaultValues,\n getOperationDefinition,\n getOperationName,\n hasClientExports,\n graphQLResultHasError,\n getGraphQLErrorsFromResult,\n Observable,\n asyncMap,\n isNonEmptyArray,\n Concast,\n makeUniqueId,\n isDocumentNode,\n isNonNullObject,\n DocumentTransform,\n} from \"../utilities/index.js\";\nimport { mergeIncrementalData } from \"../utilities/common/incrementalResult.js\";\nimport {\n ApolloError,\n isApolloError,\n graphQLResultHasProtocolErrors,\n} from \"../errors/index.js\";\nimport type {\n QueryOptions,\n WatchQueryOptions,\n SubscriptionOptions,\n MutationOptions,\n ErrorPolicy,\n MutationFetchPolicy,\n WatchQueryFetchPolicy,\n} from \"./watchQueryOptions.js\";\nimport { ObservableQuery, logMissingFieldErrors } from \"./ObservableQuery.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport type {\n ApolloQueryResult,\n OperationVariables,\n MutationUpdaterFunction,\n OnQueryUpdated,\n InternalRefetchQueriesInclude,\n InternalRefetchQueriesOptions,\n InternalRefetchQueriesResult,\n InternalRefetchQueriesMap,\n DefaultContext,\n} from \"./types.js\";\nimport type { LocalState } from \"./LocalState.js\";\n\nimport type { QueryStoreValue } from \"./QueryInfo.js\";\nimport {\n QueryInfo,\n shouldWriteResult,\n CacheWriteBehavior,\n} from \"./QueryInfo.js\";\nimport type { ApolloErrorOptions } from \"../errors/index.js\";\nimport { PROTOCOL_ERRORS_SYMBOL } from \"../errors/index.js\";\nimport { print } from \"../utilities/index.js\";\nimport type { IgnoreModifier } from \"../cache/core/types/common.js\";\nimport type { TODO } from \"../utilities/types/TODO.js\";\n\nconst { hasOwnProperty } = Object.prototype;\n\nconst IGNORE: IgnoreModifier = Object.create(null);\n\ninterface MutationStoreValue {\n mutation: DocumentNode;\n variables: Record;\n loading: boolean;\n error: Error | null;\n}\n\ntype UpdateQueries = MutationOptions[\"updateQueries\"];\n\ninterface TransformCacheEntry {\n hasClientExports: boolean;\n hasForcedResolvers: boolean;\n hasNonreactiveDirective: boolean;\n nonReactiveQuery: DocumentNode;\n clientQuery: DocumentNode | null;\n serverQuery: DocumentNode | null;\n defaultVars: OperationVariables;\n asQuery: DocumentNode;\n}\n\nimport type { DefaultOptions } from \"./ApolloClient.js\";\nimport { Trie } from \"@wry/trie\";\nimport { AutoCleanedWeakCache, cacheSizes } from \"../utilities/index.js\";\nimport { maskFragment, maskOperation } from \"../masking/index.js\";\nimport type { MaybeMasked, Unmasked } from \"../masking/index.js\";\n\ninterface MaskFragmentOptions {\n fragment: DocumentNode;\n data: TData;\n fragmentName?: string;\n}\n\ninterface MaskOperationOptions {\n document: DocumentNode;\n data: TData;\n id: string;\n fetchPolicy?: WatchQueryFetchPolicy;\n}\n\nexport interface QueryManagerOptions {\n cache: ApolloCache;\n link: ApolloLink;\n defaultOptions: DefaultOptions;\n documentTransform: DocumentTransform | null | undefined;\n queryDeduplication: boolean;\n onBroadcast: undefined | (() => void);\n ssrMode: boolean;\n clientAwareness: Record;\n localState: LocalState;\n assumeImmutableResults: boolean;\n defaultContext: Partial | undefined;\n dataMasking: boolean;\n}\n\nexport class QueryManager {\n public cache: ApolloCache;\n public link: ApolloLink;\n public defaultOptions: DefaultOptions;\n\n public readonly assumeImmutableResults: boolean;\n public readonly documentTransform: DocumentTransform;\n public readonly ssrMode: boolean;\n public readonly defaultContext: Partial;\n public readonly dataMasking: boolean;\n\n private queryDeduplication: boolean;\n private clientAwareness: Record = {};\n private localState: LocalState;\n\n private onBroadcast?: () => void;\n public mutationStore?: {\n [mutationId: string]: MutationStoreValue;\n };\n\n // All the queries that the QueryManager is currently managing (not\n // including mutations and subscriptions).\n private queries = new Map();\n\n // Maps from queryId strings to Promise rejection functions for\n // currently active queries and fetches.\n // Use protected instead of private field so\n // @apollo/experimental-nextjs-app-support can access type info.\n protected fetchCancelFns = new Map any>();\n\n constructor(options: QueryManagerOptions) {\n const defaultDocumentTransform = new DocumentTransform(\n (document) => this.cache.transformDocument(document),\n // Allow the apollo cache to manage its own transform caches\n { cache: false }\n );\n\n this.cache = options.cache;\n this.link = options.link;\n this.defaultOptions = options.defaultOptions;\n this.queryDeduplication = options.queryDeduplication;\n this.clientAwareness = options.clientAwareness;\n this.localState = options.localState;\n this.ssrMode = options.ssrMode;\n this.assumeImmutableResults = options.assumeImmutableResults;\n this.dataMasking = options.dataMasking;\n const documentTransform = options.documentTransform;\n this.documentTransform =\n documentTransform ?\n defaultDocumentTransform\n .concat(documentTransform)\n // The custom document transform may add new fragment spreads or new\n // field selections, so we want to give the cache a chance to run\n // again. For example, the InMemoryCache adds __typename to field\n // selections and fragments from the fragment registry.\n .concat(defaultDocumentTransform)\n : defaultDocumentTransform;\n this.defaultContext = options.defaultContext || Object.create(null);\n\n if ((this.onBroadcast = options.onBroadcast)) {\n this.mutationStore = Object.create(null);\n }\n }\n\n /**\n * Call this method to terminate any active query processes, making it safe\n * to dispose of this QueryManager instance.\n */\n public stop() {\n this.queries.forEach((_info, queryId) => {\n this.stopQueryNoBroadcast(queryId);\n });\n\n this.cancelPendingFetches(\n newInvariantError(\"QueryManager stopped while query was in flight\")\n );\n }\n\n private cancelPendingFetches(error: Error) {\n this.fetchCancelFns.forEach((cancel) => cancel(error));\n this.fetchCancelFns.clear();\n }\n\n public async mutate<\n TData,\n TVariables extends OperationVariables,\n TContext extends Record,\n TCache extends ApolloCache,\n >({\n mutation,\n variables,\n optimisticResponse,\n updateQueries,\n refetchQueries = [],\n awaitRefetchQueries = false,\n update: updateWithProxyFn,\n onQueryUpdated,\n fetchPolicy = this.defaultOptions.mutate?.fetchPolicy || \"network-only\",\n errorPolicy = this.defaultOptions.mutate?.errorPolicy || \"none\",\n keepRootFields,\n context,\n }: MutationOptions): Promise<\n FetchResult>\n > {\n invariant(\n mutation,\n \"mutation option is required. You must specify your GraphQL document in the mutation option.\"\n );\n\n invariant(\n fetchPolicy === \"network-only\" || fetchPolicy === \"no-cache\",\n \"Mutations support only 'network-only' or 'no-cache' fetchPolicy strings. The default `network-only` behavior automatically writes mutation results to the cache. Passing `no-cache` skips the cache write.\"\n );\n\n const mutationId = this.generateMutationId();\n\n mutation = this.cache.transformForLink(this.transform(mutation));\n const { hasClientExports } = this.getDocumentInfo(mutation);\n\n variables = this.getVariables(mutation, variables) as TVariables;\n if (hasClientExports) {\n variables = (await this.localState.addExportedVariables(\n mutation,\n variables,\n context\n )) as TVariables;\n }\n\n const mutationStoreValue =\n this.mutationStore &&\n (this.mutationStore[mutationId] = {\n mutation,\n variables,\n loading: true,\n error: null,\n } as MutationStoreValue);\n\n const isOptimistic =\n optimisticResponse &&\n this.markMutationOptimistic(\n optimisticResponse,\n {\n mutationId,\n document: mutation,\n variables,\n fetchPolicy,\n errorPolicy,\n context,\n updateQueries,\n update: updateWithProxyFn,\n keepRootFields,\n }\n );\n\n this.broadcastQueries();\n\n const self = this;\n\n return new Promise((resolve, reject) => {\n return asyncMap(\n self.getObservableFromLink(\n mutation,\n {\n ...context,\n optimisticResponse: isOptimistic ? optimisticResponse : void 0,\n },\n variables,\n {},\n false\n ),\n\n (result: FetchResult) => {\n if (graphQLResultHasError(result) && errorPolicy === \"none\") {\n throw new ApolloError({\n graphQLErrors: getGraphQLErrorsFromResult(result),\n });\n }\n\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = null;\n }\n\n const storeResult: typeof result = { ...result };\n\n if (typeof refetchQueries === \"function\") {\n refetchQueries = refetchQueries(\n storeResult as FetchResult>\n );\n }\n\n if (errorPolicy === \"ignore\" && graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n\n return self.markMutationResult({\n mutationId,\n result: storeResult,\n document: mutation,\n variables,\n fetchPolicy,\n errorPolicy,\n context,\n update: updateWithProxyFn,\n updateQueries,\n awaitRefetchQueries,\n refetchQueries,\n removeOptimistic: isOptimistic ? mutationId : void 0,\n onQueryUpdated,\n keepRootFields,\n });\n }\n ).subscribe({\n next(storeResult) {\n self.broadcastQueries();\n\n // Since mutations might receive multiple payloads from the\n // ApolloLink chain (e.g. when used with @defer),\n // we resolve with a SingleExecutionResult or after the final\n // ExecutionPatchResult has arrived and we have assembled the\n // multipart response into a single result.\n if (!(\"hasNext\" in storeResult) || storeResult.hasNext === false) {\n resolve({\n ...storeResult,\n data: self.maskOperation({\n document: mutation,\n data: storeResult.data,\n fetchPolicy,\n id: mutationId,\n }) as any,\n });\n }\n },\n\n error(err: Error) {\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = err;\n }\n\n if (isOptimistic) {\n self.cache.removeOptimistic(mutationId);\n }\n\n self.broadcastQueries();\n\n reject(\n err instanceof ApolloError ? err : (\n new ApolloError({\n networkError: err,\n })\n )\n );\n },\n });\n });\n }\n\n public markMutationResult<\n TData,\n TVariables,\n TContext,\n TCache extends ApolloCache,\n >(\n mutation: {\n mutationId: string;\n result: FetchResult;\n document: DocumentNode;\n variables?: TVariables;\n fetchPolicy?: MutationFetchPolicy;\n errorPolicy: ErrorPolicy;\n context?: TContext;\n updateQueries: UpdateQueries;\n update?: MutationUpdaterFunction;\n awaitRefetchQueries?: boolean;\n refetchQueries?: InternalRefetchQueriesInclude;\n removeOptimistic?: string;\n onQueryUpdated?: OnQueryUpdated;\n keepRootFields?: boolean;\n },\n cache = this.cache\n ): Promise> {\n let { result } = mutation;\n const cacheWrites: Cache.WriteOptions[] = [];\n const skipCache = mutation.fetchPolicy === \"no-cache\";\n\n if (!skipCache && shouldWriteResult(result, mutation.errorPolicy)) {\n if (!isExecutionPatchIncrementalResult(result)) {\n cacheWrites.push({\n result: result.data,\n dataId: \"ROOT_MUTATION\",\n query: mutation.document,\n variables: mutation.variables,\n });\n }\n if (\n isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)\n ) {\n const diff = cache.diff({\n id: \"ROOT_MUTATION\",\n // The cache complains if passed a mutation where it expects a\n // query, so we transform mutations and subscriptions to queries\n // (only once, thanks to this.transformCache).\n query: this.getDocumentInfo(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true,\n });\n let mergedData;\n if (diff.result) {\n mergedData = mergeIncrementalData(diff.result, result);\n }\n if (typeof mergedData !== \"undefined\") {\n // cast the ExecutionPatchResult to FetchResult here since\n // ExecutionPatchResult never has `data` when returned from the server\n (result as FetchResult).data = mergedData;\n cacheWrites.push({\n result: mergedData,\n dataId: \"ROOT_MUTATION\",\n query: mutation.document,\n variables: mutation.variables,\n });\n }\n }\n\n const { updateQueries } = mutation;\n if (updateQueries) {\n this.queries.forEach(({ observableQuery }, queryId) => {\n const queryName = observableQuery && observableQuery.queryName;\n if (!queryName || !hasOwnProperty.call(updateQueries, queryName)) {\n return;\n }\n const updater = updateQueries[queryName];\n const { document, variables } = this.queries.get(queryId)!;\n\n // Read the current query result from the store.\n const { result: currentQueryResult, complete } = cache.diff({\n query: document!,\n variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n if (complete && currentQueryResult) {\n // Run our reducer using the current query result and the mutation result.\n const nextQueryResult = updater(currentQueryResult, {\n mutationResult: result as FetchResult>,\n queryName: (document && getOperationName(document)) || void 0,\n queryVariables: variables!,\n });\n\n // Write the modified result back into the store if we got a new result.\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: \"ROOT_QUERY\",\n query: document!,\n variables,\n });\n }\n }\n });\n }\n }\n\n if (\n cacheWrites.length > 0 ||\n (mutation.refetchQueries || \"\").length > 0 ||\n mutation.update ||\n mutation.onQueryUpdated ||\n mutation.removeOptimistic\n ) {\n const results: any[] = [];\n\n this.refetchQueries({\n updateCache: (cache) => {\n if (!skipCache) {\n cacheWrites.forEach((write) => cache.write(write));\n }\n\n // If the mutation has some writes associated with it then we need to\n // apply those writes to the store by running this reducer again with\n // a write action.\n const { update } = mutation;\n // Determine whether result is a SingleExecutionResult,\n // or the final ExecutionPatchResult.\n const isFinalResult =\n !isExecutionPatchResult(result) ||\n (isExecutionPatchIncrementalResult(result) && !result.hasNext);\n\n if (update) {\n if (!skipCache) {\n // Re-read the ROOT_MUTATION data we just wrote into the cache\n // (the first cache.write call in the cacheWrites.forEach loop\n // above), so field read functions have a chance to run for\n // fields within mutation result objects.\n const diff = cache.diff({\n id: \"ROOT_MUTATION\",\n // The cache complains if passed a mutation where it expects a\n // query, so we transform mutations and subscriptions to queries\n // (only once, thanks to this.transformCache).\n query: this.getDocumentInfo(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true,\n });\n\n if (diff.complete) {\n result = { ...(result as FetchResult), data: diff.result };\n if (\"incremental\" in result) {\n delete result.incremental;\n }\n if (\"hasNext\" in result) {\n delete result.hasNext;\n }\n }\n }\n\n // If we've received the whole response,\n // either a SingleExecutionResult or the final ExecutionPatchResult,\n // call the update function.\n if (isFinalResult) {\n update(cache as TCache, result as FetchResult>, {\n context: mutation.context,\n variables: mutation.variables,\n });\n }\n }\n\n // TODO Do this with cache.evict({ id: 'ROOT_MUTATION' }) but make it\n // shallow to allow rolling back optimistic evictions.\n if (!skipCache && !mutation.keepRootFields && isFinalResult) {\n cache.modify({\n id: \"ROOT_MUTATION\",\n fields(value, { fieldName, DELETE }) {\n return fieldName === \"__typename\" ? value : DELETE;\n },\n });\n }\n },\n\n include: mutation.refetchQueries,\n\n // Write the final mutation.result to the root layer of the cache.\n optimistic: false,\n\n // Remove the corresponding optimistic layer at the same time as we\n // write the final non-optimistic result.\n removeOptimistic: mutation.removeOptimistic,\n\n // Let the caller of client.mutate optionally determine the refetching\n // behavior for watched queries after the mutation.update function runs.\n // If no onQueryUpdated function was provided for this mutation, pass\n // null instead of undefined to disable the default refetching behavior.\n onQueryUpdated: mutation.onQueryUpdated || null,\n }).forEach((result) => results.push(result));\n\n if (mutation.awaitRefetchQueries || mutation.onQueryUpdated) {\n // Returning a promise here makes the mutation await that promise, so we\n // include results in that promise's work if awaitRefetchQueries or an\n // onQueryUpdated function was specified.\n return Promise.all(results).then(() => result);\n }\n }\n\n return Promise.resolve(result);\n }\n\n public markMutationOptimistic<\n TData,\n TVariables,\n TContext,\n TCache extends ApolloCache,\n >(\n optimisticResponse: any,\n mutation: {\n mutationId: string;\n document: DocumentNode;\n variables?: TVariables;\n fetchPolicy?: MutationFetchPolicy;\n errorPolicy: ErrorPolicy;\n context?: TContext;\n updateQueries: UpdateQueries;\n update?: MutationUpdaterFunction;\n keepRootFields?: boolean;\n }\n ) {\n const data =\n typeof optimisticResponse === \"function\" ?\n optimisticResponse(mutation.variables, { IGNORE })\n : optimisticResponse;\n\n if (data === IGNORE) {\n return false;\n }\n\n this.cache.recordOptimisticTransaction((cache) => {\n try {\n this.markMutationResult(\n {\n ...mutation,\n result: { data },\n },\n cache\n );\n } catch (error) {\n invariant.error(error);\n }\n }, mutation.mutationId);\n\n return true;\n }\n\n public fetchQuery(\n queryId: string,\n options: WatchQueryOptions,\n networkStatus?: NetworkStatus\n ): Promise> {\n return this.fetchConcastWithInfo(queryId, options, networkStatus).concast\n .promise as TODO;\n }\n\n public getQueryStore() {\n const store: Record = Object.create(null);\n this.queries.forEach((info, queryId) => {\n store[queryId] = {\n variables: info.variables,\n networkStatus: info.networkStatus,\n networkError: info.networkError,\n graphQLErrors: info.graphQLErrors,\n };\n });\n return store;\n }\n\n public resetErrors(queryId: string) {\n const queryInfo = this.queries.get(queryId);\n if (queryInfo) {\n queryInfo.networkError = undefined;\n queryInfo.graphQLErrors = [];\n }\n }\n\n public transform(document: DocumentNode) {\n return this.documentTransform.transformDocument(document);\n }\n\n private transformCache = new AutoCleanedWeakCache<\n DocumentNode,\n TransformCacheEntry\n >(\n cacheSizes[\"queryManager.getDocumentInfo\"] ||\n defaultCacheSizes[\"queryManager.getDocumentInfo\"]\n );\n\n public getDocumentInfo(document: DocumentNode) {\n const { transformCache } = this;\n\n if (!transformCache.has(document)) {\n const cacheEntry: TransformCacheEntry = {\n // TODO These three calls (hasClientExports, shouldForceResolvers, and\n // usesNonreactiveDirective) are performing independent full traversals\n // of the transformed document. We should consider merging these\n // traversals into a single pass in the future, though the work is\n // cached after the first time.\n hasClientExports: hasClientExports(document),\n hasForcedResolvers: this.localState.shouldForceResolvers(document),\n hasNonreactiveDirective: hasDirectives([\"nonreactive\"], document),\n nonReactiveQuery: addNonReactiveToNamedFragments(document),\n clientQuery: this.localState.clientQuery(document),\n serverQuery: removeDirectivesFromDocument(\n [\n { name: \"client\", remove: true },\n { name: \"connection\" },\n { name: \"nonreactive\" },\n { name: \"unmask\" },\n ],\n document\n ),\n defaultVars: getDefaultValues(\n getOperationDefinition(document)\n ) as OperationVariables,\n // Transform any mutation or subscription operations to query operations\n // so we can read/write them from/to the cache.\n asQuery: {\n ...document,\n definitions: document.definitions.map((def) => {\n if (\n def.kind === \"OperationDefinition\" &&\n def.operation !== \"query\"\n ) {\n return { ...def, operation: \"query\" as OperationTypeNode };\n }\n return def;\n }),\n },\n };\n\n transformCache.set(document, cacheEntry);\n }\n\n return transformCache.get(document)!;\n }\n\n private getVariables(\n document: DocumentNode,\n variables?: TVariables\n ): OperationVariables {\n return {\n ...this.getDocumentInfo(document).defaultVars,\n ...variables,\n };\n }\n\n public watchQuery<\n T,\n TVariables extends OperationVariables = OperationVariables,\n >(options: WatchQueryOptions): ObservableQuery {\n const query = this.transform(options.query);\n\n // assign variable default values if supplied\n // NOTE: We don't modify options.query here with the transformed query to\n // ensure observable.options.query is set to the raw untransformed query.\n options = {\n ...options,\n variables: this.getVariables(query, options.variables) as TVariables,\n };\n\n if (typeof options.notifyOnNetworkStatusChange === \"undefined\") {\n options.notifyOnNetworkStatusChange = false;\n }\n\n const queryInfo = new QueryInfo(this);\n const observable = new ObservableQuery({\n queryManager: this,\n queryInfo,\n options,\n });\n observable[\"lastQuery\"] = query;\n\n this.queries.set(observable.queryId, queryInfo);\n\n // We give queryInfo the transformed query to ensure the first cache diff\n // uses the transformed query instead of the raw query\n queryInfo.init({\n document: query,\n observableQuery: observable,\n variables: observable.variables,\n });\n\n return observable;\n }\n\n public query(\n options: QueryOptions,\n queryId = this.generateQueryId()\n ): Promise>> {\n invariant(\n options.query,\n \"query option is required. You must specify your GraphQL document \" +\n \"in the query option.\"\n );\n\n invariant(\n options.query.kind === \"Document\",\n 'You must wrap the query string in a \"gql\" tag.'\n );\n\n invariant(\n !(options as any).returnPartialData,\n \"returnPartialData option only supported on watchQuery.\"\n );\n\n invariant(\n !(options as any).pollInterval,\n \"pollInterval option only supported on watchQuery.\"\n );\n\n const query = this.transform(options.query);\n\n return this.fetchQuery(queryId, { ...options, query })\n .then(\n (result) =>\n result && {\n ...result,\n data: this.maskOperation({\n document: query,\n data: result.data,\n fetchPolicy: options.fetchPolicy,\n id: queryId,\n }),\n }\n )\n .finally(() => this.stopQuery(queryId));\n }\n\n private queryIdCounter = 1;\n public generateQueryId() {\n return String(this.queryIdCounter++);\n }\n\n private requestIdCounter = 1;\n public generateRequestId() {\n return this.requestIdCounter++;\n }\n\n private mutationIdCounter = 1;\n public generateMutationId() {\n return String(this.mutationIdCounter++);\n }\n\n public stopQueryInStore(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryInStoreNoBroadcast(queryId: string) {\n const queryInfo = this.queries.get(queryId);\n if (queryInfo) queryInfo.stop();\n }\n\n public clearStore(\n options: Cache.ResetOptions = {\n discardWatches: true,\n }\n ): Promise {\n // Before we have sent the reset action to the store, we can no longer\n // rely on the results returned by in-flight requests since these may\n // depend on values that previously existed in the data portion of the\n // store. So, we cancel the promises and observers that we have issued\n // so far and not yet resolved (in the case of queries).\n this.cancelPendingFetches(\n newInvariantError(\n \"Store reset while query was in flight (not completed in link chain)\"\n )\n );\n\n this.queries.forEach((queryInfo) => {\n if (queryInfo.observableQuery) {\n // Set loading to true so listeners don't trigger unless they want\n // results with partial data.\n queryInfo.networkStatus = NetworkStatus.loading;\n } else {\n queryInfo.stop();\n }\n });\n\n if (this.mutationStore) {\n this.mutationStore = Object.create(null);\n }\n\n // begin removing data from the store\n return this.cache.reset(options);\n }\n\n public getObservableQueries(\n include: InternalRefetchQueriesInclude = \"active\"\n ) {\n const queries = new Map>();\n const queryNames = new Map();\n const queryNamesAndQueryStrings = new Map();\n const legacyQueryOptions = new Set();\n\n if (Array.isArray(include)) {\n include.forEach((desc) => {\n if (typeof desc === \"string\") {\n queryNames.set(desc, desc);\n queryNamesAndQueryStrings.set(desc, false);\n } else if (isDocumentNode(desc)) {\n const queryString = print(this.transform(desc));\n queryNames.set(queryString, getOperationName(desc));\n queryNamesAndQueryStrings.set(queryString, false);\n } else if (isNonNullObject(desc) && desc.query) {\n legacyQueryOptions.add(desc);\n }\n });\n }\n\n this.queries.forEach(({ observableQuery: oq, document }, queryId) => {\n if (oq) {\n if (include === \"all\") {\n queries.set(queryId, oq);\n return;\n }\n\n const {\n queryName,\n options: { fetchPolicy },\n } = oq;\n\n if (\n fetchPolicy === \"standby\" ||\n (include === \"active\" && !oq.hasObservers())\n ) {\n return;\n }\n\n if (\n include === \"active\" ||\n (queryName && queryNamesAndQueryStrings.has(queryName)) ||\n (document && queryNamesAndQueryStrings.has(print(document)))\n ) {\n queries.set(queryId, oq);\n if (queryName) queryNamesAndQueryStrings.set(queryName, true);\n if (document) queryNamesAndQueryStrings.set(print(document), true);\n }\n }\n });\n\n if (legacyQueryOptions.size) {\n legacyQueryOptions.forEach((options: QueryOptions) => {\n // We will be issuing a fresh network request for this query, so we\n // pre-allocate a new query ID here, using a special prefix to enable\n // cleaning up these temporary queries later, after fetching.\n const queryId = makeUniqueId(\"legacyOneTimeQuery\");\n const queryInfo = this.getQuery(queryId).init({\n document: options.query,\n variables: options.variables,\n });\n const oq = new ObservableQuery({\n queryManager: this,\n queryInfo,\n options: {\n ...options,\n fetchPolicy: \"network-only\",\n },\n });\n invariant(oq.queryId === queryId);\n queryInfo.setObservableQuery(oq);\n queries.set(queryId, oq);\n });\n }\n\n if (__DEV__ && queryNamesAndQueryStrings.size) {\n queryNamesAndQueryStrings.forEach((included, nameOrQueryString) => {\n if (!included) {\n const queryName = queryNames.get(nameOrQueryString);\n\n if (queryName) {\n invariant.warn(\n `Unknown query named \"%s\" requested in refetchQueries options.include array`,\n queryName\n );\n } else {\n invariant.warn(\n `Unknown anonymous query requested in refetchQueries options.include array`\n );\n }\n }\n });\n }\n\n return queries;\n }\n\n public reFetchObservableQueries(\n includeStandby: boolean = false\n ): Promise[]> {\n const observableQueryPromises: Promise>[] = [];\n\n this.getObservableQueries(includeStandby ? \"all\" : \"active\").forEach(\n (observableQuery, queryId) => {\n const { fetchPolicy } = observableQuery.options;\n observableQuery.resetLastResults();\n if (\n includeStandby ||\n (fetchPolicy !== \"standby\" && fetchPolicy !== \"cache-only\")\n ) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n this.getQuery(queryId).setDiff(null);\n }\n );\n\n this.broadcastQueries();\n\n return Promise.all(observableQueryPromises);\n }\n\n public setObservableQuery(observableQuery: ObservableQuery) {\n this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);\n }\n\n public startGraphQLSubscription(\n options: SubscriptionOptions\n ): Observable> {\n let { query, variables } = options;\n const {\n fetchPolicy,\n errorPolicy = \"none\",\n context = {},\n extensions = {},\n } = options;\n\n query = this.transform(query);\n variables = this.getVariables(query, variables);\n\n const makeObservable = (variables: OperationVariables) =>\n this.getObservableFromLink(query, context, variables, extensions).map(\n (result) => {\n if (fetchPolicy !== \"no-cache\") {\n // the subscription interface should handle not sending us results we no longer subscribe to.\n // XXX I don't think we ever send in an object with errors, but we might in the future...\n if (shouldWriteResult(result, errorPolicy)) {\n this.cache.write({\n query,\n result: result.data,\n dataId: \"ROOT_SUBSCRIPTION\",\n variables: variables,\n });\n }\n\n this.broadcastQueries();\n }\n\n const hasErrors = graphQLResultHasError(result);\n const hasProtocolErrors = graphQLResultHasProtocolErrors(result);\n if (hasErrors || hasProtocolErrors) {\n const errors: ApolloErrorOptions = {};\n if (hasErrors) {\n errors.graphQLErrors = result.errors;\n }\n if (hasProtocolErrors) {\n errors.protocolErrors = result.extensions[PROTOCOL_ERRORS_SYMBOL];\n }\n\n // `errorPolicy` is a mechanism for handling GraphQL errors, according\n // to our documentation, so we throw protocol errors regardless of the\n // set error policy.\n if (errorPolicy === \"none\" || hasProtocolErrors) {\n throw new ApolloError(errors);\n }\n }\n\n if (errorPolicy === \"ignore\") {\n delete result.errors;\n }\n\n return result;\n }\n );\n\n if (this.getDocumentInfo(query).hasClientExports) {\n const observablePromise = this.localState\n .addExportedVariables(query, variables, context)\n .then(makeObservable);\n\n return new Observable>((observer) => {\n let sub: ObservableSubscription | null = null;\n observablePromise.then(\n (observable) => (sub = observable.subscribe(observer)),\n observer.error\n );\n return () => sub && sub.unsubscribe();\n });\n }\n\n return makeObservable(variables);\n }\n\n public stopQuery(queryId: string) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryNoBroadcast(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n }\n\n public removeQuery(queryId: string) {\n // teardown all links\n // Both `QueryManager.fetchRequest` and `QueryManager.query` create separate promises\n // that each add their reject functions to fetchCancelFns.\n // A query created with `QueryManager.query()` could trigger a `QueryManager.fetchRequest`.\n // The same queryId could have two rejection fns for two promises\n this.fetchCancelFns.delete(queryId);\n if (this.queries.has(queryId)) {\n this.getQuery(queryId).stop();\n this.queries.delete(queryId);\n }\n }\n\n public broadcastQueries() {\n if (this.onBroadcast) this.onBroadcast();\n this.queries.forEach((info) => info.notify());\n }\n\n public getLocalState(): LocalState {\n return this.localState;\n }\n\n // Use protected instead of private field so\n // @apollo/experimental-nextjs-app-support can access type info.\n protected inFlightLinkObservables = new Trie<{\n observable?: Observable>;\n }>(false);\n\n private getObservableFromLink(\n query: DocumentNode,\n context: any,\n variables?: OperationVariables,\n extensions?: Record,\n // Prefer context.queryDeduplication if specified.\n deduplication: boolean = context?.queryDeduplication ??\n this.queryDeduplication\n ): Observable> {\n let observable: Observable> | undefined;\n\n const { serverQuery, clientQuery } = this.getDocumentInfo(query);\n if (serverQuery) {\n const { inFlightLinkObservables, link } = this;\n\n const operation = {\n query: serverQuery,\n variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext({\n ...context,\n forceFetch: !deduplication,\n }),\n extensions,\n };\n\n context = operation.context;\n\n if (deduplication) {\n const printedServerQuery = print(serverQuery);\n const varJson = canonicalStringify(variables);\n\n const entry = inFlightLinkObservables.lookup(\n printedServerQuery,\n varJson\n );\n\n observable = entry.observable;\n if (!observable) {\n const concast = new Concast([\n execute(link, operation) as Observable>,\n ]);\n observable = entry.observable = concast;\n\n concast.beforeNext(function cb(method, arg: FetchResult) {\n if (method === \"next\" && \"hasNext\" in arg && arg.hasNext) {\n concast.beforeNext(cb);\n } else {\n inFlightLinkObservables.remove(printedServerQuery, varJson);\n }\n });\n }\n } else {\n observable = new Concast([\n execute(link, operation) as Observable>,\n ]);\n }\n } else {\n observable = new Concast([Observable.of({ data: {} } as FetchResult)]);\n context = this.prepareContext(context);\n }\n\n if (clientQuery) {\n observable = asyncMap(observable, (result) => {\n return this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context,\n variables,\n });\n });\n }\n\n return observable;\n }\n\n private getResultsFromLink(\n queryInfo: QueryInfo,\n cacheWriteBehavior: CacheWriteBehavior,\n options: Pick<\n WatchQueryOptions,\n \"query\" | \"variables\" | \"context\" | \"fetchPolicy\" | \"errorPolicy\"\n >\n ): Observable> {\n const requestId = (queryInfo.lastRequestId = this.generateRequestId());\n\n // Performing transformForLink here gives this.cache a chance to fill in\n // missing fragment definitions (for example) before sending this document\n // through the link chain.\n const linkDocument = this.cache.transformForLink(options.query);\n\n return asyncMap(\n this.getObservableFromLink(\n linkDocument,\n options.context,\n options.variables\n ),\n\n (result) => {\n const graphQLErrors = getGraphQLErrorsFromResult(result);\n const hasErrors = graphQLErrors.length > 0;\n const { errorPolicy } = options;\n\n // If we interrupted this request by calling getResultsFromLink again\n // with the same QueryInfo object, we ignore the old results.\n if (requestId >= queryInfo.lastRequestId) {\n if (hasErrors && errorPolicy === \"none\") {\n // Throwing here effectively calls observer.error.\n throw queryInfo.markError(\n new ApolloError({\n graphQLErrors,\n })\n );\n }\n // Use linkDocument rather than queryInfo.document so the\n // operation/fragments used to write the result are the same as the\n // ones used to obtain it from the link.\n queryInfo.markResult(\n result,\n linkDocument,\n options,\n cacheWriteBehavior\n );\n queryInfo.markReady();\n }\n\n const aqr: ApolloQueryResult = {\n data: result.data,\n loading: false,\n networkStatus: NetworkStatus.ready,\n };\n\n // In the case we start multiple network requests simulatenously, we\n // want to ensure we properly set `data` if we're reporting on an old\n // result which will not be caught by the conditional above that ends up\n // throwing the markError result.\n if (hasErrors && errorPolicy === \"none\") {\n aqr.data = void 0 as TData;\n }\n\n if (hasErrors && errorPolicy !== \"ignore\") {\n aqr.errors = graphQLErrors;\n aqr.networkStatus = NetworkStatus.error;\n }\n\n return aqr;\n },\n\n (networkError) => {\n const error =\n isApolloError(networkError) ? networkError : (\n new ApolloError({ networkError })\n );\n\n // Avoid storing errors from older interrupted queries.\n if (requestId >= queryInfo.lastRequestId) {\n queryInfo.markError(error);\n }\n\n throw error;\n }\n );\n }\n\n private fetchConcastWithInfo(\n queryId: string,\n options: WatchQueryOptions,\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus = NetworkStatus.loading,\n query = options.query\n ): ConcastAndInfo {\n const variables = this.getVariables(query, options.variables) as TVars;\n const queryInfo = this.getQuery(queryId);\n\n const defaults = this.defaultOptions.watchQuery;\n let {\n fetchPolicy = (defaults && defaults.fetchPolicy) || \"cache-first\",\n errorPolicy = (defaults && defaults.errorPolicy) || \"none\",\n returnPartialData = false,\n notifyOnNetworkStatusChange = false,\n context = {},\n } = options;\n\n const normalized = Object.assign({}, options, {\n query,\n variables,\n fetchPolicy,\n errorPolicy,\n returnPartialData,\n notifyOnNetworkStatusChange,\n context,\n });\n\n const fromVariables = (variables: TVars) => {\n // Since normalized is always a fresh copy of options, it's safe to\n // modify its properties here, rather than creating yet another new\n // WatchQueryOptions object.\n normalized.variables = variables;\n\n const sourcesWithInfo = this.fetchQueryByPolicy(\n queryInfo,\n normalized,\n networkStatus\n );\n\n if (\n // If we're in standby, postpone advancing options.fetchPolicy using\n // applyNextFetchPolicy.\n normalized.fetchPolicy !== \"standby\" &&\n // The \"standby\" policy currently returns [] from fetchQueryByPolicy, so\n // this is another way to detect when nothing was done/fetched.\n sourcesWithInfo.sources.length > 0 &&\n queryInfo.observableQuery\n ) {\n queryInfo.observableQuery[\"applyNextFetchPolicy\"](\n \"after-fetch\",\n options\n );\n }\n\n return sourcesWithInfo;\n };\n\n // This cancel function needs to be set before the concast is created,\n // in case concast creation synchronously cancels the request.\n const cleanupCancelFn = () => this.fetchCancelFns.delete(queryId);\n this.fetchCancelFns.set(queryId, (reason) => {\n cleanupCancelFn();\n // This delay ensures the concast variable has been initialized.\n setTimeout(() => concast.cancel(reason));\n });\n\n let concast: Concast>,\n containsDataFromLink: boolean;\n // If the query has @export(as: ...) directives, then we need to\n // process those directives asynchronously. When there are no\n // @export directives (the common case), we deliberately avoid\n // wrapping the result of this.fetchQueryByPolicy in a Promise,\n // since the timing of result delivery is (unfortunately) important\n // for backwards compatibility. TODO This code could be simpler if\n // we deprecated and removed LocalState.\n if (this.getDocumentInfo(normalized.query).hasClientExports) {\n concast = new Concast(\n this.localState\n .addExportedVariables(\n normalized.query,\n normalized.variables,\n normalized.context\n )\n .then(fromVariables)\n .then((sourcesWithInfo) => sourcesWithInfo.sources)\n );\n // there is just no way we can synchronously get the *right* value here,\n // so we will assume `true`, which is the behaviour before the bug fix in\n // #10597. This means that bug is not fixed in that case, and is probably\n // un-fixable with reasonable effort for the edge case of @export as\n // directives.\n containsDataFromLink = true;\n } else {\n const sourcesWithInfo = fromVariables(normalized.variables);\n containsDataFromLink = sourcesWithInfo.fromLink;\n concast = new Concast(sourcesWithInfo.sources);\n }\n\n concast.promise.then(cleanupCancelFn, cleanupCancelFn);\n\n return {\n concast,\n fromLink: containsDataFromLink,\n };\n }\n\n public refetchQueries({\n updateCache,\n include,\n optimistic = false,\n removeOptimistic = optimistic ? makeUniqueId(\"refetchQueries\") : void 0,\n onQueryUpdated,\n }: InternalRefetchQueriesOptions<\n ApolloCache,\n TResult\n >): InternalRefetchQueriesMap {\n const includedQueriesById = new Map<\n string,\n {\n oq: ObservableQuery;\n lastDiff?: Cache.DiffResult;\n diff?: Cache.DiffResult;\n }\n >();\n\n if (include) {\n this.getObservableQueries(include).forEach((oq, queryId) => {\n includedQueriesById.set(queryId, {\n oq,\n lastDiff: this.getQuery(queryId).getDiff(),\n });\n });\n }\n\n const results: InternalRefetchQueriesMap = new Map();\n\n if (updateCache) {\n this.cache.batch({\n update: updateCache,\n\n // Since you can perform any combination of cache reads and/or writes in\n // the cache.batch update function, its optimistic option can be either\n // a boolean or a string, representing three distinct modes of\n // operation:\n //\n // * false: read/write only the root layer\n // * true: read/write the topmost layer\n // * string: read/write a fresh optimistic layer with that ID string\n //\n // When typeof optimistic === \"string\", a new optimistic layer will be\n // temporarily created within cache.batch with that string as its ID. If\n // we then pass that same string as the removeOptimistic option, we can\n // make cache.batch immediately remove the optimistic layer after\n // running the updateCache function, triggering only one broadcast.\n //\n // However, the refetchQueries method accepts only true or false for its\n // optimistic option (not string). We interpret true to mean a temporary\n // optimistic layer should be created, to allow efficiently rolling back\n // the effect of the updateCache function, which involves passing a\n // string instead of true as the optimistic option to cache.batch, when\n // refetchQueries receives optimistic: true.\n //\n // In other words, we are deliberately not supporting the use case of\n // writing to an *existing* optimistic layer (using the refetchQueries\n // updateCache function), since that would potentially interfere with\n // other optimistic updates in progress. Instead, you can read/write\n // only the root layer by passing optimistic: false to refetchQueries,\n // or you can read/write a brand new optimistic layer that will be\n // automatically removed by passing optimistic: true.\n optimistic: (optimistic && removeOptimistic) || false,\n\n // The removeOptimistic option can also be provided by itself, even if\n // optimistic === false, to remove some previously-added optimistic\n // layer safely and efficiently, like we do in markMutationResult.\n //\n // If an explicit removeOptimistic string is provided with optimistic:\n // true, the removeOptimistic string will determine the ID of the\n // temporary optimistic layer, in case that ever matters.\n removeOptimistic,\n\n onWatchUpdated(watch, diff, lastDiff) {\n const oq =\n watch.watcher instanceof QueryInfo && watch.watcher.observableQuery;\n\n if (oq) {\n if (onQueryUpdated) {\n // Since we're about to handle this query now, remove it from\n // includedQueriesById, in case it was added earlier because of\n // options.include.\n includedQueriesById.delete(oq.queryId);\n\n let result: TResult | boolean | Promise> =\n onQueryUpdated(oq, diff, lastDiff);\n\n if (result === true) {\n // The onQueryUpdated function requested the default refetching\n // behavior by returning true.\n result = oq.refetch();\n }\n\n // Record the result in the results Map, as long as onQueryUpdated\n // did not return false to skip/ignore this result.\n if (result !== false) {\n results.set(\n oq,\n result as InternalRefetchQueriesResult\n );\n }\n\n // Allow the default cache broadcast to happen, except when\n // onQueryUpdated returns false.\n return result;\n }\n\n if (onQueryUpdated !== null) {\n // If we don't have an onQueryUpdated function, and onQueryUpdated\n // was not disabled by passing null, make sure this query is\n // \"included\" like any other options.include-specified query.\n includedQueriesById.set(oq.queryId, { oq, lastDiff, diff });\n }\n }\n },\n });\n }\n\n if (includedQueriesById.size) {\n includedQueriesById.forEach(({ oq, lastDiff, diff }, queryId) => {\n let result:\n | TResult\n | boolean\n | Promise>\n | undefined;\n\n // If onQueryUpdated is provided, we want to use it for all included\n // queries, even the QueryOptions ones.\n if (onQueryUpdated) {\n if (!diff) {\n const info = oq[\"queryInfo\"];\n info.reset(); // Force info.getDiff() to read from cache.\n diff = info.getDiff();\n }\n result = onQueryUpdated(oq, diff, lastDiff);\n }\n\n // Otherwise, we fall back to refetching.\n if (!onQueryUpdated || result === true) {\n result = oq.refetch();\n }\n\n if (result !== false) {\n results.set(oq, result as InternalRefetchQueriesResult);\n }\n\n if (queryId.indexOf(\"legacyOneTimeQuery\") >= 0) {\n this.stopQueryNoBroadcast(queryId);\n }\n });\n }\n\n if (removeOptimistic) {\n // In case no updateCache callback was provided (so cache.batch was not\n // called above, and thus did not already remove the optimistic layer),\n // remove it here. Since this is a no-op when the layer has already been\n // removed, we do it even if we called cache.batch above, since it's\n // possible this.cache is an instance of some ApolloCache subclass other\n // than InMemoryCache, and does not fully support the removeOptimistic\n // option for cache.batch.\n this.cache.removeOptimistic(removeOptimistic);\n }\n\n return results;\n }\n\n private noCacheWarningsByQueryId = new Set();\n\n public maskOperation(\n options: MaskOperationOptions\n ): MaybeMasked {\n const { document, data } = options;\n\n if (__DEV__) {\n const { fetchPolicy, id } = options;\n const operationType = getOperationDefinition(document)?.operation;\n const operationId = (operationType?.[0] ?? \"o\") + id;\n\n if (\n this.dataMasking &&\n fetchPolicy === \"no-cache\" &&\n !isFullyUnmaskedOperation(document) &&\n !this.noCacheWarningsByQueryId.has(operationId)\n ) {\n this.noCacheWarningsByQueryId.add(operationId);\n\n invariant.warn(\n '[%s]: Fragments masked by data masking are inaccessible when using fetch policy \"no-cache\". Please add `@unmask` to each fragment spread to access the data.',\n getOperationName(document) ??\n `Unnamed ${operationType ?? \"operation\"}`\n );\n }\n }\n\n return (\n this.dataMasking ?\n maskOperation(data, document, this.cache)\n : data) as MaybeMasked;\n }\n\n public maskFragment(options: MaskFragmentOptions) {\n const { data, fragment, fragmentName } = options;\n\n return this.dataMasking ?\n maskFragment(data, fragment, this.cache, fragmentName)\n : data;\n }\n\n private fetchQueryByPolicy(\n queryInfo: QueryInfo,\n {\n query,\n variables,\n fetchPolicy,\n refetchWritePolicy,\n errorPolicy,\n returnPartialData,\n context,\n notifyOnNetworkStatusChange,\n }: WatchQueryOptions,\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus: NetworkStatus\n ): SourcesAndInfo {\n const oldNetworkStatus = queryInfo.networkStatus;\n\n queryInfo.init({\n document: query,\n variables,\n networkStatus,\n });\n\n const readCache = () => queryInfo.getDiff();\n\n const resultsFromCache = (\n diff: Cache.DiffResult,\n networkStatus = queryInfo.networkStatus || NetworkStatus.loading\n ) => {\n const data = diff.result;\n\n if (__DEV__ && !returnPartialData && !equal(data, {})) {\n logMissingFieldErrors(diff.missing);\n }\n\n const fromData = (data: TData | undefined) =>\n Observable.of({\n data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus,\n ...(diff.complete ? null : { partial: true }),\n } as ApolloQueryResult);\n\n if (data && this.getDocumentInfo(query).hasForcedResolvers) {\n return this.localState\n .runResolvers({\n document: query,\n remoteResult: { data },\n context,\n variables,\n onlyRunForcedResolvers: true,\n })\n .then((resolved) => fromData(resolved.data || void 0));\n }\n\n // Resolves https://github.com/apollographql/apollo-client/issues/10317.\n // If errorPolicy is 'none' and notifyOnNetworkStatusChange is true,\n // data was incorrectly returned from the cache on refetch:\n // if diff.missing exists, we should not return cache data.\n if (\n errorPolicy === \"none\" &&\n networkStatus === NetworkStatus.refetch &&\n Array.isArray(diff.missing)\n ) {\n return fromData(void 0);\n }\n\n return fromData(data);\n };\n\n const cacheWriteBehavior =\n fetchPolicy === \"no-cache\" ? CacheWriteBehavior.FORBID\n // Watched queries must opt into overwriting existing data on refetch,\n // by passing refetchWritePolicy: \"overwrite\" in their WatchQueryOptions.\n : (\n networkStatus === NetworkStatus.refetch &&\n refetchWritePolicy !== \"merge\"\n ) ?\n CacheWriteBehavior.OVERWRITE\n : CacheWriteBehavior.MERGE;\n\n const resultsFromLink = () =>\n this.getResultsFromLink(queryInfo, cacheWriteBehavior, {\n query,\n variables,\n context,\n fetchPolicy,\n errorPolicy,\n });\n\n const shouldNotify =\n notifyOnNetworkStatusChange &&\n typeof oldNetworkStatus === \"number\" &&\n oldNetworkStatus !== networkStatus &&\n isNetworkRequestInFlight(networkStatus);\n\n switch (fetchPolicy) {\n default:\n case \"cache-first\": {\n const diff = readCache();\n\n if (diff.complete) {\n return {\n fromLink: false,\n sources: [resultsFromCache(diff, queryInfo.markReady())],\n };\n }\n\n if (returnPartialData || shouldNotify) {\n return {\n fromLink: true,\n sources: [resultsFromCache(diff), resultsFromLink()],\n };\n }\n\n return { fromLink: true, sources: [resultsFromLink()] };\n }\n\n case \"cache-and-network\": {\n const diff = readCache();\n\n if (diff.complete || returnPartialData || shouldNotify) {\n return {\n fromLink: true,\n sources: [resultsFromCache(diff), resultsFromLink()],\n };\n }\n\n return { fromLink: true, sources: [resultsFromLink()] };\n }\n\n case \"cache-only\":\n return {\n fromLink: false,\n sources: [resultsFromCache(readCache(), queryInfo.markReady())],\n };\n\n case \"network-only\":\n if (shouldNotify) {\n return {\n fromLink: true,\n sources: [resultsFromCache(readCache()), resultsFromLink()],\n };\n }\n\n return { fromLink: true, sources: [resultsFromLink()] };\n\n case \"no-cache\":\n if (shouldNotify) {\n return {\n fromLink: true,\n // Note that queryInfo.getDiff() for no-cache queries does not call\n // cache.diff, but instead returns a { complete: false } stub result\n // when there is no queryInfo.diff already defined.\n sources: [resultsFromCache(queryInfo.getDiff()), resultsFromLink()],\n };\n }\n\n return { fromLink: true, sources: [resultsFromLink()] };\n\n case \"standby\":\n return { fromLink: false, sources: [] };\n }\n }\n\n private getQuery(queryId: string): QueryInfo {\n if (queryId && !this.queries.has(queryId)) {\n this.queries.set(queryId, new QueryInfo(this, queryId));\n }\n return this.queries.get(queryId)!;\n }\n\n private prepareContext(context = {}) {\n const newContext = this.localState.prepareContext(context);\n return {\n ...this.defaultContext,\n ...newContext,\n clientAwareness: this.clientAwareness,\n };\n }\n}\n\n// Return types used by fetchQueryByPolicy and other private methods above.\ninterface FetchConcastInfo {\n // Metadata properties that can be returned in addition to the Concast.\n fromLink: boolean;\n}\ninterface SourcesAndInfo extends FetchConcastInfo {\n sources: ConcastSourcesArray>;\n}\ninterface ConcastAndInfo extends FetchConcastInfo {\n concast: Concast>;\n}\n","import type {\n ApolloCache,\n DocumentNode,\n TypedDocumentNode,\n} from \"../core/index.js\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport {\n createFragmentMap,\n getFragmentDefinitions,\n getOperationDefinition,\n} from \"../utilities/index.js\";\nimport { maskDefinition } from \"./maskDefinition.js\";\nimport {\n MapImpl,\n SetImpl,\n warnOnImproperCacheImplementation,\n} from \"./utils.js\";\n\n/** @internal */\nexport function maskOperation(\n data: TData,\n document: DocumentNode | TypedDocumentNode,\n cache: ApolloCache\n): TData {\n if (!cache.fragmentMatches) {\n if (__DEV__) {\n warnOnImproperCacheImplementation();\n }\n\n return data;\n }\n\n const definition = getOperationDefinition(document);\n\n invariant(\n definition,\n \"Expected a parsed GraphQL document with a query, mutation, or subscription.\"\n );\n\n if (data == null) {\n // Maintain the original `null` or `undefined` value\n return data;\n }\n\n return maskDefinition(data, definition.selectionSet, {\n operationType: definition.operation,\n operationName: definition.name?.value,\n fragmentMap: createFragmentMap(getFragmentDefinitions(document)),\n cache,\n mutableTargets: new MapImpl(),\n knownChanged: new SetImpl(),\n });\n}\n","import { Kind } from './kinds.mjs';\nexport function isDefinitionNode(node) {\n return (\n isExecutableDefinitionNode(node) ||\n isTypeSystemDefinitionNode(node) ||\n isTypeSystemExtensionNode(node)\n );\n}\nexport function isExecutableDefinitionNode(node) {\n return (\n node.kind === Kind.OPERATION_DEFINITION ||\n node.kind === Kind.FRAGMENT_DEFINITION\n );\n}\nexport function isSelectionNode(node) {\n return (\n node.kind === Kind.FIELD ||\n node.kind === Kind.FRAGMENT_SPREAD ||\n node.kind === Kind.INLINE_FRAGMENT\n );\n}\nexport function isValueNode(node) {\n return (\n node.kind === Kind.VARIABLE ||\n node.kind === Kind.INT ||\n node.kind === Kind.FLOAT ||\n node.kind === Kind.STRING ||\n node.kind === Kind.BOOLEAN ||\n node.kind === Kind.NULL ||\n node.kind === Kind.ENUM ||\n node.kind === Kind.LIST ||\n node.kind === Kind.OBJECT\n );\n}\nexport function isConstValueNode(node) {\n return (\n isValueNode(node) &&\n (node.kind === Kind.LIST\n ? node.values.some(isConstValueNode)\n : node.kind === Kind.OBJECT\n ? node.fields.some((field) => isConstValueNode(field.value))\n : node.kind !== Kind.VARIABLE)\n );\n}\nexport function isTypeNode(node) {\n return (\n node.kind === Kind.NAMED_TYPE ||\n node.kind === Kind.LIST_TYPE ||\n node.kind === Kind.NON_NULL_TYPE\n );\n}\nexport function isTypeSystemDefinitionNode(node) {\n return (\n node.kind === Kind.SCHEMA_DEFINITION ||\n isTypeDefinitionNode(node) ||\n node.kind === Kind.DIRECTIVE_DEFINITION\n );\n}\nexport function isTypeDefinitionNode(node) {\n return (\n node.kind === Kind.SCALAR_TYPE_DEFINITION ||\n node.kind === Kind.OBJECT_TYPE_DEFINITION ||\n node.kind === Kind.INTERFACE_TYPE_DEFINITION ||\n node.kind === Kind.UNION_TYPE_DEFINITION ||\n node.kind === Kind.ENUM_TYPE_DEFINITION ||\n node.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION\n );\n}\nexport function isTypeSystemExtensionNode(node) {\n return node.kind === Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node);\n}\nexport function isTypeExtensionNode(node) {\n return (\n node.kind === Kind.SCALAR_TYPE_EXTENSION ||\n node.kind === Kind.OBJECT_TYPE_EXTENSION ||\n node.kind === Kind.INTERFACE_TYPE_EXTENSION ||\n node.kind === Kind.UNION_TYPE_EXTENSION ||\n node.kind === Kind.ENUM_TYPE_EXTENSION ||\n node.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION\n );\n}\n","import type { OptimisticDependencyFunction } from \"optimism\";\nimport { dep, Slot } from \"optimism\";\nimport type { InMemoryCache } from \"./inMemoryCache.js\";\nimport type { ApolloCache } from \"../../core/index.js\";\n\nexport interface ReactiveVar {\n (newValue?: T): T;\n onNextChange(listener: ReactiveListener): () => void;\n attachCache(cache: ApolloCache): this;\n forgetCache(cache: ApolloCache): boolean;\n}\n\nexport type ReactiveListener = (value: T) => any;\n\n// Contextual Slot that acquires its value when custom read functions are\n// called in Policies#readField.\nexport const cacheSlot = new Slot>();\n\nconst cacheInfoMap = new WeakMap<\n ApolloCache,\n {\n vars: Set>;\n dep: OptimisticDependencyFunction>;\n }\n>();\n\nfunction getCacheInfo(cache: ApolloCache) {\n let info = cacheInfoMap.get(cache)!;\n if (!info) {\n cacheInfoMap.set(\n cache,\n (info = {\n vars: new Set(),\n dep: dep(),\n })\n );\n }\n return info;\n}\n\nexport function forgetCache(cache: ApolloCache) {\n getCacheInfo(cache).vars.forEach((rv) => rv.forgetCache(cache));\n}\n\n// Calling forgetCache(cache) serves to silence broadcasts and allows the\n// cache to be garbage collected. However, the varsByCache WeakMap\n// preserves the set of reactive variables that were previously associated\n// with this cache, which makes it possible to \"recall\" the cache at a\n// later time, by reattaching it to those variables. If the cache has been\n// garbage collected in the meantime, because it is no longer reachable,\n// you won't be able to call recallCache(cache), and the cache will\n// automatically disappear from the varsByCache WeakMap.\nexport function recallCache(cache: ApolloCache) {\n getCacheInfo(cache).vars.forEach((rv) => rv.attachCache(cache));\n}\n\nexport function makeVar(value: T): ReactiveVar {\n const caches = new Set>();\n const listeners = new Set>();\n\n const rv: ReactiveVar = function (newValue) {\n if (arguments.length > 0) {\n if (value !== newValue) {\n value = newValue!;\n caches.forEach((cache) => {\n // Invalidate any fields with custom read functions that\n // consumed this variable, so query results involving those\n // fields will be recomputed the next time we read them.\n getCacheInfo(cache).dep.dirty(rv);\n // Broadcast changes to any caches that have previously read\n // from this variable.\n broadcast(cache);\n });\n // Finally, notify any listeners added via rv.onNextChange.\n const oldListeners = Array.from(listeners);\n listeners.clear();\n oldListeners.forEach((listener) => listener(value));\n }\n } else {\n // When reading from the variable, obtain the current cache from\n // context via cacheSlot. This isn't entirely foolproof, but it's\n // the same system that powers varDep.\n const cache = cacheSlot.getValue();\n if (cache) {\n attach(cache);\n getCacheInfo(cache).dep(rv);\n }\n }\n\n return value;\n };\n\n rv.onNextChange = (listener) => {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n };\n\n const attach = (rv.attachCache = (cache) => {\n caches.add(cache);\n getCacheInfo(cache).vars.add(rv);\n return rv;\n });\n\n rv.forgetCache = (cache) => caches.delete(cache);\n\n return rv;\n}\n\ntype Broadcastable = ApolloCache & {\n // This method is protected in InMemoryCache, which we are ignoring, but\n // we still want some semblance of type safety when we call it.\n broadcastWatches?: InMemoryCache[\"broadcastWatches\"];\n};\n\nfunction broadcast(cache: Broadcastable) {\n if (cache.broadcastWatches) {\n cache.broadcastWatches();\n }\n}\n","import { invariant } from \"../utilities/globals/index.js\";\n\nimport type {\n DocumentNode,\n OperationDefinitionNode,\n SelectionSetNode,\n SelectionNode,\n InlineFragmentNode,\n FragmentDefinitionNode,\n FieldNode,\n ASTNode,\n DirectiveNode,\n FragmentSpreadNode,\n ExecutableDefinitionNode,\n} from \"graphql\";\nimport { visit, BREAK, isSelectionNode } from \"graphql\";\n\nimport type { ApolloCache } from \"../cache/index.js\";\nimport type { FragmentMap, StoreObject } from \"../utilities/index.js\";\nimport {\n argumentsObjectFromField,\n buildQueryFromSelectionSet,\n createFragmentMap,\n getFragmentDefinitions,\n getMainDefinition,\n hasDirectives,\n isField,\n isInlineFragment,\n mergeDeep,\n mergeDeepArray,\n removeClientSetsFromDocument,\n resultKeyNameFromField,\n shouldInclude,\n} from \"../utilities/index.js\";\nimport type { ApolloClient } from \"./ApolloClient.js\";\nimport type { Resolvers, OperationVariables } from \"./types.js\";\nimport type { FetchResult } from \"../link/core/index.js\";\nimport { cacheSlot } from \"../cache/index.js\";\n\nexport type Resolver = (\n rootValue?: any,\n args?: any,\n context?: any,\n info?: {\n field: FieldNode;\n fragmentMap: FragmentMap;\n }\n) => any;\n\nexport type VariableMap = { [name: string]: any };\n\nexport type FragmentMatcher = (\n rootValue: any,\n typeCondition: string,\n context: any\n) => boolean;\n\nexport type ExecContext = {\n fragmentMap: FragmentMap;\n context: any;\n variables: VariableMap;\n fragmentMatcher: FragmentMatcher;\n defaultOperationType: string;\n exportedVariables: Record;\n onlyRunForcedResolvers: boolean;\n selectionsToResolve: Set;\n};\n\nexport type LocalStateOptions = {\n cache: ApolloCache;\n client?: ApolloClient;\n resolvers?: Resolvers | Resolvers[];\n fragmentMatcher?: FragmentMatcher;\n};\n\nexport class LocalState {\n private cache: ApolloCache;\n private client?: ApolloClient;\n private resolvers?: Resolvers;\n private fragmentMatcher?: FragmentMatcher;\n private selectionsToResolveCache = new WeakMap<\n ExecutableDefinitionNode,\n Set\n >();\n\n constructor({\n cache,\n client,\n resolvers,\n fragmentMatcher,\n }: LocalStateOptions) {\n this.cache = cache;\n\n if (client) {\n this.client = client;\n }\n\n if (resolvers) {\n this.addResolvers(resolvers);\n }\n\n if (fragmentMatcher) {\n this.setFragmentMatcher(fragmentMatcher);\n }\n }\n\n public addResolvers(resolvers: Resolvers | Resolvers[]) {\n this.resolvers = this.resolvers || {};\n if (Array.isArray(resolvers)) {\n resolvers.forEach((resolverGroup) => {\n this.resolvers = mergeDeep(this.resolvers, resolverGroup);\n });\n } else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n }\n\n public setResolvers(resolvers: Resolvers | Resolvers[]) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n }\n\n public getResolvers() {\n return this.resolvers || {};\n }\n\n // Run local client resolvers against the incoming query and remote data.\n // Locally resolved field values are merged with the incoming remote data,\n // and returned. Note that locally resolved fields will overwrite\n // remote data using the same field name.\n public async runResolvers({\n document,\n remoteResult,\n context,\n variables,\n onlyRunForcedResolvers = false,\n }: {\n document: DocumentNode | null;\n remoteResult: FetchResult;\n context?: Record;\n variables?: Record;\n onlyRunForcedResolvers?: boolean;\n }): Promise> {\n if (document) {\n return this.resolveDocument(\n document,\n remoteResult.data,\n context,\n variables,\n this.fragmentMatcher,\n onlyRunForcedResolvers\n ).then((localResult) => ({\n ...remoteResult,\n data: localResult.result,\n }));\n }\n\n return remoteResult;\n }\n\n public setFragmentMatcher(fragmentMatcher: FragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n }\n\n public getFragmentMatcher(): FragmentMatcher | undefined {\n return this.fragmentMatcher;\n }\n\n // Client queries contain everything in the incoming document (if a @client\n // directive is found).\n public clientQuery(document: DocumentNode) {\n if (hasDirectives([\"client\"], document)) {\n if (this.resolvers) {\n return document;\n }\n }\n return null;\n }\n\n // Server queries are stripped of all @client based selection sets.\n public serverQuery(document: DocumentNode) {\n return removeClientSetsFromDocument(document);\n }\n\n public prepareContext(context?: Record) {\n const { cache } = this;\n return {\n ...context,\n cache,\n // Getting an entry's cache key is useful for local state resolvers.\n getCacheKey(obj: StoreObject) {\n return cache.identify(obj);\n },\n };\n }\n\n // To support `@client @export(as: \"someVar\")` syntax, we'll first resolve\n // @client @export fields locally, then pass the resolved values back to be\n // used alongside the original operation variables.\n public async addExportedVariables(\n document: DocumentNode,\n variables: TVars = {} as TVars,\n context = {}\n ): /* returns at least the variables that were passed in */ Promise {\n if (document) {\n return this.resolveDocument(\n document,\n this.buildRootValueFromCache(document, variables) || {},\n this.prepareContext(context),\n variables\n ).then((data) => ({\n ...variables,\n ...data.exportedVariables,\n }));\n }\n\n return {\n ...variables,\n };\n }\n\n public shouldForceResolvers(document: ASTNode) {\n let forceResolvers = false;\n visit(document, {\n Directive: {\n enter(node) {\n if (node.name.value === \"client\" && node.arguments) {\n forceResolvers = node.arguments.some(\n (arg) =>\n arg.name.value === \"always\" &&\n arg.value.kind === \"BooleanValue\" &&\n arg.value.value === true\n );\n if (forceResolvers) {\n return BREAK;\n }\n }\n },\n },\n });\n return forceResolvers;\n }\n\n // Query the cache and return matching data.\n private buildRootValueFromCache(\n document: DocumentNode,\n variables?: Record\n ) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n }\n\n private async resolveDocument(\n document: DocumentNode,\n rootValue: TData,\n context: any = {},\n variables: VariableMap = {},\n fragmentMatcher: FragmentMatcher = () => true,\n onlyRunForcedResolvers: boolean = false\n ) {\n const mainDefinition = getMainDefinition(\n document\n ) as OperationDefinitionNode;\n const fragments = getFragmentDefinitions(document);\n const fragmentMap = createFragmentMap(fragments);\n const selectionsToResolve = this.collectSelectionsToResolve(\n mainDefinition,\n fragmentMap\n );\n\n const definitionOperation = mainDefinition.operation;\n\n const defaultOperationType =\n definitionOperation ?\n definitionOperation.charAt(0).toUpperCase() +\n definitionOperation.slice(1)\n : \"Query\";\n\n const { cache, client } = this;\n const execContext: ExecContext = {\n fragmentMap,\n context: {\n ...context,\n cache,\n client,\n },\n variables,\n fragmentMatcher,\n defaultOperationType,\n exportedVariables: {},\n selectionsToResolve,\n onlyRunForcedResolvers,\n };\n const isClientFieldDescendant = false;\n\n return this.resolveSelectionSet(\n mainDefinition.selectionSet,\n isClientFieldDescendant,\n rootValue,\n execContext\n ).then((result) => ({\n result,\n exportedVariables: execContext.exportedVariables,\n }));\n }\n\n private async resolveSelectionSet(\n selectionSet: SelectionSetNode,\n isClientFieldDescendant: boolean,\n rootValue: TData,\n execContext: ExecContext\n ) {\n const { fragmentMap, context, variables } = execContext;\n const resultsToMerge: TData[] = [rootValue];\n\n const execute = async (selection: SelectionNode): Promise => {\n if (\n !isClientFieldDescendant &&\n !execContext.selectionsToResolve.has(selection)\n ) {\n // Skip selections without @client directives\n // (still processing if one of the ancestors or one of the child fields has @client directive)\n return;\n }\n if (!shouldInclude(selection, variables)) {\n // Skip this entirely.\n return;\n }\n\n if (isField(selection)) {\n return this.resolveField(\n selection,\n isClientFieldDescendant,\n rootValue,\n execContext\n ).then((fieldResult) => {\n if (typeof fieldResult !== \"undefined\") {\n resultsToMerge.push({\n [resultKeyNameFromField(selection)]: fieldResult,\n } as TData);\n }\n });\n }\n\n let fragment: InlineFragmentNode | FragmentDefinitionNode;\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n // This is a named fragment.\n fragment = fragmentMap[selection.name.value];\n invariant(fragment, `No fragment named %s`, selection.name.value);\n }\n\n if (fragment && fragment.typeCondition) {\n const typeCondition = fragment.typeCondition.name.value;\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return this.resolveSelectionSet(\n fragment.selectionSet,\n isClientFieldDescendant,\n rootValue,\n execContext\n ).then((fragmentResult) => {\n resultsToMerge.push(fragmentResult);\n });\n }\n }\n };\n\n return Promise.all(selectionSet.selections.map(execute)).then(function () {\n return mergeDeepArray(resultsToMerge);\n });\n }\n\n private async resolveField(\n field: FieldNode,\n isClientFieldDescendant: boolean,\n rootValue: any,\n execContext: ExecContext\n ): Promise {\n if (!rootValue) {\n return null;\n }\n\n const { variables } = execContext;\n const fieldName = field.name.value;\n const aliasedFieldName = resultKeyNameFromField(field);\n const aliasUsed = fieldName !== aliasedFieldName;\n const defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n let resultPromise = Promise.resolve(defaultResult);\n\n // Usually all local resolvers are run when passing through here, but\n // if we've specifically identified that we only want to run forced\n // resolvers (that is, resolvers for fields marked with\n // `@client(always: true)`), then we'll skip running non-forced resolvers.\n if (\n !execContext.onlyRunForcedResolvers ||\n this.shouldForceResolvers(field)\n ) {\n const resolverType =\n rootValue.__typename || execContext.defaultOperationType;\n const resolverMap = this.resolvers && this.resolvers[resolverType];\n if (resolverMap) {\n const resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n if (resolve) {\n resultPromise = Promise.resolve(\n // In case the resolve function accesses reactive variables,\n // set cacheSlot to the current cache instance.\n cacheSlot.withValue(this.cache, resolve, [\n rootValue,\n argumentsObjectFromField(field, variables),\n execContext.context,\n { field, fragmentMap: execContext.fragmentMap },\n ])\n );\n }\n }\n }\n\n return resultPromise.then((result = defaultResult) => {\n // If an @export directive is associated with the current field, store\n // the `as` export variable name and current result for later use.\n if (field.directives) {\n field.directives.forEach((directive) => {\n if (directive.name.value === \"export\" && directive.arguments) {\n directive.arguments.forEach((arg) => {\n if (arg.name.value === \"as\" && arg.value.kind === \"StringValue\") {\n execContext.exportedVariables[arg.value.value] = result;\n }\n });\n }\n });\n }\n\n // Handle all scalar types here.\n if (!field.selectionSet) {\n return result;\n }\n\n // From here down, the field has a selection set, which means it's trying\n // to query a GraphQLObjectType.\n if (result == null) {\n // Basically any field in a GraphQL response can be null, or missing\n return result;\n }\n\n const isClientField =\n field.directives?.some((d) => d.name.value === \"client\") ?? false;\n\n if (Array.isArray(result)) {\n return this.resolveSubSelectedArray(\n field,\n isClientFieldDescendant || isClientField,\n result,\n execContext\n );\n }\n\n // Returned value is an object, and the query has a sub-selection. Recurse.\n if (field.selectionSet) {\n return this.resolveSelectionSet(\n field.selectionSet,\n isClientFieldDescendant || isClientField,\n result,\n execContext\n );\n }\n });\n }\n\n private resolveSubSelectedArray(\n field: FieldNode,\n isClientFieldDescendant: boolean,\n result: any[],\n execContext: ExecContext\n ): any {\n return Promise.all(\n result.map((item) => {\n if (item === null) {\n return null;\n }\n\n // This is a nested array, recurse.\n if (Array.isArray(item)) {\n return this.resolveSubSelectedArray(\n field,\n isClientFieldDescendant,\n item,\n execContext\n );\n }\n\n // This is an object, run the selection set on it.\n if (field.selectionSet) {\n return this.resolveSelectionSet(\n field.selectionSet,\n isClientFieldDescendant,\n item,\n execContext\n );\n }\n })\n );\n }\n\n // Collect selection nodes on paths from document root down to all @client directives.\n // This function takes into account transitive fragment spreads.\n // Complexity equals to a single `visit` over the full document.\n private collectSelectionsToResolve(\n mainDefinition: OperationDefinitionNode,\n fragmentMap: FragmentMap\n ): Set {\n const isSingleASTNode = (\n node: ASTNode | readonly ASTNode[]\n ): node is ASTNode => !Array.isArray(node);\n const selectionsToResolveCache = this.selectionsToResolveCache;\n\n function collectByDefinition(\n definitionNode: ExecutableDefinitionNode\n ): Set {\n if (!selectionsToResolveCache.has(definitionNode)) {\n const matches = new Set();\n selectionsToResolveCache.set(definitionNode, matches);\n\n visit(definitionNode, {\n Directive(node: DirectiveNode, _, __, ___, ancestors) {\n if (node.name.value === \"client\") {\n ancestors.forEach((node) => {\n if (isSingleASTNode(node) && isSelectionNode(node)) {\n matches.add(node);\n }\n });\n }\n },\n FragmentSpread(spread: FragmentSpreadNode, _, __, ___, ancestors) {\n const fragment = fragmentMap[spread.name.value];\n invariant(fragment, `No fragment named %s`, spread.name.value);\n\n const fragmentSelections = collectByDefinition(fragment);\n if (fragmentSelections.size > 0) {\n // Fragment for this spread contains @client directive (either directly or transitively)\n // Collect selection nodes on paths from the root down to fields with the @client directive\n ancestors.forEach((node) => {\n if (isSingleASTNode(node) && isSelectionNode(node)) {\n matches.add(node);\n }\n });\n matches.add(spread);\n fragmentSelections.forEach((selection) => {\n matches.add(selection);\n });\n }\n },\n });\n }\n return selectionsToResolveCache.get(definitionNode)!;\n }\n return collectByDefinition(mainDefinition);\n }\n}\n","import { invariant, newInvariantError } from \"../utilities/globals/index.js\";\n\nimport type { DocumentNode, FormattedExecutionResult } from \"graphql\";\n\nimport type { FetchResult, GraphQLRequest } from \"../link/core/index.js\";\nimport { ApolloLink, execute } from \"../link/core/index.js\";\nimport type { ApolloCache, DataProxy, Reference } from \"../cache/index.js\";\nimport type { DocumentTransform } from \"../utilities/index.js\";\nimport type { Observable } from \"../utilities/index.js\";\nimport { version } from \"../version.js\";\nimport type { UriFunction } from \"../link/http/index.js\";\nimport { HttpLink } from \"../link/http/index.js\";\n\nimport { QueryManager } from \"./QueryManager.js\";\nimport type { ObservableQuery } from \"./ObservableQuery.js\";\n\nimport type {\n ApolloQueryResult,\n DefaultContext,\n OperationVariables,\n Resolvers,\n RefetchQueriesOptions,\n RefetchQueriesResult,\n InternalRefetchQueriesResult,\n RefetchQueriesInclude,\n} from \"./types.js\";\n\nimport type {\n QueryOptions,\n WatchQueryOptions,\n MutationOptions,\n SubscriptionOptions,\n WatchQueryFetchPolicy,\n} from \"./watchQueryOptions.js\";\n\nimport type { FragmentMatcher } from \"./LocalState.js\";\nimport { LocalState } from \"./LocalState.js\";\n\nexport interface DefaultOptions {\n watchQuery?: Partial>;\n query?: Partial>;\n mutate?: Partial>;\n}\n\nexport interface DevtoolsOptions {\n /**\n * If `true`, the [Apollo Client Devtools](https://www.apollographql.com/docs/react/development-testing/developer-tooling/#apollo-client-devtools) browser extension can connect to this `ApolloClient` instance.\n *\n * The default value is `false` in production and `true` in development if there is a `window` object.\n */\n enabled?: boolean;\n\n /**\n * Optional name for this `ApolloClient` instance in the devtools. This is\n * useful when you instantiate multiple clients and want to be able to\n * identify them by name.\n */\n name?: string;\n}\n\nlet hasSuggestedDevtools = false;\n\nexport interface ApolloClientOptions {\n /**\n * The URI of the GraphQL endpoint that Apollo Client will communicate with.\n *\n * One of `uri` or `link` is **required**. If you provide both, `link` takes precedence.\n */\n uri?: string | UriFunction;\n credentials?: string;\n /**\n * An object representing headers to include in every HTTP request, such as `{Authorization: 'Bearer 1234'}`\n *\n * This value will be ignored when using the `link` option.\n */\n headers?: Record;\n /**\n * You can provide an `ApolloLink` instance to serve as Apollo Client's network layer. For more information, see [Advanced HTTP networking](https://www.apollographql.com/docs/react/networking/advanced-http-networking/).\n *\n * One of `uri` or `link` is **required**. If you provide both, `link` takes precedence.\n */\n link?: ApolloLink;\n /**\n * The cache that Apollo Client should use to store query results locally. The recommended cache is `InMemoryCache`, which is provided by the `@apollo/client` package.\n *\n * For more information, see [Configuring the cache](https://www.apollographql.com/docs/react/caching/cache-configuration/).\n */\n cache: ApolloCache;\n /**\n * The time interval (in milliseconds) before Apollo Client force-fetches queries after a server-side render.\n *\n * @defaultValue `0` (no delay)\n */\n ssrForceFetchDelay?: number;\n /**\n * When using Apollo Client for [server-side rendering](https://www.apollographql.com/docs/react/performance/server-side-rendering/), set this to `true` so that the [`getDataFromTree` function](../react/ssr/#getdatafromtree) can work effectively.\n *\n * @defaultValue `false`\n */\n ssrMode?: boolean;\n /**\n * If `true`, the [Apollo Client Devtools](https://www.apollographql.com/docs/react/development-testing/developer-tooling/#apollo-client-devtools) browser extension can connect to Apollo Client.\n *\n * The default value is `false` in production and `true` in development (if there is a `window` object).\n * @deprecated Please use the `devtools.enabled` option.\n */\n connectToDevTools?: boolean;\n /**\n * If `false`, Apollo Client sends every created query to the server, even if a _completely_ identical query (identical in terms of query string, variable values, and operationName) is already in flight.\n *\n * @defaultValue `true`\n */\n queryDeduplication?: boolean;\n /**\n * Provide this object to set application-wide default values for options you can provide to the `watchQuery`, `query`, and `mutate` functions. See below for an example object.\n *\n * See this [example object](https://www.apollographql.com/docs/react/api/core/ApolloClient#example-defaultoptions-object).\n */\n defaultOptions?: DefaultOptions;\n defaultContext?: Partial;\n /**\n * If `true`, Apollo Client will assume results read from the cache are never mutated by application code, which enables substantial performance optimizations.\n *\n * @defaultValue `false`\n */\n assumeImmutableResults?: boolean;\n resolvers?: Resolvers | Resolvers[];\n typeDefs?: string | string[] | DocumentNode | DocumentNode[];\n fragmentMatcher?: FragmentMatcher;\n /**\n * A custom name (e.g., `iOS`) that identifies this particular client among your set of clients. Apollo Server and Apollo Studio use this property as part of the [client awareness](https://www.apollographql.com/docs/apollo-server/monitoring/metrics#identifying-distinct-clients) feature.\n */\n name?: string;\n /**\n * A custom version that identifies the current version of this particular client (e.g., `1.2`). Apollo Server and Apollo Studio use this property as part of the [client awareness](https://www.apollographql.com/docs/apollo-server/monitoring/metrics#identifying-distinct-clients) feature.\n *\n * This is **not** the version of Apollo Client that you are using, but rather any version string that helps you differentiate between versions of your client.\n */\n version?: string;\n documentTransform?: DocumentTransform;\n\n /**\n * Configuration used by the [Apollo Client Devtools extension](https://www.apollographql.com/docs/react/development-testing/developer-tooling/#apollo-client-devtools) for this client.\n *\n * @since 3.11.0\n */\n devtools?: DevtoolsOptions;\n\n /**\n * Determines if data masking is enabled for the client.\n *\n * @defaultValue false\n */\n dataMasking?: boolean;\n}\n\n// Though mergeOptions now resides in @apollo/client/utilities, it was\n// previously declared and exported from this module, and then reexported from\n// @apollo/client/core. Since we need to preserve that API anyway, the easiest\n// solution is to reexport mergeOptions where it was previously declared (here).\nimport { mergeOptions } from \"../utilities/index.js\";\nimport { getApolloClientMemoryInternals } from \"../utilities/caching/getMemoryInternals.js\";\nimport type {\n WatchFragmentOptions,\n WatchFragmentResult,\n} from \"../cache/core/cache.js\";\nimport type { MaybeMasked, Unmasked } from \"../masking/index.js\";\nexport { mergeOptions };\n\n/**\n * This is the primary Apollo Client class. It is used to send GraphQL documents (i.e. queries\n * and mutations) to a GraphQL spec-compliant server over an `ApolloLink` instance,\n * receive results from the server and cache the results in a store. It also delivers updates\n * to GraphQL queries through `Observable` instances.\n */\nexport class ApolloClient implements DataProxy {\n public link: ApolloLink;\n public cache: ApolloCache;\n public disableNetworkFetches: boolean;\n public version: string;\n public queryDeduplication: boolean;\n public defaultOptions: DefaultOptions;\n public readonly typeDefs: ApolloClientOptions[\"typeDefs\"];\n public readonly devtoolsConfig: DevtoolsOptions;\n\n private queryManager: QueryManager;\n private devToolsHookCb?: Function;\n private resetStoreCallbacks: Array<() => Promise> = [];\n private clearStoreCallbacks: Array<() => Promise> = [];\n private localState: LocalState;\n\n /**\n * Constructs an instance of `ApolloClient`.\n *\n * @example\n * ```js\n * import { ApolloClient, InMemoryCache } from '@apollo/client';\n *\n * const cache = new InMemoryCache();\n *\n * const client = new ApolloClient({\n * // Provide required constructor fields\n * cache: cache,\n * uri: 'http://localhost:4000/',\n *\n * // Provide some optional constructor fields\n * name: 'react-web-client',\n * version: '1.3',\n * queryDeduplication: false,\n * defaultOptions: {\n * watchQuery: {\n * fetchPolicy: 'cache-and-network',\n * },\n * },\n * });\n * ```\n */\n constructor(options: ApolloClientOptions) {\n if (!options.cache) {\n throw newInvariantError(\n \"To initialize Apollo Client, you must specify a 'cache' property \" +\n \"in the options object. \\n\" +\n \"For more information, please visit: https://go.apollo.dev/c/docs\"\n );\n }\n\n const {\n uri,\n credentials,\n headers,\n cache,\n documentTransform,\n ssrMode = false,\n ssrForceFetchDelay = 0,\n // Expose the client instance as window.__APOLLO_CLIENT__ and call\n // onBroadcast in queryManager.broadcastQueries to enable browser\n // devtools, but disable them by default in production.\n connectToDevTools,\n queryDeduplication = true,\n defaultOptions,\n defaultContext,\n assumeImmutableResults = cache.assumeImmutableResults,\n resolvers,\n typeDefs,\n fragmentMatcher,\n name: clientAwarenessName,\n version: clientAwarenessVersion,\n devtools,\n dataMasking,\n } = options;\n\n let { link } = options;\n\n if (!link) {\n link =\n uri ? new HttpLink({ uri, credentials, headers }) : ApolloLink.empty();\n }\n\n this.link = link;\n this.cache = cache;\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.queryDeduplication = queryDeduplication;\n this.defaultOptions = defaultOptions || Object.create(null);\n this.typeDefs = typeDefs;\n this.devtoolsConfig = {\n ...devtools,\n enabled: devtools?.enabled ?? connectToDevTools,\n };\n\n if (this.devtoolsConfig.enabled === undefined) {\n this.devtoolsConfig.enabled = __DEV__;\n }\n\n if (ssrForceFetchDelay) {\n setTimeout(\n () => (this.disableNetworkFetches = false),\n ssrForceFetchDelay\n );\n }\n\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.watchFragment = this.watchFragment.bind(this);\n this.resetStore = this.resetStore.bind(this);\n this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this);\n\n this.version = version;\n\n this.localState = new LocalState({\n cache,\n client: this,\n resolvers,\n fragmentMatcher,\n });\n\n this.queryManager = new QueryManager({\n cache: this.cache,\n link: this.link,\n defaultOptions: this.defaultOptions,\n defaultContext,\n documentTransform,\n queryDeduplication,\n ssrMode,\n dataMasking: !!dataMasking,\n clientAwareness: {\n name: clientAwarenessName!,\n version: clientAwarenessVersion!,\n },\n localState: this.localState,\n assumeImmutableResults,\n onBroadcast:\n this.devtoolsConfig.enabled ?\n () => {\n if (this.devToolsHookCb) {\n this.devToolsHookCb({\n action: {},\n state: {\n queries: this.queryManager.getQueryStore(),\n mutations: this.queryManager.mutationStore || {},\n },\n dataWithOptimisticResults: this.cache.extract(true),\n });\n }\n }\n : void 0,\n });\n\n if (this.devtoolsConfig.enabled) this.connectToDevTools();\n }\n\n private connectToDevTools() {\n if (typeof window === \"undefined\") {\n return;\n }\n\n type DevToolsConnector = {\n push(client: ApolloClient): void;\n };\n const windowWithDevTools = window as Window & {\n [devtoolsSymbol]?: DevToolsConnector;\n __APOLLO_CLIENT__?: ApolloClient;\n };\n const devtoolsSymbol = Symbol.for(\"apollo.devtools\");\n (windowWithDevTools[devtoolsSymbol] =\n windowWithDevTools[devtoolsSymbol] || ([] as DevToolsConnector)).push(\n this\n );\n windowWithDevTools.__APOLLO_CLIENT__ = this;\n\n /**\n * Suggest installing the devtools for developers who don't have them\n */\n if (!hasSuggestedDevtools && __DEV__) {\n hasSuggestedDevtools = true;\n if (\n window.document &&\n window.top === window.self &&\n /^(https?|file):$/.test(window.location.protocol)\n ) {\n setTimeout(() => {\n if (!(window as any).__APOLLO_DEVTOOLS_GLOBAL_HOOK__) {\n const nav = window.navigator;\n const ua = nav && nav.userAgent;\n let url: string | undefined;\n if (typeof ua === \"string\") {\n if (ua.indexOf(\"Chrome/\") > -1) {\n url =\n \"https://chrome.google.com/webstore/detail/\" +\n \"apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm\";\n } else if (ua.indexOf(\"Firefox/\") > -1) {\n url =\n \"https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/\";\n }\n }\n if (url) {\n invariant.log(\n \"Download the Apollo DevTools for a better development \" +\n \"experience: %s\",\n url\n );\n }\n }\n }, 10000);\n }\n }\n }\n\n /**\n * The `DocumentTransform` used to modify GraphQL documents before a request\n * is made. If a custom `DocumentTransform` is not provided, this will be the\n * default document transform.\n */\n get documentTransform() {\n return this.queryManager.documentTransform;\n }\n\n /**\n * Call this method to terminate any active client processes, making it safe\n * to dispose of this `ApolloClient` instance.\n */\n public stop() {\n this.queryManager.stop();\n }\n\n /**\n * This watches the cache store of the query according to the options specified and\n * returns an `ObservableQuery`. We can subscribe to this `ObservableQuery` and\n * receive updated results through an observer when the cache store changes.\n *\n * Note that this method is not an implementation of GraphQL subscriptions. Rather,\n * it uses Apollo's store in order to reactively deliver updates to your query results.\n *\n * For example, suppose you call watchQuery on a GraphQL query that fetches a person's\n * first and last name and this person has a particular object identifier, provided by\n * dataIdFromObject. Later, a different query fetches that same person's\n * first and last name and the first name has now changed. Then, any observers associated\n * with the results of the first query will be updated with a new result object.\n *\n * Note that if the cache does not change, the subscriber will *not* be notified.\n *\n * See [here](https://medium.com/apollo-stack/the-concepts-of-graphql-bc68bd819be3#.3mb0cbcmc) for\n * a description of store reactivity.\n */\n public watchQuery<\n T = any,\n TVariables extends OperationVariables = OperationVariables,\n >(options: WatchQueryOptions): ObservableQuery {\n if (this.defaultOptions.watchQuery) {\n options = mergeOptions(this.defaultOptions.watchQuery, options);\n }\n\n // XXX Overwriting options is probably not the best way to do this long term...\n if (\n this.disableNetworkFetches &&\n (options.fetchPolicy === \"network-only\" ||\n options.fetchPolicy === \"cache-and-network\")\n ) {\n options = { ...options, fetchPolicy: \"cache-first\" };\n }\n\n return this.queryManager.watchQuery(options);\n }\n\n /**\n * This resolves a single query according to the options specified and\n * returns a `Promise` which is either resolved with the resulting data\n * or rejected with an error.\n *\n * @param options - An object of type `QueryOptions` that allows us to\n * describe how this query should be treated e.g. whether it should hit the\n * server at all or just resolve from the cache, etc.\n */\n public query<\n T = any,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: QueryOptions\n ): Promise>> {\n if (this.defaultOptions.query) {\n options = mergeOptions(this.defaultOptions.query, options);\n }\n\n invariant(\n (options.fetchPolicy as WatchQueryFetchPolicy) !== \"cache-and-network\",\n \"The cache-and-network fetchPolicy does not work with client.query, because \" +\n \"client.query can only return a single result. Please use client.watchQuery \" +\n \"to receive multiple results from the cache and the network, or consider \" +\n \"using a different fetchPolicy, such as cache-first or network-only.\"\n );\n\n if (this.disableNetworkFetches && options.fetchPolicy === \"network-only\") {\n options = { ...options, fetchPolicy: \"cache-first\" };\n }\n\n return this.queryManager.query(options);\n }\n\n /**\n * This resolves a single mutation according to the options specified and returns a\n * Promise which is either resolved with the resulting data or rejected with an\n * error. In some cases both `data` and `errors` might be undefined, for example\n * when `errorPolicy` is set to `'ignore'`.\n *\n * It takes options as an object with the following keys and values:\n */\n public mutate<\n TData = any,\n TVariables extends OperationVariables = OperationVariables,\n TContext extends Record = DefaultContext,\n TCache extends ApolloCache = ApolloCache,\n >(\n options: MutationOptions\n ): Promise>> {\n if (this.defaultOptions.mutate) {\n options = mergeOptions(this.defaultOptions.mutate, options);\n }\n return this.queryManager.mutate(\n options\n );\n }\n\n /**\n * This subscribes to a graphql subscription according to the options specified and returns an\n * `Observable` which either emits received data or an error.\n */\n public subscribe<\n T = any,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: SubscriptionOptions\n ): Observable>> {\n const id = this.queryManager.generateQueryId();\n\n return this.queryManager\n .startGraphQLSubscription(options)\n .map((result) => ({\n ...result,\n data: this.queryManager.maskOperation({\n document: options.query,\n data: result.data,\n fetchPolicy: options.fetchPolicy,\n id,\n }),\n }));\n }\n\n /**\n * Tries to read some data from the store in the shape of the provided\n * GraphQL query without making a network request. This method will start at\n * the root query. To start at a specific id returned by `dataIdFromObject`\n * use `readFragment`.\n *\n * @param optimistic - Set to `true` to allow `readQuery` to return\n * optimistic results. Is `false` by default.\n */\n public readQuery(\n options: DataProxy.Query,\n optimistic: boolean = false\n ): Unmasked | null {\n return this.cache.readQuery(options, optimistic);\n }\n\n /**\n * Watches the cache store of the fragment according to the options specified\n * and returns an `Observable`. We can subscribe to this\n * `Observable` and receive updated results through an\n * observer when the cache store changes.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are reading. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n *\n * @since 3.10.0\n * @param options - An object of type `WatchFragmentOptions` that allows\n * the cache to identify the fragment and optionally specify whether to react\n * to optimistic updates.\n */\n\n public watchFragment<\n TFragmentData = unknown,\n TVariables = OperationVariables,\n >(\n options: WatchFragmentOptions\n ): Observable> {\n return this.cache.watchFragment({\n ...options,\n [Symbol.for(\"apollo.dataMasking\")]: this.queryManager.dataMasking,\n });\n }\n\n /**\n * Tries to read some data from the store in the shape of the provided\n * GraphQL fragment without making a network request. This method will read a\n * GraphQL fragment from any arbitrary id that is currently cached, unlike\n * `readQuery` which will only read from the root query.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are reading. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n *\n * @param optimistic - Set to `true` to allow `readFragment` to return\n * optimistic results. Is `false` by default.\n */\n public readFragment(\n options: DataProxy.Fragment,\n optimistic: boolean = false\n ): Unmasked | null {\n return this.cache.readFragment(options, optimistic);\n }\n\n /**\n * Writes some data in the shape of the provided GraphQL query directly to\n * the store. This method will start at the root query. To start at a\n * specific id returned by `dataIdFromObject` then use `writeFragment`.\n */\n public writeQuery(\n options: DataProxy.WriteQueryOptions\n ): Reference | undefined {\n const ref = this.cache.writeQuery(options);\n\n if (options.broadcast !== false) {\n this.queryManager.broadcastQueries();\n }\n\n return ref;\n }\n\n /**\n * Writes some data in the shape of the provided GraphQL fragment directly to\n * the store. This method will write to a GraphQL fragment from any arbitrary\n * id that is currently cached, unlike `writeQuery` which will only write\n * from the root query.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are writing. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n */\n public writeFragment(\n options: DataProxy.WriteFragmentOptions\n ): Reference | undefined {\n const ref = this.cache.writeFragment(options);\n\n if (options.broadcast !== false) {\n this.queryManager.broadcastQueries();\n }\n\n return ref;\n }\n\n public __actionHookForDevTools(cb: () => any) {\n this.devToolsHookCb = cb;\n }\n\n public __requestRaw(\n payload: GraphQLRequest\n ): Observable {\n return execute(this.link, payload);\n }\n\n /**\n * Resets your entire store by clearing out your cache and then re-executing\n * all of your active queries. This makes it so that you may guarantee that\n * there is no data left in your store from a time before you called this\n * method.\n *\n * `resetStore()` is useful when your user just logged out. You’ve removed the\n * user session, and you now want to make sure that any references to data you\n * might have fetched while the user session was active is gone.\n *\n * It is important to remember that `resetStore()` *will* refetch any active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n */\n public resetStore(): Promise[] | null> {\n return Promise.resolve()\n .then(() =>\n this.queryManager.clearStore({\n discardWatches: false,\n })\n )\n .then(() => Promise.all(this.resetStoreCallbacks.map((fn) => fn())))\n .then(() => this.reFetchObservableQueries());\n }\n\n /**\n * Remove all data from the store. Unlike `resetStore`, `clearStore` will\n * not refetch any active queries.\n */\n public clearStore(): Promise {\n return Promise.resolve()\n .then(() =>\n this.queryManager.clearStore({\n discardWatches: true,\n })\n )\n .then(() => Promise.all(this.clearStoreCallbacks.map((fn) => fn())));\n }\n\n /**\n * Allows callbacks to be registered that are executed when the store is\n * reset. `onResetStore` returns an unsubscribe function that can be used\n * to remove registered callbacks.\n */\n public onResetStore(cb: () => Promise): () => void {\n this.resetStoreCallbacks.push(cb);\n return () => {\n this.resetStoreCallbacks = this.resetStoreCallbacks.filter(\n (c) => c !== cb\n );\n };\n }\n\n /**\n * Allows callbacks to be registered that are executed when the store is\n * cleared. `onClearStore` returns an unsubscribe function that can be used\n * to remove registered callbacks.\n */\n public onClearStore(cb: () => Promise): () => void {\n this.clearStoreCallbacks.push(cb);\n return () => {\n this.clearStoreCallbacks = this.clearStoreCallbacks.filter(\n (c) => c !== cb\n );\n };\n }\n\n /**\n * Refetches all of your active queries.\n *\n * `reFetchObservableQueries()` is useful if you want to bring the client back to proper state in case of a network outage\n *\n * It is important to remember that `reFetchObservableQueries()` *will* refetch any active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n * Takes optional parameter `includeStandby` which will include queries in standby-mode when refetching.\n */\n public reFetchObservableQueries(\n includeStandby?: boolean\n ): Promise[]> {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n }\n\n /**\n * Refetches specified active queries. Similar to \"reFetchObservableQueries()\" but with a specific list of queries.\n *\n * `refetchQueries()` is useful for use cases to imperatively refresh a selection of queries.\n *\n * It is important to remember that `refetchQueries()` *will* refetch specified active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n */\n public refetchQueries<\n TCache extends ApolloCache = ApolloCache,\n TResult = Promise>,\n >(\n options: RefetchQueriesOptions\n ): RefetchQueriesResult {\n const map = this.queryManager.refetchQueries(\n options as RefetchQueriesOptions, TResult>\n );\n const queries: ObservableQuery[] = [];\n const results: InternalRefetchQueriesResult[] = [];\n\n map.forEach((result, obsQuery) => {\n queries.push(obsQuery);\n results.push(result);\n });\n\n const result = Promise.all(\n results as TResult[]\n ) as RefetchQueriesResult;\n\n // In case you need the raw results immediately, without awaiting\n // Promise.all(results):\n result.queries = queries;\n result.results = results;\n\n // If you decide to ignore the result Promise because you're using\n // result.queries and result.results instead, you shouldn't have to worry\n // about preventing uncaught rejections for the Promise.all result.\n result.catch((error) => {\n invariant.debug(\n `In client.refetchQueries, Promise.all promise rejected with error %o`,\n error\n );\n });\n\n return result;\n }\n\n /**\n * Get all currently active `ObservableQuery` objects, in a `Map` keyed by\n * query ID strings.\n *\n * An \"active\" query is one that has observers and a `fetchPolicy` other than\n * \"standby\" or \"cache-only\".\n *\n * You can include all `ObservableQuery` objects (including the inactive ones)\n * by passing \"all\" instead of \"active\", or you can include just a subset of\n * active queries by passing an array of query names or DocumentNode objects.\n */\n public getObservableQueries(\n include: RefetchQueriesInclude = \"active\"\n ): Map> {\n return this.queryManager.getObservableQueries(include);\n }\n\n /**\n * Exposes the cache's complete state, in a serializable format for later restoration.\n */\n public extract(optimistic?: boolean): TCacheShape {\n return this.cache.extract(optimistic);\n }\n\n /**\n * Replaces existing state in the cache (if any) with the values expressed by\n * `serializedState`.\n *\n * Called when hydrating a cache (server side rendering, or offline storage),\n * and also (potentially) during hot reloads.\n */\n public restore(serializedState: TCacheShape): ApolloCache {\n return this.cache.restore(serializedState);\n }\n\n /**\n * Add additional local resolvers.\n */\n public addResolvers(resolvers: Resolvers | Resolvers[]) {\n this.localState.addResolvers(resolvers);\n }\n\n /**\n * Set (override existing) local resolvers.\n */\n public setResolvers(resolvers: Resolvers | Resolvers[]) {\n this.localState.setResolvers(resolvers);\n }\n\n /**\n * Get all registered local resolvers.\n */\n public getResolvers() {\n return this.localState.getResolvers();\n }\n\n /**\n * Set a custom local state fragment matcher.\n */\n public setLocalStateFragmentMatcher(fragmentMatcher: FragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n }\n\n /**\n * Define a new ApolloLink (or link chain) that Apollo Client will use.\n */\n public setLink(newLink: ApolloLink) {\n this.link = this.queryManager.link = newLink;\n }\n\n public get defaultContext() {\n return this.queryManager.defaultContext;\n }\n\n /**\n * @experimental\n * This is not a stable API - it is used in development builds to expose\n * information to the DevTools.\n * Use at your own risk!\n * For more details, see [Memory Management](https://www.apollographql.com/docs/react/caching/memory-management/#measuring-cache-usage)\n *\n * @example\n * ```ts\n * console.log(client.getMemoryInternals())\n * ```\n * Logs output in the following JSON format:\n * @example\n * ```json\n *{\n * limits: {\n * parser: 1000,\n * canonicalStringify: 1000,\n * print: 2000,\n * 'documentTransform.cache': 2000,\n * 'queryManager.getDocumentInfo': 2000,\n * 'PersistedQueryLink.persistedQueryHashes': 2000,\n * 'fragmentRegistry.transform': 2000,\n * 'fragmentRegistry.lookup': 1000,\n * 'fragmentRegistry.findFragmentSpreads': 4000,\n * 'cache.fragmentQueryDocuments': 1000,\n * 'removeTypenameFromVariables.getVariableDefinitions': 2000,\n * 'inMemoryCache.maybeBroadcastWatch': 5000,\n * 'inMemoryCache.executeSelectionSet': 10000,\n * 'inMemoryCache.executeSubSelectedArray': 5000\n * },\n * sizes: {\n * parser: 26,\n * canonicalStringify: 4,\n * print: 14,\n * addTypenameDocumentTransform: [\n * {\n * cache: 14,\n * },\n * ],\n * queryManager: {\n * getDocumentInfo: 14,\n * documentTransforms: [\n * {\n * cache: 14,\n * },\n * {\n * cache: 14,\n * },\n * ],\n * },\n * fragmentRegistry: {\n * findFragmentSpreads: 34,\n * lookup: 20,\n * transform: 14,\n * },\n * cache: {\n * fragmentQueryDocuments: 22,\n * },\n * inMemoryCache: {\n * executeSelectionSet: 4345,\n * executeSubSelectedArray: 1206,\n * maybeBroadcastWatch: 32,\n * },\n * links: [\n * {\n * PersistedQueryLink: {\n * persistedQueryHashes: 14,\n * },\n * },\n * {\n * removeTypenameFromVariables: {\n * getVariableDefinitions: 14,\n * },\n * },\n * ],\n * },\n * }\n *```\n */\n public getMemoryInternals?: typeof getApolloClientMemoryInternals;\n}\n\nif (__DEV__) {\n ApolloClient.prototype.getMemoryInternals = getApolloClientMemoryInternals;\n}\n","import type {\n DocumentNode,\n FragmentDefinitionNode,\n InlineFragmentNode,\n} from \"graphql\";\nimport { wrap } from \"optimism\";\n\nimport type {\n StoreObject,\n Reference,\n DeepPartial,\n NoInfer,\n} from \"../../utilities/index.js\";\nimport {\n Observable,\n cacheSizes,\n defaultCacheSizes,\n getFragmentDefinition,\n getFragmentQueryDocument,\n mergeDeepArray,\n} from \"../../utilities/index.js\";\nimport type { DataProxy } from \"./types/DataProxy.js\";\nimport type { Cache } from \"./types/Cache.js\";\nimport { WeakCache } from \"@wry/caches\";\nimport { getApolloCacheMemoryInternals } from \"../../utilities/caching/getMemoryInternals.js\";\nimport type {\n OperationVariables,\n TypedDocumentNode,\n} from \"../../core/types.js\";\nimport type { MissingTree } from \"./types/common.js\";\nimport { equalByQuery } from \"../../core/equalByQuery.js\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { maskFragment } from \"../../masking/index.js\";\nimport type {\n FragmentType,\n MaybeMasked,\n Unmasked,\n} from \"../../masking/index.js\";\n\nexport type Transaction = (c: ApolloCache) => void;\n\n/**\n * Watched fragment options.\n */\nexport interface WatchFragmentOptions {\n /**\n * A GraphQL fragment document parsed into an AST with the `gql`\n * template literal.\n *\n * @docGroup 1. Required options\n */\n fragment: DocumentNode | TypedDocumentNode;\n /**\n * An object containing a `__typename` and primary key fields\n * (such as `id`) identifying the entity object from which the fragment will\n * be retrieved, or a `{ __ref: \"...\" }` reference, or a `string` ID\n * (uncommon).\n *\n * @docGroup 1. Required options\n */\n from: StoreObject | Reference | FragmentType> | string;\n /**\n * Any variables that the GraphQL fragment may depend on.\n *\n * @docGroup 2. Cache options\n */\n variables?: TVars;\n /**\n * The name of the fragment defined in the fragment document.\n *\n * Required if the fragment document includes more than one fragment,\n * optional otherwise.\n *\n * @docGroup 2. Cache options\n */\n fragmentName?: string;\n /**\n * If `true`, `watchFragment` returns optimistic results.\n *\n * The default value is `true`.\n *\n * @docGroup 2. Cache options\n */\n optimistic?: boolean;\n}\n\n/**\n * Watched fragment results.\n */\nexport type WatchFragmentResult =\n | {\n data: MaybeMasked;\n complete: true;\n missing?: never;\n }\n | {\n data: DeepPartial>;\n complete: false;\n missing: MissingTree;\n };\n\nexport abstract class ApolloCache implements DataProxy {\n public readonly assumeImmutableResults: boolean = false;\n\n // required to implement\n // core API\n public abstract read(\n query: Cache.ReadOptions\n ): Unmasked | null;\n public abstract write(\n write: Cache.WriteOptions\n ): Reference | undefined;\n public abstract diff(query: Cache.DiffOptions): Cache.DiffResult;\n public abstract watch(\n watch: Cache.WatchOptions\n ): () => void;\n\n // Empty the cache and restart all current watches (unless\n // options.discardWatches is true).\n public abstract reset(options?: Cache.ResetOptions): Promise;\n\n // Remove whole objects from the cache by passing just options.id, or\n // specific fields by passing options.field and/or options.args. If no\n // options.args are provided, all fields matching options.field (even\n // those with arguments) will be removed. Returns true iff any data was\n // removed from the cache.\n public abstract evict(options: Cache.EvictOptions): boolean;\n\n // initializer / offline / ssr API\n /**\n * Replaces existing state in the cache (if any) with the values expressed by\n * `serializedState`.\n *\n * Called when hydrating a cache (server side rendering, or offline storage),\n * and also (potentially) during hot reloads.\n */\n public abstract restore(\n serializedState: TSerialized\n ): ApolloCache;\n\n /**\n * Exposes the cache's complete state, in a serializable format for later restoration.\n */\n public abstract extract(optimistic?: boolean): TSerialized;\n\n // Optimistic API\n\n public abstract removeOptimistic(id: string): void;\n\n // Data masking API\n\n // Used by data masking to determine if an inline fragment with a type\n // condition matches a given typename.\n //\n // If not implemented by a cache subclass, data masking will effectively be\n // disabled since we will not be able to accurately determine if a given type\n // condition for a union or interface matches a particular type.\n public fragmentMatches?(\n fragment: InlineFragmentNode,\n typename: string\n ): boolean;\n\n // Function used to lookup a fragment when a fragment definition is not part\n // of the GraphQL document. This is useful for caches, such as InMemoryCache,\n // that register fragments ahead of time so they can be referenced by name.\n public lookupFragment(fragmentName: string): FragmentDefinitionNode | null {\n return null;\n }\n\n // Transactional API\n\n // The batch method is intended to replace/subsume both performTransaction\n // and recordOptimisticTransaction, but performTransaction came first, so we\n // provide a default batch implementation that's just another way of calling\n // performTransaction. Subclasses of ApolloCache (such as InMemoryCache) can\n // override the batch method to do more interesting things with its options.\n public batch(options: Cache.BatchOptions): U {\n const optimisticId =\n typeof options.optimistic === \"string\" ? options.optimistic\n : options.optimistic === false ? null\n : void 0;\n let updateResult: U;\n this.performTransaction(\n () => (updateResult = options.update(this)),\n optimisticId\n );\n return updateResult!;\n }\n\n public abstract performTransaction(\n transaction: Transaction,\n // Although subclasses may implement recordOptimisticTransaction\n // however they choose, the default implementation simply calls\n // performTransaction with a string as the second argument, allowing\n // performTransaction to handle both optimistic and non-optimistic\n // (broadcast-batching) transactions. Passing null for optimisticId is\n // also allowed, and indicates that performTransaction should apply\n // the transaction non-optimistically (ignoring optimistic data).\n optimisticId?: string | null\n ): void;\n\n public recordOptimisticTransaction(\n transaction: Transaction,\n optimisticId: string\n ) {\n this.performTransaction(transaction, optimisticId);\n }\n\n // Optional API\n\n // Called once per input document, allowing the cache to make static changes\n // to the query, such as adding __typename fields.\n public transformDocument(document: DocumentNode): DocumentNode {\n return document;\n }\n\n // Called before each ApolloLink request, allowing the cache to make dynamic\n // changes to the query, such as filling in missing fragment definitions.\n public transformForLink(document: DocumentNode): DocumentNode {\n return document;\n }\n\n public identify(object: StoreObject | Reference): string | undefined {\n return;\n }\n\n public gc(): string[] {\n return [];\n }\n\n public modify = Record>(\n options: Cache.ModifyOptions\n ): boolean {\n return false;\n }\n\n // DataProxy API\n public readQuery(\n options: Cache.ReadQueryOptions,\n optimistic = !!options.optimistic\n ): Unmasked | null {\n return this.read({\n ...options,\n rootId: options.id || \"ROOT_QUERY\",\n optimistic,\n });\n }\n\n /** {@inheritDoc @apollo/client!ApolloClient#watchFragment:member(1)} */\n public watchFragment(\n options: WatchFragmentOptions\n ): Observable> {\n const {\n fragment,\n fragmentName,\n from,\n optimistic = true,\n ...otherOptions\n } = options;\n const query = this.getFragmentDoc(fragment, fragmentName);\n // While our TypeScript types do not allow for `undefined` as a valid\n // `from`, its possible `useFragment` gives us an `undefined` since it\n // calls` cache.identify` and provides that value to `from`. We are\n // adding this fix here however to ensure those using plain JavaScript\n // and using `cache.identify` themselves will avoid seeing the obscure\n // warning.\n const id =\n typeof from === \"undefined\" || typeof from === \"string\" ?\n from\n : this.identify(from);\n const dataMasking = !!(options as any)[Symbol.for(\"apollo.dataMasking\")];\n\n if (__DEV__) {\n const actualFragmentName =\n fragmentName || getFragmentDefinition(fragment).name.value;\n\n if (!id) {\n invariant.warn(\n \"Could not identify object passed to `from` for '%s' fragment, either because the object is non-normalized or the key fields are missing. If you are masking this object, please ensure the key fields are requested by the parent object.\",\n actualFragmentName\n );\n }\n }\n\n const diffOptions: Cache.DiffOptions = {\n ...otherOptions,\n returnPartialData: true,\n id,\n query,\n optimistic,\n };\n\n let latestDiff: DataProxy.DiffResult | undefined;\n\n return new Observable((observer) => {\n return this.watch({\n ...diffOptions,\n immediate: true,\n callback: (diff) => {\n const data =\n dataMasking ?\n maskFragment(diff.result, fragment, this, fragmentName)\n : diff.result;\n\n if (\n // Always ensure we deliver the first result\n latestDiff &&\n equalByQuery(\n query,\n { data: latestDiff.result },\n { data },\n // TODO: Fix the type on WatchFragmentOptions so that TVars\n // extends OperationVariables\n options.variables as OperationVariables\n )\n ) {\n return;\n }\n\n const result = {\n data,\n complete: !!diff.complete,\n } as WatchFragmentResult;\n\n if (diff.missing) {\n result.missing = mergeDeepArray(\n diff.missing.map((error) => error.missing)\n );\n }\n\n latestDiff = { ...diff, result: data };\n observer.next(result);\n },\n });\n });\n }\n\n // Make sure we compute the same (===) fragment query document every\n // time we receive the same fragment in readFragment.\n private getFragmentDoc = wrap(getFragmentQueryDocument, {\n max:\n cacheSizes[\"cache.fragmentQueryDocuments\"] ||\n defaultCacheSizes[\"cache.fragmentQueryDocuments\"],\n cache: WeakCache,\n });\n\n public readFragment(\n options: Cache.ReadFragmentOptions,\n optimistic = !!options.optimistic\n ): Unmasked | null {\n return this.read({\n ...options,\n query: this.getFragmentDoc(options.fragment, options.fragmentName),\n rootId: options.id,\n optimistic,\n });\n }\n\n public writeQuery({\n id,\n data,\n ...options\n }: Cache.WriteQueryOptions): Reference | undefined {\n return this.write(\n Object.assign(options, {\n dataId: id || \"ROOT_QUERY\",\n result: data,\n })\n );\n }\n\n public writeFragment({\n id,\n data,\n fragment,\n fragmentName,\n ...options\n }: Cache.WriteFragmentOptions): Reference | undefined {\n return this.write(\n Object.assign(options, {\n query: this.getFragmentDoc(fragment, fragmentName),\n dataId: id,\n result: data,\n })\n );\n }\n\n public updateQuery(\n options: Cache.UpdateQueryOptions,\n update: (data: Unmasked | null) => Unmasked | null | void\n ): Unmasked | null {\n return this.batch({\n update(cache) {\n const value = cache.readQuery(options);\n const data = update(value);\n if (data === void 0 || data === null) return value;\n cache.writeQuery({ ...options, data });\n return data;\n },\n });\n }\n\n public updateFragment(\n options: Cache.UpdateFragmentOptions,\n update: (data: Unmasked | null) => Unmasked | null | void\n ): Unmasked | null {\n return this.batch({\n update(cache) {\n const value = cache.readFragment(options);\n const data = update(value);\n if (data === void 0 || data === null) return value;\n cache.writeFragment({ ...options, data });\n return data;\n },\n });\n }\n\n /**\n * @experimental\n * @internal\n * This is not a stable API - it is used in development builds to expose\n * information to the DevTools.\n * Use at your own risk!\n */\n public getMemoryInternals?: typeof getApolloCacheMemoryInternals;\n}\n\nif (__DEV__) {\n ApolloCache.prototype.getMemoryInternals = getApolloCacheMemoryInternals;\n}\n","import type { DocumentNode, FieldNode } from \"graphql\";\n\nimport type {\n Reference,\n StoreObject,\n StoreValue,\n isReference,\n AsStoreObject,\n DeepPartial,\n} from \"../../../utilities/index.js\";\n\nimport type { StorageType } from \"../../inmemory/policies.js\";\n\n// The Readonly type only really works for object types, since it marks\n// all of the object's properties as readonly, but there are many cases when\n// a generic type parameter like TExisting might be a string or some other\n// primitive type, in which case we need to avoid wrapping it with Readonly.\n// SafeReadonly collapses to just string, which makes string\n// assignable to SafeReadonly, whereas string is not assignable to\n// Readonly, somewhat surprisingly.\nexport type SafeReadonly = T extends object ? Readonly : T;\n\nexport type MissingTree =\n | string\n | {\n readonly [key: string]: MissingTree;\n };\n\nexport class MissingFieldError extends Error {\n constructor(\n public readonly message: string,\n public readonly path: MissingTree | Array,\n public readonly query: DocumentNode,\n public readonly variables?: Record\n ) {\n // 'Error' breaks prototype chain here\n super(message);\n\n if (Array.isArray(this.path)) {\n this.missing = this.message;\n for (let i = this.path.length - 1; i >= 0; --i) {\n this.missing = { [this.path[i]]: this.missing };\n }\n } else {\n this.missing = this.path;\n }\n\n // We're not using `Object.setPrototypeOf` here as it isn't fully supported\n // on Android (see issue #3236).\n (this as any).__proto__ = MissingFieldError.prototype;\n }\n\n public readonly missing: MissingTree;\n}\n\nexport interface FieldSpecifier {\n typename?: string;\n fieldName: string;\n field?: FieldNode;\n args?: Record;\n variables?: Record;\n}\n\nexport interface ReadFieldOptions extends FieldSpecifier {\n from?: StoreObject | Reference;\n}\n\nexport interface ReadFieldFunction {\n (options: ReadFieldOptions): SafeReadonly | undefined;\n (\n fieldName: string,\n from?: StoreObject | Reference\n ): SafeReadonly | undefined;\n}\n\nexport type ToReferenceFunction = (\n objOrIdOrRef: StoreObject | string | Reference,\n mergeIntoStore?: boolean\n) => Reference | undefined;\n\nexport type CanReadFunction = (value: StoreValue) => boolean;\n\ndeclare const _deleteModifier: unique symbol;\nexport interface DeleteModifier {\n [_deleteModifier]: true;\n}\ndeclare const _invalidateModifier: unique symbol;\nexport interface InvalidateModifier {\n [_invalidateModifier]: true;\n}\ndeclare const _ignoreModifier: unique symbol;\nexport interface IgnoreModifier {\n [_ignoreModifier]: true;\n}\n\nexport type ModifierDetails = {\n DELETE: DeleteModifier;\n INVALIDATE: InvalidateModifier;\n fieldName: string;\n storeFieldName: string;\n readField: ReadFieldFunction;\n canRead: CanReadFunction;\n isReference: typeof isReference;\n toReference: ToReferenceFunction;\n storage: StorageType;\n};\n\nexport type Modifier = (\n value: T,\n details: ModifierDetails\n) => DeepPartial | DeleteModifier | InvalidateModifier | undefined;\n\ntype StoreObjectValueMaybeReference =\n StoreVal extends Array> ?\n StoreVal extends Array ?\n [Item] extends [Record] ?\n ReadonlyArray | Reference>\n : never\n : never\n : StoreVal extends Record ? AsStoreObject | Reference\n : StoreVal;\n\nexport type AllFieldsModifier> = Modifier<\n Entity[keyof Entity] extends infer Value ?\n StoreObjectValueMaybeReference>\n : never\n>;\n\nexport type Modifiers = Record> =\n Partial<{\n [FieldName in keyof T]: Modifier<\n StoreObjectValueMaybeReference>\n >;\n }>;\n","import type {\n DocumentNode,\n FragmentDefinitionNode,\n SelectionSetNode,\n} from \"graphql\";\n\nimport type { NormalizedCache, InMemoryCacheConfig } from \"./types.js\";\n\nimport type { KeyFieldsContext } from \"./policies.js\";\nimport type { FragmentRegistryAPI } from \"./fragmentRegistry.js\";\n\nimport type {\n Reference,\n StoreValue,\n StoreObject,\n FragmentMap,\n FragmentMapFunction,\n} from \"../../utilities/index.js\";\nimport {\n isReference,\n isField,\n DeepMerger,\n resultKeyNameFromField,\n shouldInclude,\n isNonNullObject,\n compact,\n createFragmentMap,\n getFragmentDefinitions,\n isArray,\n} from \"../../utilities/index.js\";\n\nexport const { hasOwnProperty: hasOwn } = Object.prototype;\n\nexport function isNullish(value: any): value is null | undefined {\n return value === null || value === void 0;\n}\n\nexport { isArray };\n\nexport function defaultDataIdFromObject(\n { __typename, id, _id }: Readonly,\n context?: KeyFieldsContext\n): string | undefined {\n if (typeof __typename === \"string\") {\n if (context) {\n context.keyObject =\n !isNullish(id) ? { id }\n : !isNullish(_id) ? { _id }\n : void 0;\n }\n\n // If there is no object.id, fall back to object._id.\n if (isNullish(id) && !isNullish(_id)) {\n id = _id;\n }\n\n if (!isNullish(id)) {\n return `${__typename}:${\n typeof id === \"number\" || typeof id === \"string\" ?\n id\n : JSON.stringify(id)\n }`;\n }\n }\n}\n\nconst defaultConfig = {\n dataIdFromObject: defaultDataIdFromObject,\n addTypename: true,\n resultCaching: true,\n // Thanks to the shouldCanonizeResults helper, this should be the only line\n // you have to change to reenable canonization by default in the future.\n canonizeResults: false,\n};\n\nexport function normalizeConfig(config: InMemoryCacheConfig) {\n return compact(defaultConfig, config);\n}\n\nexport function shouldCanonizeResults(\n config: Pick\n): boolean {\n const value = config.canonizeResults;\n return value === void 0 ? defaultConfig.canonizeResults : value;\n}\n\nexport function getTypenameFromStoreObject(\n store: NormalizedCache,\n objectOrReference: StoreObject | Reference\n): string | undefined {\n return isReference(objectOrReference) ?\n (store.get(objectOrReference.__ref, \"__typename\") as string)\n : objectOrReference && objectOrReference.__typename;\n}\n\nexport const TypeOrFieldNameRegExp = /^[_a-z][_0-9a-z]*/i;\n\nexport function fieldNameFromStoreName(storeFieldName: string): string {\n const match = storeFieldName.match(TypeOrFieldNameRegExp);\n return match ? match[0] : storeFieldName;\n}\n\nexport function selectionSetMatchesResult(\n selectionSet: SelectionSetNode,\n result: Record,\n variables?: Record\n): boolean {\n if (isNonNullObject(result)) {\n return isArray(result) ?\n result.every((item) =>\n selectionSetMatchesResult(selectionSet, item, variables)\n )\n : selectionSet.selections.every((field) => {\n if (isField(field) && shouldInclude(field, variables)) {\n const key = resultKeyNameFromField(field);\n return (\n hasOwn.call(result, key) &&\n (!field.selectionSet ||\n selectionSetMatchesResult(\n field.selectionSet,\n result[key],\n variables\n ))\n );\n }\n // If the selection has been skipped with @skip(true) or\n // @include(false), it should not count against the matching. If\n // the selection is not a field, it must be a fragment (inline or\n // named). We will determine if selectionSetMatchesResult for that\n // fragment when we get to it, so for now we return true.\n return true;\n });\n }\n return false;\n}\n\nexport function storeValueIsStoreObject(\n value: StoreValue\n): value is StoreObject {\n return isNonNullObject(value) && !isReference(value) && !isArray(value);\n}\n\nexport function makeProcessedFieldsMerger() {\n return new DeepMerger();\n}\n\nexport function extractFragmentContext(\n document: DocumentNode,\n fragments?: FragmentRegistryAPI\n): {\n fragmentMap: FragmentMap;\n lookupFragment: FragmentMapFunction;\n} {\n // FragmentMap consisting only of fragments defined directly in document, not\n // including other fragments registered in the FragmentRegistry.\n const fragmentMap = createFragmentMap(getFragmentDefinitions(document));\n return {\n fragmentMap,\n lookupFragment(name) {\n let def: FragmentDefinitionNode | null = fragmentMap[name];\n if (!def && fragments) {\n def = fragments.lookup(name);\n }\n return def || null;\n },\n };\n}\n","import { invariant } from \"../../utilities/globals/index.js\";\nimport type { OptimisticDependencyFunction } from \"optimism\";\nimport { dep } from \"optimism\";\nimport { equal } from \"@wry/equality\";\nimport { Trie } from \"@wry/trie\";\n\nimport type {\n StoreValue,\n StoreObject,\n Reference,\n} from \"../../utilities/index.js\";\nimport {\n isReference,\n makeReference,\n DeepMerger,\n maybeDeepFreeze,\n canUseWeakMap,\n isNonNullObject,\n} from \"../../utilities/index.js\";\nimport type { NormalizedCache, NormalizedCacheObject } from \"./types.js\";\nimport { hasOwn, fieldNameFromStoreName } from \"./helpers.js\";\nimport type { Policies, StorageType } from \"./policies.js\";\nimport type { Cache } from \"../core/types/Cache.js\";\nimport type {\n SafeReadonly,\n Modifier,\n Modifiers,\n ReadFieldOptions,\n ToReferenceFunction,\n CanReadFunction,\n InvalidateModifier,\n DeleteModifier,\n ModifierDetails,\n} from \"../core/types/common.js\";\nimport type { DocumentNode, FieldNode, SelectionSetNode } from \"graphql\";\n\nconst DELETE: DeleteModifier = Object.create(null);\nconst delModifier: Modifier = () => DELETE;\nconst INVALIDATE: InvalidateModifier = Object.create(null);\n\nexport abstract class EntityStore implements NormalizedCache {\n protected data: NormalizedCacheObject = Object.create(null);\n\n constructor(\n public readonly policies: Policies,\n public readonly group: CacheGroup\n ) {}\n\n public abstract addLayer(\n layerId: string,\n replay: (layer: EntityStore) => any\n ): Layer;\n\n public abstract removeLayer(layerId: string): EntityStore;\n\n // Although the EntityStore class is abstract, it contains concrete\n // implementations of the various NormalizedCache interface methods that\n // are inherited by the Root and Layer subclasses.\n\n public toObject(): NormalizedCacheObject {\n return { ...this.data };\n }\n\n public has(dataId: string): boolean {\n return this.lookup(dataId, true) !== void 0;\n }\n\n public get(dataId: string, fieldName: string): StoreValue {\n this.group.depend(dataId, fieldName);\n if (hasOwn.call(this.data, dataId)) {\n const storeObject = this.data[dataId];\n if (storeObject && hasOwn.call(storeObject, fieldName)) {\n return storeObject[fieldName];\n }\n }\n if (\n fieldName === \"__typename\" &&\n hasOwn.call(this.policies.rootTypenamesById, dataId)\n ) {\n return this.policies.rootTypenamesById[dataId];\n }\n if (this instanceof Layer) {\n return this.parent.get(dataId, fieldName);\n }\n }\n\n protected lookup(\n dataId: string,\n dependOnExistence?: boolean\n ): StoreObject | undefined {\n // The has method (above) calls lookup with dependOnExistence = true, so\n // that it can later be invalidated when we add or remove a StoreObject for\n // this dataId. Any consumer who cares about the contents of the StoreObject\n // should not rely on this dependency, since the contents could change\n // without the object being added or removed.\n if (dependOnExistence) this.group.depend(dataId, \"__exists\");\n\n if (hasOwn.call(this.data, dataId)) {\n return this.data[dataId];\n }\n\n if (this instanceof Layer) {\n return this.parent.lookup(dataId, dependOnExistence);\n }\n\n if (this.policies.rootTypenamesById[dataId]) {\n return Object.create(null);\n }\n }\n\n public merge(older: string | StoreObject, newer: StoreObject | string): void {\n let dataId: string | undefined;\n\n // Convert unexpected references to ID strings.\n if (isReference(older)) older = older.__ref;\n if (isReference(newer)) newer = newer.__ref;\n\n const existing: StoreObject | undefined =\n typeof older === \"string\" ? this.lookup((dataId = older)) : older;\n\n const incoming: StoreObject | undefined =\n typeof newer === \"string\" ? this.lookup((dataId = newer)) : newer;\n\n // If newer was a string ID, but that ID was not defined in this store,\n // then there are no fields to be merged, so we're done.\n if (!incoming) return;\n\n invariant(typeof dataId === \"string\", \"store.merge expects a string ID\");\n\n const merged: StoreObject = new DeepMerger(storeObjectReconciler).merge(\n existing,\n incoming\n );\n\n // Even if merged === existing, existing may have come from a lower\n // layer, so we always need to set this.data[dataId] on this level.\n this.data[dataId] = merged;\n\n if (merged !== existing) {\n delete this.refs[dataId];\n if (this.group.caching) {\n const fieldsToDirty: Record = Object.create(null);\n\n // If we added a new StoreObject where there was previously none, dirty\n // anything that depended on the existence of this dataId, such as the\n // EntityStore#has method.\n if (!existing) fieldsToDirty.__exists = 1;\n\n // Now invalidate dependents who called getFieldValue for any fields\n // that are changing as a result of this merge.\n Object.keys(incoming).forEach((storeFieldName) => {\n if (\n !existing ||\n existing[storeFieldName] !== merged[storeFieldName]\n ) {\n // Always dirty the full storeFieldName, which may include\n // serialized arguments following the fieldName prefix.\n fieldsToDirty[storeFieldName] = 1;\n\n // Also dirty fieldNameFromStoreName(storeFieldName) if it's\n // different from storeFieldName and this field does not have\n // keyArgs configured, because that means the cache can't make\n // any assumptions about how field values with the same field\n // name but different arguments might be interrelated, so it\n // must err on the side of invalidating all field values that\n // share the same short fieldName, regardless of arguments.\n const fieldName = fieldNameFromStoreName(storeFieldName);\n if (\n fieldName !== storeFieldName &&\n !this.policies.hasKeyArgs(merged.__typename, fieldName)\n ) {\n fieldsToDirty[fieldName] = 1;\n }\n\n // If merged[storeFieldName] has become undefined, and this is the\n // Root layer, actually delete the property from the merged object,\n // which is guaranteed to have been created fresh in this method.\n if (merged[storeFieldName] === void 0 && !(this instanceof Layer)) {\n delete merged[storeFieldName];\n }\n }\n });\n\n if (\n fieldsToDirty.__typename &&\n !(existing && existing.__typename) &&\n // Since we return default root __typename strings\n // automatically from store.get, we don't need to dirty the\n // ROOT_QUERY.__typename field if merged.__typename is equal\n // to the default string (usually \"Query\").\n this.policies.rootTypenamesById[dataId] === merged.__typename\n ) {\n delete fieldsToDirty.__typename;\n }\n\n Object.keys(fieldsToDirty).forEach((fieldName) =>\n this.group.dirty(dataId as string, fieldName)\n );\n }\n }\n }\n\n public modify(\n dataId: string,\n fields: Modifier | Modifiers>\n ): boolean {\n const storeObject = this.lookup(dataId);\n\n if (storeObject) {\n const changedFields: Record = Object.create(null);\n let needToMerge = false;\n let allDeleted = true;\n\n const sharedDetails = {\n DELETE,\n INVALIDATE,\n isReference,\n toReference: this.toReference,\n canRead: this.canRead,\n readField: (\n fieldNameOrOptions: string | ReadFieldOptions,\n from?: StoreObject | Reference\n ) =>\n this.policies.readField(\n typeof fieldNameOrOptions === \"string\" ?\n {\n fieldName: fieldNameOrOptions,\n from: from || makeReference(dataId),\n }\n : fieldNameOrOptions,\n { store: this }\n ),\n } satisfies Partial;\n\n Object.keys(storeObject).forEach((storeFieldName) => {\n const fieldName = fieldNameFromStoreName(storeFieldName);\n let fieldValue = storeObject[storeFieldName];\n if (fieldValue === void 0) return;\n const modify: Modifier | undefined =\n typeof fields === \"function\" ? fields : (\n fields[storeFieldName] || fields[fieldName]\n );\n if (modify) {\n let newValue =\n modify === delModifier ? DELETE : (\n modify(maybeDeepFreeze(fieldValue), {\n ...sharedDetails,\n fieldName,\n storeFieldName,\n storage: this.getStorage(dataId, storeFieldName),\n })\n );\n if (newValue === INVALIDATE) {\n this.group.dirty(dataId, storeFieldName);\n } else {\n if (newValue === DELETE) newValue = void 0;\n if (newValue !== fieldValue) {\n changedFields[storeFieldName] = newValue;\n needToMerge = true;\n fieldValue = newValue as StoreValue;\n\n if (__DEV__) {\n const checkReference = (ref: Reference) => {\n if (this.lookup(ref.__ref) === undefined) {\n invariant.warn(\n \"cache.modify: You are trying to write a Reference that is not part of the store: %o\\n\" +\n \"Please make sure to set the `mergeIntoStore` parameter to `true` when creating a Reference that is not part of the store yet:\\n\" +\n \"`toReference(object, true)`\",\n ref\n );\n return true;\n }\n };\n if (isReference(newValue)) {\n checkReference(newValue);\n } else if (Array.isArray(newValue)) {\n // Warn about writing \"mixed\" arrays of Reference and non-Reference objects\n let seenReference: boolean = false;\n let someNonReference: unknown;\n for (const value of newValue) {\n if (isReference(value)) {\n seenReference = true;\n if (checkReference(value)) break;\n } else {\n // Do not warn on primitive values, since those could never be represented\n // by a reference. This is a valid (albeit uncommon) use case.\n if (typeof value === \"object\" && !!value) {\n const [id] = this.policies.identify(value);\n // check if object could even be referenced, otherwise we are not interested in it for this warning\n if (id) {\n someNonReference = value;\n }\n }\n }\n if (seenReference && someNonReference !== undefined) {\n invariant.warn(\n \"cache.modify: Writing an array with a mix of both References and Objects will not result in the Objects being normalized correctly.\\n\" +\n \"Please convert the object instance %o to a Reference before writing it to the cache by calling `toReference(object, true)`.\",\n someNonReference\n );\n break;\n }\n }\n }\n }\n }\n }\n }\n if (fieldValue !== void 0) {\n allDeleted = false;\n }\n });\n\n if (needToMerge) {\n this.merge(dataId, changedFields);\n\n if (allDeleted) {\n if (this instanceof Layer) {\n this.data[dataId] = void 0;\n } else {\n delete this.data[dataId];\n }\n this.group.dirty(dataId, \"__exists\");\n }\n\n return true;\n }\n }\n\n return false;\n }\n\n // If called with only one argument, removes the entire entity\n // identified by dataId. If called with a fieldName as well, removes all\n // fields of that entity whose names match fieldName according to the\n // fieldNameFromStoreName helper function. If called with a fieldName\n // and variables, removes all fields of that entity whose names match fieldName\n // and whose arguments when cached exactly match the variables passed.\n public delete(\n dataId: string,\n fieldName?: string,\n args?: Record\n ) {\n const storeObject = this.lookup(dataId);\n if (storeObject) {\n const typename = this.getFieldValue(storeObject, \"__typename\");\n const storeFieldName =\n fieldName && args ?\n this.policies.getStoreFieldName({ typename, fieldName, args })\n : fieldName;\n return this.modify(\n dataId,\n storeFieldName ?\n {\n [storeFieldName]: delModifier,\n }\n : delModifier\n );\n }\n return false;\n }\n\n public evict(options: Cache.EvictOptions, limit: EntityStore): boolean {\n let evicted = false;\n if (options.id) {\n if (hasOwn.call(this.data, options.id)) {\n evicted = this.delete(options.id, options.fieldName, options.args);\n }\n if (this instanceof Layer && this !== limit) {\n evicted = this.parent.evict(options, limit) || evicted;\n }\n // Always invalidate the field to trigger rereading of watched\n // queries, even if no cache data was modified by the eviction,\n // because queries may depend on computed fields with custom read\n // functions, whose values are not stored in the EntityStore.\n if (options.fieldName || evicted) {\n this.group.dirty(options.id, options.fieldName || \"__exists\");\n }\n }\n return evicted;\n }\n\n public clear(): void {\n this.replace(null);\n }\n\n public extract(): NormalizedCacheObject {\n const obj = this.toObject();\n const extraRootIds: string[] = [];\n this.getRootIdSet().forEach((id) => {\n if (!hasOwn.call(this.policies.rootTypenamesById, id)) {\n extraRootIds.push(id);\n }\n });\n if (extraRootIds.length) {\n obj.__META = { extraRootIds: extraRootIds.sort() };\n }\n return obj;\n }\n\n public replace(newData: NormalizedCacheObject | null): void {\n Object.keys(this.data).forEach((dataId) => {\n if (!(newData && hasOwn.call(newData, dataId))) {\n this.delete(dataId);\n }\n });\n if (newData) {\n const { __META, ...rest } = newData;\n Object.keys(rest).forEach((dataId) => {\n this.merge(dataId, rest[dataId] as StoreObject);\n });\n if (__META) {\n __META.extraRootIds.forEach(this.retain, this);\n }\n }\n }\n\n public abstract getStorage(\n idOrObj: string | StoreObject,\n ...storeFieldNames: (string | number)[]\n ): StorageType;\n\n // Maps root entity IDs to the number of times they have been retained, minus\n // the number of times they have been released. Retained entities keep other\n // entities they reference (even indirectly) from being garbage collected.\n private rootIds: {\n [rootId: string]: number;\n } = Object.create(null);\n\n public retain(rootId: string): number {\n return (this.rootIds[rootId] = (this.rootIds[rootId] || 0) + 1);\n }\n\n public release(rootId: string): number {\n if (this.rootIds[rootId] > 0) {\n const count = --this.rootIds[rootId];\n if (!count) delete this.rootIds[rootId];\n return count;\n }\n return 0;\n }\n\n // Return a Set of all the ID strings that have been retained by\n // this layer/root *and* any layers/roots beneath it.\n public getRootIdSet(ids = new Set()) {\n Object.keys(this.rootIds).forEach(ids.add, ids);\n if (this instanceof Layer) {\n this.parent.getRootIdSet(ids);\n } else {\n // Official singleton IDs like ROOT_QUERY and ROOT_MUTATION are\n // always considered roots for garbage collection, regardless of\n // their retainment counts in this.rootIds.\n Object.keys(this.policies.rootTypenamesById).forEach(ids.add, ids);\n }\n return ids;\n }\n\n // The goal of garbage collection is to remove IDs from the Root layer of the\n // store that are no longer reachable starting from any IDs that have been\n // explicitly retained (see retain and release, above). Returns an array of\n // dataId strings that were removed from the store.\n public gc() {\n const ids = this.getRootIdSet();\n const snapshot = this.toObject();\n ids.forEach((id) => {\n if (hasOwn.call(snapshot, id)) {\n // Because we are iterating over an ECMAScript Set, the IDs we add here\n // will be visited in later iterations of the forEach loop only if they\n // were not previously contained by the Set.\n Object.keys(this.findChildRefIds(id)).forEach(ids.add, ids);\n // By removing IDs from the snapshot object here, we protect them from\n // getting removed from the root store layer below.\n delete snapshot[id];\n }\n });\n const idsToRemove = Object.keys(snapshot);\n if (idsToRemove.length) {\n let root: EntityStore = this;\n while (root instanceof Layer) root = root.parent;\n idsToRemove.forEach((id) => root.delete(id));\n }\n return idsToRemove;\n }\n\n // Lazily tracks { __ref: } strings contained by this.data[dataId].\n private refs: {\n [dataId: string]: Record;\n } = Object.create(null);\n\n public findChildRefIds(dataId: string): Record {\n if (!hasOwn.call(this.refs, dataId)) {\n const found = (this.refs[dataId] = Object.create(null));\n const root = this.data[dataId];\n if (!root) return found;\n\n const workSet = new Set>([root]);\n // Within the store, only arrays and objects can contain child entity\n // references, so we can prune the traversal using this predicate:\n workSet.forEach((obj) => {\n if (isReference(obj)) {\n found[obj.__ref] = true;\n // In rare cases, a { __ref } Reference object may have other fields.\n // This often indicates a mismerging of References with StoreObjects,\n // but garbage collection should not be fooled by a stray __ref\n // property in a StoreObject (ignoring all the other fields just\n // because the StoreObject looks like a Reference). To avoid this\n // premature termination of findChildRefIds recursion, we fall through\n // to the code below, which will handle any other properties of obj.\n }\n if (isNonNullObject(obj)) {\n Object.keys(obj).forEach((key) => {\n const child = obj[key];\n // No need to add primitive values to the workSet, since they cannot\n // contain reference objects.\n if (isNonNullObject(child)) {\n workSet.add(child);\n }\n });\n }\n });\n }\n return this.refs[dataId];\n }\n\n // Used to compute cache keys specific to this.group.\n /** overload for `InMemoryCache.maybeBroadcastWatch` */\n public makeCacheKey(\n document: DocumentNode,\n callback: Cache.WatchCallback,\n details: string\n ): object;\n /** overload for `StoreReader.executeSelectionSet` */\n public makeCacheKey(\n selectionSet: SelectionSetNode,\n parent: string /* = ( Reference.__ref ) */ | StoreObject,\n varString: string | undefined,\n canonizeResults: boolean\n ): object;\n /** overload for `StoreReader.executeSubSelectedArray` */\n public makeCacheKey(\n field: FieldNode,\n array: readonly any[],\n varString: string | undefined\n ): object;\n /** @deprecated This is only meant for internal usage,\n * in your own code please use a `Trie` instance instead. */\n public makeCacheKey(...args: any[]): object;\n public makeCacheKey() {\n return this.group.keyMaker.lookupArray(arguments);\n }\n\n // Bound function that can be passed around to provide easy access to fields\n // of Reference objects as well as ordinary objects.\n public getFieldValue = (\n objectOrReference: StoreObject | Reference | undefined,\n storeFieldName: string\n ) =>\n maybeDeepFreeze(\n isReference(objectOrReference) ?\n this.get(objectOrReference.__ref, storeFieldName)\n : objectOrReference && objectOrReference[storeFieldName]\n ) as SafeReadonly;\n\n // Returns true for non-normalized StoreObjects and non-dangling\n // References, indicating that readField(name, objOrRef) has a chance of\n // working. Useful for filtering out dangling references from lists.\n public canRead: CanReadFunction = (objOrRef) => {\n return isReference(objOrRef) ?\n this.has(objOrRef.__ref)\n : typeof objOrRef === \"object\";\n };\n\n // Bound function that converts an id or an object with a __typename and\n // primary key fields to a Reference object. If called with a Reference object,\n // that same Reference object is returned. Pass true for mergeIntoStore to persist\n // an object into the store.\n public toReference: ToReferenceFunction = (objOrIdOrRef, mergeIntoStore) => {\n if (typeof objOrIdOrRef === \"string\") {\n return makeReference(objOrIdOrRef);\n }\n\n if (isReference(objOrIdOrRef)) {\n return objOrIdOrRef;\n }\n\n const [id] = this.policies.identify(objOrIdOrRef);\n\n if (id) {\n const ref = makeReference(id);\n if (mergeIntoStore) {\n this.merge(id, objOrIdOrRef);\n }\n return ref;\n }\n };\n}\n\nexport type FieldValueGetter = EntityStore[\"getFieldValue\"];\n\n// A single CacheGroup represents a set of one or more EntityStore objects,\n// typically the Root store in a CacheGroup by itself, and all active Layer\n// stores in a group together. A single EntityStore object belongs to only\n// one CacheGroup, store.group. The CacheGroup is responsible for tracking\n// dependencies, so store.group is helpful for generating unique keys for\n// cached results that need to be invalidated when/if those dependencies\n// change. If we used the EntityStore objects themselves as cache keys (that\n// is, store rather than store.group), the cache would become unnecessarily\n// fragmented by all the different Layer objects. Instead, the CacheGroup\n// approach allows all optimistic Layer objects in the same linked list to\n// belong to one CacheGroup, with the non-optimistic Root object belonging\n// to another CacheGroup, allowing resultCaching dependencies to be tracked\n// separately for optimistic and non-optimistic entity data.\nclass CacheGroup {\n private d: OptimisticDependencyFunction | null = null;\n\n // Used by the EntityStore#makeCacheKey method to compute cache keys\n // specific to this CacheGroup.\n public keyMaker!: Trie;\n\n constructor(\n public readonly caching: boolean,\n private parent: CacheGroup | null = null\n ) {\n this.resetCaching();\n }\n\n public resetCaching() {\n this.d = this.caching ? dep() : null;\n this.keyMaker = new Trie(canUseWeakMap);\n }\n\n public depend(dataId: string, storeFieldName: string) {\n if (this.d) {\n this.d(makeDepKey(dataId, storeFieldName));\n const fieldName = fieldNameFromStoreName(storeFieldName);\n if (fieldName !== storeFieldName) {\n // Fields with arguments that contribute extra identifying\n // information to the fieldName (thus forming the storeFieldName)\n // depend not only on the full storeFieldName but also on the\n // short fieldName, so the field can be invalidated using either\n // level of specificity.\n this.d(makeDepKey(dataId, fieldName));\n }\n if (this.parent) {\n this.parent.depend(dataId, storeFieldName);\n }\n }\n }\n\n public dirty(dataId: string, storeFieldName: string) {\n if (this.d) {\n this.d.dirty(\n makeDepKey(dataId, storeFieldName),\n // When storeFieldName === \"__exists\", that means the entity identified\n // by dataId has either disappeared from the cache or was newly added,\n // so the result caching system would do well to \"forget everything it\n // knows\" about that object. To achieve that kind of invalidation, we\n // not only dirty the associated result cache entry, but also remove it\n // completely from the dependency graph. For the optimism implementation\n // details, see https://github.com/benjamn/optimism/pull/195.\n storeFieldName === \"__exists\" ? \"forget\" : \"setDirty\"\n );\n }\n }\n}\n\nfunction makeDepKey(dataId: string, storeFieldName: string) {\n // Since field names cannot have '#' characters in them, this method\n // of joining the field name and the ID should be unambiguous, and much\n // cheaper than JSON.stringify([dataId, fieldName]).\n return storeFieldName + \"#\" + dataId;\n}\n\nexport function maybeDependOnExistenceOfEntity(\n store: NormalizedCache,\n entityId: string\n) {\n if (supportsResultCaching(store)) {\n // We use this pseudo-field __exists elsewhere in the EntityStore code to\n // represent changes in the existence of the entity object identified by\n // entityId. This dependency gets reliably dirtied whenever an object with\n // this ID is deleted (or newly created) within this group, so any result\n // cache entries (for example, StoreReader#executeSelectionSet results) that\n // depend on __exists for this entityId will get dirtied as well, leading to\n // the eventual recomputation (instead of reuse) of those result objects the\n // next time someone reads them from the cache.\n store.group.depend(entityId, \"__exists\");\n }\n}\n\nexport namespace EntityStore {\n // Refer to this class as EntityStore.Root outside this namespace.\n export class Root extends EntityStore {\n constructor({\n policies,\n resultCaching = true,\n seed,\n }: {\n policies: Policies;\n resultCaching?: boolean;\n seed?: NormalizedCacheObject;\n }) {\n super(policies, new CacheGroup(resultCaching));\n if (seed) this.replace(seed);\n }\n\n public readonly stump = new Stump(this);\n\n public addLayer(\n layerId: string,\n replay: (layer: EntityStore) => any\n ): Layer {\n // Adding an optimistic Layer on top of the Root actually adds the Layer\n // on top of the Stump, so the Stump always comes between the Root and\n // any Layer objects that we've added.\n return this.stump.addLayer(layerId, replay);\n }\n\n public removeLayer(): Root {\n // Never remove the root layer.\n return this;\n }\n\n public readonly storageTrie = new Trie(canUseWeakMap);\n public getStorage(): StorageType {\n return this.storageTrie.lookupArray(arguments);\n }\n }\n}\n\n// Not exported, since all Layer instances are created by the addLayer method\n// of the EntityStore.Root class.\nclass Layer extends EntityStore {\n constructor(\n public readonly id: string,\n public readonly parent: EntityStore,\n public readonly replay: (layer: EntityStore) => any,\n public readonly group: CacheGroup\n ) {\n super(parent.policies, group);\n replay(this);\n }\n\n public addLayer(layerId: string, replay: (layer: EntityStore) => any): Layer {\n return new Layer(layerId, this, replay, this.group);\n }\n\n public removeLayer(layerId: string): EntityStore {\n // Remove all instances of the given id, not just the first one.\n const parent = this.parent.removeLayer(layerId);\n\n if (layerId === this.id) {\n if (this.group.caching) {\n // Dirty every ID we're removing. Technically we might be able to avoid\n // dirtying fields that have values in higher layers, but we don't have\n // easy access to higher layers here, and we're about to recreate those\n // layers anyway (see parent.addLayer below).\n Object.keys(this.data).forEach((dataId) => {\n const ownStoreObject = this.data[dataId];\n const parentStoreObject = parent[\"lookup\"](dataId);\n if (!parentStoreObject) {\n // The StoreObject identified by dataId was defined in this layer\n // but will be undefined in the parent layer, so we can delete the\n // whole entity using this.delete(dataId). Since we're about to\n // throw this layer away, the only goal of this deletion is to dirty\n // the removed fields.\n this.delete(dataId);\n } else if (!ownStoreObject) {\n // This layer had an entry for dataId but it was undefined, which\n // means the entity was deleted in this layer, and it's about to\n // become undeleted when we remove this layer, so we need to dirty\n // all fields that are about to be reexposed.\n this.group.dirty(dataId, \"__exists\");\n Object.keys(parentStoreObject).forEach((storeFieldName) => {\n this.group.dirty(dataId, storeFieldName);\n });\n } else if (ownStoreObject !== parentStoreObject) {\n // If ownStoreObject is not exactly the same as parentStoreObject,\n // dirty any fields whose values will change as a result of this\n // removal.\n Object.keys(ownStoreObject).forEach((storeFieldName) => {\n if (\n !equal(\n ownStoreObject[storeFieldName],\n parentStoreObject[storeFieldName]\n )\n ) {\n this.group.dirty(dataId, storeFieldName);\n }\n });\n }\n });\n }\n\n return parent;\n }\n\n // No changes are necessary if the parent chain remains identical.\n if (parent === this.parent) return this;\n\n // Recreate this layer on top of the new parent.\n return parent.addLayer(this.id, this.replay);\n }\n\n public toObject(): NormalizedCacheObject {\n return {\n ...this.parent.toObject(),\n ...this.data,\n };\n }\n\n public findChildRefIds(dataId: string): Record {\n const fromParent = this.parent.findChildRefIds(dataId);\n return hasOwn.call(this.data, dataId) ?\n {\n ...fromParent,\n ...super.findChildRefIds(dataId),\n }\n : fromParent;\n }\n\n public getStorage(): StorageType {\n let p: EntityStore = this.parent;\n while ((p as Layer).parent) p = (p as Layer).parent;\n return p.getStorage.apply(\n p,\n // @ts-expect-error\n arguments\n );\n }\n}\n\n// Represents a Layer permanently installed just above the Root, which allows\n// reading optimistically (and registering optimistic dependencies) even when\n// no optimistic layers are currently active. The stump.group CacheGroup object\n// is shared by any/all Layer objects added on top of the Stump.\nclass Stump extends Layer {\n constructor(root: EntityStore.Root) {\n super(\n \"EntityStore.Stump\",\n root,\n () => {},\n new CacheGroup(root.group.caching, root.group)\n );\n }\n\n public removeLayer() {\n // Never remove the Stump layer.\n return this;\n }\n\n public merge(older: string | StoreObject, newer: string | StoreObject) {\n // We never want to write any data into the Stump, so we forward any merge\n // calls to the Root instead. Another option here would be to throw an\n // exception, but the toReference(object, true) function can sometimes\n // trigger Stump writes (which used to be Root writes, before the Stump\n // concept was introduced).\n return this.parent.merge(older, newer);\n }\n}\n\nfunction storeObjectReconciler(\n existingObject: StoreObject,\n incomingObject: StoreObject,\n property: string | number\n): StoreValue {\n const existingValue = existingObject[property];\n const incomingValue = incomingObject[property];\n // Wherever there is a key collision, prefer the incoming value, unless\n // it is deeply equal to the existing value. It's worth checking deep\n // equality here (even though blindly returning incoming would be\n // logically correct) because preserving the referential identity of\n // existing data can prevent needless rereading and rerendering.\n return equal(existingValue, incomingValue) ? existingValue : incomingValue;\n}\n\nexport function supportsResultCaching(store: any): store is EntityStore {\n // When result caching is disabled, store.depend will be null.\n return !!(store instanceof EntityStore && store.group.caching);\n}\n","import { Trie } from \"@wry/trie\";\nimport {\n canUseWeakMap,\n canUseWeakSet,\n isNonNullObject as isObjectOrArray,\n} from \"../../utilities/index.js\";\nimport { isArray } from \"./helpers.js\";\n\nfunction shallowCopy(value: T): T {\n if (isObjectOrArray(value)) {\n return isArray(value) ?\n (value.slice(0) as any as T)\n : { __proto__: Object.getPrototypeOf(value), ...value };\n }\n return value;\n}\n\n// When programmers talk about the \"canonical form\" of an object, they\n// usually have the following meaning in mind, which I've copied from\n// https://en.wiktionary.org/wiki/canonical_form:\n//\n// 1. A standard or normal presentation of a mathematical entity [or\n// object]. A canonical form is an element of a set of representatives\n// of equivalence classes of forms such that there is a function or\n// procedure which projects every element of each equivalence class\n// onto that one element, the canonical form of that equivalence\n// class. The canonical form is expected to be simpler than the rest of\n// the forms in some way.\n//\n// That's a long-winded way of saying any two objects that have the same\n// canonical form may be considered equivalent, even if they are !==,\n// which usually means the objects are structurally equivalent (deeply\n// equal), but don't necessarily use the same memory.\n//\n// Like a literary or musical canon, this ObjectCanon class represents a\n// collection of unique canonical items (JavaScript objects), with the\n// important property that canon.admit(a) === canon.admit(b) if a and b\n// are deeply equal to each other. In terms of the definition above, the\n// canon.admit method is the \"function or procedure which projects every\"\n// object \"onto that one element, the canonical form.\"\n//\n// In the worst case, the canonicalization process may involve looking at\n// every property in the provided object tree, so it takes the same order\n// of time as deep equality checking. Fortunately, already-canonicalized\n// objects are returned immediately from canon.admit, so the presence of\n// canonical subtrees tends to speed up canonicalization.\n//\n// Since consumers of canonical objects can check for deep equality in\n// constant time, canonicalizing cache results can massively improve the\n// performance of application code that skips re-rendering unchanged\n// results, such as \"pure\" UI components in a framework like React.\n//\n// Of course, since canonical objects may be shared widely between\n// unrelated consumers, it's important to think of them as immutable, even\n// though they are not actually frozen with Object.freeze in production,\n// due to the extra performance overhead that comes with frozen objects.\n//\n// Custom scalar objects whose internal class name is neither Array nor\n// Object can be included safely in the admitted tree, but they will not\n// be replaced with a canonical version (to put it another way, they are\n// assumed to be canonical already).\n//\n// If we ignore custom objects, no detection of cycles or repeated object\n// references is currently required by the StoreReader class, since\n// GraphQL result objects are JSON-serializable trees (and thus contain\n// neither cycles nor repeated subtrees), so we can avoid the complexity\n// of keeping track of objects we've already seen during the recursion of\n// the admit method.\n//\n// In the future, we may consider adding additional cases to the switch\n// statement to handle other common object types, such as \"[object Date]\"\n// objects, as needed.\nexport class ObjectCanon {\n // Set of all canonical objects this ObjectCanon has admitted, allowing\n // canon.admit to return previously-canonicalized objects immediately.\n private known = new (canUseWeakSet ? WeakSet : Set)();\n\n // Efficient storage/lookup structure for canonical objects.\n private pool = new Trie<{\n array?: any[];\n object?: Record;\n keys?: SortedKeysInfo;\n }>(canUseWeakMap);\n\n public isKnown(value: any): boolean {\n return isObjectOrArray(value) && this.known.has(value);\n }\n\n // Make the ObjectCanon assume this value has already been\n // canonicalized.\n private passes = new WeakMap();\n public pass(value: T): T;\n public pass(value: any) {\n if (isObjectOrArray(value)) {\n const copy = shallowCopy(value);\n this.passes.set(copy, value);\n return copy;\n }\n return value;\n }\n\n // Returns the canonical version of value.\n public admit(value: T): T;\n public admit(value: any) {\n if (isObjectOrArray(value)) {\n const original = this.passes.get(value);\n if (original) return original;\n\n const proto = Object.getPrototypeOf(value);\n switch (proto) {\n case Array.prototype: {\n if (this.known.has(value)) return value;\n const array: any[] = (value as any[]).map(this.admit, this);\n // Arrays are looked up in the Trie using their recursively\n // canonicalized elements, and the known version of the array is\n // preserved as node.array.\n const node = this.pool.lookupArray(array);\n if (!node.array) {\n this.known.add((node.array = array));\n // Since canonical arrays may be shared widely between\n // unrelated consumers, it's important to regard them as\n // immutable, even if they are not frozen in production.\n if (__DEV__) {\n Object.freeze(array);\n }\n }\n return node.array;\n }\n\n case null:\n case Object.prototype: {\n if (this.known.has(value)) return value;\n const proto = Object.getPrototypeOf(value);\n const array = [proto];\n const keys = this.sortedKeys(value);\n array.push(keys.json);\n const firstValueIndex = array.length;\n keys.sorted.forEach((key) => {\n array.push(this.admit((value as any)[key]));\n });\n // Objects are looked up in the Trie by their prototype (which\n // is *not* recursively canonicalized), followed by a JSON\n // representation of their (sorted) keys, followed by the\n // sequence of recursively canonicalized values corresponding to\n // those keys. To keep the final results unambiguous with other\n // sequences (such as arrays that just happen to contain [proto,\n // keys.json, value1, value2, ...]), the known version of the\n // object is stored as node.object.\n const node = this.pool.lookupArray(array);\n if (!node.object) {\n const obj = (node.object = Object.create(proto));\n this.known.add(obj);\n keys.sorted.forEach((key, i) => {\n obj[key] = array[firstValueIndex + i];\n });\n // Since canonical objects may be shared widely between\n // unrelated consumers, it's important to regard them as\n // immutable, even if they are not frozen in production.\n if (__DEV__) {\n Object.freeze(obj);\n }\n }\n return node.object;\n }\n }\n }\n return value;\n }\n\n // It's worthwhile to cache the sorting of arrays of strings, since the\n // same initial unsorted arrays tend to be encountered many times.\n // Fortunately, we can reuse the Trie machinery to look up the sorted\n // arrays in linear time (which is faster than sorting large arrays).\n private sortedKeys(obj: object) {\n const keys = Object.keys(obj);\n const node = this.pool.lookupArray(keys);\n if (!node.keys) {\n keys.sort();\n const json = JSON.stringify(keys);\n if (!(node.keys = this.keysByJSON.get(json))) {\n this.keysByJSON.set(json, (node.keys = { sorted: keys, json }));\n }\n }\n return node.keys;\n }\n // Arrays that contain the same elements in a different order can share\n // the same SortedKeysInfo object, to save memory.\n private keysByJSON = new Map();\n\n // This has to come last because it depends on keysByJSON.\n public readonly empty = this.admit({});\n}\n\ntype SortedKeysInfo = {\n sorted: string[];\n json: string;\n};\n","import { invariant, newInvariantError } from \"../../utilities/globals/index.js\";\n\nimport type { DocumentNode, FieldNode, SelectionSetNode } from \"graphql\";\nimport { Kind } from \"graphql\";\nimport type { OptimisticWrapperFunction } from \"optimism\";\nimport { wrap } from \"optimism\";\n\nimport type {\n Reference,\n StoreObject,\n FragmentMap,\n FragmentMapFunction,\n} from \"../../utilities/index.js\";\nimport {\n isField,\n resultKeyNameFromField,\n isReference,\n makeReference,\n shouldInclude,\n addTypenameToDocument,\n getDefaultValues,\n getMainDefinition,\n getQueryDefinition,\n getFragmentFromSelection,\n maybeDeepFreeze,\n mergeDeepArray,\n DeepMerger,\n isNonNullObject,\n canUseWeakMap,\n compact,\n canonicalStringify,\n cacheSizes,\n defaultCacheSizes,\n} from \"../../utilities/index.js\";\nimport type { Cache } from \"../core/types/Cache.js\";\nimport type {\n DiffQueryAgainstStoreOptions,\n InMemoryCacheConfig,\n NormalizedCache,\n ReadMergeModifyContext,\n} from \"./types.js\";\nimport {\n maybeDependOnExistenceOfEntity,\n supportsResultCaching,\n} from \"./entityStore.js\";\nimport {\n isArray,\n extractFragmentContext,\n getTypenameFromStoreObject,\n shouldCanonizeResults,\n} from \"./helpers.js\";\nimport type { Policies } from \"./policies.js\";\nimport type { InMemoryCache } from \"./inMemoryCache.js\";\nimport type { MissingTree } from \"../core/types/common.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { ObjectCanon } from \"./object-canon.js\";\n\nexport type VariableMap = { [name: string]: any };\n\ninterface ReadContext extends ReadMergeModifyContext {\n query: DocumentNode;\n policies: Policies;\n canonizeResults: boolean;\n fragmentMap: FragmentMap;\n lookupFragment: FragmentMapFunction;\n}\n\nexport type ExecResult = {\n result: R;\n missing?: MissingTree;\n};\n\ntype ExecSelectionSetOptions = {\n selectionSet: SelectionSetNode;\n objectOrReference: StoreObject | Reference;\n enclosingRef: Reference;\n context: ReadContext;\n};\n\ntype ExecSubSelectedArrayOptions = {\n field: FieldNode;\n array: readonly any[];\n enclosingRef: Reference;\n context: ReadContext;\n};\n\nexport interface StoreReaderConfig {\n cache: InMemoryCache;\n addTypename?: boolean;\n resultCacheMaxSize?: number;\n canonizeResults?: boolean;\n canon?: ObjectCanon;\n fragments?: InMemoryCacheConfig[\"fragments\"];\n}\n\n// Arguments type after keyArgs translation.\ntype ExecSelectionSetKeyArgs = [\n SelectionSetNode,\n StoreObject | Reference,\n ReadMergeModifyContext,\n boolean,\n];\n\nfunction execSelectionSetKeyArgs(\n options: ExecSelectionSetOptions\n): ExecSelectionSetKeyArgs {\n return [\n options.selectionSet,\n options.objectOrReference,\n options.context,\n // We split out this property so we can pass different values\n // independently without modifying options.context itself.\n options.context.canonizeResults,\n ];\n}\n\nexport class StoreReader {\n // cached version of executeSelectionSet\n private executeSelectionSet: OptimisticWrapperFunction<\n [ExecSelectionSetOptions], // Actual arguments tuple type.\n ExecResult, // Actual return type.\n ExecSelectionSetKeyArgs\n >;\n\n // cached version of executeSubSelectedArray\n private executeSubSelectedArray: OptimisticWrapperFunction<\n [ExecSubSelectedArrayOptions],\n ExecResult,\n [ExecSubSelectedArrayOptions]\n >;\n\n private config: {\n cache: InMemoryCache;\n addTypename: boolean;\n resultCacheMaxSize?: number;\n canonizeResults: boolean;\n fragments?: InMemoryCacheConfig[\"fragments\"];\n };\n\n private knownResults = new (canUseWeakMap ? WeakMap : Map)<\n Record,\n SelectionSetNode\n >();\n\n public canon: ObjectCanon;\n public resetCanon() {\n this.canon = new ObjectCanon();\n }\n\n constructor(config: StoreReaderConfig) {\n this.config = compact(config, {\n addTypename: config.addTypename !== false,\n canonizeResults: shouldCanonizeResults(config),\n });\n\n this.canon = config.canon || new ObjectCanon();\n\n // memoized functions in this class will be \"garbage-collected\"\n // by recreating the whole `StoreReader` in\n // `InMemoryCache.resetResultsCache`\n // (triggered from `InMemoryCache.gc` with `resetResultCache: true`)\n this.executeSelectionSet = wrap(\n (options) => {\n const { canonizeResults } = options.context;\n\n const peekArgs = execSelectionSetKeyArgs(options);\n\n // Negate this boolean option so we can find out if we've already read\n // this result using the other boolean value.\n peekArgs[3] = !canonizeResults;\n\n const other = this.executeSelectionSet.peek(...peekArgs);\n\n if (other) {\n if (canonizeResults) {\n return {\n ...other,\n // If we previously read this result without canonizing it, we can\n // reuse that result simply by canonizing it now.\n result: this.canon.admit(other.result),\n };\n }\n // If we previously read this result with canonization enabled, we can\n // return that canonized result as-is.\n return other;\n }\n\n maybeDependOnExistenceOfEntity(\n options.context.store,\n options.enclosingRef.__ref\n );\n\n // Finally, if we didn't find any useful previous results, run the real\n // execSelectionSetImpl method with the given options.\n return this.execSelectionSetImpl(options);\n },\n {\n max:\n this.config.resultCacheMaxSize ||\n cacheSizes[\"inMemoryCache.executeSelectionSet\"] ||\n defaultCacheSizes[\"inMemoryCache.executeSelectionSet\"],\n keyArgs: execSelectionSetKeyArgs,\n // Note that the parameters of makeCacheKey are determined by the\n // array returned by keyArgs.\n makeCacheKey(selectionSet, parent, context, canonizeResults) {\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(\n selectionSet,\n isReference(parent) ? parent.__ref : parent,\n context.varString,\n canonizeResults\n );\n }\n },\n }\n );\n\n this.executeSubSelectedArray = wrap(\n (options: ExecSubSelectedArrayOptions) => {\n maybeDependOnExistenceOfEntity(\n options.context.store,\n options.enclosingRef.__ref\n );\n return this.execSubSelectedArrayImpl(options);\n },\n {\n max:\n this.config.resultCacheMaxSize ||\n cacheSizes[\"inMemoryCache.executeSubSelectedArray\"] ||\n defaultCacheSizes[\"inMemoryCache.executeSubSelectedArray\"],\n makeCacheKey({ field, array, context }) {\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(field, array, context.varString);\n }\n },\n }\n );\n }\n\n /**\n * Given a store and a query, return as much of the result as possible and\n * identify if any data was missing from the store.\n */\n public diffQueryAgainstStore({\n store,\n query,\n rootId = \"ROOT_QUERY\",\n variables,\n returnPartialData = true,\n canonizeResults = this.config.canonizeResults,\n }: DiffQueryAgainstStoreOptions): Cache.DiffResult {\n const policies = this.config.cache.policies;\n\n variables = {\n ...getDefaultValues(getQueryDefinition(query)),\n ...variables!,\n };\n\n const rootRef = makeReference(rootId);\n const execResult = this.executeSelectionSet({\n selectionSet: getMainDefinition(query).selectionSet,\n objectOrReference: rootRef,\n enclosingRef: rootRef,\n context: {\n store,\n query,\n policies,\n variables,\n varString: canonicalStringify(variables),\n canonizeResults,\n ...extractFragmentContext(query, this.config.fragments),\n },\n });\n\n let missing: MissingFieldError[] | undefined;\n if (execResult.missing) {\n // For backwards compatibility we still report an array of\n // MissingFieldError objects, even though there will only ever be at most\n // one of them, now that all missing field error messages are grouped\n // together in the execResult.missing tree.\n missing = [\n new MissingFieldError(\n firstMissing(execResult.missing)!,\n execResult.missing,\n query,\n variables\n ),\n ];\n if (!returnPartialData) {\n throw missing[0];\n }\n }\n\n return {\n result: execResult.result,\n complete: !missing,\n missing,\n };\n }\n\n public isFresh(\n result: Record,\n parent: StoreObject | Reference,\n selectionSet: SelectionSetNode,\n context: ReadMergeModifyContext\n ): boolean {\n if (\n supportsResultCaching(context.store) &&\n this.knownResults.get(result) === selectionSet\n ) {\n const latest = this.executeSelectionSet.peek(\n selectionSet,\n parent,\n context,\n // If result is canonical, then it could only have been previously\n // cached by the canonizing version of executeSelectionSet, so we can\n // avoid checking both possibilities here.\n this.canon.isKnown(result)\n );\n if (latest && result === latest.result) {\n return true;\n }\n }\n return false;\n }\n\n // Uncached version of executeSelectionSet.\n private execSelectionSetImpl({\n selectionSet,\n objectOrReference,\n enclosingRef,\n context,\n }: ExecSelectionSetOptions): ExecResult {\n if (\n isReference(objectOrReference) &&\n !context.policies.rootTypenamesById[objectOrReference.__ref] &&\n !context.store.has(objectOrReference.__ref)\n ) {\n return {\n result: this.canon.empty,\n missing: `Dangling reference to missing ${objectOrReference.__ref} object`,\n };\n }\n\n const { variables, policies, store } = context;\n const typename = store.getFieldValue(\n objectOrReference,\n \"__typename\"\n );\n\n const objectsToMerge: Record[] = [];\n let missing: MissingTree | undefined;\n const missingMerger = new DeepMerger();\n\n if (\n this.config.addTypename &&\n typeof typename === \"string\" &&\n !policies.rootIdsByTypename[typename]\n ) {\n // Ensure we always include a default value for the __typename\n // field, if we have one, and this.config.addTypename is true. Note\n // that this field can be overridden by other merged objects.\n objectsToMerge.push({ __typename: typename });\n }\n\n function handleMissing(result: ExecResult, resultName: string): T {\n if (result.missing) {\n missing = missingMerger.merge(missing, {\n [resultName]: result.missing,\n });\n }\n return result.result;\n }\n\n const workSet = new Set(selectionSet.selections);\n\n workSet.forEach((selection) => {\n // Omit fields with directives @skip(if: ) or\n // @include(if: ).\n if (!shouldInclude(selection, variables)) return;\n\n if (isField(selection)) {\n let fieldValue = policies.readField(\n {\n fieldName: selection.name.value,\n field: selection,\n variables: context.variables,\n from: objectOrReference,\n },\n context\n );\n\n const resultName = resultKeyNameFromField(selection);\n\n if (fieldValue === void 0) {\n if (!addTypenameToDocument.added(selection)) {\n missing = missingMerger.merge(missing, {\n [resultName]: `Can't find field '${selection.name.value}' on ${\n isReference(objectOrReference) ?\n objectOrReference.__ref + \" object\"\n : \"object \" + JSON.stringify(objectOrReference, null, 2)\n }`,\n });\n }\n } else if (isArray(fieldValue)) {\n if (fieldValue.length > 0) {\n fieldValue = handleMissing(\n this.executeSubSelectedArray({\n field: selection,\n array: fieldValue,\n enclosingRef,\n context,\n }),\n resultName\n );\n }\n } else if (!selection.selectionSet) {\n // If the field does not have a selection set, then we handle it\n // as a scalar value. To keep this.canon from canonicalizing\n // this value, we use this.canon.pass to wrap fieldValue in a\n // Pass object that this.canon.admit will later unwrap as-is.\n if (context.canonizeResults) {\n fieldValue = this.canon.pass(fieldValue);\n }\n } else if (fieldValue != null) {\n // In this case, because we know the field has a selection set,\n // it must be trying to query a GraphQLObjectType, which is why\n // fieldValue must be != null.\n fieldValue = handleMissing(\n this.executeSelectionSet({\n selectionSet: selection.selectionSet,\n objectOrReference: fieldValue as StoreObject | Reference,\n enclosingRef: isReference(fieldValue) ? fieldValue : enclosingRef,\n context,\n }),\n resultName\n );\n }\n\n if (fieldValue !== void 0) {\n objectsToMerge.push({ [resultName]: fieldValue });\n }\n } else {\n const fragment = getFragmentFromSelection(\n selection,\n context.lookupFragment\n );\n\n if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n throw newInvariantError(`No fragment named %s`, selection.name.value);\n }\n\n if (fragment && policies.fragmentMatches(fragment, typename)) {\n fragment.selectionSet.selections.forEach(workSet.add, workSet);\n }\n }\n });\n\n const result = mergeDeepArray(objectsToMerge);\n const finalResult: ExecResult = { result, missing };\n const frozen =\n context.canonizeResults ?\n this.canon.admit(finalResult)\n // Since this.canon is normally responsible for freezing results (only in\n // development), freeze them manually if canonization is disabled.\n : maybeDeepFreeze(finalResult);\n\n // Store this result with its selection set so that we can quickly\n // recognize it again in the StoreReader#isFresh method.\n if (frozen.result) {\n this.knownResults.set(frozen.result, selectionSet);\n }\n\n return frozen;\n }\n\n // Uncached version of executeSubSelectedArray.\n private execSubSelectedArrayImpl({\n field,\n array,\n enclosingRef,\n context,\n }: ExecSubSelectedArrayOptions): ExecResult {\n let missing: MissingTree | undefined;\n let missingMerger = new DeepMerger();\n\n function handleMissing(childResult: ExecResult, i: number): T {\n if (childResult.missing) {\n missing = missingMerger.merge(missing, { [i]: childResult.missing });\n }\n return childResult.result;\n }\n\n if (field.selectionSet) {\n array = array.filter(context.store.canRead);\n }\n\n array = array.map((item, i) => {\n // null value in array\n if (item === null) {\n return null;\n }\n\n // This is a nested array, recurse\n if (isArray(item)) {\n return handleMissing(\n this.executeSubSelectedArray({\n field,\n array: item,\n enclosingRef,\n context,\n }),\n i\n );\n }\n\n // This is an object, run the selection set on it\n if (field.selectionSet) {\n return handleMissing(\n this.executeSelectionSet({\n selectionSet: field.selectionSet,\n objectOrReference: item,\n enclosingRef: isReference(item) ? item : enclosingRef,\n context,\n }),\n i\n );\n }\n\n if (__DEV__) {\n assertSelectionSetForIdValue(context.store, field, item);\n }\n\n return item;\n });\n\n return {\n result: context.canonizeResults ? this.canon.admit(array) : array,\n missing,\n };\n }\n}\n\nfunction firstMissing(tree: MissingTree): string | undefined {\n try {\n JSON.stringify(tree, (_, value) => {\n if (typeof value === \"string\") throw value;\n return value;\n });\n } catch (result) {\n return result as string;\n }\n}\n\nfunction assertSelectionSetForIdValue(\n store: NormalizedCache,\n field: FieldNode,\n fieldValue: any\n) {\n if (!field.selectionSet) {\n const workSet = new Set([fieldValue]);\n workSet.forEach((value) => {\n if (isNonNullObject(value)) {\n invariant(\n !isReference(value),\n `Missing selection set for object of type %s returned for query field %s`,\n getTypenameFromStoreObject(store, value),\n field.name.value\n );\n Object.values(value).forEach(workSet.add, workSet);\n }\n });\n }\n}\n","import { invariant } from \"../../utilities/globals/index.js\";\n\nimport {\n argumentsObjectFromField,\n DeepMerger,\n isNonEmptyArray,\n isNonNullObject,\n} from \"../../utilities/index.js\";\n\nimport { hasOwn, isArray } from \"./helpers.js\";\nimport type {\n KeySpecifier,\n KeyFieldsFunction,\n KeyArgsFunction,\n} from \"./policies.js\";\n\n// Mapping from JSON-encoded KeySpecifier strings to associated information.\nconst specifierInfoCache: Record<\n string,\n {\n paths?: string[][];\n keyFieldsFn?: KeyFieldsFunction;\n keyArgsFn?: KeyArgsFunction;\n }\n> = Object.create(null);\n\nfunction lookupSpecifierInfo(spec: KeySpecifier) {\n // It's safe to encode KeySpecifier arrays with JSON.stringify, since they're\n // just arrays of strings or nested KeySpecifier arrays, and the order of the\n // array elements is important (and suitably preserved by JSON.stringify).\n const cacheKey = JSON.stringify(spec);\n return (\n specifierInfoCache[cacheKey] ||\n (specifierInfoCache[cacheKey] = Object.create(null))\n );\n}\n\nexport function keyFieldsFnFromSpecifier(\n specifier: KeySpecifier\n): KeyFieldsFunction {\n const info = lookupSpecifierInfo(specifier);\n\n return (\n info.keyFieldsFn ||\n (info.keyFieldsFn = (object, context) => {\n const extract: typeof extractKey = (from, key) =>\n context.readField(key, from);\n\n const keyObject = (context.keyObject = collectSpecifierPaths(\n specifier,\n (schemaKeyPath) => {\n let extracted = extractKeyPath(\n context.storeObject,\n schemaKeyPath,\n // Using context.readField to extract paths from context.storeObject\n // allows the extraction to see through Reference objects and respect\n // custom read functions.\n extract\n );\n\n if (\n extracted === void 0 &&\n object !== context.storeObject &&\n hasOwn.call(object, schemaKeyPath[0])\n ) {\n // If context.storeObject fails to provide a value for the requested\n // path, fall back to the raw result object, if it has a top-level key\n // matching the first key in the path (schemaKeyPath[0]). This allows\n // key fields included in the written data to be saved in the cache\n // even if they are not selected explicitly in context.selectionSet.\n // Not being mentioned by context.selectionSet is convenient here,\n // since it means these extra fields cannot be affected by field\n // aliasing, which is why we can use extractKey instead of\n // context.readField for this extraction.\n extracted = extractKeyPath(object, schemaKeyPath, extractKey);\n }\n\n invariant(\n extracted !== void 0,\n `Missing field '%s' while extracting keyFields from %s`,\n schemaKeyPath.join(\".\"),\n object\n );\n\n return extracted;\n }\n ));\n\n return `${context.typename}:${JSON.stringify(keyObject)}`;\n })\n );\n}\n\n// The keyArgs extraction process is roughly analogous to keyFields extraction,\n// but there are no aliases involved, missing fields are tolerated (by merely\n// omitting them from the key), and drawing from field.directives or variables\n// is allowed (in addition to drawing from the field's arguments object).\n// Concretely, these differences mean passing a different key path extractor\n// function to collectSpecifierPaths, reusing the shared extractKeyPath helper\n// wherever possible.\nexport function keyArgsFnFromSpecifier(\n specifier: KeySpecifier\n): KeyArgsFunction {\n const info = lookupSpecifierInfo(specifier);\n\n return (\n info.keyArgsFn ||\n (info.keyArgsFn = (args, { field, variables, fieldName }) => {\n const collected = collectSpecifierPaths(specifier, (keyPath) => {\n const firstKey = keyPath[0];\n const firstChar = firstKey.charAt(0);\n\n if (firstChar === \"@\") {\n if (field && isNonEmptyArray(field.directives)) {\n const directiveName = firstKey.slice(1);\n // If the directive appears multiple times, only the first\n // occurrence's arguments will be used. TODO Allow repetition?\n // TODO Cache this work somehow, a la aliasMap?\n const d = field.directives.find(\n (d) => d.name.value === directiveName\n );\n // Fortunately argumentsObjectFromField works for DirectiveNode!\n const directiveArgs = d && argumentsObjectFromField(d, variables);\n // For directives without arguments (d defined, but directiveArgs ===\n // null), the presence or absence of the directive still counts as\n // part of the field key, so we return null in those cases. If no\n // directive with this name was found for this field (d undefined and\n // thus directiveArgs undefined), we return undefined, which causes\n // this value to be omitted from the key object returned by\n // collectSpecifierPaths.\n return (\n directiveArgs &&\n extractKeyPath(\n directiveArgs,\n // If keyPath.length === 1, this code calls extractKeyPath with an\n // empty path, which works because it uses directiveArgs as the\n // extracted value.\n keyPath.slice(1)\n )\n );\n }\n // If the key started with @ but there was no corresponding directive,\n // we want to omit this value from the key object, not fall through to\n // treating @whatever as a normal argument name.\n return;\n }\n\n if (firstChar === \"$\") {\n const variableName = firstKey.slice(1);\n if (variables && hasOwn.call(variables, variableName)) {\n const varKeyPath = keyPath.slice(0);\n varKeyPath[0] = variableName;\n return extractKeyPath(variables, varKeyPath);\n }\n // If the key started with $ but there was no corresponding variable, we\n // want to omit this value from the key object, not fall through to\n // treating $whatever as a normal argument name.\n return;\n }\n\n if (args) {\n return extractKeyPath(args, keyPath);\n }\n });\n\n const suffix = JSON.stringify(collected);\n\n // If no arguments were passed to this field, and it didn't have any other\n // field key contributions from directives or variables, hide the empty\n // :{} suffix from the field key. However, a field passed no arguments can\n // still end up with a non-empty :{...} suffix if its key configuration\n // refers to directives or variables.\n if (args || suffix !== \"{}\") {\n fieldName += \":\" + suffix;\n }\n\n return fieldName;\n })\n );\n}\n\nexport function collectSpecifierPaths(\n specifier: KeySpecifier,\n extractor: (path: string[]) => any\n): Record {\n // For each path specified by specifier, invoke the extractor, and repeatedly\n // merge the results together, with appropriate ancestor context.\n const merger = new DeepMerger();\n return getSpecifierPaths(specifier).reduce((collected, path) => {\n let toMerge = extractor(path);\n if (toMerge !== void 0) {\n // This path is not expected to contain array indexes, so the toMerge\n // reconstruction will not contain arrays. TODO Fix this?\n for (let i = path.length - 1; i >= 0; --i) {\n toMerge = { [path[i]]: toMerge };\n }\n collected = merger.merge(collected, toMerge);\n }\n return collected;\n }, Object.create(null));\n}\n\nexport function getSpecifierPaths(spec: KeySpecifier): string[][] {\n const info = lookupSpecifierInfo(spec);\n\n if (!info.paths) {\n const paths: string[][] = (info.paths = []);\n const currentPath: string[] = [];\n\n spec.forEach((s, i) => {\n if (isArray(s)) {\n getSpecifierPaths(s).forEach((p) => paths.push(currentPath.concat(p)));\n currentPath.length = 0;\n } else {\n currentPath.push(s);\n if (!isArray(spec[i + 1])) {\n paths.push(currentPath.slice(0));\n currentPath.length = 0;\n }\n }\n });\n }\n\n return info.paths!;\n}\n\nfunction extractKey, TKey extends string>(\n object: TObj,\n key: TKey\n): TObj[TKey] | undefined {\n return object[key];\n}\n\nexport function extractKeyPath(\n object: Record,\n path: string[],\n extract?: typeof extractKey\n): any {\n // For each key in path, extract the corresponding child property from obj,\n // flattening arrays if encountered (uncommon for keyFields and keyArgs, but\n // possible). The final result of path.reduce is normalized so unexpected leaf\n // objects have their keys safely sorted. That final result is difficult to\n // type as anything other than any. You're welcome to try to improve the\n // return type, but keep in mind extractKeyPath is not a public function\n // (exported only for testing), so the effort may not be worthwhile unless the\n // limited set of actual callers (see above) pass arguments that TypeScript\n // can statically type. If we know only that path is some array of strings\n // (and not, say, a specific tuple of statically known strings), any (or\n // possibly unknown) is the honest answer.\n extract = extract || extractKey;\n return normalize(\n path.reduce(function reducer(obj, key): any {\n return isArray(obj) ?\n obj.map((child) => reducer(child, key))\n : obj && extract!(obj, key);\n }, object)\n );\n}\n\nfunction normalize(value: T): T {\n // Usually the extracted value will be a scalar value, since most primary\n // key fields are scalar, but just in case we get an object or an array, we\n // need to do some normalization of the order of (nested) keys.\n if (isNonNullObject(value)) {\n if (isArray(value)) {\n return value.map(normalize) as any;\n }\n return collectSpecifierPaths(Object.keys(value).sort(), (path) =>\n extractKeyPath(value, path)\n ) as T;\n }\n return value;\n}\n","import { invariant, newInvariantError } from \"../../utilities/globals/index.js\";\n\nimport type {\n InlineFragmentNode,\n FragmentDefinitionNode,\n SelectionSetNode,\n FieldNode,\n} from \"graphql\";\n\nimport type {\n FragmentMap,\n StoreValue,\n StoreObject,\n Reference,\n} from \"../../utilities/index.js\";\nimport {\n storeKeyNameFromField,\n argumentsObjectFromField,\n isReference,\n getStoreKeyName,\n isNonNullObject,\n stringifyForDisplay,\n} from \"../../utilities/index.js\";\nimport type {\n IdGetter,\n MergeInfo,\n NormalizedCache,\n ReadMergeModifyContext,\n} from \"./types.js\";\nimport {\n hasOwn,\n fieldNameFromStoreName,\n storeValueIsStoreObject,\n selectionSetMatchesResult,\n TypeOrFieldNameRegExp,\n defaultDataIdFromObject,\n isArray,\n} from \"./helpers.js\";\nimport { cacheSlot } from \"./reactiveVars.js\";\nimport type { InMemoryCache } from \"./inMemoryCache.js\";\nimport type {\n SafeReadonly,\n FieldSpecifier,\n ToReferenceFunction,\n ReadFieldFunction,\n ReadFieldOptions,\n CanReadFunction,\n} from \"../core/types/common.js\";\nimport type { WriteContext } from \"./writeToStore.js\";\n\nimport {\n keyArgsFnFromSpecifier,\n keyFieldsFnFromSpecifier,\n} from \"./key-extractor.js\";\nimport { disableWarningsSlot } from \"../../masking/index.js\";\n\nexport type TypePolicies = {\n [__typename: string]: TypePolicy;\n};\n\n// TypeScript 3.7 will allow recursive type aliases, so this should work:\n// type KeySpecifier = (string | KeySpecifier)[]\nexport type KeySpecifier = ReadonlyArray;\n\nexport type KeyFieldsContext = {\n // The __typename of the incoming object, even if the __typename field was\n // aliased to another name in the raw result object. May be undefined when\n // dataIdFromObject is called for objects without __typename fields.\n typename: string | undefined;\n\n // The object to be identified, after processing to remove aliases and\n // normalize identifiable child objects with references.\n storeObject: StoreObject;\n\n // Handy tool for reading additional fields from context.storeObject, either\n // readField(\"fieldName\") to read storeObject[fieldName], or readField(\"name\",\n // objectOrReference) to read from another object or Reference. If you read a\n // field with a read function, that function will be invoked.\n readField: ReadFieldFunction;\n\n // If you are writing a custom keyFields function, and you plan to use the raw\n // result object passed as the first argument, you may also need access to the\n // selection set and available fragments for this object, just in case any\n // fields have aliases. Since this logic is tricky to get right, and these\n // context properties are not even always provided (for example, they are\n // omitted when calling cache.identify(object), where object is assumed to be\n // a StoreObject), we recommend you use context.storeObject (which has already\n // been de-aliased) and context.readField (which can read from references as\n // well as objects) instead of the raw result object in your keyFields\n // functions, or just rely on the internal implementation of keyFields:[...]\n // syntax to get these details right for you.\n selectionSet?: SelectionSetNode;\n fragmentMap?: FragmentMap;\n\n // Internal. May be set by the KeyFieldsFunction to report fields that were\n // involved in computing the ID. Never passed in by the caller.\n keyObject?: Record;\n};\n\nexport type KeyFieldsFunction = (\n object: Readonly,\n context: KeyFieldsContext\n) => KeySpecifier | false | ReturnType;\n\ntype KeyFieldsResult = Exclude, KeySpecifier>;\n\n// TODO Should TypePolicy be a generic type, with a TObject or TEntity\n// type parameter?\nexport type TypePolicy = {\n // Allows defining the primary key fields for this type, either using an\n // array of field names or a function that returns an arbitrary string.\n keyFields?: KeySpecifier | KeyFieldsFunction | false;\n\n // Allows defining a merge function (or merge:true/false shorthand) to\n // be used for merging objects of this type wherever they appear, unless\n // the parent field also defines a merge function/boolean (that is,\n // parent field merge functions take precedence over type policy merge\n // functions). In many cases, defining merge:true for a given type\n // policy can save you from specifying merge:true for all the field\n // policies where that type might be encountered.\n merge?: FieldMergeFunction | boolean;\n\n // In the rare event that your schema happens to use a different\n // __typename for the root Query, Mutation, and/or Schema types, you can\n // express your deviant preferences by enabling one of these options.\n queryType?: true;\n mutationType?: true;\n subscriptionType?: true;\n\n fields?: {\n [fieldName: string]: FieldPolicy | FieldReadFunction;\n };\n};\n\nexport type KeyArgsFunction = (\n args: Record | null,\n context: {\n typename: string;\n fieldName: string;\n field: FieldNode | null;\n variables?: Record;\n }\n) => KeySpecifier | false | ReturnType;\n\nexport type FieldPolicy<\n // The internal representation used to store the field's data in the\n // cache. Must be JSON-serializable if you plan to serialize the result\n // of cache.extract() using JSON.\n TExisting = any,\n // The type of the incoming parameter passed to the merge function,\n // typically matching the GraphQL response format, but with Reference\n // objects substituted for any identifiable child objects. Often the\n // same as TExisting, but not necessarily.\n TIncoming = TExisting,\n // The type that the read function actually returns, using TExisting\n // data and options.args as input. Usually the same as TIncoming.\n TReadResult = TIncoming,\n // Allows FieldFunctionOptions definition to be overwritten by the\n // developer\n TOptions extends FieldFunctionOptions = FieldFunctionOptions,\n> = {\n keyArgs?: KeySpecifier | KeyArgsFunction | false;\n read?: FieldReadFunction;\n merge?: FieldMergeFunction | boolean;\n};\n\nexport type StorageType = Record;\n\nfunction argsFromFieldSpecifier(spec: FieldSpecifier) {\n return (\n spec.args !== void 0 ? spec.args\n : spec.field ? argumentsObjectFromField(spec.field, spec.variables)\n : null\n );\n}\n\nexport interface FieldFunctionOptions<\n TArgs = Record,\n TVars = Record,\n> {\n args: TArgs | null;\n\n // The name of the field, equal to options.field.name.value when\n // options.field is available. Useful if you reuse the same function for\n // multiple fields, and you need to know which field you're currently\n // processing. Always a string, even when options.field is null.\n fieldName: string;\n\n // The full field key used internally, including serialized key arguments.\n storeFieldName: string;\n\n // The FieldNode object used to read this field. Useful if you need to\n // know about other attributes of the field, such as its directives. This\n // option will be null when a string was passed to options.readField.\n field: FieldNode | null;\n\n variables?: TVars;\n\n // Utilities for dealing with { __ref } objects.\n isReference: typeof isReference;\n toReference: ToReferenceFunction;\n\n // A handy place to put field-specific data that you want to survive\n // across multiple read function calls. Useful for field-level caching,\n // if your read function does any expensive work.\n storage: StorageType;\n\n cache: InMemoryCache;\n\n // Helper function for reading other fields within the current object.\n // If a foreign object or reference is provided, the field will be read\n // from that object instead of the current object, so this function can\n // be used (together with isReference) to examine the cache outside the\n // current object. If a FieldNode is passed instead of a string, and\n // that FieldNode has arguments, the same options.variables will be used\n // to compute the argument values. Note that this function will invoke\n // custom read functions for other fields, if defined. Always returns\n // immutable data (enforced with Object.freeze in development).\n readField: ReadFieldFunction;\n\n // Returns true for non-normalized StoreObjects and non-dangling\n // References, indicating that readField(name, objOrRef) has a chance of\n // working. Useful for filtering out dangling references from lists.\n canRead: CanReadFunction;\n\n // Instead of just merging objects with { ...existing, ...incoming }, this\n // helper function can be used to merge objects in a way that respects any\n // custom merge functions defined for their fields.\n mergeObjects: MergeObjectsFunction;\n}\n\ntype MergeObjectsFunction = (\n existing: T,\n incoming: T\n) => T;\n\nexport type FieldReadFunction<\n TExisting = any,\n TReadResult = TExisting,\n TOptions extends FieldFunctionOptions = FieldFunctionOptions,\n> = (\n // When reading a field, one often needs to know about any existing\n // value stored for that field. If the field is read before any value\n // has been written to the cache, this existing parameter will be\n // undefined, which makes it easy to use a default parameter expression\n // to supply the initial value. This parameter is positional (rather\n // than one of the named options) because that makes it possible for the\n // developer to annotate it with a type, without also having to provide\n // a whole new type for the options object.\n existing: SafeReadonly | undefined,\n options: TOptions\n) => TReadResult | undefined;\n\nexport type FieldMergeFunction<\n TExisting = any,\n TIncoming = TExisting,\n // Passing the whole FieldFunctionOptions makes the current definition\n // independent from its implementation\n TOptions extends FieldFunctionOptions = FieldFunctionOptions,\n> = (\n existing: SafeReadonly | undefined,\n // The incoming parameter needs to be positional as well, for the same\n // reasons discussed in FieldReadFunction above.\n incoming: SafeReadonly,\n options: TOptions\n) => SafeReadonly;\n\nconst nullKeyFieldsFn: KeyFieldsFunction = () => void 0;\nconst simpleKeyArgsFn: KeyArgsFunction = (_args, context) => context.fieldName;\n\n// These merge functions can be selected by specifying merge:true or\n// merge:false in a field policy.\nconst mergeTrueFn: FieldMergeFunction = (\n existing,\n incoming,\n { mergeObjects }\n) => mergeObjects(existing, incoming);\nconst mergeFalseFn: FieldMergeFunction = (_, incoming) => incoming;\n\nexport type PossibleTypesMap = {\n [supertype: string]: string[];\n};\n\nexport class Policies {\n private typePolicies: {\n [__typename: string]: {\n keyFn?: KeyFieldsFunction;\n merge?: FieldMergeFunction;\n fields: {\n [fieldName: string]: {\n keyFn?: KeyArgsFunction;\n read?: FieldReadFunction;\n merge?: FieldMergeFunction;\n };\n };\n };\n } = Object.create(null);\n\n private toBeAdded: {\n [__typename: string]: TypePolicy[];\n } = Object.create(null);\n\n // Map from subtype names to sets of supertype names. Note that this\n // representation inverts the structure of possibleTypes (whose keys are\n // supertypes and whose values are arrays of subtypes) because it tends\n // to be much more efficient to search upwards than downwards.\n private supertypeMap = new Map>();\n\n // Any fuzzy subtypes specified by possibleTypes will be converted to\n // RegExp objects and recorded here. Every key of this map can also be\n // found in supertypeMap. In many cases this Map will be empty, which\n // means no fuzzy subtype checking will happen in fragmentMatches.\n private fuzzySubtypes = new Map();\n\n public readonly cache: InMemoryCache;\n\n public readonly rootIdsByTypename: Record =\n Object.create(null);\n public readonly rootTypenamesById: Record =\n Object.create(null);\n\n public readonly usingPossibleTypes = false;\n\n constructor(\n private config: {\n cache: InMemoryCache;\n dataIdFromObject?: KeyFieldsFunction;\n possibleTypes?: PossibleTypesMap;\n typePolicies?: TypePolicies;\n }\n ) {\n this.config = {\n dataIdFromObject: defaultDataIdFromObject,\n ...config,\n };\n\n this.cache = this.config.cache;\n\n this.setRootTypename(\"Query\");\n this.setRootTypename(\"Mutation\");\n this.setRootTypename(\"Subscription\");\n\n if (config.possibleTypes) {\n this.addPossibleTypes(config.possibleTypes);\n }\n\n if (config.typePolicies) {\n this.addTypePolicies(config.typePolicies);\n }\n }\n\n public identify(\n object: StoreObject,\n partialContext?: Partial\n ): [string?, StoreObject?] {\n const policies = this;\n\n const typename =\n (partialContext &&\n (partialContext.typename || partialContext.storeObject?.__typename)) ||\n object.__typename;\n\n // It should be possible to write root Query fields with writeFragment,\n // using { __typename: \"Query\", ... } as the data, but it does not make\n // sense to allow the same identification behavior for the Mutation and\n // Subscription types, since application code should never be writing\n // directly to (or reading directly from) those root objects.\n if (typename === this.rootTypenamesById.ROOT_QUERY) {\n return [\"ROOT_QUERY\"];\n }\n\n // Default context.storeObject to object if not otherwise provided.\n const storeObject =\n (partialContext && partialContext.storeObject) || object;\n\n const context: KeyFieldsContext = {\n ...partialContext,\n typename,\n storeObject,\n readField:\n (partialContext && partialContext.readField) ||\n function () {\n const options = normalizeReadFieldOptions(arguments, storeObject);\n return policies.readField(options, {\n store: policies.cache[\"data\"],\n variables: options.variables,\n });\n },\n };\n\n let id: KeyFieldsResult;\n\n const policy = typename && this.getTypePolicy(typename);\n let keyFn = (policy && policy.keyFn) || this.config.dataIdFromObject;\n\n disableWarningsSlot.withValue(true, () => {\n while (keyFn) {\n const specifierOrId = keyFn({ ...object, ...storeObject }, context);\n if (isArray(specifierOrId)) {\n keyFn = keyFieldsFnFromSpecifier(specifierOrId);\n } else {\n id = specifierOrId;\n break;\n }\n }\n });\n\n id = id ? String(id) : void 0;\n return context.keyObject ? [id, context.keyObject] : [id];\n }\n\n public addTypePolicies(typePolicies: TypePolicies) {\n Object.keys(typePolicies).forEach((typename) => {\n const { queryType, mutationType, subscriptionType, ...incoming } =\n typePolicies[typename];\n\n // Though {query,mutation,subscription}Type configurations are rare,\n // it's important to call setRootTypename as early as possible,\n // since these configurations should apply consistently for the\n // entire lifetime of the cache. Also, since only one __typename can\n // qualify as one of these root types, these three properties cannot\n // be inherited, unlike the rest of the incoming properties. That\n // restriction is convenient, because the purpose of this.toBeAdded\n // is to delay the processing of type/field policies until the first\n // time they're used, allowing policies to be added in any order as\n // long as all relevant policies (including policies for supertypes)\n // have been added by the time a given policy is used for the first\n // time. In other words, since inheritance doesn't matter for these\n // properties, there's also no need to delay their processing using\n // the this.toBeAdded queue.\n if (queryType) this.setRootTypename(\"Query\", typename);\n if (mutationType) this.setRootTypename(\"Mutation\", typename);\n if (subscriptionType) this.setRootTypename(\"Subscription\", typename);\n\n if (hasOwn.call(this.toBeAdded, typename)) {\n this.toBeAdded[typename].push(incoming);\n } else {\n this.toBeAdded[typename] = [incoming];\n }\n });\n }\n\n private updateTypePolicy(typename: string, incoming: TypePolicy) {\n const existing = this.getTypePolicy(typename);\n const { keyFields, fields } = incoming;\n\n function setMerge(\n existing: { merge?: FieldMergeFunction | boolean },\n merge?: FieldMergeFunction | boolean\n ) {\n existing.merge =\n typeof merge === \"function\" ? merge\n // Pass merge:true as a shorthand for a merge implementation\n // that returns options.mergeObjects(existing, incoming).\n : merge === true ? mergeTrueFn\n // Pass merge:false to make incoming always replace existing\n // without any warnings about data clobbering.\n : merge === false ? mergeFalseFn\n : existing.merge;\n }\n\n // Type policies can define merge functions, as an alternative to\n // using field policies to merge child objects.\n setMerge(existing, incoming.merge);\n\n existing.keyFn =\n // Pass false to disable normalization for this typename.\n keyFields === false ? nullKeyFieldsFn\n // Pass an array of strings to use those fields to compute a\n // composite ID for objects of this typename.\n : isArray(keyFields) ? keyFieldsFnFromSpecifier(keyFields)\n // Pass a function to take full control over identification.\n : typeof keyFields === \"function\" ? keyFields\n // Leave existing.keyFn unchanged if above cases fail.\n : existing.keyFn;\n\n if (fields) {\n Object.keys(fields).forEach((fieldName) => {\n const existing = this.getFieldPolicy(typename, fieldName, true)!;\n const incoming = fields[fieldName];\n\n if (typeof incoming === \"function\") {\n existing.read = incoming;\n } else {\n const { keyArgs, read, merge } = incoming;\n\n existing.keyFn =\n // Pass false to disable argument-based differentiation of\n // field identities.\n keyArgs === false ? simpleKeyArgsFn\n // Pass an array of strings to use named arguments to\n // compute a composite identity for the field.\n : isArray(keyArgs) ? keyArgsFnFromSpecifier(keyArgs)\n // Pass a function to take full control over field identity.\n : typeof keyArgs === \"function\" ? keyArgs\n // Leave existing.keyFn unchanged if above cases fail.\n : existing.keyFn;\n\n if (typeof read === \"function\") {\n existing.read = read;\n }\n\n setMerge(existing, merge);\n }\n\n if (existing.read && existing.merge) {\n // If we have both a read and a merge function, assume\n // keyArgs:false, because read and merge together can take\n // responsibility for interpreting arguments in and out. This\n // default assumption can always be overridden by specifying\n // keyArgs explicitly in the FieldPolicy.\n existing.keyFn = existing.keyFn || simpleKeyArgsFn;\n }\n });\n }\n }\n\n private setRootTypename(\n which: \"Query\" | \"Mutation\" | \"Subscription\",\n typename: string = which\n ) {\n const rootId = \"ROOT_\" + which.toUpperCase();\n const old = this.rootTypenamesById[rootId];\n if (typename !== old) {\n invariant(\n !old || old === which,\n `Cannot change root %s __typename more than once`,\n which\n );\n // First, delete any old __typename associated with this rootId from\n // rootIdsByTypename.\n if (old) delete this.rootIdsByTypename[old];\n // Now make this the only __typename that maps to this rootId.\n this.rootIdsByTypename[typename] = rootId;\n // Finally, update the __typename associated with this rootId.\n this.rootTypenamesById[rootId] = typename;\n }\n }\n\n public addPossibleTypes(possibleTypes: PossibleTypesMap) {\n (this.usingPossibleTypes as boolean) = true;\n Object.keys(possibleTypes).forEach((supertype) => {\n // Make sure all types have an entry in this.supertypeMap, even if\n // their supertype set is empty, so we can return false immediately\n // from policies.fragmentMatches for unknown supertypes.\n this.getSupertypeSet(supertype, true);\n\n possibleTypes[supertype].forEach((subtype) => {\n this.getSupertypeSet(subtype, true)!.add(supertype);\n const match = subtype.match(TypeOrFieldNameRegExp);\n if (!match || match[0] !== subtype) {\n // TODO Don't interpret just any invalid typename as a RegExp.\n this.fuzzySubtypes.set(subtype, new RegExp(subtype));\n }\n });\n });\n }\n\n private getTypePolicy(typename: string): Policies[\"typePolicies\"][string] {\n if (!hasOwn.call(this.typePolicies, typename)) {\n const policy: Policies[\"typePolicies\"][string] = (this.typePolicies[\n typename\n ] = Object.create(null));\n policy.fields = Object.create(null);\n\n // When the TypePolicy for typename is first accessed, instead of\n // starting with an empty policy object, inherit any properties or\n // fields from the type policies of the supertypes of typename.\n //\n // Any properties or fields defined explicitly within the TypePolicy\n // for typename will take precedence, and if there are multiple\n // supertypes, the properties of policies whose types were added\n // later via addPossibleTypes will take precedence over those of\n // earlier supertypes. TODO Perhaps we should warn about these\n // conflicts in development, and recommend defining the property\n // explicitly in the subtype policy?\n //\n // Field policy inheritance is atomic/shallow: you can't inherit a\n // field policy and then override just its read function, since read\n // and merge functions often need to cooperate, so changing only one\n // of them would be a recipe for inconsistency.\n //\n // Once the TypePolicy for typename has been accessed, its properties can\n // still be updated directly using addTypePolicies, but future changes to\n // inherited supertype policies will not be reflected in this subtype\n // policy, because this code runs at most once per typename.\n let supertypes = this.supertypeMap.get(typename);\n if (!supertypes && this.fuzzySubtypes.size) {\n // To make the inheritance logic work for unknown typename strings that\n // may have fuzzy supertypes, we give this typename an empty supertype\n // set and then populate it with any fuzzy supertypes that match.\n supertypes = this.getSupertypeSet(typename, true)!;\n // This only works for typenames that are directly matched by a fuzzy\n // supertype. What if there is an intermediate chain of supertypes?\n // While possible, that situation can only be solved effectively by\n // specifying the intermediate relationships via possibleTypes, manually\n // and in a non-fuzzy way.\n this.fuzzySubtypes.forEach((regExp, fuzzy) => {\n if (regExp.test(typename)) {\n // The fuzzy parameter is just the original string version of regExp\n // (not a valid __typename string), but we can look up the\n // associated supertype(s) in this.supertypeMap.\n const fuzzySupertypes = this.supertypeMap.get(fuzzy);\n if (fuzzySupertypes) {\n fuzzySupertypes.forEach((supertype) =>\n supertypes!.add(supertype)\n );\n }\n }\n });\n }\n if (supertypes && supertypes.size) {\n supertypes.forEach((supertype) => {\n const { fields, ...rest } = this.getTypePolicy(supertype);\n Object.assign(policy, rest);\n Object.assign(policy.fields, fields);\n });\n }\n }\n\n const inbox = this.toBeAdded[typename];\n if (inbox && inbox.length) {\n // Merge the pending policies into this.typePolicies, in the order they\n // were originally passed to addTypePolicy.\n inbox.splice(0).forEach((policy) => {\n this.updateTypePolicy(typename, policy);\n });\n }\n\n return this.typePolicies[typename];\n }\n\n private getFieldPolicy(\n typename: string | undefined,\n fieldName: string,\n createIfMissing: boolean\n ):\n | {\n keyFn?: KeyArgsFunction;\n read?: FieldReadFunction;\n merge?: FieldMergeFunction;\n }\n | undefined {\n if (typename) {\n const fieldPolicies = this.getTypePolicy(typename).fields;\n return (\n fieldPolicies[fieldName] ||\n (createIfMissing && (fieldPolicies[fieldName] = Object.create(null)))\n );\n }\n }\n\n private getSupertypeSet(\n subtype: string,\n createIfMissing: boolean\n ): Set | undefined {\n let supertypeSet = this.supertypeMap.get(subtype);\n if (!supertypeSet && createIfMissing) {\n this.supertypeMap.set(subtype, (supertypeSet = new Set()));\n }\n return supertypeSet;\n }\n\n public fragmentMatches(\n fragment: InlineFragmentNode | FragmentDefinitionNode,\n typename: string | undefined,\n result?: Record,\n variables?: Record\n ): boolean {\n if (!fragment.typeCondition) return true;\n\n // If the fragment has a type condition but the object we're matching\n // against does not have a __typename, the fragment cannot match.\n if (!typename) return false;\n\n const supertype = fragment.typeCondition.name.value;\n // Common case: fragment type condition and __typename are the same.\n if (typename === supertype) return true;\n\n if (this.usingPossibleTypes && this.supertypeMap.has(supertype)) {\n const typenameSupertypeSet = this.getSupertypeSet(typename, true)!;\n const workQueue = [typenameSupertypeSet];\n const maybeEnqueue = (subtype: string) => {\n const supertypeSet = this.getSupertypeSet(subtype, false);\n if (\n supertypeSet &&\n supertypeSet.size &&\n workQueue.indexOf(supertypeSet) < 0\n ) {\n workQueue.push(supertypeSet);\n }\n };\n\n // We need to check fuzzy subtypes only if we encountered fuzzy\n // subtype strings in addPossibleTypes, and only while writing to\n // the cache, since that's when selectionSetMatchesResult gives a\n // strong signal of fragment matching. The StoreReader class calls\n // policies.fragmentMatches without passing a result object, so\n // needToCheckFuzzySubtypes is always false while reading.\n let needToCheckFuzzySubtypes = !!(result && this.fuzzySubtypes.size);\n let checkingFuzzySubtypes = false;\n\n // It's important to keep evaluating workQueue.length each time through\n // the loop, because the queue can grow while we're iterating over it.\n for (let i = 0; i < workQueue.length; ++i) {\n const supertypeSet = workQueue[i];\n\n if (supertypeSet.has(supertype)) {\n if (!typenameSupertypeSet.has(supertype)) {\n if (checkingFuzzySubtypes) {\n invariant.warn(\n `Inferring subtype %s of supertype %s`,\n typename,\n supertype\n );\n }\n // Record positive results for faster future lookup.\n // Unfortunately, we cannot safely cache negative results,\n // because new possibleTypes data could always be added to the\n // Policies class.\n typenameSupertypeSet.add(supertype);\n }\n return true;\n }\n\n supertypeSet.forEach(maybeEnqueue);\n\n if (\n needToCheckFuzzySubtypes &&\n // Start checking fuzzy subtypes only after exhausting all\n // non-fuzzy subtypes (after the final iteration of the loop).\n i === workQueue.length - 1 &&\n // We could wait to compare fragment.selectionSet to result\n // after we verify the supertype, but this check is often less\n // expensive than that search, and we will have to do the\n // comparison anyway whenever we find a potential match.\n selectionSetMatchesResult(fragment.selectionSet, result!, variables)\n ) {\n // We don't always need to check fuzzy subtypes (if no result\n // was provided, or !this.fuzzySubtypes.size), but, when we do,\n // we only want to check them once.\n needToCheckFuzzySubtypes = false;\n checkingFuzzySubtypes = true;\n\n // If we find any fuzzy subtypes that match typename, extend the\n // workQueue to search through the supertypes of those fuzzy\n // subtypes. Otherwise the for-loop will terminate and we'll\n // return false below.\n this.fuzzySubtypes.forEach((regExp, fuzzyString) => {\n const match = typename.match(regExp);\n if (match && match[0] === typename) {\n maybeEnqueue(fuzzyString);\n }\n });\n }\n }\n }\n\n return false;\n }\n\n public hasKeyArgs(typename: string | undefined, fieldName: string) {\n const policy = this.getFieldPolicy(typename, fieldName, false);\n return !!(policy && policy.keyFn);\n }\n\n public getStoreFieldName(fieldSpec: FieldSpecifier): string {\n const { typename, fieldName } = fieldSpec;\n const policy = this.getFieldPolicy(typename, fieldName, false);\n let storeFieldName: Exclude, KeySpecifier>;\n\n let keyFn = policy && policy.keyFn;\n if (keyFn && typename) {\n const context: Parameters[1] = {\n typename,\n fieldName,\n field: fieldSpec.field || null,\n variables: fieldSpec.variables,\n };\n const args = argsFromFieldSpecifier(fieldSpec);\n while (keyFn) {\n const specifierOrString = keyFn(args, context);\n if (isArray(specifierOrString)) {\n keyFn = keyArgsFnFromSpecifier(specifierOrString);\n } else {\n // If the custom keyFn returns a falsy value, fall back to\n // fieldName instead.\n storeFieldName = specifierOrString || fieldName;\n break;\n }\n }\n }\n\n if (storeFieldName === void 0) {\n storeFieldName =\n fieldSpec.field ?\n storeKeyNameFromField(fieldSpec.field, fieldSpec.variables)\n : getStoreKeyName(fieldName, argsFromFieldSpecifier(fieldSpec));\n }\n\n // Returning false from a keyArgs function is like configuring\n // keyArgs: false, but more dynamic.\n if (storeFieldName === false) {\n return fieldName;\n }\n\n // Make sure custom field names start with the actual field.name.value\n // of the field, so we can always figure out which properties of a\n // StoreObject correspond to which original field names.\n return fieldName === fieldNameFromStoreName(storeFieldName) ? storeFieldName\n : fieldName + \":\" + storeFieldName;\n }\n\n public readField(\n options: ReadFieldOptions,\n context: ReadMergeModifyContext\n ): SafeReadonly | undefined {\n const objectOrReference = options.from;\n if (!objectOrReference) return;\n\n const nameOrField = options.field || options.fieldName;\n if (!nameOrField) return;\n\n if (options.typename === void 0) {\n const typename = context.store.getFieldValue(\n objectOrReference,\n \"__typename\"\n );\n if (typename) options.typename = typename;\n }\n\n const storeFieldName = this.getStoreFieldName(options);\n const fieldName = fieldNameFromStoreName(storeFieldName);\n const existing = context.store.getFieldValue(\n objectOrReference,\n storeFieldName\n );\n const policy = this.getFieldPolicy(options.typename, fieldName, false);\n const read = policy && policy.read;\n\n if (read) {\n const readOptions = makeFieldFunctionOptions(\n this,\n objectOrReference,\n options,\n context,\n context.store.getStorage(\n isReference(objectOrReference) ?\n objectOrReference.__ref\n : objectOrReference,\n storeFieldName\n )\n );\n\n // Call read(existing, readOptions) with cacheSlot holding this.cache.\n return cacheSlot.withValue(this.cache, read, [\n existing,\n readOptions,\n ]) as SafeReadonly;\n }\n\n return existing;\n }\n\n public getReadFunction(\n typename: string | undefined,\n fieldName: string\n ): FieldReadFunction | undefined {\n const policy = this.getFieldPolicy(typename, fieldName, false);\n return policy && policy.read;\n }\n\n public getMergeFunction(\n parentTypename: string | undefined,\n fieldName: string,\n childTypename: string | undefined\n ): FieldMergeFunction | undefined {\n let policy:\n | Policies[\"typePolicies\"][string]\n | Policies[\"typePolicies\"][string][\"fields\"][string]\n | undefined = this.getFieldPolicy(parentTypename, fieldName, false);\n let merge = policy && policy.merge;\n if (!merge && childTypename) {\n policy = this.getTypePolicy(childTypename);\n merge = policy && policy.merge;\n }\n return merge;\n }\n\n public runMergeFunction(\n existing: StoreValue,\n incoming: StoreValue,\n { field, typename, merge }: MergeInfo,\n context: WriteContext,\n storage?: StorageType\n ) {\n if (merge === mergeTrueFn) {\n // Instead of going to the trouble of creating a full\n // FieldFunctionOptions object and calling mergeTrueFn, we can\n // simply call mergeObjects, as mergeTrueFn would.\n return makeMergeObjectsFunction(context.store)(\n existing as StoreObject,\n incoming as StoreObject\n );\n }\n\n if (merge === mergeFalseFn) {\n // Likewise for mergeFalseFn, whose implementation is even simpler.\n return incoming;\n }\n\n // If cache.writeQuery or cache.writeFragment was called with\n // options.overwrite set to true, we still call merge functions, but\n // the existing data is always undefined, so the merge function will\n // not attempt to combine the incoming data with the existing data.\n if (context.overwrite) {\n existing = void 0;\n }\n\n return merge(\n existing,\n incoming,\n makeFieldFunctionOptions(\n this,\n // Unlike options.readField for read functions, we do not fall\n // back to the current object if no foreignObjOrRef is provided,\n // because it's not clear what the current object should be for\n // merge functions: the (possibly undefined) existing object, or\n // the incoming object? If you think your merge function needs\n // to read sibling fields in order to produce a new value for\n // the current field, you might want to rethink your strategy,\n // because that's a recipe for making merge behavior sensitive\n // to the order in which fields are written into the cache.\n // However, readField(name, ref) is useful for merge functions\n // that need to deduplicate child objects and references.\n void 0,\n {\n typename,\n fieldName: field.name.value,\n field,\n variables: context.variables,\n },\n context,\n storage || Object.create(null)\n )\n );\n }\n}\n\nfunction makeFieldFunctionOptions(\n policies: Policies,\n objectOrReference: StoreObject | Reference | undefined,\n fieldSpec: FieldSpecifier,\n context: ReadMergeModifyContext,\n storage: StorageType\n): FieldFunctionOptions {\n const storeFieldName = policies.getStoreFieldName(fieldSpec);\n const fieldName = fieldNameFromStoreName(storeFieldName);\n const variables = fieldSpec.variables || context.variables;\n const { toReference, canRead } = context.store;\n\n return {\n args: argsFromFieldSpecifier(fieldSpec),\n field: fieldSpec.field || null,\n fieldName,\n storeFieldName,\n variables,\n isReference,\n toReference,\n storage,\n cache: policies.cache,\n canRead,\n readField() {\n return policies.readField(\n normalizeReadFieldOptions(arguments, objectOrReference, variables),\n context\n );\n },\n mergeObjects: makeMergeObjectsFunction(context.store),\n };\n}\n\nexport function normalizeReadFieldOptions(\n readFieldArgs: IArguments,\n objectOrReference: StoreObject | Reference | undefined,\n variables?: ReadMergeModifyContext[\"variables\"]\n): ReadFieldOptions {\n const { 0: fieldNameOrOptions, 1: from, length: argc } = readFieldArgs;\n\n let options: ReadFieldOptions;\n\n if (typeof fieldNameOrOptions === \"string\") {\n options = {\n fieldName: fieldNameOrOptions,\n // Default to objectOrReference only when no second argument was\n // passed for the from parameter, not when undefined is explicitly\n // passed as the second argument.\n from: argc > 1 ? from : objectOrReference,\n };\n } else {\n options = { ...fieldNameOrOptions };\n // Default to objectOrReference only when fieldNameOrOptions.from is\n // actually omitted, rather than just undefined.\n if (!hasOwn.call(options, \"from\")) {\n options.from = objectOrReference;\n }\n }\n\n if (__DEV__ && options.from === void 0) {\n invariant.warn(\n `Undefined 'from' passed to readField with arguments %s`,\n stringifyForDisplay(Array.from(readFieldArgs))\n );\n }\n\n if (void 0 === options.variables) {\n options.variables = variables;\n }\n\n return options;\n}\n\nfunction makeMergeObjectsFunction(\n store: NormalizedCache\n): MergeObjectsFunction {\n return function mergeObjects(existing, incoming) {\n if (isArray(existing) || isArray(incoming)) {\n throw newInvariantError(\"Cannot automatically merge arrays\");\n }\n\n // These dynamic checks are necessary because the parameters of a\n // custom merge function can easily have the any type, so the type\n // system cannot always enforce the StoreObject | Reference parameter\n // types of options.mergeObjects.\n if (isNonNullObject(existing) && isNonNullObject(incoming)) {\n const eType = store.getFieldValue(existing, \"__typename\");\n const iType = store.getFieldValue(incoming, \"__typename\");\n const typesDiffer = eType && iType && eType !== iType;\n\n if (typesDiffer) {\n return incoming;\n }\n\n if (isReference(existing) && storeValueIsStoreObject(incoming)) {\n // Update the normalized EntityStore for the entity identified by\n // existing.__ref, preferring/overwriting any fields contributed by the\n // newer incoming StoreObject.\n store.merge(existing.__ref, incoming);\n return existing;\n }\n\n if (storeValueIsStoreObject(existing) && isReference(incoming)) {\n // Update the normalized EntityStore for the entity identified by\n // incoming.__ref, taking fields from the older existing object only if\n // those fields are not already present in the newer StoreObject\n // identified by incoming.__ref.\n store.merge(existing, incoming.__ref);\n return incoming;\n }\n\n if (\n storeValueIsStoreObject(existing) &&\n storeValueIsStoreObject(incoming)\n ) {\n return { ...existing, ...incoming };\n }\n }\n\n return incoming;\n };\n}\n","import { invariant, newInvariantError } from \"../../utilities/globals/index.js\";\nimport { equal } from \"@wry/equality\";\nimport { Trie } from \"@wry/trie\";\nimport type { SelectionSetNode, FieldNode } from \"graphql\";\nimport { Kind } from \"graphql\";\n\nimport type {\n FragmentMap,\n FragmentMapFunction,\n StoreValue,\n StoreObject,\n Reference,\n} from \"../../utilities/index.js\";\nimport {\n getFragmentFromSelection,\n getDefaultValues,\n getOperationDefinition,\n getTypenameFromResult,\n makeReference,\n isField,\n resultKeyNameFromField,\n isReference,\n shouldInclude,\n cloneDeep,\n addTypenameToDocument,\n isNonEmptyArray,\n argumentsObjectFromField,\n canonicalStringify,\n} from \"../../utilities/index.js\";\n\nimport type {\n NormalizedCache,\n ReadMergeModifyContext,\n MergeTree,\n InMemoryCacheConfig,\n} from \"./types.js\";\nimport {\n isArray,\n makeProcessedFieldsMerger,\n fieldNameFromStoreName,\n storeValueIsStoreObject,\n extractFragmentContext,\n} from \"./helpers.js\";\nimport type { StoreReader } from \"./readFromStore.js\";\nimport type { InMemoryCache } from \"./inMemoryCache.js\";\nimport type { EntityStore } from \"./entityStore.js\";\nimport type { Cache } from \"../../core/index.js\";\nimport { normalizeReadFieldOptions } from \"./policies.js\";\nimport type { ReadFieldFunction } from \"../core/types/common.js\";\n\nexport interface WriteContext extends ReadMergeModifyContext {\n readonly written: {\n [dataId: string]: SelectionSetNode[];\n };\n readonly fragmentMap: FragmentMap;\n lookupFragment: FragmentMapFunction;\n // General-purpose deep-merge function for use during writes.\n merge(existing: T, incoming: T): T;\n // If true, merge functions will be called with undefined existing data.\n overwrite: boolean;\n incomingById: Map<\n string,\n {\n storeObject: StoreObject;\n mergeTree?: MergeTree;\n fieldNodeSet: Set;\n }\n >;\n // Directive metadata for @client and @defer. We could use a bitfield for this\n // information to save some space, and use that bitfield number as the keys in\n // the context.flavors Map.\n clientOnly: boolean;\n deferred: boolean;\n flavors: Map;\n}\n\ntype FlavorableWriteContext = Pick<\n WriteContext,\n \"clientOnly\" | \"deferred\" | \"flavors\"\n>;\n\n// Since there are only four possible combinations of context.clientOnly and\n// context.deferred values, we should need at most four \"flavors\" of any given\n// WriteContext. To avoid creating multiple copies of the same context, we cache\n// the contexts in the context.flavors Map (shared by all flavors) according to\n// their clientOnly and deferred values (always in that order).\nfunction getContextFlavor(\n context: TContext,\n clientOnly: TContext[\"clientOnly\"],\n deferred: TContext[\"deferred\"]\n): TContext {\n const key = `${clientOnly}${deferred}`;\n let flavored = context.flavors.get(key);\n if (!flavored) {\n context.flavors.set(\n key,\n (flavored =\n context.clientOnly === clientOnly && context.deferred === deferred ?\n context\n : {\n ...context,\n clientOnly,\n deferred,\n })\n );\n }\n return flavored as TContext;\n}\n\ninterface ProcessSelectionSetOptions {\n dataId?: string;\n result: Record;\n selectionSet: SelectionSetNode;\n context: WriteContext;\n mergeTree: MergeTree;\n}\n\nexport class StoreWriter {\n constructor(\n public readonly cache: InMemoryCache,\n private reader?: StoreReader,\n private fragments?: InMemoryCacheConfig[\"fragments\"]\n ) {}\n\n public writeToStore(\n store: NormalizedCache,\n { query, result, dataId, variables, overwrite }: Cache.WriteOptions\n ): Reference | undefined {\n const operationDefinition = getOperationDefinition(query)!;\n const merger = makeProcessedFieldsMerger();\n\n variables = {\n ...getDefaultValues(operationDefinition),\n ...variables!,\n };\n\n const context: WriteContext = {\n store,\n written: Object.create(null),\n merge(existing: T, incoming: T) {\n return merger.merge(existing, incoming) as T;\n },\n variables,\n varString: canonicalStringify(variables),\n ...extractFragmentContext(query, this.fragments),\n overwrite: !!overwrite,\n incomingById: new Map(),\n clientOnly: false,\n deferred: false,\n flavors: new Map(),\n };\n\n const ref = this.processSelectionSet({\n result: result || Object.create(null),\n dataId,\n selectionSet: operationDefinition.selectionSet,\n mergeTree: { map: new Map() },\n context,\n });\n\n if (!isReference(ref)) {\n throw newInvariantError(`Could not identify object %s`, result);\n }\n\n // So far, the store has not been modified, so now it's time to process\n // context.incomingById and merge those incoming fields into context.store.\n context.incomingById.forEach(\n ({ storeObject, mergeTree, fieldNodeSet }, dataId) => {\n const entityRef = makeReference(dataId);\n\n if (mergeTree && mergeTree.map.size) {\n const applied = this.applyMerges(\n mergeTree,\n entityRef,\n storeObject,\n context\n );\n if (isReference(applied)) {\n // Assume References returned by applyMerges have already been merged\n // into the store. See makeMergeObjectsFunction in policies.ts for an\n // example of how this can happen.\n return;\n }\n // Otherwise, applyMerges returned a StoreObject, whose fields we should\n // merge into the store (see store.merge statement below).\n storeObject = applied;\n }\n\n if (__DEV__ && !context.overwrite) {\n const fieldsWithSelectionSets: Record =\n Object.create(null);\n fieldNodeSet.forEach((field) => {\n if (field.selectionSet) {\n fieldsWithSelectionSets[field.name.value] = true;\n }\n });\n\n const hasSelectionSet = (storeFieldName: string) =>\n fieldsWithSelectionSets[fieldNameFromStoreName(storeFieldName)] ===\n true;\n\n const hasMergeFunction = (storeFieldName: string) => {\n const childTree = mergeTree && mergeTree.map.get(storeFieldName);\n return Boolean(childTree && childTree.info && childTree.info.merge);\n };\n\n Object.keys(storeObject).forEach((storeFieldName) => {\n // If a merge function was defined for this field, trust that it\n // did the right thing about (not) clobbering data. If the field\n // has no selection set, it's a scalar field, so it doesn't need\n // a merge function (even if it's an object, like JSON data).\n if (\n hasSelectionSet(storeFieldName) &&\n !hasMergeFunction(storeFieldName)\n ) {\n warnAboutDataLoss(\n entityRef,\n storeObject,\n storeFieldName,\n context.store\n );\n }\n });\n }\n\n store.merge(dataId, storeObject);\n }\n );\n\n // Any IDs written explicitly to the cache will be retained as\n // reachable root IDs for garbage collection purposes. Although this\n // logic includes root IDs like ROOT_QUERY and ROOT_MUTATION, their\n // retainment counts are effectively ignored because cache.gc() always\n // includes them in its root ID set.\n store.retain(ref.__ref);\n\n return ref;\n }\n\n private processSelectionSet({\n dataId,\n result,\n selectionSet,\n context,\n // This object allows processSelectionSet to report useful information\n // to its callers without explicitly returning that information.\n mergeTree,\n }: ProcessSelectionSetOptions): StoreObject | Reference {\n const { policies } = this.cache;\n\n // This variable will be repeatedly updated using context.merge to\n // accumulate all fields that need to be written into the store.\n let incoming: StoreObject = Object.create(null);\n\n // If typename was not passed in, infer it. Note that typename is\n // always passed in for tricky-to-infer cases such as \"Query\" for\n // ROOT_QUERY.\n const typename: string | undefined =\n (dataId && policies.rootTypenamesById[dataId]) ||\n getTypenameFromResult(result, selectionSet, context.fragmentMap) ||\n (dataId && (context.store.get(dataId, \"__typename\") as string));\n\n if (\"string\" === typeof typename) {\n incoming.__typename = typename;\n }\n\n // This readField function will be passed as context.readField in the\n // KeyFieldsContext object created within policies.identify (called below).\n // In addition to reading from the existing context.store (thanks to the\n // policies.readField(options, context) line at the very bottom), this\n // version of readField can read from Reference objects that are currently\n // pending in context.incomingById, which is important whenever keyFields\n // need to be extracted from a child object that processSelectionSet has\n // turned into a Reference.\n const readField: ReadFieldFunction = function (this: void) {\n const options = normalizeReadFieldOptions(\n arguments,\n incoming,\n context.variables\n );\n\n if (isReference(options.from)) {\n const info = context.incomingById.get(options.from.__ref);\n if (info) {\n const result = policies.readField(\n {\n ...options,\n from: info.storeObject,\n },\n context\n );\n\n if (result !== void 0) {\n return result;\n }\n }\n }\n\n return policies.readField(options, context);\n };\n\n const fieldNodeSet = new Set();\n\n this.flattenFields(\n selectionSet,\n result,\n // This WriteContext will be the default context value for fields returned\n // by the flattenFields method, but some fields may be assigned a modified\n // context, depending on the presence of @client and other directives.\n context,\n typename\n ).forEach((context, field) => {\n const resultFieldKey = resultKeyNameFromField(field);\n const value = result[resultFieldKey];\n\n fieldNodeSet.add(field);\n\n if (value !== void 0) {\n const storeFieldName = policies.getStoreFieldName({\n typename,\n fieldName: field.name.value,\n field,\n variables: context.variables,\n });\n\n const childTree = getChildMergeTree(mergeTree, storeFieldName);\n\n let incomingValue = this.processFieldValue(\n value,\n field,\n // Reset context.clientOnly and context.deferred to their default\n // values before processing nested selection sets.\n field.selectionSet ?\n getContextFlavor(context, false, false)\n : context,\n childTree\n );\n\n // To determine if this field holds a child object with a merge function\n // defined in its type policy (see PR #7070), we need to figure out the\n // child object's __typename.\n let childTypename: string | undefined;\n\n // The field's value can be an object that has a __typename only if the\n // field has a selection set. Otherwise incomingValue is scalar.\n if (\n field.selectionSet &&\n (isReference(incomingValue) || storeValueIsStoreObject(incomingValue))\n ) {\n childTypename = readField(\"__typename\", incomingValue);\n }\n\n const merge = policies.getMergeFunction(\n typename,\n field.name.value,\n childTypename\n );\n\n if (merge) {\n childTree.info = {\n // TODO Check compatibility against any existing childTree.field?\n field,\n typename,\n merge,\n };\n } else {\n maybeRecycleChildMergeTree(mergeTree, storeFieldName);\n }\n\n incoming = context.merge(incoming, {\n [storeFieldName]: incomingValue,\n });\n } else if (\n __DEV__ &&\n !context.clientOnly &&\n !context.deferred &&\n !addTypenameToDocument.added(field) &&\n // If the field has a read function, it may be a synthetic field or\n // provide a default value, so its absence from the written data should\n // not be cause for alarm.\n !policies.getReadFunction(typename, field.name.value)\n ) {\n invariant.error(\n `Missing field '%s' while writing result %o`,\n resultKeyNameFromField(field),\n result\n );\n }\n });\n\n // Identify the result object, even if dataId was already provided,\n // since we always need keyObject below.\n try {\n const [id, keyObject] = policies.identify(result, {\n typename,\n selectionSet,\n fragmentMap: context.fragmentMap,\n storeObject: incoming,\n readField,\n });\n\n // If dataId was not provided, fall back to the id just generated by\n // policies.identify.\n dataId = dataId || id;\n\n // Write any key fields that were used during identification, even if\n // they were not mentioned in the original query.\n if (keyObject) {\n // TODO Reverse the order of the arguments?\n incoming = context.merge(incoming, keyObject);\n }\n } catch (e) {\n // If dataId was provided, tolerate failure of policies.identify.\n if (!dataId) throw e;\n }\n\n if (\"string\" === typeof dataId) {\n const dataRef = makeReference(dataId);\n\n // Avoid processing the same entity object using the same selection\n // set more than once. We use an array instead of a Set since most\n // entity IDs will be written using only one selection set, so the\n // size of this array is likely to be very small, meaning indexOf is\n // likely to be faster than Set.prototype.has.\n const sets = context.written[dataId] || (context.written[dataId] = []);\n if (sets.indexOf(selectionSet) >= 0) return dataRef;\n sets.push(selectionSet);\n\n // If we're about to write a result object into the store, but we\n // happen to know that the exact same (===) result object would be\n // returned if we were to reread the result with the same inputs,\n // then we can skip the rest of the processSelectionSet work for\n // this object, and immediately return a Reference to it.\n if (\n this.reader &&\n this.reader.isFresh(result, dataRef, selectionSet, context)\n ) {\n return dataRef;\n }\n\n const previous = context.incomingById.get(dataId);\n if (previous) {\n previous.storeObject = context.merge(previous.storeObject, incoming);\n previous.mergeTree = mergeMergeTrees(previous.mergeTree, mergeTree);\n fieldNodeSet.forEach((field) => previous.fieldNodeSet.add(field));\n } else {\n context.incomingById.set(dataId, {\n storeObject: incoming,\n // Save a reference to mergeTree only if it is not empty, because\n // empty MergeTrees may be recycled by maybeRecycleChildMergeTree and\n // reused for entirely different parts of the result tree.\n mergeTree: mergeTreeIsEmpty(mergeTree) ? void 0 : mergeTree,\n fieldNodeSet,\n });\n }\n\n return dataRef;\n }\n\n return incoming;\n }\n\n private processFieldValue(\n value: any,\n field: FieldNode,\n context: WriteContext,\n mergeTree: MergeTree\n ): StoreValue {\n if (!field.selectionSet || value === null) {\n // In development, we need to clone scalar values so that they can be\n // safely frozen with maybeDeepFreeze in readFromStore.ts. In production,\n // it's cheaper to store the scalar values directly in the cache.\n return __DEV__ ? cloneDeep(value) : value;\n }\n\n if (isArray(value)) {\n return value.map((item, i) => {\n const value = this.processFieldValue(\n item,\n field,\n context,\n getChildMergeTree(mergeTree, i)\n );\n maybeRecycleChildMergeTree(mergeTree, i);\n return value;\n });\n }\n\n return this.processSelectionSet({\n result: value,\n selectionSet: field.selectionSet,\n context,\n mergeTree,\n });\n }\n\n // Implements https://spec.graphql.org/draft/#sec-Field-Collection, but with\n // some additions for tracking @client and @defer directives.\n private flattenFields<\n TContext extends Pick<\n WriteContext,\n | \"clientOnly\"\n | \"deferred\"\n | \"flavors\"\n | \"fragmentMap\"\n | \"lookupFragment\"\n | \"variables\"\n >,\n >(\n selectionSet: SelectionSetNode,\n result: Record,\n context: TContext,\n typename = getTypenameFromResult(result, selectionSet, context.fragmentMap)\n ): Map {\n const fieldMap = new Map();\n const { policies } = this.cache;\n\n const limitingTrie = new Trie<{\n // Tracks whether (selectionSet, clientOnly, deferred) has been flattened\n // before. The GraphQL specification only uses the fragment name for\n // skipping previously visited fragments, but the top-level fragment\n // selection set corresponds 1:1 with the fagment name (and is slightly\n // easier too work with), and we need to consider clientOnly and deferred\n // values as well, potentially revisiting selection sets that were\n // previously visited with different inherited configurations of those\n // directives.\n visited?: boolean;\n }>(false); // No need for WeakMap, since limitingTrie does not escape.\n\n (function flatten(\n this: void,\n selectionSet: SelectionSetNode,\n inheritedContext: TContext\n ) {\n const visitedNode = limitingTrie.lookup(\n selectionSet,\n // Because we take inheritedClientOnly and inheritedDeferred into\n // consideration here (in addition to selectionSet), it's possible for\n // the same selection set to be flattened more than once, if it appears\n // in the query with different @client and/or @directive configurations.\n inheritedContext.clientOnly,\n inheritedContext.deferred\n );\n if (visitedNode.visited) return;\n visitedNode.visited = true;\n\n selectionSet.selections.forEach((selection) => {\n if (!shouldInclude(selection, context.variables)) return;\n\n let { clientOnly, deferred } = inheritedContext;\n if (\n // Since the presence of @client or @defer on this field can only\n // cause clientOnly or deferred to become true, we can skip the\n // forEach loop if both clientOnly and deferred are already true.\n !(clientOnly && deferred) &&\n isNonEmptyArray(selection.directives)\n ) {\n selection.directives.forEach((dir) => {\n const name = dir.name.value;\n if (name === \"client\") clientOnly = true;\n if (name === \"defer\") {\n const args = argumentsObjectFromField(dir, context.variables);\n // The @defer directive takes an optional args.if boolean\n // argument, similar to @include(if: boolean). Note that\n // @defer(if: false) does not make context.deferred false, but\n // instead behaves as if there was no @defer directive.\n if (!args || (args as { if?: boolean }).if !== false) {\n deferred = true;\n }\n // TODO In the future, we may want to record args.label using\n // context.deferred, if a label is specified.\n }\n });\n }\n\n if (isField(selection)) {\n const existing = fieldMap.get(selection);\n if (existing) {\n // If this field has been visited along another recursive path\n // before, the final context should have clientOnly or deferred set\n // to true only if *all* paths have the directive (hence the &&).\n clientOnly = clientOnly && existing.clientOnly;\n deferred = deferred && existing.deferred;\n }\n\n fieldMap.set(\n selection,\n getContextFlavor(context, clientOnly, deferred)\n );\n } else {\n const fragment = getFragmentFromSelection(\n selection,\n context.lookupFragment\n );\n\n if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n throw newInvariantError(\n `No fragment named %s`,\n selection.name.value\n );\n }\n\n if (\n fragment &&\n policies.fragmentMatches(\n fragment,\n typename,\n result,\n context.variables\n )\n ) {\n flatten(\n fragment.selectionSet,\n getContextFlavor(context, clientOnly, deferred)\n );\n }\n }\n });\n })(selectionSet, context);\n\n return fieldMap;\n }\n\n private applyMerges(\n mergeTree: MergeTree,\n existing: StoreValue,\n incoming: T,\n context: WriteContext,\n getStorageArgs?: Parameters\n ): T | Reference {\n if (mergeTree.map.size && !isReference(incoming)) {\n const e: StoreObject | Reference | undefined =\n // Items in the same position in different arrays are not\n // necessarily related to each other, so when incoming is an array\n // we process its elements as if there was no existing data.\n (\n !isArray(incoming) &&\n // Likewise, existing must be either a Reference or a StoreObject\n // in order for its fields to be safe to merge with the fields of\n // the incoming object.\n (isReference(existing) || storeValueIsStoreObject(existing))\n ) ?\n existing\n : void 0;\n\n // This narrowing is implied by mergeTree.map.size > 0 and\n // !isReference(incoming), though TypeScript understandably cannot\n // hope to infer this type.\n const i = incoming as StoreObject | StoreValue[];\n\n // The options.storage objects provided to read and merge functions\n // are derived from the identity of the parent object plus a\n // sequence of storeFieldName strings/numbers identifying the nested\n // field name path of each field value to be merged.\n if (e && !getStorageArgs) {\n getStorageArgs = [isReference(e) ? e.__ref : e];\n }\n\n // It's possible that applying merge functions to this subtree will\n // not change the incoming data, so this variable tracks the fields\n // that did change, so we can create a new incoming object when (and\n // only when) at least one incoming field has changed. We use a Map\n // to preserve the type of numeric keys.\n let changedFields: Map | undefined;\n\n const getValue = (\n from: typeof e | typeof i,\n name: string | number\n ): StoreValue => {\n return (\n isArray(from) ?\n typeof name === \"number\" ?\n from[name]\n : void 0\n : context.store.getFieldValue(from, String(name))\n );\n };\n\n mergeTree.map.forEach((childTree, storeFieldName) => {\n const eVal = getValue(e, storeFieldName);\n const iVal = getValue(i, storeFieldName);\n // If we have no incoming data, leave any existing data untouched.\n if (void 0 === iVal) return;\n if (getStorageArgs) {\n getStorageArgs.push(storeFieldName);\n }\n const aVal = this.applyMerges(\n childTree,\n eVal,\n iVal,\n context,\n getStorageArgs\n );\n if (aVal !== iVal) {\n changedFields = changedFields || new Map();\n changedFields.set(storeFieldName, aVal);\n }\n if (getStorageArgs) {\n invariant(getStorageArgs.pop() === storeFieldName);\n }\n });\n\n if (changedFields) {\n // Shallow clone i so we can add changed fields to it.\n incoming = (isArray(i) ? i.slice(0) : { ...i }) as T;\n changedFields.forEach((value, name) => {\n (incoming as any)[name] = value;\n });\n }\n }\n\n if (mergeTree.info) {\n return this.cache.policies.runMergeFunction(\n existing,\n incoming,\n mergeTree.info,\n context,\n getStorageArgs && context.store.getStorage(...getStorageArgs)\n );\n }\n\n return incoming;\n }\n}\n\nconst emptyMergeTreePool: MergeTree[] = [];\n\nfunction getChildMergeTree(\n { map }: MergeTree,\n name: string | number\n): MergeTree {\n if (!map.has(name)) {\n map.set(name, emptyMergeTreePool.pop() || { map: new Map() });\n }\n return map.get(name)!;\n}\n\nfunction mergeMergeTrees(\n left: MergeTree | undefined,\n right: MergeTree | undefined\n): MergeTree {\n if (left === right || !right || mergeTreeIsEmpty(right)) return left!;\n if (!left || mergeTreeIsEmpty(left)) return right;\n\n const info =\n left.info && right.info ?\n {\n ...left.info,\n ...right.info,\n }\n : left.info || right.info;\n\n const needToMergeMaps = left.map.size && right.map.size;\n const map =\n needToMergeMaps ? new Map()\n : left.map.size ? left.map\n : right.map;\n\n const merged = { info, map };\n\n if (needToMergeMaps) {\n const remainingRightKeys = new Set(right.map.keys());\n\n left.map.forEach((leftTree, key) => {\n merged.map.set(key, mergeMergeTrees(leftTree, right.map.get(key)));\n remainingRightKeys.delete(key);\n });\n\n remainingRightKeys.forEach((key) => {\n merged.map.set(\n key,\n mergeMergeTrees(right.map.get(key), left.map.get(key))\n );\n });\n }\n\n return merged;\n}\n\nfunction mergeTreeIsEmpty(tree: MergeTree | undefined): boolean {\n return !tree || !(tree.info || tree.map.size);\n}\n\nfunction maybeRecycleChildMergeTree({ map }: MergeTree, name: string | number) {\n const childTree = map.get(name);\n if (childTree && mergeTreeIsEmpty(childTree)) {\n emptyMergeTreePool.push(childTree);\n map.delete(name);\n }\n}\n\nconst warnings = new Set();\n\n// Note that this function is unused in production, and thus should be\n// pruned by any well-configured minifier.\nfunction warnAboutDataLoss(\n existingRef: Reference,\n incomingObj: StoreObject,\n storeFieldName: string,\n store: NormalizedCache\n) {\n const getChild = (objOrRef: StoreObject | Reference): StoreObject | false => {\n const child = store.getFieldValue(objOrRef, storeFieldName);\n return typeof child === \"object\" && child;\n };\n\n const existing = getChild(existingRef);\n if (!existing) return;\n\n const incoming = getChild(incomingObj);\n if (!incoming) return;\n\n // It's always safe to replace a reference, since it refers to data\n // safely stored elsewhere.\n if (isReference(existing)) return;\n\n // If the values are structurally equivalent, we do not need to worry\n // about incoming replacing existing.\n if (equal(existing, incoming)) return;\n\n // If we're replacing every key of the existing object, then the\n // existing data would be overwritten even if the objects were\n // normalized, so warning would not be helpful here.\n if (\n Object.keys(existing).every(\n (key) => store.getFieldValue(incoming, key) !== void 0\n )\n ) {\n return;\n }\n\n const parentType =\n store.getFieldValue(existingRef, \"__typename\") ||\n store.getFieldValue(incomingObj, \"__typename\");\n const fieldName = fieldNameFromStoreName(storeFieldName);\n const typeDotName = `${parentType}.${fieldName}`;\n // Avoid warning more than once for the same type and field name.\n if (warnings.has(typeDotName)) return;\n warnings.add(typeDotName);\n\n const childTypenames: string[] = [];\n // Arrays do not have __typename fields, and always need a custom merge\n // function, even if their elements are normalized entities.\n if (!isArray(existing) && !isArray(incoming)) {\n [existing, incoming].forEach((child) => {\n const typename = store.getFieldValue(child, \"__typename\");\n if (typeof typename === \"string\" && !childTypenames.includes(typename)) {\n childTypenames.push(typename);\n }\n });\n }\n\n invariant.warn(\n `Cache data may be lost when replacing the %s field of a %s object.\n\nThis could cause additional (usually avoidable) network requests to fetch data that were otherwise cached.\n\nTo address this problem (which is not a bug in Apollo Client), %sdefine a custom merge function for the %s field, so InMemoryCache can safely merge these objects:\n\n existing: %o\n incoming: %o\n\nFor more information about these options, please refer to the documentation:\n\n * Ensuring entity objects have IDs: https://go.apollo.dev/c/generating-unique-identifiers\n * Defining custom merge functions: https://go.apollo.dev/c/merging-non-normalized-objects\n`,\n fieldName,\n parentType,\n childTypenames.length ?\n \"either ensure all objects of type \" +\n childTypenames.join(\" and \") +\n \" have an ID or a custom merge function, or \"\n : \"\",\n typeDotName,\n { ...existing },\n { ...incoming }\n );\n}\n","import { invariant } from \"../../utilities/globals/index.js\";\n\n// Make builtins like Map and Set safe to use with non-extensible objects.\nimport \"./fixPolyfills.js\";\n\nimport type {\n DocumentNode,\n FragmentDefinitionNode,\n InlineFragmentNode,\n} from \"graphql\";\nimport type { OptimisticWrapperFunction } from \"optimism\";\nimport { wrap } from \"optimism\";\nimport { equal } from \"@wry/equality\";\n\nimport { ApolloCache } from \"../core/cache.js\";\nimport type { Cache } from \"../core/types/Cache.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport type { StoreObject, Reference } from \"../../utilities/index.js\";\nimport {\n addTypenameToDocument,\n isReference,\n DocumentTransform,\n canonicalStringify,\n print,\n cacheSizes,\n defaultCacheSizes,\n} from \"../../utilities/index.js\";\nimport type { InMemoryCacheConfig, NormalizedCacheObject } from \"./types.js\";\nimport { StoreReader } from \"./readFromStore.js\";\nimport { StoreWriter } from \"./writeToStore.js\";\nimport { EntityStore, supportsResultCaching } from \"./entityStore.js\";\nimport { makeVar, forgetCache, recallCache } from \"./reactiveVars.js\";\nimport { Policies } from \"./policies.js\";\nimport { hasOwn, normalizeConfig, shouldCanonizeResults } from \"./helpers.js\";\nimport type { OperationVariables } from \"../../core/index.js\";\nimport { getInMemoryCacheMemoryInternals } from \"../../utilities/caching/getMemoryInternals.js\";\n\ntype BroadcastOptions = Pick<\n Cache.BatchOptions,\n \"optimistic\" | \"onWatchUpdated\"\n>;\n\nexport class InMemoryCache extends ApolloCache {\n private data!: EntityStore;\n private optimisticData!: EntityStore;\n\n protected config: InMemoryCacheConfig;\n private watches = new Set();\n private addTypename: boolean;\n\n private storeReader!: StoreReader;\n private storeWriter!: StoreWriter;\n private addTypenameTransform = new DocumentTransform(addTypenameToDocument);\n\n private maybeBroadcastWatch!: OptimisticWrapperFunction<\n [Cache.WatchOptions, BroadcastOptions?],\n any,\n [Cache.WatchOptions]\n >;\n\n // Override the default value, since InMemoryCache result objects are frozen\n // in development and expected to remain logically immutable in production.\n public readonly assumeImmutableResults = true;\n\n // Dynamically imported code can augment existing typePolicies or\n // possibleTypes by calling cache.policies.addTypePolicies or\n // cache.policies.addPossibletypes.\n public readonly policies: Policies;\n\n public readonly makeVar = makeVar;\n\n constructor(config: InMemoryCacheConfig = {}) {\n super();\n this.config = normalizeConfig(config);\n this.addTypename = !!this.config.addTypename;\n\n this.policies = new Policies({\n cache: this,\n dataIdFromObject: this.config.dataIdFromObject,\n possibleTypes: this.config.possibleTypes,\n typePolicies: this.config.typePolicies,\n });\n\n this.init();\n }\n\n private init() {\n // Passing { resultCaching: false } in the InMemoryCache constructor options\n // will completely disable dependency tracking, which will improve memory\n // usage but worsen the performance of repeated reads.\n const rootStore = (this.data = new EntityStore.Root({\n policies: this.policies,\n resultCaching: this.config.resultCaching,\n }));\n\n // When no optimistic writes are currently active, cache.optimisticData ===\n // cache.data, so there are no additional layers on top of the actual data.\n // When an optimistic update happens, this.optimisticData will become a\n // linked list of EntityStore Layer objects that terminates with the\n // original this.data cache object.\n this.optimisticData = rootStore.stump;\n\n this.resetResultCache();\n }\n\n private resetResultCache(resetResultIdentities?: boolean) {\n const previousReader = this.storeReader;\n const { fragments } = this.config;\n\n // The StoreWriter is mostly stateless and so doesn't really need to be\n // reset, but it does need to have its writer.storeReader reference updated,\n // so it's simpler to update this.storeWriter as well.\n this.storeWriter = new StoreWriter(\n this,\n (this.storeReader = new StoreReader({\n cache: this,\n addTypename: this.addTypename,\n resultCacheMaxSize: this.config.resultCacheMaxSize,\n canonizeResults: shouldCanonizeResults(this.config),\n canon:\n resetResultIdentities ? void 0 : (\n previousReader && previousReader.canon\n ),\n fragments,\n })),\n fragments\n );\n\n this.maybeBroadcastWatch = wrap(\n (c: Cache.WatchOptions, options?: BroadcastOptions) => {\n return this.broadcastWatch(c, options);\n },\n {\n max:\n this.config.resultCacheMaxSize ||\n cacheSizes[\"inMemoryCache.maybeBroadcastWatch\"] ||\n defaultCacheSizes[\"inMemoryCache.maybeBroadcastWatch\"],\n makeCacheKey: (c: Cache.WatchOptions) => {\n // Return a cache key (thus enabling result caching) only if we're\n // currently using a data store that can track cache dependencies.\n const store = c.optimistic ? this.optimisticData : this.data;\n if (supportsResultCaching(store)) {\n const { optimistic, id, variables } = c;\n return store.makeCacheKey(\n c.query,\n // Different watches can have the same query, optimistic\n // status, rootId, and variables, but if their callbacks are\n // different, the (identical) result needs to be delivered to\n // each distinct callback. The easiest way to achieve that\n // separation is to include c.callback in the cache key for\n // maybeBroadcastWatch calls. See issue #5733.\n c.callback,\n canonicalStringify({ optimistic, id, variables })\n );\n }\n },\n }\n );\n\n // Since we have thrown away all the cached functions that depend on the\n // CacheGroup dependencies maintained by EntityStore, we should also reset\n // all CacheGroup dependency information.\n new Set([this.data.group, this.optimisticData.group]).forEach((group) =>\n group.resetCaching()\n );\n }\n\n public restore(data: NormalizedCacheObject): this {\n this.init();\n // Since calling this.init() discards/replaces the entire StoreReader, along\n // with the result caches it maintains, this.data.replace(data) won't have\n // to bother deleting the old data.\n if (data) this.data.replace(data);\n return this;\n }\n\n public extract(optimistic: boolean = false): NormalizedCacheObject {\n return (optimistic ? this.optimisticData : this.data).extract();\n }\n\n public read(options: Cache.ReadOptions): T | null {\n const {\n // Since read returns data or null, without any additional metadata\n // about whether/where there might have been missing fields, the\n // default behavior cannot be returnPartialData = true (like it is\n // for the diff method), since defaulting to true would violate the\n // integrity of the T in the return type. However, partial data may\n // be useful in some cases, so returnPartialData:true may be\n // specified explicitly.\n returnPartialData = false,\n } = options;\n try {\n return (\n this.storeReader.diffQueryAgainstStore({\n ...options,\n store: options.optimistic ? this.optimisticData : this.data,\n config: this.config,\n returnPartialData,\n }).result || null\n );\n } catch (e) {\n if (e instanceof MissingFieldError) {\n // Swallow MissingFieldError and return null, so callers do not need to\n // worry about catching \"normal\" exceptions resulting from incomplete\n // cache data. Unexpected errors will be re-thrown. If you need more\n // information about which fields were missing, use cache.diff instead,\n // and examine diffResult.missing.\n return null;\n }\n throw e;\n }\n }\n\n public write(options: Cache.WriteOptions): Reference | undefined {\n try {\n ++this.txCount;\n return this.storeWriter.writeToStore(this.data, options);\n } finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n }\n\n public modify = Record>(\n options: Cache.ModifyOptions\n ): boolean {\n if (hasOwn.call(options, \"id\") && !options.id) {\n // To my knowledge, TypeScript does not currently provide a way to\n // enforce that an optional property?:type must *not* be undefined\n // when present. That ability would be useful here, because we want\n // options.id to default to ROOT_QUERY only when no options.id was\n // provided. If the caller attempts to pass options.id with a\n // falsy/undefined value (perhaps because cache.identify failed), we\n // should not assume the goal was to modify the ROOT_QUERY object.\n // We could throw, but it seems natural to return false to indicate\n // that nothing was modified.\n return false;\n }\n const store =\n (\n options.optimistic // Defaults to false.\n ) ?\n this.optimisticData\n : this.data;\n try {\n ++this.txCount;\n return store.modify(options.id || \"ROOT_QUERY\", options.fields);\n } finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n }\n\n public diff(\n options: Cache.DiffOptions\n ): Cache.DiffResult {\n return this.storeReader.diffQueryAgainstStore({\n ...options,\n store: options.optimistic ? this.optimisticData : this.data,\n rootId: options.id || \"ROOT_QUERY\",\n config: this.config,\n });\n }\n\n public watch(\n watch: Cache.WatchOptions\n ): () => void {\n if (!this.watches.size) {\n // In case we previously called forgetCache(this) because\n // this.watches became empty (see below), reattach this cache to any\n // reactive variables on which it previously depended. It might seem\n // paradoxical that we're able to recall something we supposedly\n // forgot, but the point of calling forgetCache(this) is to silence\n // useless broadcasts while this.watches is empty, and to allow the\n // cache to be garbage collected. If, however, we manage to call\n // recallCache(this) here, this cache object must not have been\n // garbage collected yet, and should resume receiving updates from\n // reactive variables, now that it has a watcher to notify.\n recallCache(this);\n }\n this.watches.add(watch);\n if (watch.immediate) {\n this.maybeBroadcastWatch(watch);\n }\n return () => {\n // Once we remove the last watch from this.watches, cache.broadcastWatches\n // no longer does anything, so we preemptively tell the reactive variable\n // system to exclude this cache from future broadcasts.\n if (this.watches.delete(watch) && !this.watches.size) {\n forgetCache(this);\n }\n // Remove this watch from the LRU cache managed by the\n // maybeBroadcastWatch OptimisticWrapperFunction, to prevent memory\n // leaks involving the closure of watch.callback.\n this.maybeBroadcastWatch.forget(watch);\n };\n }\n\n public gc(options?: {\n // If true, also free non-essential result cache memory by bulk-releasing\n // this.{store{Reader,Writer},maybeBroadcastWatch}. Defaults to false.\n resetResultCache?: boolean;\n // If resetResultCache is true, this.storeReader.canon will be preserved by\n // default, but can also be discarded by passing resetResultIdentities:true.\n // Defaults to false.\n resetResultIdentities?: boolean;\n }) {\n canonicalStringify.reset();\n print.reset();\n this.addTypenameTransform.resetCache();\n this.config.fragments?.resetCaches();\n const ids = this.optimisticData.gc();\n if (options && !this.txCount) {\n if (options.resetResultCache) {\n this.resetResultCache(options.resetResultIdentities);\n } else if (options.resetResultIdentities) {\n this.storeReader.resetCanon();\n }\n }\n return ids;\n }\n\n // Call this method to ensure the given root ID remains in the cache after\n // garbage collection, along with its transitive child entities. Note that\n // the cache automatically retains all directly written entities. By default,\n // the retainment persists after optimistic updates are removed. Pass true\n // for the optimistic argument if you would prefer for the retainment to be\n // discarded when the top-most optimistic layer is removed. Returns the\n // resulting (non-negative) retainment count.\n public retain(rootId: string, optimistic?: boolean): number {\n return (optimistic ? this.optimisticData : this.data).retain(rootId);\n }\n\n // Call this method to undo the effect of the retain method, above. Once the\n // retainment count falls to zero, the given ID will no longer be preserved\n // during garbage collection, though it may still be preserved by other safe\n // entities that refer to it. Returns the resulting (non-negative) retainment\n // count, in case that's useful.\n public release(rootId: string, optimistic?: boolean): number {\n return (optimistic ? this.optimisticData : this.data).release(rootId);\n }\n\n // Returns the canonical ID for a given StoreObject, obeying typePolicies\n // and keyFields (and dataIdFromObject, if you still use that). At minimum,\n // the object must contain a __typename and any primary key fields required\n // to identify entities of that type. If you pass a query result object, be\n // sure that none of the primary key fields have been renamed by aliasing.\n // If you pass a Reference object, its __ref ID string will be returned.\n public identify(object: StoreObject | Reference): string | undefined {\n if (isReference(object)) return object.__ref;\n try {\n return this.policies.identify(object)[0];\n } catch (e) {\n invariant.warn(e);\n }\n }\n\n public evict(options: Cache.EvictOptions): boolean {\n if (!options.id) {\n if (hasOwn.call(options, \"id\")) {\n // See comment in modify method about why we return false when\n // options.id exists but is falsy/undefined.\n return false;\n }\n options = { ...options, id: \"ROOT_QUERY\" };\n }\n try {\n // It's unlikely that the eviction will end up invoking any other\n // cache update operations while it's running, but {in,de}crementing\n // this.txCount still seems like a good idea, for uniformity with\n // the other update methods.\n ++this.txCount;\n // Pass this.data as a limit on the depth of the eviction, so evictions\n // during optimistic updates (when this.data is temporarily set equal to\n // this.optimisticData) do not escape their optimistic Layer.\n return this.optimisticData.evict(options, this.data);\n } finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n }\n\n public reset(options?: Cache.ResetOptions): Promise {\n this.init();\n\n canonicalStringify.reset();\n\n if (options && options.discardWatches) {\n // Similar to what happens in the unsubscribe function returned by\n // cache.watch, applied to all current watches.\n this.watches.forEach((watch) => this.maybeBroadcastWatch.forget(watch));\n this.watches.clear();\n forgetCache(this);\n } else {\n // Calling this.init() above unblocks all maybeBroadcastWatch caching, so\n // this.broadcastWatches() triggers a broadcast to every current watcher\n // (letting them know their data is now missing). This default behavior is\n // convenient because it means the watches do not have to be manually\n // reestablished after resetting the cache. To prevent this broadcast and\n // cancel all watches, pass true for options.discardWatches.\n this.broadcastWatches();\n }\n\n return Promise.resolve();\n }\n\n public removeOptimistic(idToRemove: string) {\n const newOptimisticData = this.optimisticData.removeLayer(idToRemove);\n if (newOptimisticData !== this.optimisticData) {\n this.optimisticData = newOptimisticData;\n this.broadcastWatches();\n }\n }\n\n private txCount = 0;\n\n public batch(\n options: Cache.BatchOptions\n ): TUpdateResult {\n const {\n update,\n optimistic = true,\n removeOptimistic,\n onWatchUpdated,\n } = options;\n\n let updateResult: TUpdateResult;\n const perform = (layer?: EntityStore): TUpdateResult => {\n const { data, optimisticData } = this;\n ++this.txCount;\n if (layer) {\n this.data = this.optimisticData = layer;\n }\n try {\n return (updateResult = update(this));\n } finally {\n --this.txCount;\n this.data = data;\n this.optimisticData = optimisticData;\n }\n };\n\n const alreadyDirty = new Set();\n\n if (onWatchUpdated && !this.txCount) {\n // If an options.onWatchUpdated callback is provided, we want to call it\n // with only the Cache.WatchOptions objects affected by options.update,\n // but there might be dirty watchers already waiting to be broadcast that\n // have nothing to do with the update. To prevent including those watchers\n // in the post-update broadcast, we perform this initial broadcast to\n // collect the dirty watchers, so we can re-dirty them later, after the\n // post-update broadcast, allowing them to receive their pending\n // broadcasts the next time broadcastWatches is called, just as they would\n // if we never called cache.batch.\n this.broadcastWatches({\n ...options,\n onWatchUpdated(watch) {\n alreadyDirty.add(watch);\n return false;\n },\n });\n }\n\n if (typeof optimistic === \"string\") {\n // Note that there can be multiple layers with the same optimistic ID.\n // When removeOptimistic(id) is called for that id, all matching layers\n // will be removed, and the remaining layers will be reapplied.\n this.optimisticData = this.optimisticData.addLayer(optimistic, perform);\n } else if (optimistic === false) {\n // Ensure both this.data and this.optimisticData refer to the root\n // (non-optimistic) layer of the cache during the update. Note that\n // this.data could be a Layer if we are currently executing an optimistic\n // update function, but otherwise will always be an EntityStore.Root\n // instance.\n perform(this.data);\n } else {\n // Otherwise, leave this.data and this.optimisticData unchanged and run\n // the update with broadcast batching.\n perform();\n }\n\n if (typeof removeOptimistic === \"string\") {\n this.optimisticData = this.optimisticData.removeLayer(removeOptimistic);\n }\n\n // Note: if this.txCount > 0, then alreadyDirty.size === 0, so this code\n // takes the else branch and calls this.broadcastWatches(options), which\n // does nothing when this.txCount > 0.\n if (onWatchUpdated && alreadyDirty.size) {\n this.broadcastWatches({\n ...options,\n onWatchUpdated(watch, diff) {\n const result = onWatchUpdated.call(this, watch, diff);\n if (result !== false) {\n // Since onWatchUpdated did not return false, this diff is\n // about to be broadcast to watch.callback, so we don't need\n // to re-dirty it with the other alreadyDirty watches below.\n alreadyDirty.delete(watch);\n }\n return result;\n },\n });\n // Silently re-dirty any watches that were already dirty before the update\n // was performed, and were not broadcast just now.\n if (alreadyDirty.size) {\n alreadyDirty.forEach((watch) => this.maybeBroadcastWatch.dirty(watch));\n }\n } else {\n // If alreadyDirty is empty or we don't have an onWatchUpdated\n // function, we don't need to go to the trouble of wrapping\n // options.onWatchUpdated.\n this.broadcastWatches(options);\n }\n\n return updateResult!;\n }\n\n public performTransaction(\n update: (cache: InMemoryCache) => any,\n optimisticId?: string | null\n ) {\n return this.batch({\n update,\n optimistic: optimisticId || optimisticId !== null,\n });\n }\n\n public transformDocument(document: DocumentNode): DocumentNode {\n return this.addTypenameToDocument(this.addFragmentsToDocument(document));\n }\n\n public fragmentMatches(\n fragment: InlineFragmentNode,\n typename: string\n ): boolean {\n return this.policies.fragmentMatches(fragment, typename);\n }\n\n public lookupFragment(fragmentName: string): FragmentDefinitionNode | null {\n return this.config.fragments?.lookup(fragmentName) || null;\n }\n\n protected broadcastWatches(options?: BroadcastOptions) {\n if (!this.txCount) {\n this.watches.forEach((c) => this.maybeBroadcastWatch(c, options));\n }\n }\n\n private addFragmentsToDocument(document: DocumentNode) {\n const { fragments } = this.config;\n return fragments ? fragments.transform(document) : document;\n }\n\n private addTypenameToDocument(document: DocumentNode) {\n if (this.addTypename) {\n return this.addTypenameTransform.transformDocument(document);\n }\n return document;\n }\n\n // This method is wrapped by maybeBroadcastWatch, which is called by\n // broadcastWatches, so that we compute and broadcast results only when\n // the data that would be broadcast might have changed. It would be\n // simpler to check for changes after recomputing a result but before\n // broadcasting it, but this wrapping approach allows us to skip both\n // the recomputation and the broadcast, in most cases.\n private broadcastWatch(c: Cache.WatchOptions, options?: BroadcastOptions) {\n const { lastDiff } = c;\n\n // Both WatchOptions and DiffOptions extend ReadOptions, and DiffOptions\n // currently requires no additional properties, so we can use c (a\n // WatchOptions object) as DiffOptions, without having to allocate a new\n // object, and without having to enumerate the relevant properties (query,\n // variables, etc.) explicitly. There will be some additional properties\n // (lastDiff, callback, etc.), but cache.diff ignores them.\n const diff = this.diff(c);\n\n if (options) {\n if (c.optimistic && typeof options.optimistic === \"string\") {\n diff.fromOptimisticTransaction = true;\n }\n\n if (\n options.onWatchUpdated &&\n options.onWatchUpdated.call(this, c, diff, lastDiff) === false\n ) {\n // Returning false from the onWatchUpdated callback will prevent\n // calling c.callback(diff) for this watcher.\n return;\n }\n }\n\n if (!lastDiff || !equal(lastDiff.result, diff.result)) {\n c.callback((c.lastDiff = diff), lastDiff);\n }\n }\n\n /**\n * @experimental\n * @internal\n * This is not a stable API - it is used in development builds to expose\n * information to the DevTools.\n * Use at your own risk!\n */\n public getMemoryInternals?: typeof getInMemoryCacheMemoryInternals;\n}\n\nif (__DEV__) {\n InMemoryCache.prototype.getMemoryInternals = getInMemoryCacheMemoryInternals;\n}\n","import { ApolloClient, InMemoryCache } from \"@apollo/client\"\n\nconst client = new ApolloClient({\n uri: \"https://cxm.world/graphql\",\n cache: new InMemoryCache()\n})\n\nexport default client","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.scss';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nimport { ApolloProvider, gql, useQuery } from '@apollo/client';\nimport client from './utils/apollo';\n\nimport { BrowserRouter } from 'react-router-dom';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n \n \n \n \n \n \n \n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"names":["t","Object","assign","i","n","s","arguments","length","a","prototype","hasOwnProperty","call","apply","this","endVal","options","version","defaults","startVal","decimalPlaces","duration","useEasing","useGrouping","useIndianSeparators","smartEasingThreshold","smartEasingAmount","separator","decimal","prefix","suffix","enableScrollSpy","scrollSpyDelay","scrollSpyOnce","finalEndVal","countDown","error","paused","once","count","startTime","remaining","frameVal","easingFn","Number","toFixed","printValue","rAF","requestAnimationFrame","update","onCompleteCallback","formatNumber","e","o","Math","abs","r","split","l","h","u","p","numerals","replace","easeOutExpo","pow","formattingFn","validateValue","max","resetDuration","String","el","document","getElementById","window","console","onScrollFns","push","handleScroll","onscroll","forEach","innerHeight","scrollY","getBoundingClientRect","top","pageYOffset","height","setTimeout","start","reset","determineDirectionAndSmartEasing","onStartCallback","pauseResume","cancelAnimationFrame","plugin","render","tagName","value","textContent","innerHTML","ensureNumber","isNaN","concat","hasOwn","toStr","toString","defineProperty","gOPD","getOwnPropertyDescriptor","isArray","arr","Array","isPlainObject","obj","key","hasOwnConstructor","hasIsPrototypeOf","constructor","setProperty","target","name","enumerable","configurable","newValue","writable","getProperty","module","exports","extend","src","copy","copyIsArray","clone","deep","reactIs","require","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","type","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","Memo","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","targetStatics","sourceStatics","descriptor","b","Symbol","for","c","d","f","g","k","m","q","v","w","x","y","z","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","trim","str","style","TypeError","lineno","column","updatePosition","lines","match","lastIndexOf","position","line","node","Position","whitespace","end","source","content","errorsList","msg","err","Error","reason","filename","silent","re","exec","slice","comments","rules","comment","pos","charAt","declaration","prop","val","ret","property","decl","decls","declarations","React","countup_js","ownKeys","filter","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","toPrimitive","_toPrimitive","_extends","bind","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_slicedToArray","_arrayWithHoles","iterator","next","done","return","_iterableToArrayLimit","minLen","_arrayLikeToArray","from","test","_unsupportedIterableToArray","_nonIterableRest","len","arr2","useIsomorphicLayoutEffect","createElement","useLayoutEffect","useEffect","useEventCallback","fn","ref","useRef","current","useCallback","_len","args","_key","_excluded$1","DEFAULTS","delay","decimals","startOnMount","enableReinitialize","useCountUp","props","filteredProps","fromEntries","entries","_ref","undefined","_useMemo","useMemo","onEnd","onStart","onPauseResume","onReset","onUpdate","instanceProps","countUpRef","timerRef","isInitializedRef","createInstance","CountUp","createCountUpInstance","getCountUp","recreate","countUp","newCountUp","run","restart","clearTimeout","newEnd","maybeInitialize","shouldReset","_excluded","className","redraw","containerProps","children","useCountUpProps","containerRef","_useCountUp","updateCountUp","preserveValue","initializeOnMount","redrawDependencies","Scheduler","ReactDOM","formatProdErrorMessage","code","url","encodeURIComponent","isValidContainer","nodeType","REACT_LEGACY_ELEMENT_TYPE","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","REACT_MEMO_CACHE_SENTINEL","MAYBE_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","REACT_CLIENT_REFERENCE","getComponentNameFromType","_context","innerType","_payload","_init","ReactSharedInternals","__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","describeBuiltInComponentFrame","stack","reentry","describeNativeComponentFrame","construct","previousPrepareStackTrace","prepareStackTrace","RunInRootFrame","DetermineComponentFrameRoot","Fake","set","Reflect","control","x$0","x$1","catch","sample","namePropDescriptor","_RunInRootFrame$Deter","sampleStack","controlStack","sampleLines","controlLines","includes","frame","describeFiber","fiber","tag","getStackByFiberInDevAndProd","workInProgress","info","message","getNearestMountedFiber","nearestMounted","alternate","flags","getSuspenseInstanceFromFiber","suspenseState","memoizedState","dehydrated","assertIsMounted","findCurrentHostFiberImpl","child","sibling","isArrayImpl","ReactDOMSharedInternals","__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","sharedNotPendingObject","pending","data","method","action","valueStack","index","createCursor","defaultValue","pop","cursor","contextStackCursor","contextFiberStackCursor","rootInstanceStackCursor","hostTransitionProviderCursor","pushHostContainer","nextRootInstance","documentElement","namespaceURI","getOwnHostContext","parentNode","getChildHostContextProd","popHostContainer","pushHostContext","context","JSCompiler_inline_result","popHostContext","HostTransitionContext","_currentValue","scheduleCallback$3","unstable_scheduleCallback","cancelCallback$1","unstable_cancelCallback","shouldYield","unstable_shouldYield","requestPaint","unstable_requestPaint","now","unstable_now","getCurrentPriorityLevel","unstable_getCurrentPriorityLevel","ImmediatePriority","unstable_ImmediatePriority","UserBlockingPriority","unstable_UserBlockingPriority","NormalPriority$1","unstable_NormalPriority","LowPriority","unstable_LowPriority","IdlePriority","unstable_IdlePriority","log$1","log","unstable_setDisableYieldValue","rendererID","injectedHook","setIsStrictModeForDevtools","newIsStrictMode","setStrictMode","clz32","LN2","nextTransitionLane","nextRetryLane","getHighestPriorityLanes","lanes","pendingSyncLanes","getNextLanes","root","wipLanes","pendingLanes","nextLanes","suspendedLanes","pingedLanes","warmLanes","finishedLanes","nonIdlePendingLanes","checkIfRootIsPrerendering","renderLanes","computeExpirationTime","lane","currentTime","claimNextTransitionLane","claimNextRetryLane","createLaneMap","initial","laneMap","markRootUpdated$1","updateLane","markSpawnedDeferredLane","spawnedLane","entangledLanes","spawnedLaneIndex","entanglements","markRootEntangled","rootEntangledLanes","index$8","lanesToEventPriority","resolveUpdatePriority","updatePriority","event","getEventPriority","randomKey","random","internalInstanceKey","internalPropsKey","internalContainerInstanceKey","internalEventHandlersKey","internalEventHandlerListenersKey","internalEventHandlesSetKey","internalRootNodeResourcesKey","internalHoistableMarker","detachDeletedInstance","getClosestInstanceFromNode","targetNode","targetInst","getParentSuspenseInstance","getInstanceFromNode","getNodeFromInstance","inst","stateNode","getResourcesFromRoot","resources","hoistableStyles","Map","hoistableScripts","markNodeAsHoistable","allNativeEvents","Set","registrationNameDependencies","registerTwoPhaseEvent","registrationName","dependencies","registerDirectEvent","add","canUseDOM","VALID_ATTRIBUTE_NAME_REGEX","RegExp","illegalAttributeNameCache","validatedAttributeNameCache","setValueForAttribute","attributeName","removeAttribute","prefix$10","toLowerCase","setAttribute","setValueForKnownAttribute","setValueForNamespacedAttribute","namespace","setAttributeNS","getToStringValue","isCheckable","elem","nodeName","track","_valueTracker","valueField","currentValue","get","getValue","setValue","stopTracking","trackValueOnNode","updateValueIfChanged","tracker","lastValue","checked","getActiveElement","doc","activeElement","body","escapeSelectorAttributeValueInsideDoubleQuotesRegex","escapeSelectorAttributeValueInsideDoubleQuotes","ch","charCodeAt","updateInput","element","lastDefaultValue","defaultChecked","setDefaultValue","initInput","isHydrating","ownerDocument","updateOptions","multiple","propValue","setDefaultSelected","selected","defaultSelected","disabled","updateTextarea","initTextarea","setTextContent","text","firstChild","lastChild","nodeValue","unitlessNumbers","setValueForStyle","styleName","isCustomProperty","cssFloat","has","setValueForStyles","styles","prevStyles","styleName$16","styleName$17","isCustomElement","aliases","isJavaScriptProtocol","sanitizeURL","currentReplayingEvent","getEventTarget","nativeEvent","srcElement","correspondingUseElement","restoreTarget","restoreQueue","restoreStateOfTarget","internalInstance","querySelectorAll","otherNode","form","otherProps","isInsideEventHandler","batchedUpdates$1","flushSyncWork$1","getListener","passiveBrowserEventsSupported","addEventListener","removeEventListener","startText","fallbackText","getData","startValue","startLength","endValue","endLength","minEnd","getEventCharCode","keyCode","charCode","functionThatReturnsTrue","functionThatReturnsFalse","createSyntheticEvent","Interface","SyntheticBaseEvent","reactName","reactEventType","nativeEventTarget","propName","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","lastMovementX","lastMovementY","lastMouseEvent","EventInterface","eventPhase","bubbles","cancelable","timeStamp","Date","isTrusted","SyntheticEvent","UIEventInterface","view","detail","SyntheticUIEvent","MouseEventInterface","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","getEventModifierState","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","SyntheticMouseEvent","SyntheticDragEvent","dataTransfer","SyntheticFocusEvent","SyntheticAnimationEvent","animationName","elapsedTime","pseudoElement","SyntheticClipboardEvent","clipboardData","SyntheticCompositionEvent","normalizeKey","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","translateToKey","modifierKeyToProp","Alt","Control","Meta","Shift","modifierStateGetter","keyArg","SyntheticKeyboardEvent","fromCharCode","location","repeat","locale","which","SyntheticPointerEvent","pointerId","width","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","SyntheticTouchEvent","touches","targetTouches","changedTouches","SyntheticTransitionEvent","propertyName","SyntheticWheelEvent","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","SyntheticToggleEvent","newState","oldState","END_KEYCODES","canUseCompositionEvent","documentMode","canUseTextInputEvent","useFallbackCompositionData","SPACEBAR_CHAR","hasSpaceKeypress","isFallbackCompositionEnd","domEventName","getDataFromCustomEvent","isComposing","supportedInputTypes","color","date","datetime","email","month","number","password","range","search","tel","time","week","isTextInputElement","createAndAccumulateChangeEvent","dispatchQueue","accumulateTwoPhaseListeners","listeners","activeElement$1","activeElementInst$1","runEventInBatch","processDispatchQueue","getInstIfValueChanged","getTargetInstForChangeEvent","isInputEventSupported","JSCompiler_inline_result$jscomp$283","isSupported$jscomp$inline_418","element$jscomp$inline_419","oninput","stopWatchingForValueChange","detachEvent","handlePropertyChange","handleEventsForInputEventPolyfill","attachEvent","getTargetInstForInputEventPolyfill","getTargetInstForClickEvent","getTargetInstForInputOrChangeEvent","objectIs","is","shallowEqual","objA","objB","keysA","keysB","currentKey","getLeafNode","getNodeForCharacterOffset","offset","nodeEnd","nextSibling","containsNode","outerNode","innerNode","contains","compareDocumentPosition","getActiveElementDeep","containerInfo","defaultView","HTMLIFrameElement","contentWindow","href","hasSelectionCapabilities","contentEditable","restoreSelection","priorSelectionInformation","curFocusedElem","focusedElem","priorSelectionRange","selectionRange","selectionStart","selectionEnd","min","getSelection","endMarker","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","scrollTop","focus","skipSelectionChangeEvent","activeElementInst","lastSelection","mouseDown","constructSelectEvent","makePrefixMap","styleProp","eventName","prefixes","vendorPrefixes","animationend","animationiteration","animationstart","transitionrun","transitionstart","transitioncancel","transitionend","prefixedEventNames","getVendorPrefixedEventName","prefixMap","animation","transition","ANIMATION_END","ANIMATION_ITERATION","ANIMATION_START","TRANSITION_RUN","TRANSITION_START","TRANSITION_CANCEL","TRANSITION_END","topLevelEventsToReactNames","simpleEventPluginEvents","registerSimpleEvent","concurrentQueues","concurrentQueuesIndex","concurrentlyUpdatedLanes","finishQueueingConcurrentUpdates","endIndex","queue","markUpdateLaneFromFiberToRoot","enqueueUpdate$1","enqueueConcurrentHookUpdate","getRootForUpdatedFiber","enqueueConcurrentRenderForLane","sourceFiber","isHidden","parent","childLanes","_visibility","hiddenUpdates","nestedUpdateCount","rootWithNestedUpdates","emptyContextObject","CapturedStacks","WeakMap","createCapturedValueAtFiber","existing","forkStack","forkStackIndex","treeForkProvider","treeForkCount","idStack","idStackIndex","treeContextProvider","treeContextId","treeContextOverflow","pushTreeFork","totalChildren","pushTreeId","baseIdWithLeadingBit","baseLength","numberOfOverflowBits","pushMaterializedTreeId","popTreeContext","hydrationParentFiber","nextHydratableInstance","hydrationErrors","rootOrSingletonContext","HydrationMismatchException","throwOnHydrationMismatch","queueHydrationError","prepareToHydrateHostInstance","instance","memoizedProps","listenToNonDelegatedEvent","mediaEventTypes","suppressHydrationWarning","checkForUnmatchedText","popover","onScroll","onScrollEnd","onClick","onclick","noop$1","popToNextHostParent","popHydrationState","JSCompiler_temp","shouldClear","shouldSetTextContent","getNextHydratable","resetHydrationState","SuspenseException","SuspenseyCommitException","noopSuspenseyCommitThenable","then","isThenableResolved","thenable","status","noop$3","trackUsedThenable","thenableState","workInProgressRoot","shellSuspendCounter","fulfilledValue","fulfilledThenable","rejectedThenable","suspendedThenable","getSuspendedThenable","thenableState$1","thenableIndexCounter$1","unwrapThenable","coerceRef","throwOnInvalidObjectType","returnFiber","newChild","join","resolveLazy","lazyType","init","createChildReconciler","shouldTrackSideEffects","deleteChild","childToDelete","deletions","deleteRemainingChildren","currentFirstChild","mapRemainingChildren","existingChildren","useFiber","pendingProps","createWorkInProgress","placeChild","newFiber","lastPlacedIndex","newIndex","placeSingleChild","updateTextNode","createFiberFromText","mode","updateElement","elementType","updateFragment","createFiberFromTypeAndProps","updatePortal","portal","implementation","createFiberFromPortal","fragment","createFiberFromFragment","createChild","readContextDuringReconciliation","updateSlot","oldFiber","updateFromMap","newIdx","reconcileChildFibersImpl","newChildren","resultingFirstChild","previousNewFiber","nextOldFiber","delete","reconcileChildrenArray","step","reconcileChildrenIterator","firstChildFiber","createFiberImplClass","reconcileChildFibers","mountChildFibers","currentTreeHiddenStackCursor","prevEntangledRenderLanesCursor","pushHiddenContext","entangledRenderLanes","baseLanes","reuseHiddenContextOnStack","popHiddenContext","suspenseHandlerStackCursor","shellBoundary","pushPrimaryTreeSuspenseHandler","handler","suspenseStackCursor","pushOffscreenSuspenseHandler","reuseSuspenseHandlerOnStack","popSuspenseHandler","findFirstSuspended","row","state","revealOrder","AbortControllerLocal","AbortController","signal","aborted","listener","abort","scheduleCallback$2","NormalPriority","CacheContext","Consumer","Provider","_currentValue2","_threadCount","createCache","controller","refCount","releaseCache","cache","currentEntangledListeners","currentEntangledPendingCount","currentEntangledLane","currentEntangledActionThenable","pingEngtangledActionScope","prevOnStartTransitionFinish","S","entangledListeners","requestTransitionLane","resolve","entangleAsyncAction","resumedCache","peekCacheFromPool","cacheResumedFromPreviousRender","pooledCache","pushTransition","offscreenWorkInProgress","prevCachePool","pool","getSuspendedCache","cacheFromPool","createFunctionComponentUpdateQueue","currentlyRenderingFiber$1","currentHook","workInProgressHook","didScheduleRenderPhaseUpdate","didScheduleRenderPhaseUpdateDuringThisPass","shouldDoubleInvokeUserFnsInHooksDEV","localIdCounter","thenableIndexCounter","globalClientIdCounter","throwInvalidHookError","areHookInputsEqual","nextDeps","prevDeps","renderWithHooks","Component","secondArg","nextRenderLanes","updateQueue","H","HooksDispatcherOnMount","HooksDispatcherOnUpdate","renderWithHooksAgain","finishRenderingHooks","ContextOnlyDispatcher","didRenderTooFewHooks","didReceiveUpdate","checkIfContextChanged","numberOfReRenders","lastEffect","events","stores","memoCache","HooksDispatcherOnRerender","TransitionAwareHostComponent","dispatcher","maybeThenable","useState","useThenable","checkDidRenderIdHook","didRenderIdHook","bailoutHooks","resetHooksOnUnwind","mountWorkInProgressHook","hook","baseState","baseQueue","updateWorkInProgressHook","nextCurrentHook","nextWorkInProgressHook","use","usable","readContext","useMemoCache","size","map","array","basicStateReducer","updateReducer","reducer","updateReducerImpl","lastRenderedReducer","pendingQueue","baseFirst","newBaseQueueFirst","newBaseQueueLast","didReadFromEntangledAsyncAction$54","workInProgressRootRenderLanes","revertLane","hasEagerState","eagerState","workInProgressRootSkippedLanes","lastRenderedState","dispatch","rerenderReducer","lastRenderPhaseUpdate","updateSyncExternalStore","subscribe","getSnapshot","getServerSnapshot","isHydrating$jscomp$0","snapshotChanged","updateEffect","subscribeToStore","pushEffect","updateStoreInstance","destroy","pushStoreConsistencyCheck","renderedSnapshot","nextSnapshot","checkIfSnapshotChanged","forceStoreRerender","latestGetSnapshot","nextValue","scheduleUpdateOnFiber","mountStateImpl","initialState","initialStateInitializer","updateOptimisticImpl","passthrough","dispatchActionState","actionQueue","setPendingState","setState","payload","isRenderPhaseUpdate","actionNode","isTransition","T","runActionStateAction","prevState","prevTransition","currentTransition","onStartTransitionFinish","handleActionReturnValue","onActionError","error$60","nextState","onActionSuccess","notifyActionListeners","last","actionStateReducer","mountActionState","initialStateProp","ssrFormState","formState","JSCompiler_inline_result$jscomp$0","inRootOrSingleton","dispatchSetState","dispatchOptimisticSetState","updateActionState","updateActionStateImpl","stateHook","currentStateHook","actionQueueHook","actionStateActionEffect","rerenderActionState","create","deps","updateRef","mountEffectImpl","fiberFlags","hookFlags","updateEffectImpl","mountEffect","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","refCleanup","updateImperativeHandle","mountDebugValue","updateCallback","callback","updateMemo","nextCreate","mountDeferredValueImpl","initialValue","requestDeferredLane","updateDeferredValueImpl","prevValue","startTransition","pendingState","finishedState","previousPriority","dispatchSetStateInternal","result","thenableWithOverride","chainThenableValue","requestUpdateLane","noop$2","startHostTransition","formFiber","formData","ensureFormComponentIsStateful","requestFormReset$1","existingStateHook","initialResetState","useHostTransitionStatus","updateId","updateRefresh","refreshCache","provider","root$63","enqueueUpdate","createUpdate","entangleTransitions","dispatchReducerAction","enqueueRenderPhaseUpdate","entangleTransitionUpdate","currentState","throwIfDuringRender","queueLanes","useContext","useImperativeHandle","useInsertionEffect","useReducer","useDebugValue","useDeferredValue","useTransition","useSyncExternalStore","useId","useCacheRefresh","useFormState","useActionState","useOptimistic","initialArg","identifierPrefix","booleanOrThenable","applyDerivedStateFromProps","ctor","nextProps","classComponentUpdater","isMounted","_reactInternals","enqueueSetState","enqueueReplaceState","enqueueForceUpdate","checkShouldComponentUpdate","oldProps","newProps","nextContext","shouldComponentUpdate","isPureReactComponent","callComponentWillReceiveProps","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","resolveClassComponentProps","baseProps","propName$67","reportGlobalError","reportError","ErrorEvent","dispatchEvent","process","emit","defaultOnUncaughtError","defaultOnCaughtError","defaultOnRecoverableError","logUncaughtError","errorInfo","onUncaughtError","componentStack","e$68","logCaughtError","boundary","onCaughtError","errorBoundary","e$69","createRootErrorUpdate","createClassErrorUpdate","initializeClassErrorUpdate","componentDidCatch","legacyErrorBoundariesThatAlreadyFailed","SelectiveHydrationException","reconcileChildren","nextChildren","updateForwardRef","propsWithoutRef","prepareToReadContext","bailoutOnAlreadyFinishedWork","updateMemoComponent","shouldConstruct","updateSimpleMemoComponent","checkScheduledUpdateOrContext","prevProps","updateFunctionComponent","updateOffscreenComponent","nextIsDetached","_pendingVisibility","markRef","deferHiddenOffscreenComponent","cachePool","nextBaseLanes","propagateParentContextChanges","replayFunctionComponent","updateClassComponent","updater","refs","initializeUpdateQueue","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","processUpdateQueue","suspendIfUpdateReadFromEntangledAsyncAction","componentDidMount","unresolvedOldProps","oldContext","contextType$jscomp$0","hasForceUpdate","cloneUpdateQueue","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","mountHostRootWithoutHydrating","SUSPENDED_MARKER","treeContext","retryLane","mountSuspenseOffscreenState","getRemainingWorkInPrimaryTree","primaryTreeDidDefer","workInProgressDeferredLane","updateSuspenseComponent","showFallback","didSuspend","JSCompiler_temp$jscomp$0","nextInstance","id","overflow","fallback","mountWorkInProgressOffscreenFiber","mountSuspensePrimaryChildren","retrySuspenseComponentWithoutHydrating","dataset","digest","dgst","renderDidSuspendDelayIfPossible","retryDehydratedSuspenseBoundary","_reactRetry","subtreeFlags","primaryChildren","offscreenProps","createFiberFromOffscreen","scheduleSuspenseWorkOnFiber","propagationRoot","scheduleContextWorkOnParentPath","initSuspenseListRenderState","isBackwards","tail","lastContentRow","tailMode","renderState","rendering","renderingStartTime","updateSuspenseListComponent","beginWork","pushProvider","didSuspendBefore","attemptEarlyBailoutIfNoScheduledUpdate","lazyComponent","propagateContextChanges","isDehydrated","getResource","getOwnerDocumentFromRootContainer","setInitialProperties","resolveSingletonInstance","anyProps","hasAttribute","getAttribute","rel","crossOrigin","title","canHydrateInstance","canHydrateTextInstance","pooledCacheLanes","valueCursor","currentlyRenderingFiber","lastContextDependency","providerFiber","popProvider","contexts","forcePropagateEntireTree","list","nextFiber","firstContext","dependency","isInsidePropagationBailout","currentParent","currentDependencies","memoizedValue","readContextForConsumer","consumer","firstBaseUpdate","lastBaseUpdate","shared","hiddenCallbacks","callbacks","executionContext","enqueueCapturedUpdate","capturedUpdate","newFirst","newLast","didReadFromEntangledAsyncAction","workInProgress$jscomp$0","instance$jscomp$0","lastPendingUpdate","firstPendingUpdate","isHiddenUpdate","callCallback","commitCallbacks","commitHookEffectListMount","finishedWork","firstEffect","captureCommitPhaseError","commitHookEffectListUnmount","nearestMountedAncestor$jscomp$0","nearestMountedAncestor","commitClassCallbacks","safelyCallComponentWillUnmount","componentWillUnmount","safelyAttachRef","instanceToUse","safelyDetachRef","error$112","commitHostMount","autoFocus","srcSet","srcset","commitHostUpdate","domElement","lastProps","propKey","lastProp","setProp","propKey$203","propKey$219","propKey$224","propKey$229","setPropOnCustomElement","propKey$234","updateProperties","isHostParent","getHostSibling","insertOrAppendPlacementNodeIntoContainer","before","insertBefore","appendChild","_reactRootContainer","insertOrAppendPlacementNode","offscreenSubtreeIsHidden","offscreenSubtreeWasHidden","needsFormReset","PossiblyWeakSet","WeakSet","nextEffect","shouldFireAfterActiveInstanceBlur","commitLayoutEffectOnFiber","finishedRoot","recursivelyTraverseLayoutEffects","__reactInternalSnapshotBeforeUpdate","error$111","commitSuspenseHydrationCallbacks","prevOffscreenSubtreeIsHidden","prevOffscreenSubtreeWasHidden","recursivelyTraverseReappearLayoutEffects","detachFiberAfterEffects","hostParent","hostParentIsContainer","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","deletedFiber","onCommitFiberUnmount","removeChild","prevHostParent","prevHostParentIsContainer","attributes","removeAttributeNode","prevHostParentIsContainer$119","clearSuspenseBoundary","retryIfBlockedOn","attachSuspenseRetryListeners","wakeables","retryCache","_retryCache","getRetryCache","wakeable","retry","resolveRetryWakeable","recursivelyTraverseMutationEffects","root$jscomp$0","parentFiber","commitMutationEffectsOnFiber","currentHoistableRoot","commitReconciliationEffects","hoistableRoot","currentResource","getElementsByTagName","head","querySelector","maybeNodes","getHydratableHoistableCache","splice","httpEquiv","charSet","mountHoistable","acquireResource","nextNode","tagCaches","getHoistableRoot","recursivelyResetForms","globalMostRecentFallbackTime","_current","recursivelyTraverseDisappearLayoutEffects","display","retryQueue","parent$jscomp$0","parent$113","parent$115","finishedRoot$jscomp$0","includeWorkInProgressEffects","commitOffscreenPassiveMountEffects","previousCache","commitCachePassiveMountEffect","recursivelyTraversePassiveMountEffects","committedLanes","committedTransitions","commitPassiveMountOnFiber","_finishedWork$memoize2","onPostCommit","passiveEffectDuration","recursivelyTraverseAtomicPassiveEffects","recursivelyTraverseReconnectPassiveEffects","committedLanes$jscomp$0","committedTransitions$jscomp$0","suspenseyCommitFlag","recursivelyAccumulateSuspenseyCommit","accumulateSuspenseyCommitOnFiber","resource","suspendedState","media","matchMedia","matches","loading","getStyleKey","getStylesheetSelectorFromKey","_p","onUnsuspend","stylesheetPropsFromRawProps","preloadPropsMap","adoptPreloadPropsForStylesheet","linkInstance","Promise","reject","onload","onerror","stylesheets","preload","suspendResource","previousHoistableRoot","detachAlternateSiblings","previousFiber","recursivelyTraversePassiveUnmountEffects","commitPassiveUnmountEffectsInsideOfDeletedTree_begin","commitPassiveUnmountOnFiber","recursivelyTraverseDisconnectPassiveEffects","deletedSubtreeRoot","FiberNode","isReactComponent","resetWorkInProgress","owner","fiberTag","hostContext","itemProp","precedence","onLoad","onError","async","isHostHoistableType","elements","primaryChildInstance","_pendingMarkers","_transitions","detach","attach","pendingChildren","markUpdate","preloadResourceAndSuspendIfNeeded","preloadResource","scheduleRetryEffect","workInProgressSuspendedRetryLanes","cutOffTailIfNeeded","hasRenderedATailFallback","lastTailNode","lastTailNode$131","bubbleProperties","completedWork","didBailout","newChildLanes","child$132","completeWork","pendingContext","queueRecoverableErrors","createElementNS","createTextNode","cache$144","listenToAllSupportedEvents","workInProgressRootExitStatus","workInProgressRootRenderTargetTime","unwindWork","unwindInterruptedWork","interruptedWork","DefaultAsyncDispatcher","getCacheForType","resourceType","cacheForType","PossiblyWeakMap","workInProgressSuspendedReason","workInProgressThrownValue","workInProgressRootDidSkipSuspendedSiblings","workInProgressRootIsPrerendering","workInProgressRootDidAttachPingListener","workInProgressRootInterleavedUpdatedLanes","workInProgressRootPingedLanes","workInProgressRootConcurrentErrors","workInProgressRootRecoverableErrors","workInProgressRootDidIncludeRecursiveRenderUpdate","Infinity","workInProgressTransitions","rootDoesHavePassiveEffects","rootWithPendingPassiveEffects","pendingPassiveEffectsLanes","pendingPassiveEffectsRemainingLanes","pendingPassiveTransitions","suspenseHandler","cancelPendingCommit","prepareFreshStack","markRootSuspended","ensureRootIsScheduled","performWorkOnRoot","forceSync","shouldTimeSlice","expiredLanes","exitStatus","prevExecutionContext","prevDispatcher","pushDispatcher","prevAsyncDispatcher","pushAsyncDispatcher","thrownValue","throwAndUnwindWorkLoop","replaySuspendedUnitOfWork","hostFiber","completeUnitOfWork","resetWorkInProgressStack","workLoopConcurrent","thrownValue$166","handleThrow","renderRootConcurrent","renderRootSync","renderWasConcurrent","isRenderConsistentWithExternalStores","errorRecoveryDisabledLanes","wasRootDehydrated","timeoutHandle","scheduleTimeout","commitRootWhenReady","errors","recoverableErrors","transitions","didIncludeRenderPhaseUpdate","updatedLanes","suspendedRetryLanes","didSkipSuspendedSiblings","suspendedCommitReason","completedRenderStartTime","completedRenderEndTime","unsuspend","noop","insertSuspendedStylesheets","commit","stylesheetTimer","waitForCommitToBeReady","commitRoot","check","didAttemptEntireTree","expirationTimes","index$6","flushSyncWorkAcrossRoots_impl","cancelTimeout","allEntangledLanes","index$4","shouldYieldForPrerendering","unitOfWork","workLoopSync","thrownValue$164","performUnitOfWork","suspendedReason","rootRenderLanes","attachPingListener","markerInstances","cause","wrapperError","throwException","unwindUnitOfWork","skipSiblings","previousUpdateLanePriority","renderPriorityLevel","flushPassiveEffects","callbackNode","callbackPriority","remainingLanes","previouslyPendingLanes","index$7","hiddenUpdatesForLane","markRootFinished","priorityLevel","scheduleCallback$1","eventsEnabled","_enabled","selection","e$20","indexWithinAnchor","indexWithinFocus","selectionInformation","resolvedPrevProps","clearContainerSparingly","commitBeforeMutationEffects","releaseRootPooledCache","onCommitFiberRoot","onCommitRoot","onRecoverableError","commitRootImpl","root$170","renderPriority","onPostCommitFiberRoot","captureCommitPhaseErrorOnRoot","rootFiber","pingCache","threadIDs","pingSuspendedRoot","retryTimedOutBoundary","boundaryFiber","firstScheduledRoot","lastScheduledRoot","didScheduleMicrotask","mightHavePendingSyncWork","isFlushingWork","currentEventTransitionLane","cb","processRootScheduleInMicrotask","scheduleMicrotask","syncTransitionLanes","onlyLegacy","didPerformSomeWork","root$172","performSyncWorkOnRoot","currentPopstateTransitionEvent","shouldAttemptEagerTransition","prev","scheduleTaskForRootDuringMicrotask","index$5","expirationTime","performWorkOnRootViaSchedulerTask","didTimeout","originalCallbackNode","workInProgressRootRenderLanes$jscomp$0","coerceFormActionProp","actionProp","createFormDataWithSubmitter","submitter","temp","FormData","i$jscomp$inline_1439","eventName$jscomp$inline_1440","toUpperCase","nonDelegatedEvents","eventSystemFlags","_dispatchQueue$i","previousInstance","i$jscomp$0","_dispatchListeners$i","targetElement","listenerSetKey","addTrappedEventListener","listenToNativeEvent","isCapturePhaseListener","listeningMarker","rootContainerElement","targetContainer","listenerWrapper","dispatchDiscreteEvent","dispatchContinuousEvent","capture","passive","dispatchEventForPluginEventSystem","targetInst$jscomp$0","ancestorInst","nodeTag","container","grandTag","SyntheticEventCtor","inCapturePhase","accumulateTargetOnly","reactEventName","lastHostComponent","_instance","createDispatchListener","parentWindow","getParent","accumulateEnterLeaveListenersForEvent","getTargetInstFunc","handleEventFunc","fallbackData","eventType","getNativeBeforeInputChars","char","getFallbackBeforeInputChars","maybeTargetInst","formAction","extractEvents$1","targetFiber","captureName","_instance2","unshift","common","_instance3","NORMALIZE_NEWLINES_REGEX","NORMALIZE_NULL_AND_REPLACEMENT_REGEX","normalizeMarkupForTextOrAttribute","markup","serverText","clientText","formEncType","formMethod","formTarget","encType","__html","muted","endsWith","hasSrc","hasSrcSet","propValue$186","parentNamespace","dangerouslySetInnerHTML","localPromise","queueMicrotask","handleErrorInNextTick","parentInstance","suspenseInstance","depth","targetInstance","previousSibling","rootContainerInstance","preconnectsSet","getRootNode","previousDispatcher","previousWasRendering","wasRendering","formInst","D","preconnectAs","C","L","as","globalDocument","preloadSelector","imageSrcSet","imageSizes","getScriptKey","getScriptSelectorFromKey","X","scripts","adoptPreloadPropsForScript","link","insertStylesheet","M","limitedEscapedHref","currentProps","preloadProps","styles$242","resource$243","integrity","hrefLang","referrerPolicy","rawProps","styleProps","instance$248","nodes","prior","stylesheetProps","scriptProps","keyAttribute","caches","nodeKey","precedencesByRoot","insertStylesheetIntoRoot","precedences","FiberRootNode","hydrate","incompleteTransitions","createFiberRoot","initialChildren","hydrationCallbacks","transitionCallbacks","getContextForSubtree","parentComponent","updateContainerImpl","markRetryLaneImpl","markRetryLaneIfNotHydrated","attemptContinuousHydration","blockedOn","findInstanceBlockingEvent","return_targetInst","clearIfContinuousEvent","queuedFocus","accumulateOrCreateContinuousQueuedReplayableEvent","queuedDrag","queuedMouse","queuedPointers","queuedPointerCaptures","queueIfContinuousEvent","discreteReplayableEvents","findInstanceBlockingTarget","hasScheduledReplayAttempt","queuedExplicitHydrationTargets","existingQueuedEvent","targetContainers","attemptExplicitHydrationTarget","queuedTarget","priority","runWithPriority","attemptReplayContinuousQueuedEvent","queuedEvent","nextBlockedOn","nativeEventClone","shift","attemptReplayContinuousQueuedEventInMap","replayUnblockedEvents","scheduleCallbackIfUnblocked","unblocked","lastScheduledReplayQueue","scheduleReplayQueueIfNeeded","formReplayingQueue","submitterOrAction","unblock","$$reactFormReplay","formProps","ReactDOMRoot","internalRoot","_internalRoot","ReactDOMHydrationRoot","unmount","unstable_scheduleHydration","isomorphicReactPackageVersion$jscomp$inline_1686","findDOMNode","componentOrElement","parentA","parentB","didFindChild","child$2","findCurrentFiberUsingSlowPath","internals$jscomp$inline_2165","bundleType","rendererPackageName","currentDispatcherRef","findFiberByHostInstance","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","hook$jscomp$inline_2166","isDisabled","supportsFiber","inject","createRoot","unstable_strictMode","unstable_transitionCallbacks","hydrateRoot","Internals","getCrossOriginStringAs","input","createPortal","createPortal$1","flushSync","previousTransition","previousUpdatePriority","preconnect","prefetchDNS","preinit","fetchPriority","nonce","preinitModule","preloadModule","requestFormReset","unstable_batchedUpdates","permalink","useFormStatus","checkDCE","jsxProd","config","maybeKey","jsx","jsxs","ReactNoopUpdateQueue","emptyObject","ComponentDummy","PureComponent","partialState","forceUpdate","pureComponentPrototype","ReactElement","self","isValidElement","object","userProvidedKeyEscapeRegex","getElementKey","escaperLookup","escape","mapIntoArray","escapedPrefix","nameSoFar","oldElement","newKey","invokeCallback","nextNamePrefix","resolveThenable","mapChildren","func","lazyInitializer","_status","_result","moduleObject","default","Children","forEachFunc","forEachContext","toArray","only","act","cloneElement","childArray","createContext","childrenLength","createRef","forwardRef","lazy","memo","scope","unstable_useCacheRefresh","Context","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","__SERVER_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","heap","parentIndex","peek","first","halfLength","leftIndex","rightIndex","right","diff","sortIndex","performance","localPerformance","localDate","initialTime","taskQueue","timerQueue","taskIdCounter","currentTask","currentPriorityLevel","isPerformingWork","isHostCallbackScheduled","isHostTimeoutScheduled","localSetTimeout","localClearTimeout","localSetImmediate","setImmediate","advanceTimers","timer","handleTimeout","requestHostCallback","firstTimer","requestHostTimeout","schedulePerformWorkUntilDeadline","isMessageLoopRunning","taskTimeoutID","frameInterval","shouldYieldToHost","performWorkUntilDeadline","hasMoreWork","previousPriorityLevel","continuationCallback","MessageChannel","channel","port","port2","port1","onmessage","postMessage","ms","unstable_Profiling","task","unstable_continueExecution","unstable_forceFrameRate","fps","floor","unstable_getFirstCallbackNode","unstable_next","eventHandler","unstable_pauseExecution","unstable_runWithPriority","timeout","unstable_wrapCallback","parentPriorityLevel","inline_style_parser_1","__importDefault","styleObject","hasIterator","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","leafPrototypes","getProto","__esModule","ns","def","definition","chunkId","all","reduce","promises","miniCssF","inProgress","dataWebpackPrefix","script","needAttach","charset","nc","onScriptComplete","doneFns","toStringTag","installedChunks","j","installedChunkData","promise","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","Action","PopStateEventType","invariant","warning","cond","warn","getHistoryState","usr","idx","createLocation","to","pathname","hash","parsePath","substr","createPath","path","parsedPath","hashIndex","searchIndex","getUrlBasedHistory","getLocation","createHref","validateLocation","v5Compat","globalHistory","history","Pop","getIndex","handlePop","nextIndex","delta","createURL","base","origin","URL","replaceState","listen","encodeLocation","Push","historyState","pushState","DOMException","Replace","go","ResultType","matchRoutes","routes","locationArg","basename","stripBasename","branches","flattenRoutes","sort","score","siblings","every","compareIndexes","routesMeta","meta","childrenIndex","rankRouteBranches","matchRouteBranch","safelyDecodeURI","parentsMeta","parentPath","flattenRoute","route","relativePath","caseSensitive","startsWith","joinPaths","computeScore","_route$path","exploded","explodeOptionalSegments","segments","rest","isOptional","required","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","params","pathnameBase","normalizePathname","pattern","matcher","compiledParams","regexpSource","_","paramName","compilePath","captureGroups","splatValue","decodeURIComponent","safelyDecodeURIComponent","decodeURI","startIndex","nextChar","getInvalidPathError","field","dest","JSON","stringify","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","isRouteErrorResponse","statusText","internal","validMutationMethodsArr","validRequestMethodsArr","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useInRouterContext","useLocation","UNSAFE_invariant","static","useNavigate","router","useDataRouterContext","DataRouterHook","UseNavigateStable","useCurrentRouteId","DataRouterStateHook","activeRef","navigate","fromRouteId","useNavigateStable","dataRouterContext","future","navigator","routePathnamesJson","UNSAFE_getResolveToMatches","parse","relative","useNavigateUnstable","useResolvedPath","_temp2","useRoutesImpl","dataRouterState","parentMatches","routeMatch","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","renderedMatches","_renderMatches","navigationType","DefaultErrorComponent","_state$errors","useDataRouterState","UseRouteError","routeId","useRouteError","lightgrey","preStyles","padding","backgroundColor","fontStyle","defaultErrorElement","RenderErrorBoundary","super","revalidation","routeContext","RenderedRoute","staticContext","errorElement","ErrorBoundary","_deepestRenderedBoundaryId","_dataRouterState2","_dataRouterState","errorIndex","findIndex","renderFallback","fallbackIndex","v7_partialHydration","HydrateFallback","hydrateFallbackElement","loaderData","needsToRunLoader","loader","reduceRight","shouldRenderHydrateFallback","alreadyWarned","getChildren","hookName","ctx","useRouteContext","thisRoute","Route","_props","Router","_ref5","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","Routes","_ref6","useRoutes","createRoutesFromChildren","treePath","hasErrorBoundary","shouldRevalidate","handle","createSearchParams","URLSearchParams","startTransitionImpl","BrowserRouter","_ref4","historyRef","createBrowserHistory","setStateImpl","v7_startTransition","isBrowser","ABSOLUTE_URL_REGEX","Link","_ref7","absoluteHref","reloadDocument","preventScrollReset","unstable_viewTransition","UNSAFE_NavigationContext","isExternal","currentUrl","targetUrl","protocol","_temp","joinedPathname","useHref","internalOnClick","replaceProp","isModifiedEvent","shouldProcessLinkClick","useLinkClickHandler","useSearchParams","defaultInit","defaultSearchParamsRef","hasSetSearchParamsRef","searchParams","locationSearch","defaultSearchParams","getAll","append","getSearchParamsForLocation","setSearchParams","nextInit","navigateOptions","newSearchParams","_jsx","_Fragment","_jsxs","isObject","ssrDocument","blur","createEvent","initEvent","childNodes","importNode","host","hostname","getDocument","ssrWindow","userAgent","back","CustomEvent","getComputedStyle","getPropertyValue","Image","screen","getWindow","win","nextTick","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","transform","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","parseFloat","m42","isNode","HTMLElement","noExtend","nextSource","keysArray","nextKey","desc","__swiper__","setCSSProperty","varName","varValue","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","animate","getTime","progress","easeProgress","cos","PI","currentPosition","scrollTo","elementChildren","selector","showWarning","classes","classList","classesToTokens","elementStyle","elementIndex","elementOuterSize","includeMargins","offsetWidth","support","deviceCached","browser","getSupport","smoothScroll","touch","DocumentTouch","calcSupport","getDevice","overrides","platform","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","major","minor","num","isWebView","calcBrowser","eventsEmitter","on","eventsListeners","destroyed","onceHandler","off","__emitterProxy","onAny","eventsAnyListeners","offAny","_len2","_key2","processLazyPreloader","imageEl","slideEl","closest","slideClass","lazyEl","lazyPreloaderClass","shadowRoot","remove","unlazy","slides","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","ceil","activeIndex","grid","rows","activeColumn","preloadColumns","slideIndexLastInView","rewind","loop","realIndex","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","updateSlides","getDirectionPropertyValue","label","getDirectionLabel","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","slideSize","initSlides","unsetSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","swiperSlideSize","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","slideFullyVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","prevSlide","nextSlide","slideActiveClass","slideNextClass","slidePrevClass","nextEls","nextElementSibling","elementNextAll","prevEls","previousElementSibling","elementPrevAll","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","activeSlideIndex","initialized","runCallbacksOnInit","updateClickedSlide","pathEl","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","previousTranslate","translateTo","runCallbacks","translateBounds","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","transitionDuration","transitionDelay","transitionStart","transitionEnd","slideTo","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","clientLeft","slidePrev","normalize","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slideBlankClass","loopAddBlankSlides","recalcSlides","byMousewheel","loopAdditionalSlides","fill","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","touchEventsData","startTranslate","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","grabCursor","setGrabCursor","moving","simulateTouch","isLocked","touchEventsTarget","unsetGrabCursor","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","innerWidth","onTouchStart","originalEvent","touchId","identifier","targetEl","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","found","closestElement","allowClick","swipeHandler","currentX","currentY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","previousX","previousY","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","evt","allowMomentumBounce","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","resizeTimeout","resume","preventClicks","preventClicksPropagation","stopImmediatePropagation","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","domMethod","swiperMethod","updateOnWindowResize","events$1","attachEvents","detachEvents","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","points","point","minRatio","addClasses","classNames","suffixes","resultClasses","item","prepareClasses","removeClasses","checkOverflow$1","wasLocked","lastSlideRightEdge","resizeObserver","createElements","eventsPrefix","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","extendParams","swiperParams","passedParams","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","setProgress","cls","getSlideClasses","updates","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","getWrapper","slideSlots","hostEl","lazyElements","deleteInstance","cleanStyles","deleteProps","extendDefaults","newDefaults","installModule","prototypeGroup","protoMethod","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","childList","characterData","observeParents","observeSlideChildren","containerParents","parents","parentElement","elementParents","disconnect","paramsList","needsNavigation","needsPagination","pagination","needsScrollbar","scrollbar","uniqueClasses","unique","isChildSwiperSlide","processChildren","slots","slot","foundSlides","SwiperSlideContext","SwiperContext","externalElRef","Tag","wrapperTag","WrapperTag","onSwiper","eventsAssigned","containerClasses","setContainerClasses","virtualData","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","restProps","splitEvents","allowedParams","plainObj","getParams","onBeforeBreakpoint","_containerClasses","initSwiper","passParams","Swiper$1","extendWith","renderExternal","renderExternalUpdate","paginationEl","scrollbarEl","mountSwiper","changedParams","oldParams","oldChildren","getKey","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","oldKey","getChangedParams","updateParams","currentParams","thumbs","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","destroyModule","part","nextButtonSvg","prevButtonSvg","updateSwiper","parallax","updateOnVirtualData","loopFrom","loopTo","slidesToRender","renderVirtual","SwiperSlide","externalRef","zoom","virtualIndex","slideElRef","slideClasses","setSlideClasses","lazyLoaded","setLazyLoaded","updateClasses","_s","slideData","isActive","isVisible","renderChildren","Navigation","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","getEl","res","toggleEl","subEl","onPrevClick","onNextClick","checkProps","createElementIfNotDefined","initButton","destroyButton","clickable","toggle","Autoplay","raf","timeLeft","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayTimeLeft","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","onTransitionEnd","calcTimeLeft","delayForce","currentSlideDelay","getSlideDelay","activeSlideEl","proceed","stop","pause","onVisibilityChange","visibilityState","onPointerEnter","onPointerLeave","Grid","slidesNumberEvenToRows","slidesPerRow","numFullColumns","getSpaceBetween","onInit","swiperSlideGridSet","newSlideOrderIndex","groupIndex","slideIndexInGroup","columnsInGroup","order","SwipperControls","SwiperButton","_ref3","setAttributes","slideWrapperClassName","controlled","slideClassName","setSlideClassName","isFirst","setIsFirst","previousDisabled","setPreviousDisabled","nextDisabled","setNextDisabled","newAttributes","onBeforeInit","onSlideChange","klon","itemsWithHome","Footer","alt","InfiniteLoopSlider","reverse","image","folder","images","ioConfiguration","rootMargin","addObserver","IntersectionObserver","entry","isIntersecting","Main","useScrollTrigger","Slider","miniLogo","Stats","ImageScroller","Home","subtitle","company","description","uri","_typeof","toPropertyKey","_defineProperties","_setPrototypeOf","setPrototypeOf","__proto__","_getPrototypeOf","_possibleConstructorReturn","ReferenceError","_createSuper","Derived","hasNativeReflectConstruct","sham","Proxy","Boolean","valueOf","Super","NewTarget","_toConsumableArray","iter","StyleSheet","_this","_insertTag","tags","insertionPoint","isSpeedy","speedy","ctr","_proto","insert","rule","createStyleElement","sheet","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","flush","replacement","indexof","charat","begin","strlen","sizeof","character","characters","caret","token","alloc","dealloc","delimit","delimiter","escaping","commenter","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","KEYFRAMES","serialize","output","compile","rulesets","pseudo","atrule","previous","variable","scanning","ampersand","reference","ruleset","post","identifierWithPointTracking","getRules","parsed","toRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","defaultStylisPlugins","combine","ssrStyles","stylisPlugins","_insert","inserted","nodesToHydrate","attrib","currentSheet","finalizingPlugins","serializer","collection","middleware","serialized","shouldCache","registered","registerStyles","isStringTag","unitlessKeys","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","orphans","tabSize","widows","zIndex","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","memoize","arg","hyphenateRegex","animationRegex","isProcessableValue","processStyleName","processStyleValue","p1","p2","unitless","handleInterpolation","mergedProps","interpolation","__emotion_styles","anim","string","interpolated","_i","createStringFromObject","previousCursor","cached","labelPattern","serializeStyles","stringMode","strings","raw","identifierName","hashString","useInsertionEffectAlwaysWithSyncFallback","EmotionCacheContext","withEmotionCache","ThemeContext","typePropName","Insertion","insertStyles","Emotion","cssProp","css","WrappedComponent","registeredStyles","rawClassName","getRegisteredStyles","Emotion$1","argsLength","createElementArgArray","createEmotionProps","_taggedTemplateLiteral","freeze","round","createCoords","rectToClientRect","rect","bottom","getNodeName","_node$ownerDocument","getDocumentElement","Node","isHTMLElement","isShadowRoot","ShadowRoot","isOverflowElement","overflowX","overflowY","isWebKit","CSS","supports","isLastTraversableNode","getParentNode","getNearestOverflowAncestor","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","visualViewport","frameElement","getCssDimensions","hasOffset","shouldFallback","$","unwrapElement","contextElement","getScale","isFinite","noOffsets","getVisualOffsets","includeScale","isFixedStrategy","offsetParent","clientRect","scale","visualOffsets","isFixed","floatingOffsetParent","shouldAddVisualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","clientTop","paddingTop","autoUpdate","floating","ancestorScroll","ancestorResize","elementResize","layoutShift","referenceEl","ancestors","ancestor","cleanupIo","onMove","timeoutId","io","cleanup","_io","refresh","isFirstUpdate","handleObserve","intersectionRatio","observeMove","frameId","reobserveFrame","firstEntry","_resizeObserver","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","insertable","safeIsNaN","areInputsEqual","newInputs","lastInputs","second","resultFn","isEqual","memoized","newArgs","lastThis","lastArgs","lastResult","clear","subClass","superClass","Constructor","protoProps","staticProps","StateManagedSelect","baseSelectProps","_ref$defaultInputValu","defaultInputValue","_ref$defaultMenuIsOpe","defaultMenuIsOpen","_ref$defaultValue","propsInputValue","inputValue","propsMenuIsOpen","menuIsOpen","propsOnChange","onChange","propsOnInputChange","onInputChange","propsOnMenuClose","onMenuClose","propsOnMenuOpen","onMenuOpen","propsValue","restSelectProps","_useState2","stateInputValue","setStateInputValue","_useState4","stateMenuIsOpen","setStateMenuIsOpen","_useState6","stateValue","setStateValue","actionMeta","_objectSpread","useStateManager","Select","StateManagedSelect$1","innerRef","isMultiple","variant","selectedOption","setSelectedOption","display_name","mandatory","choices","choice","isMulti","menu","multiValue","singleValue","multiValueRemove","indicatorSeparator","option","isFocused","isSelected","TheForm","slug","colorMode","forms","find","setData","setErrors","firstActions","setFirstActions","validForm","setValidForm","initialErrors","initialFirstActions","fields","initData","selectOption","isValidForm","isGroup","groupKey","validate","validation","isError","_errors$key","valid","acceptCharset","renderFormField","span","group","onBlur","htmlFor","help","Dropdown","fetch","formPerma","credentials","headers","referer","thankYouMessage","AboutUs","Bio","don","skehel","ivana","borislav","greg","scrollPosition","setScrollPosition","_element$current","Step","stepRef","borderRef","useScrollPosition","background","mark","stepperRef","steps","subject","GetStarted","enter","sponsor","partner","judge","started","active","setActive","scrollIntoView","VerticalStepper","Mailto","TheJudgeClub","RayHarrison","HinaSharma","GaryJackson","ValerieHowe","JoMayes","PostSkeleton","role","xmlns","viewBox","extendStatics","__extends","__","__assign","__rest","__awaiter","thisArg","_arguments","P","generator","fulfilled","rejected","__generator","sent","trys","ops","verb","op","__spreadArray","pack","ar","SuppressedError","genericMessage","_a","proto","InvariantError","_super","framesToPop","condition","verbosityLevels","verbosityLevel","wrapConsoleMethod","debug","maybe","thunk","globalThis","global","prefixCounts","makeUniqueId","stringifyForDisplay","space","undefId","wrap","arg0","getHandledErrorMsg","getFallbackErrorMsg","originalInvariant","newInvariantError","optionalParams","ApolloErrorMessageHandler","messageArgs","__DEV__","isReactNative","product","canUseWeakMap","HermesInternal","canUseWeakSet","canUseSymbol","canUseAsyncIteratorSymbol","asyncIterator","usingJSDOM","canUseLayoutEffect","didWarnUncachedGetSnapshot","_b","fnToStr","Function","previousComparisons","equal","aTag","previouslyCompared","aKeys","definedKeys","bKeys","keyCount","aIterator","isMap","aKey","aValue","Uint8Array","byteLength","aCode","full","fromIndex","nativeCodeSuffix","isDefinedKey","bSet","compact","objects","mergeOptions","variables","contextKey","getApolloContext","isNonNullObject","PROTOCOL_ERRORS_SYMBOL","isApolloError","NetworkStatus","ApolloError","graphQLErrors","protocolErrors","clientErrors","networkError","errorMessage","extraInfo","generateErrorMessage","isNetworkRequestInFlight","networkStatus","defaultDispose","_WeakRef","WeakRef","deref","_WeakMap","_FinalizationRegistry","FinalizationRegistry","register","unregister","WeakCache","dispose","newest","oldest","unfinalizedNodes","finalizationScheduled","finalize","values","keyRef","registry","deleteNode","getNode","older","newer","scheduleFinalization","clean","StrongCache","scheduledCleanup","schedule","AutoCleanedWeakCache","AutoCleanedStrongCache","cacheSizeSymbol","cacheSizes","globalCaches","registerGlobalCache","getSize","DocumentType","getApolloClientMemoryInternals","limits","getCurrentCacheSizes","sizes","print","parser","canonicalStringify","_c","links","linkInfo","queryManager","getDocumentInfo","documentTransforms","transformInfo","documentTransform","_e","_d","getMemoryInternals","getInMemoryCacheMemoryInternals","fragments","_getApolloCacheMemoryInternals","addTypenameDocumentTransform","inMemoryCache","executeSelectionSet","getWrapperInformation","executeSubSelectedArray","maybeBroadcastWatch","fragmentRegistry","findFragmentSpreads","lookup","getApolloCacheMemoryInternals","fragmentQueryDocuments","isWrapper","isDefined","recurseTransformInfo","operationName","Query","Mutation","Subscription","kind","queries","subscriptions","definitions","operation","variableDefinitions","useApolloClient","override","client","resetCache","isNonEmptyArray","deepFreeze","workSet","isFrozen","shallowFreeze","maybeDeepFreeze","wrapperSymbol","lastWatchOptions","useQuery","query","useHook","clientOrObsQuery","wrappers","wrapper","wrapHook","useQuery_","renderPromises","isSyncSSR","disableNetworkFetches","ssrAllowed","ssr","partialRefetch","makeWatchQueryOptions","defaultOptions","onCompleted","otherOptions","observable","watchQueryOptions","fetchPolicy","initialFetchPolicy","getDefaultFetchPolicy","createMakeWatchQueryOptions","createInternalState","requiredOperationName","usedOperationName","verifyDocumentType","getSSRObservable","watchQuery","getObsQueryOptions","resultData","previousData","internalState","updateInternalState","onQueryExecuted","newInternalState","useInternalState","reobserve","useResubscribeIfNecessary","obsQueryFields","refetch","fetchMore","updateQuery","startPolling","stopPolling","subscribeToMore","bindObservableMethods","registerSSRObservable","getCurrentResult","addObservableQueryPromise","useRegisterSSRObservable","callbackRef","resultOverride","skipStandbyResult","ssrDisabledResult","currentResultOverride","toQueryResult","handleStoreChange","onNext","previousResult","setResult","subscription","unsubscribe","resubscribeAfterError","useObservableSubscriptionResult","useQueryInternals","queryHookOptions","toMerge","globalDefaults","nextResult","partial","unsafeHandlePartialRefetch","previousNetworkStatus","error_1","toApolloError","ready","handleErrorOrCompleted","queryHookDefaultOptions","clientDefaultOptions","resultWithoutPartial","called","LineRegExp","lastLineStart","matchAll","printSourceLocation","sourceLocation","firstLineColumnOffset","locationOffset","padStart","lineIndex","lineOffset","lineNum","columnOffset","columnNum","locationStr","locationLine","subLineIndex","subLineColumnNum","subLines","printPrefixedLines","subLine","existingLines","padLen","GraphQLError","_this$nodes","_nodeLocations$","rawArgs","positions","originalError","extensions","firstArg","toNormalizedOptions","undefinedIfEmpty","nodeLocations","loc","locations","originalExtensions","captureStackTrace","toJSON","formattedError","syntaxError","Location","startToken","endToken","Token","QueryDocumentKeys","Name","Document","OperationDefinition","VariableDefinition","Variable","SelectionSet","Field","Argument","FragmentSpread","InlineFragment","FragmentDefinition","IntValue","FloatValue","StringValue","BooleanValue","NullValue","EnumValue","ListValue","ObjectValue","ObjectField","Directive","NamedType","ListType","NonNullType","SchemaDefinition","OperationTypeDefinition","ScalarTypeDefinition","ObjectTypeDefinition","FieldDefinition","InputValueDefinition","InterfaceTypeDefinition","UnionTypeDefinition","EnumTypeDefinition","EnumValueDefinition","InputObjectTypeDefinition","DirectiveDefinition","SchemaExtension","ScalarTypeExtension","ObjectTypeExtension","InterfaceTypeExtension","UnionTypeExtension","EnumTypeExtension","InputObjectTypeExtension","kindValues","maybeNode","maybeKind","OperationTypeNode","DirectiveLocation","Kind","TokenKind","isWhiteSpace","isDigit","isLetter","isNameStart","isNameContinue","dedentBlockStringLines","_firstNonEmptyLine2","commonIndent","MAX_SAFE_INTEGER","firstNonEmptyLine","lastNonEmptyLine","_firstNonEmptyLine","indent","leadingWhitespace","Lexer","startOfFileToken","SOF","lastToken","lineStart","advance","lookahead","EOF","nextToken","readNextToken","isUnicodeScalarValue","isSupplementaryCodePoint","isLeadingSurrogate","isTrailingSurrogate","printCodePointAt","lexer","codePointAt","fromCodePoint","createToken","col","bodyLength","readComment","BANG","DOLLAR","AMP","PAREN_L","PAREN_R","SPREAD","COLON","EQUALS","AT","BRACKET_L","BRACKET_R","BRACE_L","PIPE","BRACE_R","readBlockString","readString","readNumber","readName","firstCode","isFloat","readDigits","FLOAT","INT","chunkStart","STRING","readEscapedUnicodeVariableWidth","readEscapedUnicodeFixedWidth","readEscapedCharacter","readHexDigit","read16BitHexCode","trailingCode","currentLine","blockLines","BLOCK_STRING","NAME","devAssert","MAX_ARRAY_LENGTH","MAX_RECURSIVE_DEPTH","inspect","formatValue","seenValues","previouslySeenValues","isJSONable","jsonValue","items","formatArray","getObjectTag","properties","formatObject","formatObjectValue","instanceOf","env","NODE_ENV","_value$constructor","stringifiedValue","Source","Parser","sourceObj","isSource","_lexer","_options","_tokenCounter","parseName","expectToken","parseDocument","DOCUMENT","many","parseDefinition","parseOperationDefinition","hasDescription","peekDescription","keywordToken","parseSchemaDefinition","parseScalarTypeDefinition","parseObjectTypeDefinition","parseInterfaceTypeDefinition","parseUnionTypeDefinition","parseEnumTypeDefinition","parseInputObjectTypeDefinition","parseDirectiveDefinition","parseFragmentDefinition","parseTypeSystemExtension","unexpected","OPERATION_DEFINITION","QUERY","directives","selectionSet","parseSelectionSet","parseOperationType","parseVariableDefinitions","parseDirectives","operationToken","MUTATION","SUBSCRIPTION","optionalMany","parseVariableDefinition","VARIABLE_DEFINITION","parseVariable","parseTypeReference","expectOptionalToken","parseConstValueLiteral","parseConstDirectives","VARIABLE","SELECTION_SET","selections","parseSelection","parseFragment","parseField","nameOrAlias","alias","FIELD","parseArguments","isConst","parseConstArgument","parseArgument","ARGUMENT","parseValueLiteral","hasTypeCondition","expectOptionalKeyword","FRAGMENT_SPREAD","parseFragmentName","INLINE_FRAGMENT","typeCondition","parseNamedType","expectKeyword","allowLegacyFragmentVariables","FRAGMENT_DEFINITION","parseList","parseObject","advanceLexer","parseStringLiteral","BOOLEAN","NULL","ENUM","block","LIST","any","OBJECT","parseObjectField","OBJECT_FIELD","parseDirective","DIRECTIVE","LIST_TYPE","NON_NULL_TYPE","NAMED_TYPE","parseDescription","operationTypes","parseOperationTypeDefinition","SCHEMA_DEFINITION","OPERATION_TYPE_DEFINITION","SCALAR_TYPE_DEFINITION","interfaces","parseImplementsInterfaces","parseFieldsDefinition","OBJECT_TYPE_DEFINITION","delimitedMany","parseFieldDefinition","parseArgumentDefs","FIELD_DEFINITION","parseInputValueDef","INPUT_VALUE_DEFINITION","INTERFACE_TYPE_DEFINITION","types","parseUnionMemberTypes","UNION_TYPE_DEFINITION","parseEnumValuesDefinition","ENUM_TYPE_DEFINITION","parseEnumValueDefinition","parseEnumValueName","ENUM_VALUE_DEFINITION","getTokenDesc","parseInputFieldsDefinition","INPUT_OBJECT_TYPE_DEFINITION","parseSchemaExtension","parseScalarTypeExtension","parseObjectTypeExtension","parseInterfaceTypeExtension","parseUnionTypeExtension","parseEnumTypeExtension","parseInputObjectTypeExtension","SCHEMA_EXTENSION","SCALAR_TYPE_EXTENSION","OBJECT_TYPE_EXTENSION","INTERFACE_TYPE_EXTENSION","UNION_TYPE_EXTENSION","ENUM_TYPE_EXTENSION","INPUT_OBJECT_TYPE_EXTENSION","repeatable","parseDirectiveLocations","DIRECTIVE_DEFINITION","parseDirectiveLocation","noLocation","getTokenKindDesc","atToken","openKind","parseFn","closeKind","delimiterKind","maxTokens","isPunctuatorTokenKind","docCache","fragmentSourceMap","printFragmentWarnings","experimentalFragmentVariables","processFragments","ast","seenKeys","fragmentDefinition","fragmentName","sourceKey","substring","sourceKeySet","cacheKey","stripLoc","gql","literals","gql_1","extras","resetCaches","disableFragmentWarnings","enableExperimentalFragmentVariables","disableExperimentalFragmentVariables","_templateObject","GET_POSTS","_templateObject2","GET_POSTS_BY_CATEGORY_WITH_PAGING","_templateObject3","_templateObject4","GET_POST_BY_SLUG","_templateObject5","FILTER_EVENTS","_templateObject6","GET_REGIONS","_templateObject7","_templateObject8","GET_TOPICS","_templateObject9","GET_EVENTTYPES","_templateObject10","TopStories","_data$posts2","_data$posts2$pageInfo","after","notifyOnNetworkStatusChange","posts","edges","edge","_post$featuredImage","_post$featuredImage$n","featuredImage","sourceUrl","_post$featuredImage2","_post$featuredImage2$","pageInfo","hasNextPage","loadMore","_data$posts","_data$posts$pageInfo","endCursor","prevResult","fetchMoreResult","Spinner","deserialize","deserializer","out","unpair","BigInt","EMPTY","asString","shouldSkip","TYPE","json","lossy","strict","pair","toISOString","structuredClone","Schema","normal","merge","Info","attribute","boolean","booleanish","overloadedBoolean","commaSeparated","spaceSeparated","commaOrSpaceSeparated","mustUseProperty","defined","powers","checks","DefinedInfo","mask","own","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","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","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","html","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","accessKey","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","autoCapitalize","autoComplete","autoPlay","blocking","cite","colSpan","controls","controlsList","coords","dateTime","decoding","defer","dirName","download","draggable","enterKeyHint","formNoValidate","hidden","high","inert","inputMode","itemId","itemRef","itemScope","itemType","lang","language","low","manifest","maxLength","minLength","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","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","open","optimum","ping","placeholder","playsInline","popoverTarget","popoverTargetAction","poster","readOnly","reversed","rowSpan","sandbox","scoped","seamless","shadowRootDelegatesFocus","shadowRootMode","shape","spellCheck","srcDoc","srcLang","tabIndex","typeMustMatch","useMap","align","aLink","archive","bgColor","border","borderColor","bottomMargin","cellPadding","cellSpacing","charOff","classId","codeBase","codeType","declare","face","frameBorder","hSpace","leftMargin","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","profile","prompt","rev","rightMargin","scheme","scrolling","standby","summary","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","results","security","unselectable","svg","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillRule","floodColor","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontVariant","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","textAnchor","textDecoration","textRendering","transformOrigin","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cx","cy","defaultAction","descent","diffuseConstant","dur","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","filterRes","filterUnits","focusable","focusHighlight","format","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","operator","orient","orientation","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","rotate","rx","ry","seed","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","unicode","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","zoomAndPan","htmlBase","svgBase","tokens","settings","padRight","padLeft","dash","cap","schema","Type","camelcase","dashes","kebab","$0","buttonTypes","createH","defaultTagName","adjust","createAdjustMap","subvalue","parseSelector","isProperties","addProperty","addChild","spaces","commas","parsePrimitive","finalResult","webNamespaces","mathml","fromParse5","tree","one","file","verbose","patch","quirksMode","indices","toPoint","toOffset","attrs","sourceCodeLocation","startTag","endTag","opening","closing","startLine","startCol","endLine","endCol","endOffset","zwitch","invalid","handlers","unknown","parameters","emptyOptions","parentSchema","currentSchema","createProperty","doctype","publicId","systemId","htmlVoidElements","UNDEFINED_CODE_POINTS","REPLACEMENT_CHARACTER","CODE_POINTS","SEQUENCES","isSurrogate","cp","isControlCodePoint","isUndefinedCodePoint","ERR","Preprocessor","lastGapPos","gapStack","skipNextNewLine","lastChunkWritten","endOfChunkHit","bufferWaterline","isEol","lineStartPos","droppedBufferSize","lastErrOffset","getError","_err","onParseError","_addGap","_processSurrogate","nextCp","isSurrogatePair","surrogateInInputStream","willDropParsedChunk","dropParsedChunk","write","chunk","isLastChunk","insertHtmlAtCurrentPos","CARRIAGE_RETURN","LINE_FEED","_checkForProblematicCharacters","controlCharacterInInputStream","noncharacterInInputStream","retreat","TokenType","getTokenAttr","attrName","Uint16Array","decodeMap","codePoint","replaceCodePoint","CharCodes","BinTrieFlags","EntityDecoderState","DecodingMode","isNumber","ZERO","NINE","isHexadecimalCharacter","UPPER_A","UPPER_F","LOWER_A","LOWER_F","isEntityInAttributeInvalidEnd","UPPER_Z","LOWER_Z","isAsciiAlphaNumeric","EntityDecoder","decodeTree","emitCodePoint","EntityStart","consumed","treeIndex","excess","decodeMode","Strict","startEntity","NUM","NumericStart","stateNumericStart","NamedEntity","stateNamedEntity","NumericDecimal","stateNumericDecimal","NumericHex","stateNumericHex","LOWER_X","addToNumericResult","digitCount","startIdx","emitNumericEntity","lastCp","expectedLength","absenceOfDigitsInNumericCharacterReference","SEMI","missingSemicolonAfterCharacterReference","validateNumericCharacterReference","valueLength","VALUE_LENGTH","determineBranch","Attribute","emitNotTerminatedNamedEntity","emitNamedEntityData","getDecoder","decoder","nodeIdx","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","lo","hi","mid","midVal","htmlDecodeTree","xmlDecodeTree","NS","ATTRS","DOCUMENT_MODE","TAG_NAMES","TAG_ID","TAG_NAME_TO_ID","ADDRESS","ANNOTATION_XML","APPLET","AREA","ARTICLE","ASIDE","B","BASE","BASEFONT","BGSOUND","BIG","BLOCKQUOTE","BODY","BR","BUTTON","CAPTION","CENTER","CODE","COL","COLGROUP","DD","DESC","DETAILS","DIALOG","DIR","DIV","DL","DT","EM","EMBED","FIELDSET","FIGCAPTION","FIGURE","FONT","FOOTER","FOREIGN_OBJECT","FORM","FRAME","FRAMESET","H1","H2","H3","H4","H5","H6","HEAD","HEADER","HGROUP","HR","HTML","I","IMG","IMAGE","INPUT","IFRAME","KEYGEN","LABEL","LI","LINK","LISTING","MAIN","MALIGNMARK","MARQUEE","MATH","MENU","META","MGLYPH","MI","MO","MN","MTEXT","NAV","NOBR","NOFRAMES","NOEMBED","NOSCRIPT","OL","OPTGROUP","OPTION","PARAM","PLAINTEXT","PRE","RB","RP","RT","RTC","RUBY","SCRIPT","SECTION","SELECT","SOURCE","SMALL","SPAN","STRIKE","STRONG","STYLE","SUB","SUMMARY","SUP","TABLE","TBODY","TEMPLATE","TEXTAREA","TFOOT","TD","TH","THEAD","TITLE","TR","TRACK","TT","U","UL","SVG","VAR","WBR","XMP","getTagID","UNKNOWN","SPECIAL_ELEMENTS","MATHML","XLINK","XML","XMLNS","isNumberedHeader","tn","C1_CONTROLS_REFERENCE_REPLACEMENTS","State","TokenizerMode","DATA","RCDATA","RAWTEXT","SCRIPT_DATA","CDATA_SECTION","isAsciiDigit","DIGIT_0","DIGIT_9","isAsciiUpper","LATIN_CAPITAL_A","LATIN_CAPITAL_Z","isAsciiLetter","LATIN_SMALL_A","LATIN_SMALL_Z","isAsciiLower","isAsciiUpperHexDigit","LATIN_CAPITAL_F","isAsciiLowerHexDigit","LATIN_SMALL_F","toAsciiLower","isWhitespace","SPACE","TABULATION","FORM_FEED","isScriptDataDoubleEscapeSequenceEnd","SOLIDUS","GREATER_THAN_SIGN","Tokenizer","inLoop","inForeignNode","lastStartTagName","returnState","charRefCode","consumedAfterSnapshot","currentCharacterToken","currentToken","currentAttr","preprocessor","currentLocation","getCurrentLocation","sourceCodeLocationInfo","_runParsingLoop","_consume","_ensureHibernation","_callState","writeCallback","_unconsume","_reconsumeInState","_advanceBy","_consumeSequenceIfMatch","_createStartTagToken","START_TAG","tagID","selfClosing","ackSelfClosing","_createEndTagToken","END_TAG","_createCommentToken","_createDoctypeToken","initialName","DOCTYPE","forceQuirks","_createCharacterToken","chars","_createAttr","attrNameFirstCh","_leaveAttrName","_leaveAttrValue","duplicateAttribute","prepareToken","ct","_emitCurrentCharacterToken","emitCurrentTagToken","onStartTag","endTagWithAttributes","endTagWithTrailingSolidus","onEndTag","emitCurrentComment","onComment","emitCurrentDoctype","onDoctype","nextLocation","CHARACTER","onCharacter","NULL_CHARACTER","onNullCharacter","WHITESPACE_CHARACTER","onWhitespaceCharacter","_emitEOFToken","onEof","_appendCharToCurrentCharacterToken","_emitCodePoint","_emitChars","_matchNamedCharacterReference","withoutSemicolon","masked","SEMICOLON","_isCharacterReferenceInAttribute","EQUALS_SIGN","AMPERSAND","ATTRIBUTE_VALUE_DOUBLE_QUOTED","ATTRIBUTE_VALUE_SINGLE_QUOTED","ATTRIBUTE_VALUE_UNQUOTED","_flushCodePointConsumedAsCharacterReference","_stateData","_stateRcdata","_stateRawtext","_stateScriptData","_statePlaintext","TAG_OPEN","_stateTagOpen","END_TAG_OPEN","_stateEndTagOpen","TAG_NAME","_stateTagName","RCDATA_LESS_THAN_SIGN","_stateRcdataLessThanSign","RCDATA_END_TAG_OPEN","_stateRcdataEndTagOpen","RCDATA_END_TAG_NAME","_stateRcdataEndTagName","RAWTEXT_LESS_THAN_SIGN","_stateRawtextLessThanSign","RAWTEXT_END_TAG_OPEN","_stateRawtextEndTagOpen","RAWTEXT_END_TAG_NAME","_stateRawtextEndTagName","SCRIPT_DATA_LESS_THAN_SIGN","_stateScriptDataLessThanSign","SCRIPT_DATA_END_TAG_OPEN","_stateScriptDataEndTagOpen","SCRIPT_DATA_END_TAG_NAME","_stateScriptDataEndTagName","SCRIPT_DATA_ESCAPE_START","_stateScriptDataEscapeStart","SCRIPT_DATA_ESCAPE_START_DASH","_stateScriptDataEscapeStartDash","SCRIPT_DATA_ESCAPED","_stateScriptDataEscaped","SCRIPT_DATA_ESCAPED_DASH","_stateScriptDataEscapedDash","SCRIPT_DATA_ESCAPED_DASH_DASH","_stateScriptDataEscapedDashDash","SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN","_stateScriptDataEscapedLessThanSign","SCRIPT_DATA_ESCAPED_END_TAG_OPEN","_stateScriptDataEscapedEndTagOpen","SCRIPT_DATA_ESCAPED_END_TAG_NAME","_stateScriptDataEscapedEndTagName","SCRIPT_DATA_DOUBLE_ESCAPE_START","_stateScriptDataDoubleEscapeStart","SCRIPT_DATA_DOUBLE_ESCAPED","_stateScriptDataDoubleEscaped","SCRIPT_DATA_DOUBLE_ESCAPED_DASH","_stateScriptDataDoubleEscapedDash","SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH","_stateScriptDataDoubleEscapedDashDash","SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN","_stateScriptDataDoubleEscapedLessThanSign","SCRIPT_DATA_DOUBLE_ESCAPE_END","_stateScriptDataDoubleEscapeEnd","BEFORE_ATTRIBUTE_NAME","_stateBeforeAttributeName","ATTRIBUTE_NAME","_stateAttributeName","AFTER_ATTRIBUTE_NAME","_stateAfterAttributeName","BEFORE_ATTRIBUTE_VALUE","_stateBeforeAttributeValue","_stateAttributeValueDoubleQuoted","_stateAttributeValueSingleQuoted","_stateAttributeValueUnquoted","AFTER_ATTRIBUTE_VALUE_QUOTED","_stateAfterAttributeValueQuoted","SELF_CLOSING_START_TAG","_stateSelfClosingStartTag","BOGUS_COMMENT","_stateBogusComment","MARKUP_DECLARATION_OPEN","_stateMarkupDeclarationOpen","COMMENT_START","_stateCommentStart","COMMENT_START_DASH","_stateCommentStartDash","_stateComment","COMMENT_LESS_THAN_SIGN","_stateCommentLessThanSign","COMMENT_LESS_THAN_SIGN_BANG","_stateCommentLessThanSignBang","COMMENT_LESS_THAN_SIGN_BANG_DASH","_stateCommentLessThanSignBangDash","COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH","_stateCommentLessThanSignBangDashDash","COMMENT_END_DASH","_stateCommentEndDash","COMMENT_END","_stateCommentEnd","COMMENT_END_BANG","_stateCommentEndBang","_stateDoctype","BEFORE_DOCTYPE_NAME","_stateBeforeDoctypeName","DOCTYPE_NAME","_stateDoctypeName","AFTER_DOCTYPE_NAME","_stateAfterDoctypeName","AFTER_DOCTYPE_PUBLIC_KEYWORD","_stateAfterDoctypePublicKeyword","BEFORE_DOCTYPE_PUBLIC_IDENTIFIER","_stateBeforeDoctypePublicIdentifier","DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED","_stateDoctypePublicIdentifierDoubleQuoted","DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED","_stateDoctypePublicIdentifierSingleQuoted","AFTER_DOCTYPE_PUBLIC_IDENTIFIER","_stateAfterDoctypePublicIdentifier","BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS","_stateBetweenDoctypePublicAndSystemIdentifiers","AFTER_DOCTYPE_SYSTEM_KEYWORD","_stateAfterDoctypeSystemKeyword","BEFORE_DOCTYPE_SYSTEM_IDENTIFIER","_stateBeforeDoctypeSystemIdentifier","DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED","_stateDoctypeSystemIdentifierDoubleQuoted","DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED","_stateDoctypeSystemIdentifierSingleQuoted","AFTER_DOCTYPE_SYSTEM_IDENTIFIER","_stateAfterDoctypeSystemIdentifier","BOGUS_DOCTYPE","_stateBogusDoctype","_stateCdataSection","CDATA_SECTION_BRACKET","_stateCdataSectionBracket","CDATA_SECTION_END","_stateCdataSectionEnd","CHARACTER_REFERENCE","_stateCharacterReference","NAMED_CHARACTER_REFERENCE","_stateNamedCharacterReference","AMBIGUOUS_AMPERSAND","_stateAmbiguousAmpersand","NUMERIC_CHARACTER_REFERENCE","_stateNumericCharacterReference","HEXADEMICAL_CHARACTER_REFERENCE_START","_stateHexademicalCharacterReferenceStart","HEXADEMICAL_CHARACTER_REFERENCE","_stateHexademicalCharacterReference","DECIMAL_CHARACTER_REFERENCE","_stateDecimalCharacterReference","NUMERIC_CHARACTER_REFERENCE_END","_stateNumericCharacterReferenceEnd","LESS_THAN_SIGN","unexpectedNullCharacter","EXCLAMATION_MARK","QUESTION_MARK","unexpectedQuestionMarkInsteadOfTagName","eofBeforeTagName","invalidFirstCharacterOfTagName","missingEndTagName","eofInTag","handleSpecialEndTag","_cp","HYPHEN_MINUS","eofInScriptHtmlCommentLikeText","$$","unexpectedEqualsSignBeforeAttributeName","QUOTATION_MARK","APOSTROPHE","unexpectedCharacterInAttributeName","missingAttributeValue","GRAVE_ACCENT","unexpectedCharacterInUnquotedAttributeValue","missingWhitespaceBetweenAttributes","unexpectedSolidusInTag","cdataInHtmlContent","incorrectlyOpenedComment","abruptClosingOfEmptyComment","eofInComment","nestedComment","incorrectlyClosedComment","eofInDoctype","missingWhitespaceBeforeDoctypeName","missingDoctypeName","invalidCharacterSequenceAfterDoctypeName","missingWhitespaceAfterDoctypePublicKeyword","missingDoctypePublicIdentifier","missingQuoteBeforeDoctypePublicIdentifier","abruptDoctypePublicIdentifier","missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers","missingQuoteBeforeDoctypeSystemIdentifier","missingWhitespaceAfterDoctypeSystemKeyword","missingDoctypeSystemIdentifier","abruptDoctypeSystemIdentifier","unexpectedCharacterAfterDoctypeSystemIdentifier","RIGHT_SQUARE_BRACKET","eofInCdata","NUMBER_SIGN","matchResult","unknownNamedCharacterReference","LATIN_SMALL_X","LATIN_CAPITAL_X","isAsciiHexDigit","nullCharacterReference","characterReferenceOutsideUnicodeRange","surrogateCharacterReference","noncharacterCharacterReference","controlCharacterReference","IMPLICIT_END_TAG_REQUIRED","IMPLICIT_END_TAG_REQUIRED_THOROUGHLY","SCOPING_ELEMENT_NS","NAMED_HEADERS","TABLE_ROW_CONTEXT","TABLE_BODY_CONTEXT","TABLE_CONTEXT","TABLE_CELLS","OpenElementStack","currentTmplContentOrNode","_isInTemplate","treeAdapter","getTemplateContent","tagIDs","stackTop","tmplCount","currentTagId","_indexOf","getNamespaceURI","_updateCurrentElement","onItemPush","popped","onItemPop","newElement","insertAfter","referenceElement","newElementID","insertionIdx","popUntilTagNamePopped","targetIdx","shortenToLength","popUntilElementPopped","popUntilPopped","tagNames","targetNS","_indexOfTagNames","popUntilNumberedHeaderPopped","popUntilTableCellPopped","popAllUpToHtmlElement","clearBackTo","clearBackToTableContext","clearBackToTableBodyContext","clearBackToTableRowContext","tryPeekProperlyNestedBodyElement","getCommonAncestor","elementIdx","isRootHtmlElementCurrent","hasInScope","hasNumberedHeaderInScope","hasInListItemScope","hasInButtonScope","hasInTableScope","hasTableBodyContextInTableScope","hasInSelectScope","generateImpliedEndTags","generateImpliedEndTagsThoroughly","generateImpliedEndTagsWithExclusion","exclusionId","EntryType","MARKER","Marker","FormattingElementList","bookmark","_getNoahArkConditionCandidates","neAttrs","candidates","neAttrsLength","neTagName","getTagName","neNamespaceURI","elementAttrs","getAttrList","_ensureNoahArkCondition","neAttrsMap","neAttr","validCandidates","candidate","cAttr","insertMarker","pushElement","insertElementAfterBookmark","bookmarkIdx","removeEntry","entryIndex","clearToLastMarker","markerIdx","getElementEntryInScopeWithTagName","getElementEntry","defaultTreeAdapter","createDocument","NO_QUIRKS","createDocumentFragment","createCommentNode","newNode","referenceNode","setTemplateContent","templateElement","contentElement","setDocumentType","doctypeNode","setDocumentMode","getDocumentMode","detachNode","insertText","prevNode","isTextNode","insertTextBefore","adoptAttributes","recipient","recipientAttrsMap","attr","getFirstChild","getChildNodes","getTextNodeContent","textNode","getCommentNodeContent","commentNode","getDocumentTypeNodeName","getDocumentTypeNodePublicId","getDocumentTypeNodeSystemId","isCommentNode","isDocumentTypeNode","isElementNode","setNodeSourceCodeLocation","getNodeSourceCodeLocation","updateNodeSourceCodeLocation","endLocation","VALID_DOCTYPE_NAME","VALID_SYSTEM_ID","QUIRKS_MODE_SYSTEM_ID","QUIRKS_MODE_PUBLIC_ID_PREFIXES","QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES","QUIRKS_MODE_PUBLIC_IDS","LIMITED_QUIRKS_PUBLIC_ID_PREFIXES","LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES","hasPrefix","MIME_TYPES","TEXT_HTML","APPLICATION_XML","DEFINITION_URL_ATTR","ADJUSTED_DEFINITION_URL_ATTR","SVG_ATTRS_ADJUSTMENT_MAP","XML_ATTRS_ADJUSTMENT_MAP","SVG_TAG_NAMES_ADJUSTMENT_MAP","EXITS_FOREIGN_CONTENT","adjustTokenMathMLAttrs","adjustTokenSVGAttrs","adjustedAttrName","adjustTokenXMLAttrs","adjustedAttrEntry","isIntegrationPoint","foreignNS","ENCODING","isHtmlIntegrationPoint","isMathMLTextIntegrationPoint","HIDDEN_INPUT_TYPE","AA_OUTER_LOOP_ITER","AA_INNER_LOOP_ITER","InsertionMode","BASE_LOC","TABLE_STRUCTURE_TAGS","defaultParserOptions","scriptingEnabled","fragmentContext","scriptHandler","stopped","insertionMode","INITIAL","originalInsertionMode","headElement","formElement","currentNotInHTML","tmplInsertionModeStack","pendingCharacterTokens","hasNonWhitespacePendingCharacterToken","framesetOk","fosterParentingEnabled","tokenizer","activeFormattingElements","fragmentContextID","_setContextModes","openElements","getFragmentParser","opts","TN","documentMock","IN_TEMPLATE","_initTokenizerForFragmentParsing","_insertFakeRootElement","_resetInsertionMode","_findFormInFragmentContext","getFragment","rootElement","_adoptNodes","beforeToken","tid","isTop","_setEndLocation","isHTML","_isIntegrationPoint","_switchToTextParsing","nextTokenizerState","_insertElement","TEXT","switchToPlaintextParsing","IN_BODY","_getAdjustedCurrentElement","_setDocumentType","docTypeNode","_attachElementToTree","_shouldFosterParentOnInsertion","_fosterParentElement","_appendElement","_insertFakeElement","_insertTemplate","tmpl","_appendCommentNode","_insertCharacters","beforeElement","_findFosterParentingLocation","textNodeIdx","donor","closingToken","ctLoc","endLoc","shouldProcessStartTagTokenInForeignContent","_processToken","_processStartTag","foreignContent","_reconstructActiveFormattingElements","listLength","_closeTableCell","IN_ROW","_closePElement","IN_TABLE_BODY","IN_CAPTION","IN_COLUMN_GROUP","IN_TABLE","IN_FRAMESET","_resetInsertionModeForSelect","AFTER_HEAD","BEFORE_HEAD","IN_CELL","IN_HEAD","selectIdx","IN_SELECT_IN_TABLE","IN_SELECT","_isElementCausesFosterParenting","openElement","_isSpecialElement","characterInForeignContent","tokenInInitialMode","BEFORE_HTML","tokenBeforeHtml","tokenBeforeHead","tokenInHead","IN_HEAD_NO_SCRIPT","tokenInHeadNoScript","tokenAfterHead","characterInBody","characterInTable","IN_TABLE_TEXT","characterInTableText","tokenInColumnGroup","AFTER_BODY","tokenAfterBody","AFTER_AFTER_BODY","tokenAfterAfterBody","nullCharacterInForeignContent","appendComment","AFTER_FRAMESET","tokenInTableText","appendCommentToRootHtmlElement","AFTER_AFTER_FRAMESET","appendCommentToDocument","QUIRKS","LIMITED_QUIRKS","nonConformingDoctype","doctypeInInitialMode","misplacedDoctype","nonVoidHtmlElementStartTagWithTrailingSolidus","startTagToken","isFontWithAttrs","COLOR","SIZE","FACE","popUntilHtmlOrIntegrationPoint","_startTagOutsideForeignContent","currentNs","adjustedTagName","startTagInForeignContent","startTagBeforeHtml","startTagInBody","startTagBeforeHead","startTagInHead","nestedNoscriptInHead","startTagInHeadNoScript","abandonedHeadElementChild","misplacedStartTagForHeadElement","startTagAfterHead","startTagInTable","TABLE_VOID_ELEMENTS","startTagInCaption","startTagInColumnGroup","startTagInTableBody","startTagInRow","startTagInCell","startTagInSelect","startTagInSelectInTable","startTagInTemplate","startTagAfterBody","startTagInFrameset","startTagAfterFrameset","startTagAfterAfterBody","startTagAfterAfterFrameset","_endTagOutsideForeignContent","endTagInForeignContent","endTagBeforeHtml","endTagWithoutMatchingOpenElement","endTagBeforeHead","templateEndTagInHead","endTagInHead","endTagInHeadNoScript","endTagAfterHead","endTagInBody","endTagInText","endTagInTable","endTagInCaption","endTagInColumnGroup","endTagInTableBody","endTagInRow","endTagInCell","endTagInSelect","endTagInSelectInTable","endTagInTemplate","endTagAfterBody","endTagInFrameset","endTagAfterFrameset","eofInBody","eofInElementThatCanContainOnlyText","eofInText","eofInTemplate","stopParsing","whitespaceCharacterInBody","whitespaceCharacterInTableText","aaObtainFormattingElementEntry","formattingElementEntry","genericEndTagInBody","aaObtainFurthestBlock","furthestBlock","aaInnerLoop","formattingElement","lastElement","nextElement","elementEntry","counterOverflow","aaRecreateElementFromEntry","aaInsertLastNodeInCommonAncestor","commonAncestor","aaReplaceFormattingElement","callAdoptionAgency","htmlElement","htmlLocation","bodyElement","bodyLocation","missingDoctype","closingOfElementWithOpenChildElements","errCode","openElementsLeftAfterEof","disallowedContentInNoscriptInHead","modeInBody","areaStartTagInBody","isHiddenInput","inputType","noembedStartTagInBody","genericStartTagInBody","bStartTagInBody","activeElementEntry","aStartTagInBody","numberedHeaderStartTagInBody","addressStartTagInBody","elementId","listItemStartTagInBody","hrStartTagInBody","rbStartTagInBody","rtStartTagInBody","preStartTagInBody","xmpStartTagInBody","svgStartTagInBody","htmlStartTagInBody","bodyStartTagInBody","inTemplate","formStartTagInBody","nobrStartTagInBody","mathStartTagInBody","tableStartTagInBody","inputStartTagInBody","paramStartTagInBody","imageStartTagInBody","buttonStartTagInBody","appletStartTagInBody","iframeStartTagInBody","selectStartTagInBody","optgroupStartTagInBody","framesetStartTagInBody","textareaStartTagInBody","plaintextStartTagInBody","pEndTagInBody","addressEndTagInBody","liEndTagInBody","ddEndTagInBody","numberedHeaderEndTagInBody","brEndTagInBody","bodyEndTagInBody","htmlEndTagInBody","formEndTagInBody","appletEndTagInBody","tokenInTable","tdStartTagInTable","colStartTagInTable","formStartTagInTable","tableStartTagInTable","tbodyStartTagInTable","inputStartTagInTable","captionStartTagInTable","colgroupStartTagInTable","savedFosterParentingState","xmlCodeMap","getEscaper","regex","lastIdx","pointEnd","pointStart","convert","ok","castFactory","tests","anyFactory","checkAsRecord","nodeAsRecord","propsFactory","typeFactory","testFunction","looksLikeANode","empty","CONTINUE","EXIT","SKIP","visitParents","visitor","factory","visit","subresult","grandparents","toResult","nodeAsParent","testOrVisitor","visitorOrReverse","maybeReverse","knownMdxNames","parseOptions","handleRaw","stitches","resetTokenizer","stitch","toParse5","createParse5Location","cloneWithoutChildren","fakeRoot","setPoint","node_","passThrough","extra","rehypeRaw","nameRe","nameReJsx","hastToReact","StyleToObject","stringifyPosition","VFileMessage","causeOrReason","optionsOrParentOrPlace","legacyCause","place","ruleId","fatal","actual","expected","note","emptyMap","dashSomething","tableElements","tableCellElement","docs","toJsxRuntime","filePath","development","jsxDEV","isStaticChildren","columnNumber","fileName","lineNumber","developmentCreate","productionCreate","components","elementAttributeNameCase","evaluater","createEvaluater","ignoreInvalidStyle","passKeys","passNode","stylePropertyNameCase","tableCellAlignToStyle","findComponentFromName","alignValue","createElementProps","createChildren","thing","addNode","addChildren","estree","expression","evaluateExpression","crashEstree","mdxExpression","objectExpression","argument","createJsxElementProps","mdxJsxElement","evaluateProgram","mdxEsm","countsByName","styleToObject","replacer","toCamel","parseStyle","domCasing","cssCasing","transformStyleToCssCasing","transformStylesToCssCasing","allowExpression","identifiers","isIdentifierName","computed","optional","toDash","$1","urlAttributes","icon","includeImageAlt","includeHtml","subtokenize","jumps","otherIndex","otherEvent","subevents","more","_tokenizer","_isInFirstContentOfListItem","contentType","subcontent","_container","eventIndex","startPositions","childEvents","gaps","stream","breaks","sliceStream","defineSkip","_gfmTasklistFirstContentOfListItem","syntaxExtension","extension","constructs","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","factorySpace","effects","limit","POSITIVE_INFINITY","consume","exit","tokenize","contentStart","attempt","contentInitial","childFlow","childToken","lineStartOffset","continued","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","containerContinue","flow","flowContinue","writeToChild","eof","seen","nok","null","blankLine","chunkInside","contentEnd","continuationConstruct","contentContinue","prefixed","sliceSerialize","flowInitial","afterConstruct","resolver","resolveAll","createResolver","initializeFactory","notText","atBreak","resolveAllLineSuffixes","extraResolver","chunks","tabs","bufferIndex","_index","_bufferIndex","createTokenizer","initialize","columnStart","resolveAllConstructs","accountForPotentialSkip","constructFactory","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","main","expectedCode","startBufferIndex","endBufferIndex","sliceChunks","chunkIndex","restore","onreturn","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleMapOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","store","thematicBreak","marker","sequence","initialSize","atMarker","inside","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","notBlank","furtherBlankLines","notInCurrentItem","indentConstruct","blockQuote","contBefore","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","factoryWhitespace","normalizeIdentifier","labelAfter","markerAfter","destinationBefore","destinationAfter","titleBefore","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","codeIndented","afterPrefix","furtherStart","headingAtx","sequenceOpen","sequenceFurther","setextUnderline","paragraph","heading","htmlBlockNames","htmlRawNames","htmlFlow","closingTag","buffer","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","decodeNamedCharacterReference","characterReference","numeric","characterEscape","lineEnding","labelEnd","labelStart","_balanced","_inactive","labelEndNok","resourceConstruct","labelEndOk","referenceFullConstruct","referenceNotFull","referenceCollapsedConstruct","close","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","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelStartLink","hardBreakEscape","codeText","between","tailExitIndex","headEnterIndex","resolveText","combineExtensions","defaultConstructs","decodeNumericCharacterReference","characterEscapeOrReference","decode","$2","hex","fromMarkdown","encoding","transforms","canContainEols","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreak","hardBreakTrailing","htmlFlowData","htmlTextData","listItem","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","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","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","configure","mdastExtensions","tokenStack","listStack","prepareList","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","_spread","and","errorHandler","onExitError","expectingFirstListItemValue","flowCodeInside","setextHeadingSlurpLineEnding","atHardBreak","inReference","referenceType","decodeString","characterReferenceType","ordered","spread","compiler","postprocess","atCarriageReturn","endPosition","TextDecoder","preprocess","combined","remarkParse","normalizeUri","defaultFootnoteBackContent","rereferenceIndex","defaultFootnoteBackLabel","referenceIndex","revert","subtype","contents","listItemLoose","tab","trimLines","trimLine","blockquote","applyData","break","footnoteReference","clobberPrefix","safeId","footnoteOrder","counter","reuseCounter","footnoteCounts","dataFootnoteRef","sup","allowDangerousHtml","imageReference","definitionById","inlineCode","linkReference","loose","listLoose","table","firstRow","tableContent","tableCell","tableRow","cellIndex","cells","cell","toml","ignore","yaml","footnoteDefinition","hName","hChildren","hProperties","defaultUnknownHandler","trimMarkdownSpaceStart","toHast","footnoteById","defaultHandlers","shallow","unknownHandler","createState","foot","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","listItems","backReferences","counts","dataFootnoteBackref","tailTail","dataFootnotes","footer","remarkRehype","destination","hastTree","bail","trough","fns","pipeline","middlewareIndex","wrapped","_len3","_key3","fnExpectsCallback","_len4","_key4","middelware","ext","assertPath","seenNonSlash","firstNonSlashEnd","extIndex","dirname","unmatchedSlash","extname","startPart","startDot","preDotState","joined","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","normalizeString","sep","proc","cwd","isUrl","fileUrlOrPath","auth","urlToPath","third","getPathFromURLPosix","VFile","isUint8Array","messages","stored","assertNonEmpty","assertPart","stem","fail","CallableInstance","names","Processor","Compiler","attachers","freezeIndex","frozen","transformers","attacher","assertUnfrozen","transformer","realFile","vfile","assertParser","assertCompiler","executor","parseTree","realDone","compileTree","compileResult","processSync","assertDone","assertNode","outputTree","resultingTree","runSync","addPlugin","addList","addPreset","plugins","primary","currentPrimary","isPlainObj","unified","asyncName","looksLikeAVFile","emptyPlugins","emptyRemarkRehypeOptions","safeProtocol","deprecations","Markdown","allowedElements","allowElement","disallowedElements","rehypePlugins","remarkPlugins","remarkRehypeOptions","skipHtml","unwrapDisallowed","urlTransform","defaultUrlTransform","processor","deprecation","mdastTree","colon","questionMark","numberSign","excerpt","rounded","ReactMarkdown","TopStory","_data$post","_data$post$featuredIm","_data$post$featuredIm2","_data$post2","useParams","latest","category","seo","metaDesc","opengraphTitle","opengraphUrl","opengraphDescription","opengraphType","opengraphImage","flat","Top","SearchContext","SearchDispatchContext","SearchProvider","searchReducer","initalVariables","filtered","populateInitialVariables","region","isChecked","setIsChecked","handleChange","RegionsList","_data$regions","_data$regions$nodes","regions","Region","topic","TopicsList","_data$topics","_data$topics$nodes","topics","Topic","EventTypesList","_data$eventtypes","_data$eventtypes$node","eventtypes","EventType","tzlibZonesDB","Zulu","WET","Universal","UTC","UCT","Turkey","Singapore","ROK","ROC","Portugal","Poland","PST8PDT","PRC","Navajo","NZ","MST7MDT","MST","MET","Libya","Kwajalein","Japan","Jamaica","Israel","Iran","Iceland","Hongkong","HST","Greenwich","GMT0","GMT","GB","Eire","Egypt","EST5EDT","EST","EET","Cuba","CST6CDT","CET","US","Samoa","Pacific","Mountain","Michigan","Hawaii","Eastern","Central","Arizona","Aleutian","Alaska","Yap","Wallis","Wake","Truk","Tongatapu","Tarawa","Tahiti","Saipan","Rarotonga","Port_Moresby","Ponape","Pohnpei","Pitcairn","Palau","Pago_Pago","Noumea","Norfolk","Niue","Nauru","Midway","Marquesas","Majuro","Kosrae","Kiritimati","Kanton","Johnston","Honolulu","Guam","Guadalcanal","Gambier","Galapagos","Funafuti","Fiji","Fakaofo","Enderbury","Efate","Easter","Chuuk","Chatham","Bougainville","Auckland","Apia","Mexico","General","BajaSur","BajaNorte","Indian","Reunion","Mayotte","Mauritius","Maldives","Mahe","Kerguelen","Comoro","Cocos","Christmas","Chagos","Antananarivo","Europe","Zurich","Zaporozhye","Zagreb","Warsaw","Volgograd","Vilnius","Vienna","Vatican","Vaduz","Uzhgorod","Ulyanovsk","Tiraspol","Tirane","Tallinn","Stockholm","Sofia","Skopje","Simferopol","Saratov","Sarajevo","San_Marino","Samara","Rome","Riga","Prague","Podgorica","Paris","Oslo","Nicosia","Moscow","Monaco","Minsk","Mariehamn","Malta","Madrid","Luxembourg","London","Ljubljana","Lisbon","Kyiv","Kirov","Kiev","Kaliningrad","Jersey","Istanbul","Isle_of_Man","Helsinki","Guernsey","Gibraltar","Dublin","Copenhagen","Chisinau","Busingen","Budapest","Bucharest","Brussels","Bratislava","Berlin","Belgrade","Belfast","Athens","Astrakhan","Andorra","Amsterdam","Etc","Chile","EasterIsland","Continental","Canada","Yukon","Saskatchewan","Newfoundland","Atlantic","Brazil","West","East","DeNoronha","Acre","Australia","Yancowinna","Victoria","Tasmania","Sydney","South","Queensland","Perth","North","NSW","Melbourne","Lord_Howe","Lindeman","LHI","Hobart","Eucla","Darwin","Currie","Canberra","Broken_Hill","Brisbane","Adelaide","ACT","Stanley","St_Helena","South_Georgia","Reykjavik","Madeira","Jan_Mayen","Faroe","Faeroe","Cape_Verde","Canary","Bermuda","Azores","Asia","Yerevan","Yekaterinburg","Yangon","Yakutsk","Vladivostok","Vientiane","Urumqi","Ulan_Bator","Ulaanbaatar","Ujung_Pandang","Tomsk","Tokyo","Thimphu","Thimbu","Tel_Aviv","Tehran","Tbilisi","Tashkent","Taipei","Srednekolymsk","Shanghai","Seoul","Samarkand","Sakhalin","Saigon","Riyadh","Rangoon","Qyzylorda","Qostanay","Qatar","Pyongyang","Pontianak","Phnom_Penh","Oral","Omsk","Novosibirsk","Novokuznetsk","Muscat","Manila","Makassar","Magadan","Macau","Macao","Kuwait","Kuching","Kuala_Lumpur","Krasnoyarsk","Kolkata","Khandyga","Katmandu","Kathmandu","Kashgar","Karachi","Kamchatka","Kabul","Jerusalem","Jayapura","Jakarta","Irkutsk","Hovd","Hong_Kong","Ho_Chi_Minh","Hebron","Harbin","Gaza","Famagusta","Dushanbe","Dubai","Dili","Dhaka","Damascus","Dacca","Colombo","Chungking","Chongqing","Choibalsan","Chita","Calcutta","Brunei","Bishkek","Beirut","Barnaul","Bangkok","Baku","Bahrain","Baghdad","Atyrau","Ashkhabad","Ashgabat","Aqtobe","Aqtau","Anadyr","Amman","Almaty","Aden","Arctic","Longyearbyen","Antarctica","Vostok","Troll","Syowa","South_Pole","Rothera","Palmer","McMurdo","Mawson","Macquarie","DumontDUrville","Davis","Casey","America","Yellowknife","Yakutat","Winnipeg","Whitehorse","Virgin","Vancouver","Tortola","Toronto","Tijuana","Thunder_Bay","Thule","Tegucigalpa","Swift_Current","St_Vincent","St_Thomas","St_Lucia","St_Kitts","St_Johns","St_Barthelemy","Sitka","Shiprock","Scoresbysund","Sao_Paulo","Santo_Domingo","Santiago","Santarem","Santa_Isabel","Rosario","Rio_Branco","Resolute","Regina","Recife","Rankin_Inlet","Rainy_River","Punta_Arenas","Puerto_Rico","Porto_Velho","Porto_Acre","Port_of_Spain","Phoenix","Paramaribo","Pangnirtung","Panama","Ojinaga","Nuuk","Noronha","Nome","Nipigon","New_York","Nassau","Montserrat","Montreal","Montevideo","Monterrey","Moncton","Miquelon","Mexico_City","Metlakatla","Merida","Menominee","Mendoza","Mazatlan","Matamoros","Martinique","Marigot","Manaus","Managua","Maceio","Lower_Princes","Louisville","Los_Angeles","Lima","La_Paz","Kralendijk","Knox_IN","Juneau","Jujuy","Iqaluit","Inuvik","Indianapolis","Hermosillo","Havana","Halifax","Guyana","Guayaquil","Guatemala","Guadeloupe","Grenada","Grand_Turk","Goose_Bay","Godthab","Glace_Bay","Fortaleza","Fort_Wayne","Fort_Nelson","Ensenada","El_Salvador","Eirunepe","Edmonton","Dominica","Detroit","Denver","Dawson_Creek","Dawson","Danmarkshavn","Curacao","Cuiaba","Creston","Costa_Rica","Cordoba","Coral_Harbour","Ciudad_Juarez","Chihuahua","Chicago","Cayman","Cayenne","Catamarca","Caracas","Cancun","Campo_Grande","Cambridge_Bay","Buenos_Aires","Boise","Bogota","Boa_Vista","Belize","Belem","Barbados","Bahia_Banderas","Bahia","Atka","Atikokan","Asuncion","Aruba","Araguaina","Antigua","Anguilla","Anchorage","Adak","North_Dakota","New_Salem","Center","Beulah","Kentucky","Monticello","Indiana","Winamac","Vincennes","Vevay","Tell_City","Petersburg","Marengo","Knox","Argentina","Ushuaia","Tucuman","San_Luis","San_Juan","Salta","Rio_Gallegos","La_Rioja","ComodRivadavia","Africa","Windhoek","Tunis","Tripoli","Timbuktu","Sao_Tome","Ouagadougou","Nouakchott","Niamey","Ndjamena","Nairobi","Monrovia","Mogadishu","Mbabane","Maseru","Maputo","Malabo","Lusaka","Lubumbashi","Luanda","Lome","Libreville","Lagos","Kinshasa","Kigali","Khartoum","Kampala","Juba","Johannesburg","Harare","Gaborone","Freetown","El_Aaiun","Douala","Djibouti","Dar_es_Salaam","Dakar","Conakry","Ceuta","Casablanca","Cairo","Bujumbura","Brazzaville","Blantyre","Bissau","Banjul","Bangui","Bamako","Asmera","Asmara","Algiers","Addis_Ababa","Accra","Abidjan","tzlibZonesDetailsDB","tzlib_get_content","tzName","nameParts","tzlib_enrich_data","shortenerMap","replaceAll","tzlib_get_ical_block","jsonType","tzBlock","tzidLine","tzlib_get_offset","isoDate","isoTime","dateYear","getFullYear","dateMonth","getMonth","dateDay","getDate","dateHour","getHours","timezoneData","tzBreakpoints","breakpointCount","hour","rruleParts","rruleMonth","day","theCase","helperArrayWeekdays","numberDays","weekdayCount","getDay","weekdays","SU","TU","WE","FR","SA","occurence","actualDay","breakpointWeekday","dayIndex","tzlibZoneNames","atcbVersion","atcbCssTemplate","atcbIsBrowser","atcbIsiOS","opera","MSStream","maxTouchPoints","atcbIsAndroid","atcbIsSafari","atcbIsMobile","atcbIsWebView","atcbIsProblematicWebView","atcbDefaultTarget","atcbOptions","atcbValidRecurrOptions","atcbInvalidSubscribeOptions","atcbiOSInvalidOptions","atcbStates","atcbWcParams","atcbWcProParams","atcbWcBooleanParams","atcbWcObjectParams","atcbWcObjectArrayParams","atcbWcArrayParams","atcbWcNumberParams","atcbIcon","trigger","apple","google","ical","msteams","ms365","outlookcom","yahoo","checkmark","rsvp","atcb_decorate_data","atcb_decorate_data_boolean","timeZone","atcb_decorate_data_timezone","theOptions","fakeIOS","optionsIOS","optionsMobile","fakeMobile","fakeAndroid","newOptions","iCalGiven","appleGiven","optionName","recurrence","recurrence_until","atcb_decorate_data_options","recurrence_simplyfied","rruleObj","UNTIL","recurrence_count","COUNT","recurrence_byDay","BYDAY","recurrence_byMonth","BYMONTH","recurrence_byMonthDay","BYMONTHDAY","recurrence_interval","INTERVAL","recurrence_frequency","FREQ","recurrence_weekstart","endTime","atcb_decorate_data_rrule","inlineRSVP","inline","listStyle","buttonStyle","hideTextLabelList","hideTextLabelButton","buttonsList","atcb_decorate_data_style","sizeParts","atcb_decorate_sizes","lightMode","atcb_decorate_light_mode","dates","atcb_decorate_data_description","organizer","attendee","availability","onlineEvent","uid","atcb_generate_uuid","customVar","sanitizedKey","timestamp","atcb_decorate_data_extend","atcb_decorate_data_meta","atcb_decorate_data_dates","availableLanguages","rtlLanguages","atcb_decorate_data_i18n","pastDateHandling","overdue","allOverdue","blockInteraction","atcb_decorate_data_button_status_handling","expired","expires","bookedOut","atcb_check_booked_out","atcb_decorate_data_rsvp","tz","useUserTZ","cleanedUpDates","atcb_date_cleanup","startDate","atcb_date_calculation","endDate","atcb_date_specials_calculation","created","atcb_format_datetime","updated","descriptionHtmlFree","atcb_rewrite_html_elements","descriptionHtmlFreeICal","dateTimeData","tmpSplitStartDate","timeStr","browserTimezone","Intl","DateTimeFormat","resolvedOptions","newStartDateTime","atcb_translate_via_time_zone","newEndDateTime","dateString","timeString","tmpDate","offsetEnd","setDate","currentUtcDate","today","todayString","getUTCFullYear","getUTCMonth","getUTCDate","dateStringParts","dateParts","newDate","atcb_check_required","requiredMultiFieldFlex","atcb_validate","msgPrefix","atcb_validate_icsFile","customCss","atcb_secure_url","atcb_validate_buttonStyle","icsFile","atcb_validate_subscribe","atcb_validate_created","atcb_validate_updated","isValid","atcb_validate_options","msgSuffix","atcb_validate_status","atcb_validate_availability","atcb_validate_organizer","atcb_validate_attendee","atcb_validate_uid","atcb_validate_sequence","atcb_validate_timezone","atcb_validate_datetime","atcb_validate_date_blocks","atcb_validate_rrule","atcb_validate_rrule_simplyfied","icsFileStr","organizerParts","atcb_validEmail","attendeeParts","validTimeZones","namesArr","key2","value2","key3","tzlib_get_timezones","selectedDate","timeParts","dateKey","atcb_toggle","keyboardTrigger","generatedButton","atcb_open","atcb_close","atcb_log_event","optionsList","listCount","optionItem","optionNumber","atcb_generate_label","hideIconList","atcb_generate_dropdown_list","listWrapper","bgOverlay","atcb_generate_bg_overlay","hideBackground","modalHost","atcb_generate_modal_host","hideBranding","atcb_create_atcbl","atcb_set_sizes","atcb_manage_body_scroll","atcb_set_fullsize","forceOverlay","newHost","cloneNode","atcb_position_shadow_button","atcb_position_shadow_button_listener","atcb_generate_overlay_dom","atcb_position_list","focusEl","preventScroll","existingModalHost","allModals","nextModal","availableButtons","newFocusEl","modal","hiddenButton","atcb_generate_ty","dataObj","copyIcon","proKey","tyHost","tyData","ty","headline","atcb_translate_hook","tyContent","header","button_label","customForm","atcb_build_form","atcb_create_modal","copyBtn","atcb_copy_to_clipboard","click","tyForm","errorMsg","tyFormSubmit","tyFormSubmitting","atcb_validate_form","bodyData","skipRadio","radio","fieldId","sendPostRequest","atcb_generate_rsvp_form","rsvpData","hiddenContent","rsvpContent","sentStatus","localStorage","getItem","hideButton","inlineRsvp","staticID","initial_confirmation","maybe_option","maxAmount","maxpp","rsvpHost","rsvpInlineWrapper","rsvpInlineHeadline","rsvpInlineContent","atcbL","small","closeBtn","cancelBtn","restartBtn","atcbHost","atcbData","hideIconButton","atcb_generate_button","rsvpForm","rsvpFormSubmit","rsvpFormSubmitting","rsvpRestart","staticFields","amountEl","statusValEl","dev","bodyData_payload","setItem","response","responseJson","total","hiddenForm","prevType","skipped","fieldValue","fieldLabel","fieldPlaceholder","fieldHtml","atcb_create_field_html","defaultVal","atcb_secure_content","radioGroup","requestData","oneOption","atcb_debounce_leading","_host$querySelector","atcb_generate_links","_host$querySelector2","atcb_debounce","defaultTriggerText","iconEl","textEl","atcb_generate_label_content","buttonTriggerWrapper","buttonTrigger","atcb_generate_date_button","buttonDropdownAnchor","hideCheckmark","btnCheck","darken","closable","fingerMoved","atList","returnEl","mainHost","subEvents","goto","newOverlay","modalWrapper","modalCount","modalNr","parentButton","hideIconModal","modalIcon","modalHeadline","modalContent","modalsubEventsContentWrapper","modalsubEventsContent","modalSubEventButton","modalButtons","modalButton","atcb_subscribe_yahoo_modal_switch","atcb_set_fully_successful","subEvent","fullTimeInfo","startDateInfo","endDateInfo","timeZoneInfoStart","timeZoneInfoEnd","decorate","browserTimeOverride","enforceYear","hideTimeZone","tmpRootTZ","formattedTimeStart","formattedTimeEnd","timeBlocks","timeZoneInfoStringStart","timeZoneInfoStringEnd","atcb_generate_time","allday","magicLocationPhrases","convertable","dropYearStart","dropYearEnd","formatOptionsStart","get_format_options","formatOptionsEnd","toLocaleDateString","DateLong","toLocaleString","Time","DateTimeLong","toLocaleTimeString","atcb_generate_timestring","hoverText","cancelledInfo","recurringString","subEventAll","allDay","btnLeft","btnDay","btnMonth","btnRight","btnDetails","btnHeadline","btnLocation","btnLocationIcon","btnLocationText","cssText","alignSelf","btnDescription","btnDateTime","btnDateTimeIcon","btnDateTimeText","btnDateTimeTextBlock","recurSign","btnHover","newModalHost","attachShadow","delegateFocus","atcb_set_light_mode","atcb_load_css","atcb_generate_rich_data_recurrence","formattedDate","schemaRecurrenceContent","repeatFrequency","byDayString","byDays","helperMap","byMonthString","byMonthDayString","multiDateModal","linkType","adjustedFileUrl","atcb_subscribe_ical","fileUrl","baseUrl","newFileUrl","atcb_open_cal_url","atcb_subscribe_google","atcb_subscribe_microsoft","proxy","atcb_generate_subscribe_links","theSubEvent","atcb_generate_ical","individualButtons","atcb_generate_multidate_links","urlParts","tmpDataDescription","availabilityPart","atcb_generate_google","locationString","atcb_generate_msteams","atcb_generate_microsoft","atcb_generate_yahoo","subEventButton","atcb_saved_hook","calName","basePath","urlType","parts","newTab","filenameSuffix","iCalFileName","filenamePart","atcb_determine_ical_filename","givenIcsFile","potentialHostAttendee","potentialHostCustomVar","bypassWebViewCheck","atcb_save_file","ics_lines","usedTimeZones","loopStart","loopEnd","timeAddon","timeZoneBlock","atcb_rewrite_ical_text","transpVal","dataUrl","atcb_ical_copy_note","save","MouseEvent","webkitURL","revokeObjectURL","targetCal","addTimeZoneOffset","newStartDate","newEndDate","durationMS","durationHours","durationMinutes","durationString","offsetStart","formattedOffsetStart","formattedOffsetEnd","calcOffsetStart","calcOffsetEnd","setTime","getTimezoneOffset","formattedOffset","baseTimeZone","targetTimeZone","dateTimeUTC","sign","offsetToMilliseconds","dateInTargetTimeZone","year","minute","hour12","timeZoneInfo","hoursFormat","hourCycle","isJSON","cleanedUp","throwError","atcb_parse_url_code","urlText","truncate","blockUpwards","blockDownwards","anchorSet","originalTrigger","triggerDim","btnDim","btnParentDim","viewportHeight","minWidth","listDim","sideMargin","margin","maxWidth","originalShadowHost","modalShadowHost","wrapperDim","newWrapper","widthVal","modalObj","crypto","getRandomValues","dataString","tmpInput","selectNodeContents","setSelectionRange","select","execCommand","_this2","parentEl","customTrigger","dataLayer","eventCategory","eventAction","eventLabel","atcb_push_to_data_layer","calendarNames","i18nStrings","en","continue","cancel","recurring","thankyou","submit","de","es","pt","nl","tr","zh","pl","no","fi","sv","cs","ja","it","ko","vi","ro","fa","et","customLabels","atcb_translate","atcbInitialGlobalInit","atcbBtnCount","lightModeMutationObserver","template","AddToCalendarButton","_initialized","_initializedResolver","initializing","updatePending","connectedCallback","initializeComponent","debugVal","atcb_get_pro_data","atcb_process_inline_data","atcb_render_debug_msg","whenInitialized","disconnectedCallback","atcb_cleanup","observedAttributes","observeAdditionally","attributeChangedCallback","oldValue","updateComponent","rootObj","atcb_setup_state_management","atcb_set_global_event_listener","atcb_init_log","btnHostEl","atcb_generate_rsvp_button","hideRichData","schemaEl","schemaContentMulti","schemaContentFull","schemaContent","imageData","atcb_generate_rich_data","atcb_build_button","customElements","define","atcb_read_attributes","slotInput","atcbJsonInput","jsonError","inputVal","cleanedInput","newVal","atcb_unset_global_event_listener","hostLightMode","atcb_csp_nonce","nonceVal","cssGlobalContent","scrollBarWidth","innerText","generalCssContent","initWidth","overrideDefaultCss","styleLight","overrideDarkCss","styleDark","cssFile","placeholderCssContent","loadExternalCssAsynch","cssContent","overrideCss","errorBanner","singleDates","versionOutput","licenseKey","directData","dataOverrides","mutationsList","mutation","atcb_global_listener_keyup","atcb_global_listener_keydown","atcb_global_listener_resize","rootModal","targetFocus","currFocusOption","optionListCount","activeOverlay","EventsMain","filtersShown","setFiltersShown","randomImages","randomImage","months","dd","sql","isLink","handleAddToCalendar","whichDate","keyDates","inputData","triggerElement","prokey","proData","potentialExistingHost","atcb_action","joinUs","sortableKeydate","keyDate","keyDateLabel","keyDate1","keyDateLabel1","keyDate2","keyDateLabel2","date1","date2","keydate","getEvents","_event$events$logo","_event$events$logo$no","_event$events$logo2","_event$events$logo2$n","banner","logo","city","Events","_path","SvgUkcxa25Logo","svgRef","titleId","Awards","Logo","PrivacyPolicy","TermsOfUse","Media","NoMatch","ThankYou","CertifiedJudges","firstBoxHeading","secondBoxHeading","thirdBoxHeading","firstBoxPrice","secondBoxPrice","thirdBoxPrice","EnterTheAwards","setActiveIndex","handleToggle","PriceAccordion","CatAccordion","cat","toggleAcc","metaProperty","metaValue","Categories","metaData","img","HowToEnterKit","Webinars","entryWebinar","presWebinar","JudgingProcess","Testimonial","EventDetails","KitResources","frameborder","class","Plan2Judge","NewsAndInsight","bio","website_url","SponsorsAndPartners","SponsorsCard","WinningLibrary","MeetTheJudges","judges","setJudges","job_title","organization","profile_image","Plan2JudgeForm","SteeringCouncil","michelle","alex","jamie","helen","valentina","peter","kirstin","linzi","katie","robert","janette","stuart","caroline","sally","alington","kat","adrian","TermsAndConditions","TermsOfPayment","SvgUkcxa25LogoV1","handleClick","publish","onFormTriggered","openIn","taglineTransform","setTaglineTransform","headerTransform","setHeaderTransform","useOutsideClick","handleClickOutside","setMenuOpen","menuOpen","listenToScroll","handleFormClosed","FormField","subfield","parse_1","opt","dec","eqIdx","endIdx","tryDecode","serialize_1","enc","encode","fieldContentRegExp","maxAge","domain","__toString","isDate","toUTCString","httpOnly","secure","partitioned","sameSite","readCookie","cleanValue","cleanupCookieValue","doNotParse","Cookies","cookies","defaultSetOptions","changeListeners","HAS_DOCUMENT_COOKIE","previousCookies","cookie","_checkChanges","domCookies","parseCookies","testingValue","TEST_HAS_DOCUMENT_COOKIE","hasDocumentCookie","_emitChange","_startPolling","pollingInterval","setInterval","_stopPolling","clearInterval","doNotUpdate","stringValue","finalOptions","addChangeListener","cookieStore","removeChangeListener","CookiesContext","CookiesProvider","hasRequiredReactIs_production_min","reactIs$1","reactIs_production_min","requireReactIs_production_min","useCookies","allCookies","setCookies","newCookies","oldCookies","shouldUpdate","setCookie","removeCookie","updateCookies","ScrollToTop","App","setFormData","openFormIn","setOpenFormIn","cookiesOn","setCookiesOn","splash","setSplash","setMeta","handleFormTriggered","headerSquezeed","FormPage","Form","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","ApolloProvider","ApolloContext","parentContext","_createForOfIteratorHelperLoose","allowArrayLike","_createClass","hasSymbols","hasSymbol","getSymbol","SymbolIterator","SymbolObservable","SymbolSpecies","getMethod","getSpecies","Observable","isObservable","hostReportError","enqueue","cleanupSubscription","_cleanup","closeSubscription","_observer","_queue","_state","notifySubscription","onNotify","flushSubscription","subscriber","subscriptionObserver","SubscriptionObserver","_subscription","_proto2","_subscriber","_proto3","_this3","_this4","hasSeed","hasValue","acc","_this5","sources","startNext","flatMap","_this6","outer","inner","completeIfDone","closed","_step","_iterator","of","symbol","BREAK","visitorKeys","enterLeaveMap","getEnterLeaveForKind","inArray","edits","isLeaving","isEdited","editOffset","editKey","editValue","arrayKey","_enterLeaveMap$get","_enterLeaveMap$get2","visitFn","leave","_node$kind","kindVisitor","getFragmentQueryDocument","actualFragmentName","createFragmentMap","symTable","getFragmentFromSelection","fragmentMap","sortingMap","stableObjectReplacer","everyKeyInOrder","unsortedKey","sortedKeys","sortedKey","sortedObject_1","makeReference","__ref","isReference","valueToObjectRepresentation","argObj","isIntValue","isFloatValue","isBooleanValue","isStringValue","isObjectValue","nestedArgObj_1","isVariable","variableValue","isListValue","listValue","nestedArgArrayObj","isEnumValue","isNullValue","KNOWN_DIRECTIVES","storeKeyNameStringify","getStoreKeyName","fieldName","filterKeys","filteredArgs_1","completeFieldName","stringifiedArgs","setStringify","argumentsObjectFromField","argObj_1","resultKeyNameFromField","getTypenameFromResult","isField","__typename","fragments_1","typename","checkDocument","operations","getOperationDefinition","getOperationName","getFragmentDefinitions","getQueryDefinition","queryDef","getFragmentDefinition","fragmentDef","getMainDefinition","queryDoc","getDefaultValues","defaultValues","defs","forward","toLink","ApolloLink","isTerminating","leftLink","rightLink","execute","starting","createOperation","transformedOperation","transformOperation","OPERATION_FIELDS","validateOperation","firstLink","nextLink","setOnError","shouldInclude","directive","isInclusionDirective","directiveArguments","directiveName","ifArgument","ifValue","getInclusionDirectives","evaledValue","hasDirectives","nameSet","uniqueCount","hasClientExports","getFragmentMaskMode","modeArg","serializeFetchParameter","parseError","nodeStreamIterator","waiting","onData","shiftedArr","removeListener","readerIterator","reader","read","responseIterator","isAsyncIterableIterator","getReader","isReadableStream","isStreamableBlob","arrayBuffer","isBlob","resolved","promiseIterator","pipe","isNodeReadableStream","throwServerError","statusCode","mergeDeep","mergeDeepArray","merger","DeepMerger","defaultReconciler","reconciler","pastCopies","targetValue","shallowCopyForMerge","isExecutionPatchIncrementalResult","isApolloPayloadResult","mergeIncrementalData","mergedData","incremental","parent_1","parseHeaders","headerText","headersInit","name_1","parseJsonBody","bodyText","getResult","escapedRegExp","escapedReplacer","escapeSequences","printDocASTReducer","varDefs","argsLine","_ref8","_ref9","_ref10","isBlockString","escapedValue","isSingleLine","forceLeadingNewLine","hasTrailingTripleQuotes","hasTrailingQuote","hasTrailingSlash","forceTrailingNewline","printAsMultipleLines","minimize","skipLeadingNewLine","printBlockString","_ref11","_ref12","_ref13","_ref14","_ref15","_ref16","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_ref23","_ref24","hasMultilineItems","_ref25","_ref26","_ref27","_ref28","_ref29","_ref30","_ref31","_ref32","_ref33","_ref34","_ref35","_ref36","_ref37","_ref38","maybeArray","_maybeArray$filter$jo","maybeString","_maybeArray$some","printCache","origPrint","fallbackHttpConfig","http","includeQuery","includeExtensions","preserveHeaderCase","defaultPrinter","printer","selectHttpOptionsAndBodyInternal","configs","normalizedHeaders_1","headerData","originalName","normalizedHeaders","removeDuplicateHeaders","fromError","errorValue","TYPENAME_FIELD","isEmpty","nullIfDocIsEmpty","getDirectiveMatcher","testConfig","makeInUseGetterFunction","defaultKey","inUse","fragmentSpreads","removeDirectivesFromDocument","getInUseByOperationName","getInUseByFragmentName","getInUse","operationCount","directiveMatcher","shouldRemoveField","nodeDirectives","originalFragmentDefsByPath","firstVisitMadeChanges","fieldOrInlineFragmentVisitor","docWithoutDirectiveSubtrees","_parent","removed","populateTransitiveVars","transitiveVars","childFragmentName","allFragmentNamesUsed","enterVisitor","usedVariableNames_1","varDef","addTypenameToDocument","added","buildQueryFromSelectionSet","modifiedDoc","removeClientSetsFromDocument","addNonReactiveToNamedFragments","backupFetch","createHttpLink","linkOptions","preferredFetch","useGETForQueries","includeUnusedVariables","requestOptions","fetcher","checkFetcher","linkConfig","fetchOptions","chosenURI","fallbackURI","contextURI","getContext","selectURI","clientAwarenessHeaders","clientAwareness","contextHeaders","contextConfig","transformedQuery","unusedNames","filterOperationVariables","isSubscription","hasDefer","acceptHeader","queryParams","addQueryParam","serializedVariables","serializedExtensions","preFragment","fragmentStart","queryParamsPrefix","newURI","rewriteURIForGET","currentFetch","observerNext","setContext","ctype","boundaryVal","searchFrom","bi","contentType_1","hasNext","readMultipartBody","handleError","HttpLink","defaultMakeData","Trie","weakness","makeData","lookupArray","getChildTrie","peekArray","mapFor","removeArray","weak","isObjRef","currentContext","MISSING_VALUE","idCounter","ignored","globalKey","globalHost","Slot","withValue","saved","noContext","parentEntrySlot","arrayFromSet","maybeUnsubscribe","entryOrDep","emptySetPool","POOL_TARGET_SIZE","assert","optionalMessage","valueIs","valueGet","valueCopy","Entry","childValues","dirtyChildren","dirty","recomputing","mightBeDirty","rememberParent","recompute","forgetChildren","recomputeNewValue","setDirty","maybeSubscribe","reportClean","setClean","reallyRecompute","reportDirty","eachParent","forgetChild","forget","dependOn","dep","forgetDeps","reportDirtyChild","reportCleanChild","normalizeResult","oldValueCopy","parentCount","parentWasClean","childValue","removeDirtyChild","dc","_value","EntryMethods","depsByKey","depend","entryMethodName","defaultKeyTrie","defaultMakeCacheKey","trie","originalFunction","keyArgs","makeCacheKey","cacheOption","optimistic","dirtyKey","peekKey","forgetKey","identity","DocumentTransform","resultCache","getCacheKey","predicate","transformDocument","stableCacheKeys_1","performWork","cacheKeys","transformedDocument","otherTransform","asyncMap","mapFn","catchFn","promiseQueue","makeCallback","examiner","both","sub","graphQLResultHasError","getGraphQLErrorsFromResult","incrementalResult","iterateObserversSafely","observersWithMethod","obs","fixObservableSubclass","subclass","species","isPromiseLike","Concast","removeObserver","notify","nextResultListeners","iterable","deliverLastMessage","nextOrError","beforeNext","cloneDeep","cloneDeepHelper","copy_1","copy_2","equalByQuery","aData","aRest","bData","bRest","equalBySelectionSet","aResult","bResult","seenSelections","selectionHasNonreactiveDirective","resultKey","aResultChild","bResultChild","childSelectionSet","aChildIsArray","bChildIsArray","length_1","directiveIsNonreactive","ObservableQuery","queryInfo","subObserver","defaultSubscriptionObserverErrorCallback","maskResult","tearDownQuery","waitForOwnResult","skipCacheDataFor","isTornDown","defaultFetchPolicy","_f","queryId","generateQueryId","opDef","queryName","lastQuery","removeQuery","resetDiff","getCurrentFullResult","saveAsLastResult","getLastResult","hasForcedResolvers","getDiff","returnPartialData","logMissingFieldErrors","missing","updateLastResult","isDifferentFromLastResult","newResult","documentInfo","dataMasking","nonReactiveQuery","hasNonreactiveDirective","getLast","variablesMustMatch","getLastError","resetLastResults","resetQueryStoreErrors","resetErrors","reobserveOptions","pollInterval","vars","fetchMoreOptions","combinedOptions","qid","originalNetworkStatus","updatedQuerySet","isCached","batch","writeQuery","onWatchUpdated","watch","reportResult","finally","reobserveCacheFirst","startGraphQLSubscription","subscriptionData","setOptions","silentSetOptions","setVariables","updatePolling","applyNextFetchPolicy","nextFetchPolicy","newNetworkStatus","setObservableQuery","ssrMode","pollingInfo","hasObservers","interval","skipPollAttempt","poll","maybeFetch","assumeImmutableResults","reobserveAsConcast","useDisposableConcast","oldVariables","oldFetchPolicy","mergedOptions","finishWaitingForOwnResult","concast","fromLink","lastError","isDifferent","errorResult","stopQuery","maskOperation","obsQuery","currentFetchPolicy","destructiveMethodCounts","wrapDestructiveCacheMethod","methodName","original","cancelNotifyTimeout","QueryInfo","lastRequestId","observableQuery","lastDiff","getDiffOptions","updateWatch","oq","updateLastDiff","canonizeResults","setDiff","oldDiff","notifyTimeout","oqListener","fromOptimisticTransaction","shouldNotify","watchOptions","watcher","lastWatch","resetLastWrite","lastWrite","shouldWrite","dmCount","markResult","cacheWriteBehavior","shouldWriteResult","errorPolicy","performTransaction","overwrite","diffOptions","markReady","markError","ignoreErrors","writeWithErrors","MapImpl","SetImpl","disableWarningsSlot","issuedWarning","warnOnImproperCacheImplementation","maskDefinition","maskSelectionSet","migration","knownChanged","mutableTargets","mutableTarget","getMutableTarget","keyName","getAccessorWarningDescriptor","operationType","fragmentMatches","lookupFragment","maskFragment","IGNORE","QueryManager","fetchCancelFns","transformCache","queryIdCounter","requestIdCounter","mutationIdCounter","inFlightLinkObservables","noCacheWarningsByQueryId","defaultDocumentTransform","queryDeduplication","localState","defaultContext","onBroadcast","mutationStore","_info","stopQueryNoBroadcast","cancelPendingFetches","mutate","optimisticResponse","updateQueries","refetchQueries","awaitRefetchQueries","updateWithProxyFn","onQueryUpdated","_g","_h","keepRootFields","mutationId","generateMutationId","transformForLink","getVariables","addExportedVariables","_j","mutationStoreValue","isOptimistic","markMutationOptimistic","broadcastQueries","getObservableFromLink","storeResult","markMutationResult","removeOptimistic","cacheWrites","skipCache","dataId","asQuery","updateQueries_1","currentQueryResult","nextQueryResult","mutationResult","queryVariables","results_1","updateCache","isFinalResult","isExecutionPatchInitialResult","modify","DELETE","include","recordOptimisticTransaction","fetchQuery","fetchConcastWithInfo","getQueryStore","cacheEntry","shouldForceResolvers","clientQuery","serverQuery","defaultVars","generateRequestId","stopQueryInStore","stopQueryInStoreNoBroadcast","clearStore","discardWatches","getObservableQueries","queryNames","queryNamesAndQueryStrings","legacyQueryOptions","queryString","getQuery","included","nameOrQueryString","reFetchObservableQueries","includeStandby","observableQueryPromises","makeObservable","hasErrors","hasProtocolErrors","graphQLResultHasProtocolErrors","observablePromise_1","getLocalState","deduplication","inFlightLinkObservables_1","prepareContext","forceFetch","printedServerQuery_1","varJson_1","concast_1","runResolvers","remoteResult","getResultsFromLink","requestId","linkDocument","aqr","containsDataFromLink","normalized","fromVariables","sourcesWithInfo","fetchQueryByPolicy","cleanupCancelFn","includedQueriesById","operationId","isUnmasked","isFullyUnmaskedOperation","refetchWritePolicy","oldNetworkStatus","readCache","resultsFromCache","fromData","resultsFromLink","newContext","isSelectionNode","cacheSlot","cacheInfoMap","getCacheInfo","forgetCache","rv","makeVar","broadcastWatches","broadcast","oldListeners","onNextChange","attachCache","LocalState","resolvers","fragmentMatcher","selectionsToResolveCache","addResolvers","setFragmentMatcher","resolverGroup","setResolvers","getResolvers","onlyRunForcedResolvers","resolveDocument","localResult","getFragmentMatcher","identify","document_1","buildRootValueFromCache","exportedVariables","forceResolvers","rootValue_1","rootValue","mainDefinition","selectionsToResolve","collectSelectionsToResolve","definitionOperation","defaultOperationType","execContext","resolveSelectionSet","isClientFieldDescendant","resultsToMerge","resolveField","fieldResult","isInlineFragment","fragmentResult","aliasedFieldName","aliasUsed","defaultResult","resultPromise","resolverType","resolverMap","isClientField","resolveSubSelectedArray","isSingleASTNode","collectByDefinition","definitionNode","matches_1","___","fragmentSelections","hasSuggestedDevtools","ApolloClient","resetStoreCallbacks","clearStoreCallbacks","ssrForceFetchDelay","connectToDevTools","typeDefs","clientAwarenessName","clientAwarenessVersion","devtools","devtoolsConfig","watchFragment","resetStore","devToolsHookCb","extract","windowWithDevTools","devtoolsSymbol","__APOLLO_CLIENT__","__APOLLO_DEVTOOLS_GLOBAL_HOOK__","nav","__actionHookForDevTools","__requestRaw","onResetStore","onClearStore","setLocalStateFragmentMatcher","setLink","newLink","ApolloCache","getFragmentDoc","updateResult","optimisticId","transaction","gc","readQuery","rootId","latestDiff","immediate","readFragment","writeFragment","MissingFieldError","isNullish","defaultDataIdFromObject","_id","keyObject","defaultConfig","dataIdFromObject","addTypename","resultCaching","shouldCanonizeResults","TypeOrFieldNameRegExp","fieldNameFromStoreName","storeFieldName","selectionSetMatchesResult","storeValueIsStoreObject","extractFragmentContext","delModifier","INVALIDATE","EntityStore","policies","rootIds","getFieldValue","objectOrReference","canRead","objOrRef","toReference","objOrIdOrRef","mergeIntoStore","toObject","storeObject","rootTypenamesById","Layer","dependOnExistence","incoming","merged","storeObjectReconciler","caching","fieldsToDirty_1","__exists","hasKeyArgs","changedFields_1","needToMerge_1","allDeleted_1","sharedDetails_1","readField","fieldNameOrOptions","storage","getStorage","checkReference","seenReference","someNonReference","newValue_1","getStoreFieldName","evict","evicted","extraRootIds","getRootIdSet","__META","newData","rest_1","retain","release","ids","snapshot","findChildRefIds","idsToRemove","root_1","found_1","workSet_1","keyMaker","CacheGroup","resetCaching","makeDepKey","maybeDependOnExistenceOfEntity","entityId","supportsResultCaching","Root","stump","Stump","storageTrie","addLayer","layerId","replay","removeLayer","ownStoreObject","parentStoreObject","fromParent","existingObject","incomingObject","existingValue","incomingValue","ObjectCanon","known","passes","keysByJSON","admit","isKnown","isObjectOrArray","pass","shallowCopy","proto_1","array_1","firstValueIndex_1","sorted","obj_1","execSelectionSetKeyArgs","StoreReader","knownResults","canon","peekArgs","other","enclosingRef","execSelectionSetImpl","resultCacheMaxSize","varString","execSubSelectedArrayImpl","resetCanon","diffQueryAgainstStore","rootRef","execResult","firstMissing","isFresh","objectsToMerge","missingMerger","handleMissing","resultName","rootIdsByTypename","childResult","getTypenameFromStoreObject","assertSelectionSetForIdValue","specifierInfoCache","lookupSpecifierInfo","spec","keyFieldsFnFromSpecifier","specifier","keyFieldsFn","collectSpecifierPaths","schemaKeyPath","extracted","extractKeyPath","extractKey","keyArgsFnFromSpecifier","keyArgsFn","collected","keyPath","firstKey","firstChar","variableName","varKeyPath","directiveName_1","directiveArgs","extractor","getSpecifierPaths","paths_1","currentPath_1","argsFromFieldSpecifier","nullKeyFieldsFn","simpleKeyArgsFn","_args","mergeTrueFn","mergeObjects","mergeFalseFn","Policies","typePolicies","toBeAdded","supertypeMap","fuzzySubtypes","usingPossibleTypes","setRootTypename","possibleTypes","addPossibleTypes","addTypePolicies","partialContext","ROOT_QUERY","normalizeReadFieldOptions","policy","getTypePolicy","keyFn","specifierOrId","queryType","mutationType","subscriptionType","updateTypePolicy","keyFields","setMerge","getFieldPolicy","old","supertype","getSupertypeSet","policy_1","supertypes_1","regExp","fuzzy","fuzzySupertypes","inbox","createIfMissing","fieldPolicies","supertypeSet","typenameSupertypeSet","workQueue_1","maybeEnqueue_1","needToCheckFuzzySubtypes","checkingFuzzySubtypes","fuzzyString","fieldSpec","specifierOrString","directivesObj","storeKeyNameFromField","readOptions","makeFieldFunctionOptions","getReadFunction","getMergeFunction","parentTypename","childTypename","runMergeFunction","makeMergeObjectsFunction","readFieldArgs","argc","eType","iType","getContextFlavor","clientOnly","deferred","flavored","flavors","StoreWriter","writeToStore","operationDefinition","written","incomingById","processSelectionSet","mergeTree","fieldNodeSet","entityRef","applied","applyMerges","fieldsWithSelectionSets_1","hasSelectionSet_1","childTree","hasMergeFunction_1","existingRef","incomingObj","getChild","parentType","typeDotName","warnings","childTypenames","warnAboutDataLoss","result_1","flattenFields","resultFieldKey","getChildMergeTree","processFieldValue","maybeRecycleChildMergeTree","dataRef","sets","previous_1","mergeMergeTrees","mergeTreeIsEmpty","fieldMap","limitingTrie","flatten","inheritedContext","visitedNode","visited","if","getStorageArgs","e_1","i_1","getValue_1","eVal","iVal","aVal","emptyMergeTreePool","needToMergeMaps","remainingRightKeys_1","leftTree","InMemoryCache","watches","addTypenameTransform","txCount","normalizeConfig","rootStore","optimisticData","resetResultCache","resetResultIdentities","previousReader","storeReader","storeWriter","broadcastWatch","recallCache","idToRemove","newOptimisticData","perform","layer","alreadyDirty","addFragmentsToDocument","reportWebVitals"],"sourceRoot":""}