{"version":3,"sources":["jsdelivr-header.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/style-inject/dist/style-inject.es.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-dom/client.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-is/cjs/react-is.production.min.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-is/index.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/shallowequal/index.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/@emotion/stylis/dist/stylis.browser.esm.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/@emotion/unitless/dist/unitless.browser.esm.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/hoist-non-react-statics/node_modules/react-is/index.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/styled-components/dist/styled-components.browser.esm.js","/npm/@reachfive/identity-ui@1.41.0/src/contexts/routing.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/miscComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/helpers/errors.ts","/npm/@reachfive/identity-ui@1.41.0/src/helpers/logger.ts","/npm/@reachfive/identity-ui@1.41.0/src/contexts/config.tsx","/npm/@reachfive/identity-ui@1.41.0/src/contexts/i18n.tsx","/npm/@reachfive/identity-ui@1.41.0/src/contexts/reachfive.tsx","/npm/@reachfive/identity-ui@1.41.0/src/helpers/utils.ts","/npm/@reachfive/identity-ui@1.41.0/src/helpers/useDebounceCallback.ts","/npm/@reachfive/identity-ui@1.41.0/src/components/captchaFox.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/reCaptcha.ts","/npm/@reachfive/identity-ui@1.41.0/src/components/captcha.tsx","/npm/@reachfive/identity-ui@1.41.0/node_modules/@babel/runtime/helpers/esm/extends.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/@babel/runtime/helpers/esm/construct.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/polished/dist/polished.esm.js","/npm/@reachfive/identity-ui@1.41.0/src/components/form/buttonComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/form/formComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/contexts/session.tsx","/npm/@reachfive/identity-ui@1.41.0/src/core/theme.ts","/npm/@reachfive/identity-ui@1.41.0/src/components/widget/widgetContainerComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/widget/widget.tsx","/npm/@reachfive/identity-ui@1.41.0/src/helpers/transformObjectProperties.ts","/npm/@reachfive/identity-ui@1.41.0/src/helpers/queryString.ts","/npm/@reachfive/identity-ui@1.41.0/src/icons/passkeys.svg","/npm/@reachfive/identity-ui@1.41.0/node_modules/validator/lib/util/assertString.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/validator/lib/util/checkHost.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/validator/lib/isByteLength.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/validator/lib/util/merge.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/validator/lib/isFQDN.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/validator/lib/isIP.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/validator/lib/isEmail.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/validator/lib/util/nullUndefinedCheck.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/validator/lib/alpha.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/validator/lib/isFloat.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/validator/lib/isInt.js","/npm/@reachfive/identity-ui@1.41.0/src/core/validation.ts","/npm/@reachfive/identity-ui@1.41.0/src/helpers/propertyHelpers.ts","/npm/@reachfive/identity-ui@1.41.0/src/core/mapping.ts","/npm/@reachfive/identity-ui@1.41.0/src/helpers/random.ts","/npm/@reachfive/identity-ui@1.41.0/src/helpers/inputIdGenerator.ts","/npm/@reachfive/identity-ui@1.41.0/src/components/form/fieldCreator.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/form/formControlsComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/form/fields/passwordPolicyRules.tsx","/npm/@reachfive/identity-ui@1.41.0/src/icons/eye-slash.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/eye.svg","/npm/@reachfive/identity-ui@1.41.0/src/components/form/fields/simplePasswordField.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/form/fields/passwordField.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/passwordEditor/passwordEditorWidget.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/accountRecovery/accountRecoveryWidget.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/form/fields/checkboxField.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/form/fields/radioboxField.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/form/fields/simpleField.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/stepUp/mfaStepUpWidget.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/auth/views/accountRecoveryViewComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/metadata.min.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/prop-types/lib/ReactPropTypesSecret.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/prop-types/factoryWithThrowingShims.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/prop-types/index.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/input-format/modules/edit.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/input-format/modules/parse.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/input-format/modules/helpers.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/input-format/modules/closeBraces.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/input-format/modules/templateFormatter.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/input-format/modules/format.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/input-format/modules/dom.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/input-format/modules/inputControl.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/input-format/modules/react/Input.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/tools/semver-compare.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/isObject.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/metadata.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/isPossible.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/getNumberType.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/isValid.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/constants.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/RFC3966.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/format.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/PhoneNumber.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/ParseError.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/parseDigits.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/parse.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/normalizeArguments.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/parsePhoneNumber.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/AsYouTypeState.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.util.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.complete.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternParser.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternMatcher.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/AsYouTypeParser.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/AsYouType.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/getCountries.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/libphonenumber-js/es6/formatIncompletePhoneNumber.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/helpers/inputValuePrefix.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/helpers/parsePhoneNumberCharacter.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/useInputKeyDownHandler.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/InputSmart.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/InputBasic.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/country-flag-icons/modules/unicode.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/CountrySelect.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/Flag.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/InternationalIcon.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/helpers/isE164Number.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/helpers/countries.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/CountryIcon.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/useExternalRef.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/PropTypes.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/helpers/getInternationalPhoneNumberPrefix.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/helpers/phoneInputHelpers.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/PhoneInputWithCountry.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/usePhoneDigits.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/PhoneInput.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/modules/PhoneInputBrowser.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/input/index.js","/npm/@reachfive/identity-ui@1.41.0/src/components/form/fields/phoneNumberField.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/auth/views/forgotPasswordViewComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/form/fields/identifierField.tsx","/npm/@reachfive/identity-ui@1.41.0/src/providers/amazon/amazon.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/amazon/amazon.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/apple/apple.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/apple/apple.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/bconnect/bconnect.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/bconnect/bconnect.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/facebook/facebook.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/facebook/facebook.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/franceconnect/franceconnect.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/franceconnect/franceconnect.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/google/google.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/google/google.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/kakaotalk/kakaotalk.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/kakaotalk/kakaotalk.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/line/line.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/line/line.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/linkedin/linkedin.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/linkedin/linkedin.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/mailru/mailru.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/mailru/mailru.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/microsoft/microsoft.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/microsoft/microsoft.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/naver/naver.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/naver/naver.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/okta/okta.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/okta/okta.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/oney/oney.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/oney/oney.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/orange/orange.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/orange/orange.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/paypal/paypal.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/paypal/paypal.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/ping/ping.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/ping/ping.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/qq/qq.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/qq/qq.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/tiktok/tiktok.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/tiktok/tiktok.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/twitter/twitter.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/twitter/twitter.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/vkontakte/vkontakte.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/vkontakte/vkontakte.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/wechat/wechat.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/wechat/wechat.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/weibo/weibo.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/weibo/weibo.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/yandex/yandex.svg","/npm/@reachfive/identity-ui@1.41.0/src/providers/yandex/yandex.ts","/npm/@reachfive/identity-ui@1.41.0/src/providers/providers.ts","/npm/@reachfive/identity-ui@1.41.0/src/components/form/socialButtonsComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/auth/views/loginViewComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/auth/views/loginWithPasswordViewComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/icons/fingerprint.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/keyboard.svg","/npm/@reachfive/identity-ui@1.41.0/src/components/form/webAuthAndPasswordButtonsComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/auth/views/loginWithWebAuthnViewComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/auth/views/quickLoginViewComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/auth/views/reauthViewComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/form/fields/dateField.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/form/fields/birthdayField.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/form/fields/consentField.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/form/fields/selectField.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/form/formFieldFactory.ts","/npm/@reachfive/identity-ui@1.41.0/src/components/form/passwordSignupFormComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/auth/views/signupViewComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/auth/views/signupWithPasswordViewComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/auth/views/signupWithWebAuthnViewComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/auth/authWidget.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/emailEditor/emailEditorWidget.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/mfa/contexts/credentials.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/mfa/MfaCredentialsWidget.tsx","/npm/@reachfive/identity-ui@1.41.0/node_modules/react/cjs/react-jsx-runtime.production.min.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react/jsx-runtime.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-context/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/primitive/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-id/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-slot/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-primitive/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-focus-scope/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-portal/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-presence/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-focus-guards/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/tslib/tslib.es6.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-remove-scroll-bar/dist/es2015/constants.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/use-callback-ref/dist/es2015/assignRef.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/use-callback-ref/dist/es2015/useRef.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/use-callback-ref/dist/es2015/useMergeRef.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/use-sidecar/dist/es2015/medium.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/use-sidecar/dist/es2015/exports.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-remove-scroll/dist/es2015/medium.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-remove-scroll/dist/es2015/UI.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/get-nonce/dist/es2015/index.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-style-singleton/dist/es2015/singleton.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-style-singleton/dist/es2015/hook.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-style-singleton/dist/es2015/component.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-remove-scroll-bar/dist/es2015/utils.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-remove-scroll-bar/dist/es2015/component.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-remove-scroll/dist/es2015/handleScroll.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-remove-scroll/dist/es2015/SideEffect.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-remove-scroll/dist/es2015/sidecar.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-remove-scroll/dist/es2015/Combination.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/aria-hidden/dist/es2015/index.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-dialog/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/@radix-ui/react-alert-dialog/dist/index.mjs","/npm/@reachfive/identity-ui@1.41.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs","/npm/@reachfive/identity-ui@1.41.0/src/lib/utils.ts","/npm/@reachfive/identity-ui@1.41.0/src/components/ui/button.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/ui/alert-dialog.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/mfa/mfaListWidget.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/mfa/trustedDevicesWidget.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/passwordless/passwordlessWidget.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/passwordReset/passwordResetWidget.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/phoneNumberEditor/phoneNumberEditorWidget.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/profileEditor/profileEditorWidget.tsx","/npm/@reachfive/identity-ui@1.41.0/src/components/form/cardComponent.tsx","/npm/@reachfive/identity-ui@1.41.0/src/widgets/socialAccounts/socialAccountsWidget.tsx","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/1password.svg","/npm/@reachfive/identity-ui@1.41.0/src/widgets/socialLogin/socialLoginWidget.tsx","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/apple.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/bitwarden.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/chrome.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/dashlane.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/edge.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/enpass.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/google-password-manager.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/idmelon.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/keepassxc.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/keeper.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/nordpass.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/proton-pass.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/samsung-pass.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/thales.svg","/npm/@reachfive/identity-ui@1.41.0/src/icons/webauthn/windows-hello.svg","/npm/@reachfive/identity-ui@1.41.0/src/widgets/webAuthn/webAuthnDevicesWidget.tsx","/npm/@reachfive/identity-ui@1.41.0/src/client.tsx","/npm/@reachfive/identity-ui@1.41.0/src/main.ts","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/ar.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/ca.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/cz.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/de.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/el.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/en.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/es.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/et.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/fi.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/fr.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/he.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/hy.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/it.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/ja.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/ko.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/nb.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/nl.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/pl.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/pt-BR.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/pt.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/ru.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/sk.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/sv.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/th.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/tr.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/ua.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/vi.json.js","/npm/@reachfive/identity-ui@1.41.0/node_modules/react-phone-number-input/locale/zh.json.js"],"names":[],"mappings":"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M,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAA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UACN,GAAM,yCACN,GAAM,YACN,GAAM,OACN,GAAM,cACN,GAAM,QACN,GAAM,YACN,GAAM,6BACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,QACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,oBACN,GAAM,QACN,GAAM,gCACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,QACN,GAAM,aACN,GAAM,UACN,GAAM,WACN,GAAM,YACN,GAAM,mBACN,GAAM,iBACN,GAAM,iBACN,GAAM,SACN,GAAM,aACN,GAAM,YACN,GAAM,OACN,GAAM,QACN,GAAM,aACN,GAAM,aACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,YACN,GAAM,SACN,GAAM,QACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,eACN,GAAM,6BACN,GAAM,SACN,GAAM,aACN,GAAM,UACN,GAAM,OACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,sBACN,GAAM,WACN,GAAM,YACN,GAAM,YACN,GAAM,QACN,GAAM,WACN,GAAM,eACN,GAAM,SACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,oBACN,GAAM,SACN,GAAM,gBACN,GAAM,UACN,GAAM,YACN,GAAM,SACN,GAAM,UACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,YACN,GAAM,OACN,GAAM,mBACN,GAAM,OACN,GAAM,OACN,GAAM,qBACN,GAAM,sBACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,oBACN,GAAM,UACN,GAAM,YACN,GAAM,SACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,MACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,cACN,GAAM,WACN,GAAM,qBACN,GAAM,WACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,eACN,GAAM,oBACN,GAAM,YACN,GAAM,aACN,GAAM,QACN,GAAM,WACN,GAAM,mBACN,GAAM,mBACN,GAAM,OACN,GAAM,0BACN,GAAM,OACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,gBACN,GAAM,aACN,GAAM,OACN,GAAM,QACN,GAAM,QACN,GAAM,mBACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,WACN,GAAM,SACN,GAAM,sCACN,GAAM,mBACN,GAAM,aACN,GAAM,YACN,GAAM,kCACN,GAAM,0BACN,GAAM,UACN,GAAM,yBACN,GAAM,sBACN,GAAM,SACN,GAAM,UACN,GAAM,gBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,eACN,GAAM,SACN,GAAM,WACN,GAAM,Q,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,6BACX,MAAS,UACT,GAAM,WACN,GAAM,gBACN,GAAM,UACN,GAAM,sBACN,GAAM,aACN,GAAM,oBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,YACN,GAAM,kBACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,cACN,GAAM,cACN,GAAM,uBACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,eACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,mBACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,mBACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,WACN,GAAM,cACN,GAAM,SACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,2BACN,GAAM,QACN,GAAM,SACN,GAAM,gBACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,OACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,WACN,GAAM,UACN,GAAM,gBACN,GAAM,QACN,GAAM,kBACN,GAAM,WACN,GAAM,WACN,GAAM,YACN,GAAM,WACN,GAAM,uBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,oBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,OACN,GAAM,iBACN,GAAM,aACN,GAAM,cACN,GAAM,SACN,GAAM,QACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,mBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,cACN,GAAM,SACN,GAAM,SACN,GAAM,YACN,GAAM,oBACN,GAAM,SACN,GAAM,2CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,yBACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,qCACN,GAAM,OACN,GAAM,OACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,WACN,GAAM,OACN,GAAM,QACN,GAAM,eACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,sBACN,GAAM,iBACN,GAAM,gBACN,GAAM,SACN,GAAM,eACN,GAAM,aACN,GAAM,OACN,GAAM,QACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,YACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,eACN,GAAM,aACN,GAAM,iBACN,GAAM,qBACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,0BACN,GAAM,YACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,SACN,GAAM,QACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,iBACN,GAAM,QACN,GAAM,eACN,GAAM,UACN,GAAM,YACN,GAAM,gBACN,GAAM,UACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,eACN,GAAM,OACN,GAAM,kBACN,GAAM,SACN,GAAM,OACN,GAAM,qBACN,GAAM,oBACN,GAAM,YACN,GAAM,WACN,GAAM,UACN,GAAM,0BACN,GAAM,iBACN,GAAM,cACN,GAAM,YACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,iBACN,GAAM,eACN,GAAM,aACN,GAAM,QACN,GAAM,SACN,GAAM,WACN,GAAM,4CACN,GAAM,YACN,GAAM,uBACN,GAAM,aACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,gBACN,GAAM,sBACN,GAAM,cACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,GAAM,mBACN,GAAM,uBACN,GAAM,OACN,GAAM,0CACN,GAAM,OACN,GAAM,YACN,GAAM,cACN,GAAM,UACN,GAAM,iBACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,oBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,8CACN,GAAM,eACN,GAAM,UACN,GAAM,aACN,GAAM,oBACN,GAAM,iCACN,GAAM,YACN,GAAM,2BACN,GAAM,+BACN,GAAM,UACN,GAAM,UACN,GAAM,kBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,aACN,GAAM,SACN,GAAM,WACN,GAAM,iB,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,OACX,MAAS,UACT,GAAM,WACN,GAAM,mBACN,GAAM,UACN,GAAM,0BACN,GAAM,cACN,GAAM,oBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,aACN,GAAM,YACN,GAAM,iBACN,GAAM,WACN,GAAM,YACN,GAAM,QACN,GAAM,mBACN,GAAM,cACN,GAAM,sBACN,GAAM,WACN,GAAM,YACN,GAAM,SACN,GAAM,eACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,mBACN,GAAM,UACN,GAAM,oBACN,GAAM,UACN,GAAM,iCACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,gBACN,GAAM,WACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,8BACN,GAAM,gCACN,GAAM,0BACN,GAAM,QACN,GAAM,YACN,GAAM,oBACN,GAAM,kBACN,GAAM,QACN,GAAM,UACN,GAAM,OACN,GAAM,WACN,GAAM,YACN,GAAM,OACN,GAAM,WACN,GAAM,UACN,GAAM,iBACN,GAAM,OACN,GAAM,kBACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,yBACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,sBACN,GAAM,+BACN,GAAM,kBACN,GAAM,UACN,GAAM,QACN,GAAM,qBACN,GAAM,UACN,GAAM,UACN,GAAM,qBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,mBACN,GAAM,QACN,GAAM,4CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,WACN,GAAM,uCACN,GAAM,WACN,GAAM,aACN,GAAM,QACN,GAAM,WACN,GAAM,YACN,GAAM,QACN,GAAM,SACN,GAAM,aACN,GAAM,QACN,GAAM,iCACN,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,OACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,wBACN,GAAM,gBACN,GAAM,cACN,GAAM,SACN,GAAM,oBACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,kBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,cACN,GAAM,WACN,GAAM,QACN,GAAM,SACN,GAAM,SACN,GAAM,YACN,GAAM,aACN,GAAM,kCACN,GAAM,aACN,GAAM,sBACN,GAAM,oBACN,GAAM,OACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,kBACN,GAAM,WACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,iBACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,cACN,GAAM,OACN,GAAM,eACN,GAAM,SACN,GAAM,OACN,GAAM,wBACN,GAAM,oBACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,0BACN,GAAM,WACN,GAAM,YACN,GAAM,YACN,GAAM,cACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,SACN,GAAM,QACN,GAAM,SACN,GAAM,iBACN,GAAM,sBACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,eACN,GAAM,YACN,GAAM,uBACN,GAAM,YACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,cACN,GAAM,wBACN,GAAM,WACN,GAAM,eACN,GAAM,QACN,GAAM,YACN,GAAM,mBACN,GAAM,yBACN,GAAM,OACN,GAAM,0BACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,UACN,GAAM,cACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,oBACN,GAAM,SACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,4BACN,GAAM,gBACN,GAAM,UACN,GAAM,aACN,GAAM,sCACN,GAAM,4BACN,GAAM,YACN,GAAM,4BACN,GAAM,wBACN,GAAM,UACN,GAAM,UACN,GAAM,kBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,WACN,GAAM,e,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,yBACX,MAAS,UACT,GAAM,WACN,GAAM,YACN,GAAM,UACN,GAAM,+BACN,GAAM,cACN,GAAM,sBACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,YACN,GAAM,cACN,GAAM,qBACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,cACN,GAAM,gBACN,GAAM,0BACN,GAAM,WACN,GAAM,cACN,GAAM,UACN,GAAM,eACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,oBACN,GAAM,WACN,GAAM,mCACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,gBACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,cACN,GAAM,iBACN,GAAM,+BACN,GAAM,oBACN,GAAM,UACN,GAAM,gBACN,GAAM,aACN,GAAM,QACN,GAAM,UACN,GAAM,QACN,GAAM,YACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,UACN,GAAM,kBACN,GAAM,SACN,GAAM,aACN,GAAM,cACN,GAAM,YACN,GAAM,WACN,GAAM,WACN,GAAM,0BACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,WACN,GAAM,UACN,GAAM,iBACN,GAAM,cACN,GAAM,SACN,GAAM,aACN,GAAM,QACN,GAAM,yBACN,GAAM,UACN,GAAM,WACN,GAAM,sBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,mBACN,GAAM,eACN,GAAM,+CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,mCACN,GAAM,oCACN,GAAM,WACN,GAAM,WACN,GAAM,QACN,GAAM,SACN,GAAM,aACN,GAAM,SACN,GAAM,SACN,GAAM,cACN,GAAM,SACN,GAAM,4CACN,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,QACN,GAAM,cACN,GAAM,aACN,GAAM,WACN,GAAM,UACN,GAAM,sBACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,eACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,YACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,kBACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,iBACN,GAAM,iBACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,gCACN,GAAM,qBACN,GAAM,aACN,GAAM,cACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,gBACN,GAAM,QACN,GAAM,eACN,GAAM,UACN,GAAM,YACN,GAAM,cACN,GAAM,WACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,aACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,OACN,GAAM,yBACN,GAAM,kBACN,GAAM,cACN,GAAM,WACN,GAAM,QACN,GAAM,0BACN,GAAM,iBACN,GAAM,cACN,GAAM,oCACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,SACN,GAAM,gBACN,GAAM,YACN,GAAM,aACN,GAAM,QACN,GAAM,WACN,GAAM,WACN,GAAM,aACN,GAAM,YACN,GAAM,4BACN,GAAM,WACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,WACN,GAAM,wBACN,GAAM,cACN,GAAM,eACN,GAAM,SACN,GAAM,YACN,GAAM,mBACN,GAAM,0BACN,GAAM,SACN,GAAM,yCACN,GAAM,OACN,GAAM,WACN,GAAM,gBACN,GAAM,UACN,GAAM,cACN,GAAM,eACN,GAAM,WACN,GAAM,QACN,GAAM,SACN,GAAM,sBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,8BACN,GAAM,qBACN,GAAM,UACN,GAAM,aACN,GAAM,eACN,GAAM,iCACN,GAAM,YACN,GAAM,2BACN,GAAM,+BACN,GAAM,UACN,GAAM,UACN,GAAM,oBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,SACN,GAAM,WACN,GAAM,iB,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,oBACX,MAAS,WACT,GAAM,WACN,GAAM,qBACN,GAAM,SACN,GAAM,0BACN,GAAM,aACN,GAAM,4BACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,aACN,GAAM,YACN,GAAM,oBACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,cACN,GAAM,eACN,GAAM,wBACN,GAAM,cACN,GAAM,cACN,GAAM,SACN,GAAM,iBACN,GAAM,YACN,GAAM,WACN,GAAM,aACN,GAAM,SACN,GAAM,qBACN,GAAM,YACN,GAAM,WACN,GAAM,UACN,GAAM,uBACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,eACN,GAAM,aACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,cACN,GAAM,eACN,GAAM,+BACN,GAAM,sBACN,GAAM,UACN,GAAM,wBACN,GAAM,aACN,GAAM,OACN,GAAM,WACN,GAAM,OACN,GAAM,WACN,GAAM,aACN,GAAM,QACN,GAAM,oBACN,GAAM,UACN,GAAM,4BACN,GAAM,SACN,GAAM,yBACN,GAAM,WACN,GAAM,YACN,GAAM,QACN,GAAM,WACN,GAAM,wBACN,GAAM,UACN,GAAM,aACN,GAAM,UACN,GAAM,WACN,GAAM,gBACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,YACN,GAAM,QACN,GAAM,gBACN,GAAM,aACN,GAAM,cACN,GAAM,SACN,GAAM,UACN,GAAM,mBACN,GAAM,UACN,GAAM,UACN,GAAM,kBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,cACN,GAAM,oBACN,GAAM,SACN,GAAM,2CACN,GAAM,aACN,GAAM,SACN,GAAM,kBACN,GAAM,UACN,GAAM,cACN,GAAM,sCACN,GAAM,UACN,GAAM,UACN,GAAM,OACN,GAAM,WACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,gBACN,GAAM,QACN,GAAM,uCACN,GAAM,OACN,GAAM,OACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,cACN,GAAM,WACN,GAAM,YACN,GAAM,UACN,GAAM,8BACN,GAAM,eACN,GAAM,cACN,GAAM,UACN,GAAM,eACN,GAAM,YACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,cACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,cACN,GAAM,iBACN,GAAM,4BACN,GAAM,eACN,GAAM,mBACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,oBACN,GAAM,YACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,YACN,GAAM,WACN,GAAM,gBACN,GAAM,UACN,GAAM,eACN,GAAM,UACN,GAAM,aACN,GAAM,aACN,GAAM,WACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,eACN,GAAM,OACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,oBACN,GAAM,qBACN,GAAM,aACN,GAAM,WACN,GAAM,UACN,GAAM,2BACN,GAAM,WACN,GAAM,eACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,kBACN,GAAM,mBACN,GAAM,YACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,aACN,GAAM,yBACN,GAAM,yBACN,GAAM,WACN,GAAM,cACN,GAAM,gBACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,eACN,GAAM,wBACN,GAAM,cACN,GAAM,eACN,GAAM,QACN,GAAM,cACN,GAAM,mBACN,GAAM,yBACN,GAAM,QACN,GAAM,sBACN,GAAM,QACN,GAAM,WACN,GAAM,cACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,0BACN,GAAM,WACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,mDACN,GAAM,qBACN,GAAM,aACN,GAAM,eACN,GAAM,qBACN,GAAM,iCACN,GAAM,aACN,GAAM,4BACN,GAAM,yBACN,GAAM,UACN,GAAM,YACN,GAAM,oBACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,aACN,GAAM,W,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,uBACX,MAAS,QACT,GAAM,WACN,GAAM,mBACN,GAAM,UACN,GAAM,uBACN,GAAM,cACN,GAAM,sBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,aACN,GAAM,YACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,gBACN,GAAM,aACN,GAAM,yBACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,eACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,mBACN,GAAM,UACN,GAAM,oBACN,GAAM,UACN,GAAM,mCACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,gBACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,0BACN,GAAM,oCACN,GAAM,2BACN,GAAM,QACN,GAAM,cACN,GAAM,gBACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,UACN,GAAM,mBACN,GAAM,SACN,GAAM,iBACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,qBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,UACN,GAAM,OACN,GAAM,mBACN,GAAM,iCACN,GAAM,gBACN,GAAM,SACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,UACN,GAAM,gBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,oBACN,GAAM,SACN,GAAM,+CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,oCACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,iCACN,GAAM,OACN,GAAM,OACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,wBACN,GAAM,cACN,GAAM,cACN,GAAM,SACN,GAAM,iBACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,6BACN,GAAM,aACN,GAAM,mBACN,GAAM,kBACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,2BACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,gBACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,cACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,cACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,OACN,GAAM,mBACN,GAAM,mBACN,GAAM,cACN,GAAM,WACN,GAAM,SACN,GAAM,4BACN,GAAM,WACN,GAAM,cACN,GAAM,YACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,eACN,GAAM,kBACN,GAAM,aACN,GAAM,QACN,GAAM,SACN,GAAM,YACN,GAAM,eACN,GAAM,WACN,GAAM,yBACN,GAAM,WACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,cACN,GAAM,wBACN,GAAM,cACN,GAAM,eACN,GAAM,QACN,GAAM,YACN,GAAM,mBACN,GAAM,2BACN,GAAM,OACN,GAAM,8BACN,GAAM,OACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,cACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,sBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,uCACN,GAAM,gBACN,GAAM,UACN,GAAM,aACN,GAAM,gCACN,GAAM,mCACN,GAAM,YACN,GAAM,0BACN,GAAM,uBACN,GAAM,UACN,GAAM,UACN,GAAM,oBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,WACN,GAAM,iB,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,8BACX,MAAS,WACT,GAAM,UACN,GAAM,iBACN,GAAM,UACN,GAAM,yBACN,GAAM,aACN,GAAM,oBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,YACN,GAAM,kBACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,cACN,GAAM,aACN,GAAM,uBACN,GAAM,WACN,GAAM,YACN,GAAM,UACN,GAAM,eACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,QACN,GAAM,gBACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,oBACN,GAAM,SACN,GAAM,UACN,GAAM,QACN,GAAM,cACN,GAAM,WACN,GAAM,cACN,GAAM,SACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,2BACN,GAAM,QACN,GAAM,QACN,GAAM,kBACN,GAAM,aACN,GAAM,QACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,UACN,GAAM,kBACN,GAAM,SACN,GAAM,kBACN,GAAM,WACN,GAAM,SACN,GAAM,YACN,GAAM,WACN,GAAM,uBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,oBACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,YACN,GAAM,OACN,GAAM,iBACN,GAAM,aACN,GAAM,cACN,GAAM,UACN,GAAM,QACN,GAAM,cACN,GAAM,UACN,GAAM,UACN,GAAM,mBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,cACN,GAAM,SACN,GAAM,SACN,GAAM,YACN,GAAM,oBACN,GAAM,SACN,GAAM,+CACN,GAAM,YACN,GAAM,OACN,GAAM,eACN,GAAM,SACN,GAAM,YACN,GAAM,yBACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,yCACN,GAAM,OACN,GAAM,OACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,yBACN,GAAM,kBACN,GAAM,gBACN,GAAM,SACN,GAAM,eACN,GAAM,YACN,GAAM,oCACN,GAAM,SACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,yBACN,GAAM,YACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,iBACN,GAAM,YACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,2BACN,GAAM,YACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,kBACN,GAAM,QACN,GAAM,eACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,gBACN,GAAM,OACN,GAAM,iBACN,GAAM,SACN,GAAM,OACN,GAAM,qBACN,GAAM,qBACN,GAAM,YACN,GAAM,WACN,GAAM,UACN,GAAM,uBACN,GAAM,WACN,GAAM,cACN,GAAM,+BACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,kBACN,GAAM,SACN,GAAM,iBACN,GAAM,gBACN,GAAM,aACN,GAAM,QACN,GAAM,SACN,GAAM,WACN,GAAM,6CACN,GAAM,YACN,GAAM,uBACN,GAAM,aACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,eACN,GAAM,wBACN,GAAM,cACN,GAAM,eACN,GAAM,wBACN,GAAM,cACN,GAAM,mBACN,GAAM,wBACN,GAAM,OACN,GAAM,kCACN,GAAM,OACN,GAAM,YACN,GAAM,aACN,GAAM,UACN,GAAM,cACN,GAAM,eACN,GAAM,QACN,GAAM,QACN,GAAM,UACN,GAAM,oBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,8CACN,GAAM,iBACN,GAAM,UACN,GAAM,aACN,GAAM,mCACN,GAAM,+BACN,GAAM,YACN,GAAM,4BACN,GAAM,yBACN,GAAM,UACN,GAAM,UACN,GAAM,kBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,SACN,GAAM,WACN,GAAM,iB,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,OACX,MAAS,iBACT,GAAM,WACN,GAAM,YACN,GAAM,UACN,GAAM,yBACN,GAAM,aACN,GAAM,qBACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,aACN,GAAM,YACN,GAAM,iBACN,GAAM,UACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,eACN,GAAM,0BACN,GAAM,WACN,GAAM,aACN,GAAM,SACN,GAAM,eACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,mBACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,+BACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,eACN,GAAM,WACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,eACN,GAAM,WACN,GAAM,wBACN,GAAM,iBACN,GAAM,SACN,GAAM,gBACN,GAAM,eACN,GAAM,SACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,QACN,GAAM,kBACN,GAAM,UACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,uBACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,UACN,GAAM,YACN,GAAM,WACN,GAAM,QACN,GAAM,QACN,GAAM,mBACN,GAAM,cACN,GAAM,eACN,GAAM,cACN,GAAM,QACN,GAAM,gBACN,GAAM,UACN,GAAM,UACN,GAAM,qBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,qBACN,GAAM,SACN,GAAM,0CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,8BACN,GAAM,6BACN,GAAM,WACN,GAAM,YACN,GAAM,QACN,GAAM,SACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,0BACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,uBACN,GAAM,cACN,GAAM,cACN,GAAM,SACN,GAAM,gBACN,GAAM,YACN,GAAM,OACN,GAAM,WACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,aACN,GAAM,OACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,eACN,GAAM,aACN,GAAM,mBACN,GAAM,mBACN,GAAM,OACN,GAAM,kBACN,GAAM,YACN,GAAM,0BACN,GAAM,kBACN,GAAM,aACN,GAAM,cACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,UACN,GAAM,WACN,GAAM,YACN,GAAM,WACN,GAAM,iBACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,YACN,GAAM,UACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,cACN,GAAM,QACN,GAAM,iBACN,GAAM,SACN,GAAM,QACN,GAAM,uBACN,GAAM,oBACN,GAAM,aACN,GAAM,WACN,GAAM,QACN,GAAM,2BACN,GAAM,mBACN,GAAM,cACN,GAAM,kBACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,gBACN,GAAM,mBACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,eACN,GAAM,YACN,GAAM,wBACN,GAAM,YACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,WACN,GAAM,WACN,GAAM,eACN,GAAM,uBACN,GAAM,cACN,GAAM,eACN,GAAM,SACN,GAAM,YACN,GAAM,mBACN,GAAM,kBACN,GAAM,QACN,GAAM,sBACN,GAAM,OACN,GAAM,MACN,GAAM,cACN,GAAM,UACN,GAAM,YACN,GAAM,eACN,GAAM,WACN,GAAM,QACN,GAAM,QACN,GAAM,qBACN,GAAM,SACN,GAAM,SACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,0BACN,GAAM,uBACN,GAAM,UACN,GAAM,aACN,GAAM,UACN,GAAM,+BACN,GAAM,YACN,GAAM,qBACN,GAAM,mBACN,GAAM,UACN,GAAM,UACN,GAAM,mBACN,GAAM,QACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,yBACN,GAAM,SACN,GAAM,WACN,GAAM,kB,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,MACX,MAAS,gBACT,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,oBACN,GAAM,aACN,GAAM,qBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,aACN,GAAM,iBACN,GAAM,WACN,GAAM,YACN,GAAM,QACN,GAAM,aACN,GAAM,cACN,GAAM,yBACN,GAAM,WACN,GAAM,aACN,GAAM,SACN,GAAM,eACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,mBACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,kCACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,gBACN,GAAM,WACN,GAAM,eACN,GAAM,SACN,GAAM,SACN,GAAM,eACN,GAAM,kCACN,GAAM,0BACN,GAAM,mBACN,GAAM,UACN,GAAM,oBACN,GAAM,eACN,GAAM,QACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,UACN,GAAM,aACN,GAAM,SACN,GAAM,SACN,GAAM,QACN,GAAM,WACN,GAAM,SACN,GAAM,WACN,GAAM,2BACN,GAAM,UACN,GAAM,UACN,GAAM,OACN,GAAM,SACN,GAAM,eACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,QACN,GAAM,mBACN,GAAM,2BACN,GAAM,YACN,GAAM,SACN,GAAM,QACN,GAAM,2BACN,GAAM,UACN,GAAM,UACN,GAAM,kBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,wBACN,GAAM,UACN,GAAM,4CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,WACN,GAAM,4BACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,QACN,GAAM,sCACN,GAAM,OACN,GAAM,OACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,WACN,GAAM,SACN,GAAM,QACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,uBACN,GAAM,wCACN,GAAM,mBACN,GAAM,SACN,GAAM,eACN,GAAM,YACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,eACN,GAAM,aACN,GAAM,mBACN,GAAM,oBACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,oBACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,iBACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,aACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,gBACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,OACN,GAAM,oBACN,GAAM,oBACN,GAAM,cACN,GAAM,WACN,GAAM,QACN,GAAM,2BACN,GAAM,WACN,GAAM,cACN,GAAM,aACN,GAAM,YACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,eACN,GAAM,gBACN,GAAM,aACN,GAAM,QACN,GAAM,SACN,GAAM,YACN,GAAM,eACN,GAAM,WACN,GAAM,wBACN,GAAM,WACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,cACN,GAAM,uBACN,GAAM,cACN,GAAM,eACN,GAAM,SACN,GAAM,WACN,GAAM,mBACN,GAAM,yBACN,GAAM,OACN,GAAM,2BACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,UACN,GAAM,YACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,qBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,oCACN,GAAM,cACN,GAAM,UACN,GAAM,aACN,GAAM,kBACN,GAAM,+BACN,GAAM,YACN,GAAM,6BACN,GAAM,6BACN,GAAM,UACN,GAAM,UACN,GAAM,yBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,gBACN,GAAM,SACN,GAAM,WACN,GAAM,kB,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,2BACX,MAAS,YACT,GAAM,WACN,GAAM,qBACN,GAAM,UACN,GAAM,sBACN,GAAM,cACN,GAAM,qBACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,SACN,GAAM,cACN,GAAM,YACN,GAAM,qBACN,GAAM,WACN,GAAM,YACN,GAAM,QACN,GAAM,cACN,GAAM,eACN,GAAM,sBACN,GAAM,UACN,GAAM,aACN,GAAM,WACN,GAAM,eACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,kBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,qBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,aACN,GAAM,WACN,GAAM,cACN,GAAM,SACN,GAAM,SACN,GAAM,0BACN,GAAM,qCACN,GAAM,eACN,GAAM,sBACN,GAAM,SACN,GAAM,iBACN,GAAM,YACN,GAAM,QACN,GAAM,WACN,GAAM,gCACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,mBACN,GAAM,WACN,GAAM,gCACN,GAAM,SACN,GAAM,yBACN,GAAM,YACN,GAAM,WACN,GAAM,WACN,GAAM,YACN,GAAM,4BACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,oBACN,GAAM,YACN,GAAM,UACN,GAAM,WACN,GAAM,WACN,GAAM,QACN,GAAM,gBACN,GAAM,iCACN,GAAM,eACN,GAAM,SACN,GAAM,QACN,GAAM,qCACN,GAAM,UACN,GAAM,WACN,GAAM,oBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,wBACN,GAAM,aACN,GAAM,sBACN,GAAM,SACN,GAAM,8CACN,GAAM,YACN,GAAM,OACN,GAAM,iBACN,GAAM,SACN,GAAM,YACN,GAAM,iCACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,aACN,GAAM,OACN,GAAM,4CACN,GAAM,OACN,GAAM,OACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,YACN,GAAM,WACN,GAAM,QACN,GAAM,QACN,GAAM,eACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,sCACN,GAAM,+DACN,GAAM,sCACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,OACN,GAAM,QACN,GAAM,YACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,aACN,GAAM,WACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,WACN,GAAM,4BACN,GAAM,aACN,GAAM,aACN,GAAM,gBACN,GAAM,yCACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,iBACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,cACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,sBACN,GAAM,QACN,GAAM,cACN,GAAM,UACN,GAAM,YACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,QACN,GAAM,OACN,GAAM,oBACN,GAAM,OACN,GAAM,wBACN,GAAM,SACN,GAAM,SACN,GAAM,wBACN,GAAM,6BACN,GAAM,cACN,GAAM,WACN,GAAM,UACN,GAAM,yBACN,GAAM,gBACN,GAAM,aACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,WACN,GAAM,QACN,GAAM,qBACN,GAAM,WACN,GAAM,sBACN,GAAM,2BACN,GAAM,SACN,GAAM,kBACN,GAAM,eACN,GAAM,aACN,GAAM,SACN,GAAM,SACN,GAAM,YACN,GAAM,8CACN,GAAM,YACN,GAAM,uDACN,GAAM,YACN,GAAM,eACN,GAAM,WACN,GAAM,YACN,GAAM,UACN,GAAM,WACN,GAAM,gBACN,GAAM,uBACN,GAAM,cACN,GAAM,uBACN,GAAM,QACN,GAAM,YACN,GAAM,uBACN,GAAM,sBACN,GAAM,QACN,GAAM,8CACN,GAAM,OACN,GAAM,aACN,GAAM,cACN,GAAM,UACN,GAAM,iBACN,GAAM,gBACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,qBACN,GAAM,SACN,GAAM,0BACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,2CACN,GAAM,yBACN,GAAM,UACN,GAAM,eACN,GAAM,UACN,GAAM,4BACN,GAAM,YACN,GAAM,sCACN,GAAM,4BACN,GAAM,YACN,GAAM,UACN,GAAM,mBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,iBACN,GAAM,SACN,GAAM,WACN,GAAM,iB,0DClQR,QAAe,CACb,IAAO,QACP,QAAW,iBACX,MAAS,QACT,GAAM,SACN,GAAM,aACN,GAAM,SACN,GAAM,0BACN,GAAM,WACN,GAAM,mBACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,WACN,GAAM,iBACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,oBACN,GAAM,SACN,GAAM,SACN,GAAM,QACN,GAAM,eACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,OACN,GAAM,iBACN,GAAM,SACN,GAAM,iBACN,GAAM,UACN,GAAM,2BACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,OACN,GAAM,OACN,GAAM,qBACN,GAAM,gCACN,GAAM,2BACN,GAAM,QACN,GAAM,QACN,GAAM,YACN,GAAM,UACN,GAAM,QACN,GAAM,QACN,GAAM,MACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,YACN,GAAM,SACN,GAAM,cACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,wBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,eACN,GAAM,WACN,GAAM,OACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,aACN,GAAM,8BACN,GAAM,WACN,GAAM,OACN,GAAM,OACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,gBACN,GAAM,QACN,GAAM,OACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,QACN,GAAM,WACN,GAAM,iBACN,GAAM,OACN,GAAM,uCACN,GAAM,UACN,GAAM,OACN,GAAM,cACN,GAAM,QACN,GAAM,YACN,GAAM,uBACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,SACN,GAAM,QACN,GAAM,SACN,GAAM,OACN,GAAM,oCACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,kBACN,GAAM,cACN,GAAM,cACN,GAAM,QACN,GAAM,YACN,GAAM,SACN,GAAM,OACN,GAAM,QACN,GAAM,eACN,GAAM,aACN,GAAM,WACN,GAAM,SACN,GAAM,QACN,GAAM,OACN,GAAM,YACN,GAAM,QACN,GAAM,MACN,GAAM,QACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,wBACN,GAAM,SACN,GAAM,WACN,GAAM,eACN,GAAM,MACN,GAAM,SACN,GAAM,WACN,GAAM,OACN,GAAM,sBACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,OACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,gBACN,GAAM,QACN,GAAM,YACN,GAAM,SACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,OACN,GAAM,QACN,GAAM,QACN,GAAM,YACN,GAAM,OACN,GAAM,cACN,GAAM,OACN,GAAM,MACN,GAAM,mBACN,GAAM,oBACN,GAAM,YACN,GAAM,SACN,GAAM,QACN,GAAM,mBACN,GAAM,SACN,GAAM,aACN,GAAM,SACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,OACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,cACN,GAAM,WACN,GAAM,YACN,GAAM,OACN,GAAM,QACN,GAAM,UACN,GAAM,cACN,GAAM,UACN,GAAM,oBACN,GAAM,UACN,GAAM,cACN,GAAM,WACN,GAAM,OACN,GAAM,SACN,GAAM,UACN,GAAM,YACN,GAAM,qBACN,GAAM,YACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,kBACN,GAAM,oBACN,GAAM,OACN,GAAM,+BACN,GAAM,OACN,GAAM,SACN,GAAM,YACN,GAAM,SACN,GAAM,aACN,GAAM,aACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,iBACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,SACN,GAAM,8BACN,GAAM,cACN,GAAM,YACN,GAAM,YACN,GAAM,UACN,GAAM,wBACN,GAAM,UACN,GAAM,sBACN,GAAM,4BACN,GAAM,UACN,GAAM,SACN,GAAM,iBACN,GAAM,QACN,GAAM,SACN,GAAM,OACN,GAAM,OACN,GAAM,cACN,GAAM,QACN,GAAM,UACN,GAAM,Y,0DClQR,QAAe,CACb,IAAO,QACP,QAAW,uBACX,MAAS,UACT,GAAM,UACN,GAAM,iBACN,GAAM,UACN,GAAM,6BACN,GAAM,YACN,GAAM,uBACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,SACN,GAAM,aACN,GAAM,YACN,GAAM,kBACN,GAAM,UACN,GAAM,YACN,GAAM,SACN,GAAM,mBACN,GAAM,WACN,GAAM,wBACN,GAAM,WACN,GAAM,YACN,GAAM,SACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,oBACN,GAAM,qBACN,GAAM,UACN,GAAM,UACN,GAAM,mCACN,GAAM,WACN,GAAM,mBACN,GAAM,SACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,QACN,GAAM,SACN,GAAM,mBACN,GAAM,sCACN,GAAM,uCACN,GAAM,QACN,GAAM,YACN,GAAM,eACN,GAAM,gBACN,GAAM,OACN,GAAM,WACN,GAAM,WACN,GAAM,YACN,GAAM,aACN,GAAM,QACN,GAAM,aACN,GAAM,YACN,GAAM,eACN,GAAM,SACN,GAAM,QACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,6BACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,kBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,OACN,GAAM,sBACN,GAAM,aACN,GAAM,mBACN,GAAM,UACN,GAAM,QACN,GAAM,eACN,GAAM,UACN,GAAM,UACN,GAAM,oBACN,GAAM,SACN,GAAM,OACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,oBACN,GAAM,YACN,GAAM,mDACN,GAAM,YACN,GAAM,QACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,+BACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,YACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,YACN,GAAM,YACN,GAAM,0CACN,GAAM,OACN,GAAM,OACN,GAAM,WACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,qBACN,GAAM,gBACN,GAAM,kBACN,GAAM,UACN,GAAM,oBACN,GAAM,YACN,GAAM,OACN,GAAM,UACN,GAAM,eACN,GAAM,cACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,gBACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,cACN,GAAM,aACN,GAAM,oBACN,GAAM,YACN,GAAM,OACN,GAAM,SACN,GAAM,WACN,GAAM,QACN,GAAM,iCACN,GAAM,YACN,GAAM,aACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,UACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,gBACN,GAAM,QACN,GAAM,eACN,GAAM,UACN,GAAM,aACN,GAAM,cACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,QACN,GAAM,eACN,GAAM,OACN,GAAM,mBACN,GAAM,SACN,GAAM,QACN,GAAM,uBACN,GAAM,oBACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,uBACN,GAAM,qBACN,GAAM,eACN,GAAM,wBACN,GAAM,cACN,GAAM,SACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,YACN,GAAM,UACN,GAAM,kBACN,GAAM,qBACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,YACN,GAAM,oBACN,GAAM,WACN,GAAM,wBACN,GAAM,WACN,GAAM,cACN,GAAM,aACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,mBACN,GAAM,uBACN,GAAM,WACN,GAAM,eACN,GAAM,QACN,GAAM,YACN,GAAM,oBACN,GAAM,6BACN,GAAM,MACN,GAAM,iCACN,GAAM,OACN,GAAM,UACN,GAAM,YACN,GAAM,WACN,GAAM,cACN,GAAM,eACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,qBACN,GAAM,WACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,kCACN,GAAM,oBACN,GAAM,YACN,GAAM,aACN,GAAM,UACN,GAAM,6BACN,GAAM,aACN,GAAM,+BACN,GAAM,0BACN,GAAM,UACN,GAAM,YACN,GAAM,qBACN,GAAM,QACN,GAAM,SACN,GAAM,OACN,GAAM,UACN,GAAM,mBACN,GAAM,SACN,GAAM,WACN,GAAM,c,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,+BACX,MAAS,WACT,GAAM,WACN,GAAM,mBACN,GAAM,UACN,GAAM,sBACN,GAAM,cACN,GAAM,oBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,YACN,GAAM,kBACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,cACN,GAAM,cACN,GAAM,oBACN,GAAM,WACN,GAAM,aACN,GAAM,SACN,GAAM,eACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,oBACN,GAAM,mCACN,GAAM,iCACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,gBACN,GAAM,WACN,GAAM,cACN,GAAM,SACN,GAAM,SACN,GAAM,wBACN,GAAM,oCACN,GAAM,2BACN,GAAM,QACN,GAAM,WACN,GAAM,iBACN,GAAM,eACN,GAAM,OACN,GAAM,UACN,GAAM,OACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,UACN,GAAM,kBACN,GAAM,QACN,GAAM,kBACN,GAAM,WACN,GAAM,SACN,GAAM,YACN,GAAM,WACN,GAAM,wBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,qBACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,YACN,GAAM,OACN,GAAM,4BACN,GAAM,gCACN,GAAM,cACN,GAAM,UACN,GAAM,QACN,GAAM,cACN,GAAM,UACN,GAAM,UACN,GAAM,kBACN,GAAM,WACN,GAAM,QACN,GAAM,aACN,GAAM,cACN,GAAM,SACN,GAAM,SACN,GAAM,YACN,GAAM,qBACN,GAAM,SACN,GAAM,8CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,kCACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,eACN,GAAM,QACN,GAAM,4CACN,GAAM,OACN,GAAM,sCACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,SACN,GAAM,WACN,GAAM,QACN,GAAM,eACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,sBACN,GAAM,4CACN,GAAM,uBACN,GAAM,SACN,GAAM,eACN,GAAM,aACN,GAAM,2CACN,GAAM,SACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,cACN,GAAM,WACN,GAAM,2BACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,gCACN,GAAM,aACN,GAAM,iBACN,GAAM,0CACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,0BACN,GAAM,YACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,kBACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,cACN,GAAM,WACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,gBACN,GAAM,OACN,GAAM,kBACN,GAAM,SACN,GAAM,OACN,GAAM,qBACN,GAAM,qBACN,GAAM,YACN,GAAM,WACN,GAAM,UACN,GAAM,0BACN,GAAM,WACN,GAAM,cACN,GAAM,kCACN,GAAM,aACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,oBACN,GAAM,SACN,GAAM,iBACN,GAAM,iBACN,GAAM,aACN,GAAM,QACN,GAAM,SACN,GAAM,YACN,GAAM,6CACN,GAAM,WACN,GAAM,uBACN,GAAM,aACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,YACN,GAAM,sBACN,GAAM,cACN,GAAM,eACN,GAAM,2BACN,GAAM,YACN,GAAM,mBACN,GAAM,uBACN,GAAM,OACN,GAAM,6BACN,GAAM,OACN,GAAM,aACN,GAAM,aACN,GAAM,UACN,GAAM,YACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,oBACN,GAAM,SACN,GAAM,4BACN,GAAM,gCACN,GAAM,UACN,GAAM,SACN,GAAM,yCACN,GAAM,cACN,GAAM,UACN,GAAM,aACN,GAAM,8CACN,GAAM,+BACN,GAAM,YACN,GAAM,4BACN,GAAM,0BACN,GAAM,UACN,GAAM,UACN,GAAM,kBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,SACN,GAAM,WACN,GAAM,kB,0DClQR,QAAe,CACb,IAAO,IACP,QAAW,SACX,MAAS,OACT,GAAM,aACN,GAAM,UACN,GAAM,OACN,GAAM,WACN,GAAM,UACN,GAAM,eACN,GAAM,OACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,KACN,GAAM,SACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,MACN,GAAM,UACN,GAAM,WACN,GAAM,eACN,GAAM,QACN,GAAM,UACN,GAAM,OACN,GAAM,UACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,MACN,GAAM,YACN,GAAM,QACN,GAAM,cACN,GAAM,WACN,GAAM,yBACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,QACN,GAAM,OACN,GAAM,MACN,GAAM,eACN,GAAM,WACN,GAAM,YACN,GAAM,SACN,GAAM,MACN,GAAM,WACN,GAAM,QACN,GAAM,KACN,GAAM,QACN,GAAM,UACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,SACN,GAAM,QACN,GAAM,SACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,QACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,OACN,GAAM,QACN,GAAM,OACN,GAAM,QACN,GAAM,SACN,GAAM,OACN,GAAM,mBACN,GAAM,WACN,GAAM,SACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,MACN,GAAM,SACN,GAAM,UACN,GAAM,OACN,GAAM,MACN,GAAM,SACN,GAAM,QACN,GAAM,OACN,GAAM,wBACN,GAAM,QACN,GAAM,MACN,GAAM,SACN,GAAM,OACN,GAAM,KACN,GAAM,gBACN,GAAM,SACN,GAAM,QACN,GAAM,MACN,GAAM,QACN,GAAM,SACN,GAAM,SACN,GAAM,QACN,GAAM,MACN,GAAM,MACN,GAAM,cACN,GAAM,MACN,GAAM,cACN,GAAM,SACN,GAAM,OACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,KACN,GAAM,MACN,GAAM,OACN,GAAM,QACN,GAAM,OACN,GAAM,KACN,GAAM,kBACN,GAAM,cACN,GAAM,OACN,GAAM,QACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,OACN,GAAM,SACN,GAAM,YACN,GAAM,QACN,GAAM,OACN,GAAM,MACN,GAAM,QACN,GAAM,UACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,MACN,GAAM,UACN,GAAM,SACN,GAAM,iBACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,KACN,GAAM,QACN,GAAM,OACN,GAAM,MACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,MACN,GAAM,SACN,GAAM,QACN,GAAM,OACN,GAAM,OACN,GAAM,QACN,GAAM,SACN,GAAM,OACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,OACN,GAAM,QACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,WACN,GAAM,OACN,GAAM,WACN,GAAM,MACN,GAAM,MACN,GAAM,aACN,GAAM,YACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,gBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,MACN,GAAM,QACN,GAAM,OACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,QACN,GAAM,OACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,OACN,GAAM,SACN,GAAM,SACN,GAAM,6BACN,GAAM,QACN,GAAM,sBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,QACN,GAAM,aACN,GAAM,UACN,GAAM,mBACN,GAAM,aACN,GAAM,SACN,GAAM,aACN,GAAM,cACN,GAAM,MACN,GAAM,eACN,GAAM,MACN,GAAM,KACN,GAAM,SACN,GAAM,OACN,GAAM,SACN,GAAM,WACN,GAAM,QACN,GAAM,MACN,GAAM,MACN,GAAM,aACN,GAAM,MACN,GAAM,KACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,uBACN,GAAM,gBACN,GAAM,eACN,GAAM,eACN,GAAM,OACN,GAAM,OACN,GAAM,WACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,QACN,GAAM,OACN,GAAM,QACN,GAAM,M,0DClQR,QAAe,CACb,IAAO,KACP,QAAW,UACX,MAAS,OACT,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,MACN,GAAM,OACN,GAAM,QACN,GAAM,MACN,GAAM,QACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,MACN,GAAM,SACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,QACN,GAAM,MACN,GAAM,SACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,KACN,GAAM,SACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,YACN,GAAM,MACN,GAAM,MACN,GAAM,KACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,SACN,GAAM,SACN,GAAM,cACN,GAAM,UACN,GAAM,MACN,GAAM,SACN,GAAM,OACN,GAAM,KACN,GAAM,MACN,GAAM,KACN,GAAM,OACN,GAAM,QACN,GAAM,KACN,GAAM,QACN,GAAM,MACN,GAAM,SACN,GAAM,OACN,GAAM,KACN,GAAM,KACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,WACN,GAAM,MACN,GAAM,OACN,GAAM,QACN,GAAM,MACN,GAAM,OACN,GAAM,QACN,GAAM,MACN,GAAM,QACN,GAAM,MACN,GAAM,KACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,MACN,GAAM,KACN,GAAM,KACN,GAAM,OACN,GAAM,MACN,GAAM,WACN,GAAM,KACN,GAAM,KACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,KACN,GAAM,OACN,GAAM,QACN,GAAM,MACN,GAAM,oBACN,GAAM,OACN,GAAM,IACN,GAAM,QACN,GAAM,OACN,GAAM,eACN,GAAM,aACN,GAAM,OACN,GAAM,QACN,GAAM,MACN,GAAM,MACN,GAAM,QACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,KACN,GAAM,cACN,GAAM,MACN,GAAM,KACN,GAAM,QACN,GAAM,OACN,GAAM,KACN,GAAM,OACN,GAAM,MACN,GAAM,KACN,GAAM,KACN,GAAM,SACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,YACN,GAAM,KACN,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,QACN,GAAM,MACN,GAAM,MACN,GAAM,SACN,GAAM,SACN,GAAM,OACN,GAAM,QACN,GAAM,MACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,QACN,GAAM,OACN,GAAM,SACN,GAAM,QACN,GAAM,SACN,GAAM,KACN,GAAM,MACN,GAAM,KACN,GAAM,gBACN,GAAM,UACN,GAAM,QACN,GAAM,OACN,GAAM,QACN,GAAM,KACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,QACN,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,MACN,GAAM,MACN,GAAM,QACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,KACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,KACN,GAAM,QACN,GAAM,MACN,GAAM,KACN,GAAM,aACN,GAAM,SACN,GAAM,MACN,GAAM,OACN,GAAM,MACN,GAAM,WACN,GAAM,QACN,GAAM,SACN,GAAM,WACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,UACN,GAAM,SACN,GAAM,MACN,GAAM,KACN,GAAM,MACN,GAAM,OACN,GAAM,SACN,GAAM,QACN,GAAM,cACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,WACN,GAAM,QACN,GAAM,QACN,GAAM,MACN,GAAM,QACN,GAAM,UACN,GAAM,cACN,GAAM,KACN,GAAM,YACN,GAAM,KACN,GAAM,KACN,GAAM,QACN,GAAM,OACN,GAAM,OACN,GAAM,UACN,GAAM,MACN,GAAM,KACN,GAAM,KACN,GAAM,YACN,GAAM,MACN,GAAM,KACN,GAAM,OACN,GAAM,QACN,GAAM,MACN,GAAM,YACN,GAAM,KACN,GAAM,OACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,QACN,GAAM,aACN,GAAM,aACN,GAAM,MACN,GAAM,OACN,GAAM,aACN,GAAM,MACN,GAAM,MACN,GAAM,KACN,GAAM,MACN,GAAM,QACN,GAAM,MACN,GAAM,OACN,GAAM,Q,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,qBACX,MAAS,UACT,GAAM,WACN,GAAM,mBACN,GAAM,UACN,GAAM,+BACN,GAAM,cACN,GAAM,qBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,aACN,GAAM,YACN,GAAM,mBACN,GAAM,YACN,GAAM,YACN,GAAM,QACN,GAAM,QACN,GAAM,eACN,GAAM,qBACN,GAAM,WACN,GAAM,aACN,GAAM,SACN,GAAM,eACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,mBACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,WACN,GAAM,gBACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,mCACN,GAAM,kCACN,GAAM,QACN,GAAM,SACN,GAAM,kBACN,GAAM,YACN,GAAM,QACN,GAAM,UACN,GAAM,OACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,6BACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,cACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,UACN,GAAM,OACN,GAAM,gBACN,GAAM,aACN,GAAM,WACN,GAAM,YACN,GAAM,QACN,GAAM,gBACN,GAAM,UACN,GAAM,UACN,GAAM,gBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,oBACN,GAAM,SACN,GAAM,cACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,4BACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,MACN,GAAM,QACN,GAAM,uCACN,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,cACN,GAAM,YACN,GAAM,WACN,GAAM,WACN,GAAM,uBACN,GAAM,aACN,GAAM,YACN,GAAM,SACN,GAAM,cACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,aACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,eACN,GAAM,aACN,GAAM,gBACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,iBACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,eACN,GAAM,QACN,GAAM,aACN,GAAM,UACN,GAAM,YACN,GAAM,YACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,cACN,GAAM,OACN,GAAM,cACN,GAAM,SACN,GAAM,OACN,GAAM,mBACN,GAAM,kBACN,GAAM,cACN,GAAM,WACN,GAAM,QACN,GAAM,2BACN,GAAM,gBACN,GAAM,cACN,GAAM,YACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,SACN,GAAM,eACN,GAAM,eACN,GAAM,cACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,eACN,GAAM,WACN,GAAM,wBACN,GAAM,WACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,uBACN,GAAM,cACN,GAAM,eACN,GAAM,QACN,GAAM,YACN,GAAM,mBACN,GAAM,wBACN,GAAM,QACN,GAAM,4BACN,GAAM,OACN,GAAM,WACN,GAAM,eACN,GAAM,UACN,GAAM,YACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,qBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,0BACN,GAAM,gCACN,GAAM,UACN,GAAM,aACN,GAAM,mBACN,GAAM,+BACN,GAAM,YACN,GAAM,0BACN,GAAM,qBACN,GAAM,UACN,GAAM,UACN,GAAM,mBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,aACN,GAAM,SACN,GAAM,WACN,GAAM,iB,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,sBACX,MAAS,WACT,GAAM,WACN,GAAM,mBACN,GAAM,UACN,GAAM,+BACN,GAAM,cACN,GAAM,qBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,aACN,GAAM,aACN,GAAM,mBACN,GAAM,aACN,GAAM,YACN,GAAM,QACN,GAAM,iBACN,GAAM,eACN,GAAM,wBACN,GAAM,WACN,GAAM,aACN,GAAM,SACN,GAAM,eACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,mBACN,GAAM,UACN,GAAM,oBACN,GAAM,UACN,GAAM,kCACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,gBACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,2BACN,GAAM,wCACN,GAAM,gCACN,GAAM,QACN,GAAM,cACN,GAAM,YACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,UACN,GAAM,mBACN,GAAM,SACN,GAAM,wBACN,GAAM,YACN,GAAM,WACN,GAAM,aACN,GAAM,WACN,GAAM,yBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,oBACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,GAAM,OACN,GAAM,mBACN,GAAM,iCACN,GAAM,mBACN,GAAM,SACN,GAAM,QACN,GAAM,sBACN,GAAM,UACN,GAAM,UACN,GAAM,eACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,qBACN,GAAM,cACN,GAAM,iDACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,oCACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,0CACN,GAAM,OACN,GAAM,OACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,uBACN,GAAM,cACN,GAAM,aACN,GAAM,UACN,GAAM,kBACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,YACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,4BACN,GAAM,aACN,GAAM,mBACN,GAAM,kBACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,uBACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,kBACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,YACN,GAAM,YACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,gBACN,GAAM,OACN,GAAM,eACN,GAAM,SACN,GAAM,OACN,GAAM,kBACN,GAAM,sBACN,GAAM,aACN,GAAM,WACN,GAAM,QACN,GAAM,2BACN,GAAM,WACN,GAAM,cACN,GAAM,YACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,eACN,GAAM,mBACN,GAAM,aACN,GAAM,SACN,GAAM,SACN,GAAM,YACN,GAAM,eACN,GAAM,WACN,GAAM,wBACN,GAAM,YACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,cACN,GAAM,uBACN,GAAM,cACN,GAAM,eACN,GAAM,QACN,GAAM,YACN,GAAM,mBACN,GAAM,2BACN,GAAM,SACN,GAAM,6BACN,GAAM,OACN,GAAM,WACN,GAAM,eACN,GAAM,UACN,GAAM,cACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,qBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,8CACN,GAAM,mBACN,GAAM,UACN,GAAM,cACN,GAAM,+BACN,GAAM,iCACN,GAAM,YACN,GAAM,yBACN,GAAM,uBACN,GAAM,UACN,GAAM,UACN,GAAM,mBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,cACN,GAAM,SACN,GAAM,WACN,GAAM,iB,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,uBACX,MAAS,UACT,GAAM,WACN,GAAM,yBACN,GAAM,SACN,GAAM,+BACN,GAAM,aACN,GAAM,oBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,aACN,GAAM,YACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,kBACN,GAAM,cACN,GAAM,uBACN,GAAM,WACN,GAAM,aACN,GAAM,SACN,GAAM,eACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,mBACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,iCACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,gBACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,iBACN,GAAM,gCACN,GAAM,+BACN,GAAM,QACN,GAAM,aACN,GAAM,2BACN,GAAM,cACN,GAAM,QACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,YACN,GAAM,OACN,GAAM,gCACN,GAAM,UACN,GAAM,0BACN,GAAM,OACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,mBACN,GAAM,kBACN,GAAM,YACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,YACN,GAAM,aACN,GAAM,cACN,GAAM,UACN,GAAM,QACN,GAAM,kBACN,GAAM,UACN,GAAM,SACN,GAAM,mBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,SACN,GAAM,YACN,GAAM,mBACN,GAAM,SACN,GAAM,2CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,WACN,GAAM,0BACN,GAAM,WACN,GAAM,YACN,GAAM,QACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,YACN,GAAM,QACN,GAAM,2CACN,GAAM,OACN,GAAM,OACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,wBACN,GAAM,iBACN,GAAM,mBACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,OACN,GAAM,QACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,aACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,eACN,GAAM,aACN,GAAM,kBACN,GAAM,YACN,GAAM,OACN,GAAM,SACN,GAAM,WACN,GAAM,QACN,GAAM,mBACN,GAAM,YACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,iBACN,GAAM,QACN,GAAM,gBACN,GAAM,UACN,GAAM,YACN,GAAM,WACN,GAAM,WACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,gBACN,GAAM,OACN,GAAM,oBACN,GAAM,SACN,GAAM,OACN,GAAM,sBACN,GAAM,oBACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,4BACN,GAAM,WACN,GAAM,YACN,GAAM,YACN,GAAM,aACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,SACN,GAAM,mBACN,GAAM,iBACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,kEACN,GAAM,WACN,GAAM,uBACN,GAAM,WACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,mBACN,GAAM,oCACN,GAAM,WACN,GAAM,eACN,GAAM,6BACN,GAAM,aACN,GAAM,mBACN,GAAM,iBACN,GAAM,OACN,GAAM,kCACN,GAAM,OACN,GAAM,YACN,GAAM,cACN,GAAM,UACN,GAAM,iBACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,oBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,8CACN,GAAM,oBACN,GAAM,UACN,GAAM,aACN,GAAM,UACN,GAAM,4BACN,GAAM,YACN,GAAM,6BACN,GAAM,uCACN,GAAM,UACN,GAAM,UACN,GAAM,kBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,oBACN,GAAM,SACN,GAAM,WACN,GAAM,kB,0DClQR,UAAe,CACb,IAAO,OACP,QAAW,OACX,MAAS,WACT,GAAM,WACN,GAAM,mBACN,GAAM,SACN,GAAM,yBACN,GAAM,cACN,GAAM,oBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,YACN,GAAM,kBACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,iBACN,GAAM,aACN,GAAM,uBACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,eACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,iBACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,2BACN,GAAM,SACN,GAAM,UACN,GAAM,QACN,GAAM,cACN,GAAM,WACN,GAAM,eACN,GAAM,SACN,GAAM,SACN,GAAM,wBACN,GAAM,kCACN,GAAM,4BACN,GAAM,QACN,GAAM,QACN,GAAM,kBACN,GAAM,aACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,UACN,GAAM,iBACN,GAAM,SACN,GAAM,kBACN,GAAM,WACN,GAAM,WACN,GAAM,YACN,GAAM,WACN,GAAM,uBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,kBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,OACN,GAAM,iBACN,GAAM,aACN,GAAM,cACN,GAAM,SACN,GAAM,QACN,GAAM,cACN,GAAM,UACN,GAAM,UACN,GAAM,kBACN,GAAM,WACN,GAAM,OACN,GAAM,YACN,GAAM,cACN,GAAM,SACN,GAAM,QACN,GAAM,YACN,GAAM,mBACN,GAAM,SACN,GAAM,yCACN,GAAM,YACN,GAAM,OACN,GAAM,eACN,GAAM,SACN,GAAM,YACN,GAAM,8BACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,wCACN,GAAM,SACN,GAAM,MACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,SACN,GAAM,cACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,wBACN,GAAM,kBACN,GAAM,gBACN,GAAM,SACN,GAAM,eACN,GAAM,cACN,GAAM,OACN,GAAM,SACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,gCACN,GAAM,aACN,GAAM,iBACN,GAAM,qBACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,0BACN,GAAM,YACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,UACN,GAAM,iBACN,GAAM,QACN,GAAM,eACN,GAAM,UACN,GAAM,YACN,GAAM,gBACN,GAAM,UACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,gBACN,GAAM,MACN,GAAM,iBACN,GAAM,SACN,GAAM,OACN,GAAM,qBACN,GAAM,mBACN,GAAM,YACN,GAAM,YACN,GAAM,UACN,GAAM,0BACN,GAAM,iBACN,GAAM,aACN,GAAM,YACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,iBACN,GAAM,gBACN,GAAM,aACN,GAAM,QACN,GAAM,SACN,GAAM,YACN,GAAM,eACN,GAAM,YACN,GAAM,uBACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,eACN,GAAM,sBACN,GAAM,cACN,GAAM,eACN,GAAM,QACN,GAAM,cACN,GAAM,mBACN,GAAM,iBACN,GAAM,QACN,GAAM,yCACN,GAAM,OACN,GAAM,YACN,GAAM,cACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,oBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,6CACN,GAAM,iBACN,GAAM,UACN,GAAM,cACN,GAAM,qBACN,GAAM,2BACN,GAAM,YACN,GAAM,2BACN,GAAM,2BACN,GAAM,SACN,GAAM,UACN,GAAM,kBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,gBACN,GAAM,SACN,GAAM,WACN,GAAM,iB,8DClQR,QAAe,CACb,IAAO,MACP,QAAW,6BACX,MAAS,WACT,GAAM,WACN,GAAM,mBACN,GAAM,UACN,GAAM,yBACN,GAAM,cACN,GAAM,oBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,aACN,GAAM,YACN,GAAM,kBACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,cACN,GAAM,aACN,GAAM,uBACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,eACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,oBACN,GAAM,mCACN,GAAM,kCACN,GAAM,kCACN,GAAM,UACN,GAAM,QACN,GAAM,cACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,wBACN,GAAM,kCACN,GAAM,4BACN,GAAM,sBACN,GAAM,QACN,GAAM,kBACN,GAAM,aACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,UACN,GAAM,gCACN,GAAM,SACN,GAAM,kBACN,GAAM,WACN,GAAM,yBACN,GAAM,YACN,GAAM,WACN,GAAM,uBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,iBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,OACN,GAAM,4BACN,GAAM,mCACN,GAAM,gBACN,GAAM,SACN,GAAM,QACN,GAAM,cACN,GAAM,UACN,GAAM,UACN,GAAM,kBACN,GAAM,WACN,GAAM,OACN,GAAM,YACN,GAAM,cACN,GAAM,SACN,GAAM,QACN,GAAM,YACN,GAAM,mBACN,GAAM,SACN,GAAM,yCACN,GAAM,YACN,GAAM,OACN,GAAM,eACN,GAAM,SACN,GAAM,YACN,GAAM,8BACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,wCACN,GAAM,SACN,GAAM,6BACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,8BACN,GAAM,QACN,GAAM,SACN,GAAM,gBACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,wBACN,GAAM,iDACN,GAAM,8BACN,GAAM,SACN,GAAM,eACN,GAAM,cACN,GAAM,sCACN,GAAM,SACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,gCACN,GAAM,aACN,GAAM,iBACN,GAAM,2CACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,0BACN,GAAM,YACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,iBACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,UACN,GAAM,iBACN,GAAM,QACN,GAAM,eACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,gBACN,GAAM,OACN,GAAM,iBACN,GAAM,SACN,GAAM,OACN,GAAM,qBACN,GAAM,mBACN,GAAM,YACN,GAAM,YACN,GAAM,UACN,GAAM,uBACN,GAAM,iBACN,GAAM,aACN,GAAM,+BACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,kBACN,GAAM,SACN,GAAM,iBACN,GAAM,gBACN,GAAM,aACN,GAAM,QACN,GAAM,SACN,GAAM,YACN,GAAM,4CACN,GAAM,YACN,GAAM,uBACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,eACN,GAAM,sBACN,GAAM,cACN,GAAM,eACN,GAAM,2BACN,GAAM,cACN,GAAM,mBACN,GAAM,uBACN,GAAM,OACN,GAAM,+BACN,GAAM,OACN,GAAM,YACN,GAAM,cACN,GAAM,UACN,GAAM,cACN,GAAM,iBACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,oBACN,GAAM,SACN,GAAM,6BACN,GAAM,+BACN,GAAM,UACN,GAAM,SACN,GAAM,8CACN,GAAM,4BACN,GAAM,UACN,GAAM,cACN,GAAM,0CACN,GAAM,2BACN,GAAM,YACN,GAAM,2BACN,GAAM,qBACN,GAAM,UACN,GAAM,UACN,GAAM,kBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,gBACN,GAAM,SACN,GAAM,WACN,GAAM,iB,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,yBACX,MAAS,UACT,GAAM,UACN,GAAM,oBACN,GAAM,UACN,GAAM,gCACN,GAAM,aACN,GAAM,oBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,aACN,GAAM,YACN,GAAM,qBACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,oBACN,GAAM,cACN,GAAM,uBACN,GAAM,WACN,GAAM,YACN,GAAM,UACN,GAAM,eACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,gBACN,GAAM,UACN,GAAM,oBACN,GAAM,yCACN,GAAM,gCACN,GAAM,WACN,GAAM,SACN,GAAM,QACN,GAAM,cACN,GAAM,WACN,GAAM,aACN,GAAM,QACN,GAAM,SACN,GAAM,6BACN,GAAM,oCACN,GAAM,oCACN,GAAM,QACN,GAAM,YACN,GAAM,cACN,GAAM,eACN,GAAM,OACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,UACN,GAAM,mBACN,GAAM,OACN,GAAM,qBACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,2BACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,kBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,qCACN,GAAM,iCACN,GAAM,oBACN,GAAM,UACN,GAAM,QACN,GAAM,0BACN,GAAM,UACN,GAAM,SACN,GAAM,qBACN,GAAM,SACN,GAAM,OACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,SACN,GAAM,YACN,GAAM,wBACN,GAAM,SACN,GAAM,4CACN,GAAM,YACN,GAAM,OACN,GAAM,eACN,GAAM,SACN,GAAM,UACN,GAAM,mCACN,GAAM,WACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,WACN,GAAM,UACN,GAAM,aACN,GAAM,QACN,GAAM,2CACN,GAAM,OACN,GAAM,6BACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,SACN,GAAM,QACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,oBACN,GAAM,4CACN,GAAM,oBACN,GAAM,SACN,GAAM,iBACN,GAAM,YACN,GAAM,OACN,GAAM,QACN,GAAM,aACN,GAAM,cACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,aACN,GAAM,SACN,GAAM,gCACN,GAAM,UACN,GAAM,SACN,GAAM,sBACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,qBACN,GAAM,uBACN,GAAM,OACN,GAAM,SACN,GAAM,WACN,GAAM,QACN,GAAM,8BACN,GAAM,YACN,GAAM,aACN,GAAM,aACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,kBACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,aACN,GAAM,WACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,iBACN,GAAM,OACN,GAAM,eACN,GAAM,SACN,GAAM,OACN,GAAM,wBACN,GAAM,qBACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,sBACN,GAAM,UACN,GAAM,cACN,GAAM,0CACN,GAAM,aACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,oBACN,GAAM,qBACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,WACN,GAAM,oDACN,GAAM,WACN,GAAM,wBACN,GAAM,WACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,cACN,GAAM,sBACN,GAAM,gBACN,GAAM,cACN,GAAM,gCACN,GAAM,YACN,GAAM,mBACN,GAAM,yBACN,GAAM,MACN,GAAM,+BACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,UACN,GAAM,cACN,GAAM,YACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,oBACN,GAAM,SACN,GAAM,kBACN,GAAM,oCACN,GAAM,UACN,GAAM,SACN,GAAM,4DACN,GAAM,oBACN,GAAM,UACN,GAAM,aACN,GAAM,8CACN,GAAM,2BACN,GAAM,sCACN,GAAM,iCACN,GAAM,0BACN,GAAM,UACN,GAAM,UACN,GAAM,kBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,WACN,GAAM,iB,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,OACX,MAAS,UACT,GAAM,YACN,GAAM,mBACN,GAAM,UACN,GAAM,0BACN,GAAM,cACN,GAAM,oBACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,aACN,GAAM,YACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,mBACN,GAAM,cACN,GAAM,sBACN,GAAM,WACN,GAAM,YACN,GAAM,WACN,GAAM,eACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,mBACN,GAAM,UACN,GAAM,oBACN,GAAM,UACN,GAAM,iCACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,gBACN,GAAM,WACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,8BACN,GAAM,iCACN,GAAM,0BACN,GAAM,QACN,GAAM,cACN,GAAM,qBACN,GAAM,kBACN,GAAM,OACN,GAAM,UACN,GAAM,OACN,GAAM,WACN,GAAM,YACN,GAAM,OACN,GAAM,WACN,GAAM,UACN,GAAM,mBACN,GAAM,SACN,GAAM,kBACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,yBACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,aACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,sBACN,GAAM,+BACN,GAAM,kBACN,GAAM,aACN,GAAM,QACN,GAAM,qBACN,GAAM,UACN,GAAM,UACN,GAAM,oBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,mBACN,GAAM,SACN,GAAM,4CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,WACN,GAAM,uCACN,GAAM,WACN,GAAM,aACN,GAAM,QACN,GAAM,WACN,GAAM,YACN,GAAM,QACN,GAAM,SACN,GAAM,aACN,GAAM,QACN,GAAM,kCACN,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,YACN,GAAM,SACN,GAAM,UACN,GAAM,YACN,GAAM,WACN,GAAM,OACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,wBACN,GAAM,gBACN,GAAM,cACN,GAAM,SACN,GAAM,oBACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,kBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,cACN,GAAM,WACN,GAAM,QACN,GAAM,SACN,GAAM,SACN,GAAM,YACN,GAAM,cACN,GAAM,iCACN,GAAM,aACN,GAAM,sBACN,GAAM,qBACN,GAAM,OACN,GAAM,aACN,GAAM,YACN,GAAM,QACN,GAAM,kBACN,GAAM,WACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,iBACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,cACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,OACN,GAAM,uBACN,GAAM,oBACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,0BACN,GAAM,WACN,GAAM,YACN,GAAM,YACN,GAAM,cACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,SACN,GAAM,QACN,GAAM,SACN,GAAM,iBACN,GAAM,qBACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,eACN,GAAM,YACN,GAAM,uBACN,GAAM,YACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,cACN,GAAM,wBACN,GAAM,WACN,GAAM,eACN,GAAM,QACN,GAAM,YACN,GAAM,mBACN,GAAM,yBACN,GAAM,MACN,GAAM,0BACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,UACN,GAAM,cACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,oBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,6BACN,GAAM,yBACN,GAAM,UACN,GAAM,aACN,GAAM,sCACN,GAAM,4BACN,GAAM,YACN,GAAM,0BACN,GAAM,wBACN,GAAM,UACN,GAAM,UACN,GAAM,kBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,WACN,GAAM,gB,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,OACX,MAAS,gBACT,GAAM,YACN,GAAM,YACN,GAAM,UACN,GAAM,wBACN,GAAM,cACN,GAAM,sBACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,YACN,GAAM,YACN,GAAM,oBACN,GAAM,YACN,GAAM,aACN,GAAM,QACN,GAAM,QACN,GAAM,eACN,GAAM,0BACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,eACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,mBACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,oCACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,cACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,gCACN,GAAM,+BACN,GAAM,oBACN,GAAM,UACN,GAAM,kBACN,GAAM,YACN,GAAM,QACN,GAAM,UACN,GAAM,OACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,YACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,0BACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,OACN,GAAM,iBACN,GAAM,4BACN,GAAM,WACN,GAAM,YACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,WACN,GAAM,iBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,mBACN,GAAM,WACN,GAAM,mCACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,WACN,GAAM,4BACN,GAAM,WACN,GAAM,WACN,GAAM,QACN,GAAM,SACN,GAAM,aACN,GAAM,SACN,GAAM,SACN,GAAM,cACN,GAAM,SACN,GAAM,0CACN,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,QACN,GAAM,cACN,GAAM,WACN,GAAM,WACN,GAAM,YACN,GAAM,wBACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,cACN,GAAM,YACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,aACN,GAAM,+BACN,GAAM,aACN,GAAM,gBACN,GAAM,iBACN,GAAM,OACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,iBACN,GAAM,aACN,GAAM,cACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,iBACN,GAAM,QACN,GAAM,YACN,GAAM,UACN,GAAM,YACN,GAAM,gBACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,cACN,GAAM,OACN,GAAM,cACN,GAAM,SACN,GAAM,OACN,GAAM,qBACN,GAAM,mBACN,GAAM,eACN,GAAM,WACN,GAAM,QACN,GAAM,4BACN,GAAM,gBACN,GAAM,cACN,GAAM,sCACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,SACN,GAAM,eACN,GAAM,eACN,GAAM,eACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,gBACN,GAAM,YACN,GAAM,yBACN,GAAM,YACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,wBACN,GAAM,cACN,GAAM,oCACN,GAAM,SACN,GAAM,YACN,GAAM,mBACN,GAAM,yBACN,GAAM,QACN,GAAM,8BACN,GAAM,OACN,GAAM,WACN,GAAM,eACN,GAAM,eACN,GAAM,WACN,GAAM,eACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,sBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,kBACN,GAAM,MACN,GAAM,UACN,GAAM,aACN,GAAM,gBACN,GAAM,iCACN,GAAM,YACN,GAAM,yBACN,GAAM,2BACN,GAAM,UACN,GAAM,UACN,GAAM,0BACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,SACN,GAAM,WACN,GAAM,kB,0DClQR,QAAe,CACb,IAAO,SACP,QAAW,SACX,MAAS,WACT,GAAM,YACN,GAAM,gBACN,GAAM,YACN,GAAM,uBACN,GAAM,cACN,GAAM,qBACN,GAAM,YACN,GAAM,YACN,GAAM,aACN,GAAM,UACN,GAAM,eACN,GAAM,cACN,GAAM,gBACN,GAAM,WACN,GAAM,aACN,GAAM,SACN,GAAM,kBACN,GAAM,eACN,GAAM,0BACN,GAAM,YACN,GAAM,YACN,GAAM,WACN,GAAM,eACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,kBACN,GAAM,aACN,GAAM,QACN,GAAM,WACN,GAAM,kCACN,GAAM,SACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,wBACN,GAAM,4BACN,GAAM,uBACN,GAAM,QACN,GAAM,iBACN,GAAM,aACN,GAAM,cACN,GAAM,OACN,GAAM,WACN,GAAM,MACN,GAAM,YACN,GAAM,YACN,GAAM,QACN,GAAM,YACN,GAAM,UACN,GAAM,gBACN,GAAM,SACN,GAAM,gBACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,qBACN,GAAM,YACN,GAAM,YACN,GAAM,YACN,GAAM,UACN,GAAM,gBACN,GAAM,YACN,GAAM,OACN,GAAM,aACN,GAAM,WACN,GAAM,OACN,GAAM,qBACN,GAAM,uBACN,GAAM,eACN,GAAM,WACN,GAAM,QACN,GAAM,gBACN,GAAM,UACN,GAAM,WACN,GAAM,eACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,YACN,GAAM,UACN,GAAM,OACN,GAAM,YACN,GAAM,mBACN,GAAM,OACN,GAAM,4CACN,GAAM,YACN,GAAM,MACN,GAAM,cACN,GAAM,UACN,GAAM,SACN,GAAM,kCACN,GAAM,WACN,GAAM,YACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,YACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,kCACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,SACN,GAAM,YACN,GAAM,SACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,cACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,qBACN,GAAM,cACN,GAAM,YACN,GAAM,QACN,GAAM,kBACN,GAAM,YACN,GAAM,MACN,GAAM,UACN,GAAM,cACN,GAAM,cACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,YACN,GAAM,eACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,iCACN,GAAM,cACN,GAAM,oBACN,GAAM,kBACN,GAAM,OACN,GAAM,UACN,GAAM,YACN,GAAM,SACN,GAAM,6BACN,GAAM,YACN,GAAM,aACN,GAAM,gBACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,gBACN,GAAM,UACN,GAAM,gBACN,GAAM,WACN,GAAM,YACN,GAAM,eACN,GAAM,WACN,GAAM,QACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,QACN,GAAM,eACN,GAAM,SACN,GAAM,OACN,GAAM,mBACN,GAAM,eACN,GAAM,aACN,GAAM,WACN,GAAM,UACN,GAAM,sBACN,GAAM,mBACN,GAAM,cACN,GAAM,YACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,iBACN,GAAM,kBACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,WACN,GAAM,cACN,GAAM,YACN,GAAM,sBACN,GAAM,YACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,qBACN,GAAM,eACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,iBACN,GAAM,iCACN,GAAM,MACN,GAAM,8BACN,GAAM,OACN,GAAM,MACN,GAAM,aACN,GAAM,UACN,GAAM,eACN,GAAM,iBACN,GAAM,WACN,GAAM,QACN,GAAM,QACN,GAAM,oBACN,GAAM,SACN,GAAM,UACN,GAAM,YACN,GAAM,SACN,GAAM,UACN,GAAM,iCACN,GAAM,eACN,GAAM,WACN,GAAM,cACN,GAAM,gBACN,GAAM,6BACN,GAAM,aACN,GAAM,yBACN,GAAM,kCACN,GAAM,WACN,GAAM,WACN,GAAM,kBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,UACN,GAAM,WACN,GAAM,Y,0DClQR,QAAe,CACb,IAAO,SACP,QAAW,wBACX,MAAS,UACT,GAAM,UACN,GAAM,iBACN,GAAM,UACN,GAAM,4BACN,GAAM,aACN,GAAM,qBACN,GAAM,WACN,GAAM,aACN,GAAM,aACN,GAAM,SACN,GAAM,aACN,GAAM,WACN,GAAM,mBACN,GAAM,YACN,GAAM,aACN,GAAM,QACN,GAAM,gBACN,GAAM,aACN,GAAM,eACN,GAAM,WACN,GAAM,YACN,GAAM,UACN,GAAM,eACN,GAAM,cACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,kBACN,GAAM,UACN,GAAM,oBACN,GAAM,UACN,GAAM,kCACN,GAAM,WACN,GAAM,YACN,GAAM,QACN,GAAM,eACN,GAAM,WACN,GAAM,cACN,GAAM,SACN,GAAM,SACN,GAAM,0BACN,GAAM,gCACN,GAAM,0BACN,GAAM,QACN,GAAM,UACN,GAAM,iBACN,GAAM,eACN,GAAM,OACN,GAAM,UACN,GAAM,MACN,GAAM,YACN,GAAM,aACN,GAAM,OACN,GAAM,sBACN,GAAM,UACN,GAAM,kBACN,GAAM,SACN,GAAM,kBACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,WACN,GAAM,sBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,aACN,GAAM,SACN,GAAM,UACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,mBACN,GAAM,gCACN,GAAM,gBACN,GAAM,SACN,GAAM,QACN,GAAM,YACN,GAAM,UACN,GAAM,YACN,GAAM,mBACN,GAAM,WACN,GAAM,OACN,GAAM,cACN,GAAM,WACN,GAAM,UACN,GAAM,OACN,GAAM,aACN,GAAM,iBACN,GAAM,aACN,GAAM,0CACN,GAAM,YACN,GAAM,OACN,GAAM,cACN,GAAM,SACN,GAAM,YACN,GAAM,kCACN,GAAM,WACN,GAAM,cACN,GAAM,QACN,GAAM,aACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,eACN,GAAM,gCACN,GAAM,OACN,GAAM,OACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,QACN,GAAM,cACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,uBACN,GAAM,aACN,GAAM,aACN,GAAM,SACN,GAAM,iBACN,GAAM,aACN,GAAM,OACN,GAAM,SACN,GAAM,cACN,GAAM,cACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,QACN,GAAM,MACN,GAAM,SACN,GAAM,UACN,GAAM,UACN,GAAM,iCACN,GAAM,aACN,GAAM,mBACN,GAAM,kBACN,GAAM,OACN,GAAM,UACN,GAAM,aACN,GAAM,QACN,GAAM,wBACN,GAAM,WACN,GAAM,YACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,iBACN,GAAM,QACN,GAAM,gBACN,GAAM,UACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,eACN,GAAM,QACN,GAAM,eACN,GAAM,SACN,GAAM,OACN,GAAM,sBACN,GAAM,kBACN,GAAM,aACN,GAAM,WACN,GAAM,UACN,GAAM,2BACN,GAAM,WACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,mBACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,SACN,GAAM,kBACN,GAAM,kBACN,GAAM,YACN,GAAM,QACN,GAAM,QACN,GAAM,WACN,GAAM,cACN,GAAM,WACN,GAAM,wBACN,GAAM,WACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,cACN,GAAM,uBACN,GAAM,cACN,GAAM,eACN,GAAM,SACN,GAAM,YACN,GAAM,mBACN,GAAM,0BACN,GAAM,MACN,GAAM,2BACN,GAAM,OACN,GAAM,UACN,GAAM,aACN,GAAM,UACN,GAAM,aACN,GAAM,eACN,GAAM,QACN,GAAM,QACN,GAAM,UACN,GAAM,qBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,gDACN,GAAM,8BACN,GAAM,UACN,GAAM,aACN,GAAM,mCACN,GAAM,+BACN,GAAM,YACN,GAAM,0BACN,GAAM,sBACN,GAAM,UACN,GAAM,UACN,GAAM,mBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,UACN,GAAM,WACN,GAAM,gB,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,SACX,MAAS,UACT,GAAM,UACN,GAAM,oBACN,GAAM,UACN,GAAM,6BACN,GAAM,aACN,GAAM,oBACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,SACN,GAAM,aACN,GAAM,YACN,GAAM,qBACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,oBACN,GAAM,cACN,GAAM,uBACN,GAAM,WACN,GAAM,YACN,GAAM,UACN,GAAM,eACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,gBACN,GAAM,qBACN,GAAM,SACN,GAAM,UACN,GAAM,uBACN,GAAM,WACN,GAAM,oBACN,GAAM,QACN,GAAM,cACN,GAAM,WACN,GAAM,WACN,GAAM,QACN,GAAM,SACN,GAAM,mBACN,GAAM,WACN,GAAM,mCACN,GAAM,mBACN,GAAM,YACN,GAAM,cACN,GAAM,eACN,GAAM,OACN,GAAM,UACN,GAAM,MACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,UACN,GAAM,gBACN,GAAM,OACN,GAAM,QACN,GAAM,YACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,2BACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,iBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,uBACN,GAAM,+BACN,GAAM,oBACN,GAAM,UACN,GAAM,QACN,GAAM,kBACN,GAAM,UACN,GAAM,SACN,GAAM,oBACN,GAAM,SACN,GAAM,OACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,SACN,GAAM,YACN,GAAM,uBACN,GAAM,SACN,GAAM,mDACN,GAAM,YACN,GAAM,OACN,GAAM,eACN,GAAM,QACN,GAAM,UACN,GAAM,mCACN,GAAM,WACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,YACN,GAAM,WACN,GAAM,UACN,GAAM,aACN,GAAM,QACN,GAAM,4CACN,GAAM,OACN,GAAM,OACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,SACN,GAAM,QACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,oBACN,GAAM,qBACN,GAAM,iBACN,GAAM,iBACN,GAAM,SACN,GAAM,oBACN,GAAM,YACN,GAAM,OACN,GAAM,QACN,GAAM,aACN,GAAM,cACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,aACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,qBACN,GAAM,qBACN,GAAM,OACN,GAAM,SACN,GAAM,WACN,GAAM,QACN,GAAM,8BACN,GAAM,YACN,GAAM,aACN,GAAM,aACN,GAAM,SACN,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,iBACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,aACN,GAAM,WACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,gBACN,GAAM,OACN,GAAM,kBACN,GAAM,SACN,GAAM,OACN,GAAM,uBACN,GAAM,oBACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,qBACN,GAAM,UACN,GAAM,cACN,GAAM,YACN,GAAM,aACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,SACN,GAAM,oBACN,GAAM,qBACN,GAAM,sBACN,GAAM,QACN,GAAM,SACN,GAAM,WACN,GAAM,sDACN,GAAM,WACN,GAAM,sBACN,GAAM,aACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,kBACN,GAAM,sBACN,GAAM,YACN,GAAM,cACN,GAAM,QACN,GAAM,WACN,GAAM,mBACN,GAAM,yBACN,GAAM,MACN,GAAM,8CACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,UACN,GAAM,gBACN,GAAM,eACN,GAAM,QACN,GAAM,QACN,GAAM,YACN,GAAM,oBACN,GAAM,SACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,4BACN,GAAM,MACN,GAAM,UACN,GAAM,aACN,GAAM,UACN,GAAM,2BACN,GAAM,YACN,GAAM,gCACN,GAAM,kCACN,GAAM,UACN,GAAM,UACN,GAAM,kBACN,GAAM,QACN,GAAM,SACN,GAAM,OACN,GAAM,UACN,GAAM,MACN,GAAM,SACN,GAAM,WACN,GAAM,e,0DClQR,QAAe,CACb,IAAO,OACP,QAAW,yBACX,MAAS,aACT,GAAM,WACN,GAAM,gBACN,GAAM,UACN,GAAM,8DACN,GAAM,cACN,GAAM,sBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,aACN,GAAM,YACN,GAAM,iBACN,GAAM,eACN,GAAM,iBACN,GAAM,QACN,GAAM,gBACN,GAAM,aACN,GAAM,yBACN,GAAM,WACN,GAAM,aACN,GAAM,eACN,GAAM,eACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,mBACN,GAAM,UACN,GAAM,oBACN,GAAM,kCACN,GAAM,mCACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,gBACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,0BACN,GAAM,oCACN,GAAM,2BACN,GAAM,QACN,GAAM,wBACN,GAAM,gBACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,GAAM,qBACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,UACN,GAAM,mBACN,GAAM,SACN,GAAM,gCACN,GAAM,gBACN,GAAM,WACN,GAAM,qBACN,GAAM,WACN,GAAM,qBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,sBACN,GAAM,WACN,GAAM,qBACN,GAAM,OACN,GAAM,8BACN,GAAM,kCACN,GAAM,gBACN,GAAM,gBACN,GAAM,QACN,GAAM,uBACN,GAAM,UACN,GAAM,UACN,GAAM,gBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,oBACN,GAAM,kBACN,GAAM,+CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,oCACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,gBACN,GAAM,iCACN,GAAM,OACN,GAAM,4BACN,GAAM,UACN,GAAM,YACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,wBACN,GAAM,+BACN,GAAM,yBACN,GAAM,SACN,GAAM,iBACN,GAAM,aACN,GAAM,aACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,yBACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,6BACN,GAAM,aACN,GAAM,mBACN,GAAM,6CACN,GAAM,OACN,GAAM,UACN,GAAM,qBACN,GAAM,QACN,GAAM,2BACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,oBACN,GAAM,aACN,GAAM,UACN,GAAM,gBACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,cACN,GAAM,iBACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,cACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,OACN,GAAM,mBACN,GAAM,mBACN,GAAM,cACN,GAAM,WACN,GAAM,kBACN,GAAM,4BACN,GAAM,WACN,GAAM,cACN,GAAM,kCACN,GAAM,wBACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,2BACN,GAAM,SACN,GAAM,eACN,GAAM,kBACN,GAAM,aACN,GAAM,QACN,GAAM,qBACN,GAAM,YACN,GAAM,+CACN,GAAM,WACN,GAAM,yBACN,GAAM,WACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,cACN,GAAM,wBACN,GAAM,cACN,GAAM,eACN,GAAM,uBACN,GAAM,YACN,GAAM,mBACN,GAAM,2BACN,GAAM,OACN,GAAM,8BACN,GAAM,OACN,GAAM,sBACN,GAAM,aACN,GAAM,UACN,GAAM,cACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,sBACN,GAAM,sBACN,GAAM,SACN,GAAM,oBACN,GAAM,+BACN,GAAM,UACN,GAAM,SACN,GAAM,uCACN,GAAM,qBACN,GAAM,UACN,GAAM,aACN,GAAM,gCACN,GAAM,mCACN,GAAM,YACN,GAAM,0BACN,GAAM,uBACN,GAAM,qBACN,GAAM,UACN,GAAM,oBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,yBACN,GAAM,SACN,GAAM,WACN,GAAM,iB,0DClQR,QAAe,CACb,IAAO,KACP,QAAW,KACX,MAAS,KACT,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,WACN,GAAM,MACN,GAAM,UACN,GAAM,MACN,GAAM,QACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,QACN,GAAM,MACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,aACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,QACN,GAAM,OACN,GAAM,KACN,GAAM,MACN,GAAM,KACN,GAAM,QACN,GAAM,MACN,GAAM,KACN,GAAM,OACN,GAAM,gBACN,GAAM,KACN,GAAM,MACN,GAAM,KACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,YACN,GAAM,UACN,GAAM,QACN,GAAM,QACN,GAAM,KACN,GAAM,OACN,GAAM,OACN,GAAM,KACN,GAAM,MACN,GAAM,KACN,GAAM,OACN,GAAM,QACN,GAAM,KACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,QACN,GAAM,KACN,GAAM,MACN,GAAM,KACN,GAAM,OACN,GAAM,UACN,GAAM,QACN,GAAM,OACN,GAAM,OACN,GAAM,KACN,GAAM,OACN,GAAM,QACN,GAAM,MACN,GAAM,QACN,GAAM,KACN,GAAM,KACN,GAAM,QACN,GAAM,WACN,GAAM,OACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,OACN,GAAM,OACN,GAAM,QACN,GAAM,MACN,GAAM,KACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,QACN,GAAM,KACN,GAAM,cACN,GAAM,OACN,GAAM,KACN,GAAM,QACN,GAAM,MACN,GAAM,KACN,GAAM,aACN,GAAM,OACN,GAAM,OACN,GAAM,KACN,GAAM,MACN,GAAM,QACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,KACN,GAAM,UACN,GAAM,MACN,GAAM,KACN,GAAM,KACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,KACN,GAAM,KACN,GAAM,MACN,GAAM,SACN,GAAM,MACN,GAAM,OACN,GAAM,MACN,GAAM,UACN,GAAM,KACN,GAAM,KACN,GAAM,MACN,GAAM,OACN,GAAM,QACN,GAAM,KACN,GAAM,MACN,GAAM,OACN,GAAM,QACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,KACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,UACN,GAAM,OACN,GAAM,QACN,GAAM,QACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,KACN,GAAM,KACN,GAAM,MACN,GAAM,KACN,GAAM,KACN,GAAM,MACN,GAAM,KACN,GAAM,OACN,GAAM,MACN,GAAM,KACN,GAAM,UACN,GAAM,UACN,GAAM,MACN,GAAM,OACN,GAAM,KACN,GAAM,WACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,KACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,QACN,GAAM,QACN,GAAM,MACN,GAAM,KACN,GAAM,KACN,GAAM,MACN,GAAM,OACN,GAAM,QACN,GAAM,WACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,WACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,YACN,GAAM,YACN,GAAM,KACN,GAAM,SACN,GAAM,KACN,GAAM,KACN,GAAM,QACN,GAAM,MACN,GAAM,MACN,GAAM,QACN,GAAM,MACN,GAAM,KACN,GAAM,MACN,GAAM,WACN,GAAM,MACN,GAAM,KACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,WACN,GAAM,KACN,GAAM,MACN,GAAM,SACN,GAAM,MACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,UACN,GAAM,KACN,GAAM,OACN,GAAM,UACN,GAAM,MACN,GAAM,MACN,GAAM,KACN,GAAM,MACN,GAAM,KACN,GAAM,MACN,GAAM,OACN,GAAM,M","file":"/npm/@reachfive/identity-ui@1.41.0/cjs/identity-ui.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@reachfive/identity-ui@1.41.0/cjs/identity-ui.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","function styleInject(css, ref) {\n  if ( ref === void 0 ) ref = {};\n  var insertAt = ref.insertAt;\n\n  if (!css || typeof document === 'undefined') { return; }\n\n  var head = document.head || document.getElementsByTagName('head')[0];\n  var style = document.createElement('style');\n  style.type = 'text/css';\n\n  if (insertAt === 'top') {\n    if (head.firstChild) {\n      head.insertBefore(style, head.firstChild);\n    } else {\n      head.appendChild(style);\n    }\n  } else {\n    head.appendChild(style);\n  }\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = css;\n  } else {\n    style.appendChild(document.createTextNode(css));\n  }\n}\n\nexport default styleInject;\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n  exports.createRoot = m.createRoot;\n  exports.hydrateRoot = m.hydrateRoot;\n} else {\n  var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n  exports.createRoot = function(c, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.createRoot(c, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n  exports.hydrateRoot = function(c, h, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.hydrateRoot(c, h, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n}\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\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","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n  var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n  if (ret !== void 0) {\n    return !!ret;\n  }\n\n  if (objA === objB) {\n    return true;\n  }\n\n  if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n  // Test for A's keys different from B.\n  for (var idx = 0; idx < keysA.length; idx++) {\n    var key = keysA[idx];\n\n    if (!bHasOwnProperty(key)) {\n      return false;\n    }\n\n    var valueA = objA[key];\n    var valueB = objB[key];\n\n    ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n    if (ret === false || (ret === void 0 && valueA !== valueB)) {\n      return false;\n    }\n  }\n\n  return true;\n};\n","function stylis_min (W) {\n  function M(d, c, e, h, a) {\n    for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n      g = e.charCodeAt(l);\n      l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n      if (0 === b + n + v + m) {\n        if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n          switch (g) {\n            case 32:\n            case 9:\n            case 59:\n            case 13:\n            case 10:\n              break;\n\n            default:\n              f += e.charAt(l);\n          }\n\n          g = 59;\n        }\n\n        switch (g) {\n          case 123:\n            f = f.trim();\n            q = f.charCodeAt(0);\n            k = 1;\n\n            for (t = ++l; l < B;) {\n              switch (g = e.charCodeAt(l)) {\n                case 123:\n                  k++;\n                  break;\n\n                case 125:\n                  k--;\n                  break;\n\n                case 47:\n                  switch (g = e.charCodeAt(l + 1)) {\n                    case 42:\n                    case 47:\n                      a: {\n                        for (u = l + 1; u < J; ++u) {\n                          switch (e.charCodeAt(u)) {\n                            case 47:\n                              if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n                                l = u + 1;\n                                break a;\n                              }\n\n                              break;\n\n                            case 10:\n                              if (47 === g) {\n                                l = u + 1;\n                                break a;\n                              }\n\n                          }\n                        }\n\n                        l = u;\n                      }\n\n                  }\n\n                  break;\n\n                case 91:\n                  g++;\n\n                case 40:\n                  g++;\n\n                case 34:\n                case 39:\n                  for (; l++ < J && e.charCodeAt(l) !== g;) {\n                  }\n\n              }\n\n              if (0 === k) break;\n              l++;\n            }\n\n            k = e.substring(t, l);\n            0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n            switch (q) {\n              case 64:\n                0 < r && (f = f.replace(N, ''));\n                g = f.charCodeAt(1);\n\n                switch (g) {\n                  case 100:\n                  case 109:\n                  case 115:\n                  case 45:\n                    r = c;\n                    break;\n\n                  default:\n                    r = O;\n                }\n\n                k = M(c, r, k, g, a + 1);\n                t = k.length;\n                0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n                if (0 < t) switch (g) {\n                  case 115:\n                    f = f.replace(da, ea);\n\n                  case 100:\n                  case 109:\n                  case 45:\n                    k = f + '{' + k + '}';\n                    break;\n\n                  case 107:\n                    f = f.replace(fa, '$1 $2');\n                    k = f + '{' + k + '}';\n                    k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n                    break;\n\n                  default:\n                    k = f + k, 112 === h && (k = (p += k, ''));\n                } else k = '';\n                break;\n\n              default:\n                k = M(c, X(c, f, I), k, h, a + 1);\n            }\n\n            F += k;\n            k = I = r = u = q = 0;\n            f = '';\n            g = e.charCodeAt(++l);\n            break;\n\n          case 125:\n          case 59:\n            f = (0 < r ? f.replace(N, '') : f).trim();\n            if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n              case 0:\n                break;\n\n              case 64:\n                if (105 === g || 99 === g) {\n                  G += f + e.charAt(l);\n                  break;\n                }\n\n              default:\n                58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n            }\n            I = r = u = q = 0;\n            f = '';\n            g = e.charCodeAt(++l);\n        }\n      }\n\n      switch (g) {\n        case 13:\n        case 10:\n          47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n          0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n          z = 1;\n          D++;\n          break;\n\n        case 59:\n        case 125:\n          if (0 === b + n + v + m) {\n            z++;\n            break;\n          }\n\n        default:\n          z++;\n          y = e.charAt(l);\n\n          switch (g) {\n            case 9:\n            case 32:\n              if (0 === n + m + b) switch (x) {\n                case 44:\n                case 58:\n                case 9:\n                case 32:\n                  y = '';\n                  break;\n\n                default:\n                  32 !== g && (y = ' ');\n              }\n              break;\n\n            case 0:\n              y = '\\\\0';\n              break;\n\n            case 12:\n              y = '\\\\f';\n              break;\n\n            case 11:\n              y = '\\\\v';\n              break;\n\n            case 38:\n              0 === n + b + m && (r = I = 1, y = '\\f' + y);\n              break;\n\n            case 108:\n              if (0 === n + b + m + E && 0 < u) switch (l - u) {\n                case 2:\n                  112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n                case 8:\n                  111 === K && (E = K);\n              }\n              break;\n\n            case 58:\n              0 === n + b + m && (u = l);\n              break;\n\n            case 44:\n              0 === b + v + n + m && (r = 1, y += '\\r');\n              break;\n\n            case 34:\n            case 39:\n              0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n              break;\n\n            case 91:\n              0 === n + b + v && m++;\n              break;\n\n            case 93:\n              0 === n + b + v && m--;\n              break;\n\n            case 41:\n              0 === n + b + m && v--;\n              break;\n\n            case 40:\n              if (0 === n + b + m) {\n                if (0 === q) switch (2 * x + 3 * K) {\n                  case 533:\n                    break;\n\n                  default:\n                    q = 1;\n                }\n                v++;\n              }\n\n              break;\n\n            case 64:\n              0 === b + v + n + m + u + k && (k = 1);\n              break;\n\n            case 42:\n            case 47:\n              if (!(0 < n + m + v)) switch (b) {\n                case 0:\n                  switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n                    case 235:\n                      b = 47;\n                      break;\n\n                    case 220:\n                      t = l, b = 42;\n                  }\n\n                  break;\n\n                case 42:\n                  47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n              }\n          }\n\n          0 === b && (f += y);\n      }\n\n      K = x;\n      x = g;\n      l++;\n    }\n\n    t = p.length;\n\n    if (0 < t) {\n      r = c;\n      if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n      p = r.join(',') + '{' + p + '}';\n\n      if (0 !== w * E) {\n        2 !== w || L(p, 2) || (E = 0);\n\n        switch (E) {\n          case 111:\n            p = p.replace(ha, ':-moz-$1') + p;\n            break;\n\n          case 112:\n            p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n        }\n\n        E = 0;\n      }\n    }\n\n    return G + p + F;\n  }\n\n  function X(d, c, e) {\n    var h = c.trim().split(ia);\n    c = h;\n    var a = h.length,\n        m = d.length;\n\n    switch (m) {\n      case 0:\n      case 1:\n        var b = 0;\n\n        for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n          c[b] = Z(d, c[b], e).trim();\n        }\n\n        break;\n\n      default:\n        var v = b = 0;\n\n        for (c = []; b < a; ++b) {\n          for (var n = 0; n < m; ++n) {\n            c[v++] = Z(d[n] + ' ', h[b], e).trim();\n          }\n        }\n\n    }\n\n    return c;\n  }\n\n  function Z(d, c, e) {\n    var h = c.charCodeAt(0);\n    33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n    switch (h) {\n      case 38:\n        return c.replace(F, '$1' + d.trim());\n\n      case 58:\n        return d.trim() + c.replace(F, '$1' + d.trim());\n\n      default:\n        if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n    }\n\n    return d + c;\n  }\n\n  function P(d, c, e, h) {\n    var a = d + ';',\n        m = 2 * c + 3 * e + 4 * h;\n\n    if (944 === m) {\n      d = a.indexOf(':', 9) + 1;\n      var b = a.substring(d, a.length - 1).trim();\n      b = a.substring(0, d).trim() + b + ';';\n      return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n    }\n\n    if (0 === w || 2 === w && !L(a, 1)) return a;\n\n    switch (m) {\n      case 1015:\n        return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n      case 951:\n        return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n      case 963:\n        return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n      case 1009:\n        if (100 !== a.charCodeAt(4)) break;\n\n      case 969:\n      case 942:\n        return '-webkit-' + a + a;\n\n      case 978:\n        return '-webkit-' + a + '-moz-' + a + a;\n\n      case 1019:\n      case 983:\n        return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n      case 883:\n        if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n        if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n        break;\n\n      case 932:\n        if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n          case 103:\n            return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n          case 115:\n            return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n          case 98:\n            return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n        }\n        return '-webkit-' + a + '-ms-' + a + a;\n\n      case 964:\n        return '-webkit-' + a + '-ms-flex-' + a + a;\n\n      case 1023:\n        if (99 !== a.charCodeAt(8)) break;\n        b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n        return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n      case 1005:\n        return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n      case 1e3:\n        b = a.substring(13).trim();\n        c = b.indexOf('-') + 1;\n\n        switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n          case 226:\n            b = a.replace(G, 'tb');\n            break;\n\n          case 232:\n            b = a.replace(G, 'tb-rl');\n            break;\n\n          case 220:\n            b = a.replace(G, 'lr');\n            break;\n\n          default:\n            return a;\n        }\n\n        return '-webkit-' + a + '-ms-' + b + a;\n\n      case 1017:\n        if (-1 === a.indexOf('sticky', 9)) break;\n\n      case 975:\n        c = (a = d).length - 10;\n        b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n        switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n          case 203:\n            if (111 > b.charCodeAt(8)) break;\n\n          case 115:\n            a = a.replace(b, '-webkit-' + b) + ';' + a;\n            break;\n\n          case 207:\n          case 102:\n            a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n        }\n\n        return a + ';';\n\n      case 938:\n        if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n          case 105:\n            return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n          case 115:\n            return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n          default:\n            return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n        }\n        break;\n\n      case 973:\n      case 989:\n        if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n      case 931:\n      case 953:\n        if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n        break;\n\n      case 962:\n        if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n    }\n\n    return a;\n  }\n\n  function L(d, c) {\n    var e = d.indexOf(1 === c ? ':' : '{'),\n        h = d.substring(0, 3 !== c ? e : 10);\n    e = d.substring(e + 1, d.length - 1);\n    return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n  }\n\n  function ea(d, c) {\n    var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n    return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n  }\n\n  function H(d, c, e, h, a, m, b, v, n, q) {\n    for (var g = 0, x = c, w; g < A; ++g) {\n      switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n        case void 0:\n        case !1:\n        case !0:\n        case null:\n          break;\n\n        default:\n          x = w;\n      }\n    }\n\n    if (x !== c) return x;\n  }\n\n  function T(d) {\n    switch (d) {\n      case void 0:\n      case null:\n        A = S.length = 0;\n        break;\n\n      default:\n        if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n          T(d[c]);\n        } else Y = !!d | 0;\n    }\n\n    return T;\n  }\n\n  function U(d) {\n    d = d.prefix;\n    void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n    return U;\n  }\n\n  function B(d, c) {\n    var e = d;\n    33 > e.charCodeAt(0) && (e = e.trim());\n    V = e;\n    e = [V];\n\n    if (0 < A) {\n      var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n      void 0 !== h && 'string' === typeof h && (c = h);\n    }\n\n    var a = M(O, e, c, 0, 0);\n    0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n    V = '';\n    E = 0;\n    z = D = 1;\n    return a;\n  }\n\n  var ca = /^\\0+/g,\n      N = /[\\0\\r\\f]/g,\n      aa = /: */g,\n      ka = /zoo|gra/,\n      ma = /([,: ])(transform)/g,\n      ia = /,\\r+?/g,\n      F = /([\\t\\r\\n ])*\\f?&/g,\n      fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n      Q = /::(place)/g,\n      ha = /:(read-only)/g,\n      G = /[svh]\\w+-[tblr]{2}/,\n      da = /\\(\\s*(.*)\\s*\\)/g,\n      oa = /([\\s\\S]*?);/g,\n      ba = /-self|flex-/g,\n      na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n      la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n      ja = /([^-])(image-set\\()/,\n      z = 1,\n      D = 1,\n      E = 0,\n      w = 1,\n      O = [],\n      S = [],\n      A = 0,\n      R = null,\n      Y = 0,\n      V = '';\n  B.use = T;\n  B.set = U;\n  void 0 !== W && U(W);\n  return B;\n}\n\nexport default stylis_min;\n","var unitlessKeys = {\n  animationIterationCount: 1,\n  borderImageOutset: 1,\n  borderImageSlice: 1,\n  borderImageWidth: 1,\n  boxFlex: 1,\n  boxFlexGroup: 1,\n  boxOrdinalGroup: 1,\n  columnCount: 1,\n  columns: 1,\n  flex: 1,\n  flexGrow: 1,\n  flexPositive: 1,\n  flexShrink: 1,\n  flexNegative: 1,\n  flexOrder: 1,\n  gridRow: 1,\n  gridRowEnd: 1,\n  gridRowSpan: 1,\n  gridRowStart: 1,\n  gridColumn: 1,\n  gridColumnEnd: 1,\n  gridColumnSpan: 1,\n  gridColumnStart: 1,\n  msGridRow: 1,\n  msGridRowSpan: 1,\n  msGridColumn: 1,\n  msGridColumnSpan: 1,\n  fontWeight: 1,\n  lineHeight: 1,\n  opacity: 1,\n  order: 1,\n  orphans: 1,\n  tabSize: 1,\n  widows: 1,\n  zIndex: 1,\n  zoom: 1,\n  WebkitLineClamp: 1,\n  // SVG-related properties\n  fillOpacity: 1,\n  floodOpacity: 1,\n  stopOpacity: 1,\n  strokeDasharray: 1,\n  strokeDashoffset: 1,\n  strokeMiterlimit: 1,\n  strokeOpacity: 1,\n  strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","function memoize(fn) {\n  var cache = Object.create(null);\n  return function (arg) {\n    if (cache[arg] === undefined) cache[arg] = fn(arg);\n    return cache[arg];\n  };\n}\n\nexport { memoize as default };\n","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n  return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n  /* o */\n  && prop.charCodeAt(1) === 110\n  /* n */\n  && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\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","'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","import{typeOf as e,isElement as t,isValidElementType as n}from\"react-is\";import r,{useState as o,useContext as s,useMemo as i,useEffect as a,useRef as c,createElement as u,useLayoutEffect as l}from\"react\";import d from\"shallowequal\";import h from\"@emotion/stylis\";import p from\"@emotion/unitless\";import f from\"@emotion/is-prop-valid\";import m from\"hoist-non-react-statics\";function y(){return(y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var v=function(e,t){for(var n=[e[0]],r=0,o=t.length;r<o;r+=1)n.push(t[r],e[r+1]);return n},g=function(t){return null!==t&&\"object\"==typeof t&&\"[object Object]\"===(t.toString?t.toString():Object.prototype.toString.call(t))&&!e(t)},S=Object.freeze([]),w=Object.freeze({});function E(e){return\"function\"==typeof e}function b(e){return\"production\"!==process.env.NODE_ENV&&\"string\"==typeof e&&e||e.displayName||e.name||\"Component\"}function _(e){return e&&\"string\"==typeof e.styledComponentId}var N=\"undefined\"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||\"data-styled\",A=\"5.3.11\",C=\"undefined\"!=typeof window&&\"HTMLElement\"in window,I=Boolean(\"boolean\"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&(void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&\"\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY?\"false\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:void 0!==process.env.SC_DISABLE_SPEEDY&&\"\"!==process.env.SC_DISABLE_SPEEDY?\"false\"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY:\"production\"!==process.env.NODE_ENV)),P={},O=\"production\"!==process.env.NODE_ENV?{1:\"Cannot create styled-component for component: %s.\\n\\n\",2:\"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",3:\"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",4:\"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",5:\"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",6:\"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",7:'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',8:'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',9:\"Missing document `<head>`\\n\\n\",10:\"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",11:\"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",12:\"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",13:\"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",14:'ThemeProvider: \"theme\" prop is required.\\n\\n',15:\"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to `<StyleSheetManager stylisPlugins={[]}>`, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",16:\"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",17:\"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\"}:{};function R(){for(var e=arguments.length<=0?void 0:arguments[0],t=[],n=1,r=arguments.length;n<r;n+=1)t.push(n<0||arguments.length<=n?void 0:arguments[n]);return t.forEach((function(t){e=e.replace(/%[a-z]/,t)})),e}function D(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];throw\"production\"===process.env.NODE_ENV?new Error(\"An error occurred. See https://git.io/JUIaE#\"+e+\" for more information.\"+(n.length>0?\" Args: \"+n.join(\", \"):\"\")):new Error(R.apply(void 0,[O[e]].concat(n)).trim())}var j=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,n=0;n<e;n++)t+=this.groupSizes[n];return t},t.insertRules=function(e,t){if(e>=this.groupSizes.length){for(var n=this.groupSizes,r=n.length,o=r;e>=o;)(o<<=1)<0&&D(16,\"\"+e);this.groupSizes=new Uint32Array(o),this.groupSizes.set(n),this.length=o;for(var s=r;s<o;s++)this.groupSizes[s]=0}for(var i=this.indexOfGroup(e+1),a=0,c=t.length;a<c;a++)this.tag.insertRule(i,t[a])&&(this.groupSizes[e]++,i++)},t.clearGroup=function(e){if(e<this.length){var t=this.groupSizes[e],n=this.indexOfGroup(e),r=n+t;this.groupSizes[e]=0;for(var o=n;o<r;o++)this.tag.deleteRule(n)}},t.getGroup=function(e){var t=\"\";if(e>=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],r=this.indexOfGroup(e),o=r+n,s=r;s<o;s++)t+=this.tag.getRule(s)+\"/*!sc*/\\n\";return t},e}(),T=new Map,x=new Map,k=1,V=function(e){if(T.has(e))return T.get(e);for(;x.has(k);)k++;var t=k++;return\"production\"!==process.env.NODE_ENV&&((0|t)<0||t>1<<30)&&D(16,\"\"+t),T.set(e,t),x.set(t,e),t},B=function(e){return x.get(e)},z=function(e,t){t>=k&&(k=t+1),T.set(e,t),x.set(t,e)},M=\"style[\"+N+'][data-styled-version=\"5.3.11\"]',G=new RegExp(\"^\"+N+'\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)'),L=function(e,t,n){for(var r,o=n.split(\",\"),s=0,i=o.length;s<i;s++)(r=o[s])&&e.registerName(t,r)},F=function(e,t){for(var n=(t.textContent||\"\").split(\"/*!sc*/\\n\"),r=[],o=0,s=n.length;o<s;o++){var i=n[o].trim();if(i){var a=i.match(G);if(a){var c=0|parseInt(a[1],10),u=a[2];0!==c&&(z(u,c),L(e,u,a[3]),e.getTag().insertRules(c,r)),r.length=0}else r.push(i)}}},Y=function(){return\"undefined\"!=typeof __webpack_nonce__?__webpack_nonce__:null},q=function(e){var t=document.head,n=e||t,r=document.createElement(\"style\"),o=function(e){for(var t=e.childNodes,n=t.length;n>=0;n--){var r=t[n];if(r&&1===r.nodeType&&r.hasAttribute(N))return r}}(n),s=void 0!==o?o.nextSibling:null;r.setAttribute(N,\"active\"),r.setAttribute(\"data-styled-version\",\"5.3.11\");var i=Y();return i&&r.setAttribute(\"nonce\",i),n.insertBefore(r,s),r},H=function(){function e(e){var t=this.element=q(e);t.appendChild(document.createTextNode(\"\")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,r=t.length;n<r;n++){var o=t[n];if(o.ownerNode===e)return o}D(17)}(t),this.length=0}var t=e.prototype;return t.insertRule=function(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}},t.deleteRule=function(e){this.sheet.deleteRule(e),this.length--},t.getRule=function(e){var t=this.sheet.cssRules[e];return void 0!==t&&\"string\"==typeof t.cssText?t.cssText:\"\"},e}(),$=function(){function e(e){var t=this.element=q(e);this.nodes=t.childNodes,this.length=0}var t=e.prototype;return t.insertRule=function(e,t){if(e<=this.length&&e>=0){var n=document.createTextNode(t),r=this.nodes[e];return this.element.insertBefore(n,r||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e<this.length?this.nodes[e].textContent:\"\"},e}(),W=function(){function e(e){this.rules=[],this.length=0}var t=e.prototype;return t.insertRule=function(e,t){return e<=this.length&&(this.rules.splice(e,0,t),this.length++,!0)},t.deleteRule=function(e){this.rules.splice(e,1),this.length--},t.getRule=function(e){return e<this.length?this.rules[e]:\"\"},e}(),U=C,J={isServer:!C,useCSSOMInjection:!I},X=function(){function e(e,t,n){void 0===e&&(e=w),void 0===t&&(t={}),this.options=y({},J,{},e),this.gs=t,this.names=new Map(n),this.server=!!e.isServer,!this.server&&C&&U&&(U=!1,function(e){for(var t=document.querySelectorAll(M),n=0,r=t.length;n<r;n++){var o=t[n];o&&\"active\"!==o.getAttribute(N)&&(F(e,o),o.parentNode&&o.parentNode.removeChild(o))}}(this))}e.registerId=function(e){return V(e)};var t=e.prototype;return t.reconstructWithOptions=function(t,n){return void 0===n&&(n=!0),new e(y({},this.options,{},t),this.gs,n&&this.names||void 0)},t.allocateGSInstance=function(e){return this.gs[e]=(this.gs[e]||0)+1},t.getTag=function(){return this.tag||(this.tag=(n=(t=this.options).isServer,r=t.useCSSOMInjection,o=t.target,e=n?new W(o):r?new H(o):new $(o),new j(e)));var e,t,n,r,o},t.hasNameForId=function(e,t){return this.names.has(e)&&this.names.get(e).has(t)},t.registerName=function(e,t){if(V(e),this.names.has(e))this.names.get(e).add(t);else{var n=new Set;n.add(t),this.names.set(e,n)}},t.insertRules=function(e,t,n){this.registerName(e,t),this.getTag().insertRules(V(e),n)},t.clearNames=function(e){this.names.has(e)&&this.names.get(e).clear()},t.clearRules=function(e){this.getTag().clearGroup(V(e)),this.clearNames(e)},t.clearTag=function(){this.tag=void 0},t.toString=function(){return function(e){for(var t=e.getTag(),n=t.length,r=\"\",o=0;o<n;o++){var s=B(o);if(void 0!==s){var i=e.names.get(s),a=t.getGroup(o);if(i&&a&&i.size){var c=N+\".g\"+o+'[id=\"'+s+'\"]',u=\"\";void 0!==i&&i.forEach((function(e){e.length>0&&(u+=e+\",\")})),r+=\"\"+a+c+'{content:\"'+u+'\"}/*!sc*/\\n'}}}return r}(this)},e}(),Z=/(a)(d)/gi,K=function(e){return String.fromCharCode(e+(e>25?39:97))};function Q(e){var t,n=\"\";for(t=Math.abs(e);t>52;t=t/52|0)n=K(t%52)+n;return(K(t%52)+n).replace(Z,\"$1-$2\")}var ee=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},te=function(e){return ee(5381,e)};function ne(e){for(var t=0;t<e.length;t+=1){var n=e[t];if(E(n)&&!_(n))return!1}return!0}var re=te(\"5.3.11\"),oe=function(){function e(e,t,n){this.rules=e,this.staticRulesId=\"\",this.isStatic=\"production\"===process.env.NODE_ENV&&(void 0===n||n.isStatic)&&ne(e),this.componentId=t,this.baseHash=ee(re,t),this.baseStyle=n,X.registerId(t)}return e.prototype.generateAndInjectStyles=function(e,t,n){var r=this.componentId,o=[];if(this.baseStyle&&o.push(this.baseStyle.generateAndInjectStyles(e,t,n)),this.isStatic&&!n.hash)if(this.staticRulesId&&t.hasNameForId(r,this.staticRulesId))o.push(this.staticRulesId);else{var s=_e(this.rules,e,t,n).join(\"\"),i=Q(ee(this.baseHash,s)>>>0);if(!t.hasNameForId(r,i)){var a=n(s,\".\"+i,void 0,r);t.insertRules(r,i,a)}o.push(i),this.staticRulesId=i}else{for(var c=this.rules.length,u=ee(this.baseHash,n.hash),l=\"\",d=0;d<c;d++){var h=this.rules[d];if(\"string\"==typeof h)l+=h,\"production\"!==process.env.NODE_ENV&&(u=ee(u,h+d));else if(h){var p=_e(h,e,t,n),f=Array.isArray(p)?p.join(\"\"):p;u=ee(u,f+d),l+=f}}if(l){var m=Q(u>>>0);if(!t.hasNameForId(r,m)){var y=n(l,\".\"+m,void 0,r);t.insertRules(r,m,y)}o.push(m)}}return o.join(\" \")},e}(),se=/^\\s*\\/\\/.*$/gm,ie=[\":\",\"[\",\".\",\"#\"];function ae(e){var t,n,r,o,s=void 0===e?w:e,i=s.options,a=void 0===i?w:i,c=s.plugins,u=void 0===c?S:c,l=new h(a),d=[],p=function(e){function t(t){if(t)try{e(t+\"}\")}catch(e){}}return function(n,r,o,s,i,a,c,u,l,d){switch(n){case 1:if(0===l&&64===r.charCodeAt(0))return e(r+\";\"),\"\";break;case 2:if(0===u)return r+\"/*|*/\";break;case 3:switch(u){case 102:case 112:return e(o[0]+r),\"\";default:return r+(0===d?\"/*|*/\":\"\")}case-2:r.split(\"/*|*/}\").forEach(t)}}}((function(e){d.push(e)})),f=function(e,r,s){return 0===r&&-1!==ie.indexOf(s[n.length])||s.match(o)?e:\".\"+t};function m(e,s,i,a){void 0===a&&(a=\"&\");var c=e.replace(se,\"\"),u=s&&i?i+\" \"+s+\" { \"+c+\" }\":c;return t=a,n=s,r=new RegExp(\"\\\\\"+n+\"\\\\b\",\"g\"),o=new RegExp(\"(\\\\\"+n+\"\\\\b){2,}\"),l(i||!s?\"\":s,u)}return l.use([].concat(u,[function(e,t,o){2===e&&o.length&&o[0].lastIndexOf(n)>0&&(o[0]=o[0].replace(r,f))},p,function(e){if(-2===e){var t=d;return d=[],t}}])),m.hash=u.length?u.reduce((function(e,t){return t.name||D(15),ee(e,t.name)}),5381).toString():\"\",m}var ce=r.createContext(),ue=ce.Consumer,le=r.createContext(),de=(le.Consumer,new X),he=ae();function pe(){return s(ce)||de}function fe(){return s(le)||he}function me(e){var t=o(e.stylisPlugins),n=t[0],s=t[1],c=pe(),u=i((function(){var t=c;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target]),l=i((function(){return ae({options:{prefix:!e.disableVendorPrefixes},plugins:n})}),[e.disableVendorPrefixes,n]);return a((function(){d(n,e.stylisPlugins)||s(e.stylisPlugins)}),[e.stylisPlugins]),r.createElement(ce.Provider,{value:u},r.createElement(le.Provider,{value:l},\"production\"!==process.env.NODE_ENV?r.Children.only(e.children):e.children))}var ye=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=he);var r=n.name+t.hash;e.hasNameForId(n.id,r)||e.insertRules(n.id,r,t(n.rules,r,\"@keyframes\"))},this.toString=function(){return D(12,String(n.name))},this.name=e,this.id=\"sc-keyframes-\"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=he),this.name+e.hash},e}(),ve=/([A-Z])/,ge=/([A-Z])/g,Se=/^ms-/,we=function(e){return\"-\"+e.toLowerCase()};function Ee(e){return ve.test(e)?e.replace(ge,we).replace(Se,\"-ms-\"):e}var be=function(e){return null==e||!1===e||\"\"===e};function _e(e,n,r,o){if(Array.isArray(e)){for(var s,i=[],a=0,c=e.length;a<c;a+=1)\"\"!==(s=_e(e[a],n,r,o))&&(Array.isArray(s)?i.push.apply(i,s):i.push(s));return i}if(be(e))return\"\";if(_(e))return\".\"+e.styledComponentId;if(E(e)){if(\"function\"!=typeof(l=e)||l.prototype&&l.prototype.isReactComponent||!n)return e;var u=e(n);return\"production\"!==process.env.NODE_ENV&&t(u)&&console.warn(b(e)+\" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\"),_e(u,n,r,o)}var l;return e instanceof ye?r?(e.inject(r,o),e.getName(o)):e:g(e)?function e(t,n){var r,o,s=[];for(var i in t)t.hasOwnProperty(i)&&!be(t[i])&&(Array.isArray(t[i])&&t[i].isCss||E(t[i])?s.push(Ee(i)+\":\",t[i],\";\"):g(t[i])?s.push.apply(s,e(t[i],i)):s.push(Ee(i)+\": \"+(r=i,null==(o=t[i])||\"boolean\"==typeof o||\"\"===o?\"\":\"number\"!=typeof o||0===o||r in p||r.startsWith(\"--\")?String(o).trim():o+\"px\")+\";\"));return n?[n+\" {\"].concat(s,[\"}\"]):s}(e):e.toString()}var Ne=function(e){return Array.isArray(e)&&(e.isCss=!0),e};function Ae(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return E(e)||g(e)?Ne(_e(v(S,[e].concat(n)))):0===n.length&&1===e.length&&\"string\"==typeof e[0]?e:Ne(_e(v(e,n)))}var Ce=/invalid hook call/i,Ie=new Set,Pe=function(e,t){if(\"production\"!==process.env.NODE_ENV){var n=\"The component \"+e+(t?' with the id of \"'+t+'\"':\"\")+\" has been created dynamically.\\nYou may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\",r=console.error;try{var o=!0;console.error=function(e){if(Ce.test(e))o=!1,Ie.delete(n);else{for(var t=arguments.length,s=new Array(t>1?t-1:0),i=1;i<t;i++)s[i-1]=arguments[i];r.apply(void 0,[e].concat(s))}},c(),o&&!Ie.has(n)&&(console.warn(n),Ie.add(n))}catch(e){Ce.test(e.message)&&Ie.delete(n)}finally{console.error=r}}},Oe=function(e,t,n){return void 0===n&&(n=w),e.theme!==n.theme&&e.theme||t||n.theme},Re=/[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,De=/(^-|-$)/g;function je(e){return e.replace(Re,\"-\").replace(De,\"\")}var Te=function(e){return Q(te(e)>>>0)};function xe(e){return\"string\"==typeof e&&(\"production\"===process.env.NODE_ENV||e.charAt(0)===e.charAt(0).toLowerCase())}var ke=function(e){return\"function\"==typeof e||\"object\"==typeof e&&null!==e&&!Array.isArray(e)},Ve=function(e){return\"__proto__\"!==e&&\"constructor\"!==e&&\"prototype\"!==e};function Be(e,t,n){var r=e[n];ke(t)&&ke(r)?ze(r,t):e[n]=t}function ze(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];for(var o=0,s=n;o<s.length;o++){var i=s[o];if(ke(i))for(var a in i)Ve(a)&&Be(e,i[a],a)}return e}var Me=r.createContext(),Ge=Me.Consumer;function Le(e){var t=s(Me),n=i((function(){return function(e,t){if(!e)return D(14);if(E(e)){var n=e(t);return\"production\"===process.env.NODE_ENV||null!==n&&!Array.isArray(n)&&\"object\"==typeof n?n:D(7)}return Array.isArray(e)||\"object\"!=typeof e?D(8):t?y({},t,{},e):e}(e.theme,t)}),[e.theme,t]);return e.children?r.createElement(Me.Provider,{value:n},e.children):null}var Fe={};function Ye(e,t,n){var o=_(e),i=!xe(e),a=t.attrs,c=void 0===a?S:a,l=t.componentId,d=void 0===l?function(e,t){var n=\"string\"!=typeof e?\"sc\":je(e);Fe[n]=(Fe[n]||0)+1;var r=n+\"-\"+Te(\"5.3.11\"+n+Fe[n]);return t?t+\"-\"+r:r}(t.displayName,t.parentComponentId):l,h=t.displayName,p=void 0===h?function(e){return xe(e)?\"styled.\"+e:\"Styled(\"+b(e)+\")\"}(e):h,v=t.displayName&&t.componentId?je(t.displayName)+\"-\"+t.componentId:t.componentId||d,g=o&&e.attrs?Array.prototype.concat(e.attrs,c).filter(Boolean):c,N=t.shouldForwardProp;o&&e.shouldForwardProp&&(N=t.shouldForwardProp?function(n,r,o){return e.shouldForwardProp(n,r,o)&&t.shouldForwardProp(n,r,o)}:e.shouldForwardProp);var A,C=new oe(n,v,o?e.componentStyle:void 0),I=C.isStatic&&0===c.length,P=function(e,t){return function(e,t,n,r){var o=e.attrs,i=e.componentStyle,a=e.defaultProps,c=e.foldedComponentIds,l=e.shouldForwardProp,d=e.styledComponentId,h=e.target,p=function(e,t,n){void 0===e&&(e=w);var r=y({},t,{theme:e}),o={};return n.forEach((function(e){var t,n,s,i=e;for(t in E(i)&&(i=i(r)),i)r[t]=o[t]=\"className\"===t?(n=o[t],s=i[t],n&&s?n+\" \"+s:n||s):i[t]})),[r,o]}(Oe(t,s(Me),a)||w,t,o),m=p[0],v=p[1],g=function(e,t,n,r){var o=pe(),s=fe(),i=t?e.generateAndInjectStyles(w,o,s):e.generateAndInjectStyles(n,o,s);return\"production\"!==process.env.NODE_ENV&&!t&&r&&r(i),i}(i,r,m,\"production\"!==process.env.NODE_ENV?e.warnTooManyClasses:void 0),S=n,b=v.$as||t.$as||v.as||t.as||h,_=xe(b),N=v!==t?y({},t,{},v):t,A={};for(var C in N)\"$\"!==C[0]&&\"as\"!==C&&(\"forwardedAs\"===C?A.as=N[C]:(l?l(C,f,b):!_||f(C))&&(A[C]=N[C]));return t.style&&v.style!==t.style&&(A.style=y({},t.style,{},v.style)),A.className=Array.prototype.concat(c,d,g!==d?g:null,t.className,v.className).filter(Boolean).join(\" \"),A.ref=S,u(b,A)}(A,e,t,I)};return P.displayName=p,(A=r.forwardRef(P)).attrs=g,A.componentStyle=C,A.displayName=p,A.shouldForwardProp=N,A.foldedComponentIds=o?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):S,A.styledComponentId=v,A.target=o?e.target:e,A.withComponent=function(e){var r=t.componentId,o=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(t,[\"componentId\"]),s=r&&r+\"-\"+(xe(e)?e:je(b(e)));return Ye(e,y({},o,{attrs:g,componentId:s}),n)},Object.defineProperty(A,\"defaultProps\",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=o?ze({},e.defaultProps,t):t}}),\"production\"!==process.env.NODE_ENV&&(Pe(p,v),A.warnTooManyClasses=function(e,t){var n={},r=!1;return function(o){if(!r&&(n[o]=!0,Object.keys(n).length>=200)){var s=t?' with the id of \"'+t+'\"':\"\";console.warn(\"Over 200 classes were generated for component \"+e+s+\".\\nConsider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n  const Component = styled.div.attrs(props => ({\\n    style: {\\n      background: props.background,\\n    },\\n  }))`width: 100%;`\\n\\n  <Component />\"),r=!0,n={}}}}(p,v)),Object.defineProperty(A,\"toString\",{value:function(){return\".\"+A.styledComponentId}}),i&&m(A,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),A}var qe=function(e){return function e(t,r,o){if(void 0===o&&(o=w),!n(r))return D(1,String(r));var s=function(){return t(r,o,Ae.apply(void 0,arguments))};return s.withConfig=function(n){return e(t,r,y({},o,{},n))},s.attrs=function(n){return e(t,r,y({},o,{attrs:Array.prototype.concat(o.attrs,n).filter(Boolean)}))},s}(Ye,e)};[\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"marquee\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"textPath\",\"tspan\"].forEach((function(e){qe[e]=qe(e)}));var He=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=ne(e),X.registerId(this.componentId+1)}var t=e.prototype;return t.createStyles=function(e,t,n,r){var o=r(_e(this.rules,t,n,r).join(\"\"),\"\"),s=this.componentId+e;n.insertRules(s,s,o)},t.removeStyles=function(e,t){t.clearRules(this.componentId+e)},t.renderStyles=function(e,t,n,r){e>2&&X.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,r)},e}();function $e(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];var i=Ae.apply(void 0,[e].concat(n)),a=\"sc-global-\"+Te(JSON.stringify(i)),u=new He(i,a);function d(e){var t=pe(),n=fe(),o=s(Me),d=c(t.allocateGSInstance(a)).current;return\"production\"!==process.env.NODE_ENV&&r.Children.count(e.children)&&console.warn(\"The global style component \"+a+\" was given child JSX. createGlobalStyle does not render children.\"),\"production\"!==process.env.NODE_ENV&&i.some((function(e){return\"string\"==typeof e&&-1!==e.indexOf(\"@import\")}))&&console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical <link> meta tag to the stylesheet, or simply embedding it manually in your index.html <head> section for a simpler app.\"),t.server&&h(d,e,t,o,n),l((function(){if(!t.server)return h(d,e,t,o,n),function(){return u.removeStyles(d,t)}}),[d,e,t,o,n]),null}function h(e,t,n,r,o){if(u.isStatic)u.renderStyles(e,P,n,o);else{var s=y({},t,{theme:Oe(t,r,d.defaultProps)});u.renderStyles(e,s,n,o)}}return\"production\"!==process.env.NODE_ENV&&Pe(a),r.memo(d)}function We(e){\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=Ae.apply(void 0,[e].concat(n)).join(\"\"),s=Te(o);return new ye(s,o)}var Ue=function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return\"\";var n=Y();return\"<style \"+[n&&'nonce=\"'+n+'\"',N+'=\"true\"','data-styled-version=\"5.3.11\"'].filter(Boolean).join(\" \")+\">\"+t+\"</style>\"},this.getStyleTags=function(){return e.sealed?D(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return D(2);var n=((t={})[N]=\"\",t[\"data-styled-version\"]=\"5.3.11\",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),o=Y();return o&&(n.nonce=o),[r.createElement(\"style\",y({},n,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new X({isServer:!0}),this.sealed=!1}var t=e.prototype;return t.collectStyles=function(e){return this.sealed?D(2):r.createElement(me,{sheet:this.instance},e)},t.interleaveWithNodeStream=function(e){return D(3)},e}(),Je=function(e){var t=r.forwardRef((function(t,n){var o=s(Me),i=e.defaultProps,a=Oe(t,o,i);return\"production\"!==process.env.NODE_ENV&&void 0===a&&console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"'+b(e)+'\"'),r.createElement(e,y({},t,{theme:a,ref:n}))}));return m(t,e),t.displayName=\"WithTheme(\"+b(e)+\")\",t},Xe=function(){return s(Me)},Ze={StyleSheet:X,masterSheet:de};\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"),\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&\"undefined\"!=typeof window&&(window[\"__styled-components-init__\"]=window[\"__styled-components-init__\"]||0,1===window[\"__styled-components-init__\"]&&console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"),window[\"__styled-components-init__\"]+=1);export default qe;export{Ue as ServerStyleSheet,ue as StyleSheetConsumer,ce as StyleSheetContext,me as StyleSheetManager,Ge as ThemeConsumer,Me as ThemeContext,Le as ThemeProvider,Ze as __PRIVATE__,$e as createGlobalStyle,Ae as css,_ as isStyledComponent,We as keyframes,Xe as useTheme,A as version,Je as withTheme};\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","import React, { PropsWithChildren } from 'react';\n\nexport type GoToFn = <P extends Record<string, unknown>>(view: string, params?: P) => void;\n\nexport type Routing = {\n    goTo: GoToFn;\n    params: Record<string, unknown>;\n};\n\nexport type PropsWithRouting<P = unknown> = P & Routing;\n\nexport const RoutingContext = React.createContext<Routing | undefined>(undefined);\n\nexport function useRouting(): Routing {\n    const context = React.useContext(RoutingContext);\n    if (!context) {\n        throw new Error('No RoutingContext provided');\n    }\n\n    return context;\n}\n\ntype RoutingProviderProps = PropsWithRouting<PropsWithChildren<{}>>;\n\nexport function RoutingProvider({\n    children,\n    goTo,\n    params = {},\n}: RoutingProviderProps): JSX.Element | null {\n    return <RoutingContext.Provider value={{ goTo, params }}>{children}</RoutingContext.Provider>;\n}\n","import React, {\n    AnchorHTMLAttributes,\n    ComponentType,\n    CSSProperties,\n    HTMLAttributes,\n    MouseEvent,\n} from 'react';\n\nimport { marked } from 'marked';\nimport styled from 'styled-components';\n\nimport { useRouting } from '../contexts/routing';\n\nexport const Heading = styled.div`\n    margin-bottom: ${props => props.theme.spacing * 1.5}px;\n    text-align: center;\n    color: ${props => props.theme.headingColor};\n    font-weight: bold;\n    font-size: ${props => props.theme.fontSize * 1.2}px;\n`; // Derive font size from base font size\n\nconst TextBase = styled.div`\n    text-align: center;\n    margin-bottom: ${props => props.theme.spacing}px;\n`;\n\nexport const Info = styled(TextBase)`\n    color: ${props => props.theme.textColor};\n`;\n\nexport const ErrorText = styled(TextBase)`\n    color: ${props => props.theme.dangerColor};\n`;\n\nexport const Paragraph = styled.p<{ align?: CSSProperties['textAlign'] }>`\n    margin-bottom: ${props => props.theme.spacing}px;\n    text-align: ${props => props.align ?? 'start'};\n`;\n\nexport const MutedText = styled.span`\n    color: ${props => props.theme.mutedTextColor};\n`;\n\nexport const Intro = Info;\n\nconst SeparatorInner = styled.div`\n    color: ${props => props.theme.mutedTextColor};\n    display: block;\n    text-align: center;\n    overflow: hidden;\n    white-space: nowrap;\n    margin: ${props => props.theme.spacing}px 0;\n\n    & > span {\n        position: relative;\n        display: inline-block;\n    }\n\n    & > span:before,\n    & > span:after {\n        content: '';\n        position: absolute;\n        top: 50%;\n        width: 9999px;\n        height: 1px;\n        background: ${props => props.theme.borderColor};\n    }\n\n    & > span:before {\n        right: 100%;\n        margin-right: ${props => props.theme.fontSize}px;\n    }\n\n    & > span:after {\n        left: 100%;\n        margin-left: ${props => props.theme.fontSize}px;\n    }\n`;\n\nexport const Separator = ({ text }: { text?: string }) => (\n    <SeparatorInner>\n        <span>{text}</span>\n    </SeparatorInner>\n);\n\nexport const Alternative = styled.div`\n    text-align: center;\n    margin-top: ${props => props.theme.spacing * 1.5}px;\n    color: ${props => props.theme.textColor};\n`;\n\nexport const Link = styled(\n    ({\n        target,\n        href = '#',\n        children,\n        className,\n        controller,\n    }: { controller?: AbortController } & AnchorHTMLAttributes<HTMLAnchorElement>) => {\n        const { goTo } = useRouting();\n\n        const onClick = target\n            ? (e: MouseEvent<HTMLAnchorElement>) => {\n                  controller?.abort(`Going to ${target}`);\n                  e.preventDefault();\n                  goTo(target);\n              }\n            : () => {};\n\n        return (\n            <a href={href} onClick={onClick} className={className}>\n                {children}\n            </a>\n        );\n    }\n)`\n    color: ${props => props.theme.link.color};\n    text-decoration: ${props => props.theme.link.decoration};\n    &:hover {\n        color: ${props => props.theme.link.hoverColor};\n        text-decoration: ${props => props.theme.link.hoverDecoration};\n    }\n`;\n\nmarked.use({\n    renderer: {\n        link({ href, text }) {\n            return (\n                '<a href=\"' +\n                href +\n                '\" target=\"_blank\" rel=\"nofollow noreferrer noopener\">' +\n                text +\n                '</a>'\n            );\n        },\n    },\n    extensions: [\n        // specific underline markup is missed in marked module\n        // see https://marked.js.org/using_pro#extensions\n        {\n            name: 'underline',\n            level: 'inline',\n            start(src) {\n                return /\\+{2}/.exec(src)?.index; // starts with ++\n            },\n            tokenizer(src) {\n                const rule = /^\\+{2}([^+\\n]+)\\+{2}/;\n                const match = rule.exec(src);\n                if (match) {\n                    return {\n                        type: 'underline',\n                        raw: match[0],\n                        text: match[1],\n                        tokens: this.lexer.inlineTokens(match[1]),\n                    };\n                }\n            },\n            renderer(token) {\n                return `<u>${token.text}</u>`;\n            },\n        },\n    ],\n});\n\ninterface MarkdownContentProps<T> extends HTMLAttributes<T> {\n    root: ComponentType<HTMLAttributes<T>>;\n    source: string;\n}\n\nexport function MarkdownContent<T>({ root: Root, source, ...props }: MarkdownContentProps<T>) {\n    return (\n        <Root\n            data-text=\"md\"\n            dangerouslySetInnerHTML={{ __html: marked.parse(source) }}\n            {...props}\n        />\n    );\n}\n","export interface AppError {\n    errorId: string;\n    errorDescription: string;\n    error: string;\n    errorUserMsg?: string;\n    errorDetails?: string;\n    errorMessageKey?: string;\n}\n\nexport function isAppError(err: unknown): err is AppError {\n    return typeof err === 'object' && err !== null && 'errorMessageKey' in err;\n}\n\nexport class UserError extends Error {\n    isUserError = true;\n\n    constructor(message: string) {\n        super(message);\n        Object.setPrototypeOf(this, UserError.prototype);\n    }\n\n    static fromAppError(appError: AppError) {\n        return new UserError(appError.errorUserMsg ?? appError.errorDescription ?? appError.error);\n    }\n}\n","export function log(msg: string) {\n    if (window.console?.log) window.console.log(msg);\n}\n\nexport function logError(messageOrException: string | Error, exception?: Error) {\n    if (window.console) {\n        if (window.console.error) {\n            if (exception) {\n                window.console.error(messageOrException, exception);\n            } else {\n                window.console.error(messageOrException);\n            }\n        } else if (window.console.log) {\n            window.console.log(messageOrException);\n        }\n    }\n}\n","import type { ComponentType, PropsWithChildren } from 'react';\nimport React from 'react';\n\nimport type { Config } from '../types';\n\nexport interface Props {\n    config: Config;\n}\n\nexport const ConfigContext = React.createContext<Config | undefined>(undefined);\n\nexport function useConfig(): Config {\n    const context = React.useContext(ConfigContext);\n    if (!context) {\n        throw new Error('No ConfigContext provided');\n    }\n\n    return context;\n}\n\nexport interface ConfigProps {\n    config: Config;\n}\n\nexport type WithConfig<P> = P & ConfigProps;\n\nexport function withConfig<T extends ConfigProps = ConfigProps>(\n    WrappedComponent: ComponentType<T>\n) {\n    const displayName = WrappedComponent.displayName ?? WrappedComponent.name ?? 'Component';\n\n    const ComponentWithConfig = (props: Omit<T, keyof ConfigProps>) => {\n        const config = useConfig();\n        return <WrappedComponent {...{ config }} {...(props as T)} />;\n    };\n\n    ComponentWithConfig.displayName = `withConfig(${displayName})`;\n\n    return ComponentWithConfig;\n}\n\nexport function ConfigProvider({ children, config }: PropsWithChildren<Props>): JSX.Element | null {\n    return <ConfigContext.Provider value={config}>{children}</ConfigContext.Provider>;\n}\n","import React, { PropsWithChildren } from 'react';\nimport { I18nextProvider, initReactI18next, useTranslation } from 'react-i18next';\n\nimport i18n, { ResourceKey, TFunction } from 'i18next';\n\nexport type I18nMessages = Record<string, ResourceKey>;\n\nexport interface Props {\n    defaultMessages?: I18nMessages;\n    messages?: I18nMessages;\n    locale: string;\n}\n\nexport type WithI18n<T> = T & { i18n: TFunction };\n\nexport function useI18n(): TFunction {\n    const { t } = useTranslation();\n    return t;\n}\n\nexport function I18nProvider({\n    children,\n    defaultMessages = {},\n    messages = {},\n    locale,\n}: PropsWithChildren<Props>): JSX.Element | null {\n    const instance = i18n.createInstance();\n    instance.use(initReactI18next).init(\n        {\n            lng: locale,\n            interpolation: {\n                escapeValue: false, // react already safes from xss,\n                prefix: '{',\n                suffix: '}',\n            },\n            fallbackLng: ['default', 'dev'],\n            resources: {\n                default: {\n                    translation: defaultMessages,\n                },\n                ...(locale in messages\n                    ? Object.fromEntries(\n                          Object.entries(messages).map(([language, translation]) => [\n                              language,\n                              { translation },\n                          ])\n                      )\n                    : { [locale]: { translation: messages } }),\n            },\n        },\n        err => {\n            if (err) {\n                console.error(err);\n                return;\n            }\n        }\n    );\n\n    return <I18nextProvider i18n={instance}>{children}</I18nextProvider>;\n}\n","import React, { PropsWithChildren } from 'react';\n\nimport type { Client as CoreClient } from '@reachfive/identity-core';\n\nexport interface Props {\n    client: CoreClient;\n}\n\nexport const ReachfiveContext = React.createContext<CoreClient | undefined>(undefined);\n\nexport function useReachfive(): CoreClient {\n    const context = React.useContext(ReachfiveContext);\n    if (!context) {\n        throw new Error('No ReachfiveContext provided');\n    }\n\n    return context;\n}\n\nexport function ReachfiveProvider({\n    children,\n    client,\n}: PropsWithChildren<Props>): JSX.Element | null {\n    return <ReachfiveContext.Provider value={client}>{children}</ReachfiveContext.Provider>;\n}\n","import { intlFormat } from 'date-fns';\nimport * as libphonenumber from 'libphonenumber-js';\n\nimport {\n    AuthResult,\n    LoginWithPasswordParams,\n    LoginWithWebAuthnParams,\n} from '@reachfive/identity-core';\n\nimport type { AuthType, IdentifierType, LoginEventWrappingObject } from '../types';\n\nconst CHARS = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\nexport function getRandomToken(length = 8) {\n    const buf = [];\n\n    for (let i = 0; i < length; i++) {\n        buf.push(CHARS[getRandomInt(0, CHARS.length)]);\n    }\n\n    return buf.join('');\n}\n\nexport function getRandomInt(min: number, max: number) {\n    return Math.floor(Math.random() * (max - min)) + min;\n}\n\nexport type FormValue<T, K extends string = 'raw'> = T | RichFormValue<T, K>;\nexport type RichFormValue<T, K extends string = 'raw'> = Record<K, T>;\n\nexport function isRichFormValue<T, K extends string = 'raw'>(\n    value: FormValue<T, K> | undefined,\n    rawProperty: K = 'raw' as K\n): value is RichFormValue<T, K> {\n    return value !== null && typeof value === 'object' && rawProperty in value;\n}\n\n/* Returns whether a form value has been set with a valid value.\n * If the user's input has been enriched as an object, raw input is expected\n * to be in a raw property field (named 'raw' by default).\n */\nexport function isValued<T, K extends string = 'raw'>(\n    value?: FormValue<T, K>,\n    rawProperty: K = 'raw' as K\n): value is NonNullable<FormValue<NonNullable<T>, K>> {\n    const unwrap = isRichFormValue(value, rawProperty) ? value[rawProperty] : value;\n    return (\n        unwrap !== null &&\n        unwrap !== undefined &&\n        unwrap !== '' &&\n        !Number.isNaN(unwrap) &&\n        (Array.isArray(unwrap) ? unwrap.length > 0 : true)\n    );\n}\n\nexport function formatISO8601Date(\n    year: string | number,\n    month: string | number,\n    day: string | number\n) {\n    if (isValued(year) && isValued(month) && isValued(day)) {\n        return `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;\n    }\n\n    return null;\n}\n\nexport function dateFormat(dateString: string, locales: string) {\n    return intlFormat(new Date(dateString), { timeZone: 'UTC' }, { locale: locales });\n}\n\nexport type Identifier = { identifier: string };\nexport type EmailIdentifier = { email: string };\nexport type PhoneNumberIdentifier = { phoneNumber: string };\nexport type CustomIdentifier = { customIdentifier: string };\nexport type SpecializedIdentifier = EmailIdentifier | PhoneNumberIdentifier | CustomIdentifier;\n\nexport const isCustomIdentifier = (\n    identifier: SpecializedIdentifier | Record<string, unknown>\n): identifier is CustomIdentifier => 'customIdentifier' in identifier;\n\ntype IdentifierLoginPassword = { identifier: string } & Omit<\n    LoginWithPasswordParams,\n    'email' | 'phoneNumber' | 'customIdentifier'\n>;\ntype IdentifierLoginWithWebAuthn = { identifier: string } & Omit<\n    LoginWithWebAuthnParams,\n    'email' | 'phoneNumber'\n>;\n\ntype IdentifierData<T extends LoginWithPasswordParams | LoginWithWebAuthnParams> =\n    T extends LoginWithPasswordParams\n        ? LoginWithPasswordParams | IdentifierLoginPassword\n        : LoginWithWebAuthnParams | IdentifierLoginWithWebAuthn;\n\nexport function enrichLoginEvent<T extends LoginWithPasswordParams | LoginWithWebAuthnParams>(\n    authResult: AuthResult,\n    authType: AuthType,\n    data?: T\n): LoginEventWrappingObject {\n    switch (authType) {\n        case 'password':\n        case 'webauthn': {\n            const identifierType: IdentifierType =\n                data != undefined\n                    ? 'email' in data\n                        ? 'email'\n                        : 'phoneNumber' in data\n                          ? 'phone_number'\n                          : 'custom_identifier'\n                    : 'email';\n            return { authResult, authType, identifierType };\n        }\n        default:\n            return { authResult, authType };\n    }\n}\n\nexport const specializeIdentifier = (identifier: string): SpecializedIdentifier =>\n    isValidEmail(identifier)\n        ? { email: identifier }\n        : libphonenumber.isValidNumber(identifier)\n          ? { phoneNumber: identifier.replace(/\\s+/g, '') }\n          : { customIdentifier: identifier };\n\nexport function specializeIdentifierData<\n    T extends LoginWithPasswordParams | LoginWithWebAuthnParams,\n>(data: IdentifierData<T>): T {\n    if ('identifier' in data && typeof data.identifier === 'string') {\n        const { identifier, ...rest } = data;\n        const specializedIdentifier = specializeIdentifier(identifier);\n        return { ...specializedIdentifier, ...rest } as unknown as T;\n    }\n    return data as T;\n}\n\nexport function isValidEmail(email: string) {\n    return /\\S+@\\S+\\.\\S+/.test(email);\n}\n\nexport type CamelCase<T extends string> = T extends `${infer U}_${infer V}`\n    ? `${U}${CamelCase<Capitalize<V>>}`\n    : T;\n\nexport function camelCase<T extends string>(string: T) {\n    return string\n        .replace(/([^A-Z])([A-Z])/g, '$1 $2') // \"aB\" become \"a B\"\n        .toLowerCase()\n        .replace(/[^a-z0-9]/gi, ' ')\n        .trim()\n        .replace(/(?:^\\w|[A-Z]|\\b\\w)/g, function (word, index) {\n            return index === 0 ? word.toLowerCase() : word.toUpperCase();\n        })\n        .replace(/\\s+/g, '');\n}\n\nexport type SnakeCase<S extends string> = S extends `${infer T}${infer U}`\n    ? `${T extends Capitalize<T> ? '_' : ''}${Lowercase<T>}${SnakeCase<U>}`\n    : S;\n\nexport function snakeCase<T extends string>(string: T) {\n    const matches = string.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+|[A-Z]|[0-9]+/g);\n    return matches ? matches.map(s => s.toLowerCase()).join('_') : '';\n}\n\nexport function isEmpty(value: unknown) {\n    if (value == null) {\n        return true;\n    }\n    if (Array.isArray(value) || typeof value == 'string' || Buffer.isBuffer(value)) {\n        return !value.length;\n    }\n    for (const key in value) {\n        if (Object.hasOwnProperty.call(value, key)) {\n            return false;\n        }\n    }\n    return true;\n}\n\nexport function isEqual<T>(arr1: T[], arr2: T[]) {\n    return arr1.length === arr2.length && arr1.every(x => arr2.includes(x));\n}\n\nexport function difference<T>(arr1: T[], arr2: T[]) {\n    return arr1.filter(x => !arr2.includes(x));\n}\n\nexport function intersection<T>(arr1: T[], ...args: T[][]) {\n    return arr1.filter(item => args.every(arr => arr.includes(item)));\n}\n\nexport function find<T>(collection: Record<string, T>, predicate: (item: T) => boolean) {\n    return Object.values(collection ?? {}).find(value => predicate(value));\n}\n\nexport function debounce<T extends unknown[]>(\n    func: (...args: T) => void,\n    delay: number,\n    { leading }: { leading?: boolean } = {}\n) {\n    let timerId: NodeJS.Timeout;\n\n    return (...args: T) => {\n        if (!timerId && leading) {\n            func(...args);\n        }\n        clearTimeout(timerId);\n\n        timerId = setTimeout(() => func(...args), delay);\n    };\n}\n","import { useEffect, useMemo, useRef } from 'react';\n\nimport { debounce } from './utils';\n\nexport const useDebounceCallback = <T extends unknown[]>(\n    callback: (...args: T) => void,\n    delay: number\n) => {\n    const ref = useRef(callback);\n\n    useEffect(() => {\n        ref.current = callback;\n    }, [callback]);\n\n    const debouncedCallback = useMemo(() => {\n        // pass arguments to callback function\n        const func = (...arg: T) => {\n            ref.current(...arg);\n        };\n\n        return debounce(func, delay);\n    }, [delay]);\n\n    return debouncedCallback;\n};\n","import { CaptchaFoxInstance } from '@captchafox/react';\nimport type { WidgetDisplayMode } from '@captchafox/types';\n\nimport { UserError } from '@/helpers/errors';\n\nimport { WithCaptchaToken } from './captcha';\n\nexport interface CaptchaFoxConf {\n    /**\n     * Boolean that specifies whether CaptchaFox is enabled or not.\n     */\n    captchaFoxEnabled: boolean;\n    /**\n     * The SITE key that comes from your [CaptchaFox](https://docs.captchafox.com/getting-started#get-your-captchafox-keys) setup.\n     * This must be paired with the appropriate secret key that you received when setting up CaptchaFox.\n     */\n    captchaFoxSiteKey: string;\n    /**\n     * Define how CaptchaFox is displayed (hidden|inline|popup)/ Default to hidden.\n     */\n    captchaFoxMode?: WidgetDisplayMode;\n}\n\nexport default class CaptchaFox {\n    static handle = async <T, R = {}>(\n        data: T,\n        instance: CaptchaFoxInstance | null,\n        callback: (data: WithCaptchaToken<T>) => Promise<R>\n    ) => {\n        try {\n            const captchaToken = await instance?.execute();\n            return callback({ ...data, captchaToken, captchaProvider: 'captchafox' });\n        } catch (_error) {\n            return Promise.reject(\n                UserError.fromAppError({\n                    errorId: '',\n                    error: 'CaptchaFox error',\n                    errorDescription: 'CaptchaFox Error',\n                    errorMessageKey: 'captchaFox.error',\n                })\n            );\n        }\n    };\n}\n","import { UserError } from '@/helpers/errors';\n\nimport { WithCaptchaToken } from './captcha';\n\ndeclare global {\n    interface Window {\n        grecaptcha: {\n            execute(siteKey: string, action: { action: string }): PromiseLike<string>;\n        };\n    }\n}\n\nexport type RecaptchaAction =\n    | 'signup'\n    | 'login'\n    | 'update_email'\n    | 'passwordless_email'\n    | 'passwordless_phone'\n    | 'verify_passwordless_sms'\n    | 'account_recovery'\n    | 'password_reset_requested';\n\nexport interface ReCaptchaConf {\n    /**\n     * Boolean that specifies whether reCAPTCHA is enabled or not.\n     */\n    recaptcha_enabled: boolean;\n    /**\n     * The SITE key that comes from your [reCAPTCHA](https://www.google.com/recaptcha/admin/create) setup.\n     * This must be paired with the appropriate secret key that you received when setting up reCAPTCHA.\n     */\n    recaptcha_site_key: string;\n}\n\nexport default class ReCaptcha {\n    static getRecaptchaToken = async (siteKey: string, action: RecaptchaAction) => {\n        return await window.grecaptcha.execute(siteKey, { action: action });\n    };\n\n    static handle = async <T, R = {}>(\n        data: T,\n        conf: ReCaptchaConf,\n        callback: (data: WithCaptchaToken<T>) => Promise<R>,\n        action: RecaptchaAction\n    ) => {\n        if (conf.recaptcha_enabled) {\n            try {\n                const captchaToken = await this.getRecaptchaToken(\n                    conf.recaptcha_site_key ?? '',\n                    action\n                );\n                return callback({ ...data, captchaToken, captchaProvider: 'recaptcha' });\n            } catch (_error) {\n                return Promise.reject(\n                    UserError.fromAppError({\n                        errorId: '',\n                        error: 'Recaptcha error',\n                        errorDescription: 'Recaptcha error',\n                        errorMessageKey: 'recaptcha.error',\n                    })\n                );\n            }\n        } else {\n            return callback({ ...data, captchaToken: undefined });\n        }\n    };\n}\n\nexport function importGoogleRecaptchaScript(site_key?: string) {\n    const script = document.createElement('script');\n    script.src = 'https://www.google.com/recaptcha/api.js?render=' + site_key;\n    document.body.appendChild(script);\n}\n\nexport function extractCaptchaTokenFromData<T extends { captchaToken?: string }>(data: T) {\n    const token = data.captchaToken;\n    delete data.captchaToken;\n    return token;\n}\n","import React, { ComponentType, useRef } from 'react';\n\nimport { CaptchaFoxInstance, CaptchaFox as CaptchaFoxWidget } from '@captchafox/react';\nimport styled from 'styled-components';\n\nimport CaptchaFox, { CaptchaFoxConf } from './captchaFox';\nimport ReCaptcha, { RecaptchaAction, ReCaptchaConf } from './reCaptcha';\n\nconst StyledCaptchaFoxWidget = styled(CaptchaFoxWidget)`\n    margin-bottom: ${props => props.theme.spacing}px;\n`;\n\nexport type WithCaptchaProps<T> = T & Partial<ReCaptchaConf & CaptchaFoxConf>;\n\nexport type WithCaptchaToken<T> = T & { captchaToken?: string };\n\nexport type CaptchaValues = {\n    handler: <T, R>(data: T, callback: (data: T) => Promise<R>) => Promise<R>;\n    Captcha?: ComponentType;\n};\n\nconst defaultHandler = <T, R>(data: T, callback: (data: T) => Promise<R>) => callback(data);\n\nexport const CaptchaContext = React.createContext<CaptchaValues>({\n    handler: defaultHandler,\n});\n\nexport const useCaptcha = () => {\n    return React.useContext(CaptchaContext);\n};\n\nexport type CaptchaProviderProps = WithCaptchaProps<{\n    children: React.ReactNode;\n    action: RecaptchaAction;\n}>;\n\nexport const CaptchaProvider = ({ children, action, ...options }: CaptchaProviderProps) => {\n    const captchaFoxInstanceRef = useRef<CaptchaFoxInstance>(null);\n\n    if (options.recaptcha_enabled && options.recaptcha_site_key) {\n        const handler = <T, R>(data: T, callback: (data: T) => Promise<R>) =>\n            ReCaptcha.handle(\n                data,\n                { recaptcha_enabled: true, recaptcha_site_key: options.recaptcha_site_key! },\n                callback,\n                action\n            );\n\n        return <CaptchaContext.Provider value={{ handler }}>{children}</CaptchaContext.Provider>;\n    }\n\n    if (options.captchaFoxEnabled && options.captchaFoxSiteKey) {\n        const handler = async <T, R>(data: T, callback: (data: T) => Promise<R>) =>\n            CaptchaFox.handle(data, captchaFoxInstanceRef.current, callback);\n\n        return (\n            <CaptchaContext.Provider\n                value={{\n                    handler,\n                    Captcha: () => (\n                        <StyledCaptchaFoxWidget\n                            ref={captchaFoxInstanceRef}\n                            sitekey={options.captchaFoxSiteKey!}\n                            mode={options.captchaFoxMode ?? 'hidden'}\n                            className=\"[&_.cf-button]:!max-w-full\"\n                        />\n                    ),\n                }}\n            >\n                {children}\n            </CaptchaContext.Provider>\n        );\n    }\n\n    return (\n        <CaptchaContext.Provider\n            value={{\n                handler: defaultHandler,\n            }}\n        >\n            {children}\n        </CaptchaContext.Provider>\n    );\n};\n","function _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _assertThisInitialized(e) {\n  if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  return e;\n}\nexport { _assertThisInitialized as default };","function _setPrototypeOf(t, e) {\n  return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n    return t.__proto__ = e, t;\n  }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n  t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","function _getPrototypeOf(t) {\n  return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n    return t.__proto__ || Object.getPrototypeOf(t);\n  }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeFunction(t) {\n  try {\n    return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n  } catch (n) {\n    return \"function\" == typeof t;\n  }\n}\nexport { _isNativeFunction as default };","function _isNativeReflectConstruct() {\n  try {\n    var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n  } catch (t) {}\n  return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n    return !!t;\n  })();\n}\nexport { _isNativeReflectConstruct as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n  if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n  var o = [null];\n  o.push.apply(o, e);\n  var p = new (t.bind.apply(t, o))();\n  return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n  var r = \"function\" == typeof Map ? new Map() : void 0;\n  return _wrapNativeSuper = function _wrapNativeSuper(t) {\n    if (null === t || !isNativeFunction(t)) return t;\n    if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n    if (void 0 !== r) {\n      if (r.has(t)) return r.get(t);\n      r.set(t, Wrapper);\n    }\n    function Wrapper() {\n      return construct(t, arguments, getPrototypeOf(this).constructor);\n    }\n    return Wrapper.prototype = Object.create(t.prototype, {\n      constructor: {\n        value: Wrapper,\n        enumerable: !1,\n        writable: !0,\n        configurable: !0\n      }\n    }), setPrototypeOf(Wrapper, t);\n  }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';\nimport _taggedTemplateLiteralLoose from '@babel/runtime/helpers/esm/taggedTemplateLiteralLoose';\n\nfunction last() {\n  var _ref;\n  return _ref = arguments.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref];\n}\nfunction negation(a) {\n  return -a;\n}\nfunction addition(a, b) {\n  return a + b;\n}\nfunction subtraction(a, b) {\n  return a - b;\n}\nfunction multiplication(a, b) {\n  return a * b;\n}\nfunction division(a, b) {\n  return a / b;\n}\nfunction max() {\n  return Math.max.apply(Math, arguments);\n}\nfunction min() {\n  return Math.min.apply(Math, arguments);\n}\nfunction comma() {\n  return Array.of.apply(Array, arguments);\n}\nvar defaultSymbols = {\n  symbols: {\n    '*': {\n      infix: {\n        symbol: '*',\n        f: multiplication,\n        notation: 'infix',\n        precedence: 4,\n        rightToLeft: 0,\n        argCount: 2\n      },\n      symbol: '*',\n      regSymbol: '\\\\*'\n    },\n    '/': {\n      infix: {\n        symbol: '/',\n        f: division,\n        notation: 'infix',\n        precedence: 4,\n        rightToLeft: 0,\n        argCount: 2\n      },\n      symbol: '/',\n      regSymbol: '/'\n    },\n    '+': {\n      infix: {\n        symbol: '+',\n        f: addition,\n        notation: 'infix',\n        precedence: 2,\n        rightToLeft: 0,\n        argCount: 2\n      },\n      prefix: {\n        symbol: '+',\n        f: last,\n        notation: 'prefix',\n        precedence: 3,\n        rightToLeft: 0,\n        argCount: 1\n      },\n      symbol: '+',\n      regSymbol: '\\\\+'\n    },\n    '-': {\n      infix: {\n        symbol: '-',\n        f: subtraction,\n        notation: 'infix',\n        precedence: 2,\n        rightToLeft: 0,\n        argCount: 2\n      },\n      prefix: {\n        symbol: '-',\n        f: negation,\n        notation: 'prefix',\n        precedence: 3,\n        rightToLeft: 0,\n        argCount: 1\n      },\n      symbol: '-',\n      regSymbol: '-'\n    },\n    ',': {\n      infix: {\n        symbol: ',',\n        f: comma,\n        notation: 'infix',\n        precedence: 1,\n        rightToLeft: 0,\n        argCount: 2\n      },\n      symbol: ',',\n      regSymbol: ','\n    },\n    '(': {\n      prefix: {\n        symbol: '(',\n        f: last,\n        notation: 'prefix',\n        precedence: 0,\n        rightToLeft: 0,\n        argCount: 1\n      },\n      symbol: '(',\n      regSymbol: '\\\\('\n    },\n    ')': {\n      postfix: {\n        symbol: ')',\n        f: undefined,\n        notation: 'postfix',\n        precedence: 0,\n        rightToLeft: 0,\n        argCount: 1\n      },\n      symbol: ')',\n      regSymbol: '\\\\)'\n    },\n    min: {\n      func: {\n        symbol: 'min',\n        f: min,\n        notation: 'func',\n        precedence: 0,\n        rightToLeft: 0,\n        argCount: 1\n      },\n      symbol: 'min',\n      regSymbol: 'min\\\\b'\n    },\n    max: {\n      func: {\n        symbol: 'max',\n        f: max,\n        notation: 'func',\n        precedence: 0,\n        rightToLeft: 0,\n        argCount: 1\n      },\n      symbol: 'max',\n      regSymbol: 'max\\\\b'\n    }\n  }\n};\nvar defaultSymbolMap = defaultSymbols;\n\n// based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\nvar ERRORS = {\n  \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n  \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n  \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n  \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n  \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n  \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n  \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n  \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n  \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n  \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n  \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n  \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n  \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n  \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n  \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n  \"16\": \"You must provide a template to this method.\\n\\n\",\n  \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n  \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n  \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n  \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n  \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n  \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n  \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n  \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n  \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n  \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n  \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n  \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n  \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n  \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n  \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n  \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n  \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n  \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n  \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n  \"36\": \"Property must be a string value.\\n\\n\",\n  \"37\": \"Syntax Error at %s.\\n\\n\",\n  \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n  \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n  \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n  \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n  \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n  \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n  \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n  \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n  \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n  \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n  \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n  \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n  \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n  \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n  \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n  \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n  \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n  \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n  \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n  \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n  \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n  \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n  \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n  \"61\": \"Property must be a string value.\\n\\n\",\n  \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n  \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n  \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n  \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n  \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n  \"67\": \"You must provide a template to this method.\\n\\n\",\n  \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n  \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n  \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n  \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n  \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n  \"73\": \"Please provide a valid CSS variable.\\n\\n\",\n  \"74\": \"CSS variable not found and no default was provided.\\n\\n\",\n  \"75\": \"important requires a valid style object, got a %s instead.\\n\\n\",\n  \"76\": \"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\\n\",\n  \"77\": \"remToPx expects a value in \\\"rem\\\" but you provided it in \\\"%s\\\".\\n\\n\",\n  \"78\": \"base must be set in \\\"px\\\" or \\\"%\\\" but you set it in \\\"%s\\\".\\n\"\n};\n\n/**\n * super basic version of sprintf\n * @private\n */\nfunction format() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  var a = args[0];\n  var b = [];\n  var c;\n  for (c = 1; c < args.length; c += 1) {\n    b.push(args[c]);\n  }\n  b.forEach(function (d) {\n    a = a.replace(/%[a-z]/, d);\n  });\n  return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\nvar PolishedError = /*#__PURE__*/function (_Error) {\n  _inheritsLoose(PolishedError, _Error);\n  function PolishedError(code) {\n    var _this;\n    if (process.env.NODE_ENV === 'production') {\n      _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n    } else {\n      for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        args[_key2 - 1] = arguments[_key2];\n      }\n      _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n    }\n    return _assertThisInitialized(_this);\n  }\n  return PolishedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g;\n\n// Merges additional math functionality into the defaults.\nfunction mergeSymbolMaps(additionalSymbols) {\n  var symbolMap = {};\n  symbolMap.symbols = additionalSymbols ? _extends({}, defaultSymbolMap.symbols, additionalSymbols.symbols) : _extends({}, defaultSymbolMap.symbols);\n  return symbolMap;\n}\nfunction exec(operators, values) {\n  var _ref;\n  var op = operators.pop();\n  values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n  return op.precedence;\n}\nfunction calculate(expression, additionalSymbols) {\n  var symbolMap = mergeSymbolMaps(additionalSymbols);\n  var match;\n  var operators = [symbolMap.symbols['('].prefix];\n  var values = [];\n  var pattern = new RegExp( // Pattern for numbers\n  \"\\\\d+(?:\\\\.\\\\d+)?|\" +\n  // ...and patterns for individual operators/function names\n  Object.keys(symbolMap.symbols).map(function (key) {\n    return symbolMap.symbols[key];\n  })\n  // longer symbols should be listed first\n  // $FlowFixMe\n  .sort(function (a, b) {\n    return b.symbol.length - a.symbol.length;\n  })\n  // $FlowFixMe\n  .map(function (val) {\n    return val.regSymbol;\n  }).join('|') + \"|(\\\\S)\", 'g');\n  pattern.lastIndex = 0; // Reset regular expression object\n\n  var afterValue = false;\n  do {\n    match = pattern.exec(expression);\n    var _ref2 = match || [')', undefined],\n      token = _ref2[0],\n      bad = _ref2[1];\n    var notNumber = symbolMap.symbols[token];\n    var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n    var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix;\n\n    // Check for syntax errors:\n    if (bad || (afterValue ? notAfterValue : notNewValue)) {\n      throw new PolishedError(37, match ? match.index : expression.length, expression);\n    }\n    if (afterValue) {\n      // We either have an infix or postfix operator (they should be mutually exclusive)\n      var curr = notNumber.postfix || notNumber.infix;\n      do {\n        var prev = operators[operators.length - 1];\n        if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break;\n        // Apply previous operator, since it has precedence over current one\n      } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n      afterValue = curr.notation === 'postfix';\n      if (curr.symbol !== ')') {\n        operators.push(curr);\n        // Postfix always has precedence over any operator that follows after it\n        if (afterValue) exec(operators, values);\n      }\n    } else if (notNumber) {\n      // prefix operator or function\n      operators.push(notNumber.prefix || notNumber.func);\n      if (notNumber.func) {\n        // Require an opening parenthesis\n        match = pattern.exec(expression);\n        if (!match || match[0] !== '(') {\n          throw new PolishedError(38, match ? match.index : expression.length, expression);\n        }\n      }\n    } else {\n      // number\n      values.push(+token);\n      afterValue = true;\n    }\n  } while (match && operators.length);\n  if (operators.length) {\n    throw new PolishedError(39, match ? match.index : expression.length, expression);\n  } else if (match) {\n    throw new PolishedError(40, match ? match.index : expression.length, expression);\n  } else {\n    return values.pop();\n  }\n}\nfunction reverseString(str) {\n  return str.split('').reverse().join('');\n}\n\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n *   fontSize: math('12rem + 8rem'),\n *   fontSize: math('(12px + 2px) * 3'),\n *   fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   fontSize: ${math('12rem + 8rem')};\n *   fontSize: ${math('(12px + 2px) * 3')};\n *   fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n *   fontSize: '20rem',\n *   fontSize: '42px',\n *   fontSize: '11px',\n * }\n */\nfunction math(formula, additionalSymbols) {\n  var reversedFormula = reverseString(formula);\n  var formulaMatch = reversedFormula.match(unitRegExp);\n\n  // Check that all units are the same\n  if (formulaMatch && !formulaMatch.every(function (unit) {\n    return unit === formulaMatch[0];\n  })) {\n    throw new PolishedError(41);\n  }\n  var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n  return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\n\nvar cssVariableRegex = /--[\\S]*/g;\n\n/**\n * Fetches the value of a passed CSS Variable in the :root scope, or otherwise returns a defaultValue if provided.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   'background': cssVar('--background-color'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${cssVar('--background-color')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   'background': 'red'\n * }\n */\nfunction cssVar(cssVariable, defaultValue) {\n  if (!cssVariable || !cssVariable.match(cssVariableRegex)) {\n    throw new PolishedError(73);\n  }\n  var variableValue;\n\n  /* eslint-disable */\n  /* istanbul ignore next */\n  if (typeof document !== 'undefined' && document.documentElement !== null) {\n    variableValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable);\n  }\n  /* eslint-enable */\n\n  if (variableValue) {\n    return variableValue.trim();\n  } else if (defaultValue) {\n    return defaultValue;\n  }\n  throw new PolishedError(74);\n}\n\n// @private\nfunction capitalizeString(string) {\n  return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar positionMap$1 = ['Top', 'Right', 'Bottom', 'Left'];\nfunction generateProperty(property, position) {\n  if (!property) return position.toLowerCase();\n  var splitProperty = property.split('-');\n  if (splitProperty.length > 1) {\n    splitProperty.splice(1, 0, position);\n    return splitProperty.reduce(function (acc, val) {\n      return \"\" + acc + capitalizeString(val);\n    });\n  }\n  var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n  return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\nfunction generateStyles(property, valuesWithDefaults) {\n  var styles = {};\n  for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n    if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n      styles[generateProperty(property, positionMap$1[i])] = valuesWithDefaults[i];\n    }\n  }\n  return styles;\n}\n\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'paddingTop': '12px',\n *   'paddingRight': '24px',\n *   'paddingBottom': '36px',\n *   'paddingLeft': '48px'\n * }\n */\nfunction directionalProperty(property) {\n  for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    values[_key - 1] = arguments[_key];\n  }\n  //  prettier-ignore\n  var firstValue = values[0],\n    _values$ = values[1],\n    secondValue = _values$ === void 0 ? firstValue : _values$,\n    _values$2 = values[2],\n    thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n    _values$3 = values[3],\n    fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n  var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n  return generateStyles(property, valuesWithDefaults);\n}\n\n/**\n * Check if a string ends with something\n * @private\n */\nfunction endsWith(string, suffix) {\n  return string.substr(-suffix.length) === suffix;\n}\n\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   '--dimension': 100\n * }\n */\nfunction stripUnit(value) {\n  if (typeof value !== 'string') return value;\n  var matchedValue = value.match(cssRegex$1);\n  return matchedValue ? parseFloat(value) : value;\n}\n\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\nvar pxtoFactory = function pxtoFactory(to) {\n  return function (pxval, base) {\n    if (base === void 0) {\n      base = '16px';\n    }\n    var newPxval = pxval;\n    var newBase = base;\n    if (typeof pxval === 'string') {\n      if (!endsWith(pxval, 'px')) {\n        throw new PolishedError(69, to, pxval);\n      }\n      newPxval = stripUnit(pxval);\n    }\n    if (typeof base === 'string') {\n      if (!endsWith(base, 'px')) {\n        throw new PolishedError(70, to, base);\n      }\n      newBase = stripUnit(base);\n    }\n    if (typeof newPxval === 'string') {\n      throw new PolishedError(71, pxval, to);\n    }\n    if (typeof newBase === 'string') {\n      throw new PolishedError(72, base, to);\n    }\n    return \"\" + newPxval / newBase + to;\n  };\n};\nvar pixelsto = pxtoFactory;\n\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n *   'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   'height': '1em'\n * }\n */\nvar em = pixelsto('em');\nvar em$1 = em;\n\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   '--dimension': getValueAndUnit('100px')[0],\n *   '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   --dimension: ${getValueAndUnit('100px')[0]};\n *   --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   '--dimension': 100,\n *   '--unit': 'px',\n * }\n */\nfunction getValueAndUnit(value) {\n  if (typeof value !== 'string') return [value, ''];\n  var matchedValue = value.match(cssRegex);\n  if (matchedValue) return [parseFloat(value), matchedValue[2]];\n  return [value, undefined];\n}\n\n/**\n * Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...important(cover())\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${important(cover())}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n *   'position': 'absolute !important',\n *   'top': '0 !important',\n *   'right: '0 !important',\n *   'bottom': '0 !important',\n *   'left: '0 !important'\n * }\n */\nfunction important(styleBlock, rules) {\n  if (typeof styleBlock !== 'object' || styleBlock === null) {\n    throw new PolishedError(75, typeof styleBlock);\n  }\n  var newStyleBlock = {};\n  Object.keys(styleBlock).forEach(function (key) {\n    if (typeof styleBlock[key] === 'object' && styleBlock[key] !== null) {\n      newStyleBlock[key] = important(styleBlock[key], rules);\n    } else if (!rules || rules && (rules === key || rules.indexOf(key) >= 0)) {\n      newStyleBlock[key] = styleBlock[key] + \" !important\";\n    } else {\n      newStyleBlock[key] = styleBlock[key];\n    }\n  });\n  return newStyleBlock;\n}\n\nvar ratioNames = {\n  minorSecond: 1.067,\n  majorSecond: 1.125,\n  minorThird: 1.2,\n  majorThird: 1.25,\n  perfectFourth: 1.333,\n  augFourth: 1.414,\n  perfectFifth: 1.5,\n  minorSixth: 1.6,\n  goldenSection: 1.618,\n  majorSixth: 1.667,\n  minorSeventh: 1.778,\n  majorSeventh: 1.875,\n  octave: 2,\n  majorTenth: 2.5,\n  majorEleventh: 2.667,\n  majorTwelfth: 3,\n  doubleOctave: 4\n};\nfunction getRatio(ratioName) {\n  return ratioNames[ratioName];\n}\n\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n *    // Increment two steps up the default scale\n *   'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *    // Increment two steps up the default scale\n *   fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   'fontSize': '1.77689em'\n * }\n */\nfunction modularScale(steps, base, ratio) {\n  if (base === void 0) {\n    base = '1em';\n  }\n  if (ratio === void 0) {\n    ratio = 1.333;\n  }\n  if (typeof steps !== 'number') {\n    throw new PolishedError(42);\n  }\n  if (typeof ratio === 'string' && !ratioNames[ratio]) {\n    throw new PolishedError(43);\n  }\n  var _ref = typeof base === 'string' ? getValueAndUnit(base) : [base, ''],\n    realBase = _ref[0],\n    unit = _ref[1];\n  var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n  if (typeof realBase === 'string') {\n    throw new PolishedError(44, base);\n  }\n  return \"\" + realBase * Math.pow(realRatio, steps) + (unit || '');\n}\n\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n *   'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   'height': '1rem'\n * }\n */\nvar rem = pixelsto('rem');\nvar rem$1 = rem;\n\nvar defaultFontSize = 16;\nfunction convertBase(base) {\n  var deconstructedValue = getValueAndUnit(base);\n  if (deconstructedValue[1] === 'px') {\n    return parseFloat(base);\n  }\n  if (deconstructedValue[1] === '%') {\n    return parseFloat(base) / 100 * defaultFontSize;\n  }\n  throw new PolishedError(78, deconstructedValue[1]);\n}\nfunction getBaseFromDoc() {\n  /* eslint-disable */\n  /* istanbul ignore next */\n  if (typeof document !== 'undefined' && document.documentElement !== null) {\n    var rootFontSize = getComputedStyle(document.documentElement).fontSize;\n    return rootFontSize ? convertBase(rootFontSize) : defaultFontSize;\n  }\n  /* eslint-enable */\n  /* istanbul ignore next */\n  return defaultFontSize;\n}\n\n/**\n * Convert rem values to px. By default, the base value is pulled from the font-size property on the root element (if it is set in % or px). It defaults to 16px if not found on the root. You can also override the base value by providing your own base in % or px.\n * @example\n * // Styles as object usage\n * const styles = {\n *   'height': remToPx('1.6rem')\n *   'height': remToPx('1.6rem', '10px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   height: ${remToPx('1.6rem')}\n *   height: ${remToPx('1.6rem', '10px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   'height': '25.6px',\n *   'height': '16px',\n * }\n */\nfunction remToPx(value, base) {\n  var deconstructedValue = getValueAndUnit(value);\n  if (deconstructedValue[1] !== 'rem' && deconstructedValue[1] !== '') {\n    throw new PolishedError(77, deconstructedValue[1]);\n  }\n  var newBase = base ? convertBase(base) : getBaseFromDoc();\n  return deconstructedValue[0] * newBase + \"px\";\n}\n\nvar functionsMap$3 = {\n  back: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n  circ: 'cubic-bezier(0.600,  0.040, 0.980, 0.335)',\n  cubic: 'cubic-bezier(0.550,  0.055, 0.675, 0.190)',\n  expo: 'cubic-bezier(0.950,  0.050, 0.795, 0.035)',\n  quad: 'cubic-bezier(0.550,  0.085, 0.680, 0.530)',\n  quart: 'cubic-bezier(0.895,  0.030, 0.685, 0.220)',\n  quint: 'cubic-bezier(0.755,  0.050, 0.855, 0.060)',\n  sine: 'cubic-bezier(0.470,  0.000, 0.745, 0.715)'\n};\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   'transitionTimingFunction': easeIn('quad')\n * }\n *\n * // styled-components usage\n *  const div = styled.div`\n *   transitionTimingFunction: ${easeIn('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n *   'transitionTimingFunction': 'cubic-bezier(0.550,  0.085, 0.680, 0.530)',\n * }\n */\nfunction easeIn(functionName) {\n  return functionsMap$3[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$2 = {\n  back: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n  circ: 'cubic-bezier(0.785,  0.135, 0.150, 0.860)',\n  cubic: 'cubic-bezier(0.645,  0.045, 0.355, 1.000)',\n  expo: 'cubic-bezier(1.000,  0.000, 0.000, 1.000)',\n  quad: 'cubic-bezier(0.455,  0.030, 0.515, 0.955)',\n  quart: 'cubic-bezier(0.770,  0.000, 0.175, 1.000)',\n  quint: 'cubic-bezier(0.860,  0.000, 0.070, 1.000)',\n  sine: 'cubic-bezier(0.445,  0.050, 0.550, 0.950)'\n};\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   'transitionTimingFunction': easeInOut('quad')\n * }\n *\n * // styled-components usage\n *  const div = styled.div`\n *   transitionTimingFunction: ${easeInOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n *   'transitionTimingFunction': 'cubic-bezier(0.455,  0.030, 0.515, 0.955)',\n * }\n */\nfunction easeInOut(functionName) {\n  return functionsMap$2[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$1 = {\n  back: 'cubic-bezier(0.175,  0.885, 0.320, 1.275)',\n  cubic: 'cubic-bezier(0.215,  0.610, 0.355, 1.000)',\n  circ: 'cubic-bezier(0.075,  0.820, 0.165, 1.000)',\n  expo: 'cubic-bezier(0.190,  1.000, 0.220, 1.000)',\n  quad: 'cubic-bezier(0.250,  0.460, 0.450, 0.940)',\n  quart: 'cubic-bezier(0.165,  0.840, 0.440, 1.000)',\n  quint: 'cubic-bezier(0.230,  1.000, 0.320, 1.000)',\n  sine: 'cubic-bezier(0.390,  0.575, 0.565, 1.000)'\n};\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   'transitionTimingFunction': easeOut('quad')\n * }\n *\n * // styled-components usage\n *  const div = styled.div`\n *   transitionTimingFunction: ${easeOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n *   'transitionTimingFunction': 'cubic-bezier(0.250,  0.460, 0.450, 0.940)',\n * }\n */\nfunction easeOut(functionName) {\n  return functionsMap$1[functionName.toLowerCase().trim()];\n}\n\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   fontSize: between('20px', '100px', '400px', '1000px'),\n *   fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   fontSize: ${between('20px', '100px', '400px', '1000px')};\n *   fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n *   'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n *   'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n  if (minScreen === void 0) {\n    minScreen = '320px';\n  }\n  if (maxScreen === void 0) {\n    maxScreen = '1200px';\n  }\n  var _getValueAndUnit = getValueAndUnit(fromSize),\n    unitlessFromSize = _getValueAndUnit[0],\n    fromSizeUnit = _getValueAndUnit[1];\n  var _getValueAndUnit2 = getValueAndUnit(toSize),\n    unitlessToSize = _getValueAndUnit2[0],\n    toSizeUnit = _getValueAndUnit2[1];\n  var _getValueAndUnit3 = getValueAndUnit(minScreen),\n    unitlessMinScreen = _getValueAndUnit3[0],\n    minScreenUnit = _getValueAndUnit3[1];\n  var _getValueAndUnit4 = getValueAndUnit(maxScreen),\n    unitlessMaxScreen = _getValueAndUnit4[0],\n    maxScreenUnit = _getValueAndUnit4[1];\n  if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n    throw new PolishedError(47);\n  }\n  if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || fromSizeUnit !== toSizeUnit) {\n    throw new PolishedError(48);\n  }\n  if (fromSizeUnit !== minScreenUnit || toSizeUnit !== maxScreenUnit) {\n    throw new PolishedError(76);\n  }\n  var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n  var base = unitlessToSize - slope * unitlessMaxScreen;\n  return \"calc(\" + base.toFixed(2) + (fromSizeUnit || '') + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n\n/**\n * CSS to contain a float (credit to CSSMojo).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *    ...clearFix(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${clearFix()}\n * `\n *\n * // CSS as JS Output\n *\n * '&::after': {\n *   'clear': 'both',\n *   'content': '\"\"',\n *   'display': 'table'\n * }\n */\nfunction clearFix(parent) {\n  var _ref;\n  if (parent === void 0) {\n    parent = '&';\n  }\n  var pseudoSelector = parent + \"::after\";\n  return _ref = {}, _ref[pseudoSelector] = {\n    clear: 'both',\n    content: '\"\"',\n    display: 'table'\n  }, _ref;\n}\n\n/**\n * CSS to fully cover an area. Can optionally be passed an offset to act as a \"padding\".\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...cover()\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${cover()}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n *   'position': 'absolute',\n *   'top': '0',\n *   'right: '0',\n *   'bottom': '0',\n *   'left: '0'\n * }\n */\nfunction cover(offset) {\n  if (offset === void 0) {\n    offset = 0;\n  }\n  return {\n    position: 'absolute',\n    top: offset,\n    right: offset,\n    bottom: offset,\n    left: offset\n  };\n}\n\n/**\n * CSS to represent truncated text with an ellipsis. You can optionally pass a max-width and number of lines before truncating.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...ellipsis('250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${ellipsis('250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n *   'display': 'inline-block',\n *   'maxWidth': '250px',\n *   'overflow': 'hidden',\n *   'textOverflow': 'ellipsis',\n *   'whiteSpace': 'nowrap',\n *   'wordWrap': 'normal'\n * }\n */\nfunction ellipsis(width, lines) {\n  if (lines === void 0) {\n    lines = 1;\n  }\n  var styles = {\n    display: 'inline-block',\n    maxWidth: width || '100%',\n    overflow: 'hidden',\n    textOverflow: 'ellipsis',\n    whiteSpace: 'nowrap',\n    wordWrap: 'normal'\n  };\n  return lines > 1 ? _extends({}, styles, {\n    WebkitBoxOrient: 'vertical',\n    WebkitLineClamp: lines,\n    display: '-webkit-box',\n    whiteSpace: 'normal'\n  }) : styles;\n}\n\nfunction _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.\"); }\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); }\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/**\n * Returns a set of media queries that resizes a property (or set of properties) between a provided fromSize and toSize. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px') to constrain the interpolation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...fluidRange(\n *    {\n *        prop: 'padding',\n *        fromSize: '20px',\n *        toSize: '100px',\n *      },\n *      '400px',\n *      '1000px',\n *    )\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${fluidRange(\n *      {\n *        prop: 'padding',\n *        fromSize: '20px',\n *        toSize: '100px',\n *      },\n *      '400px',\n *      '1000px',\n *    )}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n *   \"@media (min-width: 1000px)\": Object {\n *     \"padding\": \"100px\",\n *   },\n *   \"@media (min-width: 400px)\": Object {\n *     \"padding\": \"calc(-33.33333333333334px + 13.333333333333334vw)\",\n *   },\n *   \"padding\": \"20px\",\n * }\n */\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n  if (minScreen === void 0) {\n    minScreen = '320px';\n  }\n  if (maxScreen === void 0) {\n    maxScreen = '1200px';\n  }\n  if (!Array.isArray(cssProp) && typeof cssProp !== 'object' || cssProp === null) {\n    throw new PolishedError(49);\n  }\n  if (Array.isArray(cssProp)) {\n    var mediaQueries = {};\n    var fallbacks = {};\n    for (var _iterator = _createForOfIteratorHelperLoose(cssProp), _step; !(_step = _iterator()).done;) {\n      var _extends2, _extends3;\n      var obj = _step.value;\n      if (!obj.prop || !obj.fromSize || !obj.toSize) {\n        throw new PolishedError(50);\n      }\n      fallbacks[obj.prop] = obj.fromSize;\n      mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n      mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n    }\n    return _extends({}, fallbacks, mediaQueries);\n  } else {\n    var _ref, _ref2, _ref3;\n    if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n      throw new PolishedError(51);\n    }\n    return _ref3 = {}, _ref3[cssProp.prop] = cssProp.fromSize, _ref3[\"@media (min-width: \" + minScreen + \")\"] = (_ref = {}, _ref[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref), _ref3[\"@media (min-width: \" + maxScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = cssProp.toSize, _ref2), _ref3;\n  }\n}\n\nvar dataURIRegex = /^\\s*data:([a-z]+\\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\\-._~:@/?%\\s]*\\s*$/i;\nvar formatHintMap = {\n  woff: 'woff',\n  woff2: 'woff2',\n  ttf: 'truetype',\n  otf: 'opentype',\n  eot: 'embedded-opentype',\n  svg: 'svg',\n  svgz: 'svg'\n};\nfunction generateFormatHint(format, formatHint) {\n  if (!formatHint) return '';\n  return \" format(\\\"\" + formatHintMap[format] + \"\\\")\";\n}\nfunction isDataURI(fontFilePath) {\n  return !!fontFilePath.replace(/\\s+/g, ' ').match(dataURIRegex);\n}\nfunction generateFileReferences(fontFilePath, fileFormats, formatHint) {\n  if (isDataURI(fontFilePath)) {\n    return \"url(\\\"\" + fontFilePath + \"\\\")\" + generateFormatHint(fileFormats[0], formatHint);\n  }\n  var fileFontReferences = fileFormats.map(function (format) {\n    return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\" + generateFormatHint(format, formatHint);\n  });\n  return fileFontReferences.join(', ');\n}\nfunction generateLocalReferences(localFonts) {\n  var localFontReferences = localFonts.map(function (font) {\n    return \"local(\\\"\" + font + \"\\\")\";\n  });\n  return localFontReferences.join(', ');\n}\nfunction generateSources(fontFilePath, localFonts, fileFormats, formatHint) {\n  var fontReferences = [];\n  if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n  if (fontFilePath) {\n    fontReferences.push(generateFileReferences(fontFilePath, fileFormats, formatHint));\n  }\n  return fontReferences.join(', ');\n}\n\n/**\n * CSS for a @font-face declaration. Defaults to check for local copies of the font on the user's machine. You can disable this by passing `null` to localFonts.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n *    ...fontFace({\n *      'fontFamily': 'Sans-Pro',\n *      'fontFilePath': 'path/to/file'\n *    })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n *   fontFace({\n *     'fontFamily': 'Sans-Pro',\n *     'fontFilePath': 'path/to/file'\n *   }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n *   'fontFamily': 'Sans-Pro',\n *   'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\nfunction fontFace(_ref) {\n  var fontFamily = _ref.fontFamily,\n    fontFilePath = _ref.fontFilePath,\n    fontStretch = _ref.fontStretch,\n    fontStyle = _ref.fontStyle,\n    fontVariant = _ref.fontVariant,\n    fontWeight = _ref.fontWeight,\n    _ref$fileFormats = _ref.fileFormats,\n    fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n    _ref$formatHint = _ref.formatHint,\n    formatHint = _ref$formatHint === void 0 ? false : _ref$formatHint,\n    _ref$localFonts = _ref.localFonts,\n    localFonts = _ref$localFonts === void 0 ? [fontFamily] : _ref$localFonts,\n    unicodeRange = _ref.unicodeRange,\n    fontDisplay = _ref.fontDisplay,\n    fontVariationSettings = _ref.fontVariationSettings,\n    fontFeatureSettings = _ref.fontFeatureSettings;\n  // Error Handling\n  if (!fontFamily) throw new PolishedError(55);\n  if (!fontFilePath && !localFonts) {\n    throw new PolishedError(52);\n  }\n  if (localFonts && !Array.isArray(localFonts)) {\n    throw new PolishedError(53);\n  }\n  if (!Array.isArray(fileFormats)) {\n    throw new PolishedError(54);\n  }\n  var fontFaceDeclaration = {\n    '@font-face': {\n      fontFamily: fontFamily,\n      src: generateSources(fontFilePath, localFonts, fileFormats, formatHint),\n      unicodeRange: unicodeRange,\n      fontStretch: fontStretch,\n      fontStyle: fontStyle,\n      fontVariant: fontVariant,\n      fontWeight: fontWeight,\n      fontDisplay: fontDisplay,\n      fontVariationSettings: fontVariationSettings,\n      fontFeatureSettings: fontFeatureSettings\n    }\n  };\n\n  // Removes undefined fields for cleaner css object.\n  return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n\n/**\n * CSS to hide text to show a background image in a SEO-friendly way.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   'backgroundImage': 'url(logo.png)',\n *   ...hideText(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   backgroundImage: url(logo.png);\n *   ${hideText()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n *   'backgroundImage': 'url(logo.png)',\n *   'textIndent': '101%',\n *   'overflow': 'hidden',\n *   'whiteSpace': 'nowrap',\n * }\n */\nfunction hideText() {\n  return {\n    textIndent: '101%',\n    overflow: 'hidden',\n    whiteSpace: 'nowrap'\n  };\n}\n\n/**\n * CSS to hide content visually but remain accessible to screen readers.\n * from [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate/blob/9a176f57af1cfe8ec70300da4621fb9b07e5fa31/src/css/main.css#L121)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...hideVisually(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${hideVisually()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n *   'border': '0',\n *   'clip': 'rect(0 0 0 0)',\n *   'height': '1px',\n *   'margin': '-1px',\n *   'overflow': 'hidden',\n *   'padding': '0',\n *   'position': 'absolute',\n *   'whiteSpace': 'nowrap',\n *   'width': '1px',\n * }\n */\nfunction hideVisually() {\n  return {\n    border: '0',\n    clip: 'rect(0 0 0 0)',\n    height: '1px',\n    margin: '-1px',\n    overflow: 'hidden',\n    padding: '0',\n    position: 'absolute',\n    whiteSpace: 'nowrap',\n    width: '1px'\n  };\n}\n\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *  [hiDPI(1.5)]: {\n *    width: 200px;\n *  }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${hiDPI(1.5)} {\n *     width: 200px;\n *   }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n *  only screen and (min--moz-device-pixel-ratio: 1.5),\n *  only screen and (-o-min-device-pixel-ratio: 1.5/1),\n *  only screen and (min-resolution: 144dpi),\n *  only screen and (min-resolution: 1.5dppx)': {\n *   'width': '200px',\n * }\n */\nfunction hiDPI(ratio) {\n  if (ratio === void 0) {\n    ratio = 1.3;\n  }\n  return \"\\n    @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n    only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n    only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n    only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n    only screen and (min-resolution: \" + ratio + \"dppx)\\n  \";\n}\n\nfunction constructGradientValue(literals) {\n  var template = '';\n  for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    substitutions[_key - 1] = arguments[_key];\n  }\n  for (var i = 0; i < literals.length; i += 1) {\n    template += literals[i];\n    if (i === substitutions.length - 1 && substitutions[i]) {\n      var definedValues = substitutions.filter(function (substitute) {\n        return !!substitute;\n      });\n      // Adds leading coma if properties preceed color-stops\n      if (definedValues.length > 1) {\n        template = template.slice(0, -1);\n        template += \", \" + substitutions[i];\n        // No trailing space if color-stops is the only param provided\n      } else if (definedValues.length === 1) {\n        template += \"\" + substitutions[i];\n      }\n    } else if (substitutions[i]) {\n      template += substitutions[i] + \" \";\n    }\n  }\n  return template.trim();\n}\n\nvar _templateObject$1;\n/**\n * CSS for declaring a linear gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...linearGradient({\n        colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n        toDirection: 'to top right',\n        fallback: '#FFF',\n      })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${linearGradient({\n        colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n        toDirection: 'to top right',\n        fallback: '#FFF',\n      })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n *   'backgroundColor': '#FFF',\n *   'backgroundImage': 'linear-gradient(to top right, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction linearGradient(_ref) {\n  var colorStops = _ref.colorStops,\n    fallback = _ref.fallback,\n    _ref$toDirection = _ref.toDirection,\n    toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n  if (!colorStops || colorStops.length < 2) {\n    throw new PolishedError(56);\n  }\n  return {\n    backgroundColor: fallback || colorStops[0].replace(/,\\s+/g, ',').split(' ')[0].replace(/,(?=\\S)/g, ', '),\n    backgroundImage: constructGradientValue(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"])), toDirection, colorStops.join(', ').replace(/,(?=\\S)/g, ', '))\n  };\n}\n\n/**\n * CSS to normalize abnormalities across browsers (normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *    ...normalize(),\n * }\n *\n * // styled-components usage\n * const GlobalStyle = createGlobalStyle`${normalize()}`\n *\n * // CSS as JS Output\n *\n * html {\n *   lineHeight: 1.15,\n *   textSizeAdjust: 100%,\n * } ...\n */\nfunction normalize() {\n  var _ref;\n  return [(_ref = {\n    html: {\n      lineHeight: '1.15',\n      textSizeAdjust: '100%'\n    },\n    body: {\n      margin: '0'\n    },\n    main: {\n      display: 'block'\n    },\n    h1: {\n      fontSize: '2em',\n      margin: '0.67em 0'\n    },\n    hr: {\n      boxSizing: 'content-box',\n      height: '0',\n      overflow: 'visible'\n    },\n    pre: {\n      fontFamily: 'monospace, monospace',\n      fontSize: '1em'\n    },\n    a: {\n      backgroundColor: 'transparent'\n    },\n    'abbr[title]': {\n      borderBottom: 'none',\n      textDecoration: 'underline'\n    }\n  }, _ref[\"b,\\n    strong\"] = {\n    fontWeight: 'bolder'\n  }, _ref[\"code,\\n    kbd,\\n    samp\"] = {\n    fontFamily: 'monospace, monospace',\n    fontSize: '1em'\n  }, _ref.small = {\n    fontSize: '80%'\n  }, _ref[\"sub,\\n    sup\"] = {\n    fontSize: '75%',\n    lineHeight: '0',\n    position: 'relative',\n    verticalAlign: 'baseline'\n  }, _ref.sub = {\n    bottom: '-0.25em'\n  }, _ref.sup = {\n    top: '-0.5em'\n  }, _ref.img = {\n    borderStyle: 'none'\n  }, _ref[\"button,\\n    input,\\n    optgroup,\\n    select,\\n    textarea\"] = {\n    fontFamily: 'inherit',\n    fontSize: '100%',\n    lineHeight: '1.15',\n    margin: '0'\n  }, _ref[\"button,\\n    input\"] = {\n    overflow: 'visible'\n  }, _ref[\"button,\\n    select\"] = {\n    textTransform: 'none'\n  }, _ref[\"button,\\n    html [type=\\\"button\\\"],\\n    [type=\\\"reset\\\"],\\n    [type=\\\"submit\\\"]\"] = {\n    WebkitAppearance: 'button'\n  }, _ref[\"button::-moz-focus-inner,\\n    [type=\\\"button\\\"]::-moz-focus-inner,\\n    [type=\\\"reset\\\"]::-moz-focus-inner,\\n    [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n    borderStyle: 'none',\n    padding: '0'\n  }, _ref[\"button:-moz-focusring,\\n    [type=\\\"button\\\"]:-moz-focusring,\\n    [type=\\\"reset\\\"]:-moz-focusring,\\n    [type=\\\"submit\\\"]:-moz-focusring\"] = {\n    outline: '1px dotted ButtonText'\n  }, _ref.fieldset = {\n    padding: '0.35em 0.625em 0.75em'\n  }, _ref.legend = {\n    boxSizing: 'border-box',\n    color: 'inherit',\n    display: 'table',\n    maxWidth: '100%',\n    padding: '0',\n    whiteSpace: 'normal'\n  }, _ref.progress = {\n    verticalAlign: 'baseline'\n  }, _ref.textarea = {\n    overflow: 'auto'\n  }, _ref[\"[type=\\\"checkbox\\\"],\\n    [type=\\\"radio\\\"]\"] = {\n    boxSizing: 'border-box',\n    padding: '0'\n  }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n    [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n    height: 'auto'\n  }, _ref['[type=\"search\"]'] = {\n    WebkitAppearance: 'textfield',\n    outlineOffset: '-2px'\n  }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n    WebkitAppearance: 'none'\n  }, _ref['::-webkit-file-upload-button'] = {\n    WebkitAppearance: 'button',\n    font: 'inherit'\n  }, _ref.details = {\n    display: 'block'\n  }, _ref.summary = {\n    display: 'list-item'\n  }, _ref.template = {\n    display: 'none'\n  }, _ref['[hidden]'] = {\n    display: 'none'\n  }, _ref), {\n    'abbr[title]': {\n      textDecoration: 'underline dotted'\n    }\n  }];\n}\n\nvar _templateObject;\n/**\n * CSS for declaring a radial gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...radialGradient({\n *     colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n *     extent: 'farthest-corner at 45px 45px',\n *     position: 'center',\n *     shape: 'ellipse',\n *   })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${radialGradient({\n *     colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n *     extent: 'farthest-corner at 45px 45px',\n *     position: 'center',\n *     shape: 'ellipse',\n *   })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n *   'backgroundColor': '#00FFFF',\n *   'backgroundImage': 'radial-gradient(center ellipse farthest-corner at 45px 45px, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction radialGradient(_ref) {\n  var colorStops = _ref.colorStops,\n    _ref$extent = _ref.extent,\n    extent = _ref$extent === void 0 ? '' : _ref$extent,\n    fallback = _ref.fallback,\n    _ref$position = _ref.position,\n    position = _ref$position === void 0 ? '' : _ref$position,\n    _ref$shape = _ref.shape,\n    shape = _ref$shape === void 0 ? '' : _ref$shape;\n  if (!colorStops || colorStops.length < 2) {\n    throw new PolishedError(57);\n  }\n  return {\n    backgroundColor: fallback || colorStops[0].split(' ')[0],\n    backgroundImage: constructGradientValue(_templateObject || (_templateObject = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"])), position, shape, extent, colorStops.join(', '))\n  };\n}\n\n/**\n * A helper to generate a retina background image and non-retina\n * background image. The retina background image will output to a HiDPI media query. The mixin uses\n * a _2x.png filename suffix by default.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *  ...retinaImage('my-img')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${retinaImage('my-img')}\n * `\n *\n * // CSS as JS Output\n * div {\n *   backgroundImage: 'url(my-img.png)',\n *   '@media only screen and (-webkit-min-device-pixel-ratio: 1.3),\n *    only screen and (min--moz-device-pixel-ratio: 1.3),\n *    only screen and (-o-min-device-pixel-ratio: 1.3/1),\n *    only screen and (min-resolution: 144dpi),\n *    only screen and (min-resolution: 1.5dppx)': {\n *     backgroundImage: 'url(my-img_2x.png)',\n *   }\n * }\n */\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n  var _ref;\n  if (extension === void 0) {\n    extension = 'png';\n  }\n  if (retinaSuffix === void 0) {\n    retinaSuffix = '_2x';\n  }\n  if (!filename) {\n    throw new PolishedError(58);\n  }\n  // Replace the dot at the beginning of the passed extension if one exists\n  var ext = extension.replace(/^\\./, '');\n  var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n  return _ref = {\n    backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n  }, _ref[hiDPI()] = _extends({\n    backgroundImage: \"url(\" + rFilename + \")\"\n  }, backgroundSize ? {\n    backgroundSize: backgroundSize\n  } : {}), _ref;\n}\n\n/* eslint-disable key-spacing */\nvar functionsMap = {\n  easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n  easeInCirc: 'cubic-bezier(0.600,  0.040, 0.980, 0.335)',\n  easeInCubic: 'cubic-bezier(0.550,  0.055, 0.675, 0.190)',\n  easeInExpo: 'cubic-bezier(0.950,  0.050, 0.795, 0.035)',\n  easeInQuad: 'cubic-bezier(0.550,  0.085, 0.680, 0.530)',\n  easeInQuart: 'cubic-bezier(0.895,  0.030, 0.685, 0.220)',\n  easeInQuint: 'cubic-bezier(0.755,  0.050, 0.855, 0.060)',\n  easeInSine: 'cubic-bezier(0.470,  0.000, 0.745, 0.715)',\n  easeOutBack: 'cubic-bezier(0.175,  0.885, 0.320, 1.275)',\n  easeOutCubic: 'cubic-bezier(0.215,  0.610, 0.355, 1.000)',\n  easeOutCirc: 'cubic-bezier(0.075,  0.820, 0.165, 1.000)',\n  easeOutExpo: 'cubic-bezier(0.190,  1.000, 0.220, 1.000)',\n  easeOutQuad: 'cubic-bezier(0.250,  0.460, 0.450, 0.940)',\n  easeOutQuart: 'cubic-bezier(0.165,  0.840, 0.440, 1.000)',\n  easeOutQuint: 'cubic-bezier(0.230,  1.000, 0.320, 1.000)',\n  easeOutSine: 'cubic-bezier(0.390,  0.575, 0.565, 1.000)',\n  easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n  easeInOutCirc: 'cubic-bezier(0.785,  0.135, 0.150, 0.860)',\n  easeInOutCubic: 'cubic-bezier(0.645,  0.045, 0.355, 1.000)',\n  easeInOutExpo: 'cubic-bezier(1.000,  0.000, 0.000, 1.000)',\n  easeInOutQuad: 'cubic-bezier(0.455,  0.030, 0.515, 0.955)',\n  easeInOutQuart: 'cubic-bezier(0.770,  0.000, 0.175, 1.000)',\n  easeInOutQuint: 'cubic-bezier(0.860,  0.000, 0.070, 1.000)',\n  easeInOutSine: 'cubic-bezier(0.445,  0.050, 0.550, 0.950)'\n};\n/* eslint-enable key-spacing */\n\nfunction getTimingFunction(functionName) {\n  return functionsMap[functionName];\n}\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @deprecated - This will be deprecated in v5 in favor of `easeIn`, `easeOut`, `easeInOut`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n *  const div = styled.div`\n *   transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n *   'transitionTimingFunction': 'cubic-bezier(0.550,  0.085, 0.680, 0.530)',\n * }\n */\n\nfunction timingFunctions(timingFunction) {\n  return getTimingFunction(timingFunction);\n}\n\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n  var fullWidth = \"\" + width[0] + (width[1] || '');\n  var halfWidth = \"\" + width[0] / 2 + (width[1] || '');\n  var fullHeight = \"\" + height[0] + (height[1] || '');\n  var halfHeight = \"\" + height[0] / 2 + (height[1] || '');\n  switch (pointingDirection) {\n    case 'top':\n      return \"0 \" + halfWidth + \" \" + fullHeight + \" \" + halfWidth;\n    case 'topLeft':\n      return fullWidth + \" \" + fullHeight + \" 0 0\";\n    case 'left':\n      return halfHeight + \" \" + fullWidth + \" \" + halfHeight + \" 0\";\n    case 'bottomLeft':\n      return fullWidth + \" 0 0 \" + fullHeight;\n    case 'bottom':\n      return fullHeight + \" \" + halfWidth + \" 0 \" + halfWidth;\n    case 'bottomRight':\n      return \"0 0 \" + fullWidth + \" \" + fullHeight;\n    case 'right':\n      return halfHeight + \" 0 \" + halfHeight + \" \" + fullWidth;\n    case 'topRight':\n    default:\n      return \"0 \" + fullWidth + \" \" + fullHeight + \" 0\";\n  }\n};\nvar getBorderColor = function getBorderColor(pointingDirection, foregroundColor) {\n  switch (pointingDirection) {\n    case 'top':\n    case 'bottomRight':\n      return {\n        borderBottomColor: foregroundColor\n      };\n    case 'right':\n    case 'bottomLeft':\n      return {\n        borderLeftColor: foregroundColor\n      };\n    case 'bottom':\n    case 'topLeft':\n      return {\n        borderTopColor: foregroundColor\n      };\n    case 'left':\n    case 'topRight':\n      return {\n        borderRightColor: foregroundColor\n      };\n    default:\n      throw new PolishedError(59);\n  }\n};\n\n/**\n * CSS to represent triangle with any pointing direction with an optional background color.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n *   ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n *  'borderColor': 'transparent transparent transparent red',\n *  'borderStyle': 'solid',\n *  'borderWidth': '50px 0 50px 100px',\n *  'height': '0',\n *  'width': '0',\n * }\n */\nfunction triangle(_ref) {\n  var pointingDirection = _ref.pointingDirection,\n    height = _ref.height,\n    width = _ref.width,\n    foregroundColor = _ref.foregroundColor,\n    _ref$backgroundColor = _ref.backgroundColor,\n    backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n  var widthAndUnit = getValueAndUnit(width);\n  var heightAndUnit = getValueAndUnit(height);\n  if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n    throw new PolishedError(60);\n  }\n  return _extends({\n    width: '0',\n    height: '0',\n    borderColor: backgroundColor\n  }, getBorderColor(pointingDirection, foregroundColor), {\n    borderStyle: 'solid',\n    borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit)\n  });\n}\n\n/**\n * Provides an easy way to change the `wordWrap` property.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...wordWrap('break-word')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${wordWrap('break-word')}\n * `\n *\n * // CSS as JS Output\n *\n * const styles = {\n *   overflowWrap: 'break-word',\n *   wordWrap: 'break-word',\n *   wordBreak: 'break-all',\n * }\n */\nfunction wordWrap(wrap) {\n  if (wrap === void 0) {\n    wrap = 'break-word';\n  }\n  var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n  return {\n    overflowWrap: wrap,\n    wordWrap: wrap,\n    wordBreak: wordBreak\n  };\n}\n\nfunction colorToInt(color) {\n  return Math.round(color * 255);\n}\nfunction convertToInt(red, green, blue) {\n  return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\nfunction hslToRgb(hue, saturation, lightness, convert) {\n  if (convert === void 0) {\n    convert = convertToInt;\n  }\n  if (saturation === 0) {\n    // achromatic\n    return convert(lightness, lightness, lightness);\n  }\n\n  // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n  var huePrime = (hue % 360 + 360) % 360 / 60;\n  var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n  var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n  var red = 0;\n  var green = 0;\n  var blue = 0;\n  if (huePrime >= 0 && huePrime < 1) {\n    red = chroma;\n    green = secondComponent;\n  } else if (huePrime >= 1 && huePrime < 2) {\n    red = secondComponent;\n    green = chroma;\n  } else if (huePrime >= 2 && huePrime < 3) {\n    green = chroma;\n    blue = secondComponent;\n  } else if (huePrime >= 3 && huePrime < 4) {\n    green = secondComponent;\n    blue = chroma;\n  } else if (huePrime >= 4 && huePrime < 5) {\n    red = secondComponent;\n    blue = chroma;\n  } else if (huePrime >= 5 && huePrime < 6) {\n    red = chroma;\n    blue = secondComponent;\n  }\n  var lightnessModification = lightness - chroma / 2;\n  var finalRed = red + lightnessModification;\n  var finalGreen = green + lightnessModification;\n  var finalBlue = blue + lightnessModification;\n  return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n  aliceblue: 'f0f8ff',\n  antiquewhite: 'faebd7',\n  aqua: '00ffff',\n  aquamarine: '7fffd4',\n  azure: 'f0ffff',\n  beige: 'f5f5dc',\n  bisque: 'ffe4c4',\n  black: '000',\n  blanchedalmond: 'ffebcd',\n  blue: '0000ff',\n  blueviolet: '8a2be2',\n  brown: 'a52a2a',\n  burlywood: 'deb887',\n  cadetblue: '5f9ea0',\n  chartreuse: '7fff00',\n  chocolate: 'd2691e',\n  coral: 'ff7f50',\n  cornflowerblue: '6495ed',\n  cornsilk: 'fff8dc',\n  crimson: 'dc143c',\n  cyan: '00ffff',\n  darkblue: '00008b',\n  darkcyan: '008b8b',\n  darkgoldenrod: 'b8860b',\n  darkgray: 'a9a9a9',\n  darkgreen: '006400',\n  darkgrey: 'a9a9a9',\n  darkkhaki: 'bdb76b',\n  darkmagenta: '8b008b',\n  darkolivegreen: '556b2f',\n  darkorange: 'ff8c00',\n  darkorchid: '9932cc',\n  darkred: '8b0000',\n  darksalmon: 'e9967a',\n  darkseagreen: '8fbc8f',\n  darkslateblue: '483d8b',\n  darkslategray: '2f4f4f',\n  darkslategrey: '2f4f4f',\n  darkturquoise: '00ced1',\n  darkviolet: '9400d3',\n  deeppink: 'ff1493',\n  deepskyblue: '00bfff',\n  dimgray: '696969',\n  dimgrey: '696969',\n  dodgerblue: '1e90ff',\n  firebrick: 'b22222',\n  floralwhite: 'fffaf0',\n  forestgreen: '228b22',\n  fuchsia: 'ff00ff',\n  gainsboro: 'dcdcdc',\n  ghostwhite: 'f8f8ff',\n  gold: 'ffd700',\n  goldenrod: 'daa520',\n  gray: '808080',\n  green: '008000',\n  greenyellow: 'adff2f',\n  grey: '808080',\n  honeydew: 'f0fff0',\n  hotpink: 'ff69b4',\n  indianred: 'cd5c5c',\n  indigo: '4b0082',\n  ivory: 'fffff0',\n  khaki: 'f0e68c',\n  lavender: 'e6e6fa',\n  lavenderblush: 'fff0f5',\n  lawngreen: '7cfc00',\n  lemonchiffon: 'fffacd',\n  lightblue: 'add8e6',\n  lightcoral: 'f08080',\n  lightcyan: 'e0ffff',\n  lightgoldenrodyellow: 'fafad2',\n  lightgray: 'd3d3d3',\n  lightgreen: '90ee90',\n  lightgrey: 'd3d3d3',\n  lightpink: 'ffb6c1',\n  lightsalmon: 'ffa07a',\n  lightseagreen: '20b2aa',\n  lightskyblue: '87cefa',\n  lightslategray: '789',\n  lightslategrey: '789',\n  lightsteelblue: 'b0c4de',\n  lightyellow: 'ffffe0',\n  lime: '0f0',\n  limegreen: '32cd32',\n  linen: 'faf0e6',\n  magenta: 'f0f',\n  maroon: '800000',\n  mediumaquamarine: '66cdaa',\n  mediumblue: '0000cd',\n  mediumorchid: 'ba55d3',\n  mediumpurple: '9370db',\n  mediumseagreen: '3cb371',\n  mediumslateblue: '7b68ee',\n  mediumspringgreen: '00fa9a',\n  mediumturquoise: '48d1cc',\n  mediumvioletred: 'c71585',\n  midnightblue: '191970',\n  mintcream: 'f5fffa',\n  mistyrose: 'ffe4e1',\n  moccasin: 'ffe4b5',\n  navajowhite: 'ffdead',\n  navy: '000080',\n  oldlace: 'fdf5e6',\n  olive: '808000',\n  olivedrab: '6b8e23',\n  orange: 'ffa500',\n  orangered: 'ff4500',\n  orchid: 'da70d6',\n  palegoldenrod: 'eee8aa',\n  palegreen: '98fb98',\n  paleturquoise: 'afeeee',\n  palevioletred: 'db7093',\n  papayawhip: 'ffefd5',\n  peachpuff: 'ffdab9',\n  peru: 'cd853f',\n  pink: 'ffc0cb',\n  plum: 'dda0dd',\n  powderblue: 'b0e0e6',\n  purple: '800080',\n  rebeccapurple: '639',\n  red: 'f00',\n  rosybrown: 'bc8f8f',\n  royalblue: '4169e1',\n  saddlebrown: '8b4513',\n  salmon: 'fa8072',\n  sandybrown: 'f4a460',\n  seagreen: '2e8b57',\n  seashell: 'fff5ee',\n  sienna: 'a0522d',\n  silver: 'c0c0c0',\n  skyblue: '87ceeb',\n  slateblue: '6a5acd',\n  slategray: '708090',\n  slategrey: '708090',\n  snow: 'fffafa',\n  springgreen: '00ff7f',\n  steelblue: '4682b4',\n  tan: 'd2b48c',\n  teal: '008080',\n  thistle: 'd8bfd8',\n  tomato: 'ff6347',\n  turquoise: '40e0d0',\n  violet: 'ee82ee',\n  wheat: 'f5deb3',\n  white: 'fff',\n  whitesmoke: 'f5f5f5',\n  yellow: 'ff0',\n  yellowgreen: '9acd32'\n};\n\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\nfunction nameToHex(color) {\n  if (typeof color !== 'string') return color;\n  var normalizedColorName = color.toLowerCase();\n  return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgb(?:a)?\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsl(?:a)?\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\n\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\nfunction parseToRgb(color) {\n  if (typeof color !== 'string') {\n    throw new PolishedError(3);\n  }\n  var normalizedColor = nameToHex(color);\n  if (normalizedColor.match(hexRegex)) {\n    return {\n      red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n      green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n      blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n    };\n  }\n  if (normalizedColor.match(hexRgbaRegex)) {\n    var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n    return {\n      red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n      green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n      blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n      alpha: alpha\n    };\n  }\n  if (normalizedColor.match(reducedHexRegex)) {\n    return {\n      red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n      green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n      blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n    };\n  }\n  if (normalizedColor.match(reducedRgbaHexRegex)) {\n    var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n    return {\n      red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n      green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n      blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n      alpha: _alpha\n    };\n  }\n  var rgbMatched = rgbRegex.exec(normalizedColor);\n  if (rgbMatched) {\n    return {\n      red: parseInt(\"\" + rgbMatched[1], 10),\n      green: parseInt(\"\" + rgbMatched[2], 10),\n      blue: parseInt(\"\" + rgbMatched[3], 10)\n    };\n  }\n  var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));\n  if (rgbaMatched) {\n    return {\n      red: parseInt(\"\" + rgbaMatched[1], 10),\n      green: parseInt(\"\" + rgbaMatched[2], 10),\n      blue: parseInt(\"\" + rgbaMatched[3], 10),\n      alpha: parseFloat(\"\" + rgbaMatched[4]) > 1 ? parseFloat(\"\" + rgbaMatched[4]) / 100 : parseFloat(\"\" + rgbaMatched[4])\n    };\n  }\n  var hslMatched = hslRegex.exec(normalizedColor);\n  if (hslMatched) {\n    var hue = parseInt(\"\" + hslMatched[1], 10);\n    var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n    var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n    var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n    var hslRgbMatched = rgbRegex.exec(rgbColorString);\n    if (!hslRgbMatched) {\n      throw new PolishedError(4, normalizedColor, rgbColorString);\n    }\n    return {\n      red: parseInt(\"\" + hslRgbMatched[1], 10),\n      green: parseInt(\"\" + hslRgbMatched[2], 10),\n      blue: parseInt(\"\" + hslRgbMatched[3], 10)\n    };\n  }\n  var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));\n  if (hslaMatched) {\n    var _hue = parseInt(\"\" + hslaMatched[1], 10);\n    var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n    var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n    var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n    var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n    if (!_hslRgbMatched) {\n      throw new PolishedError(4, normalizedColor, _rgbColorString);\n    }\n    return {\n      red: parseInt(\"\" + _hslRgbMatched[1], 10),\n      green: parseInt(\"\" + _hslRgbMatched[2], 10),\n      blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n      alpha: parseFloat(\"\" + hslaMatched[4]) > 1 ? parseFloat(\"\" + hslaMatched[4]) / 100 : parseFloat(\"\" + hslaMatched[4])\n    };\n  }\n  throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n  // make sure rgb are contained in a set of [0, 255]\n  var red = color.red / 255;\n  var green = color.green / 255;\n  var blue = color.blue / 255;\n  var max = Math.max(red, green, blue);\n  var min = Math.min(red, green, blue);\n  var lightness = (max + min) / 2;\n  if (max === min) {\n    // achromatic\n    if (color.alpha !== undefined) {\n      return {\n        hue: 0,\n        saturation: 0,\n        lightness: lightness,\n        alpha: color.alpha\n      };\n    } else {\n      return {\n        hue: 0,\n        saturation: 0,\n        lightness: lightness\n      };\n    }\n  }\n  var hue;\n  var delta = max - min;\n  var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n  switch (max) {\n    case red:\n      hue = (green - blue) / delta + (green < blue ? 6 : 0);\n      break;\n    case green:\n      hue = (blue - red) / delta + 2;\n      break;\n    default:\n      // blue case\n      hue = (red - green) / delta + 4;\n      break;\n  }\n  hue *= 60;\n  if (color.alpha !== undefined) {\n    return {\n      hue: hue,\n      saturation: saturation,\n      lightness: lightness,\n      alpha: color.alpha\n    };\n  }\n  return {\n    hue: hue,\n    saturation: saturation,\n    lightness: lightness\n  };\n}\n\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\nfunction parseToHsl(color) {\n  // Note: At a later stage we can optimize this function as right now a hsl\n  // color would be parsed converted to rgb values and converted back to hsl.\n  return rgbToHsl(parseToRgb(color));\n}\n\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\nvar reduceHexValue = function reduceHexValue(value) {\n  if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n    return \"#\" + value[1] + value[3] + value[5];\n  }\n  return value;\n};\nvar reduceHexValue$1 = reduceHexValue;\n\nfunction numberToHex(value) {\n  var hex = value.toString(16);\n  return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n  return numberToHex(Math.round(color * 255));\n}\nfunction convertToHex(red, green, blue) {\n  return reduceHexValue$1(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\nfunction hslToHex(hue, saturation, lightness) {\n  return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: hsl(359, 0.75, 0.4),\n *   background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${hsl(359, 0.75, 0.4)};\n *   background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   background: \"#b3191c\";\n *   background: \"#b3191c\";\n * }\n */\nfunction hsl(value, saturation, lightness) {\n  if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n    return hslToHex(value, saturation, lightness);\n  } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n    return hslToHex(value.hue, value.saturation, value.lightness);\n  }\n  throw new PolishedError(1);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: hsla(359, 0.75, 0.4, 0.7),\n *   background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n *   background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${hsla(359, 0.75, 0.4, 0.7)};\n *   background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n *   background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   background: \"rgba(179,25,28,0.7)\";\n *   background: \"rgba(179,25,28,0.7)\";\n *   background: \"#b3191c\";\n * }\n */\nfunction hsla(value, saturation, lightness, alpha) {\n  if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n    return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n  } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n    return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n  }\n  throw new PolishedError(2);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: rgb(255, 205, 100),\n *   background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${rgb(255, 205, 100)};\n *   background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   background: \"#ffcd64\";\n *   background: \"#ffcd64\";\n * }\n */\nfunction rgb(value, green, blue) {\n  if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n    return reduceHexValue$1(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n  } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n    return reduceHexValue$1(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n  }\n  throw new PolishedError(6);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: rgba(255, 205, 100, 0.7),\n *   background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n *   background: rgba(255, 205, 100, 1),\n *   background: rgba('#ffffff', 0.4),\n *   background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${rgba(255, 205, 100, 0.7)};\n *   background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n *   background: ${rgba(255, 205, 100, 1)};\n *   background: ${rgba('#ffffff', 0.4)};\n *   background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   background: \"rgba(255,205,100,0.7)\";\n *   background: \"rgba(255,205,100,0.7)\";\n *   background: \"#ffcd64\";\n *   background: \"rgba(255,255,255,0.4)\";\n *   background: \"rgba(0,0,0,0.7)\";\n * }\n */\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n  if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n    var rgbValue = parseToRgb(firstValue);\n    return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n  } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n    return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n  } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n    return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n  }\n  throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n  return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\nvar isRgba = function isRgba(color) {\n  return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\nvar isHsl = function isHsl(color) {\n  return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\nvar isHsla = function isHsla(color) {\n  return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: toColorString({ red: 255, green: 205, blue: 100 }),\n *   background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n *   background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n *   background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n *   background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n *   background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n *   background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n *   background: \"#ffcd64\";\n *   background: \"rgba(255,205,100,0.72)\";\n *   background: \"#00f\";\n *   background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\nfunction toColorString(color) {\n  if (typeof color !== 'object') throw new PolishedError(8);\n  if (isRgba(color)) return rgba(color);\n  if (isRgb(color)) return rgb(color);\n  if (isHsla(color)) return hsla(color);\n  if (isHsl(color)) return hsl(color);\n  throw new PolishedError(8);\n}\n\n// Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\nfunction curried(f, length, acc) {\n  return function fn() {\n    // eslint-disable-next-line prefer-rest-params\n    var combined = acc.concat(Array.prototype.slice.call(arguments));\n    return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n  };\n}\n\n// eslint-disable-next-line no-redeclare\nfunction curry(f) {\n  // eslint-disable-line no-redeclare\n  return curried(f, f.length, []);\n}\n\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated around\n * the color wheel, always producing a positive hue value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: adjustHue(180, '#448'),\n *   background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${adjustHue(180, '#448')};\n *   background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n *   background: \"#888844\";\n *   background: \"rgba(136,136,68,0.7)\";\n * }\n */\nfunction adjustHue(degree, color) {\n  if (color === 'transparent') return color;\n  var hslColor = parseToHsl(color);\n  return toColorString(_extends({}, hslColor, {\n    hue: hslColor.hue + parseFloat(degree)\n  }));\n}\n\n// prettier-ignore\nvar curriedAdjustHue = curry /* ::<number | string, string, string> */(adjustHue);\nvar curriedAdjustHue$1 = curriedAdjustHue;\n\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, <color>).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: complement('#448'),\n *   background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${complement('#448')};\n *   background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n *   background: \"#884\";\n *   background: \"rgba(153,153,153,0.7)\";\n * }\n */\nfunction complement(color) {\n  if (color === 'transparent') return color;\n  var hslColor = parseToHsl(color);\n  return toColorString(_extends({}, hslColor, {\n    hue: (hslColor.hue + 180) % 360\n  }));\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n  return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: darken(0.2, '#FFCD64'),\n *   background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${darken(0.2, '#FFCD64')};\n *   background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   background: \"#ffbd31\";\n *   background: \"rgba(255,189,49,0.7)\";\n * }\n */\nfunction darken(amount, color) {\n  if (color === 'transparent') return color;\n  var hslColor = parseToHsl(color);\n  return toColorString(_extends({}, hslColor, {\n    lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n  }));\n}\n\n// prettier-ignore\nvar curriedDarken = curry /* ::<number | string, string, string> */(darken);\nvar curriedDarken$1 = curriedDarken;\n\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: desaturate(0.2, '#CCCD64'),\n *   background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${desaturate(0.2, '#CCCD64')};\n *   background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n *   background: \"#b8b979\";\n *   background: \"rgba(184,185,121,0.7)\";\n * }\n */\nfunction desaturate(amount, color) {\n  if (color === 'transparent') return color;\n  var hslColor = parseToHsl(color);\n  return toColorString(_extends({}, hslColor, {\n    saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n  }));\n}\n\n// prettier-ignore\nvar curriedDesaturate = curry /* ::<number | string, string, string> */(desaturate);\nvar curriedDesaturate$1 = curriedDesaturate;\n\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n *   background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n *                             'rgba(58, 133, 255, 1)' :\n *                             'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n *   background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n *                             'rgba(58, 133, 255, 1)' :\n *                             'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n *   background: \"#CCCD64\";\n *   background: \"rgba(58, 133, 255, 1)\";\n * }\n */\nfunction getLuminance(color) {\n  if (color === 'transparent') return 0;\n  var rgbColor = parseToRgb(color);\n  var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n      var channel = rgbColor[key] / 255;\n      return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n    }),\n    r = _Object$keys$map[0],\n    g = _Object$keys$map[1],\n    b = _Object$keys$map[2];\n  return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n *\n * @example\n * const contrastRatio = getContrast('#444', '#fff');\n */\nfunction getContrast(color1, color2) {\n  var luminance1 = getLuminance(color1);\n  var luminance2 = getLuminance(color2);\n  return parseFloat((luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05)).toFixed(2));\n}\n\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: grayscale('#CCCD64'),\n *   background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${grayscale('#CCCD64')};\n *   background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n *   background: \"#999\";\n *   background: \"rgba(153,153,153,0.7)\";\n * }\n */\nfunction grayscale(color) {\n  if (color === 'transparent') return color;\n  return toColorString(_extends({}, parseToHsl(color), {\n    saturation: 0\n  }));\n}\n\n/**\n * Converts a HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n *   background: hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n *   background: ${hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n *   background: \"#00f\";\n *   background: \"rgba(179,25,25,0.72)\";\n * }\n */\nfunction hslToColorString(color) {\n  if (typeof color === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n    if (color.alpha && typeof color.alpha === 'number') {\n      return hsla({\n        hue: color.hue,\n        saturation: color.saturation,\n        lightness: color.lightness,\n        alpha: color.alpha\n      });\n    }\n    return hsl({\n      hue: color.hue,\n      saturation: color.saturation,\n      lightness: color.lightness\n    });\n  }\n  throw new PolishedError(45);\n}\n\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: invert('#CCCD64'),\n *   background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${invert('#CCCD64')};\n *   background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   background: \"#33329b\";\n *   background: \"rgba(154,155,50,0.7)\";\n * }\n */\nfunction invert(color) {\n  if (color === 'transparent') return color;\n  // parse color string to rgb\n  var value = parseToRgb(color);\n  return toColorString(_extends({}, value, {\n    red: 255 - value.red,\n    green: 255 - value.green,\n    blue: 255 - value.blue\n  }));\n}\n\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: lighten(0.2, '#CCCD64'),\n *   background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${lighten(0.2, '#FFCD64')};\n *   background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   background: \"#e5e6b1\";\n *   background: \"rgba(229,230,177,0.7)\";\n * }\n */\nfunction lighten(amount, color) {\n  if (color === 'transparent') return color;\n  var hslColor = parseToHsl(color);\n  return toColorString(_extends({}, hslColor, {\n    lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n  }));\n}\n\n// prettier-ignore\nvar curriedLighten = curry /* ::<number | string, string, string> */(lighten);\nvar curriedLighten$1 = curriedLighten;\n\n/**\n * Determines which contrast guidelines have been met for two colors.\n * Based on the [contrast calculations recommended by W3](https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced.html).\n *\n * @example\n * const scores = meetsContrastGuidelines('#444', '#fff');\n */\nfunction meetsContrastGuidelines(color1, color2) {\n  var contrastRatio = getContrast(color1, color2);\n  return {\n    AA: contrastRatio >= 4.5,\n    AALarge: contrastRatio >= 3,\n    AAA: contrastRatio >= 7,\n    AAALarge: contrastRatio >= 4.5\n  };\n}\n\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: mix(0.5, '#f00', '#00f')\n *   background: mix(0.25, '#f00', '#00f')\n *   background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${mix(0.5, '#f00', '#00f')};\n *   background: ${mix(0.25, '#f00', '#00f')};\n *   background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   background: \"#7f007f\";\n *   background: \"#3f00bf\";\n *   background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\nfunction mix(weight, color, otherColor) {\n  if (color === 'transparent') return otherColor;\n  if (otherColor === 'transparent') return color;\n  if (weight === 0) return otherColor;\n  var parsedColor1 = parseToRgb(color);\n  var color1 = _extends({}, parsedColor1, {\n    alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n  });\n  var parsedColor2 = parseToRgb(otherColor);\n  var color2 = _extends({}, parsedColor2, {\n    alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1\n  });\n\n  // The formula is copied from the original Sass implementation:\n  // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n  var alphaDelta = color1.alpha - color2.alpha;\n  var x = parseFloat(weight) * 2 - 1;\n  var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n  var z = 1 + x * alphaDelta;\n  var weight1 = (y / z + 1) / 2.0;\n  var weight2 = 1 - weight1;\n  var mixedColor = {\n    red: Math.floor(color1.red * weight1 + color2.red * weight2),\n    green: Math.floor(color1.green * weight1 + color2.green * weight2),\n    blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n    alpha: color1.alpha * parseFloat(weight) + color2.alpha * (1 - parseFloat(weight))\n  };\n  return rgba(mixedColor);\n}\n\n// prettier-ignore\nvar curriedMix = curry /* ::<number | string, string, string, string> */(mix);\nvar mix$1 = curriedMix;\n\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n *   background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n *   background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n *   background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n *   background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   background: \"#fff\";\n *   background: \"rgba(255,255,255,0.7)\";\n *   background: \"rgba(255,0,0,0.7)\";\n * }\n */\nfunction opacify(amount, color) {\n  if (color === 'transparent') return color;\n  var parsedColor = parseToRgb(color);\n  var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n  var colorWithAlpha = _extends({}, parsedColor, {\n    alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n  });\n  return rgba(colorWithAlpha);\n}\n\n// prettier-ignore\nvar curriedOpacify = curry /* ::<number | string, string, string> */(opacify);\nvar curriedOpacify$1 = curriedOpacify;\n\nvar defaultReturnIfLightColor = '#000';\nvar defaultReturnIfDarkColor = '#fff';\n\n/**\n * Returns black or white (or optional passed colors) for best\n * contrast depending on the luminosity of the given color.\n * When passing custom return colors, strict mode ensures that the\n * return color always meets or exceeds WCAG level AA or greater. If this test\n * fails, the default return color (black or white) is returned in place of the\n * custom return color. You can optionally turn off strict mode.\n *\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   color: readableColor('#000'),\n *   color: readableColor('black', '#001', '#ff8'),\n *   color: readableColor('white', '#001', '#ff8'),\n *   color: readableColor('red', '#333', '#ddd', true)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   color: ${readableColor('#000')};\n *   color: ${readableColor('black', '#001', '#ff8')};\n *   color: ${readableColor('white', '#001', '#ff8')};\n *   color: ${readableColor('red', '#333', '#ddd', true)};\n * `\n *\n * // CSS in JS Output\n * element {\n *   color: \"#fff\";\n *   color: \"#ff8\";\n *   color: \"#001\";\n *   color: \"#000\";\n * }\n */\nfunction readableColor(color, returnIfLightColor, returnIfDarkColor, strict) {\n  if (returnIfLightColor === void 0) {\n    returnIfLightColor = defaultReturnIfLightColor;\n  }\n  if (returnIfDarkColor === void 0) {\n    returnIfDarkColor = defaultReturnIfDarkColor;\n  }\n  if (strict === void 0) {\n    strict = true;\n  }\n  var isColorLight = getLuminance(color) > 0.179;\n  var preferredReturnColor = isColorLight ? returnIfLightColor : returnIfDarkColor;\n  if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {\n    return preferredReturnColor;\n  }\n  return isColorLight ? defaultReturnIfLightColor : defaultReturnIfDarkColor;\n}\n\n/**\n * Converts a RgbColor or RgbaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb` or `rgba`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: rgbToColorString({ red: 255, green: 205, blue: 100 }),\n *   background: rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${rgbToColorString({ red: 255, green: 205, blue: 100 })};\n *   background: ${rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n *   background: \"#ffcd64\";\n *   background: \"rgba(255,205,100,0.72)\";\n * }\n */\nfunction rgbToColorString(color) {\n  if (typeof color === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n    if (typeof color.alpha === 'number') {\n      return rgba({\n        red: color.red,\n        green: color.green,\n        blue: color.blue,\n        alpha: color.alpha\n      });\n    }\n    return rgb({\n      red: color.red,\n      green: color.green,\n      blue: color.blue\n    });\n  }\n  throw new PolishedError(46);\n}\n\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: saturate(0.2, '#CCCD64'),\n *   background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${saturate(0.2, '#FFCD64')};\n *   background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   background: \"#e0e250\";\n *   background: \"rgba(224,226,80,0.7)\";\n * }\n */\nfunction saturate(amount, color) {\n  if (color === 'transparent') return color;\n  var hslColor = parseToHsl(color);\n  return toColorString(_extends({}, hslColor, {\n    saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n  }));\n}\n\n// prettier-ignore\nvar curriedSaturate = curry /* ::<number | string, string, string> */(saturate);\nvar curriedSaturate$1 = curriedSaturate;\n\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: setHue(42, '#CCCD64'),\n *   background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${setHue(42, '#CCCD64')};\n *   background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n *   background: \"#cdae64\";\n *   background: \"rgba(107,100,205,0.7)\";\n * }\n */\nfunction setHue(hue, color) {\n  if (color === 'transparent') return color;\n  return toColorString(_extends({}, parseToHsl(color), {\n    hue: parseFloat(hue)\n  }));\n}\n\n// prettier-ignore\nvar curriedSetHue = curry /* ::<number | string, string, string> */(setHue);\nvar curriedSetHue$1 = curriedSetHue;\n\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: setLightness(0.2, '#CCCD64'),\n *   background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${setLightness(0.2, '#CCCD64')};\n *   background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n *   background: \"#4d4d19\";\n *   background: \"rgba(223,224,159,0.7)\";\n * }\n */\nfunction setLightness(lightness, color) {\n  if (color === 'transparent') return color;\n  return toColorString(_extends({}, parseToHsl(color), {\n    lightness: parseFloat(lightness)\n  }));\n}\n\n// prettier-ignore\nvar curriedSetLightness = curry /* ::<number | string, string, string> */(setLightness);\nvar curriedSetLightness$1 = curriedSetLightness;\n\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: setSaturation(0.2, '#CCCD64'),\n *   background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${setSaturation(0.2, '#CCCD64')};\n *   background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n *   background: \"#adad84\";\n *   background: \"rgba(228,229,76,0.7)\";\n * }\n */\nfunction setSaturation(saturation, color) {\n  if (color === 'transparent') return color;\n  return toColorString(_extends({}, parseToHsl(color), {\n    saturation: parseFloat(saturation)\n  }));\n}\n\n// prettier-ignore\nvar curriedSetSaturation = curry /* ::<number | string, string, string> */(setSaturation);\nvar curriedSetSaturation$1 = curriedSetSaturation;\n\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n  if (color === 'transparent') return color;\n  return mix$1(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n}\n\n// prettier-ignore\nvar curriedShade = curry /* ::<number | string, string, string> */(shade);\nvar curriedShade$1 = curriedShade;\n\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n  if (color === 'transparent') return color;\n  return mix$1(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n}\n\n// prettier-ignore\nvar curriedTint = curry /* ::<number | string, string, string> */(tint);\nvar curriedTint$1 = curriedTint;\n\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   background: transparentize(0.1, '#fff'),\n *   background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n *   background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   background: ${transparentize(0.1, '#fff')};\n *   background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')};\n *   background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n *   background: \"rgba(255,255,255,0.9)\";\n *   background: \"rgba(255,255,255,0.8)\";\n *   background: \"rgba(255,0,0,0.3)\";\n * }\n */\nfunction transparentize(amount, color) {\n  if (color === 'transparent') return color;\n  var parsedColor = parseToRgb(color);\n  var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n  var colorWithAlpha = _extends({}, parsedColor, {\n    alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)\n  });\n  return rgba(colorWithAlpha);\n}\n\n// prettier-ignore\nvar curriedTransparentize = curry /* ::<number | string, string, string> */(transparentize);\nvar curriedTransparentize$1 = curriedTransparentize;\n\n/**\n * Shorthand for easily setting the animation property. Allows either multiple arrays with animations\n * or a single animation spread over the arguments.\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'animation': 'rotate 1s ease-in-out, colorchange 2s'\n * }\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...animation('rotate', '1s', 'ease-in-out')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${animation('rotate', '1s', 'ease-in-out')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'animation': 'rotate 1s ease-in-out'\n * }\n */\nfunction animation() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  // Allow single or multiple animations passed\n  var multiMode = Array.isArray(args[0]);\n  if (!multiMode && args.length > 8) {\n    throw new PolishedError(64);\n  }\n  var code = args.map(function (arg) {\n    if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n      throw new PolishedError(65);\n    }\n    if (Array.isArray(arg) && arg.length > 8) {\n      throw new PolishedError(66);\n    }\n    return Array.isArray(arg) ? arg.join(' ') : arg;\n  }).join(', ');\n  return {\n    animation: code\n  };\n}\n\n/**\n * Shorthand that accepts any number of backgroundImage values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'backgroundImage': 'url(\"/image/background.jpg\"), linear-gradient(red, green)'\n * }\n */\nfunction backgroundImages() {\n  for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n    properties[_key] = arguments[_key];\n  }\n  return {\n    backgroundImage: properties.join(', ')\n  };\n}\n\n/**\n * Shorthand that accepts any number of background values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'background': 'url(\"/image/background.jpg\"), linear-gradient(red, green), center no-repeat'\n * }\n */\nfunction backgrounds() {\n  for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n    properties[_key] = arguments[_key];\n  }\n  return {\n    background: properties.join(', ')\n  };\n}\n\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'borderColor': 'red',\n *   'borderStyle': 'solid',\n *   'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n *   ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'borderTopColor': 'red',\n *   'borderTopStyle': 'solid',\n *   'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n  for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    values[_key - 1] = arguments[_key];\n  }\n  if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n    var _ref;\n    return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n  } else {\n    values.unshift(sideKeyword);\n    return {\n      borderWidth: values[0],\n      borderStyle: values[1],\n      borderColor: values[2]\n    };\n  }\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...borderColor('red', 'green', 'blue', 'yellow')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${borderColor('red', 'green', 'blue', 'yellow')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'borderTopColor': 'red',\n *   'borderRightColor': 'green',\n *   'borderBottomColor': 'blue',\n *   'borderLeftColor': 'yellow'\n * }\n */\nfunction borderColor() {\n  for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n    values[_key] = arguments[_key];\n  }\n  return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n\n/**\n * Shorthand that accepts a value for side and a value for radius and applies the radius value to both corners of the side.\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...borderRadius('top', '5px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${borderRadius('top', '5px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'borderTopRightRadius': '5px',\n *   'borderTopLeftRadius': '5px',\n * }\n */\nfunction borderRadius(side, radius) {\n  var uppercaseSide = capitalizeString(side);\n  if (!radius && radius !== 0) {\n    throw new PolishedError(62);\n  }\n  if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n    var _ref;\n    return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n  }\n  if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n    var _ref2;\n    return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n  }\n  throw new PolishedError(63);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...borderStyle('solid', 'dashed', 'dotted', 'double')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${borderStyle('solid', 'dashed', 'dotted', 'double')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'borderTopStyle': 'solid',\n *   'borderRightStyle': 'dashed',\n *   'borderBottomStyle': 'dotted',\n *   'borderLeftStyle': 'double'\n * }\n */\nfunction borderStyle() {\n  for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n    values[_key] = arguments[_key];\n  }\n  return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...borderWidth('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${borderWidth('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'borderTopWidth': '12px',\n *   'borderRightWidth': '24px',\n *   'borderBottomWidth': '36px',\n *   'borderLeftWidth': '48px'\n * }\n */\nfunction borderWidth() {\n  for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n    values[_key] = arguments[_key];\n  }\n  return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\n\nfunction generateSelectors(template, state) {\n  var stateSuffix = state ? \":\" + state : '';\n  return template(stateSuffix);\n}\n\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\nfunction statefulSelectors(states, template, stateMap) {\n  if (!template) throw new PolishedError(67);\n  if (states.length === 0) return generateSelectors(template, null);\n  var selectors = [];\n  for (var i = 0; i < states.length; i += 1) {\n    if (stateMap && stateMap.indexOf(states[i]) < 0) {\n      throw new PolishedError(68);\n    }\n    selectors.push(generateSelectors(template, states[i]));\n  }\n  selectors = selectors.join(',');\n  return selectors;\n}\n\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\nfunction template$1(state) {\n  return \"button\" + state + \",\\n  input[type=\\\"button\\\"]\" + state + \",\\n  input[type=\\\"reset\\\"]\" + state + \",\\n  input[type=\\\"submit\\\"]\" + state;\n}\n\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n *   [buttons('active')]: {\n *     'border': 'none'\n *   }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   > ${buttons('active')} {\n *     border: none;\n *   }\n * `\n *\n * // CSS in JS Output\n *\n *  'button:active,\n *  'input[type=\"button\"]:active,\n *  'input[type=\\\"reset\\\"]:active,\n *  'input[type=\\\"submit\\\"]:active: {\n *   'border': 'none'\n * }\n */\nfunction buttons() {\n  for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n    states[_key] = arguments[_key];\n  }\n  return statefulSelectors(states, template$1, stateMap$1);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...margin('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${margin('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'marginTop': '12px',\n *   'marginRight': '24px',\n *   'marginBottom': '36px',\n *   'marginLeft': '48px'\n * }\n */\nfunction margin() {\n  for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n    values[_key] = arguments[_key];\n  }\n  return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...padding('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${padding('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'paddingTop': '12px',\n *   'paddingRight': '24px',\n *   'paddingBottom': '36px',\n *   'paddingLeft': '48px'\n * }\n */\nfunction padding() {\n  for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n    values[_key] = arguments[_key];\n  }\n  return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\n\nvar positionMap = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'top': '12px',\n *   'right': '24px',\n *   'bottom': '36px',\n *   'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n *   ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'position': 'absolute',\n *   'top': '12px',\n *   'right': '24px',\n *   'bottom': '36px',\n *   'left': '48px'\n * }\n */\nfunction position(firstValue) {\n  for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    values[_key - 1] = arguments[_key];\n  }\n  if (positionMap.indexOf(firstValue) >= 0 && firstValue) {\n    return _extends({}, directionalProperty.apply(void 0, [''].concat(values)), {\n      position: firstValue\n    });\n  } else {\n    return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n  }\n}\n\n/**\n * Shorthand to set the height and width properties in a single statement.\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...size('300px', '250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${size('300px', '250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'height': '300px',\n *   'width': '250px',\n * }\n */\nfunction size(height, width) {\n  if (width === void 0) {\n    width = height;\n  }\n  return {\n    height: height,\n    width: width\n  };\n}\n\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\nfunction template(state) {\n  return \"input[type=\\\"color\\\"]\" + state + \",\\n    input[type=\\\"date\\\"]\" + state + \",\\n    input[type=\\\"datetime\\\"]\" + state + \",\\n    input[type=\\\"datetime-local\\\"]\" + state + \",\\n    input[type=\\\"email\\\"]\" + state + \",\\n    input[type=\\\"month\\\"]\" + state + \",\\n    input[type=\\\"number\\\"]\" + state + \",\\n    input[type=\\\"password\\\"]\" + state + \",\\n    input[type=\\\"search\\\"]\" + state + \",\\n    input[type=\\\"tel\\\"]\" + state + \",\\n    input[type=\\\"text\\\"]\" + state + \",\\n    input[type=\\\"time\\\"]\" + state + \",\\n    input[type=\\\"url\\\"]\" + state + \",\\n    input[type=\\\"week\\\"]\" + state + \",\\n    input:not([type])\" + state + \",\\n    textarea\" + state;\n}\n\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n *   [textInputs('active')]: {\n *     'border': 'none'\n *   }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   > ${textInputs('active')} {\n *     border: none;\n *   }\n * `\n *\n * // CSS in JS Output\n *\n *  'input[type=\"color\"]:active,\n *  input[type=\"date\"]:active,\n *  input[type=\"datetime\"]:active,\n *  input[type=\"datetime-local\"]:active,\n *  input[type=\"email\"]:active,\n *  input[type=\"month\"]:active,\n *  input[type=\"number\"]:active,\n *  input[type=\"password\"]:active,\n *  input[type=\"search\"]:active,\n *  input[type=\"tel\"]:active,\n *  input[type=\"text\"]:active,\n *  input[type=\"time\"]:active,\n *  input[type=\"url\"]:active,\n *  input[type=\"week\"]:active,\n *  input:not([type]):active,\n *  textarea:active': {\n *   'border': 'none'\n * }\n */\nfunction textInputs() {\n  for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n    states[_key] = arguments[_key];\n  }\n  return statefulSelectors(states, template, stateMap);\n}\n\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same transition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n *   ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n *   ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n *   ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n *   ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n *   'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n *   'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\nfunction transitions() {\n  for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n    properties[_key] = arguments[_key];\n  }\n  if (Array.isArray(properties[0]) && properties.length === 2) {\n    var value = properties[1];\n    if (typeof value !== 'string') {\n      throw new PolishedError(61);\n    }\n    var transitionsString = properties[0].map(function (property) {\n      return property + \" \" + value;\n    }).join(', ');\n    return {\n      transition: transitionsString\n    };\n  } else {\n    return {\n      transition: properties.join(', ')\n    };\n  }\n}\n\nexport { curriedAdjustHue$1 as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, cssVar, curriedDarken$1 as darken, curriedDesaturate$1 as desaturate, directionalProperty, easeIn, easeInOut, easeOut, ellipsis, em$1 as em, fluidRange, fontFace, getContrast, getLuminance, getValueAndUnit, grayscale, hiDPI, hideText, hideVisually, hsl, hslToColorString, hsla, important, invert, curriedLighten$1 as lighten, linearGradient, margin, math, meetsContrastGuidelines, mix$1 as mix, modularScale, normalize, curriedOpacify$1 as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem$1 as rem, remToPx, retinaImage, rgb, rgbToColorString, rgba, curriedSaturate$1 as saturate, curriedSetHue$1 as setHue, curriedSetLightness$1 as setLightness, curriedSetSaturation$1 as setSaturation, curriedShade$1 as shade, size, stripUnit, textInputs, timingFunctions, curriedTint$1 as tint, toColorString, transitions, curriedTransparentize$1 as transparentize, triangle, wordWrap };\n","import React, { PropsWithChildren } from 'react';\n\nimport { darken } from 'polished';\nimport styled, { useTheme, type DefaultTheme } from 'styled-components';\n\nconst buttonTheme = <\n    ThemePrefix extends 'button' | 'socialButton',\n    Attr extends keyof DefaultTheme[ThemePrefix],\n>(\n    theme: DefaultTheme,\n    themePrefix: ThemePrefix = 'button' as ThemePrefix,\n    attr: Attr\n): DefaultTheme[ThemePrefix][Attr] => theme[themePrefix][attr];\n\nexport type ExtraButtonProps = {\n    $color?: string;\n    $background?: string;\n    $border?: string;\n    $themePrefix?: 'button' | 'socialButton';\n};\n\nexport type ButtonProps = Omit<\n    React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>,\n    'ref'\n> &\n    ExtraButtonProps;\n\nexport const Button = styled.button<ExtraButtonProps>`\n    display: block;\n    width: 100%;\n    box-sizing: border-box;\n    text-align: center;\n    font-weight: ${props => buttonTheme(props.theme, props.$themePrefix, 'fontWeight')};\n    vertical-align: middle;\n    user-select: none;\n    touch-action: manipulation;\n    cursor: pointer;\n    color: ${props => props.$color ?? '#ffffff'};\n    background-color: ${props => props.$background};\n    border: ${props => buttonTheme(props.theme, props.$themePrefix, 'borderWidth')}px solid\n        ${props => props.$border};\n    padding: ${props => buttonTheme(props.theme, props.$themePrefix, 'paddingY')}px\n        ${props => buttonTheme(props.theme, props.$themePrefix, 'paddingX')}px;\n    font-size: ${props => buttonTheme(props.theme, props.$themePrefix, 'fontSize')}px;\n    line-height: ${props => buttonTheme(props.theme, props.$themePrefix, 'lineHeight')};\n    border-radius: ${props => buttonTheme(props.theme, props.$themePrefix, 'borderRadius')}px;\n    transition: all 0.15s ease-in-out;\n\n    &:focus {\n        outline: 0;\n        box-shadow: ${props =>\n            buttonTheme(props.theme, props.$themePrefix, 'focusBoxShadow')(props.$border)};\n    }\n\n    &:hover,\n    &:active {\n        color: ${props => props.$color};\n        background-color: ${props =>\n            darken(0.08, props.$background ?? props.theme.backgroundColor)};\n        border-color: ${props => darken(0.08, props.$border ?? props.theme.borderColor)};\n    }\n\n    &[disabled] {\n        opacity: 0.65;\n    }\n`;\n\ninterface DefaultButtonProps extends Omit<ButtonProps, 'background' | 'border' | 'color'> {}\n\nexport function DefaultButton({ children, ...props }: PropsWithChildren<DefaultButtonProps>) {\n    const theme = useTheme();\n    return (\n        <Button\n            {...props}\n            $background={theme.backgroundColor}\n            $border={theme.primaryColor}\n            $color={theme.primaryColor}\n        >\n            {children}\n        </Button>\n    );\n}\n\ninterface PrimaryButtonProps extends Omit<ButtonProps, 'background' | 'border'> {}\n\nexport function PrimaryButton({\n    children,\n    type = 'submit',\n    ...props\n}: PropsWithChildren<PrimaryButtonProps>) {\n    const theme = useTheme();\n    return (\n        <Button\n            type={type}\n            {...props}\n            $background={theme.primaryColor}\n            $border={theme.primaryColor}\n        >\n            {children}\n        </Button>\n    );\n}\n\ninterface DestructiveButtonProps extends Omit<ButtonProps, 'background' | 'border'> {}\n\nexport function DestructiveButton({\n    children,\n    type = 'submit',\n    ...props\n}: PropsWithChildren<DestructiveButtonProps>) {\n    const theme = useTheme();\n    return (\n        <Button type={type} {...props} $background={theme.dangerColor} $border={theme.dangerColor}>\n            {children}\n        </Button>\n    );\n}\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport styled from 'styled-components';\n\nimport { Client } from '@reachfive/identity-core';\n\nimport { useConfig, type WithConfig } from '../../contexts/config';\nimport { useI18n, type WithI18n } from '../../contexts/i18n';\nimport { useReachfive } from '../../contexts/reachfive';\nimport { type ValidatorResult } from '../../core/validation';\nimport { isAppError } from '../../helpers/errors';\nimport { logError } from '../../helpers/logger';\nimport { useDebounceCallback } from '../../helpers/useDebounceCallback';\nimport { type Config } from '../../types';\nimport { useCaptcha } from '../captcha';\nimport { ErrorText, MutedText } from '../miscComponent';\nimport { PrimaryButton } from './buttonComponent';\n\nimport type { Field, FieldCreator, FieldValue } from './fieldCreator';\n\nconst Form = styled.form`\n    position: relative;\n`;\n\nconst RequiredFields = styled(MutedText)`\n    display: block;\n    padding: ${props => `${props.theme.paddingY}px ${props.theme.paddingX}px`};\n    text-align: center;\n`;\n\nexport type StaticContent = {\n    staticContent: React.ReactNode;\n};\n\n/** @todo to refine */\nexport type FormContext<Model> = {\n    client: Client;\n    config: Config;\n    errorMessage?: string;\n    fields: Model;\n    hasErrors?: boolean;\n    isLoading?: boolean;\n    isSubmitted: boolean;\n};\n\nexport type FieldValues<T> = {\n    [K in keyof T]: FieldValue<T[K]>;\n};\n\nexport type FieldOptions<P> = WithConfig<WithI18n<P>>;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype FormField = FieldCreator<any, any, any, any> | StaticContent;\n\nexport type FormFieldsBuilder<P = {}> = FormField[] | ((options: FieldOptions<P>) => FormField[]);\n\nexport type FieldCreators<FF extends FormFieldsBuilder<P>, P = {}> = FF extends (\n    ...args: unknown[]\n) => unknown\n    ? ReturnType<FF>\n    : FF;\n\n/**\n * transform fields builder into a record of field values\n * @example\n * const builder: FormFieldsBuilder = [\n *   {\n *     key: 'test',\n *     path: 'test',\n *     create: () => ({\n *       key: 'test',\n *       render: () => null,\n *       initialize: () => ({ value: '' }),\n *       unbind: () => ({ test: '' }),\n *       validate: () => Promise.resolve({ valid: true })\n *     })\n *   }\n * ]\n * type Test = FormFields<typeof builder>\n * // { test: { value: '', isDirty: false, validation: { valid: true } } }\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport type FormFields<Fields extends FormFieldsBuilder<P>, P = {}> = {\n    [F in Extract<FieldCreators<Fields, P>, readonly any[]>[number] as F extends FieldCreator<\n        any,\n        any,\n        any,\n        any\n    >\n        ? F['key']\n        : never]: F extends FieldCreator<infer T, P, any, infer K> ? FieldValue<T, K> : never;\n};\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\ntype FormOptions<P = {}, Model extends Record<PropertyKey, unknown> = {}> = {\n    fields?: FormFieldsBuilder<P>;\n    fieldValidationDebounce?: number;\n    prefix?: string;\n    resetAfterError?: boolean;\n    resetAfterSuccess?: boolean;\n    SubmitComponent?: React.ComponentType<{\n        disabled: boolean;\n        label: string;\n        onClick: (callback: (data: Model) => void) => void;\n    }>;\n    submitLabel?: string;\n    showLabels?: boolean;\n    skipError?: boolean | ((error: unknown) => boolean);\n    supportMultipleSubmits?: boolean;\n};\n\ntype FormProps<Model extends Record<PropertyKey, unknown> = {}, P = {}, R = void> = FormOptions<\n    P,\n    Model\n> &\n    P & {\n        beforeSubmit?: (data: Model) => Model;\n        handler: (data: Model) => Promise<R>;\n        initialModel?: Partial<Model>;\n        onError?: (error: unknown) => void | PromiseLike<void>;\n        onFieldChange?: (fields: Model) => void;\n        onSuccess?: (result: R) => void | PromiseLike<void>;\n        sharedProps?: Record<string, unknown>;\n    };\n\nexport function createForm<Model extends Record<PropertyKey, unknown> = {}, P = {}>(\n    formOptions: FormOptions<P>\n) {\n    function FormComponent<R = void>(props: FormProps<Model, P, R>) {\n        const config = useConfig();\n        const i18n = useI18n();\n        const client = useReachfive();\n        const { Captcha, handler: captchaHandler } = useCaptcha();\n\n        const {\n            beforeSubmit,\n            fields = [],\n            fieldValidationDebounce = 1000,\n            handler,\n            initialModel = {},\n            onError,\n            onFieldChange,\n            onSuccess,\n            resetAfterError,\n            resetAfterSuccess,\n            SubmitComponent,\n            submitLabel = 'send',\n            sharedProps,\n            showLabels = false,\n            skipError,\n            supportMultipleSubmits = false,\n        } = Object.assign({}, formOptions, props);\n\n        const [isLoading, setIsLoading] = useState(false);\n        const [_hasErrors, setHasErrors] = useState(false);\n        const [errorMessage, setErrorMessage] = useState<string | undefined>();\n\n        const allFields = (\n            typeof fields === 'function' ? fields({ config, i18n, ...(props as P) }) : fields\n        )\n            .filter(\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                (field): field is FieldCreator<any, any, any, any> | StaticContent => !!field\n            ) /** @todo: is this useless ? */\n            .map(field =>\n                'staticContent' in field ? field : field.create({ i18n, showLabel: showLabels })\n            );\n\n        type FieldType = typeof allFields extends (infer F)[] ? Exclude<F, StaticContent> : never;\n\n        const inputFields = allFields.filter(\n            (field): field is FieldType => !('staticContent' in field)\n        );\n\n        const fieldByKey = Object.fromEntries(inputFields.map(field => [field.key, field]));\n\n        const filledWithModel = () =>\n            Object.fromEntries(\n                Object.entries(fieldByKey).map(([key, field]) => [\n                    key,\n                    field.initialize<Model>(initialModel),\n                ])\n            );\n\n        const [fieldValues, setFieldValues] = useState(filledWithModel());\n\n        type FieldKey = keyof typeof fieldValues;\n        type FieldValue<K extends FieldKey> = (typeof fieldValues)[K];\n\n        const valuesToModel = () => {\n            return inputFields.reduce((acc, field) => {\n                return field.unbind<Model>(acc, getFieldValue(field.key));\n            }, {} as Model);\n        };\n\n        const getFieldValue = <K extends FieldKey>(fieldName: K): FieldValue<K> => {\n            return fieldValues[fieldName] ?? ({} as never);\n        };\n\n        useEffect(() => {\n            onFieldChange?.(valuesToModel());\n        }, [fieldValues]);\n\n        const handleFieldChange = <K extends FieldKey>(\n            fieldName: K,\n            stateUpdate: FieldValue<K>\n        ) => {\n            const { validation: _, ...currentState } = getFieldValue(fieldName);\n\n            const newState = {\n                ...currentState,\n                // ...(typeof stateUpdate === 'function' ? stateUpdate(currentState) : stateUpdate)\n                ...stateUpdate,\n            };\n\n            const newFieldValues = {\n                ...fieldValues,\n                [fieldName]: {\n                    ...newState,\n                },\n            };\n\n            setFieldValues(newFieldValues);\n        };\n\n        const validateField = async <K extends string>(\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            field: Field<Model, P, any, K>,\n            fieldState: FieldValue<K>,\n            ctx: FormContext<Model>\n        ) => (await field.validate(fieldState, ctx)) || ({} as ValidatorResult);\n\n        const validateAllFields = async (callback: (isValid: boolean) => void) => {\n            const data = valuesToModel();\n            const { hasErrors, values: newFieldValues } = await inputFields.reduce(\n                async (acc, field) => {\n                    const fieldState = getFieldValue(field.key);\n                    const validation = await validateField(field, fieldState, {\n                        client,\n                        config,\n                        isSubmitted: true,\n                        fields: data,\n                    });\n                    return {\n                        hasErrors:\n                            (await acc).hasErrors ||\n                            (typeof validation === 'object' && 'error' in validation),\n                        values: {\n                            ...(await acc).values,\n                            [field.key]: {\n                                ...fieldState,\n                                validation,\n                            },\n                        } satisfies FormFields<typeof fields, P>,\n                    };\n                },\n                Promise.resolve({ hasErrors: false, values: {} as FormFields<typeof fields, P> })\n            );\n\n            setHasErrors(hasErrors);\n            setFieldValues(newFieldValues);\n\n            callback?.(!hasErrors);\n        };\n\n        const handleFieldValidation = useCallback(\n            async <K extends FieldKey>(fieldName: K, stateUpdate: FieldValue<K>) => {\n                const { validation: _, ...currentState } = getFieldValue(fieldName);\n\n                const newState = {\n                    ...currentState,\n                    ...stateUpdate,\n                } satisfies FieldValue<K>;\n\n                const data = valuesToModel();\n\n                const validation = await validateField(fieldByKey[fieldName], newState, {\n                    client,\n                    config,\n                    isSubmitted: false,\n                    fields: data,\n                });\n\n                const newFieldValues = {\n                    ...fieldValues,\n                    [fieldName]: {\n                        ...newState,\n                        validation,\n                    } satisfies typeof currentState,\n                };\n\n                // !!validation.error || find(newFields, ({ validation = {} }) => validation.error) !== undefined,\n                setHasErrors(typeof validation === 'object' && 'error' in validation);\n\n                setFieldValues(newFieldValues);\n            },\n            [fieldValues, fieldByKey]\n        );\n\n        const handleFieldValidationDebounced = useDebounceCallback(\n            handleFieldValidation,\n            fieldValidationDebounce\n        );\n\n        const formatErrorMessage = (err: unknown) => {\n            if (typeof err === 'string') {\n                return i18n(err);\n            } else if (isAppError(err)) {\n                return err.errorMessageKey\n                    ? i18n(err.errorMessageKey, { defaultValue: err.errorUserMsg ?? err.error })\n                    : err.errorUserMsg;\n            }\n        };\n\n        const handleSuccess = async (result: R) => {\n            await onSuccess?.(result);\n\n            setIsLoading(!supportMultipleSubmits);\n            setErrorMessage(undefined);\n\n            if (resetAfterSuccess) {\n                setFieldValues(filledWithModel());\n            }\n        };\n\n        const handleError = async (err: unknown) => {\n            await onError?.(err);\n\n            if (isAppError(err) && !err.errorUserMsg) {\n                if (err.errorDescription) {\n                    logError(err.errorDescription);\n                } else {\n                    logError(err.error);\n                }\n            } else if (typeof err === 'string' || err instanceof Error) {\n                logError(err);\n            }\n\n            setIsLoading(false);\n            setErrorMessage(formatErrorMessage(err) ?? i18n('unexpectedErrorOccurred'));\n            if (resetAfterError) {\n                setFieldValues(filledWithModel());\n            }\n        };\n\n        const processData = async (callback: (data: Model) => void) => {\n            await validateAllFields(isValid => {\n                if (isValid) {\n                    setIsLoading(true);\n\n                    const fieldData = valuesToModel();\n\n                    const processedData = beforeSubmit ? beforeSubmit(fieldData) : fieldData;\n\n                    callback(processedData);\n                }\n            });\n        };\n\n        const handleSubmit = async (event: React.FormEvent<HTMLFormElement>) => {\n            event.preventDefault();\n\n            await processData(processedData => {\n                captchaHandler(processedData, handler)\n                    .then(handleSuccess)\n                    .catch((err: unknown) => {\n                        if (typeof skipError === 'function' ? skipError(err) : skipError === true) {\n                            handleSuccess({} as R);\n                        } else {\n                            handleError(err);\n                        }\n                    });\n            });\n        };\n\n        return (\n            <Form noValidate onSubmit={handleSubmit}>\n                {errorMessage && <ErrorText>{errorMessage}</ErrorText>}\n                {allFields.map(field =>\n                    !('staticContent' in field)\n                        ? field.render({\n                              state: getFieldValue(field.key),\n                              onChange: newState => {\n                                  handleFieldChange(field.key, newState);\n                                  handleFieldValidationDebounced(field.key, newState);\n                              },\n                              ...(sharedProps as P),\n                          })\n                        : field.staticContent\n                )}\n                {Captcha && <Captcha />}\n                {SubmitComponent ? (\n                    <SubmitComponent\n                        disabled={isLoading}\n                        label={i18n(submitLabel)}\n                        onClick={processData}\n                    />\n                ) : (\n                    <PrimaryButton disabled={isLoading} data-testid=\"submit\">\n                        {i18n(submitLabel)}\n                    </PrimaryButton>\n                )}\n                {showLabels && <RequiredFields>*{i18n('form.required.fields')}</RequiredFields>}\n            </Form>\n        );\n    }\n    return FormComponent;\n}\n","import React, { PropsWithChildren } from 'react';\n\nimport type { SessionInfo } from '@reachfive/identity-core';\n\nexport type Props = {\n    session?: SessionInfo | null;\n};\n\nexport type PropsWithSession<P> = P & { session?: SessionInfo };\n\nexport const SessionContext = React.createContext<SessionInfo | null | undefined>(undefined);\n\nexport function useSession(): SessionInfo | null {\n    const context = React.useContext(SessionContext);\n    if (context === undefined) {\n        throw new Error('No SessionContext provided');\n    }\n\n    return context;\n}\n\nexport function SessionProvider({\n    children,\n    session = null,\n}: PropsWithChildren<Props>): JSX.Element | null {\n    return <SessionContext.Provider value={session}>{children}</SessionContext.Provider>;\n}\n","import { darken, lighten, transparentize } from 'polished';\nimport { CSSProperties } from 'styled-components';\n\nimport {\n    BaseTheme,\n    ButtonTheme,\n    InputTheme,\n    LinkTheme,\n    SocialButtonTheme,\n    Theme,\n    ThemeOptions,\n} from '../types/styled';\n\nconst white = '#fff';\n// const gray100 = '#f8f9fa';\nconst gray200 = '#e9ecef';\n// const gray300 = '#dee2e6';\nconst gray400 = '#ced4da';\nconst gray500 = '#adb5bd';\nconst gray600 = '#868e96';\nconst gray700 = '#495057';\n// const gray800 = '#343a40';\nconst gray900 = '#212529';\n// const black = '#000';\n\ntype PrimitiveTheme = Omit<\n    BaseTheme,\n    | 'paddingX'\n    | 'paddingY'\n    | 'spacing'\n    | '_absoluteLineHeight'\n    | '_blockInnerHeight'\n    | '_blockHeight'\n>;\n\nexport const primitiveTheme: PrimitiveTheme = {\n    animateWidgetEntrance: true,\n    fontSize: 14,\n    smallTextFontSize: 12,\n    lineHeight: 1.428571429,\n    headingColor: gray900,\n    textColor: gray700,\n    mutedTextColor: gray500,\n    borderRadius: 3,\n    borderColor: gray400,\n    borderWidth: 1,\n    backgroundColor: '#ffffff',\n    primaryColor: '#229955',\n    dangerColor: '#dc4e41',\n    warningColor: '#ffc107',\n    successColor: '#229955',\n    lightBackgroundColor: gray200,\n    maxWidth: 400,\n};\n\nexport const paddingY = (theme: Pick<PrimitiveTheme, 'fontSize' | 'lineHeight' | 'borderWidth'>) =>\n    Math.round(theme.fontSize * theme.lineHeight) / 2 - theme.borderWidth;\n\nexport const paddingX = (theme: Parameters<typeof paddingY>[0]) =>\n    Math.round((paddingY(theme) * 4) / 3);\n\nexport const _absoluteLineHeight = (theme: Pick<PrimitiveTheme, 'fontSize' | 'lineHeight'>) =>\n    Math.round(theme.fontSize * theme.lineHeight);\n\nexport const _blockInnerHeight = (\n    theme: Parameters<typeof _absoluteLineHeight>[0] & Parameters<typeof paddingY>[0]\n) => _absoluteLineHeight(theme) + 2 * paddingY(theme);\n\nexport const _blockHeight = (\n    theme: Parameters<typeof _blockInnerHeight>[0] & Pick<PrimitiveTheme, 'borderWidth'>\n) => _blockInnerHeight(theme) + 2 * theme.borderWidth;\n\nexport const inputBtnFocusBoxShadow = (\n    color?: CSSProperties['color']\n): NonNullable<CSSProperties['boxShadow']> =>\n    color ? `0 0 0 3px ${transparentize(0.5, color)}` : 'none';\n\nexport const height = (\n    fontSize: number,\n    lineHeight: number,\n    paddingY: number,\n    borderWidth: number\n) => Math.round(fontSize * lineHeight) + 2 * paddingY + 2 * borderWidth;\n\nexport const baseInputTheme = {\n    color: gray700,\n    placeholderColor: gray600,\n    background: white,\n    disabledBackground: gray200,\n    boxShadow: 'none',\n    focusBoxShadow: inputBtnFocusBoxShadow,\n};\n\nexport const buildTheme = (themeOptions: ThemeOptions = {} as Partial<ThemeOptions>): Theme => {\n    const {\n        link: customLink,\n        input: customInput,\n        button: customButton,\n        socialButton: customSocialButton,\n        ...customBase\n    } = themeOptions;\n    const primitive = { ...primitiveTheme, ...customBase };\n    const base: BaseTheme = {\n        paddingY: paddingY(primitive),\n        paddingX: paddingX(primitive),\n        spacing: Math.round(_blockHeight(primitive) / 4),\n        _absoluteLineHeight: _absoluteLineHeight(primitive),\n        _blockInnerHeight: _blockInnerHeight(primitive),\n        _blockHeight: _blockHeight(primitive),\n        ...primitive,\n    };\n    const link: Omit<LinkTheme, 'hoverColor'> = {\n        color: base.primaryColor,\n        decoration: 'none',\n        hoverDecoration: 'none',\n        ...customLink,\n    };\n    const input: Omit<InputTheme, 'focusBoxShadow' | 'height'> = {\n        ...baseInputTheme,\n        fontSize: base.fontSize,\n        lineHeight: base.lineHeight,\n        paddingX: base.paddingX,\n        paddingY: base.paddingY,\n        borderColor: base.borderColor,\n        borderRadius: base.borderRadius,\n        borderWidth: base.borderWidth,\n        focusBorderColor: lighten(0.25, base.primaryColor),\n        ...customInput,\n    };\n    const button: Omit<ButtonTheme, 'focusBoxShadow' | 'height'> = {\n        fontWeight: 'bold',\n        fontSize: base.fontSize,\n        lineHeight: base.lineHeight,\n        paddingX: base.paddingX,\n        paddingY: base.paddingY,\n        borderColor: base.borderColor,\n        borderRadius: base.borderRadius,\n        borderWidth: base.borderWidth,\n        ...customButton,\n    };\n    const socialButton: Omit<SocialButtonTheme, 'focusBoxShadow' | 'height' | 'textVisible'> = {\n        inline: false,\n        fontWeight: button.fontWeight,\n        fontSize: button.fontSize,\n        lineHeight: button.lineHeight,\n        paddingX: button.paddingX,\n        paddingY: button.paddingY,\n        borderColor: button.borderColor,\n        borderRadius: button.borderRadius,\n        borderWidth: button.borderWidth,\n        ...customSocialButton,\n    };\n    return {\n        ...base,\n        link: {\n            ...link,\n            hoverColor: darken(0.15, link.color),\n        },\n        input: {\n            ...input,\n            focusBoxShadow: inputBtnFocusBoxShadow,\n            height: height(input.fontSize, input.lineHeight, input.paddingY, input.borderWidth),\n        },\n        button: {\n            ...button,\n            focusBoxShadow: inputBtnFocusBoxShadow,\n            height: height(button.fontSize, button.lineHeight, button.paddingY, button.borderWidth),\n        },\n        socialButton: {\n            ...socialButton,\n            textVisible: !socialButton.inline,\n            focusBoxShadow: inputBtnFocusBoxShadow,\n            height: height(\n                socialButton.fontSize,\n                socialButton.lineHeight,\n                socialButton.paddingY,\n                socialButton.borderWidth\n            ),\n        },\n        passwordStrengthValidator: {\n            color0: base.dangerColor,\n            color1: base.dangerColor,\n            color2: base.warningColor,\n            color3: lighten(0.2, base.successColor),\n            color4: base.successColor,\n        },\n    };\n};\n","import React, { ForwardedRef, PropsWithChildren } from 'react';\nimport { Transition, TransitionStatus } from 'react-transition-group';\n\nimport classes from 'classnames';\nimport styled, { useTheme } from 'styled-components';\n\nimport { Heading, Intro } from '../miscComponent';\n\ninterface WidgetContentProps extends React.HTMLAttributes<HTMLDivElement> {\n    name?: string;\n    standalone?: boolean;\n    transition?: TransitionStatus;\n}\n\nconst WidgetContent = styled(\n    React.forwardRef(function WidgetContent(\n        { name, className, children, standalone, ...props }: PropsWithChildren<WidgetContentProps>,\n        ref: ForwardedRef<HTMLDivElement>\n    ) {\n        return (\n            <div\n                ref={ref}\n                className={classes(className, {\n                    [`r5-${name}`]: !!name,\n                    'r5-widget-active': !!name,\n                })}\n                {...props}\n            >\n                {children}\n            </div>\n        );\n    })\n)`\n    font-size: ${props => props.theme.fontSize}px;\n    transition:\n        transform 400ms ease,\n        opacity 400ms ease;\n\n    opacity: ${props => (props.transition === 'entered' ? '1' : '0')};\n\n    ${props =>\n        props.standalone &&\n        `\n        padding: ${props.theme.spacing * 2}px;\n        border-radius: ${props.theme.borderRadius}px;\n        background-color: ${props.theme.backgroundColor};\n        max-width: ${props.theme.maxWidth}px;\n        box-sizing: border-box;\n        margin: 0 auto;\n    `}\n`;\n\nexport interface WidgetContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n    name?: string;\n    standalone?: boolean;\n    noIntro?: boolean;\n    title?: string;\n    intro?: string;\n}\n\nexport default function WidgetContainer({\n    name,\n    standalone = true,\n    noIntro = false,\n    title,\n    intro,\n    children,\n    ...props\n}: PropsWithChildren<WidgetContainerProps>) {\n    const theme = useTheme();\n    const nodeRef = React.useRef<HTMLDivElement>(null);\n    return (\n        <Transition nodeRef={nodeRef} in={true} appear={theme.animateWidgetEntrance} timeout={400}>\n            {state => (\n                <WidgetContent\n                    ref={nodeRef}\n                    standalone={standalone}\n                    name={name}\n                    transition={state}\n                    {...props}\n                >\n                    {title && <Heading>{title}</Heading>}\n                    {!noIntro && intro && <Intro>{intro}</Intro>}\n                    {children}\n                </WidgetContent>\n            )}\n        </Transition>\n    );\n}\n","import React, { ComponentType } from 'react';\n\nimport styled, { StyleSheetManager, ThemeProvider, css } from 'styled-components';\n\nimport type { Client as CoreClient, SessionInfo } from '@reachfive/identity-core';\n\nimport { ConfigProvider } from '../../contexts/config';\nimport { I18nProvider, type I18nMessages } from '../../contexts/i18n';\nimport { ReachfiveProvider } from '../../contexts/reachfive';\nimport { RoutingProvider } from '../../contexts/routing';\nimport { SessionProvider } from '../../contexts/session';\nimport { buildTheme } from '../../core/theme';\nimport { Theme, ThemeOptions } from '../../types/styled';\nimport WidgetContainer, { WidgetContainerProps } from './widgetContainerComponent';\n\nimport type { Config, Prettify } from '../../types';\n\nexport type I18nProps = { i18n?: I18nMessages };\nexport type ThemeProps = { theme?: ThemeOptions };\n\nexport type PropsWithI18n<P> = Prettify<P & I18nProps>;\nexport type PropsWithTheme<P> = Prettify<P & ThemeProps>;\n\nexport const themeVariables = css`\n    --color-primary: ${props => props.theme.primaryColor};\n    --color-destructive: ${props => props.theme.dangerColor};\n    --color-background: ${props => props.theme.backgroundColor};\n    --color-text: ${props => props.theme.textColor};\n    --color-border: ${props => props.theme.borderColor};\n\n    --spacing-padding-y: ${props => props.theme.paddingY};\n    --spacing-padding-x: ${props => props.theme.paddingX};\n    --spacing-block-inner-height: ${props => props.theme._blockInnerHeight};\n    --spacing: ${props => props.theme.spacing};\n\n    --font-generic: ${props => props.theme.fontSize};\n\n    --border-width: ${props => props.theme.borderWidth};\n    --radius: ${props => props.theme.borderRadius};\n`;\n\nexport const ThemeVariablesContainer = styled.div`\n    ${themeVariables}\n`;\n\nexport const WidgetContainerThemeVariables = styled(WidgetContainer)`\n    ${themeVariables}\n`;\n\nexport type Context = {\n    config: Config;\n    apiClient: CoreClient;\n    defaultI18n: I18nMessages;\n    session?: SessionInfo;\n};\n\ntype PrepareFn<P, U> = (\n    options: PropsWithI18n<PropsWithTheme<P>>,\n    context: Context\n) => PropsWithI18n<PropsWithTheme<U>> | PromiseLike<PropsWithI18n<PropsWithTheme<U>>>;\n\ntype CreateWidget<P, U> = {\n    component: ComponentType<Omit<U, 'theme'>>;\n    prepare?: PrepareFn<P, U>;\n} & WidgetContainerProps;\n\nexport function createWidget<P, U = P>({\n    component,\n    prepare = (options: PropsWithI18n<PropsWithTheme<P>>) =>\n        options as unknown as PropsWithI18n<PropsWithTheme<U>>,\n    ...widgetAttrs\n}: CreateWidget<P, U>) {\n    return (options: PropsWithTheme<PropsWithI18n<P>>, context: Context) => {\n        return Promise.resolve(prepare(options, context)).then(\n            ({ theme: customTheme, ...preparedOptions }) => {\n                const Component = component;\n\n                const theme: Theme = buildTheme(customTheme);\n\n                return (\n                    <ConfigProvider config={context.config}>\n                        <ReachfiveProvider client={context.apiClient}>\n                            <SessionProvider session={context.session}>\n                                <StyleSheetManager>\n                                    <ThemeProvider theme={theme}>\n                                        <I18nProvider\n                                            defaultMessages={context.defaultI18n}\n                                            messages={preparedOptions.i18n}\n                                            locale={context.config.language}\n                                        >\n                                            <WidgetContainerThemeVariables\n                                                {...widgetAttrs}\n                                                className=\"r5-widget\"\n                                            >\n                                                <Component {...preparedOptions} />\n                                            </WidgetContainerThemeVariables>\n                                        </I18nProvider>\n                                    </ThemeProvider>\n                                </StyleSheetManager>\n                            </SessionProvider>\n                        </ReachfiveProvider>\n                    </ConfigProvider>\n                );\n            }\n        );\n    };\n}\n\nexport interface CreateMultiViewWidgetProps<P, U> extends MultiViewWidgetProps<P, U> {}\n\nexport function createMultiViewWidget<P, U = P>({\n    prepare,\n    ...params\n}: MultiViewWidgetProps<P, U>) {\n    return createWidget<P, U>({\n        component: multiViewWidget<P, U>(params),\n        prepare,\n        noIntro: true,\n    });\n}\n\nexport interface MultiViewWidgetProps<P, U> {\n    initialView: ((props: Omit<U, 'theme'>) => string) | string;\n    views: Record<string, ComponentType<Omit<U, 'theme'>>>;\n    initialState?: MultiWidgetState;\n    prepare?: PrepareFn<P, U>;\n}\n\nexport type MultiWidgetState = Record<string, unknown> & {\n    activeView: string;\n};\n\nfunction multiViewWidget<P, U>({\n    initialView,\n    views,\n    initialState = {} as MultiWidgetState,\n}: MultiViewWidgetProps<P, U>) {\n    return class MultiViewWidget extends React.Component<Omit<U, 'theme'>, MultiWidgetState> {\n        state = {\n            ...initialState,\n            activeView: typeof initialView === 'function' ? initialView(this.props) : initialView,\n        };\n\n        // _goTo = <View extends keyof typeof views, S extends ComponentProps<(typeof views)[View]>>(view: View, props?: S) => this.setState({\n        _goTo = <S extends Record<string, unknown>>(view: keyof typeof views, params?: S) =>\n            this.setState({\n                activeView: view,\n                ...params,\n            });\n\n        render() {\n            const { activeView, ...state } = this.state;\n            const ActiveComponent = views[activeView];\n\n            return (\n                <RoutingProvider goTo={this._goTo} params={state}>\n                    <ActiveComponent {...this.props} />\n                </RoutingProvider>\n            );\n        }\n    };\n}\n","import { camelCase, snakeCase as underlingSnakeCase } from './utils';\n\nexport const snakeCasePath = (path: string) => path.split('.').map(snakeCase).join('.');\n\nexport const camelCasePath = (path: string) => path.split('.').map(camelCase).join('.');\n\nexport const camelCaseProperties = function (object: Record<string, unknown>) {\n    return transformObjectProperties(object, camelCase);\n};\n\nexport const snakeCaseProperties = function (object: Record<string, unknown>) {\n    return transformObjectProperties(object, underlingSnakeCase);\n};\n\ntype TransformObjectProperties<T> = T extends (infer U)[]\n    ? TransformObjectProperties<U>[]\n    : T extends Record<string, unknown>\n      ? { [K in keyof T]: TransformObjectProperties<T[K]> }\n      : T;\n\nexport function transformObjectProperties<T>(\n    input: T,\n    transform: (string: string) => unknown\n): TransformObjectProperties<T> {\n    if (Array.isArray(input)) {\n        return input.map((item: unknown) =>\n            transformObjectProperties(item, transform)\n        ) as TransformObjectProperties<T>;\n    }\n\n    if (typeof input === 'object' && input !== null) {\n        return Object.fromEntries(\n            Object.entries(input).map(([key, value]) => [\n                transform(key) as keyof T,\n                transformObjectProperties(value, transform),\n            ])\n        ) as TransformObjectProperties<T>;\n    }\n\n    return input as TransformObjectProperties<T>;\n}\n\n/** Reuse lodash's _.snakeCase behavior as it covers most cases, but we want the same behavior as the\n * snakecasing strategy on the server where numbers are not separated from non numbers.\n */\nfunction snakeCase(input: string) {\n    return underlingSnakeCase(input).replace(/_\\d/g, dashNumber => dashNumber.slice(1));\n}\n","import { camelCaseProperties, snakeCaseProperties } from './transformObjectProperties';\n\nexport function parseQueryString(value: string) {\n    const qs = value.split('&').reduce((acc, param) => {\n        const [key, value = ''] = param.split('=');\n\n        return key.length\n            ? {\n                  ...acc,\n                  [key]: decodeURIComponent(value.replace(/\\+/g, ' ')),\n              }\n            : acc;\n    }, {});\n\n    return camelCaseProperties(qs);\n}\n\nexport function toQueryString(obj: Record<string, string | number | boolean>, snakeCase = true) {\n    const params = snakeCase ? snakeCaseProperties(obj) : obj;\n    return Object.entries(params)\n        .filter(([, value]) => value !== null && value !== undefined)\n        .map(([key, value]) =>\n            value !== '' ? `${key}=${encodeURIComponent(value as string)}` : key\n        )\n        .join('&');\n}\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%2265%22%20height%3D%2264%22%20viewBox%3D%220%200%2065%2064%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M28.25%2032C34.8774%2032%2040.25%2026.6274%2040.25%2020C40.25%2013.3726%2034.8774%208%2028.25%208C21.6226%208%2016.25%2013.3726%2016.25%2020C16.25%2026.6274%2021.6226%2032%2028.25%2032Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M60.25%2032C60.2559%2030.3284%2059.8127%2028.6858%2058.9667%2027.244C58.1208%2025.8022%2056.9031%2024.6141%2055.4409%2023.8038C53.9788%2022.9935%2052.3259%2022.5907%2050.6549%2022.6376C48.9839%2022.6845%2047.3561%2023.1794%2045.9418%2024.0704C44.5274%2024.9615%2043.3783%2026.2161%2042.6145%2027.7031C41.8508%2029.19%2041.5004%2030.8549%2041.6%2032.5235C41.6997%2034.1922%2042.2456%2035.8035%2043.1809%2037.1891C44.1161%2038.5746%2045.4064%2039.6836%2046.9167%2040.4V54.6667L50.9167%2058.6667L57.5834%2052L53.5834%2048L57.5834%2044L54.2767%2040.6933C56.0329%2040.0157%2057.5431%2038.8228%2058.6092%2037.2714C59.6752%2035.7199%2060.2472%2033.8824%2060.25%2032ZM50.9167%2032C50.3893%2032%2049.8737%2031.8436%2049.4352%2031.5506C48.9967%2031.2576%2048.6549%2030.8411%2048.453%2030.3538C48.2512%2029.8666%2048.1984%2029.3304%2048.3013%2028.8131C48.4042%2028.2958%2048.6582%2027.8207%2049.0311%2027.4477C49.404%2027.0748%2049.8792%2026.8208%2050.3965%2026.7179C50.9138%2026.615%2051.4499%2026.6678%2051.9372%2026.8697C52.4245%2027.0715%2052.841%2027.4133%2053.134%2027.8518C53.427%2028.2903%2053.5834%2028.8059%2053.5834%2029.3333C53.5834%2030.0406%2053.3024%2030.7189%2052.8023%2031.219C52.3022%2031.7191%2051.624%2032%2050.9167%2032Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M38.7567%2037.3867C36.7089%2036.4737%2034.4921%2036.0012%2032.25%2036H24.25C20.0065%2036%2015.9369%2037.6857%2012.9363%2040.6863C9.93571%2043.6869%208.25%2047.7565%208.25%2052V57.3333H42.9167V42.64C41.1183%2041.2584%2039.6892%2039.4538%2038.7567%2037.3867Z%22%20fill%3D%22black%22%2F%3E%3C%2Fsvg%3E\"","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = assertString;\nfunction assertString(input) {\n  if (input === undefined || input === null) throw new TypeError(\"Expected a string but received a \".concat(input));\n  if (input.constructor.name !== 'String') throw new TypeError(\"Expected a string but received a \".concat(input.constructor.name));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = checkHost;\nfunction isRegExp(obj) {\n  return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nfunction checkHost(host, matches) {\n  for (var i = 0; i < matches.length; i++) {\n    var match = matches[i];\n    if (host === match || isRegExp(match) && match.test(host)) {\n      return true;\n    }\n  }\n  return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isByteLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n  (0, _assertString.default)(str);\n  var min;\n  var max;\n  if (_typeof(options) === 'object') {\n    min = options.min || 0;\n    max = options.max;\n  } else {\n    // backwards compatibility: isByteLength(str, min [, max])\n    min = arguments[1];\n    max = arguments[2];\n  }\n  var len = encodeURI(str).split(/%..|./).length - 1;\n  return len >= min && (typeof max === 'undefined' || len <= max);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = merge;\nfunction merge() {\n  var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var defaults = arguments.length > 1 ? arguments[1] : undefined;\n  for (var key in defaults) {\n    if (typeof obj[key] === 'undefined') {\n      obj[key] = defaults[key];\n    }\n  }\n  return obj;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isFQDN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar default_fqdn_options = {\n  require_tld: true,\n  allow_underscores: false,\n  allow_trailing_dot: false,\n  allow_numeric_tld: false,\n  allow_wildcard: false,\n  ignore_max_length: false\n};\nfunction isFQDN(str, options) {\n  (0, _assertString.default)(str);\n  options = (0, _merge.default)(options, default_fqdn_options);\n\n  /* Remove the optional trailing dot before checking validity */\n  if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n    str = str.substring(0, str.length - 1);\n  }\n\n  /* Remove the optional wildcard before checking validity */\n  if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n    str = str.substring(2);\n  }\n  var parts = str.split('.');\n  var tld = parts[parts.length - 1];\n  if (options.require_tld) {\n    // disallow fqdns without tld\n    if (parts.length < 2) {\n      return false;\n    }\n    if (!options.allow_numeric_tld && !/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n      return false;\n    }\n\n    // disallow spaces\n    if (/\\s/.test(tld)) {\n      return false;\n    }\n  }\n\n  // reject numeric TLDs\n  if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n    return false;\n  }\n  return parts.every(function (part) {\n    if (part.length > 63 && !options.ignore_max_length) {\n      return false;\n    }\n    if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n      return false;\n    }\n\n    // disallow full-width chars\n    if (/[\\uff01-\\uff5e]/.test(part)) {\n      return false;\n    }\n\n    // disallow parts starting or ending with hyphen\n    if (/^-|-$/.test(part)) {\n      return false;\n    }\n    if (!options.allow_underscores && /_/.test(part)) {\n      return false;\n    }\n    return true;\n  });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isIP;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/**\n11.3.  Examples\n\n   The following addresses\n\n             fe80::1234 (on the 1st link of the node)\n             ff02::5678 (on the 5th link of the node)\n             ff08::9abc (on the 10th organization of the node)\n\n   would be represented as follows:\n\n             fe80::1234%1\n             ff02::5678%5\n             ff08::9abc%10\n\n   (Here we assume a natural translation from a zone index to the\n   <zone_id> part, where the Nth zone of any scope is translated into\n   \"N\".)\n\n   If we use interface names as <zone_id>, those addresses could also be\n   represented as follows:\n\n            fe80::1234%ne0\n            ff02::5678%pvc1.3\n            ff08::9abc%interface10\n\n   where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n   to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z.]{1,})?$');\nfunction isIP(ipAddress) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  (0, _assertString.default)(ipAddress);\n\n  // accessing 'arguments' for backwards compatibility: isIP(ipAddress [, version])\n  // eslint-disable-next-line prefer-rest-params\n  var version = (_typeof(options) === 'object' ? options.version : arguments[1]) || '';\n  if (!version) {\n    return isIP(ipAddress, {\n      version: 4\n    }) || isIP(ipAddress, {\n      version: 6\n    });\n  }\n  if (version.toString() === '4') {\n    return IPv4AddressRegExp.test(ipAddress);\n  }\n  if (version.toString() === '6') {\n    return IPv6AddressRegExp.test(ipAddress);\n  }\n  return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isEmail;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _checkHost = _interopRequireDefault(require(\"./util/checkHost\"));\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar default_email_options = {\n  allow_display_name: false,\n  allow_underscores: false,\n  require_display_name: false,\n  allow_utf8_local_part: true,\n  require_tld: true,\n  blacklisted_chars: '',\n  ignore_max_length: false,\n  host_blacklist: [],\n  host_whitelist: []\n};\n\n/* eslint-disable max-len */\n/* eslint-disable no-control-regex */\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)</i;\nvar emailUserPart = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]+$/i;\nvar gmailUserPart = /^[a-z\\d]+$/;\nvar quotedEmailUser = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]))*$/i;\nvar emailUserUtf8Part = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\u00A1-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+$/i;\nvar quotedEmailUserUtf8 = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*$/i;\nvar defaultMaxEmailLength = 254;\n/* eslint-enable max-len */\n/* eslint-enable no-control-regex */\n\n/**\n * Validate display name according to the RFC2822: https://tools.ietf.org/html/rfc2822#appendix-A.1.2\n * @param {String} display_name\n */\nfunction validateDisplayName(display_name) {\n  var display_name_without_quotes = display_name.replace(/^\"(.+)\"$/, '$1');\n  // display name with only spaces is not valid\n  if (!display_name_without_quotes.trim()) {\n    return false;\n  }\n\n  // check whether display name contains illegal character\n  var contains_illegal = /[\\.\";<>]/.test(display_name_without_quotes);\n  if (contains_illegal) {\n    // if contains illegal characters,\n    // must to be enclosed in double-quotes, otherwise it's not a valid display name\n    if (display_name_without_quotes === display_name) {\n      return false;\n    }\n\n    // the quotes in display name must start with character symbol \\\n    var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n    if (!all_start_with_back_slash) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction isEmail(str, options) {\n  (0, _assertString.default)(str);\n  options = (0, _merge.default)(options, default_email_options);\n  if (options.require_display_name || options.allow_display_name) {\n    var display_email = str.match(splitNameAddress);\n    if (display_email) {\n      var display_name = display_email[1];\n\n      // Remove display name and angle brackets to get email address\n      // Can be done in the regex but will introduce a ReDOS (See  #1597 for more info)\n      str = str.replace(display_name, '').replace(/(^<|>$)/g, '');\n\n      // sometimes need to trim the last space to get the display name\n      // because there may be a space between display name and email address\n      // eg. myname <address@gmail.com>\n      // the display name is `myname` instead of `myname `, so need to trim the last space\n      if (display_name.endsWith(' ')) {\n        display_name = display_name.slice(0, -1);\n      }\n      if (!validateDisplayName(display_name)) {\n        return false;\n      }\n    } else if (options.require_display_name) {\n      return false;\n    }\n  }\n  if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n    return false;\n  }\n  var parts = str.split('@');\n  var domain = parts.pop();\n  var lower_domain = domain.toLowerCase();\n  if (options.host_blacklist.length > 0 && (0, _checkHost.default)(lower_domain, options.host_blacklist)) {\n    return false;\n  }\n  if (options.host_whitelist.length > 0 && !(0, _checkHost.default)(lower_domain, options.host_whitelist)) {\n    return false;\n  }\n  var user = parts.join('@');\n  if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n    /*\n    Previously we removed dots for gmail addresses before validating.\n    This was removed because it allows `multiple..dots@gmail.com`\n    to be reported as valid, but it is not.\n    Gmail only normalizes single dots, removing them from here is pointless,\n    should be done in normalizeEmail\n    */\n    user = user.toLowerCase();\n\n    // Removing sub-address from username before gmail validation\n    var username = user.split('+')[0];\n\n    // Dots are not included in gmail length restriction\n    if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n      min: 6,\n      max: 30\n    })) {\n      return false;\n    }\n    var _user_parts = username.split('.');\n    for (var i = 0; i < _user_parts.length; i++) {\n      if (!gmailUserPart.test(_user_parts[i])) {\n        return false;\n      }\n    }\n  }\n  if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n    max: 64\n  }) || !(0, _isByteLength.default)(domain, {\n    max: 254\n  }))) {\n    return false;\n  }\n  if (!(0, _isFQDN.default)(domain, {\n    require_tld: options.require_tld,\n    ignore_max_length: options.ignore_max_length,\n    allow_underscores: options.allow_underscores\n  })) {\n    if (!options.allow_ip_domain) {\n      return false;\n    }\n    if (!(0, _isIP.default)(domain)) {\n      if (!domain.startsWith('[') || !domain.endsWith(']')) {\n        return false;\n      }\n      var noBracketdomain = domain.slice(1, -1);\n      if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n        return false;\n      }\n    }\n  }\n  if (options.blacklisted_chars) {\n    if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n  }\n  if (user[0] === '\"' && user[user.length - 1] === '\"') {\n    user = user.slice(1, user.length - 1);\n    return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n  }\n  var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n  var user_parts = user.split('.');\n  for (var _i = 0; _i < user_parts.length; _i++) {\n    if (!pattern.test(user_parts[_i])) {\n      return false;\n    }\n  }\n  return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isNullOrUndefined;\nfunction isNullOrUndefined(value) {\n  return value === null || value === undefined;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.farsiLocales = exports.englishLocales = exports.dotDecimal = exports.decimal = exports.commaDecimal = exports.bengaliLocales = exports.arabicLocales = exports.alphanumeric = exports.alpha = void 0;\nvar alpha = exports.alpha = {\n  'en-US': /^[A-Z]+$/i,\n  'az-AZ': /^[A-VXYZÇƏĞİıÖŞÜ]+$/i,\n  'bg-BG': /^[А-Я]+$/i,\n  'cs-CZ': /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n  'da-DK': /^[A-ZÆØÅ]+$/i,\n  'de-DE': /^[A-ZÄÖÜß]+$/i,\n  'el-GR': /^[Α-ώ]+$/i,\n  'es-ES': /^[A-ZÁÉÍÑÓÚÜ]+$/i,\n  'fa-IR': /^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i,\n  'fi-FI': /^[A-ZÅÄÖ]+$/i,\n  'fr-FR': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n  'it-IT': /^[A-ZÀÉÈÌÎÓÒÙ]+$/i,\n  'ja-JP': /^[ぁ-んァ-ヶｦ-ﾟ一-龠ー・。、]+$/i,\n  'nb-NO': /^[A-ZÆØÅ]+$/i,\n  'nl-NL': /^[A-ZÁÉËÏÓÖÜÚ]+$/i,\n  'nn-NO': /^[A-ZÆØÅ]+$/i,\n  'hu-HU': /^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n  'pl-PL': /^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n  'pt-PT': /^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n  'ru-RU': /^[А-ЯЁ]+$/i,\n  'kk-KZ': /^[А-ЯЁ\\u04D8\\u04B0\\u0406\\u04A2\\u0492\\u04AE\\u049A\\u04E8\\u04BA]+$/i,\n  'sl-SI': /^[A-ZČĆĐŠŽ]+$/i,\n  'sk-SK': /^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n  'sr-RS@latin': /^[A-ZČĆŽŠĐ]+$/i,\n  'sr-RS': /^[А-ЯЂЈЉЊЋЏ]+$/i,\n  'sv-SE': /^[A-ZÅÄÖ]+$/i,\n  'th-TH': /^[ก-๐\\s]+$/i,\n  'tr-TR': /^[A-ZÇĞİıÖŞÜ]+$/i,\n  'uk-UA': /^[А-ЩЬЮЯЄIЇҐі]+$/i,\n  'vi-VN': /^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n  'ko-KR': /^[ㄱ-ㅎㅏ-ㅣ가-힣]*$/,\n  'ku-IQ': /^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n  ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n  he: /^[א-ת]+$/,\n  fa: /^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i,\n  bn: /^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣৰৱ৲৳৴৵৶৷৸৹৺৻']+$/,\n  eo: /^[ABCĈD-GĜHĤIJĴK-PRSŜTUŬVZ]+$/i,\n  'hi-IN': /^[\\u0900-\\u0961]+[\\u0972-\\u097F]*$/i,\n  'si-LK': /^[\\u0D80-\\u0DFF]+$/,\n  'ta-IN': /^[\\u0B80-\\u0BFF]+$/i,\n  'te-IN': /^[\\u0C00-\\u0C7F]+$/i,\n  'kn-IN': /^[\\u0C80-\\u0CFF]+$/i,\n  'ml-IN': /^[\\u0D00-\\u0D7F]+$/i,\n  'gu-IN': /^[\\u0A80-\\u0AFF]+$/i,\n  'pa-IN': /^[\\u0A00-\\u0A7F]+$/i,\n  'or-IN': /^[\\u0B00-\\u0B7F]+$/i\n};\nvar alphanumeric = exports.alphanumeric = {\n  'en-US': /^[0-9A-Z]+$/i,\n  'az-AZ': /^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,\n  'bg-BG': /^[0-9А-Я]+$/i,\n  'cs-CZ': /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n  'da-DK': /^[0-9A-ZÆØÅ]+$/i,\n  'de-DE': /^[0-9A-ZÄÖÜß]+$/i,\n  'el-GR': /^[0-9Α-ω]+$/i,\n  'es-ES': /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,\n  'fi-FI': /^[0-9A-ZÅÄÖ]+$/i,\n  'fr-FR': /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n  'it-IT': /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,\n  'ja-JP': /^[0-9０-９ぁ-んァ-ヶｦ-ﾟ一-龠ー・。、]+$/i,\n  'hu-HU': /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n  'nb-NO': /^[0-9A-ZÆØÅ]+$/i,\n  'nl-NL': /^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,\n  'nn-NO': /^[0-9A-ZÆØÅ]+$/i,\n  'pl-PL': /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n  'pt-PT': /^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n  'ru-RU': /^[0-9А-ЯЁ]+$/i,\n  'kk-KZ': /^[0-9А-ЯЁ\\u04D8\\u04B0\\u0406\\u04A2\\u0492\\u04AE\\u049A\\u04E8\\u04BA]+$/i,\n  'sl-SI': /^[0-9A-ZČĆĐŠŽ]+$/i,\n  'sk-SK': /^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n  'sr-RS@latin': /^[0-9A-ZČĆŽŠĐ]+$/i,\n  'sr-RS': /^[0-9А-ЯЂЈЉЊЋЏ]+$/i,\n  'sv-SE': /^[0-9A-ZÅÄÖ]+$/i,\n  'th-TH': /^[ก-๙\\s]+$/i,\n  'tr-TR': /^[0-9A-ZÇĞİıÖŞÜ]+$/i,\n  'uk-UA': /^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,\n  'ko-KR': /^[0-9ㄱ-ㅎㅏ-ㅣ가-힣]*$/,\n  'ku-IQ': /^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n  'vi-VN': /^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n  ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n  he: /^[0-9א-ת]+$/,\n  fa: /^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i,\n  bn: /^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣ০১২৩৪৫৬৭৮৯ৰৱ৲৳৴৵৶৷৸৹৺৻']+$/,\n  eo: /^[0-9ABCĈD-GĜHĤIJĴK-PRSŜTUŬVZ]+$/i,\n  'hi-IN': /^[\\u0900-\\u0963]+[\\u0966-\\u097F]*$/i,\n  'si-LK': /^[0-9\\u0D80-\\u0DFF]+$/,\n  'ta-IN': /^[0-9\\u0B80-\\u0BFF.]+$/i,\n  'te-IN': /^[0-9\\u0C00-\\u0C7F.]+$/i,\n  'kn-IN': /^[0-9\\u0C80-\\u0CFF.]+$/i,\n  'ml-IN': /^[0-9\\u0D00-\\u0D7F.]+$/i,\n  'gu-IN': /^[0-9\\u0A80-\\u0AFF.]+$/i,\n  'pa-IN': /^[0-9\\u0A00-\\u0A7F.]+$/i,\n  'or-IN': /^[0-9\\u0B00-\\u0B7F.]+$/i\n};\nvar decimal = exports.decimal = {\n  'en-US': '.',\n  ar: '٫'\n};\nvar englishLocales = exports.englishLocales = ['AU', 'GB', 'HK', 'IN', 'NZ', 'ZA', 'ZM'];\nfor (var locale, i = 0; i < englishLocales.length; i++) {\n  locale = \"en-\".concat(englishLocales[i]);\n  alpha[locale] = alpha['en-US'];\n  alphanumeric[locale] = alphanumeric['en-US'];\n  decimal[locale] = decimal['en-US'];\n}\n\n// Source: http://www.localeplanet.com/java/\nvar arabicLocales = exports.arabicLocales = ['AE', 'BH', 'DZ', 'EG', 'IQ', 'JO', 'KW', 'LB', 'LY', 'MA', 'QM', 'QA', 'SA', 'SD', 'SY', 'TN', 'YE'];\nfor (var _locale, _i = 0; _i < arabicLocales.length; _i++) {\n  _locale = \"ar-\".concat(arabicLocales[_i]);\n  alpha[_locale] = alpha.ar;\n  alphanumeric[_locale] = alphanumeric.ar;\n  decimal[_locale] = decimal.ar;\n}\nvar farsiLocales = exports.farsiLocales = ['IR', 'AF'];\nfor (var _locale2, _i2 = 0; _i2 < farsiLocales.length; _i2++) {\n  _locale2 = \"fa-\".concat(farsiLocales[_i2]);\n  alphanumeric[_locale2] = alphanumeric.fa;\n  decimal[_locale2] = decimal.ar;\n}\nvar bengaliLocales = exports.bengaliLocales = ['BD', 'IN'];\nfor (var _locale3, _i3 = 0; _i3 < bengaliLocales.length; _i3++) {\n  _locale3 = \"bn-\".concat(bengaliLocales[_i3]);\n  alpha[_locale3] = alpha.bn;\n  alphanumeric[_locale3] = alphanumeric.bn;\n  decimal[_locale3] = decimal['en-US'];\n}\n\n// Source: https://en.wikipedia.org/wiki/Decimal_mark\nvar dotDecimal = exports.dotDecimal = ['ar-EG', 'ar-LB', 'ar-LY'];\nvar commaDecimal = exports.commaDecimal = ['bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-ZM', 'eo', 'es-ES', 'fr-CA', 'fr-FR', 'gu-IN', 'hi-IN', 'hu-HU', 'id-ID', 'it-IT', 'kk-KZ', 'kn-IN', 'ku-IQ', 'ml-IN', 'nb-NO', 'nl-NL', 'nn-NO', 'or-IN', 'pa-IN', 'pl-PL', 'pt-PT', 'ru-RU', 'si-LK', 'sl-SI', 'sr-RS', 'sr-RS@latin', 'sv-SE', 'ta-IN', 'te-IN', 'tr-TR', 'uk-UA', 'vi-VN'];\nfor (var _i4 = 0; _i4 < dotDecimal.length; _i4++) {\n  decimal[dotDecimal[_i4]] = decimal['en-US'];\n}\nfor (var _i5 = 0; _i5 < commaDecimal.length; _i5++) {\n  decimal[commaDecimal[_i5]] = ',';\n}\nalpha['fr-CA'] = alpha['fr-FR'];\nalphanumeric['fr-CA'] = alphanumeric['fr-FR'];\nalpha['pt-BR'] = alpha['pt-PT'];\nalphanumeric['pt-BR'] = alphanumeric['pt-PT'];\ndecimal['pt-BR'] = decimal['pt-PT'];\n\n// see #862\nalpha['pl-Pl'] = alpha['pl-PL'];\nalphanumeric['pl-Pl'] = alphanumeric['pl-PL'];\ndecimal['pl-Pl'] = decimal['pl-PL'];\n\n// see #1455\nalpha['fa-AF'] = alpha.fa;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isFloat;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _nullUndefinedCheck = _interopRequireDefault(require(\"./util/nullUndefinedCheck\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction isFloat(str, options) {\n  (0, _assertString.default)(str);\n  options = options || {};\n  var float = new RegExp(\"^(?:[-+])?(?:[0-9]+)?(?:\\\\\".concat(options.locale ? _alpha.decimal[options.locale] : '.', \"[0-9]*)?(?:[eE][\\\\+\\\\-]?(?:[0-9]+))?$\"));\n  if (str === '' || str === '.' || str === ',' || str === '-' || str === '+') {\n    return false;\n  }\n  var value = parseFloat(str.replace(',', '.'));\n  return float.test(str) && (!options.hasOwnProperty('min') || (0, _nullUndefinedCheck.default)(options.min) || value >= options.min) && (!options.hasOwnProperty('max') || (0, _nullUndefinedCheck.default)(options.max) || value <= options.max) && (!options.hasOwnProperty('lt') || (0, _nullUndefinedCheck.default)(options.lt) || value < options.lt) && (!options.hasOwnProperty('gt') || (0, _nullUndefinedCheck.default)(options.gt) || value > options.gt);\n}\nvar locales = exports.locales = Object.keys(_alpha.decimal);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isInt;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _nullUndefinedCheck = _interopRequireDefault(require(\"./util/nullUndefinedCheck\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/;\nvar intLeadingZeroes = /^[-+]?[0-9]+$/;\nfunction isInt(str, options) {\n  (0, _assertString.default)(str);\n  options = options || {};\n\n  // Get the regex to use for testing, based on whether\n  // leading zeroes are allowed or not.\n  var regex = options.allow_leading_zeroes === false ? int : intLeadingZeroes;\n\n  // Check min/max/lt/gt\n  var minCheckPassed = !options.hasOwnProperty('min') || (0, _nullUndefinedCheck.default)(options.min) || str >= options.min;\n  var maxCheckPassed = !options.hasOwnProperty('max') || (0, _nullUndefinedCheck.default)(options.max) || str <= options.max;\n  var ltCheckPassed = !options.hasOwnProperty('lt') || (0, _nullUndefinedCheck.default)(options.lt) || str < options.lt;\n  var gtCheckPassed = !options.hasOwnProperty('gt') || (0, _nullUndefinedCheck.default)(options.gt) || str > options.gt;\n  return regex.test(str) && minCheckPassed && maxCheckPassed && ltCheckPassed && gtCheckPassed;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { TFunction } from 'i18next';\nimport isEmail from 'validator/lib/isEmail';\nimport isFloat from 'validator/lib/isFloat';\nimport isInt from 'validator/lib/isInt';\n\nimport { isValued } from '../helpers/utils';\n\nexport class CompoundValidator<T, C = unknown> {\n    current: Validator<T, C> | CompoundValidator<T, C>;\n    next: Validator<T, C> | CompoundValidator<T, C>;\n\n    constructor(\n        current: Validator<T, C> | CompoundValidator<T, C>,\n        next: Validator<T, C> | CompoundValidator<T, C>\n    ) {\n        this.current = current;\n        this.next = next;\n    }\n\n    create(i18n: TFunction): ValidatorInstance<T, C> {\n        const current = this.current.create(i18n);\n        const next = this.next.create(i18n);\n\n        return async (value: T, ctx: C) => {\n            const currentValidation = await current(value, ctx);\n            if (isValidatorError(currentValidation)) return currentValidation;\n            const { valid, ...extra } = currentValidation;\n            return { ...extra, ...(await next(value, ctx)) };\n        };\n    }\n\n    and(validator: Validator<T, C> | CompoundValidator<T, C>) {\n        return new CompoundValidator(this, validator);\n    }\n}\n\nexport type ValidatorError<Extra = {}> = { valid: false; error?: string } & Extra;\nexport type ValidatorSuccess<Extra = {}> = { valid: true } & Extra;\n\nexport type ValidatorResult<Extra = {}> = ValidatorError<Extra> | ValidatorSuccess<Extra>;\n\nexport type ValidatorInstance<T, C, Extra = {}> = (\n    value: T,\n    ctx: C\n) => Promise<ValidatorResult<Extra>>;\n\ntype RuleResult<E = {}> = boolean | ValidatorSuccess<E> | ValidatorError<E>;\n\nexport type Rule<T, C, E = {}> = (value: T, ctx: C) => RuleResult<E> | Promise<RuleResult<E>>;\n\nexport type Hint<T> = (value: T) => string | undefined;\n\nexport function isValidatorError<E = {}>(result: ValidatorResult<E>): result is ValidatorError<E> {\n    return result.valid === false;\n}\n\nexport function isValidatorSuccess<E = {}>(\n    result: ValidatorResult<E>\n): result is ValidatorSuccess<E> {\n    return result.valid === true;\n}\n\nexport interface ValidatorOptions<T, C, E = {}> {\n    rule: Rule<T, C, E>;\n    hint?: Hint<T> | string;\n    parameters?: Record<string, unknown>;\n}\n\nexport class Validator<T, C = unknown, E = {}> {\n    rule: Rule<T, C, E>;\n    hint: Hint<T>;\n    parameters: Record<string, unknown>;\n\n    constructor({ rule, hint, parameters = {} }: ValidatorOptions<T, C, E>) {\n        this.rule = rule;\n        this.hint = typeof hint !== 'function' ? () => hint : hint;\n        this.parameters = parameters;\n    }\n\n    create(i18n: TFunction): ValidatorInstance<T, C, E> {\n        const errorMessage = (value: T) => i18n(`validation.${this.hint(value)}`, this.parameters);\n        return async (value: T, ctx: C) => {\n            const res = this.rule(value, ctx);\n            const result = await (res instanceof Promise ? res : Promise.resolve(res));\n            return typeof result === 'boolean'\n                ? result\n                    ? { valid: true }\n                    : { valid: false, error: errorMessage(value) }\n                : isValidatorError(result)\n                  ? { ...result, error: errorMessage(value) }\n                  : result;\n        };\n    }\n\n    and(validator: Validator<T, C> | CompoundValidator<T, C>) {\n        return new CompoundValidator(this, validator);\n    }\n}\n\nexport const empty = new Validator<unknown, unknown>({\n    rule: <T>(_value: T) => true,\n});\n\nexport const required = new Validator<unknown, unknown>({\n    rule: <T>(value: T | undefined) => isValued(value),\n    hint: 'required',\n});\n\nexport const checked = new Validator<boolean | string, unknown>({\n    rule: value => (typeof value === 'boolean' ? value === true : value.toLowerCase() === 'true'),\n    hint: 'checked',\n});\n\nexport const email = new Validator<string, unknown>({\n    rule: value => isEmail(value),\n    hint: 'email',\n});\n\nexport const integer = new Validator<string, unknown>({\n    rule: value => isInt(value),\n    hint: 'integer',\n});\n\nexport const float = new Validator<string, unknown>({\n    rule: value => isFloat(value),\n    hint: 'float',\n});\n","export function getValue<T extends Record<string, unknown>>(\n    object: T = {} as T,\n    path: string\n): unknown {\n    return path.split('.').reduce<unknown>((acc, field) => {\n        if (acc && typeof acc === 'object' && field in acc) {\n            return (acc as Record<string, unknown>)[field];\n        }\n    }, object);\n}\n\nfunction _setValueR<T extends Record<string, unknown>, V>(\n    object: T = {} as T,\n    path: string[],\n    index: number,\n    value: V\n): T | V {\n    // Si on a atteint la fin du chemin, on retourne la valeur\n    if (index === path.length) {\n        return value;\n    }\n\n    const key = path[index];\n    const currentValue = object[key];\n\n    // Si la clé est un nombre, on traite comme un tableau\n    if (!isNaN(Number(key))) {\n        const array = Array.isArray(object) ? object : [];\n        array[Number(key)] = _setValueR((array[Number(key)] ?? {}) as T, path, index + 1, value);\n        return array as unknown as T;\n    }\n\n    // Sinon on traite comme un objet\n    return {\n        ...object,\n        [key]: _setValueR((currentValue ?? {}) as T, path, index + 1, value),\n    };\n}\n\n/**\n * @example\n * setValue({}, 'a', 2) => { a: 2 }\n * setValue({ a: 1 }, 'a', 2) => { a: 2 }\n * setValue({ a: 1 }, 'b', 2) => { a: 1, b: 2 }\n * setValue({ a: 1 }, 'b.c', 2) => { a: 1, b: { c: 2 } }\n * setValue({ a: { b: { c: 1 } } }, 'a.b.c', 2) => { a: { b: { c: 2 } } }\n * setValue({ a: { b: { c: 1 } } }, 'a.b.d', 2) => { a: { b: { c: 1, d: 2 } } }\n * setValue({ a: 1 }, 'b.0.c', 2) => { a: 1, b: [{ c: 2 }] }\n * setValue({ a: 1, b: [{ c: 1 }] }, 'b.0.c', 2) => { a: 1, b: [{ c: 2 }] }\n * setValue({ a: 1, b: [{ c: 1 }] }, 'b.0.b', 2) => { a: 1, b: [{ c: 1, d: 2 }] }\n * setValue({ a: 1, b: [{ c: 1 }] }, 'b.1.d', 2) => { a: 1, b: [{ c: 1 }, { d: 2 }] }\n */\nexport function setValue<T extends Record<string, unknown>, V>(\n    object: T = {} as T,\n    path: string,\n    value: V\n) {\n    return _setValueR(object, path.split('.'), 0, value);\n}\n","import { ProfileAddress } from '@reachfive/identity-core';\n\nimport { getValue, setValue } from '../helpers/propertyHelpers';\n\nexport interface PathMapping {\n    bind<T extends Record<string, unknown>>(model: T): unknown;\n    unbind<T extends Record<string, unknown>, V>(model: T, value: V): T | V;\n}\n\nexport class DefaultPathMapping implements PathMapping {\n    protected readonly modelPath: string;\n\n    constructor(modelPath: string) {\n        this.modelPath = modelPath;\n    }\n\n    bind<T extends Record<string, unknown>>(model: T) {\n        return getValue(model, this.modelPath);\n    }\n\n    unbind<T extends Record<string, unknown>, V>(model: T, value: V) {\n        return setValue(model, this.modelPath, value);\n    }\n}\n\nexport class AddressPathMapping implements PathMapping {\n    protected readonly property: string;\n\n    constructor(property: string) {\n        this.property = property;\n    }\n\n    private defaultIndex(model: { addresses?: ProfileAddress[] }) {\n        const defaultIndex = (model.addresses ?? []).findIndex(address => address.isDefault);\n        return defaultIndex > -1 ? defaultIndex : 0;\n    }\n\n    bind<T extends { addresses?: ProfileAddress[] }>(model: T) {\n        return getValue(model, `addresses.${this.defaultIndex(model)}.${this.property}`);\n    }\n\n    unbind<T extends { addresses?: ProfileAddress[] }, V>(model: T, value: V) {\n        return setValue(model, `addresses.${this.defaultIndex(model)}.${this.property}`, value);\n    }\n}\n","export function randomString({\n    length = 8,\n    charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',\n} = {}) {\n    return Array.from({ length }, (_, index) => index)\n        .map(() => charset.charAt(Math.floor(Math.random() * charset.length)))\n        .join('');\n}\n","import { randomString } from './random';\n\nexport default function generateId(key: string) {\n    return process.env.NODE_ENV !== 'test'\n        ? randomString({\n              length: 6,\n              charset: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',\n          })\n        : key;\n}\n","import React, { type ComponentType } from 'react';\n\nimport { TFunction } from 'i18next';\n\nimport { DefaultPathMapping, type PathMapping } from '../../core/mapping';\nimport {\n    empty as emptyRule,\n    isValidatorSuccess,\n    required as requiredRule,\n    type CompoundValidator,\n    type Validator,\n    type ValidatorResult,\n    type ValidatorSuccess,\n} from '../../core/validation';\nimport generateId from '../../helpers/inputIdGenerator';\nimport { camelCasePath } from '../../helpers/transformObjectProperties';\nimport { isRichFormValue, isValued, type FormValue } from '../../helpers/utils';\n\nimport type { WithI18n } from '../../contexts/i18n';\nimport type { FormContext } from './formComponent';\n\ninterface FieldCreateProps {\n    showLabel: boolean;\n}\n\nexport interface FieldCreator<\n    T,\n    P = {},\n    E extends Record<string, unknown> = {},\n    K extends string = 'raw',\n> {\n    key: string;\n    path: string;\n    create: (options: WithI18n<FieldCreateProps>) => Field<T, P, E, K>;\n}\n\nexport interface Field<\n    T,\n    P = {},\n    E extends Record<string, unknown> = {},\n    K extends string = 'raw',\n> {\n    key: string;\n    render: (\n        props: Partial<P> &\n            Partial<FieldComponentProps<T, {}, E, K>> & { state: FieldValue<T, K, E> }\n    ) => React.ReactNode;\n    initialize: <M extends Record<PropertyKey, unknown>>(model: Partial<M>) => FieldValue<T, K>;\n    unbind: <M extends Record<PropertyKey, unknown>>(model: M, state: FieldValue<T, K, E>) => M;\n    validate: (data: FieldValue<T, K, E>, ctx: FormContext<unknown>) => Promise<ValidatorResult>;\n}\n\nexport type FieldValue<T, K extends string = 'raw', E extends Record<string, unknown> = {}> = E & {\n    value?: FormValue<T, K>;\n    isDirty?: boolean;\n    validation?: ValidatorResult;\n};\n\nexport type FieldComponentProps<\n    T,\n    P = {},\n    E extends Record<string, unknown> = {},\n    K extends string = 'raw',\n> = P & {\n    inputId: string;\n    key: string;\n    path: string;\n    label: string;\n    onChange: (value: FieldValue<T, K, E>) => void;\n    placeholder?: string;\n    autoComplete?: AutoFill;\n    rawProperty?: K;\n    required?: boolean;\n    readOnly?: boolean;\n    i18n: TFunction;\n    showLabel?: boolean;\n    value?: FormValue<T, K>;\n    validation?: ValidatorResult<E>;\n};\n\nexport interface Formatter<T, F, K extends string> {\n    bind: (value?: T) => FormValue<F, K> | undefined;\n    unbind: (value?: FormValue<F, K>) => T | null | undefined;\n}\n\nexport type FieldDefinition<T, F = T, K extends string = 'raw'> = {\n    key: string;\n    path?: string;\n    label: string;\n    required?: boolean;\n    readOnly?: boolean;\n    autoComplete?: AutoFill;\n    defaultValue?: T;\n    format?: Formatter<T, F, K>;\n    validator?: Validator<F, unknown> | CompoundValidator<F, unknown>;\n    mapping?: PathMapping;\n};\n\nexport interface FieldProps<\n    T,\n    F,\n    P extends FieldComponentProps<F, ExtraParams, E, K>,\n    ExtraParams extends Record<string, unknown> = {},\n    K extends string = 'raw',\n    E extends Record<string, unknown> = {},\n> extends FieldDefinition<T, F, K> {\n    label: string;\n    mapping?: PathMapping;\n    format?: Formatter<T, F, K>;\n    rawProperty?: K;\n    component: ComponentType<P>;\n    extendedParams?: ExtraParams | ((i18n: TFunction) => ExtraParams);\n}\n\nexport function createField<\n    T,\n    F,\n    P extends FieldComponentProps<F, ExtraParams, E, K>,\n    ExtraParams extends Record<string, unknown> = {},\n    K extends string = 'raw',\n    E extends Record<string, unknown> = {},\n>({\n    key,\n    path = key,\n    label,\n    defaultValue,\n    required = true,\n    readOnly = false,\n    autoComplete,\n    validator = emptyRule,\n    mapping = new DefaultPathMapping(camelCasePath(path)),\n    format = {\n        bind: x => (isValued(x) ? (x as F) : undefined),\n        unbind: x =>\n            isValued(x) && isRichFormValue(x, rawProperty) ? (x[rawProperty] as T) : (x as T),\n    },\n    rawProperty = 'raw' as K,\n    component: Component,\n    extendedParams = {} as ExtraParams,\n}: FieldProps<T, F, P, ExtraParams, K, E>): FieldCreator<F, P, E, K> {\n    return {\n        key,\n        path: path,\n        create: ({ i18n, showLabel }: WithI18n<FieldCreateProps>): Field<F, P, E, K> => {\n            const extParams =\n                typeof extendedParams === 'function' ? extendedParams(i18n) : extendedParams;\n            const staticProps: Partial<FieldComponentProps<F, {}, E, K>> = {\n                inputId: generateId(key),\n                key,\n                path: key,\n                label: i18n(label),\n                required,\n                readOnly,\n                autoComplete,\n                i18n,\n                showLabel,\n                ...extParams,\n            };\n\n            return {\n                key,\n                render: ({\n                    state: { value, validation },\n                    ...props\n                }: Partial<P> & { state: FieldValue<F, K, E> }) => (\n                    <Component\n                        value={value}\n                        validation={validation}\n                        {...({ ...(staticProps as P), ...props } as P)}\n                    />\n                ),\n                initialize: <M extends Record<PropertyKey, unknown>>(\n                    model: M\n                ): FieldValue<F, K> => {\n                    const modelValue = mapping.bind<M>(model) as T;\n                    const initValue = isValued(modelValue, rawProperty) ? modelValue : defaultValue;\n                    return {\n                        value: format.bind(initValue),\n                        isDirty: false,\n                    };\n                },\n                unbind: <M extends Record<PropertyKey, unknown>>(\n                    model: M,\n                    { value }: FieldValue<F, K, E>\n                ): M => mapping.unbind(model, format.unbind(value)) as M,\n                validate: async (\n                    { value: formValue }: FieldValue<F, K, E>,\n                    ctx: FormContext<unknown>\n                ): Promise<ValidatorResult<E>> => {\n                    const value = isRichFormValue(formValue, rawProperty)\n                        ? formValue[rawProperty]\n                        : formValue;\n                    const requireValidation = required\n                        ? await requiredRule.create(i18n)(value, ctx)\n                        : ({ valid: true } as ValidatorSuccess<E>);\n                    return isValidatorSuccess(requireValidation) && isValued(value)\n                        ? await validator.create(i18n)(value, ctx)\n                        : requireValidation;\n                },\n            };\n        },\n    };\n}\n","import React, { PropsWithChildren, ReactNode } from 'react';\n\nimport styled, { css, keyframes } from 'styled-components';\n\nconst errorFadeIn = keyframes`\n  0% { opacity: 0; }\n  100% { opacity: 1; }\n`;\n\nexport const FormError = styled.div`\n    padding-top: 3px;\n    animation: ${errorFadeIn} 0.3s both;\n    color: ${props => props.theme.dangerColor};\n`;\n\ntype Visibility = { visible?: boolean };\n\nexport const Label = styled.label.withConfig({\n    shouldForwardProp: prop => !['visible'].includes(prop),\n})<Visibility>`\n    color: ${props => props.theme.textColor};\n    margin-bottom: ${props => props.theme.spacing / 2}px;\n    display: ${props => (props.visible ? 'inline-block' : 'none')};\n`;\n\nexport const TextDanger = styled.span`\n    color: ${props => props.theme.dangerColor};\n`;\n\nexport const FormGroupContainer = styled.div<{ required?: boolean }>`\n    margin-bottom: ${props => props.theme.spacing}px;\n    ${({ required, theme }) =>\n        required &&\n        `\n        & > label::after {\n            content: \"\\\\A0*\";\n            color: ${theme.dangerColor};\n        }\n    `}\n`;\n\ninterface FormGroupProps {\n    inputId: string;\n    labelText: string;\n    showLabel?: boolean;\n    error?: string;\n    required?: boolean;\n}\n\nexport const FormGroup = ({\n    inputId,\n    labelText,\n    showLabel,\n    error,\n    required,\n    children,\n}: PropsWithChildren<FormGroupProps>) => (\n    <FormGroupContainer required={required}>\n        <Label visible={showLabel} htmlFor={inputId}>\n            {labelText}\n        </Label>\n        {children}\n        {error && <FormError data-testid=\"form-error\">{error}</FormError>}\n    </FormGroupContainer>\n);\n\nconst Inline = styled.div`\n    display: flex;\n    flex-direction: row;\n    row-gap: ${props => props.theme.spacing}px;\n    column-gap: ${props => 2 * props.theme.spacing}px;\n    align-items: center;\n    justify-content: flex-start;\n    flex-wrap: wrap;\n`;\n\nconst inputMixin = css<{ hasError?: boolean }>`\n    display: block;\n    width: 100%;\n    box-sizing: border-box;\n    font-size: ${props => props.theme.input.fontSize}px;\n    line-height: ${props => props.theme.input.lineHeight};\n    color: ${props => (props.hasError ? props.theme.dangerColor : props.theme.input.color)};\n    border-radius: ${props => props.theme.input.borderRadius}px;\n    border-width: ${props => props.theme.input.borderWidth}px;\n    border-style: solid;\n    border-color: ${props =>\n        props.hasError ? props.theme.dangerColor : props.theme.input.borderColor};\n    background-color: ${props => props.theme.input.background};\n    background-image: none;\n    padding: ${props => props.theme.input.paddingY}px ${props => props.theme.input.paddingX}px;\n    transition:\n        border-color ease-in-out 0.15s,\n        box-shadow ease-in-out 0.15s;\n    box-shadow: ${props => props.theme.input.boxShadow};\n    appearance: none;\n\n    &:focus {\n        border-color: ${props =>\n            props.hasError ? props.theme.dangerColor : props.theme.input.focusBorderColor};\n        box-shadow: ${props =>\n            props.theme.input.focusBoxShadow(\n                props.hasError ? props.theme.dangerColor : props.theme.input.focusBorderColor\n            )};\n        outline: 0;\n    }\n\n    &:disabled,\n    &[readonly] {\n        background-color: ${props => props.theme.input.disabledBackground};\n    }\n\n    &::placeholder {\n        color: ${props => props.theme.input.placeholderColor};\n    }\n`;\n\ntype HasError = { hasError: boolean };\n\nexport const Input = styled.input.withConfig({\n    shouldForwardProp: prop => !['hasError'].includes(prop),\n})<HasError>`\n    ${inputMixin}\n`;\n\ninterface Option {\n    label: string;\n    value: string;\n}\n\nexport interface SelectProps extends React.SelectHTMLAttributes<HTMLSelectElement> {\n    hasError?: boolean;\n    options: Option[];\n    placeholder?: string;\n}\n\nexport const Select = styled(\n    ({ hasError: _hasError, options, placeholder = '', ...props }: SelectProps) => (\n        <select {...props}>\n            <option value=\"\" disabled>\n                {placeholder}\n            </option>\n            {options.map(({ label: optionLabel, value: optionValue }) => (\n                <option value={optionValue} key={optionValue}>\n                    {optionLabel}\n                </option>\n            ))}\n        </select>\n    )\n)`\n    ${inputMixin}\n    appearance: none;\n    background-image:\n        linear-gradient(45deg, transparent 50%, gray 50%),\n        linear-gradient(135deg, gray 50%, transparent 50%);\n    background-position:\n        calc(100% - 17px) ${props => props.theme.input.height / 2 - 3}px,\n        calc(100% - 12px) ${props => props.theme.input.height / 2 - 3}px;\n    background-size:\n        5px 5px,\n        5px 5px;\n    background-repeat: no-repeat;\n    text-transform: none;\n    &:required:invalid {\n        color: ${props => props.theme.mutedTextColor};\n    }\n`;\n\ninterface CheckProps extends React.InputHTMLAttributes<HTMLInputElement> {\n    label?: ReactNode;\n    value?: string | number;\n    radio?: boolean;\n}\n\nexport const Check = styled(function Check({\n    onSelect,\n    label,\n    radio,\n    className,\n    ...props\n}: CheckProps) {\n    return (\n        <label className={className}>\n            <input\n                type={radio ? 'radio' : 'checkbox'}\n                onChange={onSelect}\n                style={radio ? { appearance: 'radio' } : undefined}\n                {...props}\n            />\n            {label}\n        </label>\n    );\n})`\n    display: flex;\n    align-items: center;\n    // margin-bottom: ${props => props.theme.spacing}px;\n    cursor: pointer;\n    font-weight: normal;\n    & > input {\n        margin-right: 1ch;\n    }\n    ${({ required, theme }) =>\n        required &&\n        `\n        &::after {\n            content: \"\\\\A0*\";\n            color: ${theme.dangerColor};\n        }\n    `}\n`;\n\ninterface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {\n    error?: ReactNode;\n    label?: ReactNode;\n    onToggle?: () => void;\n    radio?: boolean;\n}\n\nexport const Checkbox = styled(function Checkbox({\n    value,\n    onToggle,\n    label,\n    name,\n    className,\n    error,\n    required,\n    ...props\n}: CheckboxProps) {\n    return (\n        <div className={className}>\n            <Check\n                checked={!!value}\n                onSelect={onToggle}\n                label={label}\n                name={name}\n                required={required}\n                {...props}\n            />\n            {error && <FormError>{error}</FormError>}\n        </div>\n    );\n})`\n    margin-bottom: ${props => props.theme.spacing}px;\n`;\n\nexport interface RadioGroupProps extends FormGroupProps {\n    options: CheckProps[];\n    onChange: (event: { value: HTMLInputElement['value'] }) => void;\n    value?: HTMLInputElement['value'];\n}\n\nexport const RadioGroup = ({ options, onChange, value, inputId, ...props }: RadioGroupProps) => {\n    const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n        onChange({ value: event.target.value });\n    };\n    return (\n        <FormGroup inputId={inputId} {...props}>\n            <Inline>\n                {options.map(({ label: optionLabel, value: optionValue }) => (\n                    <Check\n                        key={optionValue}\n                        checked={value === optionValue}\n                        onSelect={handleChange}\n                        label={optionLabel}\n                        name={String(optionValue)}\n                        value={optionValue}\n                        radio\n                    />\n                ))}\n            </Inline>\n        </FormGroup>\n    );\n};\nexport const UserAgreementStyle = styled.div`\n    font-size: ${props => props.theme.fontSize * 0.8}px;\n    color: ${props => props.theme.mutedTextColor};\n    text-align: center;\n    margin-bottom: ${props => props.theme.spacing}px;\n\n    p {\n        margin: 0;\n    }\n\n    a {\n        color: ${props => props.theme.mutedTextColor};\n        text-decoration: underline;\n    }\n\n    a:hover {\n        color: ${props => props.theme.mutedTextColor};\n    }\n`;\n","import React from 'react';\n\nimport styled from 'styled-components';\n\nimport { PasswordStrengthScore } from '@reachfive/identity-core';\n\nimport { useI18n } from '../../../contexts/i18n';\nimport { Label } from '../formControlsComponent';\n\ninterface RoundCheckboxProps {\n    checked?: boolean;\n    className?: string;\n}\n\nconst RoundCheckbox = styled(({ className, ...props }: RoundCheckboxProps) => (\n    <div className={className}>\n        <input type=\"checkbox\" checked={props.checked} onChange={() => {}} />\n        <label />\n    </div>\n))`\n    display: flex;\n    align-items: center;\n    position: relative;\n\n    > label {\n        position: absolute;\n        top: 0;\n        left: 0;\n        height: 15px;\n        width: 15px;\n        background-color: ${props => props.theme.input.background};\n        border: 1px solid ${props => props.theme.input.borderColor};\n        border-radius: 50%;\n    }\n\n    > label:after {\n        position: absolute;\n        top: 4px;\n        left: 3px;\n        height: 3px;\n        width: 7px;\n        border: 1px solid ${props => props.theme.input.color};\n        border-top: none;\n        border-right: none;\n        content: '';\n        opacity: 0;\n        transform: rotate(-45deg);\n    }\n\n    > input[type='checkbox'] {\n        visibility: hidden;\n    }\n\n    > input[type='checkbox']:checked + label {\n        background-color: ${props => props.theme.primaryColor};\n        border-color: ${props => props.theme.primaryColor};\n    }\n\n    > input[type='checkbox']:checked + label:after {\n        opacity: 1;\n        border-color: ${props => props.theme.backgroundColor};\n    }\n\n    + label {\n        line-height: 1;\n    }\n`;\n\nconst PasswordPolicyRule = styled.div`\n    display: flex;\n    align-items: center;\n    gap: ${props => props.theme.spacing}px;\n    margin-bottom: 2px;\n`;\n\ninterface PasswordPolicyIntroProps {\n    className?: string;\n}\n\nconst PasswordPolicyIntro = styled(({ className }: PasswordPolicyIntroProps) => {\n    const i18n = useI18n();\n    return (\n        <Label className={className} visible>\n            {i18n('validation.password.must.contain')}\n        </Label>\n    );\n})`\n    margin-bottom: ${props => props.theme.spacing}px;\n`;\n\nexport interface PasswordRule {\n    label: string;\n    verify: (value: string) => boolean;\n}\n\ninterface PasswordPolicyRulesProps {\n    className?: string;\n    minStrength: PasswordStrengthScore;\n    rules: Record<string, PasswordRule>;\n    strength: PasswordStrengthScore;\n    value: string;\n}\n\nexport const PasswordPolicyRules = styled(({ className, ...props }: PasswordPolicyRulesProps) => {\n    const i18n = useI18n();\n    return (\n        <div className={className} data-testid=\"password-policy-rules\">\n            {props.minStrength !== 0 && (\n                <PasswordPolicyRule>\n                    <RoundCheckbox checked={props.strength >= props.minStrength} />\n                    <Label visible>\n                        {i18n('passwordStrength.minimum.required')}{' '}\n                        {i18n(`passwordStrength.score${props.minStrength}`).toLowerCase()}.\n                    </Label>\n                </PasswordPolicyRule>\n            )}\n\n            <PasswordPolicyIntro />\n\n            {Object.keys(props.rules).map(key => {\n                const rule = props.rules[key];\n\n                return (\n                    <PasswordPolicyRule key={key}>\n                        <RoundCheckbox checked={rule.verify(props.value)} />\n                        <Label visible>{rule.label}</Label>\n                    </PasswordPolicyRule>\n                );\n            })}\n        </div>\n    );\n})`\n    margin-top: ${props => props.theme.spacing}px;\n`;\n","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20576%20512%22%3E%3Cpath%20d%3D%22M272.702%20359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93%20167.042zM288%20392c-102.556%200-192.092-54.701-240-136%2021.755-36.917%2052.1-68.342%2088.344-91.658l-27.541-39.343C67.001%20152.234%2031.921%20188.741%206.646%20231.631a47.999%2047.999%200%200%200%200%2048.739C63.004%20376.006%20168.14%20440%20288%20440a332.89%20332.89%200%200%200%2039.648-2.367l-32.021-45.744A284.16%20284.16%200%200%201%20288%20392zm281.354-111.631c-33.232%2056.394-83.421%20101.742-143.554%20129.492l48.116%2068.74c3.801%205.429%202.48%2012.912-2.949%2016.712L450.23%20509.83c-5.429%203.801-12.912%202.48-16.712-2.949L102.084%2033.399c-3.801-5.429-2.48-12.912%202.949-16.712L125.77%202.17c5.429-3.801%2012.912-2.48%2016.712%202.949l55.526%2079.325C226.612%2076.343%20256.808%2072%20288%2072c119.86%200%20224.996%2063.994%20281.354%20159.631a48.002%2048.002%200%200%201%200%2048.738zM528%20256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042%20131.078%20296%20144.83%20296%20160c0%2030.928%2025.072%2056%2056%2056s56-25.072%2056-56l-.001-.042c30.632%2057.277%2016.739%20130.26-36.928%20171.719l26.695%2038.135C452.626%20346.551%20498.308%20306.386%20528%20256z%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20576%20512%22%3E%3Cpath%20d%3D%22M569.354%20231.631C512.97%20135.949%20407.81%2072%20288%2072%20168.14%2072%2063.004%20135.994%206.646%20231.631a47.999%2047.999%200%200%200%200%2048.739C63.031%20376.051%20168.19%20440%20288%20440c119.86%200%20224.996-63.994%20281.354-159.631a47.997%2047.997%200%200%200%200-48.738zM288%20392c-102.556%200-192.091-54.701-240-136%2044.157-74.933%20123.677-127.27%20216.162-135.007C273.958%20131.078%20280%20144.83%20280%20160c0%2030.928-25.072%2056-56%2056s-56-25.072-56-56l.001-.042C157.794%20179.043%20152%20200.844%20152%20224c0%2075.111%2060.889%20136%20136%20136s136-60.889%20136-136c0-31.031-10.4-59.629-27.895-82.515C451.704%20164.638%20498.009%20205.106%20528%20256c-47.908%2081.299-137.444%20136-240%20136z%22%2F%3E%3C%2Fsvg%3E\"","import React, { useState } from 'react';\n\nimport styled from 'styled-components';\n\nimport { isValidatorError } from '../../../core/validation';\nimport { isRichFormValue } from '../../../helpers/utils';\nimport { ReactComponent as EyeSlashIcon } from '../../../icons/eye-slash.svg';\nimport { ReactComponent as EyeIcon } from '../../../icons/eye.svg';\nimport { createField, type FieldComponentProps, type FieldDefinition } from '../fieldCreator';\nimport { FormGroup, Input } from '../formControlsComponent';\n\nconst eyeStyle = `\n  position: absolute;\n  top: 13px;\n  right: 10px;\n  cursor: pointer;\n  opacity: 0.6;\n  fill: #495057;\n  width: 14px;\n  height: 14px;\n`;\n\nexport const ShowPasswordIcon = styled(EyeIcon)`\n    ${eyeStyle}\n`;\n\nexport const HidePasswordIcon = styled(EyeSlashIcon)`\n    ${eyeStyle}\n`;\n\ntype SimplePasswordFieldOptions = {\n    canShowPassword?: boolean;\n    placeholder?: React.InputHTMLAttributes<HTMLInputElement>['placeholder'];\n};\n\nexport interface SimplePasswordFieldProps extends FieldComponentProps<\n    string,\n    SimplePasswordFieldOptions\n> {}\n\nfunction SimplePasswordField({\n    autoComplete,\n    canShowPassword,\n    path,\n    validation,\n    onChange,\n    inputId,\n    label,\n    placeholder,\n    required,\n    showLabel,\n    value,\n}: SimplePasswordFieldProps) {\n    const [showPassword, setShowPassword] = useState(false);\n\n    const currentValue = isRichFormValue(value, 'raw') ? value.raw : value;\n\n    const toggleShowPassword = () => setShowPassword(showPassword => !showPassword);\n\n    const error = validation && isValidatorError(validation) ? validation.error : undefined;\n\n    return (\n        <FormGroup\n            inputId={inputId}\n            labelText={label}\n            {...{ error }}\n            showLabel={showLabel}\n            required={required}\n        >\n            <div style={{ position: 'relative' }}>\n                <Input\n                    id={inputId}\n                    name={path}\n                    type={showPassword ? 'text' : 'password'}\n                    value={currentValue ?? ''}\n                    placeholder={placeholder ?? label}\n                    autoComplete={autoComplete}\n                    title={label}\n                    required={required}\n                    hasError={!!error}\n                    onChange={event => onChange({ value: event.target.value })}\n                    onBlur={() => onChange({ isDirty: true })}\n                    data-testid={path}\n                />\n                {canShowPassword &&\n                    (showPassword ? (\n                        <HidePasswordIcon\n                            data-testid=\"hide-password-btn\"\n                            onClick={toggleShowPassword}\n                        />\n                    ) : (\n                        <ShowPasswordIcon\n                            data-testid=\"show-password-btn\"\n                            onClick={toggleShowPassword}\n                        />\n                    ))}\n            </div>\n        </FormGroup>\n    );\n}\n\nexport const simplePasswordField = ({\n    canShowPassword = false,\n    placeholder,\n    ...props\n}: FieldDefinition<string> & SimplePasswordFieldOptions) => {\n    return createField<string, string, SimplePasswordFieldProps>({\n        ...props,\n        component: SimplePasswordField,\n        extendedParams: {\n            placeholder,\n            canShowPassword,\n        },\n    });\n};\n\nexport default simplePasswordField;\n","import React, { useEffect, useState } from 'react';\n\nimport { isDigit, isLower, isUpper } from 'char-info';\nimport { TFunction } from 'i18next';\nimport styled, { DefaultTheme } from 'styled-components';\n\nimport type { PasswordPolicy, PasswordStrengthScore } from '@reachfive/identity-core';\n\nimport { useI18n } from '../../../contexts/i18n';\nimport { Validator, isValidatorError } from '../../../core/validation';\nimport { isRichFormValue } from '../../../helpers/utils';\nimport { createField } from '../fieldCreator';\nimport { FormContext } from '../formComponent';\nimport { FormError, FormGroupContainer, Input, Label } from '../formControlsComponent';\nimport { PasswordPolicyRules, type PasswordRule } from './passwordPolicyRules';\nimport { HidePasswordIcon, ShowPasswordIcon } from './simplePasswordField';\n\nimport type { Config, Optional } from '../../../types';\nimport type { FieldComponentProps, FieldCreator, FieldDefinition } from '../fieldCreator';\n\nconst SPECIAL_CHARACTERS = ' !\"#$%&\\'()*+,-./:;<=>?@[\\\\]^_`{|}~';\nconst MAX_PASSWORD_LENGTH = 255;\n\nconst PasswordStrengthContainer = styled.div`\n    margin-top: ${props => props.theme.spacing / 2}px;\n`;\n\nconst PasswordStrengthGaugeContainer = styled.div`\n    position: relative;\n    height: 8px;\n    border-radius: ${props => props.theme.borderRadius}px;\n    background-color: ${props => props.theme.lightBackgroundColor};\n`;\n\ninterface PasswordStrengthColorProps {\n    theme: DefaultTheme;\n    score: PasswordStrengthScore;\n}\n\nconst getPasswordStrengthColor = ({ theme, score }: PasswordStrengthColorProps) =>\n    theme.passwordStrengthValidator[`color${score}`];\n\nconst PasswordStrengthLabel = styled.div<{ score: PasswordStrengthScore }>`\n    text-align: right;\n    color: ${getPasswordStrengthColor};\n    font-weight: bold;\n`;\n\nconst PasswordStrengthGauge = styled.div<{ score: PasswordStrengthScore }>`\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    background-color: ${getPasswordStrengthColor};\n    width: ${props => props.score * 25}%;\n    border-radius: ${props => props.theme.borderRadius}px;\n    transition:\n        width 300ms ease-out,\n        background-color 300ms linear;\n`;\n\ninterface PasswordStrength {\n    score: PasswordStrengthScore;\n}\n\nconst PasswordStrength = ({ score }: PasswordStrength) => {\n    const i18n = useI18n();\n    return (\n        <PasswordStrengthContainer data-testid=\"password-strength\">\n            <PasswordStrengthGaugeContainer>\n                <PasswordStrengthGauge score={score} />\n            </PasswordStrengthGaugeContainer>\n            <PasswordStrengthLabel score={score}>\n                {i18n(`passwordStrength.score${score}`)}\n            </PasswordStrengthLabel>\n        </PasswordStrengthContainer>\n    );\n};\n\ntype ExtraValues = {\n    strength?: PasswordStrengthScore;\n};\n\ntype ExtraParams = {\n    blacklist?: string[];\n    canShowPassword?: boolean;\n    enabledRules: Record<RuleKeys, PasswordRule>;\n    minStrength: PasswordStrengthScore;\n};\n\nexport interface PasswordFieldProps extends FieldComponentProps<string, ExtraParams, ExtraValues> {}\n\nfunction PasswordField({\n    autoComplete,\n    blacklist: _ = [],\n    canShowPassword,\n    enabledRules,\n    inputId,\n    label,\n    minStrength,\n    onChange,\n    placeholder,\n    required,\n    showLabel,\n    validation,\n    value = '',\n}: PasswordFieldProps) {\n    const [showPassword, setShowPassword] = useState(false);\n    const [isTouched, setIsTouched] = useState(false);\n    const [strength, setStrength] = useState<PasswordStrengthScore>(validation?.strength ?? 0);\n\n    const currentValue = isRichFormValue(value, 'raw') ? value.raw : value;\n\n    useEffect(() => {\n        // only update strength if defined in validation to avoid strength to be reset on field change event\n        if (validation?.strength) {\n            setStrength(validation.strength);\n        }\n    }, [validation]);\n\n    const toggleShowPassword = () => {\n        setShowPassword(showPassword => !showPassword);\n    };\n\n    return (\n        <FormGroupContainer required={required}>\n            <Label visible={showLabel} htmlFor={inputId}>\n                {label}\n            </Label>\n            <div style={{ position: 'relative' }}>\n                <Input\n                    id={inputId}\n                    name=\"password\"\n                    type={showPassword ? 'text' : 'password'}\n                    value={currentValue}\n                    placeholder={placeholder ?? label}\n                    autoComplete={autoComplete}\n                    title={label}\n                    required={required}\n                    hasError={typeof validation === 'object' && 'error' in validation}\n                    onChange={event => {\n                        onChange({\n                            value: event.target.value,\n                        });\n                    }}\n                    onFocus={() => setIsTouched(true)}\n                    onBlur={event => {\n                        if (event?.target.value !== currentValue) {\n                            onChange({\n                                value: event?.target.value,\n                                validation,\n                                isDirty: true,\n                            });\n                        }\n                    }}\n                    data-testid=\"password\"\n                />\n                {canShowPassword &&\n                    (showPassword ? (\n                        <HidePasswordIcon\n                            data-testid=\"hide-password-btn\"\n                            onClick={toggleShowPassword}\n                        />\n                    ) : (\n                        <ShowPasswordIcon\n                            data-testid=\"show-password-btn\"\n                            onClick={toggleShowPassword}\n                        />\n                    ))}\n            </div>\n            {isTouched && <PasswordStrength score={strength} />}\n            {validation && isValidatorError(validation) && (\n                <FormError data-testid=\"error\">{validation.error}</FormError>\n            )}\n            {isTouched && (\n                <PasswordPolicyRules\n                    value={currentValue}\n                    strength={strength}\n                    minStrength={minStrength}\n                    rules={enabledRules}\n                />\n            )}\n        </FormGroupContainer>\n    );\n}\n\ntype RuleKeys = Exclude<keyof PasswordPolicy, 'minStrength' | 'allowUpdateWithAccessTokenOnly'>;\n\nexport function listEnabledRules(\n    i18n: TFunction,\n    passwordPolicy: Config['passwordPolicy']\n): Record<RuleKeys, PasswordRule> {\n    if (!passwordPolicy) return {} as Record<RuleKeys, PasswordRule>;\n\n    const rules: Record<RuleKeys, PasswordRule> = {\n        minLength: {\n            label: i18n('validation.password.minLength', { min: passwordPolicy.minLength }),\n            verify: (password: string) => password.length >= passwordPolicy.minLength,\n        },\n        specialCharacters: {\n            label: i18n('validation.password.specials.characters'),\n            verify: (password: string) =>\n                Array.from(password).some(c => SPECIAL_CHARACTERS.includes(c)),\n        },\n        lowercaseCharacters: {\n            label: i18n('validation.password.specials.lowercase'),\n            verify: (password: string) => Array.from(password).some(c => isLower(c)),\n        },\n        uppercaseCharacters: {\n            label: i18n('validation.password.specials.uppercase'),\n            verify: (password: string) => Array.from(password).some(c => isUpper(c)),\n        },\n        digitCharacters: {\n            label: i18n('validation.password.specials.digit'),\n            verify: (password: string) => Array.from(password).some(c => isDigit(c)),\n        },\n    };\n\n    return Object.keys(rules).reduce<Record<RuleKeys, PasswordRule>>(\n        (enabledRules, key) => {\n            if (key in passwordPolicy && passwordPolicy[key as RuleKeys])\n                enabledRules[key as RuleKeys] = rules[key as RuleKeys];\n            return enabledRules;\n        },\n        {} as Record<RuleKeys, PasswordRule>\n    );\n}\n\nexport function passwordStrengthValidator(passwordPolicy?: PasswordPolicy) {\n    return new Validator<string, unknown>({\n        rule: async (value, ctx) => {\n            if (value.length === 0) return false;\n            const strength = await (ctx as FormContext<unknown>).client.getPasswordStrength(value);\n            if (passwordPolicy && strength.score < passwordPolicy.minStrength) {\n                return { valid: false, strength: strength.score };\n            }\n            return { valid: true, strength: strength.score };\n        },\n        hint: 'password.minStrength',\n    });\n}\n\nexport const passwordLengthValidator = new Validator<string, unknown>({\n    rule: value => {\n        if (value.length > MAX_PASSWORD_LENGTH) return false;\n        return true;\n    },\n    hint: 'password.maxLength',\n    parameters: { max: MAX_PASSWORD_LENGTH },\n});\n\nfunction passwordValidatorChain(passwordPolicy?: PasswordPolicy) {\n    return passwordLengthValidator.and(passwordStrengthValidator(passwordPolicy));\n}\n\nexport const passwordField = (\n    {\n        key = 'password',\n        label = 'password',\n        blacklist = [],\n        canShowPassword = false,\n        enabledRules,\n        minStrength,\n        required = true,\n        validator,\n        ...props\n    }: Optional<FieldDefinition<string, string>, 'key' | 'label'> & Partial<ExtraParams>,\n    { passwordPolicy }: Config\n): FieldCreator<string, PasswordFieldProps, ExtraParams> =>\n    createField<string, string, PasswordFieldProps, ExtraParams>({\n        key,\n        label,\n        required,\n        ...props,\n        component: PasswordField,\n        extendedParams: i18n => ({\n            blacklist,\n            canShowPassword,\n            enabledRules: enabledRules ?? listEnabledRules(i18n, passwordPolicy),\n            minStrength: minStrength ?? passwordPolicy.minStrength,\n        }),\n        validator: validator\n            ? validator.and(passwordValidatorChain(passwordPolicy))\n            : passwordValidatorChain(passwordPolicy),\n    });\n\nexport default passwordField;\n","import React from 'react';\n\nimport passwordField from '../../components/form/fields/passwordField';\nimport simplePasswordField from '../../components/form/fields/simplePasswordField';\nimport { createForm, FormContext } from '../../components/form/formComponent';\nimport { createWidget } from '../../components/widget/widget';\nimport { useReachfive } from '../../contexts/reachfive';\nimport { Validator } from '../../core/validation';\n\nimport type { OnError, OnSuccess } from '../../types';\n\nexport type PasswordEditorFormData = {\n    password: string;\n    passwordConfirmation: string;\n    oldPassword: string;\n};\n\ninterface PasswordEditorFormProps {\n    /**\n     * Ask for the old password before entering a new one.\n     * @default false\n     */\n    promptOldPassword?: boolean;\n    /**\n     * Whether or not to provide the display password in clear text option.\n     * @default false\n     */\n    canShowPassword?: boolean;\n}\n\nexport const PasswordEditorForm = createForm<PasswordEditorFormData, PasswordEditorFormProps>({\n    prefix: 'r5-password-editor-',\n    fields({ promptOldPassword = false, canShowPassword = false, config }) {\n        return [\n            ...(promptOldPassword\n                ? [\n                      simplePasswordField({\n                          key: 'old_password',\n                          label: 'oldPassword',\n                      }),\n                  ]\n                : []),\n            passwordField(\n                {\n                    label: 'newPassword',\n                    autoComplete: 'new-password',\n                    canShowPassword,\n                },\n                config\n            ),\n            simplePasswordField({\n                key: 'password_confirmation',\n                label: 'passwordConfirmation',\n                autoComplete: 'new-password',\n                validator: new Validator<string, unknown>({\n                    rule: (value, ctx) => {\n                        return (\n                            value === (ctx as FormContext<PasswordEditorFormData>).fields.password\n                        );\n                    },\n                    hint: 'passwordMatch',\n                }),\n            }),\n        ];\n    },\n    resetAfterSuccess: true,\n    resetAfterError: true,\n});\n\nexport interface PasswordEditorProps extends PasswordEditorFormProps {\n    /**\n     * The authorization credential JSON Web Token (JWT) used to access the ReachFive API, less than five minutes old.\n     */\n    accessToken?: string;\n    /**\n     * @toto missing description\n     */\n    authentication?: Authentication;\n    /**\n     * @toto missing description\n     */\n    userId?: string;\n    /**\n     * Whether the form fields' labels are displayed on the form view.\n     * @default false\n     */\n    showLabels?: boolean;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\nconst PasswordEditor = ({\n    authentication,\n    canShowPassword = false,\n    promptOldPassword = false,\n    showLabels = false,\n    onSuccess = () => {},\n    onError = () => {},\n}: PasswordEditorProps) => {\n    const coreClient = useReachfive();\n\n    const handleSubmit = ({ password, oldPassword }: PasswordEditorFormData) => {\n        return coreClient.updatePassword({\n            password,\n            ...(promptOldPassword ? { oldPassword } : {}),\n            ...authentication,\n        });\n    };\n\n    return (\n        <PasswordEditorForm\n            handler={handleSubmit}\n            supportMultipleSubmits={promptOldPassword}\n            promptOldPassword={promptOldPassword}\n            canShowPassword={canShowPassword}\n            showLabels={showLabels}\n            onSuccess={() => onSuccess({ name: 'password_changed' })}\n            onError={onError}\n        />\n    );\n};\n\ntype Authentication = { accessToken: string } | { userId: string };\n\nconst resolveAuthentication = (\n    accessToken?: string,\n    userId?: string\n): { authentication?: Authentication } => {\n    if (accessToken) {\n        return { authentication: { accessToken } };\n    } else if (userId) {\n        return { authentication: { userId } };\n    } else {\n        return {};\n    }\n};\n\nexport type PasswordEditorWidgetProps = Omit<PasswordEditorProps, 'authentication'>;\n\nexport default createWidget<PasswordEditorWidgetProps, PasswordEditorProps>({\n    component: PasswordEditor,\n    prepare: options => ({\n        ...options,\n        ...resolveAuthentication(options.accessToken, options.userId),\n    }),\n});\n","import React from 'react';\n\nimport styled from 'styled-components';\n\nimport { createForm } from '../../components/form/formComponent';\nimport { Alternative, Heading, Info, Intro, Link, Separator } from '../../components/miscComponent';\nimport { createMultiViewWidget } from '../../components/widget/widget';\nimport { useI18n } from '../../contexts/i18n';\nimport { useReachfive } from '../../contexts/reachfive';\nimport { useRouting } from '../../contexts/routing';\nimport { parseQueryString } from '../../helpers/queryString';\nimport { ReactComponent as Passkeys } from '../../icons/passkeys.svg';\nimport {\n    PasswordEditorForm,\n    PasswordEditorFormData,\n} from '../passwordEditor/passwordEditorWidget.tsx';\n\nimport type { OnError, OnSuccess } from '../../types';\n\ninterface MainViewProps {\n    /**\n     * Allow an end-user to create a password instead of a Passkey\n     * @default true\n     */\n    allowCreatePassword?: boolean;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n    /**\n     * Whether the form fields' labels are displayed on the form view.\n     * @default false\n     */\n    showLabels?: boolean;\n}\n\nconst DeviceInputForm = createForm<{}, MainViewProps>({\n    prefix: 'r5-credentials-reset',\n    fields: [],\n    submitLabel: 'accountRecovery.passkeyReset.button',\n    supportMultipleSubmits: true,\n    resetAfterSuccess: true,\n});\n\nconst iconStyle = `\n        width: 60px;\n        height: 60px;\n        margin-left: auto;\n        margin-right: auto;\n        margin-bottom: 1em;\n        display: block;\n`;\nconst PasskeysIcon = styled(Passkeys)`\n    ${iconStyle}\n`;\n\nconst PasskeysExplanation = styled(() => {\n    const i18n = useI18n();\n    return (\n        <ul>\n            <li>\n                <b>{i18n('accountRecovery.passkeyReset.subtitle1')}</b>\n            </li>\n            <ul>\n                <li>{i18n('accountRecovery.passkeyReset.legend1')}</li>\n            </ul>\n            <li>\n                <b>{i18n('accountRecovery.passkeyReset.subtitle2')}</b>\n            </li>\n            <ul>\n                <li>{i18n('accountRecovery.passkeyReset.legend2')}</li>\n            </ul>\n        </ul>\n    );\n})``;\n\nconst NewPasskey = ({\n    authentication,\n    allowCreatePassword = true,\n    onSuccess = (() => {}) as OnSuccess,\n    onError = (() => {}) as OnError,\n}: PropsWithAuthentication<MainViewProps>) => {\n    const coreClient = useReachfive();\n    const i18n = useI18n();\n    const { goTo } = useRouting();\n\n    const handleSubmit = () => {\n        return coreClient.resetPasskeys({\n            email: authentication?.email,\n            verificationCode: authentication?.verificationCode,\n            clientId: authentication?.clientId,\n        });\n    };\n\n    const handleSuccess = () => {\n        onSuccess({ name: 'webauthn_reset' });\n        goTo('passkey-success');\n    };\n\n    return (\n        <div>\n            <Heading>{i18n('accountRecovery.passkeyReset.title')}</Heading>\n            <PasskeysIcon />\n            <Intro>\n                <b>{i18n('accountRecovery.passkeyReset.intro')}</b>\n            </Intro>\n            <PasskeysExplanation />\n            <DeviceInputForm handler={handleSubmit} onSuccess={handleSuccess} onError={onError} />\n            {allowCreatePassword && (\n                <Alternative>\n                    <Separator text={i18n('or')} />\n                    <Intro>\n                        <Link target=\"new-password\">{i18n('accountRecovery.password.title')}</Link>\n                    </Intro>\n                </Alternative>\n            )}\n        </div>\n    );\n};\n\ninterface SuccessViewProps {\n    loginLink?: string;\n}\n\nconst PasskeySuccessView = ({ loginLink }: SuccessViewProps) => {\n    const i18n = useI18n();\n    return (\n        <div>\n            <Heading>{i18n('accountRecovery.passkeyReset.successTitle')}</Heading>\n            <Info>{i18n('accountRecovery.passkeyReset.successMessage')}</Info>\n            {loginLink && (\n                <Info>\n                    <Link href={loginLink}>{i18n('accountRecovery.passkeyReset.loginLink')}</Link>\n                </Info>\n            )}\n        </div>\n    );\n};\n\nconst PasswordSuccessView = ({ loginLink }: SuccessViewProps) => {\n    const i18n = useI18n();\n    return (\n        <div>\n            <Heading>{i18n('passwordReset.successTitle')}</Heading>\n            <Info>{i18n('passwordReset.successMessage')}</Info>\n            {loginLink && (\n                <Info>\n                    <Link href={loginLink}>{i18n('passwordReset.loginLink')}</Link>\n                </Info>\n            )}\n        </div>\n    );\n};\n\nexport const NewPasswordView = ({\n    authentication,\n    onSuccess = (() => {}) as OnSuccess,\n    onError = (() => {}) as OnError,\n    showLabels = false,\n}: PropsWithAuthentication<MainViewProps>) => {\n    const coreClient = useReachfive();\n    const i18n = useI18n();\n    const { goTo } = useRouting();\n\n    const handleSubmit = ({ password }: PasswordEditorFormData) => {\n        return coreClient.updatePassword({\n            password,\n            ...authentication,\n        });\n    };\n\n    const handleSuccess = () => {\n        onSuccess({ name: 'password_changed' });\n        goTo('password-success');\n    };\n\n    return (\n        <div>\n            <Heading>{i18n('accountRecovery.password.title')}</Heading>\n            <Info>{i18n('passwordReset.intro')}</Info>\n            <PasswordEditorForm\n                handler={handleSubmit}\n                showLabels={showLabels}\n                onSuccess={handleSuccess}\n                onError={onError}\n            />\n            <Alternative>\n                <Link target=\"new-passkey\">{i18n('back')}</Link>\n            </Alternative>\n        </div>\n    );\n};\n\nconst resolveCode = () => {\n    const qs = window.location.search.substring(1);\n    const { verificationCode, email, clientId } = parseQueryString(qs);\n    return { authentication: { verificationCode, email, clientId } as Authentication };\n};\n\ntype Authentication = { verificationCode: string; email: string; clientId: string };\ntype PropsWithAuthentication<P> = P & { authentication: Authentication };\n\nexport interface AccountRecoveryWidgetProps extends MainViewProps, SuccessViewProps {}\n\nexport default createMultiViewWidget<\n    AccountRecoveryWidgetProps,\n    PropsWithAuthentication<AccountRecoveryWidgetProps>\n>({\n    initialView: 'new-passkey',\n    views: {\n        'new-passkey': NewPasskey,\n        'new-password': NewPasswordView,\n        'passkey-success': PasskeySuccessView,\n        'password-success': PasswordSuccessView,\n    },\n    prepare: options => ({\n        ...options,\n        ...resolveCode(),\n    }),\n});\n","import React from 'react';\n\nimport { isValidatorError } from '../../../core/validation';\nimport { isRichFormValue } from '../../../helpers/utils';\nimport { createField, type FieldComponentProps, type FieldProps } from '../fieldCreator';\nimport { Checkbox } from '../formControlsComponent';\n\nexport interface CheckboxFieldProps extends FieldComponentProps<boolean> {}\n\nfunction CheckboxField({ value, onChange, label, path, required, validation }: CheckboxFieldProps) {\n    const checked = isRichFormValue(value, 'raw') ? value.raw : value;\n\n    const onToggle = () =>\n        onChange({\n            value: !value,\n            isDirty: true,\n        });\n\n    const error = validation && isValidatorError(validation) ? validation.error : undefined;\n\n    return (\n        <Checkbox\n            value={checked ? String(checked) : undefined}\n            onToggle={onToggle}\n            name={path}\n            label={label}\n            error={error}\n            required={required}\n            data-testid={path}\n        />\n    );\n}\n\nexport default function checkboxField(\n    props: Omit<FieldProps<boolean | string, boolean, CheckboxFieldProps>, 'format' | 'component'>\n) {\n    return createField<boolean | string, boolean, CheckboxFieldProps>({\n        ...props,\n        format: {\n            bind: value => !!value,\n            unbind: value => (value ? (isRichFormValue(value, 'raw') ? value.raw : value) : false),\n        },\n        component: CheckboxField,\n    });\n}\n","import React from 'react';\n\nimport { isRichFormValue } from '../../../helpers/utils';\nimport { createField, type FieldComponentProps, type FieldDefinition } from '../fieldCreator';\nimport { RadioGroup, type RadioGroupProps } from '../formControlsComponent';\n\ntype Value = RadioGroupProps['value'];\n\ntype RadioGroupOptions = {\n    options: RadioGroupProps['options'];\n};\n\nexport interface RadioboxFieldProps extends FieldComponentProps<Value>, RadioGroupOptions {}\n\nconst RadioboxField = (props: RadioboxFieldProps) => {\n    const { label, value, ...radioProps } = props;\n\n    const currentValue = isRichFormValue(value, 'raw') ? value.raw : value;\n\n    return <RadioGroup labelText={label} value={currentValue} {...radioProps} />;\n};\n\nexport default function radioboxField({\n    defaultValue,\n    options,\n    ...props\n}: FieldDefinition<string, Value> & RadioGroupOptions) {\n    return createField<string, Value, RadioboxFieldProps, RadioGroupOptions>({\n        ...props,\n        defaultValue: defaultValue ?? (options.length === 1 ? String(options[0].value) : undefined),\n        component: RadioboxField,\n        extendedParams: i18n => ({\n            options: options.map(({ label, value }) => ({\n                value,\n                label: label\n                    ? typeof label === 'string'\n                        ? i18n(label)\n                        : label\n                    : typeof value === 'string'\n                      ? i18n(value)\n                      : value,\n            })),\n        }),\n    });\n}\n","import React from 'react';\n\nimport { isValidatorError } from '../../../core/validation';\nimport { isRichFormValue } from '../../../helpers/utils';\nimport { createField, type FieldComponentProps, type FieldDefinition } from '../fieldCreator';\nimport { FormGroup, Input } from '../formControlsComponent';\n\ntype SimpleFieldOptions = {\n    placeholder?: React.InputHTMLAttributes<HTMLInputElement>['placeholder'];\n    type?: React.HTMLInputTypeAttribute;\n};\n\nexport interface SimpleFieldProps extends FieldComponentProps<string, SimpleFieldOptions> {}\n\nconst SimpleField = (props: SimpleFieldProps) => {\n    const {\n        autoComplete,\n        path,\n        value,\n        validation,\n        onChange,\n        showLabel,\n        inputId,\n        label,\n        placeholder = label,\n        readOnly,\n        required,\n        type,\n    } = props;\n\n    const currentValue = isRichFormValue(value, 'raw') ? value.raw : value;\n\n    const error = validation && isValidatorError(validation) ? validation.error : undefined;\n\n    return (\n        <FormGroup\n            inputId={inputId}\n            labelText={label}\n            {...{ error }}\n            showLabel={showLabel}\n            required={required}\n        >\n            <Input\n                id={inputId}\n                name={path}\n                type={type}\n                value={currentValue ?? ''}\n                placeholder={placeholder}\n                autoComplete={autoComplete}\n                title={label}\n                required={required}\n                readOnly={readOnly}\n                hasError={!!error}\n                onChange={event => onChange({ value: event.target.value })}\n                onBlur={() => onChange({ isDirty: true })}\n                data-testid={path}\n            />\n        </FormGroup>\n    );\n};\n\nexport const simpleField = ({\n    placeholder,\n    type,\n    ...props\n}: FieldDefinition<string | number, string> & SimpleFieldOptions) => {\n    return createField<string | number, string, SimpleFieldProps>({\n        ...props,\n        component: SimpleField,\n        extendedParams: {\n            placeholder,\n            type,\n        },\n    });\n};\n\nexport default simpleField;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport { AuthOptions, MFA, PasswordlessResponse } from '@reachfive/identity-core';\nimport { StepUpPasswordlessParams } from '@reachfive/identity-core/es/main/oAuthClient';\n\nimport checkboxField from '../../components/form/fields/checkboxField';\nimport radioboxField from '../../components/form/fields/radioboxField';\nimport { simpleField } from '../../components/form/fields/simpleField';\nimport { createForm } from '../../components/form/formComponent';\nimport { Info, Intro } from '../../components/miscComponent';\nimport { createMultiViewWidget } from '../../components/widget/widget';\nimport { useConfig } from '../../contexts/config.tsx';\nimport { useI18n } from '../../contexts/i18n';\nimport { useReachfive } from '../../contexts/reachfive';\nimport { useRouting } from '../../contexts/routing';\nimport { toQueryString } from '../../helpers/queryString';\n\nimport type { OnError, OnSuccess, Prettify, RequiredProperty } from '../../types';\n\nconst StartStepUpMfaButton = createForm({\n    prefix: 'r5-mfa-start-step-up-',\n    submitLabel: 'mfa.stepUp.start',\n});\n\nexport type VerificationCodeInputFormData = {\n    verificationCode: string;\n    trustDevice?: boolean;\n};\n\ninterface VerificationCodeFormOptions {\n    allowTrustDevice?: boolean;\n}\n\nconst VerificationCodeInputForm = createForm<\n    VerificationCodeInputFormData,\n    VerificationCodeFormOptions\n>({\n    prefix: 'r5-passwordless-sms-',\n    fields({ allowTrustDevice }) {\n        return [\n            simpleField({\n                key: 'verification_code',\n                label: 'verificationCode',\n                type: 'text',\n            }),\n            ...(allowTrustDevice\n                ? [\n                      checkboxField({\n                          key: 'trust_device',\n                          label: 'mfa.stepUp.trustDevice',\n                          defaultValue: false,\n                      }),\n                  ]\n                : []),\n        ];\n    },\n});\n\ntype StepUpFormData = {\n    authType: StepUpPasswordlessParams['authType'];\n};\n\ntype StepUpFormProps = {\n    options: Parameters<typeof radioboxField>[0]['options'];\n};\n\nconst StepUpForm = createForm<StepUpFormData, StepUpFormProps>({\n    prefix: 'r5-mfa-start-passwordless',\n    fields({ options }) {\n        return [\n            radioboxField({\n                key: 'authType',\n                label: 'authType',\n                options,\n            }),\n        ];\n    },\n});\n\nexport interface MainViewProps {\n    /**\n     * **Not recommended**\n     *\n     * The authorization credential JSON Web Token (JWT) used to access the ReachFive API, less than five minutes old.\n     *\n     * If empty, using an existing SSO session cookie.\n     */\n    accessToken?: string;\n    /**\n     * List of authentication options\n     */\n    auth?: AuthOptions;\n    /**\n     * Show the introduction text.\n     *\n     * @default true\n     */\n    showIntro?: boolean;\n    /**\n     * Show the stepup button. Unnecessary for console use\n     *\n     * @default true\n     */\n    showStepUpStart?: boolean;\n    /**\n     * Boolean that specifies whether a device can be trusted during step up.\n     *\n     * @default false\n     */\n    allowTrustDevice?: boolean;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n    /**\n     * Action used in template\n     */\n    action?: string;\n}\n\nexport const MainView = ({\n    accessToken,\n    auth,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n    showIntro = true,\n    showStepUpStart = true,\n    allowTrustDevice = false,\n    action,\n}: MainViewProps) => {\n    const coreClient = useReachfive();\n    const { goTo } = useRouting();\n\n    const [response, setResponse] = useState<MFA.StepUpResponse | undefined>();\n\n    const onGetStepUpToken = useCallback(async () => {\n        try {\n            const res = await coreClient.getMfaStepUpToken({\n                options: auth,\n                accessToken: accessToken,\n                action,\n            });\n            setResponse(res);\n            return res;\n        } catch (error) {\n            onError(error);\n            throw error;\n        }\n    }, [accessToken, action, auth, coreClient, onError]);\n\n    useEffect(() => {\n        if (!showStepUpStart) {\n            onGetStepUpToken().catch(onError);\n        }\n    }, [showStepUpStart, onGetStepUpToken]);\n\n    if (showStepUpStart) {\n        return (\n            <StartStepUpMfaButton\n                handler={onGetStepUpToken}\n                onSuccess={(data: MFA.StepUpResponse) =>\n                    goTo<FaSelectionViewState>('fa-selection', { ...data, allowTrustDevice, auth })\n                }\n                onError={onError}\n            />\n        );\n    }\n\n    if (response) {\n        return (\n            <FaSelectionView\n                {...response}\n                showIntro={showIntro}\n                auth={auth}\n                allowTrustDevice={allowTrustDevice}\n                onError={onError}\n                onSuccess={onSuccess}\n            />\n        );\n    }\n\n    return null;\n};\n\nexport type FaSelectionViewState = MFA.StepUpResponse & {\n    allowTrustDevice?: boolean;\n    auth?: AuthOptions;\n};\n\nexport type FaSelectionViewProps = Prettify<\n    Partial<MFA.StepUpResponse> & {\n        showIntro?: boolean;\n        auth?: AuthOptions;\n        allowTrustDevice?: boolean;\n        /**\n         * Callback function called when the request has succeed.\n         */\n        onSuccess?: OnSuccess;\n        /**\n         * Callback function called when the request has failed.\n         */\n        onError?: OnError;\n    }\n>;\n\n// Unlike single factor authentication, StepUp request always returns a challengeId\ntype StepUpResponse = RequiredProperty<PasswordlessResponse, 'challengeId'>;\n\ntype StepUpHandlerResponse = StepUpResponse & StepUpFormData;\n\nexport const FaSelectionView = ({\n    onError = (() => {}) as OnError,\n    onSuccess,\n    ...props\n}: FaSelectionViewProps) => {\n    const coreClient = useReachfive();\n    const i18n = useI18n();\n    const { params } = useRouting();\n    const state = params as FaSelectionViewState;\n\n    const { allowTrustDevice, amr, auth, showIntro = true, token } = { ...props, ...state };\n\n    const [response, setResponse] = useState<StepUpHandlerResponse | undefined>();\n\n    const onChooseFa = useCallback(\n        async (factor: StepUpFormData): Promise<void> => {\n            await coreClient.startPasswordless({ ...factor, stepUp: token }).then(resp =>\n                setResponse({\n                    ...(resp as StepUpResponse),\n                    ...factor,\n                })\n            );\n        },\n        [coreClient, token]\n    );\n\n    useEffect(() => {\n        if (amr.length === 1) {\n            onChooseFa({ authType: amr[0] as StepUpPasswordlessParams['authType'] }).catch(onError);\n        }\n    }, [amr, onChooseFa]);\n\n    if (response) {\n        return (\n            <VerificationCodeView\n                {...response}\n                auth={auth}\n                allowTrustDevice={allowTrustDevice}\n                onError={onError}\n                onSuccess={onSuccess}\n            />\n        );\n    }\n\n    if (amr.length > 1) {\n        return (\n            <div>\n                {showIntro && <Intro>{i18n('mfa.select.factor')}</Intro>}\n                <StepUpForm\n                    options={amr.map(factor => ({ key: factor, value: factor, label: factor }))}\n                    handler={onChooseFa}\n                    onError={onError}\n                />\n            </div>\n        );\n    }\n\n    return null;\n};\n\nexport type VerificationCodeViewState = Prettify<StepUpHandlerResponse>;\n\nexport type VerificationCodeViewProps = Prettify<\n    Partial<StepUpHandlerResponse> & {\n        /**\n         * List of authentication options\n         */\n        auth?: AuthOptions;\n        /**\n         * Boolean that specifies whether a device can be trusted during step up.\n         *\n         * @default false\n         */\n        allowTrustDevice?: boolean;\n        /**\n         * Callback function called when the request has succeed.\n         */\n        onSuccess?: OnSuccess;\n        /**\n         * Callback function called when the request has failed.\n         */\n        onError?: OnError;\n    }\n>;\n\nexport const VerificationCodeView = ({\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n    ...props\n}: VerificationCodeViewProps) => {\n    const coreClient = useReachfive();\n    const i18n = useI18n();\n    const { params } = useRouting();\n    const { rbaEnabled, domain } = useConfig();\n    const state = params as VerificationCodeViewState;\n\n    const { auth, authType, challengeId, allowTrustDevice } = { ...props, ...state };\n\n    const handleSubmit = (data: VerificationCodeInputFormData) => {\n        const isOrchestratedFlow = new URLSearchParams(window.location.search).has(\n            'r5_request_token'\n        );\n        if (isOrchestratedFlow) {\n            window.location.replace(\n                `https://${domain}/identity/v1/passwordless/verify` +\n                    '?' +\n                    toQueryString({\n                        ...data,\n                        challengeId,\n                    })\n            );\n            return Promise.resolve();\n        } else {\n            return coreClient\n                .verifyMfaPasswordless({\n                    challengeId,\n                    verificationCode: data.verificationCode,\n                    trustDevice: data.trustDevice,\n                })\n                .then(resp => {\n                    onSuccess({ name: 'login_2nd_step', authType, authResult: resp });\n                    if (data.trustDevice) {\n                        onSuccess({ name: 'mfa_trusted_device_added' });\n                    }\n                    // @ts-expect-error AuthResult is too complex and is not representative of the real response of this request\n                    window.location.replace((auth?.redirectUri ?? '') + '?' + toQueryString(resp));\n                });\n        }\n    };\n\n    return (\n        <div>\n            {authType === 'sms' && <Info>{i18n('passwordless.sms.verification.intro')}</Info>}\n            {authType === 'email' && <Info>{i18n('passwordless.email.verification.intro')}</Info>}\n            <VerificationCodeInputForm\n                allowTrustDevice={rbaEnabled && allowTrustDevice}\n                handler={handleSubmit}\n                onError={onError}\n            />\n        </div>\n    );\n};\n\nexport type MfaStepUpProps = MainViewProps & FaSelectionViewProps & VerificationCodeViewProps;\n\nexport type MfaStepUpWidgetProps = MfaStepUpProps;\n\nexport default createMultiViewWidget<MfaStepUpWidgetProps, MfaStepUpProps>({\n    initialView: 'main',\n    views: {\n        main: MainView,\n        'fa-selection': FaSelectionView,\n        'verification-code': VerificationCodeView,\n    },\n});\n","import React, { useCallback, useLayoutEffect } from 'react';\n\nimport { RequestAccountRecoveryParams } from '@reachfive/identity-core/es/main/profileClient';\n\nimport { CaptchaProvider, WithCaptchaProps } from '../../../components/captcha';\nimport { simpleField } from '../../../components/form/fields/simpleField';\nimport { createForm } from '../../../components/form/formComponent';\nimport { Alternative, Heading, Info, Intro, Link } from '../../../components/miscComponent';\nimport { importGoogleRecaptchaScript } from '../../../components/reCaptcha';\nimport { useI18n } from '../../../contexts/i18n';\nimport { useReachfive } from '../../../contexts/reachfive';\nimport { useRouting } from '../../../contexts/routing';\nimport { email } from '../../../core/validation';\nimport { isAppError } from '../../../helpers/errors';\n\nimport type { OnError, OnSuccess } from '../../../types';\n\nconst AccountRecoveryForm = createForm<RequestAccountRecoveryParams>({\n    prefix: 'r5-account-recovery-',\n    fields: [\n        simpleField({\n            key: 'email',\n            label: 'email',\n            type: 'email',\n            validator: email,\n        }),\n    ],\n    submitLabel: 'accountRecovery.submitLabel',\n});\n\nconst skipError = (error: unknown) =>\n    isAppError(error) ? error.error === 'resource_not_found' : false;\n\nexport interface AccountRecoveryViewProps {\n    /**\n     * Boolean that specifies whether login is enabled.\n     *\n     * @default true\n     */\n    allowLogin?: boolean;\n    /**\n     * Whether or not to display a safe error message on password reset, given an invalid email address.\n     * This mode ensures not to leak email addresses registered to the platform.\n     *\n     * @default false\n     */\n    displaySafeErrorMessage?: boolean;\n    /**\n     * Whether the signup form fields' labels are displayed on the login view.\n     *\n     * @default false\n     */\n    showLabels?: boolean;\n    /**\n     * The URL sent in the email to which the user is redirected.\n     * This URL must be whitelisted in the `Allowed Callback URLs` field of your ReachFive client settings.\n     */\n    redirectUrl?: string;\n    /**\n     * Returned in the `redirectUrl` as a query parameter, this parameter is used to redirect users to a specific URL after a credentials reset.\n     * Important: This parameter should only be used with Hosted Pages.\n     */\n    returnToAfterAccountRecovery?: string;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\nexport const AccountRecoveryView = ({\n    allowLogin = true,\n    displaySafeErrorMessage = false,\n    showLabels = false,\n    recaptcha_enabled = false,\n    recaptcha_site_key,\n    captchaFoxEnabled = false,\n    captchaFoxSiteKey,\n    captchaFoxMode,\n    redirectUrl,\n    returnToAfterAccountRecovery,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n}: WithCaptchaProps<AccountRecoveryViewProps>) => {\n    const coreClient = useReachfive();\n    const { goTo } = useRouting();\n    const i18n = useI18n();\n\n    const callback = useCallback(\n        (data: RequestAccountRecoveryParams) => {\n            return coreClient.requestAccountRecovery({\n                ...data,\n                redirectUrl,\n                returnToAfterAccountRecovery,\n            });\n        },\n        [coreClient, redirectUrl, returnToAfterAccountRecovery]\n    );\n\n    useLayoutEffect(() => {\n        importGoogleRecaptchaScript(recaptcha_site_key);\n    }, [recaptcha_site_key]);\n\n    return (\n        <div>\n            <Heading>{i18n('accountRecovery.title')}</Heading>\n            <Intro>{i18n('accountRecovery.prompt')}</Intro>\n            <CaptchaProvider\n                recaptcha_enabled={recaptcha_enabled}\n                recaptcha_site_key={recaptcha_site_key}\n                captchaFoxEnabled={captchaFoxEnabled}\n                captchaFoxSiteKey={captchaFoxSiteKey}\n                captchaFoxMode={captchaFoxMode}\n                action=\"account_recovery\"\n            >\n                <AccountRecoveryForm\n                    showLabels={showLabels}\n                    handler={callback}\n                    onSuccess={() => {\n                        onSuccess({ name: 'account_recovery' });\n                        goTo('account-recovery-success');\n                    }}\n                    onError={onError}\n                    skipError={displaySafeErrorMessage && skipError}\n                />\n            </CaptchaProvider>\n            {allowLogin && (\n                <Alternative>\n                    <Link target={'login'}>{i18n('accountRecovery.backToLoginLink')}</Link>\n                </Alternative>\n            )}\n        </div>\n    );\n};\n\nexport interface AccountRecoverySuccessViewProps {\n    allowLogin?: boolean;\n}\n\nexport const AccountRecoverySuccessView = ({ allowLogin }: AccountRecoverySuccessViewProps) => {\n    const i18n = useI18n();\n    return (\n        <div>\n            <Heading>{i18n('accountRecovery.title')}</Heading>\n            <Info>{i18n('accountRecovery.successMessage')}</Info>\n            {allowLogin && (\n                <Alternative>\n                    <Link target={'login'}>{i18n('back')}</Link>\n                </Alternative>\n            )}\n        </div>\n    );\n};\n","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]\",\"(?:31|4)6|51|6(?:485|5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"(183[12])|0\",0,0,0,[[\"(?:(?:2(?:(?:[0-26-9]\\\\d|3[0-8]|5[0135-9])\\\\d|4(?:[02-9]\\\\d|10))|3(?:(?:[0-3589]\\\\d|6[1-9]|7[0-35-9])\\\\d|4(?:[0-578]\\\\d|90))|7(?:[013-57-9]\\\\d|2[0-8])\\\\d)\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|[34]\\\\d\\\\d)|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-478])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|2[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"(?:01\\\\d|[24-689])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"0\"]]]],\"BL\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"8001\\\\d{5}|(?:[2-467]\\\\d|50)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[235]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"[1-467]\\\\d{9,10}|55[0-46-9]\\\\d{8}|[34]\\\\d{7}|55\\\\d{7,8}|(?:5[0-46-9]|[89]\\\\d)\\\\d{7,9}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37|86)\",\"300|4(?:0(?:0|20)|370|864)\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|5[07]|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\\\d{6}\",[10]],[\"\",[10]],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",[10]],[\"900[2-9]\\\\d{6}\",[10]],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-478])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CD\":[\"243\",\"00\",\"(?:(?:[189]|5\\\\d)\\\\d|2)\\\\d{7}|[1-68]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"5\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"(?:(?:1[03-689]|2\\\\d)\\\\d\\\\d|6)\\\\d{8}|1\\\\d{10}|[126]\\\\d{6}(?:\\\\d(?:\\\\d{2})?)?|86\\\\d{5,6}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{5,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:46|60\\\\d\\\\d)\\\\d{6}|(?:1\\\\d|[39])\\\\d{9}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"46\"]],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|9[14]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-478])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|31)\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0-35])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|50))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-3]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"(?:[56]94\\\\d|7093)\\\\d{5}|(?:80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"([25-9]\\\\d{5})$|0\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]]],\"GT\":[\"502\",\"00\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"[2-69]\\\\d{8}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{6}\",[7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"(?:[2-489]\\\\d|55)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"00[1-9]\\\\d{9,14}|(?:[1-36]|8\\\\d{5})\\\\d{6}|00\\\\d{9}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\",[6,7,8,9,10,11]],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],[\"3[2-8]\\\\d{9,10}\",[11,12]],0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[257-9]\"],\"0$1\"]],\"0\",0,\"(000[259]\\\\d{6})$|(?:(?:003768)0?)|0\",\"$1\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-6]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"(1001)|0\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:[2457]\\\\d|33|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[0167]\\\\d|2[0-467]|5[0-3]|8[0-7]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"([24-9]\\\\d{6})$|0\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|452|678|86\",\"[12]|452|6788|86\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"(?:596\\\\d|7091)\\\\d{5}|(?:69|[89]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]|8(?:0[6-9]|[36])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[0467]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"(?:20|9\\\\d)\\\\d{8}|[78]\\\\d{9,13}\",[10,11,12,13,14],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:222|444|(?:55|8\\\\d)\\\\d|666|777|999)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-9]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[4-7]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}|(?:708|8\\\\d\\\\d)\\\\d{6}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[136]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"709\\\\d{6}|(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\"],[\"(?:69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[0-3]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-6]|76(?:2[278]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"3[04-689]|[489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"(?:[15]\\\\d|800|92)\\\\d{7}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"[6-9]\\\\d{6}|[1-6]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"(?:[2489]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|7[67]|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d|90)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-9]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-39]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-5]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[689]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"[0-57-9]\\\\d{8}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[1245]|3[12])\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"(?:[1-6]\\\\d|71)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:3052(?:0[0-8]|[1-9]\\\\d)|5056(?:[0-35-9]\\\\d|4[0-68]))\\\\d{4}|(?:2742|305[3-9]|472[247-9]|505[2-57-9]|983[2-47-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,0,0,[\"305209\\\\d{4}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[6,7,8,9,10,11,12,13],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"00\",\"(?:20|33|[5-9]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"]]]],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11,12],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72|8\\\\d{4})\\\\d{4}|[89]\\\\d{5}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[47-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"7093\\\\d{5}|(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\"],[\"(?:639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|[579]\\\\d|63)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[579]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[235-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"],0,0,0,0,0,0,[\"2\\\\d{8}\",[9]]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,[\"348[57]\\\\d{7}\",[11]],0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bigint: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","// Edits text `value` (if `operation` is passed) and repositions the `caret` if needed.\n//\n// Example:\n//\n// value - '88005553535'\n// caret - 2 // starting from 0; is positioned before the first zero\n// operation - 'Backspace'\n//\n// Returns\n// {\n// \tvalue: '8005553535'\n// \tcaret: 1\n// }\n//\n// Currently supports just 'Delete' and 'Backspace' operations\n//\nexport default function edit(value, caret, operation) {\n  switch (operation) {\n    case 'Backspace':\n      // If there exists the previous character,\n      // then erase it and reposition the caret.\n      if (caret > 0) {\n        // Remove the previous character\n        value = value.slice(0, caret - 1) + value.slice(caret); // Position the caret where the previous (erased) character was\n\n        caret--;\n      }\n\n      break;\n\n    case 'Delete':\n      // Remove current digit (if any)\n      value = value.slice(0, caret) + value.slice(caret + 1);\n      break;\n  }\n\n  return {\n    value: value,\n    caret: caret\n  };\n}\n//# sourceMappingURL=edit.js.map","// Parses the `text`.\n//\n// Returns `{ value, caret }` where `caret` is\n// the caret position inside `value`\n// corresponding to the `caret_position` inside `text`.\n//\n// The `text` is parsed by feeding each character sequentially to\n// `parse_character(character, value, context)` function\n// and appending the result (if it's not `undefined`) to `value`.\n//\n// `context` argument is just a utility empty object that is shared within the bounds\n// of parsing a single input string. The `_parse()` function could use that object\n// to store any kind of \"flags\" in it in order to alter its behavior based when\n// parsing next characters within the same string. Or it could completely ignore it.\n//\n// Example:\n//\n// `text` is `8 (800) 555-35-35`,\n// `caret_position` is `4` (before the first `0`).\n// `parse_character` is `(character, value) =>\n//   if (character >= '0' && character <= '9') { return character }`.\n//\n// then `parse()` outputs `{ value: '88005553535', caret: 2 }`.\n//\nexport default function parse(text, caret_position, parse_character) {\n  var context = {};\n  var value = '';\n  var focused_input_character_index = 0;\n  var index = 0;\n\n  while (index < text.length) {\n    var character = parse_character(text[index], value, context);\n\n    if (character !== undefined) {\n      value += character;\n\n      if (caret_position !== undefined) {\n        if (caret_position === index) {\n          focused_input_character_index = value.length - 1;\n        } else if (caret_position > index) {\n          focused_input_character_index = value.length;\n        }\n      }\n    }\n\n    index++;\n  } // If caret position wasn't specified\n\n\n  if (caret_position === undefined) {\n    // Then set caret position to \"after the last input character\"\n    focused_input_character_index = value.length;\n  }\n\n  var result = {\n    value: value,\n    caret: focused_input_character_index\n  };\n  return result;\n}\n//# sourceMappingURL=parse.js.map","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\n// Counts all occurences of a symbol in a string\nexport function count_occurences(symbol, string) {\n  var count = 0; // Using `.split('')` here instead of normal `for ... of`\n  // because the importing application doesn't neccessarily include an ES6 polyfill.\n  // The `.split('')` approach discards \"exotic\" UTF-8 characters\n  // (the ones consisting of four bytes)\n  // but template placeholder characters don't fall into that range\n  // so skipping such miscellaneous \"exotic\" characters\n  // won't matter here for just counting placeholder character occurrences.\n\n  for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n    var character = _step.value;\n\n    if (character === symbol) {\n      count++;\n    }\n  }\n\n  return count;\n}\n//# sourceMappingURL=helpers.js.map","import { count_occurences } from './helpers.js';\nexport default function closeBraces(retained_template, template) {\n  var placeholder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'x';\n  var empty_placeholder = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ' ';\n  var cut_before = retained_template.length;\n  var opening_braces = count_occurences('(', retained_template);\n  var closing_braces = count_occurences(')', retained_template);\n  var dangling_braces = opening_braces - closing_braces;\n\n  while (dangling_braces > 0 && cut_before < template.length) {\n    retained_template += template[cut_before].replace(placeholder, empty_placeholder);\n\n    if (template[cut_before] === ')') {\n      dangling_braces--;\n    }\n\n    cut_before++;\n  }\n\n  return retained_template;\n}\n//# sourceMappingURL=closeBraces.js.map","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\nimport { count_occurences } from './helpers.js';\nimport close_braces from './closeBraces.js'; // Takes a `template` where character placeholders\n// are denoted by 'x'es (e.g. 'x (xxx) xxx-xx-xx').\n//\n// Returns a function which takes `value` characters\n// and returns the `template` filled with those characters.\n// If the `template` can only be partially filled\n// then it is cut off.\n//\n// If `should_close_braces` is `true`,\n// then it will also make sure all dangling braces are closed,\n// e.g. \"8 (8\" -> \"8 (8  )\" (iPhone style phone number input).\n//\n\nexport default function (template) {\n  var placeholder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n  var should_close_braces = arguments.length > 2 ? arguments[2] : undefined;\n\n  if (!template) {\n    return function (value) {\n      return {\n        text: value\n      };\n    };\n  }\n\n  var characters_in_template = count_occurences(placeholder, template);\n  return function (value) {\n    if (!value) {\n      return {\n        text: '',\n        template: template\n      };\n    }\n\n    var value_character_index = 0;\n    var filled_in_template = ''; // Using `.split('')` here instead of normal `for ... of`\n    // because the importing application doesn't neccessarily include an ES6 polyfill.\n    // The `.split('')` approach discards \"exotic\" UTF-8 characters\n    // (the ones consisting of four bytes)\n    // but template placeholder characters don't fall into that range\n    // and appending UTF-8 characters to a string in parts still works.\n\n    for (var _iterator = _createForOfIteratorHelperLoose(template.split('')), _step; !(_step = _iterator()).done;) {\n      var character = _step.value;\n\n      if (character !== placeholder) {\n        filled_in_template += character;\n        continue;\n      }\n\n      filled_in_template += value[value_character_index];\n      value_character_index++; // If the last available value character has been filled in,\n      // then return the filled in template\n      // (either trim the right part or retain it,\n      //  if no more character placeholders in there)\n\n      if (value_character_index === value.length) {\n        // If there are more character placeholders\n        // in the right part of the template\n        // then simply trim it.\n        if (value.length < characters_in_template) {\n          break;\n        }\n      }\n    }\n\n    if (should_close_braces) {\n      filled_in_template = close_braces(filled_in_template, template);\n    }\n\n    return {\n      text: filled_in_template,\n      template: template\n    };\n  };\n}\n//# sourceMappingURL=templateFormatter.js.map","import template_formatter from './templateFormatter.js'; // Formats `value` value preserving `caret` at the same character.\n//\n// `{ value, caret }` attribute is the result of `parse()` function call.\n//\n// Returns `{ text, caret }` where the new `caret` is the caret position\n// inside `text` text corresponding to the original `caret` position inside `value`.\n//\n// `formatter(value)` is a function returning `{ text, template }`.\n//\n// `text` is the `value` value formatted using `template`.\n// It may either cut off the non-filled right part of the `template`\n// or it may fill the non-filled character placeholders\n// in the right part of the `template` with `spacer`\n// which is a space (' ') character by default.\n//\n// `template` is the template used to format the `value`.\n// It can be either a full-length template or a partial template.\n//\n// `formatter` can also be a string — a `template`\n// where character placeholders are denoted by 'x'es.\n// In this case `formatter` function is automatically created.\n//\n// Example:\n//\n// `value` is '880',\n// `caret` is `2` (before the first `0`)\n//\n// `formatter` is `'880' =>\n//   { text: '8 (80 )', template: 'x (xxx) xxx-xx-xx' }`\n//\n// The result is `{ text: '8 (80 )', caret: 4 }`.\n//\n\nexport default function format(value, caret, formatter) {\n  if (typeof formatter === 'string') {\n    formatter = template_formatter(formatter);\n  }\n\n  var _ref = formatter(value) || {},\n      text = _ref.text,\n      template = _ref.template;\n\n  if (text === undefined) {\n    text = value;\n  }\n\n  if (template) {\n    if (caret === undefined) {\n      caret = text.length;\n    } else {\n      var index = 0;\n      var found = false;\n      var possibly_last_input_character_index = -1;\n\n      while (index < text.length && index < template.length) {\n        // Character placeholder found\n        if (text[index] !== template[index]) {\n          if (caret === 0) {\n            found = true;\n            caret = index;\n            break;\n          }\n\n          possibly_last_input_character_index = index;\n          caret--;\n        }\n\n        index++;\n      } // If the caret was positioned after last input character,\n      // then the text caret index is just after the last input character.\n\n\n      if (!found) {\n        caret = possibly_last_input_character_index + 1;\n      }\n    }\n  }\n\n  return {\n    text: text,\n    caret: caret\n  };\n}\n//# sourceMappingURL=format.js.map","export function isReadOnly(element) {\n  return element.hasAttribute('readonly');\n} // Gets <input/> selection bounds\n\nexport function getSelection(element) {\n  // If no selection, return nothing\n  if (element.selectionStart === element.selectionEnd) {\n    return;\n  }\n\n  return {\n    start: element.selectionStart,\n    end: element.selectionEnd\n  };\n} // Key codes\n\nexport var Keys = {\n  Backspace: 8,\n  Delete: 46\n}; // Finds out the operation to be intercepted and performed\n// based on the key down event `keyCode`.\n\nexport function getOperation(event) {\n  switch (event.keyCode) {\n    case Keys.Backspace:\n      return 'Backspace';\n\n    case Keys.Delete:\n      return 'Delete';\n  }\n} // Gets <input/> caret position\n\nexport function getCaretPosition(element) {\n  return element.selectionStart;\n} // Sets <input/> caret position\n\nexport function setCaretPosition(element, caret_position) {\n  // Sanity check\n  if (caret_position === undefined) {\n    return;\n  } // Set caret position.\n  // There has been an issue with caret positioning on Android devices.\n  // https://github.com/catamphetamine/input-format/issues/2\n  // I was revisiting this issue and looked for similar issues in other libraries.\n  // For example, there's [`text-mask`](https://github.com/text-mask/text-mask) library.\n  // They've had exactly the same issue when the caret seemingly refused to be repositioned programmatically.\n  // The symptoms were the same: whenever the caret passed through a non-digit character of a mask (a whitespace, a bracket, a dash, etc), it looked as if it placed itself one character before its correct position.\n  // https://github.com/text-mask/text-mask/issues/300\n  // They seem to have found a basic fix for it: calling `input.setSelectionRange()` in a timeout rather than instantly for Android devices.\n  // https://github.com/text-mask/text-mask/pull/400/files\n  // I've implemented the same workaround here.\n\n\n  if (isAndroid()) {\n    setTimeout(function () {\n      return element.setSelectionRange(caret_position, caret_position);\n    }, 0);\n  } else {\n    element.setSelectionRange(caret_position, caret_position);\n  }\n}\n\nfunction isAndroid() {\n  // `navigator` is not defined when running mocha tests.\n  if (typeof navigator !== 'undefined') {\n    return ANDROID_USER_AGENT_REG_EXP.test(navigator.userAgent);\n  }\n}\n\nvar ANDROID_USER_AGENT_REG_EXP = /Android/i;\n//# sourceMappingURL=dom.js.map","import edit from './edit.js';\nimport parse from './parse.js';\nimport format from './format.js';\nimport { isReadOnly, getOperation, getSelection, getCaretPosition, setCaretPosition } from './dom.js'; // Deprecated.\n// I don't know why this function exists.\n\nexport function onCut(event, input, _parse, _format, on_change) {\n  if (isReadOnly(input)) {\n    return;\n  } // The actual cut hasn't happened just yet hence the timeout.\n\n\n  setTimeout(function () {\n    return formatInputText(input, _parse, _format, undefined, on_change);\n  }, 0);\n} // Deprecated.\n// I don't know why this function exists.\n\nexport function onPaste(event, input, _parse, _format, on_change) {\n  if (isReadOnly(input)) {\n    return;\n  }\n\n  var selection = getSelection(input); // If selection is made,\n  // just erase the selected text\n  // prior to pasting\n\n  if (selection) {\n    eraseSelection(input, selection);\n  }\n\n  formatInputText(input, _parse, _format, undefined, on_change);\n}\nexport function onChange(event, input, _parse, _format, on_change) {\n  formatInputText(input, _parse, _format, undefined, on_change);\n} // \"Delete\" and \"Backspace\" keys are special\n// in a way that they're not handled by the regular `onChange()` handler\n// and instead are intercepted and re-applied manually.\n// The reason is that normally hitting \"Backspace\" or \"Delete\"\n// results in erasing a character, but that character might be any character,\n// while it would be a better \"user experience\" if it erased not just any character\n// but the closest \"meaningful\" character.\n// For example, if a template is `(xxx) xxx-xxxx`,\n// and the `<input/>` value is `(111) 222-3333`,\n// then, if a user begins erasing the `3333` part via \"Backspace\"\n// and reaches the \"-\" character, then it would just erase the \"-\" character.\n// Nothing wrong with that, but it would be a better \"user experience\"\n// if hitting \"Backspace\" at that position would erase the closest \"meaningful\"\n// character, which would be the rightmost `2`.\n// So, what this `onKeyDown()` handler does is it intercepts\n// \"Backspace\" and \"Delete\" keys and re-applies those operations manually\n// following the logic described above.\n\nexport function onKeyDown(event, input, _parse, _format, on_change) {\n  if (isReadOnly(input)) {\n    return;\n  }\n\n  var operation = getOperation(event);\n\n  switch (operation) {\n    case 'Delete':\n    case 'Backspace':\n      // Intercept this operation and perform it manually.\n      event.preventDefault();\n      var selection = getSelection(input); // If a selection is made, just erase the selected text.\n\n      if (selection) {\n        eraseSelection(input, selection);\n        return formatInputText(input, _parse, _format, undefined, on_change);\n      } // Else, perform the (character erasing) operation manually.\n\n\n      return formatInputText(input, _parse, _format, operation, on_change);\n\n    default: // Will be handled normally as part of the `onChange` handler.\n\n  }\n}\n/**\r\n * Erases the selected text inside an `<input/>`.\r\n * @param  {DOMElement} input\r\n * @param  {Selection} selection\r\n */\n\nfunction eraseSelection(input, selection) {\n  var text = input.value;\n  text = text.slice(0, selection.start) + text.slice(selection.end);\n  input.value = text;\n  setCaretPosition(input, selection.start);\n}\n/**\r\n * Parses and re-formats `<input/>` textual value.\r\n * E.g. when a user enters something into the `<input/>`\r\n * that raw input must first be parsed and the re-formatted properly.\r\n * Is called either after some user input (e.g. entered a character, pasted something)\r\n * or after the user performed an `operation` (e.g. \"Backspace\", \"Delete\").\r\n * @param  {DOMElement} input\r\n * @param  {Function} parse\r\n * @param  {Function} format\r\n * @param  {string} [operation] - The operation that triggered `<input/>` textual value change. E.g. \"Backspace\", \"Delete\".\r\n * @param  {Function} onChange\r\n */\n\n\nfunction formatInputText(input, _parse, _format, operation, on_change) {\n  // Parse `<input/>` textual value.\n  // Get the `value` and `caret` position.\n  var _parse2 = parse(input.value, getCaretPosition(input), _parse),\n      value = _parse2.value,\n      caret = _parse2.caret; // If a user performed an operation (\"Backspace\", \"Delete\")\n  // then apply that operation and get the new `value` and `caret` position.\n\n\n  if (operation) {\n    var newValueAndCaret = edit(value, caret, operation);\n    value = newValueAndCaret.value;\n    caret = newValueAndCaret.caret;\n  } // Format the `value`.\n  // (and reposition the caret accordingly)\n\n\n  var formatted = format(value, caret, _format);\n  var text = formatted.text;\n  caret = formatted.caret; // Set `<input/>` textual value manually\n  // to prevent React from resetting the caret position\n  // later inside a subsequent `render()`.\n  // Doesn't work for custom `inputComponent`s for some reason.\n\n  input.value = text; // Position the caret properly.\n\n  setCaretPosition(input, caret); // If the `<input/>` textual value did change,\n  // then the parsed `value` may have changed too.\n\n  on_change(value);\n}\n//# sourceMappingURL=inputControl.js.map","var _excluded = [\"value\", \"parse\", \"format\", \"inputComponent\", \"onChange\", \"onKeyDown\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n// This is just `./ReactInput.js` rewritten in Hooks.\nimport React, { useCallback, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { onChange as onInputChange, onKeyDown as onInputKeyDown } from '../inputControl.js'; // Usage:\n//\n// <ReactInput\n// \tvalue={this.state.phone}\n// \tonChange={phone => this.setState({ phone })}\n// \tparse={character => character}\n// \tformat={value => ({ text: value, template: 'xxxxxxxx' })}/>\n//\n\nfunction Input(_ref, ref) {\n  var value = _ref.value,\n      parse = _ref.parse,\n      format = _ref.format,\n      InputComponent = _ref.inputComponent,\n      onChange = _ref.onChange,\n      onKeyDown = _ref.onKeyDown,\n      rest = _objectWithoutProperties(_ref, _excluded);\n\n  var internalRef = useRef();\n  var setRef = useCallback(function (instance) {\n    internalRef.current = instance;\n\n    if (ref) {\n      if (typeof ref === 'function') {\n        ref(instance);\n      } else {\n        ref.current = instance;\n      }\n    }\n  }, [ref]);\n\n  var _onChange = useCallback(function (event) {\n    return onInputChange(event, internalRef.current, parse, format, onChange);\n  }, [internalRef, parse, format, onChange]);\n\n  var _onKeyDown = useCallback(function (event) {\n    if (onKeyDown) {\n      onKeyDown(event);\n    } // If `onKeyDown()` handler above has called `event.preventDefault()`\n    // then ignore this `keydown` event.\n\n\n    if (event.defaultPrevented) {\n      return;\n    }\n\n    return onInputKeyDown(event, internalRef.current, parse, format, onChange);\n  }, [internalRef, parse, format, onChange, onKeyDown]);\n\n  return /*#__PURE__*/React.createElement(InputComponent, _extends({}, rest, {\n    ref: setRef,\n    value: format(isEmptyValue(value) ? '' : value).text,\n    onKeyDown: _onKeyDown,\n    onChange: _onChange\n  }));\n}\n\nInput = /*#__PURE__*/React.forwardRef(Input);\nInput.propTypes = {\n  // Parses a single characher of `<input/>` text.\n  parse: PropTypes.func.isRequired,\n  // Formats `value` into `<input/>` text.\n  format: PropTypes.func.isRequired,\n  // Renders `<input/>` by default.\n  inputComponent: PropTypes.elementType.isRequired,\n  // `<input/>` `type` attribute.\n  type: PropTypes.string.isRequired,\n  // Is parsed from <input/> text.\n  value: PropTypes.string,\n  // This handler is called each time `<input/>` text is changed.\n  onChange: PropTypes.func.isRequired,\n  // Passthrough\n  onKeyDown: PropTypes.func,\n  onCut: PropTypes.func,\n  onPaste: PropTypes.func\n};\nInput.defaultProps = {\n  // Renders `<input/>` by default.\n  inputComponent: 'input',\n  // `<input/>` `type` attribute.\n  type: 'text'\n};\nexport default Input;\n\nfunction isEmptyValue(value) {\n  return value === undefined || value === null;\n}\n//# sourceMappingURL=Input.js.map","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n  a = a.split('-');\n  b = b.split('-');\n  var pa = a[0].split('.');\n  var pb = b[0].split('.');\n\n  for (var i = 0; i < 3; i++) {\n    var na = Number(pa[i]);\n    var nb = Number(pb[i]);\n    if (na > nb) return 1;\n    if (nb > na) return -1;\n    if (!isNaN(na) && isNaN(nb)) return 1;\n    if (isNaN(na) && !isNaN(nb)) return -1;\n  }\n\n  if (a[1] && b[1]) {\n    return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n  }\n\n  return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","var objectConstructor = {}.constructor;\nexport default function isObject(object) {\n  return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n//# sourceMappingURL=isObject.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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\nimport compare from './tools/semver-compare.js';\nimport isObject from './helpers/isObject.js'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n  function Metadata(metadata) {\n    _classCallCheck(this, Metadata);\n\n    validateMetadata(metadata);\n    this.metadata = metadata;\n    setVersion.call(this, metadata);\n  }\n\n  _createClass(Metadata, [{\n    key: \"getCountries\",\n    value: function getCountries() {\n      return Object.keys(this.metadata.countries).filter(function (_) {\n        return _ !== '001';\n      });\n    }\n  }, {\n    key: \"getCountryMetadata\",\n    value: function getCountryMetadata(countryCode) {\n      return this.metadata.countries[countryCode];\n    }\n  }, {\n    key: \"nonGeographic\",\n    value: function nonGeographic() {\n      if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n      // It's present in metadata generated from `1.7.35` to `1.7.37`.\n      // The test case could be found by searching for \"nonGeographical\".\n\n      return this.metadata.nonGeographic || this.metadata.nonGeographical;\n    }\n  }, {\n    key: \"hasCountry\",\n    value: function hasCountry(country) {\n      return this.getCountryMetadata(country) !== undefined;\n    }\n  }, {\n    key: \"hasCallingCode\",\n    value: function hasCallingCode(callingCode) {\n      if (this.getCountryCodesForCallingCode(callingCode)) {\n        return true;\n      }\n\n      if (this.nonGeographic()) {\n        if (this.nonGeographic()[callingCode]) {\n          return true;\n        }\n      } else {\n        // A hacky workaround for old custom metadata (generated before V4).\n        var countryCodes = this.countryCallingCodes()[callingCode];\n\n        if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n          return true;\n        }\n      }\n    }\n  }, {\n    key: \"isNonGeographicCallingCode\",\n    value: function isNonGeographicCallingCode(callingCode) {\n      if (this.nonGeographic()) {\n        return this.nonGeographic()[callingCode] ? true : false;\n      } else {\n        return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n      }\n    } // Deprecated.\n\n  }, {\n    key: \"country\",\n    value: function country(countryCode) {\n      return this.selectNumberingPlan(countryCode);\n    }\n  }, {\n    key: \"selectNumberingPlan\",\n    value: function selectNumberingPlan(countryCode, callingCode) {\n      // Supports just passing `callingCode` as the first argument.\n      if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n        callingCode = countryCode;\n        countryCode = null;\n      }\n\n      if (countryCode && countryCode !== '001') {\n        if (!this.hasCountry(countryCode)) {\n          throw new Error(\"Unknown country: \".concat(countryCode));\n        }\n\n        this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n      } else if (callingCode) {\n        if (!this.hasCallingCode(callingCode)) {\n          throw new Error(\"Unknown calling code: \".concat(callingCode));\n        }\n\n        this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n      } else {\n        this.numberingPlan = undefined;\n      }\n\n      return this;\n    }\n  }, {\n    key: \"getCountryCodesForCallingCode\",\n    value: function getCountryCodesForCallingCode(callingCode) {\n      var countryCodes = this.countryCallingCodes()[callingCode];\n\n      if (countryCodes) {\n        // Metadata before V4 included \"non-geographic entity\" calling codes\n        // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n        // Now the semantics of `country_calling_codes` has changed:\n        // it's specifically for \"countries\" now.\n        // Older versions of custom metadata will simply skip parsing\n        // \"non-geographic entity\" phone numbers with new versions\n        // of this library: it's not considered a bug,\n        // because such numbers are extremely rare,\n        // and developers extremely rarely use custom metadata.\n        if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n          return;\n        }\n\n        return countryCodes;\n      }\n    }\n  }, {\n    key: \"getCountryCodeForCallingCode\",\n    value: function getCountryCodeForCallingCode(callingCode) {\n      var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n      if (countryCodes) {\n        return countryCodes[0];\n      }\n    }\n  }, {\n    key: \"getNumberingPlanMetadata\",\n    value: function getNumberingPlanMetadata(callingCode) {\n      var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n      if (countryCode) {\n        return this.getCountryMetadata(countryCode);\n      }\n\n      if (this.nonGeographic()) {\n        var metadata = this.nonGeographic()[callingCode];\n\n        if (metadata) {\n          return metadata;\n        }\n      } else {\n        // A hacky workaround for old custom metadata (generated before V4).\n        // In that metadata, there was no concept of \"non-geographic\" metadata\n        // so metadata for `001` country code was stored along with other countries.\n        // The test case can be found by searching for:\n        // \"should work around `nonGeographic` metadata not existing\".\n        var countryCodes = this.countryCallingCodes()[callingCode];\n\n        if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n          return this.metadata.countries['001'];\n        }\n      }\n    } // Deprecated.\n\n  }, {\n    key: \"countryCallingCode\",\n    value: function countryCallingCode() {\n      return this.numberingPlan.callingCode();\n    } // Deprecated.\n\n  }, {\n    key: \"IDDPrefix\",\n    value: function IDDPrefix() {\n      return this.numberingPlan.IDDPrefix();\n    } // Deprecated.\n\n  }, {\n    key: \"defaultIDDPrefix\",\n    value: function defaultIDDPrefix() {\n      return this.numberingPlan.defaultIDDPrefix();\n    } // Deprecated.\n\n  }, {\n    key: \"nationalNumberPattern\",\n    value: function nationalNumberPattern() {\n      return this.numberingPlan.nationalNumberPattern();\n    } // Deprecated.\n\n  }, {\n    key: \"possibleLengths\",\n    value: function possibleLengths() {\n      return this.numberingPlan.possibleLengths();\n    } // Deprecated.\n\n  }, {\n    key: \"formats\",\n    value: function formats() {\n      return this.numberingPlan.formats();\n    } // Deprecated.\n\n  }, {\n    key: \"nationalPrefixForParsing\",\n    value: function nationalPrefixForParsing() {\n      return this.numberingPlan.nationalPrefixForParsing();\n    } // Deprecated.\n\n  }, {\n    key: \"nationalPrefixTransformRule\",\n    value: function nationalPrefixTransformRule() {\n      return this.numberingPlan.nationalPrefixTransformRule();\n    } // Deprecated.\n\n  }, {\n    key: \"leadingDigits\",\n    value: function leadingDigits() {\n      return this.numberingPlan.leadingDigits();\n    } // Deprecated.\n\n  }, {\n    key: \"hasTypes\",\n    value: function hasTypes() {\n      return this.numberingPlan.hasTypes();\n    } // Deprecated.\n\n  }, {\n    key: \"type\",\n    value: function type(_type) {\n      return this.numberingPlan.type(_type);\n    } // Deprecated.\n\n  }, {\n    key: \"ext\",\n    value: function ext() {\n      return this.numberingPlan.ext();\n    }\n  }, {\n    key: \"countryCallingCodes\",\n    value: function countryCallingCodes() {\n      if (this.v1) return this.metadata.country_phone_code_to_countries;\n      return this.metadata.country_calling_codes;\n    } // Deprecated.\n\n  }, {\n    key: \"chooseCountryByCountryCallingCode\",\n    value: function chooseCountryByCountryCallingCode(callingCode) {\n      return this.selectNumberingPlan(callingCode);\n    }\n  }, {\n    key: \"hasSelectedNumberingPlan\",\n    value: function hasSelectedNumberingPlan() {\n      return this.numberingPlan !== undefined;\n    }\n  }]);\n\n  return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan = /*#__PURE__*/function () {\n  function NumberingPlan(metadata, globalMetadataObject) {\n    _classCallCheck(this, NumberingPlan);\n\n    this.globalMetadataObject = globalMetadataObject;\n    this.metadata = metadata;\n    setVersion.call(this, globalMetadataObject.metadata);\n  }\n\n  _createClass(NumberingPlan, [{\n    key: \"callingCode\",\n    value: function callingCode() {\n      return this.metadata[0];\n    } // Formatting information for regions which share\n    // a country calling code is contained by only one region\n    // for performance reasons. For example, for NANPA region\n    // (\"North American Numbering Plan Administration\",\n    //  which includes USA, Canada, Cayman Islands, Bahamas, etc)\n    // it will be contained in the metadata for `US`.\n\n  }, {\n    key: \"getDefaultCountryMetadataForRegion\",\n    value: function getDefaultCountryMetadataForRegion() {\n      return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n    } // Is always present.\n\n  }, {\n    key: \"IDDPrefix\",\n    value: function IDDPrefix() {\n      if (this.v1 || this.v2) return;\n      return this.metadata[1];\n    } // Is only present when a country supports multiple IDD prefixes.\n\n  }, {\n    key: \"defaultIDDPrefix\",\n    value: function defaultIDDPrefix() {\n      if (this.v1 || this.v2) return;\n      return this.metadata[12];\n    }\n  }, {\n    key: \"nationalNumberPattern\",\n    value: function nationalNumberPattern() {\n      if (this.v1 || this.v2) return this.metadata[1];\n      return this.metadata[2];\n    } // \"possible length\" data is always present in Google's metadata.\n\n  }, {\n    key: \"possibleLengths\",\n    value: function possibleLengths() {\n      if (this.v1) return;\n      return this.metadata[this.v2 ? 2 : 3];\n    }\n  }, {\n    key: \"_getFormats\",\n    value: function _getFormats(metadata) {\n      return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n    } // For countries of the same region (e.g. NANPA)\n    // formats are all stored in the \"main\" country for that region.\n    // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n  }, {\n    key: \"formats\",\n    value: function formats() {\n      var _this = this;\n\n      var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n      return formats.map(function (_) {\n        return new Format(_, _this);\n      });\n    }\n  }, {\n    key: \"nationalPrefix\",\n    value: function nationalPrefix() {\n      return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n    }\n  }, {\n    key: \"_getNationalPrefixFormattingRule\",\n    value: function _getNationalPrefixFormattingRule(metadata) {\n      return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n    } // For countries of the same region (e.g. NANPA)\n    // national prefix formatting rule is stored in the \"main\" country for that region.\n    // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n  }, {\n    key: \"nationalPrefixFormattingRule\",\n    value: function nationalPrefixFormattingRule() {\n      return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n    }\n  }, {\n    key: \"_nationalPrefixForParsing\",\n    value: function _nationalPrefixForParsing() {\n      return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n    }\n  }, {\n    key: \"nationalPrefixForParsing\",\n    value: function nationalPrefixForParsing() {\n      // If `national_prefix_for_parsing` is not set explicitly,\n      // then infer it from `national_prefix` (if any)\n      return this._nationalPrefixForParsing() || this.nationalPrefix();\n    }\n  }, {\n    key: \"nationalPrefixTransformRule\",\n    value: function nationalPrefixTransformRule() {\n      return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n    }\n  }, {\n    key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n    value: function _getNationalPrefixIsOptionalWhenFormatting() {\n      return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n    } // For countries of the same region (e.g. NANPA)\n    // \"national prefix is optional when formatting\" flag is\n    // stored in the \"main\" country for that region.\n    // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n  }, {\n    key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n    value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n      return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n    }\n  }, {\n    key: \"leadingDigits\",\n    value: function leadingDigits() {\n      return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n    }\n  }, {\n    key: \"types\",\n    value: function types() {\n      return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n    }\n  }, {\n    key: \"hasTypes\",\n    value: function hasTypes() {\n      // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n      /* istanbul ignore next */\n      if (this.types() && this.types().length === 0) {\n        return false;\n      } // Versions <= 1.2.4: can be `undefined`.\n      // Version >= 1.2.5: can be `0`.\n\n\n      return !!this.types();\n    }\n  }, {\n    key: \"type\",\n    value: function type(_type2) {\n      if (this.hasTypes() && getType(this.types(), _type2)) {\n        return new Type(getType(this.types(), _type2), this);\n      }\n    }\n  }, {\n    key: \"ext\",\n    value: function ext() {\n      if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n      return this.metadata[13] || DEFAULT_EXT_PREFIX;\n    }\n  }]);\n\n  return NumberingPlan;\n}();\n\nvar Format = /*#__PURE__*/function () {\n  function Format(format, metadata) {\n    _classCallCheck(this, Format);\n\n    this._format = format;\n    this.metadata = metadata;\n  }\n\n  _createClass(Format, [{\n    key: \"pattern\",\n    value: function pattern() {\n      return this._format[0];\n    }\n  }, {\n    key: \"format\",\n    value: function format() {\n      return this._format[1];\n    }\n  }, {\n    key: \"leadingDigitsPatterns\",\n    value: function leadingDigitsPatterns() {\n      return this._format[2] || [];\n    }\n  }, {\n    key: \"nationalPrefixFormattingRule\",\n    value: function nationalPrefixFormattingRule() {\n      return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n    }\n  }, {\n    key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n    value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n      return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n    }\n  }, {\n    key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n    value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n      // National prefix is omitted if there's no national prefix formatting rule\n      // set for this country, or when the national prefix formatting rule\n      // contains no national prefix itself, or when this rule is set but\n      // national prefix is optional for this phone number format\n      // (and it is not enforced explicitly)\n      return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n    } // Checks whether national prefix formatting rule contains national prefix.\n\n  }, {\n    key: \"usesNationalPrefix\",\n    value: function usesNationalPrefix() {\n      return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n      !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n      // when `national_prefix_formatting_rule` is not present.\n      // So, `true` or `false` are returned explicitly here, so that\n      // `0` number isn't returned.\n      ? true : false;\n    }\n  }, {\n    key: \"internationalFormat\",\n    value: function internationalFormat() {\n      return this._format[5] || this.format();\n    }\n  }]);\n\n  return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type = /*#__PURE__*/function () {\n  function Type(type, metadata) {\n    _classCallCheck(this, Type);\n\n    this.type = type;\n    this.metadata = metadata;\n  }\n\n  _createClass(Type, [{\n    key: \"pattern\",\n    value: function pattern() {\n      if (this.metadata.v1) return this.type;\n      return this.type[0];\n    }\n  }, {\n    key: \"possibleLengths\",\n    value: function possibleLengths() {\n      if (this.metadata.v1) return;\n      return this.type[1] || this.metadata.possibleLengths();\n    }\n  }]);\n\n  return Type;\n}();\n\nfunction getType(types, type) {\n  switch (type) {\n    case 'FIXED_LINE':\n      return types[0];\n\n    case 'MOBILE':\n      return types[1];\n\n    case 'TOLL_FREE':\n      return types[2];\n\n    case 'PREMIUM_RATE':\n      return types[3];\n\n    case 'PERSONAL_NUMBER':\n      return types[4];\n\n    case 'VOICEMAIL':\n      return types[5];\n\n    case 'UAN':\n      return types[6];\n\n    case 'PAGER':\n      return types[7];\n\n    case 'VOIP':\n      return types[8];\n\n    case 'SHARED_COST':\n      return types[9];\n  }\n}\n\nexport function validateMetadata(metadata) {\n  if (!metadata) {\n    throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n  } // `country_phone_code_to_countries` was renamed to `country_calling_codes` in `1.0.18`.\n  // For that reason, it's not used in this detection algorithm.\n  // Instead, it detects by `countries: {}` property existence.\n\n\n  if (!isObject(metadata) || !isObject(metadata.countries)) {\n    throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(isObject(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(metadata) + ': ' + metadata, \".\"));\n  }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar typeOf = function typeOf(_) {\n  return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param  {string} country\r\n * @param  {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n  metadata = new Metadata(metadata);\n\n  if (metadata.hasCountry(country)) {\n    return metadata.country(country).ext();\n  }\n\n  return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param  {string} country\r\n * @param  {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n  metadata = new Metadata(metadata);\n\n  if (metadata.hasCountry(country)) {\n    return metadata.country(country).countryCallingCode();\n  }\n\n  throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n  // metadata = new Metadata(metadata)\n  // return metadata.hasCountry(country)\n  return metadata.countries.hasOwnProperty(country);\n}\n\nfunction setVersion(metadata) {\n  var version = metadata.version;\n\n  if (typeof version === 'number') {\n    this.v1 = version === 1;\n    this.v2 = version === 2;\n    this.v3 = version === 3;\n    this.v4 = version === 4;\n  } else {\n    if (!version) {\n      this.v1 = true;\n    } else if (compare(version, V3) === -1) {\n      this.v2 = true;\n    } else if (compare(version, V4) === -1) {\n      this.v3 = true;\n    } else {\n      this.v4 = true;\n    }\n  }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","import mergeArrays from './mergeArrays.js';\nexport default function checkNumberLength(nationalNumber, metadata) {\n  return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n  var type_info = metadata.type(type); // There should always be \"<possiblePengths/>\" set for every type element.\n  // This is declared in the XML schema.\n  // For size efficiency, where a sub-description (e.g. fixed-line)\n  // has the same \"<possiblePengths/>\" as the \"general description\", this is missing,\n  // so we fall back to the \"general description\". Where no numbers of the type\n  // exist at all, there is one possible length (-1) which is guaranteed\n  // not to match the length of any real phone number.\n\n  var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths    = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n  // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n  if (!possible_lengths) {\n    return 'IS_POSSIBLE';\n  }\n\n  if (type === 'FIXED_LINE_OR_MOBILE') {\n    // No such country in metadata.\n\n    /* istanbul ignore next */\n    if (!metadata.type('FIXED_LINE')) {\n      // The rare case has been encountered where no fixedLine data is available\n      // (true for some non-geographic entities), so we just check mobile.\n      return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n    }\n\n    var mobile_type = metadata.type('MOBILE');\n\n    if (mobile_type) {\n      // Merge the mobile data in if there was any. \"Concat\" creates a new\n      // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n      // Note that when adding the possible lengths from mobile, we have\n      // to again check they aren't empty since if they are this indicates\n      // they are the same as the general desc and should be obtained from there.\n      possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n      // re-sort (duplicates are okay). Sorting isn't so expensive because\n      // the lists are very small.\n      // if (local_lengths) {\n      // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n      // } else {\n      // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n      // }\n    }\n  } // If the type doesn't exist then return 'INVALID_LENGTH'.\n  else if (type && !type_info) {\n    return 'INVALID_LENGTH';\n  }\n\n  var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n  // // This is safe because there is never an overlap beween the possible lengths\n  // // and the local-only lengths; this is checked at build time.\n  // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n  // {\n  // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n  // }\n\n  var minimum_length = possible_lengths[0];\n\n  if (minimum_length === actual_length) {\n    return 'IS_POSSIBLE';\n  }\n\n  if (minimum_length > actual_length) {\n    return 'TOO_SHORT';\n  }\n\n  if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n    return 'TOO_LONG';\n  } // We skip the first element since we've already checked it.\n\n\n  return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=checkNumberLength.js.map","import Metadata from './metadata.js';\nimport checkNumberLength from './helpers/checkNumberLength.js';\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param  {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param  {object} [options]\r\n * @param  {object} metadata\r\n * @return {string}\r\n */\n\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n  /* istanbul ignore if */\n  if (options === undefined) {\n    options = {};\n  }\n\n  metadata = new Metadata(metadata);\n\n  if (options.v2) {\n    if (!input.countryCallingCode) {\n      throw new Error('Invalid phone number object passed');\n    }\n\n    metadata.selectNumberingPlan(input.countryCallingCode);\n  } else {\n    if (!input.phone) {\n      return false;\n    }\n\n    if (input.country) {\n      if (!metadata.hasCountry(input.country)) {\n        throw new Error(\"Unknown country: \".concat(input.country));\n      }\n\n      metadata.country(input.country);\n    } else {\n      if (!input.countryCallingCode) {\n        throw new Error('Invalid phone number object passed');\n      }\n\n      metadata.selectNumberingPlan(input.countryCallingCode);\n    }\n  } // Old metadata (< 1.0.18) had no \"possible length\" data.\n\n\n  if (metadata.possibleLengths()) {\n    return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n  } else {\n    // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n    // were missing for \"non-geographical\" numbering plans.\n    // Just assume the number is possible in such cases:\n    // it's unlikely that anyone generated their custom metadata\n    // in that short period of time (one day).\n    // This code can be removed in some future major version update.\n    if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n      // \"Non-geographic entities\" did't have `possibleLengths`\n      // due to a bug in metadata generation process.\n      return true;\n    } else {\n      throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n    }\n  }\n}\nexport function isPossibleNumber(nationalNumber, metadata) {\n  //, isInternational) {\n  switch (checkNumberLength(nationalNumber, metadata)) {\n    case 'IS_POSSIBLE':\n      return true;\n    // This library ignores \"local-only\" phone numbers (for simplicity).\n    // See the readme for more info on what are \"local-only\" phone numbers.\n    // case 'IS_POSSIBLE_LOCAL_ONLY':\n    // \treturn !isInternational\n\n    default:\n      return false;\n  }\n}\n//# sourceMappingURL=isPossible.js.map","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regular_expression) {\n  // If assigning the `''` default value is moved to the arguments above,\n  // code coverage would decrease for some weird reason.\n  text = text || '';\n  return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\n//# sourceMappingURL=matchesEntirely.js.map","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\nimport Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n  // If assigning the `{}` default value is moved to the arguments above,\n  // code coverage would decrease for some weird reason.\n  options = options || {}; // When `parse()` returns an empty object — `{}` —\n  // that means that the phone number is malformed,\n  // so it can't possibly be valid.\n\n  if (!input.country && !input.countryCallingCode) {\n    return;\n  }\n\n  metadata = new Metadata(metadata);\n  metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n  var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n  // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n  // Is this national number even valid for this country\n\n  if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n    return;\n  } // Is it fixed line number\n\n\n  if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n    // Because duplicate regular expressions are removed\n    // to reduce metadata size, if \"mobile\" pattern is \"\"\n    // then it means it was removed due to being a duplicate of the fixed-line pattern.\n    //\n    if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n      return 'FIXED_LINE_OR_MOBILE';\n    } // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n    // For example, for \"US\" country.\n    // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n    // that happened to be `undefined` for `MOBILE` in that case.\n    // Newer metadata (>= `1.0.18`) has another data structure that is\n    // not `undefined` for `MOBILE` in that case (it's just an empty array).\n    // So this `if` is just for backwards compatibility with old metadata.\n\n\n    if (!metadata.type('MOBILE')) {\n      return 'FIXED_LINE_OR_MOBILE';\n    } // Check if the number happens to qualify as both fixed line and mobile.\n    // (no such country in the minimal metadata set)\n\n    /* istanbul ignore if */\n\n\n    if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n      return 'FIXED_LINE_OR_MOBILE';\n    }\n\n    return 'FIXED_LINE';\n  }\n\n  for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n    var type = _step.value;\n\n    if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n      return type;\n    }\n  }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n  type = metadata.type(type);\n\n  if (!type || !type.pattern()) {\n    return false;\n  } // Check if any possible number lengths are present;\n  // if so, we use them to avoid checking\n  // the validation pattern if they don't match.\n  // If they are absent, this means they match\n  // the general description, which we have\n  // already checked before a specific number type.\n\n\n  if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n    return false;\n  }\n\n  return matchesEntirely(nationalNumber, type.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","import Metadata from './metadata.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport getNumberType from './helpers/getNumberType.js';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n  // If assigning the `{}` default value is moved to the arguments above,\n  // code coverage would decrease for some weird reason.\n  options = options || {};\n  metadata = new Metadata(metadata);\n  metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n  // distinguishing different countries having the same `countryCallingCode`.\n\n  if (metadata.hasTypes()) {\n    return getNumberType(input, options, metadata.metadata) !== undefined;\n  } // If there are no type regexps for this country in metadata then use\n  // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n  var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n  return matchesEntirely(nationalNumber, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=isValid.js.map","import Metadata from '../metadata.js';\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param  {string} callingCode — Calling code.\r\n * @param  {string} nationalNumber — National (significant) number.\r\n * @param  {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\n\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n  var _metadata = new Metadata(metadata);\n\n  var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n\n  if (!possibleCountries) {\n    return [];\n  }\n\n  return possibleCountries.filter(function (country) {\n    return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n  });\n}\n\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n  var _metadata = new Metadata(metadata);\n\n  _metadata.selectNumberingPlan(country);\n\n  if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n    return true;\n  }\n\n  return false;\n}\n//# sourceMappingURL=getPossibleCountriesForNumber.js.map","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","import Metadata from '../metadata.js';\nimport { VALID_DIGITS } from '../constants.js';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n  if (!country) {\n    return;\n  } // Check if the number is IDD-prefixed.\n\n\n  var countryMetadata = new Metadata(metadata);\n  countryMetadata.selectNumberingPlan(country, callingCode);\n  var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n  if (number.search(IDDPrefixPattern) !== 0) {\n    return;\n  } // Strip IDD prefix.\n\n\n  number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n  // then those digits are a country calling code.\n  // Since no country code starts with a `0`,\n  // the code below validates that the next digit (if present) is not `0`.\n\n  var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n  if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n    if (matchedGroups[1] === '0') {\n      return;\n    }\n  }\n\n  return number;\n}\n//# sourceMappingURL=stripIddPrefix.js.map","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used  in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n  if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n    // See METADATA.md for the description of\n    // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n    // Attempt to parse the first digits as a national prefix.\n    var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n    var prefixMatch = prefixPattern.exec(number);\n\n    if (prefixMatch) {\n      var nationalNumber;\n      var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n      // If a `national_prefix_for_parsing` has any \"capturing groups\"\n      // then it means that the national (significant) number is equal to\n      // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n      // and nothing could be said about the actual national prefix:\n      // what is it and was it even there.\n      // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n      // then everything it matches is a national prefix.\n      // To determine whether `national_prefix_for_parsing` matched any\n      // \"capturing groups\", the value of the result of calling `.exec()`\n      // is looked at, and if it has non-undefined values where there're\n      // \"capturing groups\" in the regular expression, then it means\n      // that \"capturing groups\" have been matched.\n      // It's not possible to tell whether there'll be any \"capturing gropus\"\n      // before the matching process, because a `national_prefix_for_parsing`\n      // could exhibit both behaviors.\n\n      var capturedGroupsCount = prefixMatch.length - 1;\n      var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n      if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n        nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n        // then carrier code is the second one.\n\n        if (capturedGroupsCount > 1) {\n          carrierCode = prefixMatch[1];\n        }\n      } // If there're no \"capturing groups\",\n      // or if there're \"capturing groups\" but no\n      // `national_prefix_transform_rule`,\n      // then just strip the national prefix from the number,\n      // and possibly a carrier code.\n      // Seems like there could be more.\n      else {\n        // `prefixBeforeNationalNumber` is the whole substring matched by\n        // the `national_prefix_for_parsing` regular expression.\n        // There seem to be no guarantees that it's just a national prefix.\n        // For example, if there's a carrier code, it's gonna be a\n        // part of `prefixBeforeNationalNumber` too.\n        var prefixBeforeNationalNumber = prefixMatch[0];\n        nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n        // then carrier code is the first one.\n\n        if (hasCapturedGroups) {\n          carrierCode = prefixMatch[1];\n        }\n      } // Tries to guess whether a national prefix was present in the input.\n      // This is not something copy-pasted from Google's library:\n      // they don't seem to have an equivalent for that.\n      // So this isn't an \"officially approved\" way of doing something like that.\n      // But since there seems no other existing method, this library uses it.\n\n\n      var nationalPrefix;\n\n      if (hasCapturedGroups) {\n        var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n        var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n        // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n        // and the rest of the phone number is `23456789`.\n        // The national number is transformed via `9$1` to `91123456789`.\n        // National prefix `0` is detected being present at the start.\n        // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n        if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n          nationalPrefix = metadata.numberingPlan.nationalPrefix();\n        }\n      } else {\n        nationalPrefix = prefixMatch[0];\n      }\n\n      return {\n        nationalNumber: nationalNumber,\n        nationalPrefix: nationalPrefix,\n        carrierCode: carrierCode\n      };\n    }\n  }\n\n  return {\n    nationalNumber: number\n  };\n}\n//# sourceMappingURL=extractNationalNumberFromPossiblyIncompleteNumber.js.map","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport checkNumberLength from './checkNumberLength.js';\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param  {string} number — Complete phone number digits.\r\n * @param  {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport default function extractNationalNumber(number, metadata) {\n  // Parsing national prefixes and carrier codes\n  // is only required for local phone numbers\n  // but some people don't understand that\n  // and sometimes write international phone numbers\n  // with national prefixes (or maybe even carrier codes).\n  // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n  // Google's original library forgives such mistakes\n  // and so does this library, because it has been requested:\n  // https://github.com/catamphetamine/libphonenumber-js/issues/127\n  var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n      carrierCode = _extractNationalNumbe.carrierCode,\n      nationalNumber = _extractNationalNumbe.nationalNumber;\n\n  if (nationalNumber !== number) {\n    if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n      // Don't strip the national prefix.\n      return {\n        nationalNumber: number\n      };\n    } // Check the national (significant) number length after extracting national prefix and carrier code.\n    // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n\n\n    if (metadata.possibleLengths()) {\n      // The number remaining after stripping the national prefix and carrier code\n      // should be long enough to have a possible length for the country.\n      // Otherwise, don't strip the national prefix and carrier code,\n      // since the original number could be a valid number.\n      // This check has been copy-pasted \"as is\" from Google's original library:\n      // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n      // It doesn't check for the \"possibility\" of the original `number`.\n      // I guess it's fine not checking that one. It works as is anyway.\n      if (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\n        // Don't strip the national prefix.\n        return {\n          nationalNumber: number\n        };\n      }\n    }\n  }\n\n  return {\n    nationalNumber: nationalNumber,\n    carrierCode: carrierCode\n  };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n  // The equivalent in Google's code is:\n  // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n  if (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\n    return false;\n  } // This \"is possible\" national number (length) check has been commented out\n  // because it's superceded by the (effectively) same check done in the\n  // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n  // In other words, why run the same check twice if it could only be run once.\n  // // Check the national (significant) number length after extracting national prefix and carrier code.\n  // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n  // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n  // if (metadata.possibleLengths()) {\n  // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n  // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n  // \t\treturn false\n  // \t}\n  // }\n\n\n  return true;\n}\n\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\n  switch (checkNumberLength(nationalNumber, metadata)) {\n    case 'TOO_SHORT':\n    case 'INVALID_LENGTH':\n      // This library ignores \"local-only\" phone numbers (for simplicity).\n      // See the readme for more info on what are \"local-only\" phone numbers.\n      // case 'IS_POSSIBLE_LOCAL_ONLY':\n      return false;\n\n    default:\n      return true;\n  }\n}\n//# sourceMappingURL=extractNationalNumber.js.map","import Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport extractNationalNumber from './extractNationalNumber.js';\nimport checkNumberLength from './checkNumberLength.js';\nimport getCountryCallingCode from '../getCountryCallingCode.js';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param  {string} number — Phone number digits.\r\n * @param  {string?} country\r\n * @param  {string?} callingCode\r\n * @param  {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n  var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n  if (number.indexOf(countryCallingCode) === 0) {\n    metadata = new Metadata(metadata);\n    metadata.selectNumberingPlan(country, callingCode);\n    var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n    var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n        possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n    var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n        nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n    // or if it was too long before, we consider the number\n    // with the country calling code stripped to be a better result\n    // and keep that instead.\n    // For example, in Germany (+49), `49` is a valid area code,\n    // so if a number starts with `49`, it could be both a valid\n    // national German number or an international number without\n    // a leading `+`.\n\n\n    if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n      return {\n        countryCallingCode: countryCallingCode,\n        number: possibleShorterNumber\n      };\n    }\n  }\n\n  return {\n    number: number\n  };\n}\n//# sourceMappingURL=extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map","import stripIddPrefix from './stripIddPrefix.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport Metadata from '../metadata.js';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js';\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param  {string} number — Phone number digits (possibly with a `+`).\r\n * @param  {string} [country] — Default country.\r\n * @param  {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param  {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport default function extractCountryCallingCode(number, country, callingCode, metadata) {\n  if (!number) {\n    return {};\n  }\n\n  var isNumberWithIddPrefix; // If this is not an international phone number,\n  // then either extract an \"IDD\" prefix, or extract a\n  // country calling code from a number by autocorrecting it\n  // by prepending a leading `+` in cases when it starts\n  // with the country calling code.\n  // https://wikitravel.org/en/International_dialling_prefix\n  // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n  if (number[0] !== '+') {\n    // Convert an \"out-of-country\" dialing phone number\n    // to a proper international phone number.\n    var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n    // convert the number to international one\n    // for subsequent parsing.\n\n    if (numberWithoutIDD && numberWithoutIDD !== number) {\n      isNumberWithIddPrefix = true;\n      number = '+' + numberWithoutIDD;\n    } else {\n      // Check to see if the number starts with the country calling code\n      // for the default country. If so, we remove the country calling code,\n      // and do some checks on the validity of the number before and after.\n      // https://github.com/catamphetamine/libphonenumber-js/issues/376\n      if (country || callingCode) {\n        var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n            countryCallingCode = _extractCountryCallin.countryCallingCode,\n            shorterNumber = _extractCountryCallin.number;\n\n        if (countryCallingCode) {\n          return {\n            countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n            countryCallingCode: countryCallingCode,\n            number: shorterNumber\n          };\n        }\n      }\n\n      return {\n        // No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n        // countryCallingCodeSource: 'UNSPECIFIED',\n        number: number\n      };\n    }\n  } // Fast abortion: country codes do not begin with a '0'\n\n\n  if (number[1] === '0') {\n    return {};\n  }\n\n  metadata = new Metadata(metadata); // The thing with country phone codes\n  // is that they are orthogonal to each other\n  // i.e. there's no such country phone code A\n  // for which country phone code B exists\n  // where B starts with A.\n  // Therefore, while scanning digits,\n  // if a valid country code is found,\n  // that means that it is the country code.\n  //\n\n  var i = 2;\n\n  while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n    var _countryCallingCode = number.slice(1, i);\n\n    if (metadata.hasCallingCode(_countryCallingCode)) {\n      metadata.selectNumberingPlan(_countryCallingCode);\n      return {\n        countryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n        countryCallingCode: _countryCallingCode,\n        number: number.slice(i)\n      };\n    }\n\n    i++;\n  }\n\n  return {};\n} // The possible values for the returned `countryCallingCodeSource` are:\n//\n// Copy-pasted from:\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\n//\n// // The source from which the country_code is derived. This is not set in the\n// // general parsing method, but in the method that parses and keeps raw_input.\n// // New fields could be added upon request.\n// enum CountryCodeSource {\n//  // Default value returned if this is not set, because the phone number was\n//  // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\n//  // return false if this is the case.\n//  UNSPECIFIED = 0;\n//\n//  // The country_code is derived based on a phone number with a leading \"+\",\n//  // e.g. the French number \"+33 1 42 68 53 00\".\n//  FROM_NUMBER_WITH_PLUS_SIGN = 1;\n//\n//  // The country_code is derived based on a phone number with a leading IDD,\n//  // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\n//  FROM_NUMBER_WITH_IDD = 5;\n//\n//  // The country_code is derived based on a phone number without a leading\n//  // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\n//  // supplied as France.\n//  FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\n//\n//  // The country_code is derived NOT based on the phone number itself, but\n//  // from the defaultCountry parameter provided in the parsing function by the\n//  // clients. This happens mostly for numbers written in the national format\n//  // (without country code). For example, this would be set when parsing the\n//  // French number \"01 42 68 53 00\", when defaultCountry is supplied as\n//  // France.\n//  FROM_DEFAULT_COUNTRY = 20;\n// }\n//# sourceMappingURL=extractCountryCallingCode.js.map","import { VALID_PUNCTUATION } from '../constants.js'; // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains `<intlFormat/>`s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `<intlFormat/>` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n  return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n  var useInternationalFormat = _ref.useInternationalFormat,\n      withNationalPrefix = _ref.withNationalPrefix,\n      carrierCode = _ref.carrierCode,\n      metadata = _ref.metadata;\n  var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n  // because that one is only used when formatting phone numbers\n  // for dialing from a mobile phone, and this is not a dialing library.\n  // carrierCode && format.domesticCarrierCodeFormattingRule()\n  // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n  // \t// Then, replace the $FG in the formatting rule with the first group\n  // \t// and the carrier code combined in the appropriate way.\n  // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n  // \t: (\n  // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n  // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n  // \t\t\t: format.format()\n  // \t)\n  withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n  if (useInternationalFormat) {\n    return applyInternationalSeparatorStyle(formattedNumber);\n  }\n\n  return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","import Metadata from '../metadata.js';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n  var countryMetadata = new Metadata(metadata);\n  countryMetadata.selectNumberingPlan(country, callingCode);\n\n  if (countryMetadata.defaultIDDPrefix()) {\n    return countryMetadata.defaultIDDPrefix();\n  }\n\n  if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n    return countryMetadata.IDDPrefix();\n  }\n}\n//# sourceMappingURL=getIddPrefix.js.map","import { VALID_DIGITS } from '../../constants.js'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n  return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nexport default function createExtensionPattern(purpose) {\n  // We cap the maximum length of an extension based on the ambiguity of the way\n  // the extension is prefixed. As per ITU, the officially allowed length for\n  // extensions is actually 40, but we don't support this since we haven't seen real\n  // examples and this introduces many false interpretations as the extension labels\n  // are not standardized.\n\n  /** @type {string} */\n  var extLimitAfterExplicitLabel = '20';\n  /** @type {string} */\n\n  var extLimitAfterLikelyLabel = '15';\n  /** @type {string} */\n\n  var extLimitAfterAmbiguousChar = '9';\n  /** @type {string} */\n\n  var extLimitWhenNotSure = '6';\n  /** @type {string} */\n\n  var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n  /** @type {string} */\n\n  var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n  /** @type {string} */\n\n  var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n  // patterns like \"ext.\".\n\n  /** @type {string} */\n\n  var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n  // commonly used or more ambiguous extension labels.\n\n  /** @type {string} */\n\n  var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n  /** @type {string} */\n\n  var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n  // comma as extension label may have it.\n\n  /** @type {string} */\n\n  var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n  // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n  // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n  // button with the extension number following.\n\n  /** @type {string} */\n\n  var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n  /** @type {string} */\n\n  var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n  /** @type {string} */\n\n  var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n  /** @type {string} */\n\n  var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n  /** @type {string} */\n\n  var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n  /** @type {string} */\n\n  var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n  /** @type {string} */\n\n  var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n  // using \";ext=\". The second more generic where extension is mentioned with explicit\n  // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n  // any other extension labels. The third one captures when single character extension\n  // labels or less commonly used labels are used. In such cases we capture fewer\n  // extension digits in order to reduce the chance of falsely interpreting two\n  // numbers beside each other as a number + extension. The fourth one covers the\n  // special case of American numbers where the extension is written with a hash\n  // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n  // autodialling formats which are used when dialling and in this case we accept longer\n  // extensions. The last one is more liberal on the number of commas that acts as\n  // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n  return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n//# sourceMappingURL=createExtensionPattern.js.map","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants.js';\nimport createExtensionPattern from './extension/createExtensionPattern.js'; //  Regular expression of viable phone numbers. This is location independent.\n//  Checks we have at least three leading digits, and only valid punctuation,\n//  alpha characters and digits in the phone number. Does not include extension\n//  data. The symbol 'x' is allowed here as valid punctuation since it is often\n//  used as a placeholder for carrier codes, for example in Brazilian phone\n//  numbers. We also allow multiple '+' characters at the start.\n//\n//  Corresponds to the following:\n//  [digits]{minLengthNsn}|\n//  plus_sign*\n//  (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n//  The first reg-ex is to allow short numbers (two digits long) to be parsed if\n//  they are entered as \"15\" etc, but only if there is no punctuation in them.\n//  The second expression restricts the number of digits to three or more, but\n//  then allows them to be in international form, and to have alpha-characters\n//  and punctuation. We split up the two reg-exes here and combine them when\n//  creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n//  with ^ and append $ to each branch.\n//\n//  \"Note VALID_PUNCTUATION starts with a -,\n//   so must be the first in the range\" (c) Google devs.\n//  (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*'; // This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n  return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n} // This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nexport function isViablePhoneNumberStart(number) {\n  return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _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\nimport isViablePhoneNumber from './isViablePhoneNumber.js'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param  {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n  var number;\n  var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n  text = text.replace(/^tel:/, 'tel=');\n\n  for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n    var part = _step.value;\n\n    var _part$split = part.split('='),\n        _part$split2 = _slicedToArray(_part$split, 2),\n        name = _part$split2[0],\n        value = _part$split2[1];\n\n    switch (name) {\n      case 'tel':\n        number = value;\n        break;\n\n      case 'ext':\n        ext = value;\n        break;\n\n      case 'phone-context':\n        // Only \"country contexts\" are supported.\n        // \"Domain contexts\" are ignored.\n        if (value[0] === '+') {\n          number = value + number;\n        }\n\n        break;\n    }\n  } // If the phone number is not viable, then abort.\n\n\n  if (!isViablePhoneNumber(number)) {\n    return {};\n  }\n\n  var result = {\n    number: number\n  };\n\n  if (ext) {\n    result.ext = ext;\n  }\n\n  return result;\n}\n/**\r\n * @param  {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref) {\n  var number = _ref.number,\n      ext = _ref.ext;\n\n  if (!number) {\n    return '';\n  }\n\n  if (number[0] !== '+') {\n    throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n  }\n\n  return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nimport Metadata, { getCountryCallingCode } from './metadata.js';\nimport getIddPrefix from './helpers/getIddPrefix.js';\nimport { formatRFC3966 } from './helpers/RFC3966.js';\nvar DEFAULT_OPTIONS = {\n  formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n    return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n  }\n};\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param  {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param  {string} format\r\n * @param  {object} [options]\r\n * @param  {object} metadata\r\n * @return {string}\r\n */\n\nexport default function formatNumber(input, format, options, metadata) {\n  // Apply default options.\n  if (options) {\n    options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n  } else {\n    options = DEFAULT_OPTIONS;\n  }\n\n  metadata = new Metadata(metadata);\n\n  if (input.country && input.country !== '001') {\n    // Validate `input.country`.\n    if (!metadata.hasCountry(input.country)) {\n      throw new Error(\"Unknown country: \".concat(input.country));\n    }\n\n    metadata.country(input.country);\n  } else if (input.countryCallingCode) {\n    metadata.selectNumberingPlan(input.countryCallingCode);\n  } else return input.phone || '';\n\n  var countryCallingCode = metadata.countryCallingCode();\n  var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n  // but Babel has a bug and it says \"duplicate variable declaration\".\n\n  var number;\n\n  switch (format) {\n    case 'NATIONAL':\n      // Legacy argument support.\n      // (`{ country: ..., phone: '' }`)\n      if (!nationalNumber) {\n        return '';\n      }\n\n      number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n      return addExtension(number, input.ext, metadata, options.formatExtension);\n\n    case 'INTERNATIONAL':\n      // Legacy argument support.\n      // (`{ country: ..., phone: '' }`)\n      if (!nationalNumber) {\n        return \"+\".concat(countryCallingCode);\n      }\n\n      number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n      number = \"+\".concat(countryCallingCode, \" \").concat(number);\n      return addExtension(number, input.ext, metadata, options.formatExtension);\n\n    case 'E.164':\n      // `E.164` doesn't define \"phone number extensions\".\n      return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n    case 'RFC3966':\n      return formatRFC3966({\n        number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n        ext: input.ext\n      });\n    // For reference, here's Google's IDD formatter:\n    // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n    // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n    // Who would even need to format phone numbers in IDD format anyway?\n\n    case 'IDD':\n      if (!options.fromCountry) {\n        return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n      }\n\n      var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n      return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n    default:\n      throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n  }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n  var format = chooseFormatForNumber(metadata.formats(), number);\n\n  if (!format) {\n    return number;\n  }\n\n  return formatNationalNumberUsingFormat(number, format, {\n    useInternationalFormat: formatAs === 'INTERNATIONAL',\n    withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n    carrierCode: carrierCode,\n    metadata: metadata\n  });\n}\n\nexport function chooseFormatForNumber(availableFormats, nationalNnumber) {\n  for (var _iterator = _createForOfIteratorHelperLoose(availableFormats), _step; !(_step = _iterator()).done;) {\n    var format = _step.value;\n\n    // Validate leading digits.\n    // The test case for \"else path\" could be found by searching for\n    // \"format.leadingDigitsPatterns().length === 0\".\n    if (format.leadingDigitsPatterns().length > 0) {\n      // The last leading_digits_pattern is used here, as it is the most detailed\n      var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n      if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n        continue;\n      }\n    } // Check that the national number matches the phone number format regular expression\n\n\n    if (matchesEntirely(nationalNnumber, format.pattern())) {\n      return format;\n    }\n  }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n  return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n  var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n  if (fromCountryCallingCode === countryCallingCode) {\n    var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n    // but prefix it with the country calling code.\n\n    if (countryCallingCode === '1') {\n      return countryCallingCode + ' ' + formattedNumber;\n    } // If regions share a country calling code, the country calling code need\n    // not be dialled. This also applies when dialling within a region, so this\n    // if clause covers both these cases. Technically this is the case for\n    // dialling from La Reunion to other overseas departments of France (French\n    // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n    // this edge case for now and for those cases return the version including\n    // country calling code. Details here:\n    // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n    //\n\n\n    return formattedNumber;\n  }\n\n  var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n  if (iddPrefix) {\n    return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n  }\n}\n//# sourceMappingURL=format.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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\nimport Metadata, { validateMetadata } from './metadata.js';\nimport isPossibleNumber from './isPossible.js';\nimport isValidNumber from './isValid.js'; // import checkNumberLength from './helpers/checkNumberLength.js'\n\nimport getNumberType from './helpers/getNumberType.js';\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport isObject from './helpers/isObject.js';\nimport formatNumber from './format.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber = /*#__PURE__*/function () {\n  /**\r\n   * @param  {string} countryOrCountryCallingCode\r\n   * @param  {string} nationalNumber\r\n   * @param  {object} metadata — Metadata JSON\r\n   * @return {PhoneNumber}\r\n   */\n  function PhoneNumber(countryOrCountryCallingCode, nationalNumber, metadata) {\n    _classCallCheck(this, PhoneNumber);\n\n    // Validate `countryOrCountryCallingCode` argument.\n    if (!countryOrCountryCallingCode) {\n      throw new TypeError('First argument is required');\n    }\n\n    if (typeof countryOrCountryCallingCode !== 'string') {\n      throw new TypeError('First argument must be a string');\n    } // In case of public API use: `constructor(number, metadata)`.\n    // Transform the arguments from `constructor(number, metadata)` to\n    // `constructor(countryOrCountryCallingCode, nationalNumber, metadata)`.\n\n\n    if (typeof countryOrCountryCallingCode === 'string') {\n      if (countryOrCountryCallingCode[0] === '+' && !nationalNumber) {\n        throw new TypeError('`metadata` argument not passed');\n      }\n\n      if (isObject(nationalNumber) && isObject(nationalNumber.countries)) {\n        metadata = nationalNumber;\n        var e164Number = countryOrCountryCallingCode;\n\n        if (!E164_NUMBER_REGEXP.test(e164Number)) {\n          throw new Error('Invalid `number` argument passed: must consist of a \"+\" followed by digits');\n        }\n\n        var _extractCountryCallin = extractCountryCallingCode(e164Number, undefined, undefined, metadata),\n            _countryCallingCode = _extractCountryCallin.countryCallingCode,\n            number = _extractCountryCallin.number;\n\n        nationalNumber = number;\n        countryOrCountryCallingCode = _countryCallingCode;\n\n        if (!nationalNumber) {\n          throw new Error('Invalid `number` argument passed: too short');\n        }\n      }\n    } // Validate `nationalNumber` argument.\n\n\n    if (!nationalNumber) {\n      throw new TypeError('`nationalNumber` argument is required');\n    }\n\n    if (typeof nationalNumber !== 'string') {\n      throw new TypeError('`nationalNumber` argument must be a string');\n    } // Validate `metadata` argument.\n\n\n    validateMetadata(metadata); // Initialize properties.\n\n    var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata),\n        country = _getCountryAndCountry.country,\n        countryCallingCode = _getCountryAndCountry.countryCallingCode;\n\n    this.country = country;\n    this.countryCallingCode = countryCallingCode;\n    this.nationalNumber = nationalNumber;\n    this.number = '+' + this.countryCallingCode + this.nationalNumber; // Exclude `metadata` property output from `PhoneNumber.toString()`\n    // so that it doesn't clutter the console output of Node.js.\n    // Previously, when Node.js did `console.log(new PhoneNumber(...))`,\n    // it would output the whole internal structure of the `metadata` object.\n\n    this.getMetadata = function () {\n      return metadata;\n    };\n  }\n\n  _createClass(PhoneNumber, [{\n    key: \"setExt\",\n    value: function setExt(ext) {\n      this.ext = ext;\n    }\n  }, {\n    key: \"getPossibleCountries\",\n    value: function getPossibleCountries() {\n      if (this.country) {\n        return [this.country];\n      }\n\n      return getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.getMetadata());\n    }\n  }, {\n    key: \"isPossible\",\n    value: function isPossible() {\n      return isPossibleNumber(this, {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"isValid\",\n    value: function isValid() {\n      return isValidNumber(this, {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"isNonGeographic\",\n    value: function isNonGeographic() {\n      var metadata = new Metadata(this.getMetadata());\n      return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n    }\n  }, {\n    key: \"isEqual\",\n    value: function isEqual(phoneNumber) {\n      return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n    } // This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\n    // but later it was found out that it doesn't include the possible `TOO_SHORT` result\n    // returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\n    // so eventually I simply commented out this method from the `PhoneNumber` class\n    // and just left the `validatePhoneNumberLength()` function, even though that one would require\n    // and additional step to also validate the actual country / calling code of the phone number.\n    // validateLength() {\n    // \tconst metadata = new Metadata(this.getMetadata())\n    // \tmetadata.selectNumberingPlan(this.countryCallingCode)\n    // \tconst result = checkNumberLength(this.nationalNumber, metadata)\n    // \tif (result !== 'IS_POSSIBLE') {\n    // \t\treturn result\n    // \t}\n    // }\n\n  }, {\n    key: \"getType\",\n    value: function getType() {\n      return getNumberType(this, {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"format\",\n    value: function format(_format, options) {\n      return formatNumber(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {\n        v2: true\n      }) : {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"formatNational\",\n    value: function formatNational(options) {\n      return this.format('NATIONAL', options);\n    }\n  }, {\n    key: \"formatInternational\",\n    value: function formatInternational(options) {\n      return this.format('INTERNATIONAL', options);\n    }\n  }, {\n    key: \"getURI\",\n    value: function getURI(options) {\n      return this.format('RFC3966', options);\n    }\n  }]);\n\n  return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n  return /^[A-Z]{2}$/.test(value);\n};\n\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\n  var country;\n  var countryCallingCode;\n  var metadata = new Metadata(metadataJson); // If country code is passed then derive `countryCallingCode` from it.\n  // Also store the country code as `.country`.\n\n  if (isCountryCode(countryOrCountryCallingCode)) {\n    country = countryOrCountryCallingCode;\n    metadata.selectNumberingPlan(country);\n    countryCallingCode = metadata.countryCallingCode();\n  } else {\n    countryCallingCode = countryOrCountryCallingCode;\n    /* istanbul ignore if */\n\n    if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n      if (metadata.isNonGeographicCallingCode(countryCallingCode)) {\n        country = '001';\n      }\n    }\n  }\n\n  return {\n    country: country,\n    countryCallingCode: countryCallingCode\n  };\n}\n\nvar E164_NUMBER_REGEXP = /^\\+\\d+$/;\n//# sourceMappingURL=PhoneNumber.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nvar ParseError = /*#__PURE__*/function (_Error) {\n  _inherits(ParseError, _Error);\n\n  var _super = _createSuper(ParseError);\n\n  function ParseError(code) {\n    var _this;\n\n    _classCallCheck(this, ParseError);\n\n    _this = _super.call(this, code); // Set the prototype explicitly.\n    // Any subclass of FooError will have to manually set the prototype as well.\n\n    Object.setPrototypeOf(_assertThisInitialized(_this), ParseError.prototype);\n    _this.name = _this.constructor.name;\n    return _this;\n  }\n\n  return _createClass(ParseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexport { ParseError as default };\n//# sourceMappingURL=ParseError.js.map","import createExtensionPattern from './createExtensionPattern.js'; // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nexport default function extractExtension(number) {\n  var start = number.search(EXTN_PATTERN);\n\n  if (start < 0) {\n    return {};\n  } // If we find a potential extension, and the number preceding this is a viable\n  // number, we assume it is an extension.\n\n\n  var numberWithoutExtension = number.slice(0, start);\n  var matches = number.match(EXTN_PATTERN);\n  var i = 1;\n\n  while (i < matches.length) {\n    if (matches[i]) {\n      return {\n        number: numberWithoutExtension,\n        ext: matches[i]\n      };\n    }\n\n    i++;\n  }\n}\n//# sourceMappingURL=extractExtension.js.map","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\n// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\n  '0': '0',\n  '1': '1',\n  '2': '2',\n  '3': '3',\n  '4': '4',\n  '5': '5',\n  '6': '6',\n  '7': '7',\n  '8': '8',\n  '9': '9',\n  \"\\uFF10\": '0',\n  // Fullwidth digit 0\n  \"\\uFF11\": '1',\n  // Fullwidth digit 1\n  \"\\uFF12\": '2',\n  // Fullwidth digit 2\n  \"\\uFF13\": '3',\n  // Fullwidth digit 3\n  \"\\uFF14\": '4',\n  // Fullwidth digit 4\n  \"\\uFF15\": '5',\n  // Fullwidth digit 5\n  \"\\uFF16\": '6',\n  // Fullwidth digit 6\n  \"\\uFF17\": '7',\n  // Fullwidth digit 7\n  \"\\uFF18\": '8',\n  // Fullwidth digit 8\n  \"\\uFF19\": '9',\n  // Fullwidth digit 9\n  \"\\u0660\": '0',\n  // Arabic-indic digit 0\n  \"\\u0661\": '1',\n  // Arabic-indic digit 1\n  \"\\u0662\": '2',\n  // Arabic-indic digit 2\n  \"\\u0663\": '3',\n  // Arabic-indic digit 3\n  \"\\u0664\": '4',\n  // Arabic-indic digit 4\n  \"\\u0665\": '5',\n  // Arabic-indic digit 5\n  \"\\u0666\": '6',\n  // Arabic-indic digit 6\n  \"\\u0667\": '7',\n  // Arabic-indic digit 7\n  \"\\u0668\": '8',\n  // Arabic-indic digit 8\n  \"\\u0669\": '9',\n  // Arabic-indic digit 9\n  \"\\u06F0\": '0',\n  // Eastern-Arabic digit 0\n  \"\\u06F1\": '1',\n  // Eastern-Arabic digit 1\n  \"\\u06F2\": '2',\n  // Eastern-Arabic digit 2\n  \"\\u06F3\": '3',\n  // Eastern-Arabic digit 3\n  \"\\u06F4\": '4',\n  // Eastern-Arabic digit 4\n  \"\\u06F5\": '5',\n  // Eastern-Arabic digit 5\n  \"\\u06F6\": '6',\n  // Eastern-Arabic digit 6\n  \"\\u06F7\": '7',\n  // Eastern-Arabic digit 7\n  \"\\u06F8\": '8',\n  // Eastern-Arabic digit 8\n  \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n  return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param  {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n  var result = ''; // Using `.split('')` here instead of normal `for ... of`\n  // because the importing application doesn't neccessarily include an ES6 polyfill.\n  // The `.split('')` approach discards \"exotic\" UTF-8 characters\n  // (the ones consisting of four bytes) but digits\n  // (including non-European ones) don't fall into that range\n  // so such \"exotic\" characters would be discarded anyway.\n\n  for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n    var character = _step.value;\n    var digit = parseDigit(character);\n\n    if (digit) {\n      result += digit;\n    }\n  }\n\n  return result;\n}\n//# sourceMappingURL=parseDigits.js.map","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\nimport { parseDigit } from './helpers/parseDigits.js';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param  {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n  var result = ''; // Using `.split('')` here instead of normal `for ... of`\n  // because the importing application doesn't neccessarily include an ES6 polyfill.\n  // The `.split('')` approach discards \"exotic\" UTF-8 characters\n  // (the ones consisting of four bytes) but digits\n  // (including non-European ones) don't fall into that range\n  // so such \"exotic\" characters would be discarded anyway.\n\n  for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n    var character = _step.value;\n    result += parsePhoneNumberCharacter(character, result) || '';\n  }\n\n  return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param  {string} character - Yet another character from raw input string.\r\n * @param  {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param  {function?} emitEvent - An optional \"emit event\" function.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent) {\n  // Only allow a leading `+`.\n  if (character === '+') {\n    // If this `+` is not the first parsed character\n    // then discard it.\n    if (prevParsedCharacters) {\n      // `emitEvent` argument was added to this `export`ed function on Dec 26th, 2023.\n      // Any 3rd-party code that used to `import` and call this function before that\n      // won't be passing any `emitEvent` argument.\n      //\n      // The addition of the `emitEvent` argument was to fix the slightly-weird behavior\n      // of parsing an input string when the user inputs something like `\"2+7\"\n      // https://github.com/catamphetamine/react-phone-number-input/issues/437\n      //\n      // If the parser encounters an unexpected `+` in a string being parsed\n      // then it simply discards that out-of-place `+` and any following characters.\n      //\n      if (typeof emitEvent === 'function') {\n        emitEvent('end');\n      }\n\n      return;\n    }\n\n    return '+';\n  } // Allow digits.\n\n\n  return parseDigit(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","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\nimport Metadata from '../metadata.js';\nimport getNumberType from './getNumberType.js';\nexport default function getCountryByNationalNumber(nationalPhoneNumber, _ref) {\n  var countries = _ref.countries,\n      defaultCountry = _ref.defaultCountry,\n      metadata = _ref.metadata;\n  // Re-create `metadata` because it will be selecting a `country`.\n  metadata = new Metadata(metadata); // const matchingCountries = []\n\n  for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done;) {\n    var country = _step.value;\n    metadata.country(country); // \"Leading digits\" patterns are only defined for about 20% of all countries.\n    // By definition, matching \"leading digits\" is a sufficient but not a necessary\n    // condition for a phone number to belong to a country.\n    // The point of \"leading digits\" check is that it's the fastest one to get a match.\n    // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n    // I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\n    // because of the intended use of that feature.\n\n    if (metadata.leadingDigits()) {\n      if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n        return country;\n      }\n    } // Else perform full validation with all of those\n    // fixed-line/mobile/etc regular expressions.\n    else if (getNumberType({\n      phone: nationalPhoneNumber,\n      country: country\n    }, undefined, metadata.metadata)) {\n      // If both the `defaultCountry` and the \"main\" one match the phone number,\n      // don't prefer the `defaultCountry` over the \"main\" one.\n      // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/154\n      return country; // // If the `defaultCountry` is among the `matchingCountries` then return it.\n      // if (defaultCountry) {\n      // \tif (country === defaultCountry) {\n      // \t\treturn country\n      // \t}\n      // \tmatchingCountries.push(country)\n      // } else {\n      // \treturn country\n      // }\n    }\n  } // // Return the first (\"main\") one of the `matchingCountries`.\n  // if (matchingCountries.length > 0) {\n  // \treturn matchingCountries[0]\n  // }\n\n}\n//# sourceMappingURL=getCountryByNationalNumber.js.map","import getCountryByNationalNumber from './getCountryByNationalNumber.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, _ref) {\n  var nationalPhoneNumber = _ref.nationalNumber,\n      defaultCountry = _ref.defaultCountry,\n      metadata = _ref.metadata;\n\n  /* istanbul ignore if */\n  if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n    if (metadata.isNonGeographicCallingCode(callingCode)) {\n      return '001';\n    }\n  }\n\n  var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n  if (!possibleCountries) {\n    return;\n  } // If there's just one country corresponding to the country code,\n  // then just return it, without further phone number digits validation.\n\n\n  if (possibleCountries.length === 1) {\n    return possibleCountries[0];\n  }\n\n  return getCountryByNationalNumber(nationalPhoneNumber, {\n    countries: possibleCountries,\n    defaultCountry: defaultCountry,\n    metadata: metadata.metadata\n  });\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\n// Example: `\"tel:12133734253;phone-context=+1\"`.\n// This function parses the full phone number from the local number and the `phone-context`\n// when the `phone-context` contains a `+` sign.\nimport { VALID_DIGITS // PLUS_CHARS\n} from '../constants.js';\nexport var PLUS_SIGN = '+';\nvar RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?';\nvar RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')';\nvar RFC3966_GLOBAL_NUMBER_DIGITS_ = '^' + '\\\\' + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + '*' + '[' + VALID_DIGITS + ']' + RFC3966_PHONE_DIGIT_ + '*' + '$';\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g'); // In this port of Google's library, we don't accept alpha characters in phone numbers.\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\n\nvar ALPHANUM_ = VALID_DIGITS;\nvar RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar VALID_ALPHA_ = 'a-zA-Z';\nvar RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$';\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g');\nexport var RFC3966_PREFIX_ = 'tel:';\nexport var RFC3966_PHONE_CONTEXT_ = ';phone-context=';\nexport var RFC3966_ISDN_SUBADDRESS_ = ';isub=';\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\n\nexport default function extractPhoneContext(numberToExtractFrom) {\n  var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_); // If no phone-context parameter is present\n\n  if (indexOfPhoneContext < 0) {\n    return null;\n  }\n\n  var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length; // If phone-context parameter is empty\n\n  if (phoneContextStart >= numberToExtractFrom.length) {\n    return '';\n  }\n\n  var phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart); // If phone-context is not the last parameter\n\n  if (phoneContextEnd >= 0) {\n    return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd);\n  } else {\n    return numberToExtractFrom.substring(phoneContextStart);\n  }\n}\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\n\nexport function isPhoneContextValid(phoneContext) {\n  if (phoneContext === null) {\n    return true;\n  }\n\n  if (phoneContext.length === 0) {\n    return false;\n  } // Does phone-context value match pattern of global-number-digits or domainname.\n\n\n  return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);\n}\n//# sourceMappingURL=extractPhoneContext.js.map","import extractPhoneContext, { isPhoneContextValid, PLUS_SIGN, RFC3966_PREFIX_, RFC3966_PHONE_CONTEXT_, RFC3966_ISDN_SUBADDRESS_ } from './extractPhoneContext.js';\nimport ParseError from '../ParseError.js';\n/**\r\n * @param  {string} numberToParse\r\n * @param  {string} nationalNumber\r\n * @return {}\r\n */\n\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) {\n  var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber;\n  var phoneContext = extractPhoneContext(numberToParse);\n\n  if (!isPhoneContextValid(phoneContext)) {\n    throw new ParseError('NOT_A_NUMBER');\n  }\n\n  var phoneNumberString;\n\n  if (phoneContext === null) {\n    // Extract a possible number from the string passed in.\n    // (this strips leading characters that could not be the start of a phone number)\n    phoneNumberString = extractFormattedPhoneNumber(numberToParse) || '';\n  } else {\n    phoneNumberString = ''; // If the phone context contains a phone number prefix, we need to capture\n    // it, whereas domains will be ignored.\n\n    if (phoneContext.charAt(0) === PLUS_SIGN) {\n      phoneNumberString += phoneContext;\n    } // Now append everything between the \"tel:\" prefix and the phone-context.\n    // This should include the national number, an optional extension or\n    // isdn-subaddress component. Note we also handle the case when \"tel:\" is\n    // missing, as we have seen in some of the phone number inputs.\n    // In that case, we append everything from the beginning.\n\n\n    var indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_);\n    var indexOfNationalNumber; // RFC 3966 \"tel:\" prefix is preset at this stage because\n    // `isPhoneContextValid()` requires it to be present.\n\n    /* istanbul ignore else */\n\n    if (indexOfRfc3966Prefix >= 0) {\n      indexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length;\n    } else {\n      indexOfNationalNumber = 0;\n    }\n\n    var indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_);\n    phoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext);\n  } // Delete the isdn-subaddress and everything after it if it is present.\n  // Note extension won't appear at the same time with isdn-subaddress\n  // according to paragraph 5.3 of the RFC3966 spec.\n\n\n  var indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_);\n\n  if (indexOfIsdn > 0) {\n    phoneNumberString = phoneNumberString.substring(0, indexOfIsdn);\n  } // If both phone context and isdn-subaddress are absent but other\n  // parameters are present, the parameters are left in nationalNumber.\n  // This is because we are concerned about deleting content from a potential\n  // number string when there is no strong evidence that the number is\n  // actually written in RFC3966.\n\n\n  if (phoneNumberString !== '') {\n    return phoneNumberString;\n  }\n}\n//# sourceMappingURL=extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js.map","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants.js';\nimport ParseError from './ParseError.js';\nimport Metadata from './metadata.js';\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js';\nimport extractExtension from './helpers/extension/extractExtension.js';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js';\nimport getCountryCallingCode from './getCountryCallingCode.js';\nimport { isPossibleNumber } from './isPossible.js'; // import { parseRFC3966 } from './helpers/RFC3966.js'\n\nimport PhoneNumber from './PhoneNumber.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractNationalNumber from './helpers/extractNationalNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param  {string} input\r\n * @param  {object} [options]\r\n * @param  {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\n\nexport default function parse(text, options, metadata) {\n  // If assigning the `{}` default value is moved to the arguments above,\n  // code coverage would decrease for some weird reason.\n  options = options || {};\n  metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n  if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n    if (options.v2) {\n      throw new ParseError('INVALID_COUNTRY');\n    }\n\n    throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n  } // Parse the phone number.\n\n\n  var _parseInput = parseInput(text, options.v2, options.extract),\n      formattedPhoneNumber = _parseInput.number,\n      ext = _parseInput.ext,\n      error = _parseInput.error; // If the phone number is not viable then return nothing.\n\n\n  if (!formattedPhoneNumber) {\n    if (options.v2) {\n      if (error === 'TOO_SHORT') {\n        throw new ParseError('TOO_SHORT');\n      }\n\n      throw new ParseError('NOT_A_NUMBER');\n    }\n\n    return {};\n  }\n\n  var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n      country = _parsePhoneNumber.country,\n      nationalNumber = _parsePhoneNumber.nationalNumber,\n      countryCallingCode = _parsePhoneNumber.countryCallingCode,\n      countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource,\n      carrierCode = _parsePhoneNumber.carrierCode;\n\n  if (!metadata.hasSelectedNumberingPlan()) {\n    if (options.v2) {\n      throw new ParseError('INVALID_COUNTRY');\n    }\n\n    return {};\n  } // Validate national (significant) number length.\n\n\n  if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n    // Won't throw here because the regexp already demands length > 1.\n\n    /* istanbul ignore if */\n    if (options.v2) {\n      throw new ParseError('TOO_SHORT');\n    } // Google's demo just throws an error in this case.\n\n\n    return {};\n  } // Validate national (significant) number length.\n  //\n  // A sidenote:\n  //\n  // They say that sometimes national (significant) numbers\n  // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n  // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n  // Such numbers will just be discarded.\n  //\n\n\n  if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n    if (options.v2) {\n      throw new ParseError('TOO_LONG');\n    } // Google's demo just throws an error in this case.\n\n\n    return {};\n  }\n\n  if (options.v2) {\n    var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n    if (country) {\n      phoneNumber.country = country;\n    }\n\n    if (carrierCode) {\n      phoneNumber.carrierCode = carrierCode;\n    }\n\n    if (ext) {\n      phoneNumber.ext = ext;\n    }\n\n    phoneNumber.__countryCallingCodeSource = countryCallingCodeSource;\n    return phoneNumber;\n  } // Check if national phone number pattern matches the number.\n  // National number pattern is different for each country,\n  // even for those ones which are part of the \"NANPA\" group.\n\n\n  var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n  if (!options.extended) {\n    return valid ? result(country, nationalNumber, ext) : {};\n  } // isInternational: countryCallingCode !== undefined\n\n\n  return {\n    country: country,\n    countryCallingCode: countryCallingCode,\n    carrierCode: carrierCode,\n    valid: valid,\n    possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false,\n    phone: nationalNumber,\n    ext: ext\n  };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param  {string} text\r\n * @param  {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param  {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nfunction _extractFormattedPhoneNumber(text, extract, throwOnError) {\n  if (!text) {\n    return;\n  }\n\n  if (text.length > MAX_INPUT_STRING_LENGTH) {\n    if (throwOnError) {\n      throw new ParseError('TOO_LONG');\n    }\n\n    return;\n  }\n\n  if (extract === false) {\n    return text;\n  } // Attempt to extract a possible number from the string passed in\n\n\n  var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n  if (startsAt < 0) {\n    return;\n  }\n\n  return text // Trim everything to the left of the phone number\n  .slice(startsAt) // Remove trailing non-numerical characters\n  .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param  {string} text - Input.\r\n * @param  {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param  {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\n\nfunction parseInput(text, v2, extract) {\n  // // Parse RFC 3966 phone number URI.\n  // if (text && text.indexOf('tel:') === 0) {\n  // \treturn parseRFC3966(text)\n  // }\n  // let number = extractFormattedPhoneNumber(text, extract, v2)\n  var number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\n    extractFormattedPhoneNumber: function extractFormattedPhoneNumber(text) {\n      return _extractFormattedPhoneNumber(text, extract, v2);\n    }\n  }); // If the phone number is not viable, then abort.\n\n  if (!number) {\n    return {};\n  }\n\n  if (!isViablePhoneNumber(number)) {\n    if (isViablePhoneNumberStart(number)) {\n      return {\n        error: 'TOO_SHORT'\n      };\n    }\n\n    return {};\n  } // Attempt to parse extension first, since it doesn't require region-specific\n  // data and we want to have the non-normalised number here.\n\n\n  var withExtensionStripped = extractExtension(number);\n\n  if (withExtensionStripped.ext) {\n    return withExtensionStripped;\n  }\n\n  return {\n    number: number\n  };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n  var result = {\n    country: country,\n    phone: nationalNumber\n  };\n\n  if (ext) {\n    result.ext = ext;\n  }\n\n  return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n  // Extract calling code from phone number.\n  var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n      countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource,\n      countryCallingCode = _extractCountryCallin.countryCallingCode,\n      number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n  var country;\n\n  if (countryCallingCode) {\n    metadata.selectNumberingPlan(countryCallingCode);\n  } // If `formattedPhoneNumber` is passed in \"national\" format\n  // then `number` is defined and `countryCallingCode` is `undefined`.\n  else if (number && (defaultCountry || defaultCallingCode)) {\n    metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n    if (defaultCountry) {\n      country = defaultCountry;\n    } else {\n      /* istanbul ignore if */\n      if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n        if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n          country = '001';\n        }\n      }\n    }\n\n    countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n  } else return {};\n\n  if (!number) {\n    return {\n      countryCallingCodeSource: countryCallingCodeSource,\n      countryCallingCode: countryCallingCode\n    };\n  }\n\n  var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata),\n      nationalNumber = _extractNationalNumbe.nationalNumber,\n      carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n  // corresponding to the same country phone code\n  // (e.g. NANPA countries all having `1` country phone code).\n  // Therefore, to reliably determine the exact country,\n  // national (significant) number should have been parsed first.\n  //\n  // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n  // get their countries populated with the full set of\n  // \"phone number type\" regular expressions.\n  //\n\n\n  var exactCountry = getCountryByCallingCode(countryCallingCode, {\n    nationalNumber: nationalNumber,\n    defaultCountry: defaultCountry,\n    metadata: metadata\n  });\n\n  if (exactCountry) {\n    country = exactCountry;\n    /* istanbul ignore if */\n\n    if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n      // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n      // then remove the \"istanbul ignore if\".\n    } else {\n      metadata.country(country);\n    }\n  }\n\n  return {\n    country: country,\n    countryCallingCode: countryCallingCode,\n    countryCallingCodeSource: countryCallingCodeSource,\n    nationalNumber: nationalNumber,\n    carrierCode: carrierCode\n  };\n}\n//# sourceMappingURL=parse.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parse from './parse.js';\nexport default function parsePhoneNumberWithError(text, options, metadata) {\n  return parse(text, _objectSpread(_objectSpread({}, options), {}, {\n    v2: true\n  }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumberWithError_.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\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 _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport isObject from './helpers/isObject.js'; // Extracts the following properties from function arguments:\n// * input `text`\n// * `options` object\n// * `metadata` JSON\n\nexport default function normalizeArguments(args) {\n  var _Array$prototype$slic = Array.prototype.slice.call(args),\n      _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n      arg_1 = _Array$prototype$slic2[0],\n      arg_2 = _Array$prototype$slic2[1],\n      arg_3 = _Array$prototype$slic2[2],\n      arg_4 = _Array$prototype$slic2[3];\n\n  var text;\n  var options;\n  var metadata; // If the phone number is passed as a string.\n  // `parsePhoneNumber('88005553535', ...)`.\n\n  if (typeof arg_1 === 'string') {\n    text = arg_1;\n  } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n  // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n  if (!arg_2 || typeof arg_2 === 'string') {\n    if (arg_4) {\n      options = arg_3;\n      metadata = arg_4;\n    } else {\n      options = undefined;\n      metadata = arg_3;\n    }\n\n    if (arg_2) {\n      options = _objectSpread({\n        defaultCountry: arg_2\n      }, options);\n    }\n  } // `defaultCountry` is not passed.\n  // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n  else if (isObject(arg_2)) {\n    if (arg_3) {\n      options = arg_2;\n      metadata = arg_3;\n    } else {\n      metadata = arg_2;\n    }\n  } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n  return {\n    text: text,\n    options: options,\n    metadata: metadata\n  };\n}\n//# sourceMappingURL=normalizeArguments.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parsePhoneNumberWithError from './parsePhoneNumberWithError_.js';\nimport ParseError from './ParseError.js';\nimport { isSupportedCountry } from './metadata.js';\nexport default function parsePhoneNumber(text, options, metadata) {\n  // Validate `defaultCountry`.\n  if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n    options = _objectSpread(_objectSpread({}, options), {}, {\n      defaultCountry: undefined\n    });\n  } // Parse phone number.\n\n\n  try {\n    return parsePhoneNumberWithError(text, options, metadata);\n  } catch (error) {\n    /* istanbul ignore else */\n    if (error instanceof ParseError) {//\n    } else {\n      throw error;\n    }\n  }\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","import normalizeArguments from './normalizeArguments.js';\nimport parsePhoneNumber_ from './parsePhoneNumber_.js';\nexport default function parsePhoneNumber() {\n  var _normalizeArguments = normalizeArguments(arguments),\n      text = _normalizeArguments.text,\n      options = _normalizeArguments.options,\n      metadata = _normalizeArguments.metadata;\n\n  return parsePhoneNumber_(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumber.js.map","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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// This \"state\" object simply holds the state of the \"AsYouType\" parser:\n//\n// * `country?: string`\n// * `callingCode?: string`\n// * `digits: string`\n// * `international: boolean`\n// * `missingPlus: boolean`\n// * `IDDPrefix?: string`\n// * `carrierCode?: string`\n// * `nationalPrefix?: string`\n// * `nationalSignificantNumber?: string`\n// * `nationalSignificantNumberMatchesInput: boolean`\n// * `complexPrefixBeforeNationalSignificantNumber?: string`\n//\n// `state.country` and `state.callingCode` aren't required to be in sync.\n// For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n// So `state.country` and `state.callingCode` are totally independent.\n//\nvar AsYouTypeState = /*#__PURE__*/function () {\n  function AsYouTypeState(_ref) {\n    var onCountryChange = _ref.onCountryChange,\n        onCallingCodeChange = _ref.onCallingCodeChange;\n\n    _classCallCheck(this, AsYouTypeState);\n\n    this.onCountryChange = onCountryChange;\n    this.onCallingCodeChange = onCallingCodeChange;\n  }\n\n  _createClass(AsYouTypeState, [{\n    key: \"reset\",\n    value: function reset(_ref2) {\n      var country = _ref2.country,\n          callingCode = _ref2.callingCode;\n      this.international = false;\n      this.missingPlus = false;\n      this.IDDPrefix = undefined;\n      this.callingCode = undefined;\n      this.digits = '';\n      this.resetNationalSignificantNumber();\n      this.initCountryAndCallingCode(country, callingCode);\n    }\n  }, {\n    key: \"resetNationalSignificantNumber\",\n    value: function resetNationalSignificantNumber() {\n      this.nationalSignificantNumber = this.getNationalDigits();\n      this.nationalSignificantNumberMatchesInput = true;\n      this.nationalPrefix = undefined;\n      this.carrierCode = undefined;\n      this.complexPrefixBeforeNationalSignificantNumber = undefined;\n    }\n  }, {\n    key: \"update\",\n    value: function update(properties) {\n      for (var _i = 0, _Object$keys = Object.keys(properties); _i < _Object$keys.length; _i++) {\n        var key = _Object$keys[_i];\n        this[key] = properties[key];\n      }\n    }\n  }, {\n    key: \"initCountryAndCallingCode\",\n    value: function initCountryAndCallingCode(country, callingCode) {\n      this.setCountry(country);\n      this.setCallingCode(callingCode);\n    }\n  }, {\n    key: \"setCountry\",\n    value: function setCountry(country) {\n      this.country = country;\n      this.onCountryChange(country);\n    }\n  }, {\n    key: \"setCallingCode\",\n    value: function setCallingCode(callingCode) {\n      this.callingCode = callingCode;\n      this.onCallingCodeChange(callingCode, this.country);\n    }\n  }, {\n    key: \"startInternationalNumber\",\n    value: function startInternationalNumber(country, callingCode) {\n      // Prepend the `+` to parsed input.\n      this.international = true; // If a default country was set then reset it\n      // because an explicitly international phone\n      // number is being entered.\n\n      this.initCountryAndCallingCode(country, callingCode);\n    }\n  }, {\n    key: \"appendDigits\",\n    value: function appendDigits(nextDigits) {\n      this.digits += nextDigits;\n    }\n  }, {\n    key: \"appendNationalSignificantNumberDigits\",\n    value: function appendNationalSignificantNumberDigits(nextDigits) {\n      this.nationalSignificantNumber += nextDigits;\n    }\n    /**\r\n     * Returns the part of `this.digits` that corresponds to the national number.\r\n     * Basically, all digits that have been input by the user, except for the\r\n     * international prefix and the country calling code part\r\n     * (if the number is an international one).\r\n     * @return {string}\r\n     */\n\n  }, {\n    key: \"getNationalDigits\",\n    value: function getNationalDigits() {\n      if (this.international) {\n        return this.digits.slice((this.IDDPrefix ? this.IDDPrefix.length : 0) + (this.callingCode ? this.callingCode.length : 0));\n      }\n\n      return this.digits;\n    }\n  }, {\n    key: \"getDigitsWithoutInternationalPrefix\",\n    value: function getDigitsWithoutInternationalPrefix() {\n      if (this.international) {\n        if (this.IDDPrefix) {\n          return this.digits.slice(this.IDDPrefix.length);\n        }\n      }\n\n      return this.digits;\n    }\n  }]);\n\n  return AsYouTypeState;\n}();\n\nexport { AsYouTypeState as default };\n//# sourceMappingURL=AsYouTypeState.js.map","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\n// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\nexport var DIGIT_PLACEHOLDER = 'x'; // '\\u2008' (punctuation space)\n\nvar DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER); // Counts all occurences of a symbol in a string.\n// Unicode-unsafe (because using `.split()`).\n\nexport function countOccurences(symbol, string) {\n  var count = 0; // Using `.split('')` to iterate through a string here\n  // to avoid requiring `Symbol.iterator` polyfill.\n  // `.split('')` is generally not safe for Unicode,\n  // but in this particular case for counting brackets it is safe.\n  // for (const character of string)\n\n  for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n    var character = _step.value;\n\n    if (character === symbol) {\n      count++;\n    }\n  }\n\n  return count;\n} // Repeats a string (or a symbol) N times.\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\n\nexport function repeat(string, times) {\n  if (times < 1) {\n    return '';\n  }\n\n  var result = '';\n\n  while (times > 1) {\n    if (times & 1) {\n      result += string;\n    }\n\n    times >>= 1;\n    string += string;\n  }\n\n  return result + string;\n}\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\n  if (string[cutBeforeIndex] === ')') {\n    cutBeforeIndex++;\n  }\n\n  return stripNonPairedParens(string.slice(0, cutBeforeIndex));\n}\nexport function closeNonPairedParens(template, cut_before) {\n  var retained_template = template.slice(0, cut_before);\n  var opening_braces = countOccurences('(', retained_template);\n  var closing_braces = countOccurences(')', retained_template);\n  var dangling_braces = opening_braces - closing_braces;\n\n  while (dangling_braces > 0 && cut_before < template.length) {\n    if (template[cut_before] === ')') {\n      dangling_braces--;\n    }\n\n    cut_before++;\n  }\n\n  return template.slice(0, cut_before);\n}\nexport function stripNonPairedParens(string) {\n  var dangling_braces = [];\n  var i = 0;\n\n  while (i < string.length) {\n    if (string[i] === '(') {\n      dangling_braces.push(i);\n    } else if (string[i] === ')') {\n      dangling_braces.pop();\n    }\n\n    i++;\n  }\n\n  var start = 0;\n  var cleared_string = '';\n  dangling_braces.push(string.length);\n\n  for (var _i = 0, _dangling_braces = dangling_braces; _i < _dangling_braces.length; _i++) {\n    var index = _dangling_braces[_i];\n    cleared_string += string.slice(start, index);\n    start = index + 1;\n  }\n\n  return cleared_string;\n}\nexport function populateTemplateWithDigits(template, position, digits) {\n  // Using `.split('')` to iterate through a string here\n  // to avoid requiring `Symbol.iterator` polyfill.\n  // `.split('')` is generally not safe for Unicode,\n  // but in this particular case for `digits` it is safe.\n  // for (const digit of digits)\n  for (var _iterator2 = _createForOfIteratorHelperLoose(digits.split('')), _step2; !(_step2 = _iterator2()).done;) {\n    var digit = _step2.value;\n\n    // If there is room for more digits in current `template`,\n    // then set the next digit in the `template`,\n    // and return the formatted digits so far.\n    // If more digits are entered than the current format could handle.\n    if (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\n      return;\n    }\n\n    position = template.search(DIGIT_PLACEHOLDER_MATCHER);\n    template = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit);\n  }\n\n  return [template, position];\n}\n//# sourceMappingURL=AsYouTypeFormatter.util.js.map","import checkNumberLength from './helpers/checkNumberLength.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nexport default function formatCompleteNumber(state, format, _ref) {\n  var metadata = _ref.metadata,\n      shouldTryNationalPrefixFormattingRule = _ref.shouldTryNationalPrefixFormattingRule,\n      getSeparatorAfterNationalPrefix = _ref.getSeparatorAfterNationalPrefix;\n  var matcher = new RegExp(\"^(?:\".concat(format.pattern(), \")$\"));\n\n  if (matcher.test(state.nationalSignificantNumber)) {\n    return formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\n      metadata: metadata,\n      shouldTryNationalPrefixFormattingRule: shouldTryNationalPrefixFormattingRule,\n      getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix\n    });\n  }\n}\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\n  return checkNumberLength(nationalSignificantNumber, metadata) === 'IS_POSSIBLE';\n}\n\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, _ref2) {\n  var metadata = _ref2.metadata,\n      shouldTryNationalPrefixFormattingRule = _ref2.shouldTryNationalPrefixFormattingRule,\n      getSeparatorAfterNationalPrefix = _ref2.getSeparatorAfterNationalPrefix;\n  // `format` has already been checked for `nationalPrefix` requirement.\n  var nationalSignificantNumber = state.nationalSignificantNumber,\n      international = state.international,\n      nationalPrefix = state.nationalPrefix,\n      carrierCode = state.carrierCode; // Format the number with using `national_prefix_formatting_rule`.\n  // If the resulting formatted number is a valid formatted number, then return it.\n  //\n  // Google's AsYouType formatter is different in a way that it doesn't try\n  // to format using the \"national prefix formatting rule\", and instead it\n  // simply prepends a national prefix followed by a \" \" character.\n  // This code does that too, but as a fallback.\n  // The reason is that \"national prefix formatting rule\" may use parentheses,\n  // which wouldn't be included has it used the simpler Google's way.\n  //\n\n  if (shouldTryNationalPrefixFormattingRule(format)) {\n    var formattedNumber = formatNationalNumber(state, format, {\n      useNationalPrefixFormattingRule: true,\n      getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n      metadata: metadata\n    });\n\n    if (formattedNumber) {\n      return formattedNumber;\n    }\n  } // Format the number without using `national_prefix_formatting_rule`.\n\n\n  return formatNationalNumber(state, format, {\n    useNationalPrefixFormattingRule: false,\n    getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n    metadata: metadata\n  });\n}\n\nfunction formatNationalNumber(state, format, _ref3) {\n  var metadata = _ref3.metadata,\n      useNationalPrefixFormattingRule = _ref3.useNationalPrefixFormattingRule,\n      getSeparatorAfterNationalPrefix = _ref3.getSeparatorAfterNationalPrefix;\n  var formattedNationalNumber = formatNationalNumberUsingFormat(state.nationalSignificantNumber, format, {\n    carrierCode: state.carrierCode,\n    useInternationalFormat: state.international,\n    withNationalPrefix: useNationalPrefixFormattingRule,\n    metadata: metadata\n  });\n\n  if (!useNationalPrefixFormattingRule) {\n    if (state.nationalPrefix) {\n      // If a national prefix was extracted, then just prepend it,\n      // followed by a \" \" character.\n      formattedNationalNumber = state.nationalPrefix + getSeparatorAfterNationalPrefix(format) + formattedNationalNumber;\n    } else if (state.complexPrefixBeforeNationalSignificantNumber) {\n      formattedNationalNumber = state.complexPrefixBeforeNationalSignificantNumber + ' ' + formattedNationalNumber;\n    }\n  }\n\n  if (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\n    return formattedNationalNumber;\n  }\n} // Check that the formatted phone number contains exactly\n// the same digits that have been input by the user.\n// For example, when \"0111523456789\" is input for `AR` country,\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\n// which means that the national part of `this.digits` isn't simply equal to\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\n//\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\n// being formatted via `metadata[country].national_prefix_transform_rule`.\n// For example, for `VI` country, it prepends `340` to the national number,\n// and if this check hasn't been implemented, then there would be a bug\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\n//\n// So, all these \"gotchas\" are filtered out.\n//\n// In the original Google's code, the comments say:\n// \"Check that we didn't remove nor add any extra digits when we matched\n// this formatting pattern. This usually happens after we entered the last\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\n// formatted but AYTF should retain all the number entered and not change\n// in order to match a format (of same leading digits and length) display\n// in that way.\"\n// \"If it's the same (i.e entered number and format is same), then it's\n// safe to return this in formatted number as nothing is lost / added.\"\n// Otherwise, don't use this format.\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\n//\n\n\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\n  return parseDigits(formattedNationalNumber) === state.getNationalDigits();\n}\n//# sourceMappingURL=AsYouTypeFormatter.complete.js.map","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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\nvar PatternParser = /*#__PURE__*/function () {\n  function PatternParser() {\n    _classCallCheck(this, PatternParser);\n  }\n\n  _createClass(PatternParser, [{\n    key: \"parse\",\n    value: function parse(pattern) {\n      this.context = [{\n        or: true,\n        instructions: []\n      }];\n      this.parsePattern(pattern);\n\n      if (this.context.length !== 1) {\n        throw new Error('Non-finalized contexts left when pattern parse ended');\n      }\n\n      var _this$context$ = this.context[0],\n          branches = _this$context$.branches,\n          instructions = _this$context$.instructions;\n\n      if (branches) {\n        return {\n          op: '|',\n          args: branches.concat([expandSingleElementArray(instructions)])\n        };\n      }\n      /* istanbul ignore if */\n\n\n      if (instructions.length === 0) {\n        throw new Error('Pattern is required');\n      }\n\n      if (instructions.length === 1) {\n        return instructions[0];\n      }\n\n      return instructions;\n    }\n  }, {\n    key: \"startContext\",\n    value: function startContext(context) {\n      this.context.push(context);\n    }\n  }, {\n    key: \"endContext\",\n    value: function endContext() {\n      this.context.pop();\n    }\n  }, {\n    key: \"getContext\",\n    value: function getContext() {\n      return this.context[this.context.length - 1];\n    }\n  }, {\n    key: \"parsePattern\",\n    value: function parsePattern(pattern) {\n      if (!pattern) {\n        throw new Error('Pattern is required');\n      }\n\n      var match = pattern.match(OPERATOR);\n\n      if (!match) {\n        if (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\n          throw new Error(\"Illegal characters found in a pattern: \".concat(pattern));\n        }\n\n        this.getContext().instructions = this.getContext().instructions.concat(pattern.split(''));\n        return;\n      }\n\n      var operator = match[1];\n      var before = pattern.slice(0, match.index);\n      var rightPart = pattern.slice(match.index + operator.length);\n\n      switch (operator) {\n        case '(?:':\n          if (before) {\n            this.parsePattern(before);\n          }\n\n          this.startContext({\n            or: true,\n            instructions: [],\n            branches: []\n          });\n          break;\n\n        case ')':\n          if (!this.getContext().or) {\n            throw new Error('\")\" operator must be preceded by \"(?:\" operator');\n          }\n\n          if (before) {\n            this.parsePattern(before);\n          }\n\n          if (this.getContext().instructions.length === 0) {\n            throw new Error('No instructions found after \"|\" operator in an \"or\" group');\n          }\n\n          var _this$getContext = this.getContext(),\n              branches = _this$getContext.branches;\n\n          branches.push(expandSingleElementArray(this.getContext().instructions));\n          this.endContext();\n          this.getContext().instructions.push({\n            op: '|',\n            args: branches\n          });\n          break;\n\n        case '|':\n          if (!this.getContext().or) {\n            throw new Error('\"|\" operator can only be used inside \"or\" groups');\n          }\n\n          if (before) {\n            this.parsePattern(before);\n          } // The top-level is an implicit \"or\" group, if required.\n\n\n          if (!this.getContext().branches) {\n            // `branches` are not defined only for the root implicit \"or\" operator.\n\n            /* istanbul ignore else */\n            if (this.context.length === 1) {\n              this.getContext().branches = [];\n            } else {\n              throw new Error('\"branches\" not found in an \"or\" group context');\n            }\n          }\n\n          this.getContext().branches.push(expandSingleElementArray(this.getContext().instructions));\n          this.getContext().instructions = [];\n          break;\n\n        case '[':\n          if (before) {\n            this.parsePattern(before);\n          }\n\n          this.startContext({\n            oneOfSet: true\n          });\n          break;\n\n        case ']':\n          if (!this.getContext().oneOfSet) {\n            throw new Error('\"]\" operator must be preceded by \"[\" operator');\n          }\n\n          this.endContext();\n          this.getContext().instructions.push({\n            op: '[]',\n            args: parseOneOfSet(before)\n          });\n          break;\n\n        /* istanbul ignore next */\n\n        default:\n          throw new Error(\"Unknown operator: \".concat(operator));\n      }\n\n      if (rightPart) {\n        this.parsePattern(rightPart);\n      }\n    }\n  }]);\n\n  return PatternParser;\n}();\n\nexport { PatternParser as default };\n\nfunction parseOneOfSet(pattern) {\n  var values = [];\n  var i = 0;\n\n  while (i < pattern.length) {\n    if (pattern[i] === '-') {\n      if (i === 0 || i === pattern.length - 1) {\n        throw new Error(\"Couldn't parse a one-of set pattern: \".concat(pattern));\n      }\n\n      var prevValue = pattern[i - 1].charCodeAt(0) + 1;\n      var nextValue = pattern[i + 1].charCodeAt(0) - 1;\n      var value = prevValue;\n\n      while (value <= nextValue) {\n        values.push(String.fromCharCode(value));\n        value++;\n      }\n    } else {\n      values.push(pattern[i]);\n    }\n\n    i++;\n  }\n\n  return values;\n}\n\nvar ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/;\nvar OPERATOR = new RegExp( // any of:\n'(' + // or operator\n'\\\\|' + // or\n'|' + // or group start\n'\\\\(\\\\?\\\\:' + // or\n'|' + // or group end\n'\\\\)' + // or\n'|' + // one-of set start\n'\\\\[' + // or\n'|' + // one-of set end\n'\\\\]' + ')');\n\nfunction expandSingleElementArray(array) {\n  if (array.length === 1) {\n    return array[0];\n  }\n\n  return array;\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternParser.js.map","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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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\nimport PatternParser from './AsYouTypeFormatter.PatternParser.js';\n\nvar PatternMatcher = /*#__PURE__*/function () {\n  function PatternMatcher(pattern) {\n    _classCallCheck(this, PatternMatcher);\n\n    this.matchTree = new PatternParser().parse(pattern);\n  }\n\n  _createClass(PatternMatcher, [{\n    key: \"match\",\n    value: function match(string) {\n      var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n          allowOverflow = _ref.allowOverflow;\n\n      if (!string) {\n        throw new Error('String is required');\n      }\n\n      var result = _match(string.split(''), this.matchTree, true);\n\n      if (result && result.match) {\n        delete result.matchedChars;\n      }\n\n      if (result && result.overflow) {\n        if (!allowOverflow) {\n          return;\n        }\n      }\n\n      return result;\n    }\n  }]);\n\n  return PatternMatcher;\n}();\n/**\r\n * Matches `characters` against a pattern compiled into a `tree`.\r\n * @param  {string[]} characters\r\n * @param  {Tree} tree — A pattern compiled into a `tree`. See the `*.d.ts` file for the description of the `tree` structure.\r\n * @param  {boolean} last — Whether it's the last (rightmost) subtree on its level of the match tree.\r\n * @return {object} See the `*.d.ts` file for the description of the result object.\r\n */\n\n\nexport { PatternMatcher as default };\n\nfunction _match(characters, tree, last) {\n  // If `tree` is a string, then `tree` is a single character.\n  // That's because when a pattern is parsed, multi-character-string parts\n  // of a pattern are compiled into arrays of single characters.\n  // I still wrote this piece of code for a \"general\" hypothetical case\n  // when `tree` could be a string of several characters, even though\n  // such case is not possible with the current implementation.\n  if (typeof tree === 'string') {\n    var characterString = characters.join('');\n\n    if (tree.indexOf(characterString) === 0) {\n      // `tree` is always a single character.\n      // If `tree.indexOf(characterString) === 0`\n      // then `characters.length === tree.length`.\n\n      /* istanbul ignore else */\n      if (characters.length === tree.length) {\n        return {\n          match: true,\n          matchedChars: characters\n        };\n      } // `tree` is always a single character.\n      // If `tree.indexOf(characterString) === 0`\n      // then `characters.length === tree.length`.\n\n      /* istanbul ignore next */\n\n\n      return {\n        partialMatch: true // matchedChars: characters\n\n      };\n    }\n\n    if (characterString.indexOf(tree) === 0) {\n      if (last) {\n        // The `else` path is not possible because `tree` is always a single character.\n        // The `else` case for `characters.length > tree.length` would be\n        // `characters.length <= tree.length` which means `characters.length <= 1`.\n        // `characters` array can't be empty, so that means `characters === [tree]`,\n        // which would also mean `tree.indexOf(characterString) === 0` and that'd mean\n        // that the `if (tree.indexOf(characterString) === 0)` condition before this\n        // `if` condition would be entered, and returned from there, not reaching this code.\n\n        /* istanbul ignore else */\n        if (characters.length > tree.length) {\n          return {\n            overflow: true\n          };\n        }\n      }\n\n      return {\n        match: true,\n        matchedChars: characters.slice(0, tree.length)\n      };\n    }\n\n    return;\n  }\n\n  if (Array.isArray(tree)) {\n    var restCharacters = characters.slice();\n    var i = 0;\n\n    while (i < tree.length) {\n      var subtree = tree[i];\n\n      var result = _match(restCharacters, subtree, last && i === tree.length - 1);\n\n      if (!result) {\n        return;\n      } else if (result.overflow) {\n        return result;\n      } else if (result.match) {\n        // Continue with the next subtree with the rest of the characters.\n        restCharacters = restCharacters.slice(result.matchedChars.length);\n\n        if (restCharacters.length === 0) {\n          if (i === tree.length - 1) {\n            return {\n              match: true,\n              matchedChars: characters\n            };\n          } else {\n            return {\n              partialMatch: true // matchedChars: characters\n\n            };\n          }\n        }\n      } else {\n        /* istanbul ignore else */\n        if (result.partialMatch) {\n          return {\n            partialMatch: true // matchedChars: characters\n\n          };\n        } else {\n          throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(result, null, 2)));\n        }\n      }\n\n      i++;\n    } // If `last` then overflow has already been checked\n    // by the last element of the `tree` array.\n\n    /* istanbul ignore if */\n\n\n    if (last) {\n      return {\n        overflow: true\n      };\n    }\n\n    return {\n      match: true,\n      matchedChars: characters.slice(0, characters.length - restCharacters.length)\n    };\n  }\n\n  switch (tree.op) {\n    case '|':\n      var partialMatch;\n\n      for (var _iterator = _createForOfIteratorHelperLoose(tree.args), _step; !(_step = _iterator()).done;) {\n        var branch = _step.value;\n\n        var _result = _match(characters, branch, last);\n\n        if (_result) {\n          if (_result.overflow) {\n            return _result;\n          } else if (_result.match) {\n            return {\n              match: true,\n              matchedChars: _result.matchedChars\n            };\n          } else {\n            /* istanbul ignore else */\n            if (_result.partialMatch) {\n              partialMatch = true;\n            } else {\n              throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(_result, null, 2)));\n            }\n          }\n        }\n      }\n\n      if (partialMatch) {\n        return {\n          partialMatch: true // matchedChars: ...\n\n        };\n      } // Not even a partial match.\n\n\n      return;\n\n    case '[]':\n      for (var _iterator2 = _createForOfIteratorHelperLoose(tree.args), _step2; !(_step2 = _iterator2()).done;) {\n        var _char = _step2.value;\n\n        if (characters[0] === _char) {\n          if (characters.length === 1) {\n            return {\n              match: true,\n              matchedChars: characters\n            };\n          }\n\n          if (last) {\n            return {\n              overflow: true\n            };\n          }\n\n          return {\n            match: true,\n            matchedChars: [_char]\n          };\n        }\n      } // No character matches.\n\n\n      return;\n\n    /* istanbul ignore next */\n\n    default:\n      throw new Error(\"Unsupported instruction tree: \".concat(tree));\n  }\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternMatcher.js.map","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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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\nimport { DIGIT_PLACEHOLDER, countOccurences, repeat, cutAndStripNonPairedParens, closeNonPairedParens, stripNonPairedParens, populateTemplateWithDigits } from './AsYouTypeFormatter.util.js';\nimport formatCompleteNumber, { canFormatCompleteNumber } from './AsYouTypeFormatter.complete.js';\nimport PatternMatcher from './AsYouTypeFormatter.PatternMatcher.js';\nimport parseDigits from './helpers/parseDigits.js';\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util.js';\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat.js';\nimport { VALID_PUNCTUATION } from './constants.js';\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle.js'; // Used in phone number format template creation.\n// Could be any digit, I guess.\n\nvar DUMMY_DIGIT = '9'; // I don't know why is it exactly `15`\n\nvar LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15; // Create a phone number consisting only of the digit 9 that matches the\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\n\nvar LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH); // A set of characters that, if found in a national prefix formatting rules, are an indicator to\n// us that we should separate the national prefix from the number when formatting.\n\nvar NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/; // Deprecated: Google has removed some formatting pattern related code from their repo.\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\n// Because this library supports generating custom metadata\n// some users may still be using old metadata so the relevant\n// code seems to stay until some next major version update.\n\nvar SUPPORT_LEGACY_FORMATTING_PATTERNS = true; // A pattern that is used to match character classes in regular expressions.\n// An example of a character class is \"[1-4]\".\n\nvar CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n  return /\\[([^\\[\\]])*\\]/g;\n}; // Any digit in a regular expression that actually denotes a digit. For\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\n// (8 and 0) are standalone digits, but the rest are not.\n// Two look-aheads are needed because the number following \\\\d could be a\n// two-digit number, since the phone number can be as long as 15 digits.\n\n\nvar CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n  return /\\d(?=[^,}][^,}])/g;\n}; // A regular expression that is used to determine if a `format` is\n// suitable to be used in the \"as you type formatter\".\n// A `format` is suitable when the resulting formatted number has\n// the same digits as the user has entered.\n//\n// In the simplest case, that would mean that the format\n// doesn't add any additional digits when formatting a number.\n// Google says that it also shouldn't add \"star\" (`*`) characters,\n// like it does in some Israeli formats.\n// Such basic format would only contain \"valid punctuation\"\n// and \"captured group\" identifiers ($1, $2, etc).\n//\n// An example of a format that adds additional digits:\n//\n// Country: `AR` (Argentina).\n// Format:\n// {\n//    \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n//    \"leading_digits_patterns\": [\"91\"],\n//    \"national_prefix_formatting_rule\": \"0$1\",\n//    \"format\": \"$2 15-$3-$4\",\n//    \"international_format\": \"$1 $2 $3-$4\"\n// }\n//\n// In the format above, the `format` adds `15` to the digits when formatting a number.\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\n// has previously removed `15` from a national number, so re-adding `15` in `format`\n// doesn't actually result in any extra digits added to user's input.\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\n//\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\n// `libphonenumber` code.\n//\n\n\nvar NON_ALTERING_FORMAT_REG_EXP = new RegExp('[' + VALID_PUNCTUATION + ']*' + // Google developers say:\n// \"We require that the first matching group is present in the\n//  output pattern to ensure no data is lost while formatting.\"\n'\\\\$1' + '[' + VALID_PUNCTUATION + ']*' + '(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)*' + '$'); // This is the minimum length of the leading digits of a phone number\n// to guarantee the first \"leading digits pattern\" for a phone number format\n// to be preemptive.\n\nvar MIN_LEADING_DIGITS_LENGTH = 3;\n\nvar AsYouTypeFormatter = /*#__PURE__*/function () {\n  function AsYouTypeFormatter(_ref) {\n    var state = _ref.state,\n        metadata = _ref.metadata;\n\n    _classCallCheck(this, AsYouTypeFormatter);\n\n    this.metadata = metadata;\n    this.resetFormat();\n  }\n\n  _createClass(AsYouTypeFormatter, [{\n    key: \"resetFormat\",\n    value: function resetFormat() {\n      this.chosenFormat = undefined;\n      this.template = undefined;\n      this.nationalNumberTemplate = undefined;\n      this.populatedNationalNumberTemplate = undefined;\n      this.populatedNationalNumberTemplatePosition = -1;\n    }\n  }, {\n    key: \"reset\",\n    value: function reset(numberingPlan, state) {\n      this.resetFormat();\n\n      if (numberingPlan) {\n        this.isNANP = numberingPlan.callingCode() === '1';\n        this.matchingFormats = numberingPlan.formats();\n\n        if (state.nationalSignificantNumber) {\n          this.narrowDownMatchingFormats(state);\n        }\n      } else {\n        this.isNANP = undefined;\n        this.matchingFormats = [];\n      }\n    }\n    /**\r\n     * Formats an updated phone number.\r\n     * @param  {string} nextDigits — Additional phone number digits.\r\n     * @param  {object} state — `AsYouType` state.\r\n     * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\r\n     */\n\n  }, {\n    key: \"format\",\n    value: function format(nextDigits, state) {\n      var _this = this;\n\n      // See if the phone number digits can be formatted as a complete phone number.\n      // If not, use the results from `formatNationalNumberWithNextDigits()`,\n      // which formats based on the chosen formatting pattern.\n      //\n      // Attempting to format complete phone number first is how it's done\n      // in Google's `libphonenumber`, so this library just follows it.\n      // Google's `libphonenumber` code doesn't explain in detail why does it\n      // attempt to format digits as a complete phone number\n      // instead of just going with a previoulsy (or newly) chosen `format`:\n      //\n      // \"Checks to see if there is an exact pattern match for these digits.\n      //  If so, we should use this instead of any other formatting template\n      //  whose leadingDigitsPattern also matches the input.\"\n      //\n      if (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\n        for (var _iterator = _createForOfIteratorHelperLoose(this.matchingFormats), _step; !(_step = _iterator()).done;) {\n          var format = _step.value;\n          var formattedCompleteNumber = formatCompleteNumber(state, format, {\n            metadata: this.metadata,\n            shouldTryNationalPrefixFormattingRule: function shouldTryNationalPrefixFormattingRule(format) {\n              return _this.shouldTryNationalPrefixFormattingRule(format, {\n                international: state.international,\n                nationalPrefix: state.nationalPrefix\n              });\n            },\n            getSeparatorAfterNationalPrefix: function getSeparatorAfterNationalPrefix(format) {\n              return _this.getSeparatorAfterNationalPrefix(format);\n            }\n          });\n\n          if (formattedCompleteNumber) {\n            this.resetFormat();\n            this.chosenFormat = format;\n            this.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state);\n            this.populatedNationalNumberTemplate = formattedCompleteNumber; // With a new formatting template, the matched position\n            // using the old template needs to be reset.\n\n            this.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER);\n            return formattedCompleteNumber;\n          }\n        }\n      } // Format the digits as a partial (incomplete) phone number\n      // using the previously chosen formatting pattern (or a newly chosen one).\n\n\n      return this.formatNationalNumberWithNextDigits(nextDigits, state);\n    } // Formats the next phone number digits.\n\n  }, {\n    key: \"formatNationalNumberWithNextDigits\",\n    value: function formatNationalNumberWithNextDigits(nextDigits, state) {\n      var previouslyChosenFormat = this.chosenFormat; // Choose a format from the list of matching ones.\n\n      var newlyChosenFormat = this.chooseFormat(state);\n\n      if (newlyChosenFormat) {\n        if (newlyChosenFormat === previouslyChosenFormat) {\n          // If it can format the next (current) digits\n          // using the previously chosen phone number format\n          // then return the updated formatted number.\n          return this.formatNextNationalNumberDigits(nextDigits);\n        } else {\n          // If a more appropriate phone number format\n          // has been chosen for these \"leading digits\",\n          // then re-format the national phone number part\n          // using the newly selected format.\n          return this.formatNextNationalNumberDigits(state.getNationalDigits());\n        }\n      }\n    }\n  }, {\n    key: \"narrowDownMatchingFormats\",\n    value: function narrowDownMatchingFormats(_ref2) {\n      var _this2 = this;\n\n      var nationalSignificantNumber = _ref2.nationalSignificantNumber,\n          nationalPrefix = _ref2.nationalPrefix,\n          international = _ref2.international;\n      var leadingDigits = nationalSignificantNumber; // \"leading digits\" pattern list starts with a\n      // \"leading digits\" pattern fitting a maximum of 3 leading digits.\n      // So, after a user inputs 3 digits of a national (significant) phone number\n      // this national (significant) number can already be formatted.\n      // The next \"leading digits\" pattern is for 4 leading digits max,\n      // and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\n      // This implementation is different from Google's\n      // in that it searches for a fitting format\n      // even if the user has entered less than\n      // `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\n      // Because some leading digit patterns already match for a single first digit.\n\n      var leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH;\n\n      if (leadingDigitsPatternIndex < 0) {\n        leadingDigitsPatternIndex = 0;\n      }\n\n      this.matchingFormats = this.matchingFormats.filter(function (format) {\n        return _this2.formatSuits(format, international, nationalPrefix) && _this2.formatMatches(format, leadingDigits, leadingDigitsPatternIndex);\n      }); // If there was a phone number format chosen\n      // and it no longer holds given the new leading digits then reset it.\n      // The test for this `if` condition is marked as:\n      // \"Reset a chosen format when it no longer holds given the new leading digits\".\n      // To construct a valid test case for this one can find a country\n      // in `PhoneNumberMetadata.xml` yielding one format for 3 `<leadingDigits>`\n      // and yielding another format for 4 `<leadingDigits>` (Australia in this case).\n\n      if (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\n        this.resetFormat();\n      }\n    }\n  }, {\n    key: \"formatSuits\",\n    value: function formatSuits(format, international, nationalPrefix) {\n      // When a prefix before a national (significant) number is\n      // simply a national prefix, then it's parsed as `this.nationalPrefix`.\n      // In more complex cases, a prefix before national (significant) number\n      // could include a national prefix as well as some \"capturing groups\",\n      // and in that case there's no info whether a national prefix has been parsed.\n      // If national prefix is not used when formatting a phone number\n      // using this format, but a national prefix has been entered by the user,\n      // and was extracted, then discard such phone number format.\n      // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n      // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\n      if (nationalPrefix && !format.usesNationalPrefix() && // !format.domesticCarrierCodeFormattingRule() &&\n      !format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n        return false;\n      } // If national prefix is mandatory for this phone number format\n      // and there're no guarantees that a national prefix is present in user input\n      // then discard this phone number format as not suitable.\n      // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n      // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\n\n\n      if (!international && !nationalPrefix && format.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\n        return false;\n      }\n\n      return true;\n    }\n  }, {\n    key: \"formatMatches\",\n    value: function formatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\n      var leadingDigitsPatternsCount = format.leadingDigitsPatterns().length; // If this format is not restricted to a certain\n      // leading digits pattern then it fits.\n      // The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\n\n      if (leadingDigitsPatternsCount === 0) {\n        return true;\n      } // Start narrowing down the list of possible formats based on the leading digits.\n      // (only previously matched formats take part in the narrowing down process)\n      // `leading_digits_patterns` start with 3 digits min\n      // and then go up from there one digit at a time.\n\n\n      leadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1);\n      var leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]; // Google imposes a requirement on the leading digits\n      // to be minimum 3 digits long in order to be eligible\n      // for checking those with a leading digits pattern.\n      //\n      // Since `leading_digits_patterns` start with 3 digits min,\n      // Google's original `libphonenumber` library only starts\n      // excluding any non-matching formats only when the\n      // national number entered so far is at least 3 digits long,\n      // otherwise format matching would give false negatives.\n      //\n      // For example, when the digits entered so far are `2`\n      // and the leading digits pattern is `21` –\n      // it's quite obvious in this case that the format could be the one\n      // but due to the absence of further digits it would give false negative.\n      //\n      // Also, `leading_digits_patterns` doesn't always correspond to a single\n      // digits count. For example, `60|8` pattern would already match `8`\n      // but the `60` part would require having at least two leading digits,\n      // so the whole pattern would require inputting two digits first in order to\n      // decide on whether it matches the input, even when the input is \"80\".\n      //\n      // This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\n      // even when there's only 1 or 2 digits of the national (significant) number.\n      // To do that, it uses a non-strict pattern matcher written specifically for that.\n      //\n\n      if (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\n        // Before leading digits < 3 matching was implemented:\n        // return true\n        //\n        // After leading digits < 3 matching was implemented:\n        try {\n          return new PatternMatcher(leadingDigitsPattern).match(leadingDigits, {\n            allowOverflow: true\n          }) !== undefined;\n        } catch (error)\n        /* istanbul ignore next */\n        {\n          // There's a slight possibility that there could be some undiscovered bug\n          // in the pattern matcher code. Since the \"leading digits < 3 matching\"\n          // feature is not \"essential\" for operation, it can fall back to the old way\n          // in case of any issues rather than halting the application's execution.\n          console.error(error);\n          return true;\n        }\n      } // If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\n      // available then use the usual regular expression matching.\n      //\n      // The whole pattern is wrapped in round brackets (`()`) because\n      // the pattern can use \"or\" operator (`|`) at the top level of the pattern.\n      //\n\n\n      return new RegExp(\"^(\".concat(leadingDigitsPattern, \")\")).test(leadingDigits);\n    }\n  }, {\n    key: \"getFormatFormat\",\n    value: function getFormatFormat(format, international) {\n      return international ? format.internationalFormat() : format.format();\n    }\n  }, {\n    key: \"chooseFormat\",\n    value: function chooseFormat(state) {\n      var _this3 = this;\n\n      var _loop = function _loop() {\n        var format = _step2.value;\n\n        // If this format is currently being used\n        // and is still suitable, then stick to it.\n        if (_this3.chosenFormat === format) {\n          return \"break\";\n        } // Sometimes, a formatting rule inserts additional digits in a phone number,\n        // and \"as you type\" formatter can't do that: it should only use the digits\n        // that the user has input.\n        //\n        // For example, in Argentina, there's a format for mobile phone numbers:\n        //\n        // {\n        //    \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n        //    \"leading_digits_patterns\": [\"91\"],\n        //    \"national_prefix_formatting_rule\": \"0$1\",\n        //    \"format\": \"$2 15-$3-$4\",\n        //    \"international_format\": \"$1 $2 $3-$4\"\n        // }\n        //\n        // In that format, `international_format` is used instead of `format`\n        // because `format` inserts `15` in the formatted number,\n        // and `AsYouType` formatter should only use the digits\n        // the user has actually input, without adding any extra digits.\n        // In this case, it wouldn't make a difference, because the `15`\n        // is first stripped when applying `national_prefix_for_parsing`\n        // and then re-added when using `format`, so in reality it doesn't\n        // add any new digits to the number, but to detect that, the code\n        // would have to be more complex: it would have to try formatting\n        // the digits using the format and then see if any digits have\n        // actually been added or removed, and then, every time a new digit\n        // is input, it should re-check whether the chosen format doesn't\n        // alter the digits.\n        //\n        // Google's code doesn't go that far, and so does this library:\n        // it simply requires that a `format` doesn't add any additonal\n        // digits to user's input.\n        //\n        // Also, people in general should move from inputting phone numbers\n        // in national format (possibly with national prefixes)\n        // and use international phone number format instead:\n        // it's a logical thing in the modern age of mobile phones,\n        // globalization and the internet.\n        //\n\n        /* istanbul ignore if */\n\n\n        if (!NON_ALTERING_FORMAT_REG_EXP.test(_this3.getFormatFormat(format, state.international))) {\n          return \"continue\";\n        }\n\n        if (!_this3.createTemplateForFormat(format, state)) {\n          // Remove the format if it can't generate a template.\n          _this3.matchingFormats = _this3.matchingFormats.filter(function (_) {\n            return _ !== format;\n          });\n          return \"continue\";\n        }\n\n        _this3.chosenFormat = format;\n        return \"break\";\n      };\n\n      // When there are multiple available formats, the formatter uses the first\n      // format where a formatting template could be created.\n      //\n      // For some weird reason, `istanbul` says \"else path not taken\"\n      // for the `for of` line below. Supposedly that means that\n      // the loop doesn't ever go over the last element in the list.\n      // That's true because there always is `this.chosenFormat`\n      // when `this.matchingFormats` is non-empty.\n      // And, for some weird reason, it doesn't think that the case\n      // with empty `this.matchingFormats` qualifies for a valid \"else\" path.\n      // So simply muting this `istanbul` warning.\n      // It doesn't skip the contents of the `for of` loop,\n      // it just skips the `for of` line.\n      //\n\n      /* istanbul ignore next */\n      for (var _iterator2 = _createForOfIteratorHelperLoose(this.matchingFormats.slice()), _step2; !(_step2 = _iterator2()).done;) {\n        var _ret = _loop();\n\n        if (_ret === \"break\") break;\n        if (_ret === \"continue\") continue;\n      }\n\n      if (!this.chosenFormat) {\n        // No format matches the national (significant) phone number.\n        this.resetFormat();\n      }\n\n      return this.chosenFormat;\n    }\n  }, {\n    key: \"createTemplateForFormat\",\n    value: function createTemplateForFormat(format, state) {\n      // The formatter doesn't format numbers when numberPattern contains '|', e.g.\n      // (20|3)\\d{4}. In those cases we quickly return.\n      // (Though there's no such format in current metadata)\n\n      /* istanbul ignore if */\n      if (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\n        return;\n      } // Get formatting template for this phone number format\n\n\n      var template = this.getTemplateForFormat(format, state); // If the national number entered is too long\n      // for any phone number format, then abort.\n\n      if (template) {\n        this.setNationalNumberTemplate(template, state);\n        return true;\n      }\n    }\n  }, {\n    key: \"getSeparatorAfterNationalPrefix\",\n    value: function getSeparatorAfterNationalPrefix(format) {\n      // `US` metadata doesn't have a `national_prefix_formatting_rule`,\n      // so the `if` condition below doesn't apply to `US`,\n      // but in reality there shoudl be a separator\n      // between a national prefix and a national (significant) number.\n      // So `US` national prefix separator is a \"special\" \"hardcoded\" case.\n      if (this.isNANP) {\n        return ' ';\n      } // If a `format` has a `national_prefix_formatting_rule`\n      // and that rule has a separator after a national prefix,\n      // then it means that there should be a separator\n      // between a national prefix and a national (significant) number.\n\n\n      if (format && format.nationalPrefixFormattingRule() && NATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\n        return ' ';\n      } // At this point, there seems to be no clear evidence that\n      // there should be a separator between a national prefix\n      // and a national (significant) number. So don't insert one.\n\n\n      return '';\n    }\n  }, {\n    key: \"getInternationalPrefixBeforeCountryCallingCode\",\n    value: function getInternationalPrefixBeforeCountryCallingCode(_ref3, options) {\n      var IDDPrefix = _ref3.IDDPrefix,\n          missingPlus = _ref3.missingPlus;\n\n      if (IDDPrefix) {\n        return options && options.spacing === false ? IDDPrefix : IDDPrefix + ' ';\n      }\n\n      if (missingPlus) {\n        return '';\n      }\n\n      return '+';\n    }\n  }, {\n    key: \"getTemplate\",\n    value: function getTemplate(state) {\n      if (!this.template) {\n        return;\n      } // `this.template` holds the template for a \"complete\" phone number.\n      // The currently entered phone number is most likely not \"complete\",\n      // so trim all non-populated digits.\n\n\n      var index = -1;\n      var i = 0;\n      var internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, {\n        spacing: false\n      }) : '';\n\n      while (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\n        index = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1);\n        i++;\n      }\n\n      return cutAndStripNonPairedParens(this.template, index + 1);\n    }\n  }, {\n    key: \"setNationalNumberTemplate\",\n    value: function setNationalNumberTemplate(template, state) {\n      this.nationalNumberTemplate = template;\n      this.populatedNationalNumberTemplate = template; // With a new formatting template, the matched position\n      // using the old template needs to be reset.\n\n      this.populatedNationalNumberTemplatePosition = -1; // For convenience, the public `.template` property\n      // contains the whole international number\n      // if the phone number being input is international:\n      // 'x' for the '+' sign, 'x'es for the country phone code,\n      // a spacebar and then the template for the formatted national number.\n\n      if (state.international) {\n        this.template = this.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) + repeat(DIGIT_PLACEHOLDER, state.callingCode.length) + ' ' + template;\n      } else {\n        this.template = template;\n      }\n    }\n    /**\r\n     * Generates formatting template for a national phone number,\r\n     * optionally containing a national prefix, for a format.\r\n     * @param  {Format} format\r\n     * @param  {string} nationalPrefix\r\n     * @return {string}\r\n     */\n\n  }, {\n    key: \"getTemplateForFormat\",\n    value: function getTemplateForFormat(format, _ref4) {\n      var nationalSignificantNumber = _ref4.nationalSignificantNumber,\n          international = _ref4.international,\n          nationalPrefix = _ref4.nationalPrefix,\n          complexPrefixBeforeNationalSignificantNumber = _ref4.complexPrefixBeforeNationalSignificantNumber;\n      var pattern = format.pattern();\n      /* istanbul ignore else */\n\n      if (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\n        pattern = pattern // Replace anything in the form of [..] with \\d\n        .replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d') // Replace any standalone digit (not the one in `{}`) with \\d\n        .replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d');\n      } // Generate a dummy national number (consisting of `9`s)\n      // that fits this format's `pattern`.\n      //\n      // This match will always succeed,\n      // because the \"longest dummy phone number\"\n      // has enough length to accomodate any possible\n      // national phone number format pattern.\n      //\n\n\n      var digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]; // If the national number entered is too long\n      // for any phone number format, then abort.\n\n      if (nationalSignificantNumber.length > digits.length) {\n        return;\n      } // Get a formatting template which can be used to efficiently format\n      // a partial number where digits are added one by one.\n      // Below `strictPattern` is used for the\n      // regular expression (with `^` and `$`).\n      // This wasn't originally in Google's `libphonenumber`\n      // and I guess they don't really need it\n      // because they're not using \"templates\" to format phone numbers\n      // but I added `strictPattern` after encountering\n      // South Korean phone number formatting bug.\n      //\n      // Non-strict regular expression bug demonstration:\n      //\n      // this.nationalSignificantNumber : `111111111` (9 digits)\n      //\n      // pattern : (\\d{2})(\\d{3,4})(\\d{4})\n      // format : `$1 $2 $3`\n      // digits : `9999999999` (10 digits)\n      //\n      // '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\n      //\n      // template : xx xxxx xxxx\n      //\n      // But the correct template in this case is `xx xxx xxxx`.\n      // The template was generated incorrectly because of the\n      // `{3,4}` variability in the `pattern`.\n      //\n      // The fix is, if `this.nationalSignificantNumber` has already sufficient length\n      // to satisfy the `pattern` completely then `this.nationalSignificantNumber`\n      // is used instead of `digits`.\n\n\n      var strictPattern = new RegExp('^' + pattern + '$');\n      var nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT); // If `this.nationalSignificantNumber` has already sufficient length\n      // to satisfy the `pattern` completely then use it\n      // instead of `digits`.\n\n      if (strictPattern.test(nationalNumberDummyDigits)) {\n        digits = nationalNumberDummyDigits;\n      }\n\n      var numberFormat = this.getFormatFormat(format, international);\n      var nationalPrefixIncludedInTemplate; // If a user did input a national prefix (and that's guaranteed),\n      // and if a `format` does have a national prefix formatting rule,\n      // then see if that national prefix formatting rule\n      // prepends exactly the same national prefix the user has input.\n      // If that's the case, then use the `format` with the national prefix formatting rule.\n      // Otherwise, use  the `format` without the national prefix formatting rule,\n      // and prepend a national prefix manually to it.\n\n      if (this.shouldTryNationalPrefixFormattingRule(format, {\n        international: international,\n        nationalPrefix: nationalPrefix\n      })) {\n        var numberFormatWithNationalPrefix = numberFormat.replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()); // If `national_prefix_formatting_rule` of a `format` simply prepends\n        // national prefix at the start of a national (significant) number,\n        // then such formatting can be used with `AsYouType` formatter.\n        // There seems to be no `else` case: everywhere in metadata,\n        // national prefix formatting rule is national prefix + $1,\n        // or `($1)`, in which case such format isn't even considered\n        // when the user has input a national prefix.\n\n        /* istanbul ignore else */\n\n        if (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\n          numberFormat = numberFormatWithNationalPrefix;\n          nationalPrefixIncludedInTemplate = true; // Replace all digits of the national prefix in the formatting template\n          // with `DIGIT_PLACEHOLDER`s.\n\n          if (nationalPrefix) {\n            var i = nationalPrefix.length;\n\n            while (i > 0) {\n              numberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER);\n              i--;\n            }\n          }\n        }\n      } // Generate formatting template for this phone number format.\n\n\n      var template = digits // Format the dummy phone number according to the format.\n      .replace(new RegExp(pattern), numberFormat) // Replace each dummy digit with a DIGIT_PLACEHOLDER.\n      .replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER); // If a prefix of a national (significant) number is not as simple\n      // as just a basic national prefix, then just prepend such prefix\n      // before the national (significant) number, optionally spacing\n      // the two with a whitespace.\n\n      if (!nationalPrefixIncludedInTemplate) {\n        if (complexPrefixBeforeNationalSignificantNumber) {\n          // Prepend the prefix to the template manually.\n          template = repeat(DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) + ' ' + template;\n        } else if (nationalPrefix) {\n          // Prepend national prefix to the template manually.\n          template = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template;\n        }\n      }\n\n      if (international) {\n        template = applyInternationalSeparatorStyle(template);\n      }\n\n      return template;\n    }\n  }, {\n    key: \"formatNextNationalNumberDigits\",\n    value: function formatNextNationalNumberDigits(digits) {\n      var result = populateTemplateWithDigits(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition, digits);\n\n      if (!result) {\n        // Reset the format.\n        this.resetFormat();\n        return;\n      }\n\n      this.populatedNationalNumberTemplate = result[0];\n      this.populatedNationalNumberTemplatePosition = result[1]; // Return the formatted phone number so far.\n\n      return cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1); // The old way which was good for `input-format` but is not so good\n      // for `react-phone-number-input`'s default input (`InputBasic`).\n      // return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n      // \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\n    }\n  }, {\n    key: \"shouldTryNationalPrefixFormattingRule\",\n    value: function shouldTryNationalPrefixFormattingRule(format, _ref5) {\n      var international = _ref5.international,\n          nationalPrefix = _ref5.nationalPrefix;\n\n      if (format.nationalPrefixFormattingRule()) {\n        // In some countries, `national_prefix_formatting_rule` is `($1)`,\n        // so it applies even if the user hasn't input a national prefix.\n        // `format.usesNationalPrefix()` detects such cases.\n        var usesNationalPrefix = format.usesNationalPrefix();\n\n        if (usesNationalPrefix && nationalPrefix || !usesNationalPrefix && !international) {\n          return true;\n        }\n      }\n    }\n  }]);\n\n  return AsYouTypeFormatter;\n}();\n\nexport { AsYouTypeFormatter as default };\n//# sourceMappingURL=AsYouTypeFormatter.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\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 _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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\nimport _extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport { VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from './constants.js';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART = '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i');\nvar VALID_FORMATTED_PHONE_NUMBER_PART = '(?:' + '[' + PLUS_CHARS + ']' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*' + '|' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + ')';\nvar AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp('[^' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + '.*' + '$'); // Tests whether `national_prefix_for_parsing` could match\n// different national prefixes.\n// Matches anything that's not a digit or a square bracket.\n\nvar COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/;\n\nvar AsYouTypeParser = /*#__PURE__*/function () {\n  function AsYouTypeParser(_ref) {\n    var defaultCountry = _ref.defaultCountry,\n        defaultCallingCode = _ref.defaultCallingCode,\n        metadata = _ref.metadata,\n        onNationalSignificantNumberChange = _ref.onNationalSignificantNumberChange;\n\n    _classCallCheck(this, AsYouTypeParser);\n\n    this.defaultCountry = defaultCountry;\n    this.defaultCallingCode = defaultCallingCode;\n    this.metadata = metadata;\n    this.onNationalSignificantNumberChange = onNationalSignificantNumberChange;\n  }\n\n  _createClass(AsYouTypeParser, [{\n    key: \"input\",\n    value: function input(text, state) {\n      var _extractFormattedDigi = extractFormattedDigitsAndPlus(text),\n          _extractFormattedDigi2 = _slicedToArray(_extractFormattedDigi, 2),\n          formattedDigits = _extractFormattedDigi2[0],\n          hasPlus = _extractFormattedDigi2[1];\n\n      var digits = parseDigits(formattedDigits); // Checks for a special case: just a leading `+` has been entered.\n\n      var justLeadingPlus;\n\n      if (hasPlus) {\n        if (!state.digits) {\n          state.startInternationalNumber();\n\n          if (!digits) {\n            justLeadingPlus = true;\n          }\n        }\n      }\n\n      if (digits) {\n        this.inputDigits(digits, state);\n      }\n\n      return {\n        digits: digits,\n        justLeadingPlus: justLeadingPlus\n      };\n    }\n    /**\r\n     * Inputs \"next\" phone number digits.\r\n     * @param  {string} digits\r\n     * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n     */\n\n  }, {\n    key: \"inputDigits\",\n    value: function inputDigits(nextDigits, state) {\n      var digits = state.digits;\n      var hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3; // Append phone number digits.\n\n      state.appendDigits(nextDigits); // Attempt to extract IDD prefix:\n      // Some users input their phone number in international format,\n      // but in an \"out-of-country\" dialing format instead of using the leading `+`.\n      // https://github.com/catamphetamine/libphonenumber-js/issues/185\n      // Detect such numbers as soon as there're at least 3 digits.\n      // Google's library attempts to extract IDD prefix at 3 digits,\n      // so this library just copies that behavior.\n      // I guess that's because the most commot IDD prefixes are\n      // `00` (Europe) and `011` (US).\n      // There exist really long IDD prefixes too:\n      // for example, in Australia the default IDD prefix is `0011`,\n      // and it could even be as long as `14880011`.\n      // An IDD prefix is extracted here, and then every time when\n      // there's a new digit and the number couldn't be formatted.\n\n      if (hasReceivedThreeLeadingDigits) {\n        this.extractIddPrefix(state);\n      }\n\n      if (this.isWaitingForCountryCallingCode(state)) {\n        if (!this.extractCountryCallingCode(state)) {\n          return;\n        }\n      } else {\n        state.appendNationalSignificantNumberDigits(nextDigits);\n      } // If a phone number is being input in international format,\n      // then it's not valid for it to have a national prefix.\n      // Still, some people incorrectly input such numbers with a national prefix.\n      // In such cases, only attempt to strip a national prefix if the number becomes too long.\n      // (but that is done later, not here)\n\n\n      if (!state.international) {\n        if (!this.hasExtractedNationalSignificantNumber) {\n          this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n            return state.update(stateUpdate);\n          });\n        }\n      }\n    }\n  }, {\n    key: \"isWaitingForCountryCallingCode\",\n    value: function isWaitingForCountryCallingCode(_ref2) {\n      var international = _ref2.international,\n          callingCode = _ref2.callingCode;\n      return international && !callingCode;\n    } // Extracts a country calling code from a number\n    // being entered in internatonal format.\n\n  }, {\n    key: \"extractCountryCallingCode\",\n    value: function extractCountryCallingCode(state) {\n      var _extractCountryCallin = _extractCountryCallingCode('+' + state.getDigitsWithoutInternationalPrefix(), this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n          countryCallingCode = _extractCountryCallin.countryCallingCode,\n          number = _extractCountryCallin.number;\n\n      if (countryCallingCode) {\n        state.setCallingCode(countryCallingCode);\n        state.update({\n          nationalSignificantNumber: number\n        });\n        return true;\n      }\n    }\n  }, {\n    key: \"reset\",\n    value: function reset(numberingPlan) {\n      if (numberingPlan) {\n        this.hasSelectedNumberingPlan = true;\n\n        var nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing();\n\n        this.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing);\n      } else {\n        this.hasSelectedNumberingPlan = undefined;\n        this.couldPossiblyExtractAnotherNationalSignificantNumber = undefined;\n      }\n    }\n    /**\r\n     * Extracts a national (significant) number from user input.\r\n     * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n     * and doesn't apply `national_prefix_transform_rule` after that.\r\n     * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n     * @return {boolean} [extracted]\r\n     */\n\n  }, {\n    key: \"extractNationalSignificantNumber\",\n    value: function extractNationalSignificantNumber(nationalDigits, setState) {\n      if (!this.hasSelectedNumberingPlan) {\n        return;\n      }\n\n      var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n          nationalPrefix = _extractNationalNumbe.nationalPrefix,\n          nationalNumber = _extractNationalNumbe.nationalNumber,\n          carrierCode = _extractNationalNumbe.carrierCode;\n\n      if (nationalNumber === nationalDigits) {\n        return;\n      }\n\n      this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n      return true;\n    }\n    /**\r\n     * In Google's code this function is called \"attempt to extract longer NDD\".\r\n     * \"Some national prefixes are a substring of others\", they say.\r\n     * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n     */\n\n  }, {\n    key: \"extractAnotherNationalSignificantNumber\",\n    value: function extractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\n      if (!this.hasExtractedNationalSignificantNumber) {\n        return this.extractNationalSignificantNumber(nationalDigits, setState);\n      }\n\n      if (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\n        return;\n      }\n\n      var _extractNationalNumbe2 = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n          nationalPrefix = _extractNationalNumbe2.nationalPrefix,\n          nationalNumber = _extractNationalNumbe2.nationalNumber,\n          carrierCode = _extractNationalNumbe2.carrierCode; // If a national prefix has been extracted previously,\n      // then it's always extracted as additional digits are added.\n      // That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\n      // doesn't do anything different from what it currently does.\n      // So, just in case, here's this check, though it doesn't occur.\n\n      /* istanbul ignore if */\n\n\n      if (nationalNumber === prevNationalSignificantNumber) {\n        return;\n      }\n\n      this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n      return true;\n    }\n  }, {\n    key: \"onExtractedNationalNumber\",\n    value: function onExtractedNationalNumber(nationalPrefix, carrierCode, nationalSignificantNumber, nationalDigits, setState) {\n      var complexPrefixBeforeNationalSignificantNumber;\n      var nationalSignificantNumberMatchesInput; // This check also works with empty `this.nationalSignificantNumber`.\n\n      var nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber); // If the extracted national (significant) number is the\n      // last substring of the `digits`, then it means that it hasn't been altered:\n      // no digits have been removed from the national (significant) number\n      // while applying `national_prefix_transform_rule`.\n      // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n\n      if (nationalSignificantNumberIndex >= 0 && nationalSignificantNumberIndex === nationalDigits.length - nationalSignificantNumber.length) {\n        nationalSignificantNumberMatchesInput = true; // If a prefix of a national (significant) number is not as simple\n        // as just a basic national prefix, then such prefix is stored in\n        // `this.complexPrefixBeforeNationalSignificantNumber` property and will be\n        // prepended \"as is\" to the national (significant) number to produce\n        // a formatted result.\n\n        var prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex); // `prefixBeforeNationalNumber` is always non-empty,\n        // because `onExtractedNationalNumber()` isn't called\n        // when a national (significant) number hasn't been actually \"extracted\":\n        // when a national (significant) number is equal to the national part of `digits`,\n        // then `onExtractedNationalNumber()` doesn't get called.\n\n        if (prefixBeforeNationalNumber !== nationalPrefix) {\n          complexPrefixBeforeNationalSignificantNumber = prefixBeforeNationalNumber;\n        }\n      }\n\n      setState({\n        nationalPrefix: nationalPrefix,\n        carrierCode: carrierCode,\n        nationalSignificantNumber: nationalSignificantNumber,\n        nationalSignificantNumberMatchesInput: nationalSignificantNumberMatchesInput,\n        complexPrefixBeforeNationalSignificantNumber: complexPrefixBeforeNationalSignificantNumber\n      }); // `onExtractedNationalNumber()` is only called when\n      // the national (significant) number actually did change.\n\n      this.hasExtractedNationalSignificantNumber = true;\n      this.onNationalSignificantNumberChange();\n    }\n  }, {\n    key: \"reExtractNationalSignificantNumber\",\n    value: function reExtractNationalSignificantNumber(state) {\n      // Attempt to extract a national prefix.\n      //\n      // Some people incorrectly input national prefix\n      // in an international phone number.\n      // For example, some people write British phone numbers as `+44(0)...`.\n      //\n      // Also, in some rare cases, it is valid for a national prefix\n      // to be a part of an international phone number.\n      // For example, mobile phone numbers in Mexico are supposed to be\n      // dialled internationally using a `1` national prefix,\n      // so the national prefix will be part of an international number.\n      //\n      // Quote from:\n      // https://www.mexperience.com/dialing-cell-phones-in-mexico/\n      //\n      // \"Dialing a Mexican cell phone from abroad\n      // When you are calling a cell phone number in Mexico from outside Mexico,\n      // it’s necessary to dial an additional “1” after Mexico’s country code\n      // (which is “52”) and before the area code.\n      // You also ignore the 045, and simply dial the area code and the\n      // cell phone’s number.\n      //\n      // If you don’t add the “1”, you’ll receive a recorded announcement\n      // asking you to redial using it.\n      //\n      // For example, if you are calling from the USA to a cell phone\n      // in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\n      // (Note that this is different to calling a land line in Mexico City\n      // from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\n      //\n      // Google's demo output:\n      // https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\n      //\n      if (this.extractAnotherNationalSignificantNumber(state.getNationalDigits(), state.nationalSignificantNumber, function (stateUpdate) {\n        return state.update(stateUpdate);\n      })) {\n        return true;\n      } // If no format matches the phone number, then it could be\n      // \"a really long IDD\" (quote from a comment in Google's library).\n      // An IDD prefix is first extracted when the user has entered at least 3 digits,\n      // and then here — every time when there's a new digit and the number\n      // couldn't be formatted.\n      // For example, in Australia the default IDD prefix is `0011`,\n      // and it could even be as long as `14880011`.\n      //\n      // Could also check `!hasReceivedThreeLeadingDigits` here\n      // to filter out the case when this check duplicates the one\n      // already performed when there're 3 leading digits,\n      // but it's not a big deal, and in most cases there\n      // will be a suitable `format` when there're 3 leading digits.\n      //\n\n\n      if (this.extractIddPrefix(state)) {\n        this.extractCallingCodeAndNationalSignificantNumber(state);\n        return true;\n      } // Google's AsYouType formatter supports sort of an \"autocorrection\" feature\n      // when it \"autocorrects\" numbers that have been input for a country\n      // with that country's calling code.\n      // Such \"autocorrection\" feature looks weird, but different people have been requesting it:\n      // https://github.com/catamphetamine/libphonenumber-js/issues/376\n      // https://github.com/catamphetamine/libphonenumber-js/issues/375\n      // https://github.com/catamphetamine/libphonenumber-js/issues/316\n\n\n      if (this.fixMissingPlus(state)) {\n        this.extractCallingCodeAndNationalSignificantNumber(state);\n        return true;\n      }\n    }\n  }, {\n    key: \"extractIddPrefix\",\n    value: function extractIddPrefix(state) {\n      // An IDD prefix can't be present in a number written with a `+`.\n      // Also, don't re-extract an IDD prefix if has already been extracted.\n      var international = state.international,\n          IDDPrefix = state.IDDPrefix,\n          digits = state.digits,\n          nationalSignificantNumber = state.nationalSignificantNumber;\n\n      if (international || IDDPrefix) {\n        return;\n      } // Some users input their phone number in \"out-of-country\"\n      // dialing format instead of using the leading `+`.\n      // https://github.com/catamphetamine/libphonenumber-js/issues/185\n      // Detect such numbers.\n\n\n      var numberWithoutIDD = stripIddPrefix(digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata);\n\n      if (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\n        // If an IDD prefix was stripped then convert the IDD-prefixed number\n        // to international number for subsequent parsing.\n        state.update({\n          IDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\n        });\n        this.startInternationalNumber(state, {\n          country: undefined,\n          callingCode: undefined\n        });\n        return true;\n      }\n    }\n  }, {\n    key: \"fixMissingPlus\",\n    value: function fixMissingPlus(state) {\n      if (!state.international) {\n        var _extractCountryCallin2 = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(state.digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n            newCallingCode = _extractCountryCallin2.countryCallingCode,\n            number = _extractCountryCallin2.number;\n\n        if (newCallingCode) {\n          state.update({\n            missingPlus: true\n          });\n          this.startInternationalNumber(state, {\n            country: state.country,\n            callingCode: newCallingCode\n          });\n          return true;\n        }\n      }\n    }\n  }, {\n    key: \"startInternationalNumber\",\n    value: function startInternationalNumber(state, _ref3) {\n      var country = _ref3.country,\n          callingCode = _ref3.callingCode;\n      state.startInternationalNumber(country, callingCode); // If a national (significant) number has been extracted before, reset it.\n\n      if (state.nationalSignificantNumber) {\n        state.resetNationalSignificantNumber();\n        this.onNationalSignificantNumberChange();\n        this.hasExtractedNationalSignificantNumber = undefined;\n      }\n    }\n  }, {\n    key: \"extractCallingCodeAndNationalSignificantNumber\",\n    value: function extractCallingCodeAndNationalSignificantNumber(state) {\n      if (this.extractCountryCallingCode(state)) {\n        // `this.extractCallingCode()` is currently called when the number\n        // couldn't be formatted during the standard procedure.\n        // Normally, the national prefix would be re-extracted\n        // for an international number if such number couldn't be formatted,\n        // but since it's already not able to be formatted,\n        // there won't be yet another retry, so also extract national prefix here.\n        this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n          return state.update(stateUpdate);\n        });\n      }\n    }\n  }]);\n\n  return AsYouTypeParser;\n}();\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param  {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\n\n\nexport { AsYouTypeParser as default };\n\nfunction extractFormattedPhoneNumber(text) {\n  // Attempt to extract a possible number from the string passed in.\n  var startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART);\n\n  if (startsAt < 0) {\n    return;\n  } // Trim everything to the left of the phone number.\n\n\n  text = text.slice(startsAt); // Trim the `+`.\n\n  var hasPlus;\n\n  if (text[0] === '+') {\n    hasPlus = true;\n    text = text.slice('+'.length);\n  } // Trim everything to the right of the phone number.\n\n\n  text = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, ''); // Re-add the previously trimmed `+`.\n\n  if (hasPlus) {\n    text = '+' + text;\n  }\n\n  return text;\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param  {string} text\r\n * @return {any[]}\r\n */\n\n\nfunction _extractFormattedDigitsAndPlus(text) {\n  // Extract a formatted phone number part from text.\n  var extractedNumber = extractFormattedPhoneNumber(text) || ''; // Trim a `+`.\n\n  if (extractedNumber[0] === '+') {\n    return [extractedNumber.slice('+'.length), true];\n  }\n\n  return [extractedNumber];\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param  {string} text\r\n * @return {any[]}\r\n */\n\n\nexport function extractFormattedDigitsAndPlus(text) {\n  var _extractFormattedDigi3 = _extractFormattedDigitsAndPlus(text),\n      _extractFormattedDigi4 = _slicedToArray(_extractFormattedDigi3, 2),\n      formattedDigits = _extractFormattedDigi4[0],\n      hasPlus = _extractFormattedDigi4[1]; // If the extracted phone number part\n  // can possibly be a part of some valid phone number\n  // then parse phone number characters from a formatted phone number.\n\n\n  if (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\n    formattedDigits = '';\n  }\n\n  return [formattedDigits, hasPlus];\n}\n//# sourceMappingURL=AsYouTypeParser.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\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 _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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\nimport Metadata from './metadata.js';\nimport PhoneNumber from './PhoneNumber.js';\nimport AsYouTypeState from './AsYouTypeState.js';\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.js';\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport getCountryByNationalNumber from './helpers/getCountryByNationalNumber.js';\nimport isObject from './helpers/isObject.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar AsYouType = /*#__PURE__*/function () {\n  /**\r\n   * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n   * @param {Object} metadata\r\n   */\n  function AsYouType(optionsOrDefaultCountry, metadata) {\n    _classCallCheck(this, AsYouType);\n\n    this.metadata = new Metadata(metadata);\n\n    var _this$getCountryAndCa = this.getCountryAndCallingCode(optionsOrDefaultCountry),\n        _this$getCountryAndCa2 = _slicedToArray(_this$getCountryAndCa, 2),\n        defaultCountry = _this$getCountryAndCa2[0],\n        defaultCallingCode = _this$getCountryAndCa2[1]; // `this.defaultCountry` and `this.defaultCallingCode` aren't required to be in sync.\n    // For example, `this.defaultCountry` could be `\"AR\"` and `this.defaultCallingCode` could be `undefined`.\n    // So `this.defaultCountry` and `this.defaultCallingCode` are totally independent.\n\n\n    this.defaultCountry = defaultCountry;\n    this.defaultCallingCode = defaultCallingCode;\n    this.reset();\n  }\n\n  _createClass(AsYouType, [{\n    key: \"getCountryAndCallingCode\",\n    value: function getCountryAndCallingCode(optionsOrDefaultCountry) {\n      // Set `defaultCountry` and `defaultCallingCode` options.\n      var defaultCountry;\n      var defaultCallingCode; // Turns out `null` also has type \"object\". Weird.\n\n      if (optionsOrDefaultCountry) {\n        if (isObject(optionsOrDefaultCountry)) {\n          defaultCountry = optionsOrDefaultCountry.defaultCountry;\n          defaultCallingCode = optionsOrDefaultCountry.defaultCallingCode;\n        } else {\n          defaultCountry = optionsOrDefaultCountry;\n        }\n      }\n\n      if (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\n        defaultCountry = undefined;\n      }\n\n      if (defaultCallingCode) {\n        /* istanbul ignore if */\n        if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n          if (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n            defaultCountry = '001';\n          }\n        }\n      }\n\n      return [defaultCountry, defaultCallingCode];\n    }\n    /**\r\n     * Inputs \"next\" phone number characters.\r\n     * @param  {string} text\r\n     * @return {string} Formatted phone number characters that have been input so far.\r\n     */\n\n  }, {\n    key: \"input\",\n    value: function input(text) {\n      var _this$parser$input = this.parser.input(text, this.state),\n          digits = _this$parser$input.digits,\n          justLeadingPlus = _this$parser$input.justLeadingPlus;\n\n      if (justLeadingPlus) {\n        this.formattedOutput = '+';\n      } else if (digits) {\n        this.determineTheCountryIfNeeded(); // Match the available formats by the currently available leading digits.\n\n        if (this.state.nationalSignificantNumber) {\n          this.formatter.narrowDownMatchingFormats(this.state);\n        }\n\n        var formattedNationalNumber;\n\n        if (this.metadata.hasSelectedNumberingPlan()) {\n          formattedNationalNumber = this.formatter.format(digits, this.state);\n        }\n\n        if (formattedNationalNumber === undefined) {\n          // See if another national (significant) number could be re-extracted.\n          if (this.parser.reExtractNationalSignificantNumber(this.state)) {\n            this.determineTheCountryIfNeeded(); // If it could, then re-try formatting the new national (significant) number.\n\n            var nationalDigits = this.state.getNationalDigits();\n\n            if (nationalDigits) {\n              formattedNationalNumber = this.formatter.format(nationalDigits, this.state);\n            }\n          }\n        }\n\n        this.formattedOutput = formattedNationalNumber ? this.getFullNumber(formattedNationalNumber) : this.getNonFormattedNumber();\n      }\n\n      return this.formattedOutput;\n    }\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      var _this = this;\n\n      this.state = new AsYouTypeState({\n        onCountryChange: function onCountryChange(country) {\n          // Before version `1.6.0`, the official `AsYouType` formatter API\n          // included the `.country` property of an `AsYouType` instance.\n          // Since that property (along with the others) have been moved to\n          // `this.state`, `this.country` property is emulated for compatibility\n          // with the old versions.\n          _this.country = country;\n        },\n        onCallingCodeChange: function onCallingCodeChange(callingCode, country) {\n          _this.metadata.selectNumberingPlan(country, callingCode);\n\n          _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n\n          _this.parser.reset(_this.metadata.numberingPlan);\n        }\n      });\n      this.formatter = new AsYouTypeFormatter({\n        state: this.state,\n        metadata: this.metadata\n      });\n      this.parser = new AsYouTypeParser({\n        defaultCountry: this.defaultCountry,\n        defaultCallingCode: this.defaultCallingCode,\n        metadata: this.metadata,\n        state: this.state,\n        onNationalSignificantNumberChange: function onNationalSignificantNumberChange() {\n          _this.determineTheCountryIfNeeded();\n\n          _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n        }\n      });\n      this.state.reset({\n        country: this.defaultCountry,\n        callingCode: this.defaultCallingCode\n      });\n      this.formattedOutput = '';\n      return this;\n    }\n    /**\r\n     * Returns `true` if the phone number is being input in international format.\r\n     * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n     * @return {boolean}\r\n     */\n\n  }, {\n    key: \"isInternational\",\n    value: function isInternational() {\n      return this.state.international;\n    }\n    /**\r\n     * Returns the \"calling code\" part of the phone number when it's being input\r\n     * in an international format.\r\n     * If no valid calling code has been entered so far, returns `undefined`.\r\n     * @return {string} [callingCode]\r\n     */\n\n  }, {\n    key: \"getCallingCode\",\n    value: function getCallingCode() {\n      // If the number is being input in national format and some \"default calling code\"\n      // has been passed to `AsYouType` constructor, then `this.state.callingCode`\n      // is equal to that \"default calling code\".\n      //\n      // If the number is being input in national format and no \"default calling code\"\n      // has been passed to `AsYouType` constructor, then returns `undefined`,\n      // even if a \"default country\" has been passed to `AsYouType` constructor.\n      //\n      if (this.isInternational()) {\n        return this.state.callingCode;\n      }\n    } // A legacy alias.\n\n  }, {\n    key: \"getCountryCallingCode\",\n    value: function getCountryCallingCode() {\n      return this.getCallingCode();\n    }\n    /**\r\n     * Returns a two-letter country code of the phone number.\r\n     * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n     * Returns `undefined` if no phone number has been input yet.\r\n     * @return {string} [country]\r\n     */\n\n  }, {\n    key: \"getCountry\",\n    value: function getCountry() {\n      var digits = this.state.digits; // Return `undefined` if no digits have been input yet.\n\n      if (digits) {\n        return this._getCountry();\n      }\n    }\n    /**\r\n     * Returns a two-letter country code of the phone number.\r\n     * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n     * @return {string} [country]\r\n     */\n\n  }, {\n    key: \"_getCountry\",\n    value: function _getCountry() {\n      var country = this.state.country;\n      /* istanbul ignore if */\n\n      if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n        // `AsYouType.getCountry()` returns `undefined`\n        // for \"non-geographic\" phone numbering plans.\n        if (country === '001') {\n          return;\n        }\n      }\n\n      return country;\n    }\n  }, {\n    key: \"determineTheCountryIfNeeded\",\n    value: function determineTheCountryIfNeeded() {\n      // Suppose a user enters a phone number in international format,\n      // and there're several countries corresponding to that country calling code,\n      // and a country has been derived from the number, and then\n      // a user enters one more digit and the number is no longer\n      // valid for the derived country, so the country should be re-derived\n      // on every new digit in those cases.\n      //\n      // If the phone number is being input in national format,\n      // then it could be a case when `defaultCountry` wasn't specified\n      // when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\n      // and that \"calling code\" could correspond to a \"non-geographic entity\",\n      // or there could be several countries corresponding to that country calling code.\n      // In those cases, `this.country` is `undefined` and should be derived\n      // from the number. Again, if country calling code is ambiguous, then\n      // `this.country` should be re-derived with each new digit.\n      //\n      if (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\n        this.determineTheCountry();\n      }\n    } // Prepends `+CountryCode ` in case of an international phone number\n\n  }, {\n    key: \"getFullNumber\",\n    value: function getFullNumber(formattedNationalNumber) {\n      var _this2 = this;\n\n      if (this.isInternational()) {\n        var prefix = function prefix(text) {\n          return _this2.formatter.getInternationalPrefixBeforeCountryCallingCode(_this2.state, {\n            spacing: text ? true : false\n          }) + text;\n        };\n\n        var callingCode = this.state.callingCode;\n\n        if (!callingCode) {\n          return prefix(\"\".concat(this.state.getDigitsWithoutInternationalPrefix()));\n        }\n\n        if (!formattedNationalNumber) {\n          return prefix(callingCode);\n        }\n\n        return prefix(\"\".concat(callingCode, \" \").concat(formattedNationalNumber));\n      }\n\n      return formattedNationalNumber;\n    }\n  }, {\n    key: \"getNonFormattedNationalNumberWithPrefix\",\n    value: function getNonFormattedNationalNumberWithPrefix() {\n      var _this$state = this.state,\n          nationalSignificantNumber = _this$state.nationalSignificantNumber,\n          complexPrefixBeforeNationalSignificantNumber = _this$state.complexPrefixBeforeNationalSignificantNumber,\n          nationalPrefix = _this$state.nationalPrefix;\n      var number = nationalSignificantNumber;\n      var prefix = complexPrefixBeforeNationalSignificantNumber || nationalPrefix;\n\n      if (prefix) {\n        number = prefix + number;\n      }\n\n      return number;\n    }\n  }, {\n    key: \"getNonFormattedNumber\",\n    value: function getNonFormattedNumber() {\n      var nationalSignificantNumberMatchesInput = this.state.nationalSignificantNumberMatchesInput;\n      return this.getFullNumber(nationalSignificantNumberMatchesInput ? this.getNonFormattedNationalNumberWithPrefix() : this.state.getNationalDigits());\n    }\n  }, {\n    key: \"getNonFormattedTemplate\",\n    value: function getNonFormattedTemplate() {\n      var number = this.getNonFormattedNumber();\n\n      if (number) {\n        return number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER);\n      }\n    }\n  }, {\n    key: \"isCountryCallingCodeAmbiguous\",\n    value: function isCountryCallingCodeAmbiguous() {\n      var callingCode = this.state.callingCode;\n      var countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode);\n      return countryCodes && countryCodes.length > 1;\n    } // Determines the country of the phone number\n    // entered so far based on the country phone code\n    // and the national phone number.\n\n  }, {\n    key: \"determineTheCountry\",\n    value: function determineTheCountry() {\n      this.state.setCountry(getCountryByCallingCode(this.isInternational() ? this.state.callingCode : this.defaultCallingCode, {\n        nationalNumber: this.state.nationalSignificantNumber,\n        defaultCountry: this.defaultCountry,\n        metadata: this.metadata\n      }));\n    }\n    /**\r\n     * Returns a E.164 phone number value for the user's input.\r\n     *\r\n     * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\r\n     * it will return `\"+12223334444\"`.\r\n     *\r\n     * For international phone number input, it will also auto-correct\r\n     * some minor errors such as using a national prefix when writing\r\n     * an international phone number. For example, if the user inputs\r\n     * `\"+44 0 7400 000000\"` then it will return an auto-corrected\r\n     * `\"+447400000000\"` phone number value.\r\n     *\r\n     * Will return `undefined` if no digits have been input,\r\n     * or when inputting a phone number in national format and no\r\n     * default country or default \"country calling code\" have been set.\r\n     *\r\n     * @return {string} [value]\r\n     */\n\n  }, {\n    key: \"getNumberValue\",\n    value: function getNumberValue() {\n      var _this$state2 = this.state,\n          digits = _this$state2.digits,\n          callingCode = _this$state2.callingCode,\n          country = _this$state2.country,\n          nationalSignificantNumber = _this$state2.nationalSignificantNumber; // Will return `undefined` if no digits have been input.\n\n      if (!digits) {\n        return;\n      }\n\n      if (this.isInternational()) {\n        if (callingCode) {\n          return '+' + callingCode + nationalSignificantNumber;\n        } else {\n          return '+' + digits;\n        }\n      } else {\n        if (country || callingCode) {\n          var callingCode_ = country ? this.metadata.countryCallingCode() : callingCode;\n          return '+' + callingCode_ + nationalSignificantNumber;\n        }\n      }\n    }\n    /**\r\n     * Returns an instance of `PhoneNumber` class.\r\n     * Will return `undefined` if no national (significant) number\r\n     * digits have been entered so far, or if no `defaultCountry` has been\r\n     * set and the user enters a phone number not in international format.\r\n     */\n\n  }, {\n    key: \"getNumber\",\n    value: function getNumber() {\n      var _this$state3 = this.state,\n          nationalSignificantNumber = _this$state3.nationalSignificantNumber,\n          carrierCode = _this$state3.carrierCode,\n          callingCode = _this$state3.callingCode; // `this._getCountry()` is basically same as `this.state.country`\n      // with the only change that it return `undefined` in case of a\n      // \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\n\n      var country = this._getCountry();\n\n      if (!nationalSignificantNumber) {\n        return;\n      } // `state.country` and `state.callingCode` aren't required to be in sync.\n      // For example, `country` could be `\"AR\"` and `callingCode` could be `undefined`.\n      // So `country` and `callingCode` are totally independent.\n\n\n      if (!country && !callingCode) {\n        return;\n      } // By default, if `defaultCountry` parameter was passed when\n      // creating `AsYouType` instance, `state.country` is gonna be\n      // that `defaultCountry`, which doesn't entirely conform with\n      // `parsePhoneNumber()`'s behavior where it attempts to determine\n      // the country more precisely in cases when multiple countries\n      // could correspond to the same `countryCallingCode`.\n      // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417192969\n      //\n      // Because `AsYouType.getNumber()` method is supposed to be a 1:1\n      // equivalent for `parsePhoneNumber(AsYouType.getNumberValue())`,\n      // then it should also behave accordingly in cases of `country` ambiguity.\n      // That's how users of this library would expect it to behave anyway.\n      //\n\n\n      if (country) {\n        if (country === this.defaultCountry) {\n          // `state.country` and `state.callingCode` aren't required to be in sync.\n          // For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n          // So `state.country` and `state.callingCode` are totally independent.\n          var metadata = new Metadata(this.metadata.metadata);\n          metadata.selectNumberingPlan(country);\n\n          var _callingCode = metadata.numberingPlan.callingCode();\n\n          var ambiguousCountries = this.metadata.getCountryCodesForCallingCode(_callingCode);\n\n          if (ambiguousCountries.length > 1) {\n            var exactCountry = getCountryByNationalNumber(nationalSignificantNumber, {\n              countries: ambiguousCountries,\n              defaultCountry: this.defaultCountry,\n              metadata: this.metadata.metadata\n            });\n\n            if (exactCountry) {\n              country = exactCountry;\n            }\n          }\n        }\n      }\n\n      var phoneNumber = new PhoneNumber(country || callingCode, nationalSignificantNumber, this.metadata.metadata);\n\n      if (carrierCode) {\n        phoneNumber.carrierCode = carrierCode;\n      } // Phone number extensions are not supported by \"As You Type\" formatter.\n\n\n      return phoneNumber;\n    }\n    /**\r\n     * Returns `true` if the phone number is \"possible\".\r\n     * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n     * @return {boolean}\r\n     */\n\n  }, {\n    key: \"isPossible\",\n    value: function isPossible() {\n      var phoneNumber = this.getNumber();\n\n      if (!phoneNumber) {\n        return false;\n      }\n\n      return phoneNumber.isPossible();\n    }\n    /**\r\n     * Returns `true` if the phone number is \"valid\".\r\n     * Is just a shortcut for `PhoneNumber.isValid()`.\r\n     * @return {boolean}\r\n     */\n\n  }, {\n    key: \"isValid\",\n    value: function isValid() {\n      var phoneNumber = this.getNumber();\n\n      if (!phoneNumber) {\n        return false;\n      }\n\n      return phoneNumber.isValid();\n    }\n    /**\r\n     * @deprecated\r\n     * This method is used in `react-phone-number-input/source/input-control.js`\r\n     * in versions before `3.0.16`.\r\n     */\n\n  }, {\n    key: \"getNationalNumber\",\n    value: function getNationalNumber() {\n      return this.state.nationalSignificantNumber;\n    }\n    /**\r\n     * Returns the phone number characters entered by the user.\r\n     * @return {string}\r\n     */\n\n  }, {\n    key: \"getChars\",\n    value: function getChars() {\n      return (this.state.international ? '+' : '') + this.state.digits;\n    }\n    /**\r\n     * Returns the template for the formatted phone number.\r\n     * @return {string}\r\n     */\n\n  }, {\n    key: \"getTemplate\",\n    value: function getTemplate() {\n      return this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || '';\n    }\n  }]);\n\n  return AsYouType;\n}();\n\nexport { AsYouType as default };\n//# sourceMappingURL=AsYouType.js.map","import Metadata from './metadata.js';\nexport default function getCountries(metadata) {\n  return new Metadata(metadata).getCountries();\n}\n//# sourceMappingURL=getCountries.js.map","import AsYouType from './AsYouType.js';\n/**\r\n * Formats a (possibly incomplete) phone number.\r\n * The phone number can be either in E.164 format\r\n * or in a form of national number digits.\r\n * @param {string} value - A possibly incomplete phone number. Either in E.164 format or in a form of national number digits.\r\n * @param {string|object} [optionsOrDefaultCountry] - A two-letter (\"ISO 3166-1 alpha-2\") country code, or an object of shape `{ defaultCountry?: string, defaultCallingCode?: string }`.\r\n * @return {string} Formatted (possibly incomplete) phone number.\r\n */\n\nexport default function formatIncompletePhoneNumber(value, optionsOrDefaultCountry, metadata) {\n  if (!metadata) {\n    metadata = optionsOrDefaultCountry;\n    optionsOrDefaultCountry = undefined;\n  }\n\n  return new AsYouType(optionsOrDefaultCountry, metadata).input(value);\n}\n//# sourceMappingURL=formatIncompletePhoneNumber.js.map","import { getCountryCallingCode } from 'libphonenumber-js/core';\nexport function getPrefixForFormattingValueAsPhoneNumber(_ref) {\n  var inputFormat = _ref.inputFormat,\n    country = _ref.country,\n    metadata = _ref.metadata;\n  return inputFormat === 'NATIONAL_PART_OF_INTERNATIONAL' ? \"+\".concat(getCountryCallingCode(country, metadata)) : '';\n}\nexport function removePrefixFromFormattedPhoneNumber(value, prefix) {\n  if (prefix) {\n    value = value.slice(prefix.length);\n    if (value[0] === ' ') {\n      value = value.slice(1);\n    }\n  }\n  return value;\n}\n//# sourceMappingURL=inputValuePrefix.js.map","import { parsePhoneNumberCharacter } from 'libphonenumber-js/core';\n\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param  {string} character - Yet another character from raw input string.\r\n * @param  {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param  {object?} context - An optional object that could be used by this function to set arbitrary \"flags\". The object should be shared within the parsing of the whole string.\r\n * @return {string?} The parsed character.\r\n */\nexport default function parsePhoneNumberCharacter_(character, prevParsedCharacters, context) {\n  // `context` argument was added as a third argument of `parse()` function\n  // in `input-format` package on Dec 26th, 2023. So it could potentially be\n  // `undefined` here if a 3rd-party app somehow ends up with this newer version\n  // of `react-phone-number-input` and an older version of `input-format`.\n  // Dunno how, but just in case, it could be `undefined` here and it wouldn't break.\n  // Maybe it's not required to handle `undefined` case here.\n  //\n  // The addition of the `context` argument was to fix the slightly-weird behavior\n  // of parsing an input string when the user inputs something like `\"2+7\"\n  // https://github.com/catamphetamine/react-phone-number-input/issues/437\n  //\n  // If the parser encounters an unexpected `+` in a string being parsed\n  // then it simply discards that out-of-place `+` and any following characters.\n  //\n  if (context && context.ignoreRest) {\n    return;\n  }\n  var emitEvent = function emitEvent(eventName) {\n    if (context) {\n      switch (eventName) {\n        case 'end':\n          context.ignoreRest = true;\n          break;\n      }\n    }\n  };\n  return parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent);\n}\n//# sourceMappingURL=parsePhoneNumberCharacter.js.map","import { useCallback } from 'react';\n\n// Returns a custom `onKeyDown` handler that works around a Backspace keypress edge case:\n// * `<PhoneInputWithCountrySelect international countryCallingCodeEditable={false}/>`\n// * When placing the caret before the leading plus character and pressing Backspace,\n//   it duplicates the country calling code in the `<input/>`.\n// https://github.com/catamphetamine/react-phone-number-input/issues/442\nexport default function useInputKeyDownHandler(_ref) {\n  var onKeyDown = _ref.onKeyDown,\n    inputFormat = _ref.inputFormat;\n  return useCallback(function (event) {\n    // Usability:\n    // Don't allow the user to erase a leading \"+\" character when \"international\" input mode is forced.\n    // That indicates to the user that they can't possibly enter the phone number in a non-international format.\n    if (event.keyCode === BACKSPACE_KEY_CODE && inputFormat === 'INTERNATIONAL') {\n      // It checks `event.target` here for being an `<input/>` element\n      // because \"keydown\" events may bubble from arbitrary child elements\n      // so there's no guarantee that `event.target` represents an `<input/>` element.\n      // Also, since `inputComponent` is not neceesarily an `<input/>`, this check is required too.\n      if (event.target instanceof HTMLInputElement) {\n        if (getCaretPosition(event.target) === LEADING_PLUS.length) {\n          event.preventDefault();\n          return;\n        }\n      }\n    }\n    if (onKeyDown) {\n      onKeyDown(event);\n    }\n  }, [onKeyDown, inputFormat]);\n}\n\n// Gets the caret position in an `<input/>` field.\n// The caret position starts with `0` which means \"before the first character\".\nfunction getCaretPosition(element) {\n  return element.selectionStart;\n}\nvar BACKSPACE_KEY_CODE = 8;\nvar LEADING_PLUS = '+';\n//# sourceMappingURL=useInputKeyDownHandler.js.map","var _excluded = [\"onKeyDown\", \"country\", \"inputFormat\", \"metadata\", \"international\", \"withCountryCallingCode\"];\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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport Input from 'input-format/react';\nimport { AsYouType } from 'libphonenumber-js/core';\nimport { getPrefixForFormattingValueAsPhoneNumber, removePrefixFromFormattedPhoneNumber } from './helpers/inputValuePrefix.js';\nimport parsePhoneNumberCharacter from './helpers/parsePhoneNumberCharacter.js';\nimport useInputKeyDownHandler from './useInputKeyDownHandler.js';\nexport function createInput(defaultMetadata) {\n  /**\r\n   * `InputSmart` is a \"smarter\" implementation of a `Component`\r\n   * that can be passed to `<PhoneInput/>`. It parses and formats\r\n   * the user's and maintains the caret's position in the process.\r\n   * The caret positioning is maintained using `input-format` library.\r\n   * Relies on being run in a DOM environment for calling caret positioning functions.\r\n   */\n  function InputSmart(_ref, ref) {\n    var onKeyDown = _ref.onKeyDown,\n      country = _ref.country,\n      inputFormat = _ref.inputFormat,\n      _ref$metadata = _ref.metadata,\n      metadata = _ref$metadata === void 0 ? defaultMetadata : _ref$metadata,\n      international = _ref.international,\n      withCountryCallingCode = _ref.withCountryCallingCode,\n      rest = _objectWithoutProperties(_ref, _excluded);\n    var format = useCallback(function (value) {\n      // \"As you type\" formatter.\n      var formatter = new AsYouType(country, metadata);\n      var prefix = getPrefixForFormattingValueAsPhoneNumber({\n        inputFormat: inputFormat,\n        country: country,\n        metadata: metadata\n      });\n\n      // Format the number.\n      var text = formatter.input(prefix + value);\n      var template = formatter.getTemplate();\n      if (prefix) {\n        text = removePrefixFromFormattedPhoneNumber(text, prefix);\n        // `AsYouType.getTemplate()` can be `undefined`.\n        if (template) {\n          template = removePrefixFromFormattedPhoneNumber(template, prefix);\n        }\n      }\n      return {\n        text: text,\n        template: template\n      };\n    }, [country, metadata]);\n    var _onKeyDown = useInputKeyDownHandler({\n      onKeyDown: onKeyDown,\n      inputFormat: inputFormat\n    });\n    return /*#__PURE__*/React.createElement(Input, _extends({}, rest, {\n      ref: ref,\n      parse: parsePhoneNumberCharacter,\n      format: format,\n      onKeyDown: _onKeyDown\n    }));\n  }\n  InputSmart = /*#__PURE__*/React.forwardRef(InputSmart);\n  InputSmart.propTypes = {\n    /**\r\n     * The parsed phone number.\r\n     * \"Parsed\" not in a sense of \"E.164\"\r\n     * but rather in a sense of \"having only\r\n     * digits and possibly a leading plus character\".\r\n     * Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n     */\n    value: PropTypes.string.isRequired,\n    /**\r\n     * A function of `value: string`.\r\n     * Updates the `value` property.\r\n     */\n    onChange: PropTypes.func.isRequired,\n    /**\r\n     * A function of `event: Event`.\r\n     * Handles `keydown` events.\r\n     */\n    onKeyDown: PropTypes.func,\n    /**\r\n     * A two-letter country code for formatting `value`\r\n     * as a national phone number (e.g. `(800) 555 35 35`).\r\n     * E.g. \"US\", \"RU\", etc.\r\n     * If no `country` is passed then `value`\r\n     * is formatted as an international phone number.\r\n     * (e.g. `+7 800 555 35 35`)\r\n     * This property should've been called `defaultCountry`\r\n     * because it only applies when the user inputs a phone number in a national format\r\n     * and is completely ignored when the user inputs a phone number in an international format.\r\n     */\n    country: PropTypes.string,\n    /**\r\n     * The format that the input field value is being input/output in.\r\n     */\n    inputFormat: PropTypes.oneOf(['INTERNATIONAL', 'NATIONAL_PART_OF_INTERNATIONAL', 'NATIONAL', 'INTERNATIONAL_OR_NATIONAL']).isRequired,\n    /**\r\n     * `libphonenumber-js` metadata.\r\n     */\n    metadata: PropTypes.object\n  };\n  return InputSmart;\n}\nexport default createInput();\n//# sourceMappingURL=InputSmart.js.map","var _excluded = [\"value\", \"onChange\", \"onKeyDown\", \"country\", \"inputFormat\", \"metadata\", \"inputComponent\", \"international\", \"withCountryCallingCode\"];\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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { parseIncompletePhoneNumber, formatIncompletePhoneNumber } from 'libphonenumber-js/core';\nimport { getPrefixForFormattingValueAsPhoneNumber, removePrefixFromFormattedPhoneNumber } from './helpers/inputValuePrefix.js';\nimport useInputKeyDownHandler from './useInputKeyDownHandler.js';\nexport function createInput(defaultMetadata) {\n  /**\r\n   * `InputBasic` is the most basic implementation of a `Component`\r\n   * that can be passed to `<PhoneInput/>`. It parses and formats\r\n   * the user's input but doesn't control the caret in the process:\r\n   * when erasing or inserting digits in the middle of a phone number\r\n   * the caret usually jumps to the end (this is the expected behavior).\r\n   * Why does `InputBasic` exist when there's `InputSmart`?\r\n   * One reason is working around the [Samsung Galaxy smart caret positioning bug]\r\n   * (https://github.com/catamphetamine/react-phone-number-input/issues/75).\r\n   * Another reason is that, unlike `InputSmart`, it doesn't require DOM environment.\r\n   */\n  function InputBasic(_ref, ref) {\n    var value = _ref.value,\n      onChange = _ref.onChange,\n      onKeyDown = _ref.onKeyDown,\n      country = _ref.country,\n      inputFormat = _ref.inputFormat,\n      _ref$metadata = _ref.metadata,\n      metadata = _ref$metadata === void 0 ? defaultMetadata : _ref$metadata,\n      _ref$inputComponent = _ref.inputComponent,\n      Input = _ref$inputComponent === void 0 ? 'input' : _ref$inputComponent,\n      international = _ref.international,\n      withCountryCallingCode = _ref.withCountryCallingCode,\n      rest = _objectWithoutProperties(_ref, _excluded);\n    var prefix = getPrefixForFormattingValueAsPhoneNumber({\n      inputFormat: inputFormat,\n      country: country,\n      metadata: metadata\n    });\n    var _onChange = useCallback(function (event) {\n      var newValue = parseIncompletePhoneNumber(event.target.value);\n      // By default, if a value is something like `\"(123)\"`\n      // then Backspace would only erase the rightmost brace\n      // becoming something like `\"(123\"`\n      // which would give the same `\"123\"` value\n      // which would then be formatted back to `\"(123)\"`\n      // and so a user wouldn't be able to erase the phone number.\n      //\n      // This issue is worked around with this simple hack:\n      // when \"old\" and \"new\" parsed values are the same,\n      // it checks if the \"new\" formatted value could be obtained\n      // from the \"old\" formatted value by erasing some (or no) characters at the right side.\n      // If it could then it's likely that the user has hit a Backspace key\n      // and what they really intended was to erase a rightmost digit rather than\n      // a rightmost punctuation character.\n      //\n      if (newValue === value) {\n        var newValueFormatted = format(prefix, newValue, country, metadata);\n        if (newValueFormatted.indexOf(event.target.value) === 0) {\n          // Trim the last digit (or plus sign).\n          newValue = newValue.slice(0, -1);\n        }\n      }\n      onChange(newValue);\n    }, [prefix, value, onChange, country, metadata]);\n    var _onKeyDown = useInputKeyDownHandler({\n      onKeyDown: onKeyDown,\n      inputFormat: inputFormat\n    });\n    return /*#__PURE__*/React.createElement(Input, _extends({}, rest, {\n      ref: ref,\n      value: format(prefix, value, country, metadata),\n      onChange: _onChange,\n      onKeyDown: _onKeyDown\n    }));\n  }\n  InputBasic = /*#__PURE__*/React.forwardRef(InputBasic);\n  InputBasic.propTypes = {\n    /**\r\n     * The parsed phone number.\r\n     * \"Parsed\" not in a sense of \"E.164\"\r\n     * but rather in a sense of \"having only\r\n     * digits and possibly a leading plus character\".\r\n     * Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n     */\n    value: PropTypes.string.isRequired,\n    /**\r\n     * A function of `value: string`.\r\n     * Updates the `value` property.\r\n     */\n    onChange: PropTypes.func.isRequired,\n    /**\r\n     * A function of `event: Event`.\r\n     * Handles `keydown` events.\r\n     */\n    onKeyDown: PropTypes.func,\n    /**\r\n     * A two-letter country code for formatting `value`\r\n     * as a national phone number (e.g. `(800) 555 35 35`).\r\n     * E.g. \"US\", \"RU\", etc.\r\n     * If no `country` is passed then `value`\r\n     * is formatted as an international phone number.\r\n     * (e.g. `+7 800 555 35 35`)\r\n     * This property should've been called `defaultCountry`\r\n     * because it only applies when the user inputs a phone number in a national format\r\n     * and is completely ignored when the user inputs a phone number in an international format.\r\n     */\n    country: PropTypes.string,\n    /**\r\n     * The format that the input field value is being input/output in.\r\n     */\n    inputFormat: PropTypes.oneOf(['INTERNATIONAL', 'NATIONAL_PART_OF_INTERNATIONAL', 'NATIONAL', 'INTERNATIONAL_OR_NATIONAL']).isRequired,\n    /**\r\n     * `libphonenumber-js` metadata.\r\n     */\n    metadata: PropTypes.object,\n    /**\r\n     * The `<input/>` component.\r\n     */\n    inputComponent: PropTypes.elementType\n  };\n  return InputBasic;\n}\nexport default createInput();\nfunction format(prefix, value, country, metadata) {\n  return removePrefixFromFormattedPhoneNumber(formatIncompletePhoneNumber(prefix + value, country, metadata), prefix);\n}\n//# sourceMappingURL=InputBasic.js.map","/**\r\n * Creates Unicode flag from a two-letter ISO country code.\r\n * https://stackoverflow.com/questions/24050671/how-to-put-japan-flag-character-in-a-string\r\n * @param  {string} country — A two-letter ISO country code (case-insensitive).\r\n * @return {string}\r\n */\nexport default function getCountryFlag(country) {\n  return getRegionalIndicatorSymbol(country[0]) + getRegionalIndicatorSymbol(country[1]);\n}\n/**\r\n * Converts a letter to a Regional Indicator Symbol.\r\n * @param  {string} letter\r\n * @return {string}\r\n */\n\nfunction getRegionalIndicatorSymbol(letter) {\n  return String.fromCodePoint(0x1F1E6 - 65 + letter.toUpperCase().charCodeAt(0));\n}\n//# sourceMappingURL=unicode.js.map","var _excluded = [\"value\", \"onChange\", \"options\", \"disabled\", \"readOnly\"],\n  _excluded2 = [\"value\", \"options\", \"className\", \"iconComponent\", \"getIconAspectRatio\", \"arrowComponent\", \"unicodeFlags\"];\nfunction _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.\"); }\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); }\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; }\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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport getUnicodeFlagIcon from 'country-flag-icons/unicode';\nexport default function CountrySelect(_ref) {\n  var value = _ref.value,\n    onChange = _ref.onChange,\n    options = _ref.options,\n    disabled = _ref.disabled,\n    readOnly = _ref.readOnly,\n    rest = _objectWithoutProperties(_ref, _excluded);\n  var onChange_ = useCallback(function (event) {\n    var value = event.target.value;\n    onChange(value === 'ZZ' ? undefined : value);\n  }, [onChange]);\n  var selectedOption = useMemo(function () {\n    return getSelectedOption(options, value);\n  }, [options, value]);\n\n  // \"ZZ\" means \"International\".\n  // (HTML requires each `<option/>` have some string `value`).\n  return /*#__PURE__*/React.createElement(\"select\", _extends({}, rest, {\n    disabled: disabled || readOnly,\n    readOnly: readOnly,\n    value: value || 'ZZ',\n    onChange: onChange_\n  }), options.map(function (_ref2) {\n    var value = _ref2.value,\n      label = _ref2.label,\n      divider = _ref2.divider;\n    return /*#__PURE__*/React.createElement(\"option\", {\n      key: divider ? '|' : value || 'ZZ',\n      value: divider ? '|' : value || 'ZZ',\n      disabled: divider ? true : false,\n      style: divider ? DIVIDER_STYLE : undefined\n    }, label);\n  }));\n}\nCountrySelect.propTypes = {\n  /**\r\n   * A two-letter country code.\r\n   * Example: \"US\", \"RU\", etc.\r\n   */\n  value: PropTypes.string,\n  /**\r\n   * A function of `value: string`.\r\n   * Updates the `value` property.\r\n   */\n  onChange: PropTypes.func.isRequired,\n  // `<select/>` options.\n  options: PropTypes.arrayOf(PropTypes.shape({\n    value: PropTypes.string,\n    label: PropTypes.string,\n    divider: PropTypes.bool\n  })).isRequired,\n  // `readonly` attribute doesn't work on a `<select/>`.\n  // https://github.com/catamphetamine/react-phone-number-input/issues/419#issuecomment-1764384480\n  // https://www.delftstack.com/howto/html/html-select-readonly/\n  // To work around that, if `readOnly: true` property is passed\n  // to this component, it behaves analogous to `disabled: true`.\n  disabled: PropTypes.bool,\n  readOnly: PropTypes.bool\n};\nvar DIVIDER_STYLE = {\n  fontSize: '1px',\n  backgroundColor: 'currentColor',\n  color: 'inherit'\n};\nexport function CountrySelectWithIcon(_ref3) {\n  var value = _ref3.value,\n    options = _ref3.options,\n    className = _ref3.className,\n    Icon = _ref3.iconComponent,\n    getIconAspectRatio = _ref3.getIconAspectRatio,\n    _ref3$arrowComponent = _ref3.arrowComponent,\n    Arrow = _ref3$arrowComponent === void 0 ? DefaultArrowComponent : _ref3$arrowComponent,\n    unicodeFlags = _ref3.unicodeFlags,\n    rest = _objectWithoutProperties(_ref3, _excluded2);\n  var selectedOption = useMemo(function () {\n    return getSelectedOption(options, value);\n  }, [options, value]);\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: \"PhoneInputCountry\"\n  }, /*#__PURE__*/React.createElement(CountrySelect, _extends({}, rest, {\n    value: value,\n    options: options,\n    className: classNames('PhoneInputCountrySelect', className)\n  })), selectedOption && (unicodeFlags && value ? /*#__PURE__*/React.createElement(\"div\", {\n    className: \"PhoneInputCountryIconUnicode\"\n  }, getUnicodeFlagIcon(value)) : /*#__PURE__*/React.createElement(Icon, {\n    \"aria-hidden\": true,\n    country: value,\n    label: selectedOption.label,\n    aspectRatio: unicodeFlags ? 1 : undefined\n  })), /*#__PURE__*/React.createElement(Arrow, null));\n}\nCountrySelectWithIcon.propTypes = {\n  // Country flag component.\n  iconComponent: PropTypes.elementType,\n  // Select arrow component.\n  arrowComponent: PropTypes.elementType,\n  // Set to `true` to render Unicode flag icons instead of SVG images.\n  unicodeFlags: PropTypes.bool\n};\nfunction DefaultArrowComponent() {\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: \"PhoneInputCountrySelectArrow\"\n  });\n}\nfunction getSelectedOption(options, value) {\n  for (var _iterator = _createForOfIteratorHelperLoose(options), _step; !(_step = _iterator()).done;) {\n    var option = _step.value;\n    if (!option.divider) {\n      if (isSameOptionValue(option.value, value)) {\n        return option;\n      }\n    }\n  }\n}\nfunction isSameOptionValue(value1, value2) {\n  // `undefined` is identical to `null`: both mean \"no country selected\".\n  if (value1 === undefined || value1 === null) {\n    return value2 === undefined || value2 === null;\n  }\n  return value1 === value2;\n}\n//# sourceMappingURL=CountrySelect.js.map","var _excluded = [\"country\", \"countryName\", \"flags\", \"flagUrl\"];\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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n// Default country flag icon.\n// `<img/>` is wrapped in a `<div/>` to prevent SVGs from exploding in size in IE 11.\n// https://github.com/catamphetamine/react-phone-number-input/issues/111\nexport default function FlagComponent(_ref) {\n  var country = _ref.country,\n    countryName = _ref.countryName,\n    flags = _ref.flags,\n    flagUrl = _ref.flagUrl,\n    rest = _objectWithoutProperties(_ref, _excluded);\n  if (flags && flags[country]) {\n    return flags[country]({\n      title: countryName\n    });\n  }\n  return /*#__PURE__*/React.createElement(\"img\", _extends({}, rest, {\n    alt: countryName,\n    role: countryName ? undefined : \"presentation\",\n    src: flagUrl.replace('{XX}', country).replace('{xx}', country.toLowerCase())\n  }));\n}\nFlagComponent.propTypes = {\n  // The country to be selected by default.\n  // Two-letter country code (\"ISO 3166-1 alpha-2\").\n  country: PropTypes.string.isRequired,\n  // Will be HTML `title` attribute of the `<img/>`.\n  countryName: PropTypes.string.isRequired,\n  // Country flag icon components.\n  // By default flag icons are inserted as `<img/>`s\n  // with their `src` pointed to `country-flag-icons` gitlab pages website.\n  // There might be cases (e.g. an offline application)\n  // where having a large (3 megabyte) `<svg/>` flags\n  // bundle is more appropriate.\n  // `import flags from 'react-phone-number-input/flags'`.\n  flags: PropTypes.objectOf(PropTypes.elementType),\n  // A URL for a country flag icon.\n  // By default it points to `country-flag-icons` gitlab pages website.\n  flagUrl: PropTypes.string.isRequired\n};\n//# sourceMappingURL=Flag.js.map","var _excluded = [\"aspectRatio\"],\n  _excluded2 = [\"title\"],\n  _excluded3 = [\"title\"];\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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nexport default function InternationalIcon(_ref) {\n  var aspectRatio = _ref.aspectRatio,\n    rest = _objectWithoutProperties(_ref, _excluded);\n  if (aspectRatio === 1) {\n    return /*#__PURE__*/React.createElement(InternationalIcon1x1, rest);\n  } else {\n    return /*#__PURE__*/React.createElement(InternationalIcon3x2, rest);\n  }\n}\nInternationalIcon.propTypes = {\n  title: PropTypes.string.isRequired,\n  aspectRatio: PropTypes.number\n};\n\n// 3x2.\n// Using `<title/>` in `<svg/>`s:\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title\nfunction InternationalIcon3x2(_ref2) {\n  var title = _ref2.title,\n    rest = _objectWithoutProperties(_ref2, _excluded2);\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 75 50\"\n  }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"PhoneInputInternationalIconGlobe\",\n    stroke: \"currentColor\",\n    fill: \"none\",\n    strokeWidth: \"2\",\n    strokeMiterlimit: \"10\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    d: \"M47.2,36.1C48.1,36,49,36,50,36c7.4,0,14,1.7,18.5,4.3\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M68.6,9.6C64.2,12.3,57.5,14,50,14c-7.4,0-14-1.7-18.5-4.3\"\n  }), /*#__PURE__*/React.createElement(\"line\", {\n    x1: \"26\",\n    y1: \"25\",\n    x2: \"74\",\n    y2: \"25\"\n  }), /*#__PURE__*/React.createElement(\"line\", {\n    x1: \"50\",\n    y1: \"1\",\n    x2: \"50\",\n    y2: \"49\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    d: \"M46.3,48.7c1.2,0.2,2.5,0.3,3.7,0.3c13.3,0,24-10.7,24-24S63.3,1,50,1S26,11.7,26,25c0,2,0.3,3.9,0.7,5.8\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    d: \"M46.8,48.2c1,0.6,2.1,0.8,3.2,0.8c6.6,0,12-10.7,12-24S56.6,1,50,1S38,11.7,38,25c0,1.4,0.1,2.7,0.2,4c0,0.1,0,0.2,0,0.2\"\n  })), /*#__PURE__*/React.createElement(\"path\", {\n    className: \"PhoneInputInternationalIconPhone\",\n    stroke: \"none\",\n    fill: \"currentColor\",\n    d: \"M12.4,17.9c2.9-2.9,5.4-4.8,0.3-11.2S4.1,5.2,1.3,8.1C-2,11.4,1.1,23.5,13.1,35.6s24.3,15.2,27.5,11.9c2.8-2.8,7.8-6.3,1.4-11.5s-8.3-2.6-11.2,0.3c-2,2-7.2-2.2-11.7-6.7S10.4,19.9,12.4,17.9z\"\n  }));\n}\nInternationalIcon3x2.propTypes = {\n  title: PropTypes.string.isRequired\n};\n\n// 1x1.\n// Using `<title/>` in `<svg/>`s:\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title\nfunction InternationalIcon1x1(_ref3) {\n  var title = _ref3.title,\n    rest = _objectWithoutProperties(_ref3, _excluded3);\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 50 50\"\n  }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"PhoneInputInternationalIconGlobe\",\n    stroke: \"currentColor\",\n    fill: \"none\",\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M8.45,13A21.44,21.44,0,1,1,37.08,41.56\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M19.36,35.47a36.9,36.9,0,0,1-2.28-13.24C17.08,10.39,21.88.85,27.8.85s10.72,9.54,10.72,21.38c0,6.48-1.44,12.28-3.71,16.21\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M17.41,33.4A39,39,0,0,1,27.8,32.06c6.62,0,12.55,1.5,16.48,3.86\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M44.29,8.53c-3.93,2.37-9.86,3.88-16.49,3.88S15.25,10.9,11.31,8.54\"\n  }), /*#__PURE__*/React.createElement(\"line\", {\n    x1: \"27.8\",\n    y1: \"0.85\",\n    x2: \"27.8\",\n    y2: \"34.61\"\n  }), /*#__PURE__*/React.createElement(\"line\", {\n    x1: \"15.2\",\n    y1: \"22.23\",\n    x2: \"49.15\",\n    y2: \"22.23\"\n  })), /*#__PURE__*/React.createElement(\"path\", {\n    className: \"PhoneInputInternationalIconPhone\",\n    stroke: \"transparent\",\n    fill: \"currentColor\",\n    d: \"M9.42,26.64c2.22-2.22,4.15-3.59.22-8.49S3.08,17,.93,19.17c-2.49,2.48-.13,11.74,9,20.89s18.41,11.5,20.89,9c2.15-2.15,5.91-4.77,1-8.71s-6.27-2-8.49.22c-1.55,1.55-5.48-1.69-8.86-5.08S7.87,28.19,9.42,26.64Z\"\n  }));\n}\nInternationalIcon1x1.propTypes = {\n  title: PropTypes.string.isRequired\n};\n//# sourceMappingURL=InternationalIcon.js.map","// Tells if `value: string` is an `E.164` phone number.\n//\n// Returns a boolean.\n//\n// It doesn't validate that the minimum national (significant) number length\n// is at least 2 characters.\n//\nexport default function isE164Number(value) {\n  if (value.length < 2) {\n    return false;\n  }\n  if (value[0] !== '+') {\n    return false;\n  }\n  var i = 1;\n  while (i < value.length) {\n    var character = value.charCodeAt(i);\n    if (character >= 48 && character <= 57) {\n      // Is a digit.\n    } else {\n      return false;\n    }\n    i++;\n  }\n  return true;\n}\nexport function validateE164Number(value) {\n  if (!isE164Number(value)) {\n    console.error('[react-phone-number-input] Expected the initial `value` to be a E.164 phone number. Got', value);\n  }\n}\n//# sourceMappingURL=isE164Number.js.map","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.\"); }\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); }\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// Ignores weird istanbul error: \"else path not taken\".\nimport { isSupportedCountry } from 'libphonenumber-js/core';\nexport { getCountries } from 'libphonenumber-js/core';\n\n/**\r\n * Sorts country `<select/>` options.\r\n * Can move some country `<select/>` options\r\n * to the top of the list, for example.\r\n * @param  {object[]} countryOptions — Country `<select/>` options.\r\n * @param  {string[]} [countryOptionsOrder] — Country `<select/>` options order. Example: `[\"US\", \"CA\", \"AU\", \"|\", \"...\"]`.\r\n * @return {object[]}\r\n */\nexport function sortCountryOptions(options, order) {\n  if (!order) {\n    return options;\n  }\n  var optionsOnTop = [];\n  var optionsOnBottom = [];\n  var appendTo = optionsOnTop;\n  var _loop = function _loop() {\n    var element = _step.value;\n    if (element === '|') {\n      appendTo.push({\n        divider: true\n      });\n    } else if (element === '...' || element === '…') {\n      appendTo = optionsOnBottom;\n    } else {\n      var countryCode;\n      if (element === '🌐') {\n        countryCode = undefined;\n      } else {\n        countryCode = element;\n      }\n      // Find the position of the option.\n      var index = options.indexOf(options.filter(function (option) {\n        return option.value === countryCode;\n      })[0]);\n      // Get the option.\n      var option = options[index];\n      // Remove the option from its default position.\n      options.splice(index, 1);\n      // Add the option on top.\n      appendTo.push(option);\n    }\n  };\n  for (var _iterator = _createForOfIteratorHelperLoose(order), _step; !(_step = _iterator()).done;) {\n    _loop();\n  }\n  return optionsOnTop.concat(options).concat(optionsOnBottom);\n}\nexport function getSupportedCountryOptions(countryOptions, metadata) {\n  if (countryOptions) {\n    countryOptions = countryOptions.filter(function (option) {\n      switch (option) {\n        case '🌐':\n        case '|':\n        case '...':\n        case '…':\n          return true;\n        default:\n          return isCountrySupportedWithError(option, metadata);\n      }\n    });\n    if (countryOptions.length > 0) {\n      return countryOptions;\n    }\n  }\n}\nexport function isCountrySupportedWithError(country, metadata) {\n  if (isSupportedCountry(country, metadata)) {\n    return true;\n  } else {\n    console.error(\"Country not found: \".concat(country));\n    return false;\n  }\n}\nexport function getSupportedCountries(countries, metadata) {\n  if (countries) {\n    countries = countries.filter(function (country) {\n      return isCountrySupportedWithError(country, metadata);\n    });\n    if (countries.length === 0) {\n      countries = undefined;\n    }\n  }\n  return countries;\n}\n//# sourceMappingURL=countries.js.map","var _excluded = [\"country\", \"label\", \"aspectRatio\"];\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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport DefaultInternationalIcon from './InternationalIcon.js';\nimport Flag from './Flag.js';\nexport function createCountryIconComponent(_ref) {\n  var flags = _ref.flags,\n    flagUrl = _ref.flagUrl,\n    FlagComponent = _ref.flagComponent,\n    InternationalIcon = _ref.internationalIcon;\n  function CountryIcon(_ref2) {\n    var country = _ref2.country,\n      label = _ref2.label,\n      aspectRatio = _ref2.aspectRatio,\n      rest = _objectWithoutProperties(_ref2, _excluded);\n    // `aspectRatio` is currently a hack for the default \"International\" icon\n    // to render it as a square when Unicode flag icons are used.\n    // So `aspectRatio` property is only used with the default \"International\" icon.\n    var _aspectRatio = InternationalIcon === DefaultInternationalIcon ? aspectRatio : undefined;\n    return /*#__PURE__*/React.createElement(\"div\", _extends({}, rest, {\n      className: classNames('PhoneInputCountryIcon', {\n        'PhoneInputCountryIcon--square': _aspectRatio === 1,\n        'PhoneInputCountryIcon--border': country\n      })\n    }), country ? /*#__PURE__*/React.createElement(FlagComponent, {\n      country: country,\n      countryName: label,\n      flags: flags,\n      flagUrl: flagUrl,\n      className: \"PhoneInputCountryIconImg\"\n    }) : /*#__PURE__*/React.createElement(InternationalIcon, {\n      title: label,\n      aspectRatio: _aspectRatio,\n      className: \"PhoneInputCountryIconImg\"\n    }));\n  }\n  CountryIcon.propTypes = {\n    country: PropTypes.string,\n    label: PropTypes.string.isRequired,\n    aspectRatio: PropTypes.number\n  };\n  return CountryIcon;\n}\nexport default createCountryIconComponent({\n  // Must be equal to `defaultProps.flagUrl` in `./PhoneInputWithCountry.js`.\n  flagUrl: 'https://purecatamphetamine.github.io/country-flag-icons/3x2/{XX}.svg',\n  flagComponent: Flag,\n  internationalIcon: DefaultInternationalIcon\n});\n//# sourceMappingURL=CountryIcon.js.map","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.\"); }\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); }\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; }\nimport { useRef, useCallback } from 'react';\n\n/**\r\n * This hook creates an internal copy of a `ref`\r\n * and returns a new `ref`-alike setter function\r\n * that updates both `ref` and the internal copy of it.\r\n * That `ref`-alike setter function could then be passed\r\n * to child elements instead of the original `ref`.\r\n *\r\n * The internal copy of the `ref` can then be used to\r\n * call instance methods like `.focus()`, etc.\r\n *\r\n * One may ask: why create a copy of `ref` for \"internal\" use\r\n * when the code could use the original `ref` for that.\r\n * The answer is: the code would have to dance around the original `ref` anyway\r\n * to figure out whether it exists and to find out the internal implementation of it\r\n * in order to read its value correctly. This hook encapsulates all that \"boilerplate\" code.\r\n * The returned copy of the `ref` is guaranteed to exist and functions as a proper ref \"object\".\r\n * The returned `ref`-alike setter function must be used instead of the original `ref`\r\n * when passing it to child elements.\r\n *\r\n * @param  {(object|function)} [externalRef] — The original `ref` that may have any internal implementation and might not even exist.\r\n * @return {any[]} Returns an array of two elements: a copy of the `ref` for \"internal\" use and a `ref`-alike setter function that should be used in-place of the original `ref` when passing it to child elements.\r\n */\nexport default function useExternalRef(externalRef) {\n  // Create a copy of the original `ref` (which might not exist).\n  // Both refs will point to the same value.\n  var refCopy = useRef();\n\n  // Updates both `ref`s with the same `value`.\n  var refSetter = useCallback(function (value) {\n    setRefsValue([externalRef, refCopy], value);\n  }, [externalRef, refCopy]);\n  return [refCopy, refSetter];\n}\n\n// Sets the same `value` of all `ref`s.\n// Some of the `ref`s may not exist in which case they'll be skipped.\nexport function setRefsValue(refs, value) {\n  for (var _iterator = _createForOfIteratorHelperLoose(refs), _step; !(_step = _iterator()).done;) {\n    var ref = _step.value;\n    if (ref) {\n      setRefValue(ref, value);\n    }\n  }\n}\n\n// Sets the value of a `ref`.\n// Before React Hooks were introduced, `ref`s used to be functions.\n// After React Hooks were introduces, `ref`s became objects with `.current` property.\n// This function sets a `ref`'s value regardless of its internal implementation,\n// so it supports both types of `ref`s.\nfunction setRefValue(ref, value) {\n  if (typeof ref === 'function') {\n    ref(value);\n  } else {\n    ref.current = value;\n  }\n}\n//# sourceMappingURL=useExternalRef.js.map","import PropTypes from 'prop-types';\nexport var metadata = PropTypes.shape({\n  country_calling_codes: PropTypes.object.isRequired,\n  countries: PropTypes.object.isRequired\n});\nexport var labels = PropTypes.objectOf(PropTypes.string);\n//# sourceMappingURL=PropTypes.js.map","import { getCountryCallingCode, Metadata } from 'libphonenumber-js/core';\nvar ONLY_DIGITS_REGEXP = /^\\d+$/;\nexport default function getInternationalPhoneNumberPrefix(country, metadata) {\n  // Standard international phone number prefix: \"+\" and \"country calling code\".\n  var prefix = '+' + getCountryCallingCode(country, metadata);\n\n  // \"Leading digits\" can't be used to rule out any countries.\n  // So the \"pre-fill with leading digits on country selection\" feature had to be reverted.\n  // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/10#note_1231042367\n  // // Get \"leading digits\" for a phone number of the country.\n  // // If there're \"leading digits\" then they can be part of the prefix too.\n  // // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/10\n  // metadata = new Metadata(metadata)\n  // metadata.selectNumberingPlan(country)\n  // // \"Leading digits\" patterns are only defined for about 20% of all countries.\n  // // By definition, matching \"leading digits\" is a sufficient but not a necessary\n  // // condition for a phone number to belong to a country.\n  // // The point of \"leading digits\" check is that it's the fastest one to get a match.\n  // // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n  // const leadingDigits = metadata.numberingPlan.leadingDigits()\n  // if (leadingDigits && ONLY_DIGITS_REGEXP.test(leadingDigits)) {\n  // \tprefix += leadingDigits\n  // }\n\n  return prefix;\n}\n//# sourceMappingURL=getInternationalPhoneNumberPrefix.js.map","import parsePhoneNumber_, { getCountryCallingCode, AsYouType, Metadata } from 'libphonenumber-js/core';\nimport getInternationalPhoneNumberPrefix from './getInternationalPhoneNumberPrefix.js';\n\n/**\r\n * Decides which country should be pre-selected\r\n * when the phone number input component is first mounted.\r\n * @param  {object?} phoneNumber - An instance of `PhoneNumber` class.\r\n * @param  {string?} country - Pre-defined country (two-letter code).\r\n * @param  {string[]?} countries - A list of countries available.\r\n * @param  {object} metadata - `libphonenumber-js` metadata\r\n * @return {string?}\r\n */\nexport function getPreSelectedCountry(_ref) {\n  var value = _ref.value,\n    phoneNumber = _ref.phoneNumber,\n    defaultCountry = _ref.defaultCountry,\n    getAnyCountry = _ref.getAnyCountry,\n    countries = _ref.countries,\n    required = _ref.required,\n    metadata = _ref.metadata;\n  var country;\n\n  // If can get country from E.164 phone number\n  // then it overrides the `country` passed (or not passed).\n  if (phoneNumber && phoneNumber.country) {\n    // `country` will be left `undefined` in case of non-detection.\n    country = phoneNumber.country;\n  } else if (defaultCountry) {\n    if (!value || couldNumberBelongToCountry(value, defaultCountry, metadata)) {\n      country = defaultCountry;\n    }\n  }\n\n  // Only pre-select a country if it's in the available `countries` list.\n  if (countries && countries.indexOf(country) < 0) {\n    country = undefined;\n  }\n\n  // If there will be no \"International\" option\n  // then some `country` must be selected.\n  // It will still be the wrong country though.\n  // But still country `<select/>` can't be left in a broken state.\n  if (!country && required && countries && countries.length > 0) {\n    country = getAnyCountry();\n    // noCountryMatchesTheNumber = true\n  }\n  return country;\n}\n\n/**\r\n * Generates a sorted list of country `<select/>` options.\r\n * @param  {string[]} countries - A list of two-letter (\"ISO 3166-1 alpha-2\") country codes.\r\n * @param  {object} labels - Custom country labels. E.g. `{ RU: 'Россия', US: 'США', ... }`.\r\n * @param  {boolean} addInternationalOption - Whether should include \"International\" option at the top of the list.\r\n * @return {object[]} A list of objects having shape `{ value : string, label : string }`.\r\n */\nexport function getCountrySelectOptions(_ref2) {\n  var countries = _ref2.countries,\n    countryNames = _ref2.countryNames,\n    addInternationalOption = _ref2.addInternationalOption,\n    compareStringsLocales = _ref2.compareStringsLocales,\n    _compareStrings = _ref2.compareStrings;\n  // Default country name comparator uses `String.localeCompare()`.\n  if (!_compareStrings) {\n    _compareStrings = compareStrings;\n  }\n\n  // Generates a `<Select/>` option for each country.\n  var countrySelectOptions = countries.map(function (country) {\n    return {\n      value: country,\n      // All `locale` country names included in this library\n      // include all countries (this is checked at build time).\n      // The only case when a country name might be missing\n      // is when a developer supplies their own `labels` property.\n      // To guard against such cases, a missing country name\n      // is substituted by country code.\n      label: countryNames[country] || country\n    };\n  });\n\n  // Sort the list of countries alphabetically.\n  countrySelectOptions.sort(function (a, b) {\n    return _compareStrings(a.label, b.label, compareStringsLocales);\n  });\n\n  // Add the \"International\" option to the country list (if suitable)\n  if (addInternationalOption) {\n    countrySelectOptions.unshift({\n      label: countryNames.ZZ\n    });\n  }\n  return countrySelectOptions;\n}\n\n/**\r\n * Parses a E.164 phone number to an instance of `PhoneNumber` class.\r\n * @param {string?} value = E.164 phone number.\r\n * @param  {object} metadata - `libphonenumber-js` metadata\r\n * @return {object} Object having shape `{ country: string?, countryCallingCode: string, number: string }`. `PhoneNumber`: https://gitlab.com/catamphetamine/libphonenumber-js#phonenumber.\r\n * @example\r\n * parsePhoneNumber('+78005553535')\r\n */\nexport function parsePhoneNumber(value, metadata) {\n  return parsePhoneNumber_(value || '', metadata);\n}\n\n/**\r\n * Generates national number digits for a parsed phone.\r\n * May prepend national prefix.\r\n * The phone number must be a complete and valid phone number.\r\n * @param  {object} phoneNumber - An instance of `PhoneNumber` class.\r\n * @param  {object} metadata - `libphonenumber-js` metadata\r\n * @return {string}\r\n * @example\r\n * getNationalNumberDigits({ country: 'RU', phone: '8005553535' })\r\n * // returns '88005553535'\r\n */\nexport function generateNationalNumberDigits(phoneNumber) {\n  return phoneNumber.formatNational().replace(/\\D/g, '');\n}\n\n/**\r\n * Migrates parsed `<input/>` `value` for the newly selected `country`.\r\n * @param {string?} phoneDigits - Phone number digits (and `+`) parsed from phone number `<input/>` (it's not the same as the `value` property).\r\n * @param {string?} prevCountry - Previously selected country.\r\n * @param {string?} newCountry - Newly selected country. Can't be same as previously selected country.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @param {boolean} useNationalFormat - whether should attempt to convert from international to national number for the new country.\r\n * @return {string?}\r\n */\nexport function getPhoneDigitsForNewCountry(phoneDigits, _ref3) {\n  var prevCountry = _ref3.prevCountry,\n    newCountry = _ref3.newCountry,\n    metadata = _ref3.metadata,\n    useNationalFormat = _ref3.useNationalFormat;\n  if (prevCountry === newCountry) {\n    return phoneDigits;\n  }\n\n  // If `parsed_input` is empty\n  // then no need to migrate anything.\n  if (!phoneDigits) {\n    if (useNationalFormat) {\n      return '';\n    } else {\n      if (newCountry) {\n        // If `phoneDigits` is empty then set `phoneDigits` to\n        // `+{getCountryCallingCode(newCountry)}`.\n        return getInternationalPhoneNumberPrefix(newCountry, metadata);\n      }\n      return '';\n    }\n  }\n\n  // If switching to some country.\n  // (from \"International\" or another country)\n  // If switching from \"International\" then `phoneDigits` starts with a `+`.\n  // Otherwise it may or may not start with a `+`.\n  if (newCountry) {\n    // If the phone number was entered in international format\n    // then migrate it to the newly selected country.\n    // The phone number may be incomplete.\n    // The phone number entered not necessarily starts with\n    // the previously selected country phone prefix.\n    if (phoneDigits[0] === '+') {\n      // If the international phone number is for the new country\n      // then convert it to local if required.\n      if (useNationalFormat) {\n        // // If a phone number is being input in international form\n        // // and the country can already be derived from it,\n        // // and if it is the new country, then format as a national number.\n        // const derived_country = getCountryFromPossiblyIncompleteInternationalPhoneNumber(phoneDigits, metadata)\n        // if (derived_country === newCountry) {\n        // \treturn stripCountryCallingCode(phoneDigits, derived_country, metadata)\n        // }\n\n        // Actually, the two countries don't necessarily need to match:\n        // the condition could be looser here, because several countries\n        // might share the same international phone number format\n        // (for example, \"NANPA\" countries like US, Canada, etc).\n        // The looser condition would be just \"same nternational phone number format\"\n        // which would mean \"same country calling code\" in the context of `libphonenumber-js`.\n        if (phoneDigits.indexOf('+' + getCountryCallingCode(newCountry, metadata)) === 0) {\n          return stripCountryCallingCode(phoneDigits, newCountry, metadata);\n        }\n\n        // Simply discard the previously entered international phone number,\n        // because otherwise any \"smart\" transformation like getting the\n        // \"national (significant) number\" part and then prepending the\n        // newly selected country's \"country calling code\" to it\n        // would just be confusing for a user without being actually useful.\n        return '';\n\n        // // Simply strip the leading `+` character\n        // // therefore simply converting all digits into a \"local\" phone number.\n        // // https://github.com/catamphetamine/react-phone-number-input/issues/287\n        // return phoneDigits.slice(1)\n      }\n      if (prevCountry) {\n        var newCountryPrefix = getInternationalPhoneNumberPrefix(newCountry, metadata);\n        if (phoneDigits.indexOf(newCountryPrefix) === 0) {\n          return phoneDigits;\n        } else {\n          return newCountryPrefix;\n        }\n      } else {\n        var defaultValue = getInternationalPhoneNumberPrefix(newCountry, metadata);\n        // If `phoneDigits`'s country calling code part is the same\n        // as for the new `country`, then leave `phoneDigits` as is.\n        if (phoneDigits.indexOf(defaultValue) === 0) {\n          return phoneDigits;\n        }\n        // If `phoneDigits`'s country calling code part is not the same\n        // as for the new `country`, then set `phoneDigits` to\n        // `+{getCountryCallingCode(newCountry)}`.\n        return defaultValue;\n      }\n\n      // // If the international phone number already contains\n      // // any country calling code then trim the country calling code part.\n      // // (that could also be the newly selected country phone code prefix as well)\n      // // `phoneDigits` doesn't neccessarily belong to `prevCountry`.\n      // // (e.g. if a user enters an international number\n      // //  not belonging to any of the reduced `countries` list).\n      // phoneDigits = stripCountryCallingCode(phoneDigits, prevCountry, metadata)\n\n      // // Prepend country calling code prefix\n      // // for the newly selected country.\n      // return e164(phoneDigits, newCountry, metadata) || `+${getCountryCallingCode(newCountry, metadata)}`\n    }\n  }\n  // If switching to \"International\" from a country.\n  else {\n    // If the phone number was entered in national format.\n    if (phoneDigits[0] !== '+') {\n      // Format the national phone number as an international one.\n      // The phone number entered not necessarily even starts with\n      // the previously selected country phone prefix.\n      // Even if the phone number belongs to whole another country\n      // it will still be parsed into some national phone number.\n      //\n      // Ignore the now-uncovered `|| ''` code branch:\n      // previously `e164()` function could return an empty string\n      // even when `phoneDigits` were not empty.\n      // Now it always returns some `value` when there're any `phoneDigits`.\n      // Still, didn't remove the `|| ''` code branch just in case\n      // that logic changes somehow in some future, so there're no\n      // possible bugs related to that.\n      //\n      // (ignore the `|| ''` code branch)\n      /* istanbul ignore next */\n      return e164(phoneDigits, prevCountry, metadata) || '';\n    }\n  }\n  return phoneDigits;\n}\n\n/**\r\n * Converts phone number digits to a (possibly incomplete) E.164 phone number.\r\n * @param  {string?} number - A possibly incomplete phone number digits string. Can be a possibly incomplete E.164 phone number.\r\n * @param  {string?} country\r\n * @param  {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\nexport function e164(number, country, metadata) {\n  if (!number) {\n    return;\n  }\n  // If the phone number is being input in international format.\n  if (number[0] === '+') {\n    // If it's just the `+` sign then return nothing.\n    if (number === '+') {\n      return;\n    }\n    // Return a E.164 phone number.\n    //\n    // Could return `number` \"as is\" here, but there's a possibility\n    // that some user might incorrectly input an international number\n    // with a \"national prefix\". Such numbers aren't considered valid,\n    // but `libphonenumber-js` is \"forgiving\" when it comes to parsing\n    // user's input, and this input component follows that behavior.\n    //\n    var asYouType = new AsYouType(country, metadata);\n    asYouType.input(number);\n    // This function would return `undefined` only when `number` is `\"+\"`,\n    // but at this point it is known that `number` is not `\"+\"`.\n    return asYouType.getNumberValue();\n  }\n  // For non-international phone numbers\n  // an accompanying country code is required.\n  // The situation when `country` is `undefined`\n  // and a non-international phone number is passed\n  // to this function shouldn't happen.\n  if (!country) {\n    return;\n  }\n  var partial_national_significant_number = getNationalSignificantNumberDigits(number, country, metadata);\n  //\n  // Even if no \"national (significant) number\" digits have been input,\n  // still return a non-`undefined` value.\n  // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/113\n  //\n  // For example, if the user has selected country `US` and entered `\"1\"`\n  // then that `\"1\"` is just a \"national prefix\" and no \"national (significant) number\"\n  // digits have been input yet. Still, return `\"+1\"` as `value` in such cases,\n  // because otherwise the app would think that the input is empty and mark it as such\n  // while in reality it isn't empty, which might be thought of as a \"bug\", or just\n  // a \"weird\" behavior.\n  //\n  // if (partial_national_significant_number) {\n  return \"+\".concat(getCountryCallingCode(country, metadata)).concat(partial_national_significant_number || '');\n  // }\n}\n\n/**\r\n * Trims phone number digits if they exceed the maximum possible length\r\n * for a national (significant) number for the country.\r\n * @param  {string} number - A possibly incomplete phone number digits string. Can be a possibly incomplete E.164 phone number.\r\n * @param  {string} country\r\n * @param  {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string} Can be empty.\r\n */\nexport function trimNumber(number, country, metadata) {\n  var nationalSignificantNumberPart = getNationalSignificantNumberDigits(number, country, metadata);\n  if (nationalSignificantNumberPart) {\n    var overflowDigitsCount = nationalSignificantNumberPart.length - getMaxNumberLength(country, metadata);\n    if (overflowDigitsCount > 0) {\n      return number.slice(0, number.length - overflowDigitsCount);\n    }\n  }\n  return number;\n}\nfunction getMaxNumberLength(country, metadata) {\n  // Get \"possible lengths\" for a phone number of the country.\n  metadata = new Metadata(metadata);\n  metadata.selectNumberingPlan(country);\n  // Return the last \"possible length\".\n  return metadata.numberingPlan.possibleLengths()[metadata.numberingPlan.possibleLengths().length - 1];\n}\n\n// If the phone number being input is an international one\n// then tries to derive the country from the phone number.\n// (regardless of whether there's any country currently selected)\n/**\r\n * @param {string} partialE164Number - A possibly incomplete E.164 phone number.\r\n * @param {string?} country - Currently selected country.\r\n * @param {string[]?} countries - A list of available countries. If not passed then \"all countries\" are assumed.\r\n * @param {string?} defaultCountry — Default country.\r\n * @param {string?} latestCountrySelectedByUser — The latest country that has been manually selected by the user.\r\n * @param {boolean?} required — Whether \"International\" option could be selected, meaning \"no country is selected\".\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\nexport function getCountryForPartialE164Number(partialE164Number, _ref4) {\n  var country = _ref4.country,\n    countries = _ref4.countries,\n    defaultCountry = _ref4.defaultCountry,\n    latestCountrySelectedByUser = _ref4.latestCountrySelectedByUser,\n    required = _ref4.required,\n    metadata = _ref4.metadata;\n  // `partialE164Number` is supposed to be an E.164 phone number.\n\n  // `partialE164Number` is supposed to be non-empty when calling this function\n  // so it doesn't check for `if (!partialE164Number)`.\n\n  if (partialE164Number === '+') {\n    // Don't change the currently selected country yet.\n    return country;\n  }\n  var derived_country = getCountryFromPossiblyIncompleteInternationalPhoneNumber(partialE164Number, metadata);\n\n  // If a phone number is being input in international form\n  // and the country can already be derived from it,\n  // then select that country.\n  if (derived_country) {\n    if (!countries || countries.indexOf(derived_country) >= 0) {\n      return derived_country;\n    } else {\n      return undefined;\n    }\n  }\n  // Otherwise, if the phone number doesn't correspond to any particular country.\n  // If some country was previously selected.\n  else if (country) {\n    // If the international phone number entered could still correspond to the previously selected country\n    // and also to some other country or countries corresponding to the same calling code\n    // then it should reset the currently selected country to reflect the ambiguity.\n    if (couldNumberBelongToCountry(partialE164Number, country, metadata)) {\n      // Reset the country either to the latest one that was manually selected by the user\n      // or to the default country or just reset the country selection.\n      if (latestCountrySelectedByUser && couldNumberBelongToCountry(partialE164Number, latestCountrySelectedByUser, metadata)) {\n        return latestCountrySelectedByUser;\n      } else if (defaultCountry && couldNumberBelongToCountry(partialE164Number, defaultCountry, metadata)) {\n        return defaultCountry;\n      } else {\n        if (!required) {\n          // Just reset the currently selected country.\n          return undefined;\n        }\n      }\n    } else {\n      // If \"International\" country option has not been disabled\n      // and the international phone number entered doesn't necessarily correspond to\n      // the currently selected country and it could not possibly correspond to it\n      // then reset the currently selected country.\n      if (!required) {\n        return undefined;\n      }\n    }\n  }\n\n  // Don't change the currently selected country.\n  return country;\n}\n\n/**\r\n * Parses `<input/>` value. Derives `country` from `input`. Derives an E.164 `value`.\r\n * @param  {string?} phoneDigits — Parsed `<input/>` value. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n * @param  {string?} prevPhoneDigits — Previous parsed `<input/>` value. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n * @param  {string?} country - Currently selected country.\r\n * @param  {string?} defaultCountry - Default country.\r\n * @param  {string?} latestCountrySelectedByUser - The latest country that has been manually selected by the user.\r\n * @param  {boolean} countryRequired - Is selecting some country required.\r\n * @param  {function} getAnyCountry - Can be used to get any country when selecting some country required.\r\n * @param  {string[]?} countries - A list of available countries. If not passed then \"all countries\" are assumed.\r\n * @param  {boolean} international - Set to `true` to force international phone number format (leading `+`). Set to `false` to force \"national\" phone number format. Is `undefined` by default.\r\n * @param  {boolean} limitMaxLength — Whether to enable limiting phone number max length.\r\n * @param  {object} metadata - `libphonenumber-js` metadata.\r\n * @return {object} An object of shape `{ phoneDigits, country, value }`. `phoneDigits` returned here are a \"normalized\" version of the original `phoneDigits`. The returned `phoneDigits` shouldn't be used anywhere except for passing it as `prevPhoneDigits` parameter to this same function on next input change event.\r\n */\nexport function onPhoneDigitsChange(phoneDigits, _ref5) {\n  var prevPhoneDigits = _ref5.prevPhoneDigits,\n    country = _ref5.country,\n    defaultCountry = _ref5.defaultCountry,\n    latestCountrySelectedByUser = _ref5.latestCountrySelectedByUser,\n    countryRequired = _ref5.countryRequired,\n    getAnyCountry = _ref5.getAnyCountry,\n    countries = _ref5.countries,\n    international = _ref5.international,\n    limitMaxLength = _ref5.limitMaxLength,\n    countryCallingCodeEditable = _ref5.countryCallingCodeEditable,\n    metadata = _ref5.metadata;\n  // When the input is in `international` and `countryCallingCodeEditable={false}` mode,\n  // the `country` should not change. If the user attempted to overwrite the country callling code part,\n  // the component should reset it back to the correct country calling code for the `country`.\n  if (international && countryCallingCodeEditable === false) {\n    if (country) {\n      // For international phone numbers written with non-editable country calling code,\n      // the `<input/>` value must always start with that non-editable country calling code.\n      var prefix = getInternationalPhoneNumberPrefix(country, metadata);\n      // If the input value doesn't start with the non-editable country calling code,\n      // it should be fixed.\n      if (phoneDigits.indexOf(prefix) !== 0) {\n        var _value;\n        // If a phone number input is declared as\n        // `international: true` and `countryCallingCodeEditable: false`,\n        // then the value of the `<input/>` is gonna be non-empty at all times,\n        // even before the user has started to input any digits in the input field,\n        // because the country calling code is always there by design.\n        //\n        // The fact that the input value is always non-empty results in a side effect:\n        // whenever a user tabs into such input field, its value gets automatically selected.\n        // If at that moment in time the user starts typing in the national digits of the phone number,\n        // the selected `<input/>` value gets automatically replaced by those typed-in digits\n        // so the value changes from `+xxx` to `y`, because inputting anything while having\n        // the `<input/>` value selected results in erasing that `<input/>` value.\n        //\n        // This component handles such cases by restoring the `<input/>` value to what\n        // it should be in such cases: `+xxxy`.\n        // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/43\n        //\n        var hasStartedTypingInNationalNumberDigitsHavingInputValueSelected = phoneDigits && phoneDigits[0] !== '+';\n        if (hasStartedTypingInNationalNumberDigitsHavingInputValueSelected) {\n          // Fix the input value to what it should be: `y` → `+xxxy`.\n          phoneDigits = prefix + phoneDigits;\n          _value = e164(phoneDigits, country, metadata);\n        } else {\n          // In other cases, simply reset the `<input/>` value, because there're only two\n          // possible cases:\n          // * The user has selected the `<input/>` value and then hit Delete/Backspace to erase it.\n          // * The user has pasted an international phone number for another country calling code,\n          //   which is considered a non-valid value.\n          phoneDigits = prefix;\n        }\n        return {\n          phoneDigits: phoneDigits,\n          value: _value,\n          country: country\n        };\n      }\n    }\n  }\n\n  // If `international` property is `false`, then it means\n  // \"enforce national-only format during input\",\n  // so, if that's the case, then remove all `+` characters,\n  // but only if some country is currently selected.\n  // (not if \"International\" country is selected).\n  if (international === false && country && phoneDigits && phoneDigits[0] === '+') {\n    phoneDigits = convertInternationalPhoneDigitsToNational(phoneDigits, country, metadata);\n  }\n\n  // Trim the input to not exceed the maximum possible number length.\n  if (phoneDigits && country && limitMaxLength) {\n    phoneDigits = trimNumber(phoneDigits, country, metadata);\n  }\n\n  // If this `onChange()` event was triggered\n  // as a result of selecting \"International\" country,\n  // then force-prepend a `+` sign if the phone number\n  // `<input/>` value isn't in international format.\n  // Also, force-prepend a `+` sign if international\n  // phone number input format is set.\n  if (phoneDigits && phoneDigits[0] !== '+' && (!country || international)) {\n    phoneDigits = '+' + phoneDigits;\n  }\n\n  // If the previously entered phone number\n  // has been entered in international format\n  // and the user decides to erase it,\n  // then also reset the `country`\n  // because it was most likely automatically selected\n  // while the user was typing in the phone number\n  // in international format.\n  // This fixes the issue when a user is presented\n  // with a phone number input with no country selected\n  // and then types in their local phone number\n  // then discovers that the input's messed up\n  // (a `+` has been prepended at the start of their input\n  //  and a random country has been selected),\n  // decides to undo it all by erasing everything\n  // and then types in their local phone number again\n  // resulting in a seemingly correct phone number\n  // but in reality that phone number has incorrect country.\n  // https://github.com/catamphetamine/react-phone-number-input/issues/273\n  if (!phoneDigits && prevPhoneDigits && prevPhoneDigits[0] === '+') {\n    if (international) {\n      country = undefined;\n    } else {\n      country = defaultCountry;\n    }\n  }\n  // Also resets such \"randomly\" selected country\n  // as soon as the user erases the number\n  // digit-by-digit up to the leading `+` sign.\n  if (phoneDigits === '+' && prevPhoneDigits && prevPhoneDigits[0] === '+' && prevPhoneDigits.length > '+'.length) {\n    country = undefined;\n  }\n\n  // Generate the new `value` property.\n  var value;\n  if (phoneDigits) {\n    if (phoneDigits[0] === '+') {\n      if (phoneDigits === '+') {\n        value = undefined;\n      } else if (country && getInternationalPhoneNumberPrefix(country, metadata).indexOf(phoneDigits) === 0) {\n        // Selected a `country` and started inputting an\n        // international phone number for this country\n        // but hasn't input any \"national (significant) number\" digits yet.\n        // In that case, assume `value` be `undefined`.\n        //\n        // For example, if selected `country` `\"US\"`\n        // and started inputting phone number `\"+1\"`\n        // then `value` `undefined` will be returned from this function.\n        //\n        value = undefined;\n      } else {\n        value = e164(phoneDigits, country, metadata);\n      }\n    } else {\n      value = e164(phoneDigits, country, metadata);\n    }\n  }\n\n  // Derive the country from the phone number.\n  // (regardless of whether there's any country currently selected,\n  //  because there could be several countries corresponding to one country calling code)\n  if (value) {\n    country = getCountryForPartialE164Number(value, {\n      country: country,\n      countries: countries,\n      defaultCountry: defaultCountry,\n      latestCountrySelectedByUser: latestCountrySelectedByUser,\n      // `countryRequired` flag is not passed here.\n      // Instead, it's explicitly checked a bit later in the code.\n      required: false,\n      metadata: metadata\n    });\n    // If `international` property is `false`, then it means\n    // \"enforce national-only format during input\",\n    // so, if that's the case, then remove all `+` characters,\n    // but only if some country is currently selected.\n    // (not if \"International\" country is selected).\n    if (international === false && country && phoneDigits && phoneDigits[0] === '+') {\n      phoneDigits = convertInternationalPhoneDigitsToNational(phoneDigits, country, metadata);\n      // Re-calculate `value` because `phoneDigits` has changed.\n      value = e164(phoneDigits, country, metadata);\n    }\n  }\n  if (!country && countryRequired) {\n    country = defaultCountry || getAnyCountry();\n  }\n  return {\n    // `phoneDigits` returned here are a \"normalized\" version of the original `phoneDigits`.\n    // The returned `phoneDigits` shouldn't be used anywhere except for passing it as\n    // `prevPhoneDigits` parameter to this same function on next input change event.\n    phoneDigits: phoneDigits,\n    country: country,\n    value: value\n  };\n}\nfunction convertInternationalPhoneDigitsToNational(input, country, metadata) {\n  // Handle the case when a user might have pasted\n  // a phone number in international format.\n  if (input.indexOf(getInternationalPhoneNumberPrefix(country, metadata)) === 0) {\n    // Create \"as you type\" formatter.\n    var formatter = new AsYouType(country, metadata);\n    // Input partial national phone number.\n    formatter.input(input);\n    // Return the parsed partial national phone number.\n    var phoneNumber = formatter.getNumber();\n    if (phoneNumber) {\n      // Transform the number to a national one,\n      // and remove all non-digits.\n      return phoneNumber.formatNational().replace(/\\D/g, '');\n    } else {\n      return '';\n    }\n  } else {\n    // Just remove the `+` sign.\n    return input.replace(/\\D/g, '');\n  }\n}\n\n/**\r\n * Determines the country for a given (possibly incomplete) E.164 phone number.\r\n * @param  {string} number - A possibly incomplete E.164 phone number.\r\n * @param  {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\nexport function getCountryFromPossiblyIncompleteInternationalPhoneNumber(number, metadata) {\n  var formatter = new AsYouType(null, metadata);\n  formatter.input(number);\n  // // `001` is a special \"non-geograpical entity\" code\n  // // in Google's `libphonenumber` library.\n  // if (formatter.getCountry() === '001') {\n  // \treturn\n  // }\n  return formatter.getCountry();\n}\n\n/**\r\n * Compares two strings.\r\n * A helper for `Array.sort()`.\r\n * @param {string} a — First string.\r\n * @param {string} b — Second string.\r\n * @param {(string[]|string)} [locales] — The `locales` argument of `String.localeCompare`.\r\n */\nexport function compareStrings(a, b, locales) {\n  // Use `String.localeCompare` if it's available.\n  // https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare\n  // Which means everyone except IE <= 10 and Safari <= 10.\n  // `localeCompare()` is available in latest Node.js versions.\n  /* istanbul ignore else */\n  if (String.prototype.localeCompare) {\n    return a.localeCompare(b, locales);\n  }\n  /* istanbul ignore next */\n  return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\r\n * Strips `+${countryCallingCode}` prefix from an E.164 phone number.\r\n * @param {string} number - (possibly incomplete) E.164 phone number.\r\n * @param {string?} country - A possible country for this phone number.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string}\r\n */\nexport function stripCountryCallingCode(number, country, metadata) {\n  // Just an optimization, so that it\n  // doesn't have to iterate through all country calling codes.\n  if (country) {\n    var countryCallingCodePrefix = '+' + getCountryCallingCode(country, metadata);\n\n    // If `country` fits the actual `number`.\n    if (number.length < countryCallingCodePrefix.length) {\n      if (countryCallingCodePrefix.indexOf(number) === 0) {\n        return '';\n      }\n    } else {\n      if (number.indexOf(countryCallingCodePrefix) === 0) {\n        return number.slice(countryCallingCodePrefix.length);\n      }\n    }\n  }\n\n  // If `country` doesn't fit the actual `number`.\n  // Try all available country calling codes.\n  for (var _i = 0, _Object$keys = Object.keys(metadata.country_calling_codes); _i < _Object$keys.length; _i++) {\n    var country_calling_code = _Object$keys[_i];\n    if (number.indexOf(country_calling_code) === '+'.length) {\n      return number.slice('+'.length + country_calling_code.length);\n    }\n  }\n  return '';\n}\n\n/**\r\n * Parses a partially entered national phone number digits\r\n * (or a partially entered E.164 international phone number)\r\n * and returns the national significant number part.\r\n * National significant number returned doesn't come with a national prefix.\r\n * @param {string} number - National number digits. Or possibly incomplete E.164 phone number.\r\n * @param {string?} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string} [result]\r\n */\nexport function getNationalSignificantNumberDigits(number, country, metadata) {\n  // Create \"as you type\" formatter.\n  var formatter = new AsYouType(country, metadata);\n  // Input partial national phone number.\n  formatter.input(number);\n  // Return the parsed partial national phone number.\n  var phoneNumber = formatter.getNumber();\n  return phoneNumber && phoneNumber.nationalNumber;\n}\n\n/**\r\n * Checks if a partially entered E.164 phone number could belong to a country.\r\n * @param  {string} number\r\n * @param  {string} country\r\n * @return {boolean}\r\n */\nexport function couldNumberBelongToCountry(number, country, metadata) {\n  var intlPhoneNumberPrefix = getInternationalPhoneNumberPrefix(country, metadata);\n  var i = 0;\n  while (i < number.length && i < intlPhoneNumberPrefix.length) {\n    if (number[i] !== intlPhoneNumberPrefix[i]) {\n      return false;\n    }\n    i++;\n  }\n  return true;\n}\n\n/**\r\n * Gets initial \"phone digits\" (including `+`, if using international format).\r\n * @return {string} [phoneDigits] Returns `undefined` if there should be no initial \"phone digits\".\r\n */\nexport function getInitialPhoneDigits(_ref6) {\n  var value = _ref6.value,\n    phoneNumber = _ref6.phoneNumber,\n    defaultCountry = _ref6.defaultCountry,\n    international = _ref6.international,\n    useNationalFormat = _ref6.useNationalFormat,\n    metadata = _ref6.metadata;\n  // If the `value` (E.164 phone number)\n  // belongs to the currently selected country\n  // and `useNationalFormat` is `true`\n  // then convert `value` (E.164 phone number)\n  // to a local phone number digits.\n  // E.g. '+78005553535' -> '88005553535'.\n  if ((international === false || useNationalFormat) && phoneNumber && phoneNumber.country) {\n    return generateNationalNumberDigits(phoneNumber);\n  }\n  // If `international` property is `true`,\n  // meaning \"enforce international phone number format\",\n  // then always show country calling code in the input field.\n  if (!value && international && defaultCountry) {\n    return getInternationalPhoneNumberPrefix(defaultCountry, metadata);\n  }\n  return value;\n}\n\n// function doesIncompletePhoneNumberCorrespondToASingleCountry(value, metadata) {\n// \t// Create \"as you type\" formatter.\n// \tconst formatter = new AsYouType(undefined, metadata)\n// \t// Input partial national phone number.\n// \tformatter.input(value)\n// \t// Return the parsed partial national phone number.\n// \tconst phoneNumber = formatter.getNumber()\n// \tif (phoneNumber) {\n// \t\treturn phoneNumber.getPossibleCountries().length === 1\n// \t} else {\n// \t\treturn false\n// \t}\n// }\n//# sourceMappingURL=phoneInputHelpers.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { getInitialPhoneDigits, getCountryForPartialE164Number, parsePhoneNumber, couldNumberBelongToCountry } from './phoneInputHelpers.js';\nimport { validateE164Number } from './isE164Number.js';\nimport getInternationalPhoneNumberPrefix from './getInternationalPhoneNumberPrefix.js';\nimport { isCountrySupportedWithError, getSupportedCountries } from './countries.js';\nexport default function getPhoneInputWithCountryStateUpdateFromNewProps(props, prevProps, state) {\n  var metadata = props.metadata,\n    countries = props.countries,\n    newDefaultCountry = props.defaultCountry,\n    newValue = props.value,\n    newReset = props.reset,\n    international = props.international,\n    displayInitialValueAsLocalNumber = props.displayInitialValueAsLocalNumber,\n    initialValueFormat = props.initialValueFormat;\n  var prevDefaultCountry = prevProps.defaultCountry,\n    prevValue = prevProps.value,\n    prevReset = prevProps.reset;\n  var country = state.country,\n    value = state.value,\n    hasUserSelectedACountry = state.hasUserSelectedACountry,\n    latestCountrySelectedByUser = state.latestCountrySelectedByUser;\n  var _getInitialPhoneDigits = function _getInitialPhoneDigits(parameters) {\n    return getInitialPhoneDigits(_objectSpread(_objectSpread({}, parameters), {}, {\n      international: international,\n      useNationalFormat: displayInitialValueAsLocalNumber || initialValueFormat === 'national',\n      metadata: metadata\n    }));\n  };\n\n  // Some users requested a way to reset the component\n  // (both number `<input/>` and country `<select/>`).\n  // Whenever `reset` property changes both number `<input/>`\n  // and country `<select/>` are reset.\n  // It's not implemented as some instance `.reset()` method\n  // because `ref` is forwarded to `<input/>`.\n  // It's also not replaced with just resetting `country` on\n  // external `value` reset, because a user could select a country\n  // and then not input any `value`, and so the selected country\n  // would be \"stuck\", if not using this `reset` property.\n  // https://github.com/catamphetamine/react-phone-number-input/issues/300\n  if (newReset !== prevReset) {\n    return {\n      phoneDigits: _getInitialPhoneDigits({\n        value: undefined,\n        defaultCountry: newDefaultCountry\n      }),\n      value: undefined,\n      country: newDefaultCountry,\n      latestCountrySelectedByUser: undefined,\n      hasUserSelectedACountry: undefined\n    };\n  }\n\n  // `value` is the value currently shown in the component:\n  // it's stored in the component's `state`, and it's not the `value` property.\n  // `prevValue` is \"previous `value` property\".\n  // `newValue` is \"new `value` property\".\n\n  // If the default country changed\n  // (e.g. in case of ajax GeoIP detection after page loaded)\n  // then select it, but only if the user hasn't already manually\n  // selected a country, and no phone number has been manually entered so far.\n  // Because if the user has already started inputting a phone number\n  // then they're okay with no country being selected at all (\"International\")\n  // and they don't want to be disturbed, don't want their input to be screwed, etc.\n  if (newDefaultCountry !== prevDefaultCountry) {\n    var isNewDefaultCountrySupported = !newDefaultCountry || isCountrySupportedWithError(newDefaultCountry, metadata);\n    var noValueHasBeenEnteredByTheUser =\n    // By default, \"no value has been entered\" means `value` is `undefined`.\n    !value ||\n    // When `international` is `true`, and some country has been pre-selected,\n    // then the `<input/>` contains a pre-filled value of `+${countryCallingCode}${leadingDigits}`,\n    // so in case of `international` being `true`, \"the user hasn't entered anything\" situation\n    // doesn't just mean `value` is `undefined`, but could also mean `value` is `+${countryCallingCode}`.\n    international && value === _getInitialPhoneDigits({\n      value: undefined,\n      defaultCountry: prevDefaultCountry\n    });\n    // Only update the `defaultCountry` property if no phone number\n    // has been entered by the user or pre-set by the application.\n    var noValueHasBeenEntered = !newValue && noValueHasBeenEnteredByTheUser;\n    if (!hasUserSelectedACountry && isNewDefaultCountrySupported && noValueHasBeenEntered) {\n      return {\n        country: newDefaultCountry,\n        // If `phoneDigits` is empty, then automatically select the new `country`\n        // and set `phoneDigits` to `+{getCountryCallingCode(newCountry)}`.\n        // The code assumes that \"no phone number has been entered by the user\",\n        // and no `value` property has been passed, so the `phoneNumber` parameter\n        // of `_getInitialPhoneDigits({ value, phoneNumber, ... })` is `undefined`.\n        phoneDigits: _getInitialPhoneDigits({\n          value: undefined,\n          defaultCountry: newDefaultCountry\n        }),\n        // `value` is `undefined` and it stays so.\n        value: undefined\n      };\n    }\n  }\n\n  // If a new `value` is set externally.\n  // (e.g. as a result of an ajax API request\n  //  to get user's phone after page loaded)\n  // The first part — `newValue !== prevValue` —\n  // is basically `props.value !== prevProps.value`\n  // so it means \"if value property was changed externally\".\n  // The second part — `newValue !== value` —\n  // is for ignoring the `getDerivedStateFromProps()` call\n  // which happens in `this.onChange()` right after `this.setState()`.\n  // If this `getDerivedStateFromProps()` call isn't ignored\n  // then the country flag would reset on each input.\n  if (!valuesAreEqual(newValue, prevValue) && !valuesAreEqual(newValue, value)) {\n    var phoneNumber;\n    var parsedCountry;\n    if (newValue) {\n      // Validate that the newly-supplied `value` is in `E.164` format.\n      // Because sometimes people attempt to supply a `value` like \"+1 (879) 490-8676\".\n      // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/231#note_2016334796\n      if (newValue) {\n        validateE164Number(newValue);\n      }\n      phoneNumber = parsePhoneNumber(newValue, metadata);\n      var supportedCountries = getSupportedCountries(countries, metadata);\n      if (phoneNumber && phoneNumber.country) {\n        // Ignore `else` because all countries are supported in metadata.\n        /* istanbul ignore next */\n        if (!supportedCountries || supportedCountries.indexOf(phoneNumber.country) >= 0) {\n          parsedCountry = phoneNumber.country;\n        }\n      } else {\n        parsedCountry = getCountryForPartialE164Number(newValue, {\n          country: undefined,\n          countries: supportedCountries,\n          metadata: metadata\n        });\n\n        // In cases when multiple countries correspond to the same country calling code,\n        // the phone number digits of `newValue` have to be matched against country-specific\n        // regular expressions in order to determine the exact country.\n        // Sometimes, that algorithm can't decide for sure which country does the phone number belong to,\n        // for example when the digits of `newValue` don't match any of those regular expressions.\n        // and the country of the phone number couldn't be determined.\n        // In those cases, people prefer the component to show the flag of the `defaultCountry`\n        // if the phone number could potentially belong to that `defaultCountry`.\n        // At least that's how the component behaves when a user pastes an international\n        // phone number into the input field: for example, when `defaultCountry` is `\"US\"`\n        // and the user pastes value \"+1 555 555 5555\" into the input field, it keep showing \"US\" flag.\n        // So when setting new `value` property externally, the component should behave the same way:\n        // it should select the `defaultCountry` when the new `value` could potentially belong\n        // to that country in cases when the exact country can't be determined.\n        // https://github.com/catamphetamine/react-phone-number-input/issues/413#issuecomment-1536219404\n        if (!parsedCountry) {\n          if (newDefaultCountry) {\n            if (newValue.indexOf(getInternationalPhoneNumberPrefix(newDefaultCountry, metadata)) === 0) {\n              parsedCountry = newDefaultCountry;\n            }\n          }\n        }\n      }\n    }\n    var userCountrySelectionHistoryStateUpdate;\n    if (newValue) {\n      // If the latest country that has been manually selected by the user\n      // no longer corresponds to the new value then reset it.\n      if (latestCountrySelectedByUser) {\n        var couldNewValueCorrespondToLatestCountrySelectedByUser = parsedCountry ? latestCountrySelectedByUser === parsedCountry : couldNumberBelongToCountry(newValue, latestCountrySelectedByUser, metadata);\n        if (couldNewValueCorrespondToLatestCountrySelectedByUser) {\n          if (!parsedCountry) {\n            parsedCountry = latestCountrySelectedByUser;\n          }\n        } else {\n          userCountrySelectionHistoryStateUpdate = {\n            latestCountrySelectedByUser: undefined\n          };\n        }\n      }\n    } else {\n      // When the `value` property is being reset \"externally\",\n      // reset any tracking of the country that the user has previously selected.\n      userCountrySelectionHistoryStateUpdate = {\n        latestCountrySelectedByUser: undefined,\n        hasUserSelectedACountry: undefined\n      };\n    }\n    return _objectSpread(_objectSpread({}, userCountrySelectionHistoryStateUpdate), {}, {\n      phoneDigits: _getInitialPhoneDigits({\n        phoneNumber: phoneNumber,\n        value: newValue,\n        defaultCountry: newDefaultCountry\n      }),\n      value: newValue,\n      country: newValue ? parsedCountry : newDefaultCountry\n    });\n  }\n\n  // `defaultCountry` didn't change.\n  // `value` didn't change.\n  // `phoneDigits` didn't change, because `value` didn't change.\n  //\n  // So no need to update state.\n}\nexport function valuesAreEqual(value1, value2) {\n  // If `value` has been set to `null` externally then convert it to `undefined`.\n  //\n  // For example, `react-hook-form` sets `value` to `null` when the user clears the input.\n  // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/164\n  // In that case, without this conversion of `null` to `undefined`, it would reset\n  // the selected country to `defaultCountry` because in that case `newValue !== value`\n  // because `null !== undefined`.\n  //\n  // Historically, empty `value` is encoded as `undefined`.\n  // Perhaps empty `value` would be better encoded as `null` instead.\n  // But because that would be a potentially breaking change for some people,\n  // it's left as is for the current \"major\" version of this library.\n  //\n  if (value1 === null) {\n    value1 = undefined;\n  }\n  if (value2 === null) {\n    value2 = undefined;\n  }\n  return value1 === value2;\n}\n//# sourceMappingURL=getPhoneInputWithCountryStateUpdateFromNewProps.js.map","var _excluded = [\"name\", \"disabled\", \"readOnly\", \"autoComplete\", \"style\", \"className\", \"inputRef\", \"inputComponent\", \"numberInputProps\", \"smartCaret\", \"countrySelectComponent\", \"countrySelectProps\", \"containerComponent\", \"containerComponentProps\", \"defaultCountry\", \"countries\", \"countryOptionsOrder\", \"labels\", \"flags\", \"flagComponent\", \"flagUrl\", \"addInternationalOption\", \"internationalIcon\", \"displayInitialValueAsLocalNumber\", \"initialValueFormat\", \"onCountryChange\", \"limitMaxLength\", \"countryCallingCodeEditable\", \"focusInputOnCountrySelection\", \"reset\", \"metadata\", \"international\", \"locales\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport InputSmart from './InputSmart.js';\nimport InputBasic from './InputBasic.js';\nimport { CountrySelectWithIcon as CountrySelect } from './CountrySelect.js';\nimport Flag from './Flag.js';\nimport InternationalIcon from './InternationalIcon.js';\nimport { validateE164Number } from './helpers/isE164Number.js';\nimport { sortCountryOptions, isCountrySupportedWithError, getSupportedCountries, getSupportedCountryOptions, getCountries } from './helpers/countries.js';\nimport { createCountryIconComponent } from './CountryIcon.js';\nimport { setRefsValue } from './useExternalRef.js';\nimport { metadata as metadataPropType, labels as labelsPropType } from './PropTypes.js';\nimport { getPreSelectedCountry, getCountrySelectOptions as _getCountrySelectOptions, couldNumberBelongToCountry, parsePhoneNumber, generateNationalNumberDigits, getPhoneDigitsForNewCountry, getInitialPhoneDigits, onPhoneDigitsChange, e164 } from './helpers/phoneInputHelpers.js';\nimport getPhoneInputWithCountryStateUpdateFromNewProps from './helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js';\nvar PhoneNumberInput_ = /*#__PURE__*/function (_React$PureComponent) {\n  function PhoneNumberInput_(props) {\n    var _this;\n    _classCallCheck(this, PhoneNumberInput_);\n    _this = _callSuper(this, PhoneNumberInput_, [props]);\n    // This function mimicks `refSetter` function returned from `useExternalRef()` hook\n    // because this class-like React component can't use the `useExternalRef()` hook.\n    _defineProperty(_this, \"setInputRef\", function (instance) {\n      setRefsValue([_this.props.inputRef, _this.inputRef], instance);\n    });\n    // A shorthand for not passing `metadata` as a second argument.\n    _defineProperty(_this, \"isCountrySupportedWithError\", function (country) {\n      var metadata = _this.props.metadata;\n      return isCountrySupportedWithError(country, metadata);\n    });\n    // Country `<select/>` `onChange` handler.\n    _defineProperty(_this, \"onCountryChange\", function (newCountry) {\n      var _this$props = _this.props,\n        international = _this$props.international,\n        metadata = _this$props.metadata,\n        onChange = _this$props.onChange,\n        focusInputOnCountrySelection = _this$props.focusInputOnCountrySelection;\n      var _this$state = _this.state,\n        prevPhoneDigits = _this$state.phoneDigits,\n        prevCountry = _this$state.country;\n\n      // After the new `country` has been selected,\n      // if the phone number `<input/>` holds any digits\n      // then migrate those digits for the new `country`.\n      var newPhoneDigits = getPhoneDigitsForNewCountry(prevPhoneDigits, {\n        prevCountry: prevCountry,\n        newCountry: newCountry,\n        metadata: metadata,\n        // Convert the phone number to \"national\" format\n        // when the user changes the selected country by hand.\n        useNationalFormat: !international\n      });\n      var newValue = e164(newPhoneDigits, newCountry, metadata);\n\n      // Focus phone number `<input/>` upon country selection.\n      if (focusInputOnCountrySelection) {\n        _this.inputRef.current.focus();\n      }\n\n      // If the user has already manually selected a country\n      // then don't override that already selected country\n      // if the `defaultCountry` property changes.\n      // That's what `hasUserSelectedACountry` flag is for.\n\n      _this.setState({\n        country: newCountry,\n        latestCountrySelectedByUser: newCountry,\n        hasUserSelectedACountry: true,\n        phoneDigits: newPhoneDigits,\n        value: newValue\n      }, function () {\n        // Update the new `value` property.\n        // Doing it after the `state` has been updated\n        // because `onChange()` will trigger `getDerivedStateFromProps()`\n        // with the new `value` which will be compared to `state.value` there.\n        onChange(newValue);\n      });\n    });\n    /**\r\n     * `<input/>` `onChange()` handler.\r\n     * Updates `value` property accordingly (so that they are kept in sync).\r\n     * @param {string?} input — Either a parsed phone number or an empty string. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n     */\n    _defineProperty(_this, \"onChange\", function (_phoneDigits) {\n      var _this$props2 = _this.props,\n        defaultCountry = _this$props2.defaultCountry,\n        onChange = _this$props2.onChange,\n        addInternationalOption = _this$props2.addInternationalOption,\n        international = _this$props2.international,\n        limitMaxLength = _this$props2.limitMaxLength,\n        countryCallingCodeEditable = _this$props2.countryCallingCodeEditable,\n        metadata = _this$props2.metadata;\n      var _this$state2 = _this.state,\n        countries = _this$state2.countries,\n        prevPhoneDigits = _this$state2.phoneDigits,\n        currentlySelectedCountry = _this$state2.country,\n        latestCountrySelectedByUser = _this$state2.latestCountrySelectedByUser;\n      var _onPhoneDigitsChange = onPhoneDigitsChange(_phoneDigits, {\n          prevPhoneDigits: prevPhoneDigits,\n          country: currentlySelectedCountry,\n          countryRequired: !addInternationalOption,\n          defaultCountry: defaultCountry,\n          latestCountrySelectedByUser: latestCountrySelectedByUser,\n          getAnyCountry: function getAnyCountry() {\n            return _this.getFirstSupportedCountry({\n              countries: countries\n            });\n          },\n          countries: countries,\n          international: international,\n          limitMaxLength: limitMaxLength,\n          countryCallingCodeEditable: countryCallingCodeEditable,\n          metadata: metadata\n        }),\n        phoneDigits = _onPhoneDigitsChange.phoneDigits,\n        country = _onPhoneDigitsChange.country,\n        value = _onPhoneDigitsChange.value;\n      var stateUpdate = {\n        phoneDigits: phoneDigits,\n        value: value,\n        country: country\n      };\n\n      // Reset `latestCountrySelectedByUser` if it no longer fits the `value`.\n      if (latestCountrySelectedByUser && value && !couldNumberBelongToCountry(value, latestCountrySelectedByUser, metadata)) {\n        stateUpdate.latestCountrySelectedByUser = undefined;\n      }\n      if (countryCallingCodeEditable === false) {\n        // If it simply did `setState({ phoneDigits: intlPrefix })` here,\n        // then it would have no effect when erasing an inital international prefix\n        // via Backspace, because `phoneDigits` in `state` wouldn't change\n        // as a result, because it was `prefix` and it became `prefix`,\n        // so the component wouldn't rerender, and the user would be able\n        // to erase the country calling code part, and that part is\n        // assumed to be non-eraseable. That's why the component is\n        // forcefully rerendered here.\n        // https://github.com/catamphetamine/react-phone-number-input/issues/367#issuecomment-721703501\n        if (!value && phoneDigits === _this.state.phoneDigits) {\n          // Force a re-render of the `<input/>` in order to reset its value.\n          stateUpdate.forceRerender = {};\n        }\n      }\n      _this.setState(stateUpdate,\n      // Update the new `value` property.\n      // Doing it after the `state` has been updated\n      // because `onChange()` will trigger `getDerivedStateFromProps()`\n      // with the new `value` which will be compared to `state.value` there.\n      function () {\n        return onChange(value);\n      });\n    });\n    // Toggles the `--focus` CSS class.\n    _defineProperty(_this, \"_onFocus\", function () {\n      return _this.setState({\n        isFocused: true\n      });\n    });\n    // Toggles the `--focus` CSS class.\n    _defineProperty(_this, \"_onBlur\", function () {\n      return _this.setState({\n        isFocused: false\n      });\n    });\n    _defineProperty(_this, \"onFocus\", function (event) {\n      _this._onFocus();\n      var onFocus = _this.props.onFocus;\n      if (onFocus) {\n        onFocus(event);\n      }\n    });\n    _defineProperty(_this, \"onBlur\", function (event) {\n      var onBlur = _this.props.onBlur;\n      _this._onBlur();\n      if (onBlur) {\n        onBlur(event);\n      }\n    });\n    _defineProperty(_this, \"onCountryFocus\", function (event) {\n      _this._onFocus();\n      // this.setState({ countrySelectFocused: true })\n      var countrySelectProps = _this.props.countrySelectProps;\n      if (countrySelectProps) {\n        var onFocus = countrySelectProps.onFocus;\n        if (onFocus) {\n          onFocus(event);\n        }\n      }\n    });\n    _defineProperty(_this, \"onCountryBlur\", function (event) {\n      _this._onBlur();\n      // this.setState({ countrySelectFocused: false })\n      var countrySelectProps = _this.props.countrySelectProps;\n      if (countrySelectProps) {\n        var onBlur = countrySelectProps.onBlur;\n        if (onBlur) {\n          onBlur(event);\n        }\n      }\n    });\n    _this.inputRef = /*#__PURE__*/React.createRef();\n    var _this$props3 = _this.props,\n      _value = _this$props3.value,\n      labels = _this$props3.labels,\n      _international = _this$props3.international,\n      _addInternationalOption = _this$props3.addInternationalOption,\n      displayInitialValueAsLocalNumber = _this$props3.displayInitialValueAsLocalNumber,\n      initialValueFormat = _this$props3.initialValueFormat,\n      _metadata = _this$props3.metadata;\n    var _this$props4 = _this.props,\n      _defaultCountry = _this$props4.defaultCountry,\n      _countries = _this$props4.countries;\n\n    // Validate `defaultCountry`.\n    if (_defaultCountry) {\n      if (!_this.isCountrySupportedWithError(_defaultCountry)) {\n        _defaultCountry = undefined;\n      }\n    }\n\n    // Validate that the initially-supplied `value` is in `E.164` format.\n    // Because sometimes people attempt to supply a `value` like \"+1 (879) 490-8676\".\n    // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/231#note_2016334796\n    if (_value) {\n      validateE164Number(_value);\n    }\n\n    // Validate `countries`.\n    _countries = getSupportedCountries(_countries, _metadata);\n    var phoneNumber = parsePhoneNumber(_value, _metadata);\n    _this.CountryIcon = createCountryIconComponent(_this.props);\n    var preSelectedCountry = getPreSelectedCountry({\n      value: _value,\n      phoneNumber: phoneNumber,\n      defaultCountry: _defaultCountry,\n      required: !_addInternationalOption,\n      countries: _countries || getCountries(_metadata),\n      getAnyCountry: function getAnyCountry() {\n        return _this.getFirstSupportedCountry({\n          countries: _countries\n        });\n      },\n      metadata: _metadata\n    });\n    _this.state = {\n      // Workaround for `this.props` inside `getDerivedStateFromProps()`.\n      props: _this.props,\n      // The country selected.\n      country: preSelectedCountry,\n      // `countries` are stored in `this.state` because they're filtered.\n      // For example, a developer might theoretically pass some unsupported\n      // countries as part of the `countries` property, and because of that\n      // the component uses `this.state.countries` (which are filtered)\n      // instead of `this.props.countries`\n      // (which could potentially contain unsupported countries).\n      countries: _countries,\n      // `phoneDigits` state property holds non-formatted user's input.\n      // The reason is that there's no way of finding out\n      // in which form should `value` be displayed: international or national.\n      // E.g. if `value` is `+78005553535` then it could be input\n      // by a user both as `8 (800) 555-35-35` and `+7 800 555 35 35`.\n      // Hence storing just `value` is not sufficient for correct formatting.\n      // E.g. if a user entered `8 (800) 555-35-35`\n      // then value is `+78005553535` and `phoneDigits` are `88005553535`\n      // and if a user entered `+7 800 555 35 35`\n      // then value is `+78005553535` and `phoneDigits` are `+78005553535`.\n      phoneDigits: getInitialPhoneDigits({\n        value: _value,\n        phoneNumber: phoneNumber,\n        defaultCountry: _defaultCountry,\n        international: _international,\n        useNationalFormat: displayInitialValueAsLocalNumber || initialValueFormat === 'national',\n        metadata: _metadata\n      }),\n      // `value` property is duplicated in state.\n      // The reason is that `getDerivedStateFromProps()`\n      // needs this `value` to compare to the new `value` property\n      // to find out if `phoneDigits` needs updating:\n      // If the `value` property was changed externally\n      // then it won't be equal to `state.value`\n      // in which case `phoneDigits` and `country` should be updated.\n      value: _value\n    };\n    return _this;\n  }\n  _inherits(PhoneNumberInput_, _React$PureComponent);\n  return _createClass(PhoneNumberInput_, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var onCountryChange = this.props.onCountryChange;\n      var defaultCountry = this.props.defaultCountry;\n      var selectedCountry = this.state.country;\n      if (onCountryChange) {\n        if (defaultCountry) {\n          if (!this.isCountrySupportedWithError(defaultCountry)) {\n            defaultCountry = undefined;\n          }\n        }\n        if (selectedCountry !== defaultCountry) {\n          onCountryChange(selectedCountry);\n        }\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps, prevState) {\n      var onCountryChange = this.props.onCountryChange;\n      var country = this.state.country;\n      // Call `onCountryChange` when user selects another country.\n      if (onCountryChange && country !== prevState.country) {\n        onCountryChange(country);\n      }\n    }\n  }, {\n    key: \"getCountrySelectOptions\",\n    value: function getCountrySelectOptions(_ref) {\n      var countries = _ref.countries;\n      var _this$props5 = this.props,\n        international = _this$props5.international,\n        countryCallingCodeEditable = _this$props5.countryCallingCodeEditable,\n        countryOptionsOrder = _this$props5.countryOptionsOrder,\n        addInternationalOption = _this$props5.addInternationalOption,\n        labels = _this$props5.labels,\n        locales = _this$props5.locales,\n        metadata = _this$props5.metadata;\n      return this.useMemoCountrySelectOptions(function () {\n        return sortCountryOptions(_getCountrySelectOptions({\n          countries: countries || getCountries(metadata),\n          countryNames: labels,\n          addInternationalOption: international && countryCallingCodeEditable === false ? false : addInternationalOption,\n          compareStringsLocales: locales\n          // compareStrings\n        }), getSupportedCountryOptions(countryOptionsOrder, metadata));\n      }, [countries, countryOptionsOrder, addInternationalOption, labels, metadata]);\n    }\n  }, {\n    key: \"useMemoCountrySelectOptions\",\n    value: function useMemoCountrySelectOptions(generator, dependencies) {\n      if (!this.countrySelectOptionsMemoDependencies || !areEqualArrays(dependencies, this.countrySelectOptionsMemoDependencies)) {\n        this.countrySelectOptionsMemo = generator();\n        this.countrySelectOptionsMemoDependencies = dependencies;\n      }\n      return this.countrySelectOptionsMemo;\n    }\n  }, {\n    key: \"getFirstSupportedCountry\",\n    value: function getFirstSupportedCountry(_ref2) {\n      var countries = _ref2.countries;\n      var countryOptions = this.getCountrySelectOptions({\n        countries: countries\n      });\n      return countryOptions[0].value;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props6 = this.props,\n        name = _this$props6.name,\n        disabled = _this$props6.disabled,\n        readOnly = _this$props6.readOnly,\n        autoComplete = _this$props6.autoComplete,\n        style = _this$props6.style,\n        className = _this$props6.className,\n        inputRef = _this$props6.inputRef,\n        inputComponent = _this$props6.inputComponent,\n        numberInputProps = _this$props6.numberInputProps,\n        smartCaret = _this$props6.smartCaret,\n        CountrySelectComponent = _this$props6.countrySelectComponent,\n        countrySelectProps = _this$props6.countrySelectProps,\n        ContainerComponent = _this$props6.containerComponent,\n        containerComponentProps = _this$props6.containerComponentProps,\n        defaultCountry = _this$props6.defaultCountry,\n        countriesProperty = _this$props6.countries,\n        countryOptionsOrder = _this$props6.countryOptionsOrder,\n        labels = _this$props6.labels,\n        flags = _this$props6.flags,\n        flagComponent = _this$props6.flagComponent,\n        flagUrl = _this$props6.flagUrl,\n        addInternationalOption = _this$props6.addInternationalOption,\n        internationalIcon = _this$props6.internationalIcon,\n        displayInitialValueAsLocalNumber = _this$props6.displayInitialValueAsLocalNumber,\n        initialValueFormat = _this$props6.initialValueFormat,\n        onCountryChange = _this$props6.onCountryChange,\n        limitMaxLength = _this$props6.limitMaxLength,\n        countryCallingCodeEditable = _this$props6.countryCallingCodeEditable,\n        focusInputOnCountrySelection = _this$props6.focusInputOnCountrySelection,\n        reset = _this$props6.reset,\n        metadata = _this$props6.metadata,\n        international = _this$props6.international,\n        locales = _this$props6.locales,\n        rest = _objectWithoutProperties(_this$props6, _excluded);\n      var _this$state3 = this.state,\n        country = _this$state3.country,\n        countries = _this$state3.countries,\n        phoneDigits = _this$state3.phoneDigits,\n        isFocused = _this$state3.isFocused;\n      var InputComponent = smartCaret ? InputSmart : InputBasic;\n      var countrySelectOptions = this.getCountrySelectOptions({\n        countries: countries\n      });\n      return /*#__PURE__*/React.createElement(ContainerComponent, _extends({\n        style: style,\n        className: classNames(className, 'PhoneInput', {\n          'PhoneInput--focus': isFocused,\n          'PhoneInput--disabled': disabled,\n          'PhoneInput--readOnly': readOnly\n        })\n      }, containerComponentProps), /*#__PURE__*/React.createElement(CountrySelectComponent, _extends({\n        name: name ? \"\".concat(name, \"Country\") : undefined,\n        \"aria-label\": labels.country\n      }, countrySelectProps, {\n        value: country,\n        options: countrySelectOptions,\n        onChange: this.onCountryChange,\n        onFocus: this.onCountryFocus,\n        onBlur: this.onCountryBlur,\n        disabled: disabled || countrySelectProps && countrySelectProps.disabled,\n        readOnly: readOnly || countrySelectProps && countrySelectProps.readOnly,\n        iconComponent: this.CountryIcon\n      })), /*#__PURE__*/React.createElement(InputComponent, _extends({\n        ref: this.setInputRef,\n        type: \"tel\",\n        autoComplete: autoComplete\n      }, numberInputProps, rest, {\n        inputFormat: international === true ? 'INTERNATIONAL' : international === false ? 'NATIONAL' : 'INTERNATIONAL_OR_NATIONAL',\n        international: international ? true : undefined,\n        withCountryCallingCode: international ? true : undefined,\n        name: name,\n        metadata: metadata,\n        country: country,\n        value: phoneDigits || '',\n        onChange: this.onChange,\n        onFocus: this.onFocus,\n        onBlur: this.onBlur,\n        disabled: disabled,\n        readOnly: readOnly,\n        inputComponent: inputComponent,\n        className: classNames('PhoneInputInput', numberInputProps && numberInputProps.className, rest.className)\n      })));\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value:\n    // `state` holds previous props as `props`, and also:\n    // * `country` — The currently selected country, e.g. `\"RU\"`.\n    // * `value` — The currently entered phone number (E.164), e.g. `+78005553535`.\n    // * `phoneDigits` — The parsed `<input/>` value, e.g. `8005553535`.\n    // (and a couple of other less significant properties)\n    function getDerivedStateFromProps(props, state) {\n      return _objectSpread({\n        // Emulate `prevProps` via `state.props`.\n        props: props\n      }, getPhoneInputWithCountryStateUpdateFromNewProps(props, state.props, state));\n    }\n  }]);\n}(React.PureComponent); // This wrapper is only to `.forwardRef()` to the `<input/>`.\nvar PhoneNumberInput = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(PhoneNumberInput_, _extends({}, withDefaultProps(props), {\n    inputRef: ref\n  }));\n});\nPhoneNumberInput.propTypes = {\n  /**\r\n   * Phone number in `E.164` format.\r\n   *\r\n   * Example:\r\n   *\r\n   * `\"+12223333333\"`\r\n   *\r\n   * Any \"falsy\" value like `undefined`, `null` or an empty string `\"\"` is treated like \"empty\".\r\n   */\n  value: PropTypes.string,\n  /**\r\n   * A function of `value: string?`.\r\n   *\r\n   * Updates the `value` property as the user inputs a phone number.\r\n   *\r\n   * If the user erases the input value, the argument is `undefined`.\r\n   */\n  onChange: PropTypes.func.isRequired,\n  /**\r\n   * Toggles the `--focus` CSS class.\r\n   * @ignore\r\n   */\n  onFocus: PropTypes.func,\n  /**\r\n   * `onBlur` is usually passed by `redux-form`.\r\n   * @ignore\r\n   */\n  onBlur: PropTypes.func,\n  /**\r\n   * Set to `true` to mark both the phone number `<input/>`\r\n   * and the country `<select/>` as `disabled`.\r\n   */\n  disabled: PropTypes.bool,\n  /**\r\n   * Set to `true` to mark both the phone number `<input/>`\r\n   * and the country `<select/>` as `readonly`.\r\n   */\n  readOnly: PropTypes.bool,\n  /**\r\n   * Sets `autoComplete` property for phone number `<input/>`.\r\n   *\r\n   * Web browser's \"autocomplete\" feature\r\n   * remembers the phone number being input\r\n   * and can also autofill the `<input/>`\r\n   * with previously remembered phone numbers.\r\n   *\r\n   * https://developers.google.com\r\n   * /web/updates/2015/06/checkout-faster-with-autofill\r\n   *\r\n   * For example, can be used to turn it off:\r\n   *\r\n   * \"So when should you use `autocomplete=\"off\"`?\r\n   *  One example is when you've implemented your own version\r\n   *  of autocomplete for search. Another example is any form field\r\n   *  where users will input and submit different kinds of information\r\n   *  where it would not be useful to have the browser remember\r\n   *  what was submitted previously\".\r\n   */\n  // (is `\"tel\"` by default)\n  autoComplete: PropTypes.string,\n  /**\r\n   * Set to `\"national\"` to show the initial `value` in\r\n   * \"national\" format rather than \"international\".\r\n   *\r\n   * For example, if `initialValueFormat` is `\"national\"`\r\n   * and the initial `value=\"+12133734253\"` is passed\r\n   * then the `<input/>` value will be `\"(213) 373-4253\"`.\r\n   *\r\n   * By default, `initialValueFormat` is `undefined`,\r\n   * meaning that if the initial `value=\"+12133734253\"` is passed\r\n   * then the `<input/>` value will be `\"+1 213 373 4253\"`.\r\n   *\r\n   * The reason for such default behaviour is that\r\n   * the newer generation grows up when there are no stationary phones\r\n   * and therefore everyone inputs phone numbers in international format\r\n   * in their smartphones so people gradually get more accustomed to\r\n   * writing phone numbers in international format rather than in local format.\r\n   * Future people won't be using \"national\" format, only \"international\".\r\n   */\n  // (is `undefined` by default)\n  initialValueFormat: PropTypes.oneOf(['national']),\n  // `displayInitialValueAsLocalNumber` property has been\n  // superceded by `initialValueFormat` property.\n  displayInitialValueAsLocalNumber: PropTypes.bool,\n  /**\r\n   * The country to be selected by default.\r\n   * For example, can be set after a GeoIP lookup.\r\n   *\r\n   * Example: `\"US\"`.\r\n   */\n  // A two-letter country code (\"ISO 3166-1 alpha-2\").\n  defaultCountry: PropTypes.string,\n  /**\r\n   * If specified, only these countries will be available for selection.\r\n   *\r\n   * Example:\r\n   *\r\n   * `[\"RU\", \"UA\", \"KZ\"]`\r\n   */\n  countries: PropTypes.arrayOf(PropTypes.string),\n  /**\r\n   * Custom country `<select/>` option names.\r\n   * Also some labels like \"ext\" and country `<select/>` `aria-label`.\r\n   *\r\n   * Example:\r\n   *\r\n   * `{ \"ZZ\": \"Международный\", RU: \"Россия\", US: \"США\", ... }`\r\n   *\r\n   * See the `locales` directory for examples.\r\n   */\n  labels: labelsPropType,\n  /**\r\n   * Country `<select/>` options are sorted by their labels.\r\n   * The default sorting function uses `a.localeCompare(b, locales)`,\r\n   * and, if that's not available, falls back to simple `a > b` / `a < b`.\r\n   * Some languages, like Chinese, support multiple sorting variants\r\n   * (called \"collations\"), and the user might prefer one or another.\r\n   * Also, sometimes the Operating System language is not always\r\n   * the preferred language for a person using a website or an application,\r\n   * so there should be a way to specify custom locale.\r\n   * This `locales` property mimicks the `locales` argument of `Intl` constructors,\r\n   * and can be either a Unicode BCP 47 locale identifier or an array of such locale identifiers.\r\n   * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument\r\n   */\n  locales: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n  /*\r\n   * Custom country `<select/>` options sorting function.\r\n   * The default one uses `a.localeCompare(b)`, and,\r\n   * if that's not available, falls back to simple `a > b`/`a < b`.\r\n   * There have been requests to add custom sorter for cases\r\n   * like Chinese language and \"pinyin\" (non-default) sorting order.\r\n   * https://stackoverflow.com/questions/22907288/chinese-sorting-by-pinyin-in-javascript-with-localecompare\r\n  compareStrings: PropTypes.func,\r\n   */\n\n  /**\r\n   * A URL template of a country flag, where\r\n   * \"{XX}\" is a two-letter country code in upper case,\r\n   * or where \"{xx}\" is a two-letter country code in lower case.\r\n   * By default it points to `country-flag-icons` gitlab pages website.\r\n   * I imagine someone might want to download those country flag icons\r\n   * and host them on their own servers instead\r\n   * (all flags are available in the `country-flag-icons` library).\r\n   * There's a catch though: new countries may be added in future,\r\n   * so when hosting country flag icons on your own server\r\n   * one should check the `CHANGELOG.md` every time before updating this library,\r\n   * otherwise there's a possibility that some new country flag would be missing.\r\n   */\n  flagUrl: PropTypes.string,\n  /**\r\n   * Custom country flag icon components.\r\n   * These flags will be used instead of the default ones.\r\n   * The the \"Flags\" section of the readme for more info.\r\n   *\r\n   * The shape is an object where keys are country codes\r\n   * and values are flag icon components.\r\n   * Flag icon components receive the same properties\r\n   * as `flagComponent` (see below).\r\n   *\r\n   * Example:\r\n   *\r\n   * `{ \"RU\": (props) => <img src=\"...\"/> }`\r\n   *\r\n   * Example:\r\n   *\r\n   * `import flags from 'country-flag-icons/react/3x2'`\r\n   *\r\n   * `import PhoneInput from 'react-phone-number-input'`\r\n   *\r\n   * `<PhoneInput flags={flags} .../>`\r\n   */\n  flags: PropTypes.objectOf(PropTypes.elementType),\n  /**\r\n   * Country flag icon component.\r\n   *\r\n   * Takes properties:\r\n   *\r\n   * * `country: string` — The country code.\r\n   * * `countryName: string` — The country name.\r\n   * * `flagUrl: string` — The `flagUrl` property (see above).\r\n   * * `flags: object` — The `flags` property (see above).\r\n   */\n  flagComponent: PropTypes.elementType,\n  /**\r\n   * Set to `false` to remove the \"International\" option from country `<select/>`.\r\n   */\n  addInternationalOption: PropTypes.bool,\n  /**\r\n   * \"International\" icon component.\r\n   * Should have the same aspect ratio.\r\n   *\r\n   * Receives properties:\r\n   *\r\n   * * `title: string` — \"International\" country option label.\r\n   */\n  internationalIcon: PropTypes.elementType,\n  /**\r\n   * Can be used to place some countries on top of the list of country `<select/>` options.\r\n   *\r\n   * * `\"XX\"` — inserts an option for \"XX\" country.\r\n   * * `\"🌐\"` — inserts \"International\" option.\r\n   * * `\"|\"` — inserts a separator.\r\n   * * `\"...\"` — inserts options for the rest of the countries (can be omitted, in which case it will be automatically added at the end).\r\n   *\r\n   * Example:\r\n   *\r\n   * `[\"US\", \"CA\", \"AU\", \"|\", \"...\"]`\r\n   */\n  countryOptionsOrder: PropTypes.arrayOf(PropTypes.string),\n  /**\r\n   * `<Phone/>` component CSS style object.\r\n   */\n  style: PropTypes.object,\n  /**\r\n   * `<Phone/>` component CSS class.\r\n   */\n  className: PropTypes.string,\n  /**\r\n   * Country `<select/>` component.\r\n   *\r\n   * Receives properties:\r\n   *\r\n   * * `name: string?` — HTML `name` attribute.\r\n   * * `value: string?` — The currently selected country code.\r\n   * * `onChange(value: string?)` — Updates the `value`.\r\n   * * `onFocus()` — Is used to toggle the `--focus` CSS class.\r\n   * * `onBlur()` — Is used to toggle the `--focus` CSS class.\r\n   * * `options: object[]` — The list of all selectable countries (including \"International\") each being an object of shape `{ value: string?, label: string }`.\r\n   * * `iconComponent: PropTypes.elementType` — React component that renders a country icon: `<Icon country={value}/>`. If `country` is `undefined` then it renders an \"International\" icon.\r\n   * * `disabled: boolean?` — HTML `disabled` attribute.\r\n   * * `readOnly: boolean?` — HTML `readOnly` attribute.\r\n   * * `tabIndex: (number|string)?` — HTML `tabIndex` attribute.\r\n   * * `className: string` — CSS class name.\r\n   */\n  countrySelectComponent: PropTypes.elementType,\n  /**\r\n   * Country `<select/>` component props.\r\n   * Along with the usual DOM properties such as `aria-label` and `tabIndex`,\r\n   * some custom properties are supported, such as `arrowComponent` and `unicodeFlags`.\r\n   */\n  countrySelectProps: PropTypes.object,\n  /**\r\n   * Phone number `<input/>` component.\r\n   *\r\n   * Receives properties:\r\n   *\r\n   * * `value: string` — The formatted `value`.\r\n   * * `onChange(event: Event)` — Updates the formatted `value` from `event.target.value`.\r\n   * * `onFocus()` — Is used to toggle the `--focus` CSS class.\r\n   * * `onBlur()` — Is used to toggle the `--focus` CSS class.\r\n   * * Other properties like `type=\"tel\"` or `autoComplete=\"tel\"` that should be passed through to the DOM `<input/>`.\r\n   *\r\n   * Must also either use `React.forwardRef()` to \"forward\" `ref` to the `<input/>` or implement `.focus()` method.\r\n   */\n  inputComponent: PropTypes.elementType,\n  /**\r\n   * Phone number `<input/>` component props.\r\n   */\n  numberInputProps: PropTypes.object,\n  /**\r\n   * Wrapping `<div/>` component.\r\n   *\r\n   * Receives properties:\r\n   *\r\n   * * `style: object` — A component CSS style object.\r\n   * * `className: string` — Classes to attach to the component, typically changes when component focuses or blurs.\r\n   */\n  containerComponent: PropTypes.elementType,\n  /**\r\n   * Wrapping `<div/>` component props.\r\n   */\n  containerComponentProps: PropTypes.object,\n  /**\r\n   * When the user attempts to insert a digit somewhere in the middle of a phone number,\r\n   * the caret position is moved right before the next available digit skipping\r\n   * any punctuation in between. This is called \"smart\" caret positioning.\r\n   * Another case would be the phone number format changing as a result of\r\n   * the user inserting the digit somewhere in the middle, which would require\r\n   * re-positioning the caret because all digit positions have changed.\r\n   * This \"smart\" caret positioning feature can be turned off by passing\r\n   * `smartCaret={false}` property: use it in case of any possible issues\r\n   * with caret position during phone number input.\r\n   */\n  // Is `true` by default.\n  smartCaret: PropTypes.bool,\n  /**\r\n   * Set to `true` to force \"international\" phone number format.\r\n   * Set to `false` to force \"national\" phone number format.\r\n   * By default it's `undefined` meaning that it doesn't enforce any phone number format:\r\n   * the user can input their phone number in either \"national\" or \"international\" format.\r\n   */\n  international: PropTypes.bool,\n  /**\r\n   * If set to `true`, the phone number input will get trimmed\r\n   * if it exceeds the maximum length for the country.\r\n   */\n  limitMaxLength: PropTypes.bool,\n  /**\r\n   * If set to `false`, and `international` is `true`, then\r\n   * users won't be able to erase the \"country calling part\"\r\n   * of a phone number in the `<input/>`.\r\n   */\n  countryCallingCodeEditable: PropTypes.bool,\n  /**\r\n   * `libphonenumber-js` metadata.\r\n   *\r\n   * Can be used to pass custom `libphonenumber-js` metadata\r\n   * to reduce the overall bundle size for those who compile \"custom\" metadata.\r\n   */\n  metadata: metadataPropType,\n  /**\r\n   * Is called every time the selected country changes:\r\n   * either programmatically or when user selects it manually from the list.\r\n   */\n  // People have been asking for a way to get the selected country.\n  // @see  https://github.com/catamphetamine/react-phone-number-input/issues/128\n  // For some it's just a \"business requirement\".\n  // I guess it's about gathering as much info on the user as a website can\n  // without introducing any addional fields that would complicate the form\n  // therefore reducing \"conversion\" (that's a marketing term).\n  // Assuming that the phone number's country is the user's country\n  // is not 100% correct but in most cases I guess it's valid.\n  onCountryChange: PropTypes.func,\n  /**\r\n   * If set to `false`, will not focus the `<input/>` component\r\n   * when the user selects a country from the list of countries.\r\n   * This can be used to conform to the Web Content Accessibility Guidelines (WCAG).\r\n   * Quote:\r\n   * \"On input: Changing the setting of any user interface component\r\n   *  does not automatically cause a change of context unless the user\r\n   *  has been advised of the behaviour before using the component.\"\r\n   */\n  focusInputOnCountrySelection: PropTypes.bool\n};\nvar defaultProps = {\n  /**\r\n   * Remember (and autofill) the value as a phone number.\r\n   */\n  autoComplete: 'tel',\n  /**\r\n   * Country `<select/>` component.\r\n   */\n  countrySelectComponent: CountrySelect,\n  /**\r\n   * Flag icon component.\r\n   */\n  flagComponent: Flag,\n  /**\r\n   * By default, uses icons from `country-flag-icons` gitlab pages website.\r\n   */\n  // Must be equal to `flagUrl` in `./CountryIcon.js`.\n  flagUrl: 'https://purecatamphetamine.github.io/country-flag-icons/3x2/{XX}.svg',\n  /**\r\n   * Default \"International\" country `<select/>` option icon.\r\n   */\n  internationalIcon: InternationalIcon,\n  /**\r\n   * Phone number `<input/>` component.\r\n   */\n  inputComponent: 'input',\n  /**\r\n   * Wrapping `<div/>` component.\r\n   */\n  containerComponent: 'div',\n  /**\r\n   * Some users requested a way to reset the component:\r\n   * both number `<input/>` and country `<select/>`.\r\n   * Whenever `reset` property changes both number `<input/>`\r\n   * and country `<select/>` are reset.\r\n   * It's not implemented as some instance `.reset()` method\r\n   * because `ref` is forwarded to `<input/>`.\r\n   * It's also not replaced with just resetting `country` on\r\n   * external `value` reset, because a user could select a country\r\n   * and then not input any `value`, and so the selected country\r\n   * would be \"stuck\", if not using this `reset` property.\r\n   */\n  // https://github.com/catamphetamine/react-phone-number-input/issues/300\n  reset: PropTypes.any,\n  /**\r\n   *\r\n   */\n\n  /**\r\n   * Set to `false` to use \"basic\" caret instead of the \"smart\" one.\r\n   */\n  smartCaret: true,\n  /**\r\n   * Whether to add the \"International\" option\r\n   * to the list of countries.\r\n   */\n  addInternationalOption: true,\n  /**\r\n   * If set to `false`, and `international` is `true`, then\r\n   * users won't be able to erase the \"country calling part\"\r\n   * of a phone number in the `<input/>`.\r\n   */\n  countryCallingCodeEditable: true,\n  /**\r\n   * If set to `false`, will not focus the `<input/>` component\r\n   * when the user selects a country from the list of countries.\r\n   * This can be used to conform to the Web Content Accessibility Guidelines (WCAG).\r\n   * Quote:\r\n   * \"On input: Changing the setting of any user interface component\r\n   *  does not automatically cause a change of context unless the user\r\n   *  has been advised of the behaviour before using the component.\"\r\n   */\n  focusInputOnCountrySelection: true\n};\nfunction withDefaultProps(props) {\n  props = _objectSpread({}, props);\n  for (var key in defaultProps) {\n    if (props[key] === undefined) {\n      props[key] = defaultProps[key];\n    }\n  }\n  return props;\n}\nexport default PhoneNumberInput;\nfunction areEqualArrays(a, b) {\n  if (a.length !== b.length) {\n    return false;\n  }\n  var i = 0;\n  while (i < a.length) {\n    if (a[i] !== b[i]) {\n      return false;\n    }\n    i++;\n  }\n  return true;\n}\n//# sourceMappingURL=PhoneInputWithCountry.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { useRef, useState, useCallback, useEffect } from 'react';\nimport { AsYouType, getCountryCallingCode, parseDigits } from 'libphonenumber-js/core';\nimport getInternationalPhoneNumberPrefix from './helpers/getInternationalPhoneNumberPrefix.js';\nimport { validateE164Number } from './helpers/isE164Number.js';\nimport { removePrefixFromFormattedPhoneNumber } from './helpers/inputValuePrefix.js';\n\n/**\r\n * Returns `[phoneDigits, setPhoneDigits]`.\r\n * \"Phone digits\" includes not only \"digits\" but also a `+` sign.\r\n */\nexport default function usePhoneDigits(_ref) {\n  var _this = this;\n  var value = _ref.value,\n    onChange = _ref.onChange,\n    country = _ref.country,\n    defaultCountry = _ref.defaultCountry,\n    international = _ref.international,\n    withCountryCallingCode = _ref.withCountryCallingCode,\n    useNationalFormatForDefaultCountryValue = _ref.useNationalFormatForDefaultCountryValue,\n    metadata = _ref.metadata;\n  // Validate the use of `withCountryCallingCode` property.\n  if (typeof withCountryCallingCode === 'boolean' && !(country && international)) {\n    console.error('[react-phone-number-input] `withCountryCallingCode` property can only be used together with `country` and `international` properties');\n  }\n\n  // Validate the use of `country` and `defaultCountry` properties.\n  if (country && defaultCountry) {\n    console.error('[react-phone-number-input] When `country` property is passed, `defaultCountry` property has no effect and therefore shouldn\\'t be passed');\n  }\n\n  // Validate the use of `international` property.\n  if (typeof international === 'boolean' && !country) {\n    console.error('[react-phone-number-input] `international` property can only be used together with `country` property');\n  }\n  var inputFormat = getInputFormat({\n    international: international,\n    country: country,\n    defaultCountry: defaultCountry,\n    withCountryCallingCode: withCountryCallingCode\n  });\n  var countryMismatchDetected = useRef();\n  var onCountryMismatch = function onCountryMismatch(value, country, actualCountry) {\n    console.error(\"[react-phone-number-input] Expected phone number \".concat(value, \" to correspond to country \").concat(country, \" but \").concat(actualCountry ? 'in reality it corresponds to country ' + actualCountry : 'it doesn\\'t', \".\"));\n    countryMismatchDetected.current = true;\n  };\n  var getInitialPhoneDigits = function getInitialPhoneDigits(options) {\n    // Validate that the initially-supplied `value` is in `E.164` format.\n    // Because sometimes people attempt to supply a `value` like \"+1 (879) 490-8676\".\n    // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/231#note_2016334796\n    if (value) {\n      validateE164Number(value);\n    }\n    return getPhoneDigitsForValue(value, country, defaultCountry, inputFormat, useNationalFormatForDefaultCountryValue, metadata, function () {\n      if (options && options.onCountryMismatch) {\n        options.onCountryMismatch();\n      }\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      onCountryMismatch.apply(_this, args);\n    });\n  };\n\n  // This is only used to detect `country` property change.\n  var _useState = useState(country),\n    _useState2 = _slicedToArray(_useState, 2),\n    prevCountry = _useState2[0],\n    setPrevCountry = _useState2[1];\n\n  // This is only used to detect `defaultCountry` property change.\n  var _useState3 = useState(defaultCountry),\n    _useState4 = _slicedToArray(_useState3, 2),\n    prevDefaultCountry = _useState4[0],\n    setPrevDefaultCountry = _useState4[1];\n\n  // `phoneDigits` is the a property that gets passed to the `<input/>` component as its \"value\":\n  // * `phoneDigits` is the `<input value/>` property.\n  // * `value` is the `<PhoneInput value/>` property.\n  var _useState5 = useState(getInitialPhoneDigits()),\n    _useState6 = _slicedToArray(_useState5, 2),\n    phoneDigits = _useState6[0],\n    setPhoneDigits = _useState6[1];\n\n  // This is only used to detect `value` property changes.\n  var _useState7 = useState(value),\n    _useState8 = _slicedToArray(_useState7, 2),\n    valueForPhoneDigits = _useState8[0],\n    setValueForPhoneDigits = _useState8[1];\n\n  // Rerender hack.\n  var _useState9 = useState(),\n    _useState10 = _slicedToArray(_useState9, 2),\n    rerenderTrigger = _useState10[0],\n    setRerenderTrigger = _useState10[1];\n  var rerender = useCallback(function () {\n    return setRerenderTrigger({});\n  }, [setRerenderTrigger]);\n  function getValueForPhoneDigits(phoneDigits) {\n    // If the user hasn't input any digits then `value` is `undefined`.\n    if (!phoneDigits) {\n      return;\n    }\n    if (inputFormat === 'NATIONAL_PART_OF_INTERNATIONAL') {\n      phoneDigits = \"+\".concat(getCountryCallingCode(country, metadata)).concat(phoneDigits);\n    }\n    // Return the E.164 phone number value.\n    //\n    // Even if no \"national (significant) number\" digits have been input,\n    // still return a non-`undefined` value.\n    // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/113\n    //\n    // For example, if the user has selected country `US` and entered `\"1\"`\n    // then that `\"1\"` is just a \"national prefix\" and no \"national (significant) number\"\n    // digits have been input yet. Still, return `\"+1\"` as `value` in such cases,\n    // because otherwise the app would think that the input is empty and mark it as such\n    // while in reality it isn't empty, which might be thought of as a \"bug\", or just\n    // a \"weird\" behavior.\n    //\n    // The only case when there's any input and `getNumberValue()` still returns `undefined`\n    // is when that input is `\"+\"`.\n    //\n    var asYouType = new AsYouType(country || defaultCountry, metadata);\n    asYouType.input(phoneDigits);\n    return asYouType.getNumberValue();\n  }\n\n  // If `value` property has been changed externally\n  // then re-initialize the component.\n  useEffect(function () {\n    if (value !== valueForPhoneDigits) {\n      setValueForPhoneDigits(value);\n      setPhoneDigits(getInitialPhoneDigits());\n    }\n  }, [value]);\n\n  // If the `country` has been changed then re-initialize the component.\n  useEffect(function () {\n    if (country !== prevCountry) {\n      setPrevCountry(country);\n      var _countryMismatchDetected;\n      var _phoneDigits = getInitialPhoneDigits({\n        onCountryMismatch: function onCountryMismatch() {\n          _countryMismatchDetected = true;\n        }\n      });\n      setPhoneDigits(_phoneDigits);\n      if (_countryMismatchDetected) {\n        setValueForPhoneDigits(getValueForPhoneDigits(_phoneDigits));\n      }\n    }\n  }, [country]);\n\n  // If the `defaultCountry` has been changed then re-initialize the component.\n  useEffect(function () {\n    if (defaultCountry !== prevDefaultCountry) {\n      setPrevDefaultCountry(defaultCountry);\n      setPhoneDigits(getInitialPhoneDigits());\n    }\n  }, [defaultCountry]);\n\n  // Update the `value` after `valueForPhoneDigits` has been updated.\n  useEffect(function () {\n    if (valueForPhoneDigits !== value) {\n      onChange(valueForPhoneDigits);\n    }\n  }, [valueForPhoneDigits]);\n  var onSetPhoneDigits = useCallback(function (phoneDigits) {\n    var value;\n    if (country) {\n      if (inputFormat === 'INTERNATIONAL') {\n        // The `<input/>` value must start with the country calling code.\n        var prefix = getInternationalPhoneNumberPrefix(country, metadata);\n        if (phoneDigits.indexOf(prefix) !== 0) {\n          // If a user tabs into a phone number input field\n          // that is in `withCountryCallingCode` mode,\n          // and then starts inputting local phone number digits,\n          // the first digit would get \"swallowed\" if the fix below wasn't implemented.\n          // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/43\n          if (phoneDigits && phoneDigits[0] !== '+') {\n            phoneDigits = prefix + phoneDigits;\n          } else {\n            // // Reset phone digits if they don't start with the correct prefix.\n            // // Undo the `<input/>` value change if it doesn't.\n            if (countryMismatchDetected.current) {\n              // In case of a `country`/`value` mismatch,\n              // if it performed an \"undo\" here, then\n              // it wouldn't let a user edit their phone number at all,\n              // so this special case at least allows phone number editing\n              // when `value` already doesn't match the `country`.\n            } else {\n              // If it simply did `phoneDigits = prefix` here,\n              // then it could have no effect when erasing phone number\n              // via Backspace, because `phoneDigits` in `state` wouldn't change\n              // as a result, because it was `prefix` and it became `prefix`,\n              // so the component wouldn't rerender, and the user would be able\n              // to erase the country calling code part, and that part is\n              // assumed to be non-eraseable. That's why the component is\n              // forcefully rerendered here.\n              setPhoneDigits(prefix);\n              setValueForPhoneDigits(undefined);\n              // Force a re-render of the `<input/>` with previous `phoneDigits` value.\n              return rerender();\n            }\n          }\n        }\n      } else {\n        // Entering phone number either in \"NATIONAL\" or in \"NATIONAL_PART_OF_INTERNATIONAL\" format.\n        // Therefore, `+` is not allowed.\n        if (phoneDigits && phoneDigits[0] === '+') {\n          // Remove the `+`.\n          phoneDigits = phoneDigits.slice(1);\n        }\n      }\n    } else if (!defaultCountry) {\n      // Force a `+` in the beginning of a `value`\n      // when no `country` and `defaultCountry` have been specified.\n      if (phoneDigits && phoneDigits[0] !== '+') {\n        // Prepend a `+`.\n        phoneDigits = '+' + phoneDigits;\n      }\n    }\n    // Convert `phoneDigits` to `value`.\n    if (phoneDigits) {\n      value = getValueForPhoneDigits(phoneDigits);\n    }\n    setPhoneDigits(phoneDigits);\n    setValueForPhoneDigits(value);\n  }, [country, inputFormat, defaultCountry, metadata, setPhoneDigits, setValueForPhoneDigits, rerender, countryMismatchDetected]);\n  return {\n    phoneDigits: phoneDigits,\n    setPhoneDigits: onSetPhoneDigits,\n    inputFormat: inputFormat\n  };\n}\n\n/**\r\n * Returns phone number input field value for a E.164 phone number `value`.\r\n * @param  {string} [value]\r\n * @param  {string} [country]\r\n * @param  {string} [inputFormat]\r\n * @param  {string} [defaultCountry]\r\n * @param  {boolean} [useNationalFormatForDefaultCountryValue]\r\n * @param  {object} metadata\r\n * @return {string}\r\n */\nfunction getPhoneDigitsForValue(value, country, defaultCountry, inputFormat, useNationalFormatForDefaultCountryValue, metadata, onCountryMismatch) {\n  if (country && inputFormat === 'INTERNATIONAL') {\n    var prefix = getInternationalPhoneNumberPrefix(country, metadata);\n    if (value) {\n      if (value.indexOf(prefix) !== 0) {\n        onCountryMismatch(value, country);\n      }\n      return value;\n    }\n    return prefix;\n  }\n  if (!value) {\n    return '';\n  }\n  if (!country && !defaultCountry) {\n    return value;\n  }\n  var asYouType = new AsYouType(undefined, metadata);\n  asYouType.input(value);\n  var phoneNumber = asYouType.getNumber();\n  if (phoneNumber) {\n    if (country) {\n      // Check for `country` property mismatch for the actual `value`.\n      if (phoneNumber.country && phoneNumber.country !== country) {\n        onCountryMismatch(value, country, phoneNumber.country);\n      } else if (phoneNumber.countryCallingCode !== getCountryCallingCode(country, metadata)) {\n        onCountryMismatch(value, country);\n      }\n      switch (inputFormat) {\n        case 'NATIONAL':\n          return parseDigits(phoneNumber.formatNational());\n        case 'NATIONAL_PART_OF_INTERNATIONAL':\n          return parseDigits(removePrefixFromFormattedPhoneNumber(phoneNumber.formatInternational(), getInternationalPhoneNumberPrefix(country, metadata)));\n        case 'INTERNATIONAL':\n          throw new Error('`inputFormat: \"INTERNATIONAL\"` case should\\'ve already been handled earlier in the code');\n        case 'INTERNATIONAL_OR_NATIONAL':\n          throw new Error('`inputFormat: \"INTERNATIONAL_OR_NATIONAL\"` is not possible when `country` is fixed');\n        default:\n          throw new Error(\"Unknown `inputFormat`: \".concat(inputFormat));\n      }\n    } else {\n      // `phoneNumber.countryCallingCode` is compared here  instead of\n      // `phoneNumber.country`, because, for example, a person could have\n      // previously input a phone number (in \"national\" format) that isn't\n      // 100% valid for the `defaultCountry`, and if `phoneNumber.country`\n      // was compared, then it wouldn't match, and such phone number\n      // wouldn't be formatted as a \"national\" one, and instead would be\n      // formatted as an \"international\" one, confusing the user.\n      // Comparing `phoneNumber.countryCallingCode` works around such issues.\n      //\n      // Example: `defaultCountry=\"US\"` and the `<input/>` is empty.\n      // The user inputs: \"222 333 4444\", which gets formatted to \"(222) 333-4444\".\n      // The user then clicks \"Save\", the page is refreshed, and the user sees\n      // that the `<input/>` value is now \"+1 222 333 4444\" which confuses the user:\n      // the user expected the `<input/>` value to be \"(222) 333-4444\", same as it\n      // was when they've just typed it in. The cause of the issue is that \"222 333 4444\"\n      // is not a valid national number for US, and `phoneNumber.country` is compared\n      // instead of `phoneNumber.countryCallingCode`. After the `phoneNumber.country`\n      // comparison is replaced with `phoneNumber.countryCallingCode` one, the issue\n      // is no longer the case.\n      //\n      if (phoneNumber.countryCallingCode && phoneNumber.countryCallingCode === getCountryCallingCode(defaultCountry, metadata) && useNationalFormatForDefaultCountryValue) {\n        return parseDigits(phoneNumber.formatNational());\n      }\n      return value;\n    }\n  } else {\n    return '';\n  }\n}\nfunction getInputFormat(_ref2) {\n  var international = _ref2.international,\n    country = _ref2.country,\n    defaultCountry = _ref2.defaultCountry,\n    withCountryCallingCode = _ref2.withCountryCallingCode;\n  return country ? international ? withCountryCallingCode ? 'INTERNATIONAL' : 'NATIONAL_PART_OF_INTERNATIONAL' : 'NATIONAL' : defaultCountry ? 'INTERNATIONAL_OR_NATIONAL' : 'INTERNATIONAL';\n}\n//# sourceMappingURL=usePhoneDigits.js.map","var _excluded = [\"Component\", \"country\", \"defaultCountry\", \"useNationalFormatForDefaultCountryValue\", \"value\", \"onChange\", \"metadata\", \"international\", \"withCountryCallingCode\"];\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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport usePhoneDigits from './usePhoneDigits.js';\nimport { metadata as metadataType } from './PropTypes.js';\nfunction PhoneInput(_ref, ref) {\n  var Component = _ref.Component,\n    country = _ref.country,\n    defaultCountry = _ref.defaultCountry,\n    _ref$useNationalForma = _ref.useNationalFormatForDefaultCountryValue,\n    useNationalFormatForDefaultCountryValue = _ref$useNationalForma === void 0 ? true : _ref$useNationalForma,\n    value = _ref.value,\n    onChange = _ref.onChange,\n    metadata = _ref.metadata,\n    international = _ref.international,\n    withCountryCallingCode = _ref.withCountryCallingCode,\n    rest = _objectWithoutProperties(_ref, _excluded);\n  // \"Phone digits\" includes not only \"digits\" but also a `+` sign.\n  var _usePhoneDigits = usePhoneDigits({\n      value: value,\n      onChange: onChange,\n      country: country,\n      defaultCountry: defaultCountry,\n      international: international,\n      withCountryCallingCode: withCountryCallingCode,\n      useNationalFormatForDefaultCountryValue: useNationalFormatForDefaultCountryValue,\n      metadata: metadata\n    }),\n    phoneDigits = _usePhoneDigits.phoneDigits,\n    setPhoneDigits = _usePhoneDigits.setPhoneDigits,\n    inputFormat = _usePhoneDigits.inputFormat;\n\n  // * Passing `international` property is deprecated.\n  // * Passing `withCountryCallingCode` property is deprecated.\n  // * Passing `country` property: it should've been called `defaultCountry` instead\n  //   because it only applies when the user inputs a phone number in a national format\n  //   and is completely ignored when the user inputs a phone number in an international format.\n\n  return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {\n    ref: ref,\n    metadata: metadata,\n    inputFormat: inputFormat,\n    international: international,\n    withCountryCallingCode: withCountryCallingCode,\n    country: country || defaultCountry,\n    value: phoneDigits,\n    onChange: setPhoneDigits\n  }));\n}\nPhoneInput = /*#__PURE__*/React.forwardRef(PhoneInput);\nPhoneInput.propTypes = {\n  /**\r\n   * The phone number (in E.164 format).\r\n   * Examples: `\"+12\"`, `\"+12133734253\"`.\r\n   * An \"empty\" `value` could be represented by any \"falsy\" value like `undefined`, `null` or an empty string `\"\"`.\r\n   */\n  value: PropTypes.string,\n  /**\r\n   * A function of `value: string?`.\r\n   * Updates the `value` property (to `undefined` in case it's empty).\r\n   */\n  onChange: PropTypes.func.isRequired,\n  /**\r\n   * A two-letter country code for formatting `value`\r\n   * as a national phone number (example: `(213) 373-4253`),\r\n   * or as an international phone number without \"country calling code\"\r\n   * if `international` property is passed (example: `213 373 4253`).\r\n   * Example: \"US\".\r\n   * If no `country` is passed then `value`\r\n   * is formatted as an international phone number.\r\n   * (example: `+1 213 373 4253`)\r\n   */\n  country: PropTypes.string,\n  /**\r\n   * A two-letter country code for formatting `value`\r\n   * when a user inputs a national phone number (example: `(213) 373-4253`).\r\n   * The user can still input a phone number in international format.\r\n   * Example: \"US\".\r\n   * `country` and `defaultCountry` properties are mutually exclusive.\r\n   */\n  defaultCountry: PropTypes.string,\n  /**\r\n   * If `country` property is passed along with `international={true}` property\r\n   * then the phone number will be input in \"international\" format for that `country`\r\n   * (without \"country calling code\").\r\n   * For example, if `country=\"US\"` property is passed to \"without country select\" input\r\n   * then the phone number will be input in the \"national\" format for `US` (`(213) 373-4253`).\r\n   * But if both `country=\"US\"` and `international={true}` properties are passed then\r\n   * the phone number will be input in the \"international\" format for `US` (`213 373 4253`)\r\n   * (without \"country calling code\" `+1`).\r\n   */\n  international: PropTypes.bool,\n  /**\r\n   * If `country` and `international` properties are set,\r\n   * then by default it won't include \"country calling code\" in the input field.\r\n   * To change that, pass `withCountryCallingCode` property,\r\n   * and it will include \"country calling code\" in the input field.\r\n   */\n  withCountryCallingCode: PropTypes.bool,\n  /**\r\n   * A component that renders the `<input/>` itself and also\r\n   * parses and formats its `value` as the user inputs it.\r\n   * See `InputBasic.js` and `InputSmart.js` for an example.\r\n   */\n  Component: PropTypes.elementType.isRequired,\n  /**\r\n   * When `defaultCountry` is defined and the initial `value` corresponds to `defaultCountry`,\r\n   * then the `value` will be formatted as a national phone number by default.\r\n   * To format the initial `value` of `defaultCountry` as an international number instead\r\n   * set `useNationalFormatForDefaultCountryValue` property to `true`.\r\n   */\n  useNationalFormatForDefaultCountryValue: PropTypes.bool,\n  /**\r\n   * `libphonenumber-js` metadata.\r\n   */\n  metadata: metadataType\n};\nexport default PhoneInput;\n//# sourceMappingURL=PhoneInput.js.map","var _excluded = [\"type\", \"autoComplete\", \"smartCaret\", \"metadata\"];\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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport PhoneInput_ from './PhoneInput.js';\nimport InputSmart from './InputSmart.js';\nimport InputBasic from './InputBasic.js';\nexport function createInput(defaultMetadata) {\n  function PhoneInput(_ref, ref) {\n    var _ref$type = _ref.type,\n      type = _ref$type === void 0 ? 'tel' : _ref$type,\n      _ref$autoComplete = _ref.autoComplete,\n      autoComplete = _ref$autoComplete === void 0 ? 'tel' : _ref$autoComplete,\n      _ref$smartCaret = _ref.smartCaret,\n      smartCaret = _ref$smartCaret === void 0 ? true : _ref$smartCaret,\n      _ref$metadata = _ref.metadata,\n      metadata = _ref$metadata === void 0 ? defaultMetadata : _ref$metadata,\n      rest = _objectWithoutProperties(_ref, _excluded);\n    return /*#__PURE__*/React.createElement(PhoneInput_, _extends({}, rest, {\n      type: type,\n      autoComplete: autoComplete,\n      metadata: metadata,\n      ref: ref,\n      Component: smartCaret ? InputSmart : InputBasic\n    }));\n  }\n  PhoneInput = /*#__PURE__*/React.forwardRef(PhoneInput);\n  PhoneInput.propTypes = {\n    /**\r\n     * HTML `<input/>` `type` attribute.\r\n     */\n    type: PropTypes.string,\n    /**\r\n     * HTML `<input/>` `autocomplete` attribute.\r\n     */\n    autoComplete: PropTypes.string,\n    /**\r\n     * By default, the caret position is being \"intelligently\" managed\r\n     * while a user inputs a phone number.\r\n     * This \"smart\" caret behavior can be turned off\r\n     * by passing `smartCaret={false}` property.\r\n     * This is just an \"escape hatch\" for any possible caret position issues.\r\n     */\n    // Is `true` by default.\n    smartCaret: PropTypes.bool,\n    /**\r\n     * `libphonenumber-js` metadata.\r\n     */\n    metadata: PropTypes.object\n  };\n  return PhoneInput;\n}\nexport default createInput();\n//# sourceMappingURL=PhoneInputBrowser.js.map","import metadata from 'libphonenumber-js/min/metadata'\r\n\r\nimport {\r\n\tparsePhoneNumber as _parsePhoneNumber,\r\n\tformatPhoneNumber as _formatPhoneNumber,\r\n\tformatPhoneNumberIntl as _formatPhoneNumberIntl,\r\n\tisValidPhoneNumber as _isValidPhoneNumber,\r\n\tisPossiblePhoneNumber as _isPossiblePhoneNumber,\r\n\tgetCountries as _getCountries,\r\n\tgetCountryCallingCode as _getCountryCallingCode,\r\n\tisSupportedCountry as _isSupportedCountry\r\n} from '../core/index.js'\r\n\r\nimport { createInput } from '../modules/PhoneInputBrowser.js'\r\n\r\nfunction call(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}\r\n\r\nexport default createInput(metadata)\r\n\r\nexport function parsePhoneNumber() {\r\n\treturn call(_parsePhoneNumber, arguments)\r\n}\r\n\r\nexport function formatPhoneNumber() {\r\n\treturn call(_formatPhoneNumber, arguments)\r\n}\r\n\r\nexport function formatPhoneNumberIntl() {\r\n\treturn call(_formatPhoneNumberIntl, arguments)\r\n}\r\n\r\nexport function isValidPhoneNumber() {\r\n\treturn call(_isValidPhoneNumber, arguments)\r\n}\r\n\r\nexport function isPossiblePhoneNumber() {\r\n\treturn call(_isPossiblePhoneNumber, arguments)\r\n}\r\n\r\nexport function getCountries() {\r\n\treturn call(_getCountries, arguments)\r\n}\r\n\r\nexport function getCountryCallingCode() {\r\n\treturn call(_getCountryCallingCode, arguments)\r\n}\r\n\r\nexport function isSupportedCountry() {\r\n\treturn call(_isSupportedCountry, arguments)\r\n}","import React, { useEffect, useState } from 'react';\nimport type { Country, Labels, Value } from 'react-phone-number-input';\nimport {\n    default as PhoneInputWithCountrySelect,\n    isSupportedCountry,\n    parsePhoneNumber,\n} from 'react-phone-number-input';\nimport { default as PhoneInputWithoutCountrySelect } from 'react-phone-number-input/input';\nimport styles from 'react-phone-number-input/style.css';\n\nimport { createGlobalStyle } from 'styled-components';\n\n// import raw css using `rollup-plugin-import-css'`\n\nimport { Validator, isValidatorError } from '../../../core/validation';\nimport { isRichFormValue } from '../../../helpers/utils.ts';\nimport { Config, Optional } from '../../../types';\nimport {\n    createField,\n    type FieldComponentProps,\n    type FieldCreator,\n    type FieldDefinition,\n} from '../fieldCreator';\nimport { FormGroup, Input } from '../formControlsComponent';\n\nfunction isValidCountryCode(code?: string): code is Country {\n    return typeof code === 'string' && isSupportedCountry(code);\n}\n\nconst ReactPhoneNumberInputStyle = createGlobalStyle`\n    ${styles}\n\n    :root {\n        --PhoneInput-color--focus: ${props => props.theme.primaryColor};\n        --PhoneInputCountrySelect-marginRight: ${props => props.theme.spacing}px;\n        --PhoneInputCountrySelectArrow-marginLeft: var(--PhoneInputCountrySelect-marginRight);\n        --PhoneInputCountrySelectArrow-borderWidth: 2px;\n        --PhoneInputCountrySelectArrow-color: ${props => props.theme.textColor};\n        --PhoneInputCountrySelectArrow-transform: rotate(45deg);\n        --PhoneInputCountrySelectArrow-width: 0.3em;\n        --PhoneInputCountryFlag-height: ${props => props.theme.input.height - (props.theme.input.paddingY + props.theme.input.borderWidth) * 2}px;\n    }\n`;\n\nfunction importLocale(locale: string) {\n    return import(\n        `../../../../node_modules/react-phone-number-input/locale/${locale}.json.js`\n    ).then((module: { default: Labels }) => module.default);\n}\n\nexport type PhoneNumberOptions = {\n    /**\n     * If defaultCountry is specified then the phone number can be input both in \"international\" format and \"national\" format.\n     * A phone number that's being input in \"national\" format will be parsed as a phone number belonging to the defaultCountry.\n     */\n    defaultCountry?: Country;\n    /**\n     * If country is specified then the phone number can only be input in \"national\" (not \"international\") format,\n     * and will be parsed as a phone number belonging to the country.\n     */\n    country?: Country;\n    /**\n     * If locale is specified then translate component using the given language.\n     * @see https://gitlab.com/catamphetamine/react-phone-number-input/tree/master/locale\n     */\n    locale?: string;\n    /**\n     * If `withCountryCallingCode` property is explicitly set to true then the \"country calling code\" part (e.g. \"+1\" when country is \"US\") is included in the input field (but still isn't editable).\n     * @default true\n     */\n    withCountryCallingCode?: boolean;\n    /**\n     * If `withCountrySelect` property is `true` then the user can select the country for the phone number. Must be a supported {@link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements country code}.\n     * @default false\n     */\n    withCountrySelect?: boolean;\n};\n\n/**\n * If neither country nor defaultCountry are specified then the phone number can only be input in \"international\" format.\n */\nexport interface PhoneNumberFieldProps extends FieldComponentProps<Value>, PhoneNumberOptions {}\n\nconst PhoneNumberField = (props: PhoneNumberFieldProps) => {\n    const {\n        country,\n        inputId,\n        label,\n        locale = 'en',\n        onChange,\n        path,\n        placeholder = label,\n        required = true,\n        showLabel,\n        validation,\n        value,\n        withCountryCallingCode = true,\n        withCountrySelect = false,\n    } = props;\n\n    const [labels, setLabels] = useState<Labels>({});\n    const currentValue = isRichFormValue(value, 'raw') ? value.raw : value;\n    const error = validation && isValidatorError(validation) ? validation.error : undefined;\n\n    useEffect(() => {\n        async function fetchLabels() {\n            const result = await importLocale(locale);\n            if (!ignore) {\n                setLabels(result);\n            }\n        }\n        /**\n         * @note the ignore variable which is initialized to false, and is set to true during cleanup.\n         * This ensures your code doesn’t suffer from “race conditions”: network responses may arrive in a different order than you sent them.\n         */\n        let ignore = false;\n        fetchLabels();\n        return () => {\n            ignore = true;\n        };\n    }, [locale]);\n\n    const handlePhoneChange = (value: Value) => {\n        onChange({\n            value,\n        });\n    };\n\n    const PhoneInput = withCountrySelect\n        ? PhoneInputWithCountrySelect\n        : PhoneInputWithoutCountrySelect;\n\n    return (\n        <FormGroup\n            inputId={inputId}\n            labelText={label}\n            {...{ error }}\n            showLabel={showLabel}\n            required={required}\n        >\n            <ReactPhoneNumberInputStyle />\n            <PhoneInput\n                id={inputId}\n                name={path}\n                value={currentValue}\n                placeholder={placeholder}\n                required={required}\n                data-testid={path}\n                onChange={handlePhoneChange}\n                labels={labels}\n                international={true}\n                withCountryCallingCode={withCountryCallingCode}\n                {...(withCountrySelect\n                    ? {\n                          defaultCountry: country,\n                      }\n                    : {\n                          country,\n                      })}\n                inputComponent={Input}\n                hasError={!!error}\n            />\n        </FormGroup>\n    );\n};\n\nconst phoneNumberField = (\n    {\n        key = 'phone_number',\n        label = 'phoneNumber',\n        defaultCountry,\n        country,\n        locale,\n        withCountryCallingCode,\n        withCountrySelect,\n        ...props\n    }: Optional<FieldDefinition<string, Value>, 'key' | 'label'> & PhoneNumberOptions,\n    config: Config\n): FieldCreator<Value, PhoneNumberFieldProps> => {\n    return createField<string, Value, PhoneNumberFieldProps>({\n        component: PhoneNumberField,\n        ...props,\n        key,\n        label,\n        format: {\n            bind: value => {\n                const phoneNumber = value ? parsePhoneNumber(value) : undefined;\n                return {\n                    country: phoneNumber?.country,\n                    raw: phoneNumber?.number ?? ('' as Value),\n                    isValid: phoneNumber?.isValid() ?? false,\n                };\n            },\n            unbind: formValue => {\n                const value =\n                    typeof formValue === 'object' && 'raw' in formValue ? formValue.raw : formValue;\n                return value == '' ? undefined : value;\n            },\n        },\n        validator: new Validator<Value, unknown>({\n            rule: value => {\n                const phoneNumber = value ? parsePhoneNumber(value) : undefined;\n                return phoneNumber?.isValid() ?? false;\n            },\n            hint: 'phone',\n        }),\n        extendedParams: {\n            defaultCountry,\n            country:\n                country ??\n                (isValidCountryCode(config.countryCode) ? config.countryCode : undefined),\n            locale: locale ?? config.language,\n            withCountryCallingCode,\n            withCountrySelect,\n        },\n    });\n};\n\nexport default phoneNumberField;\n","import React, { useCallback, useLayoutEffect } from 'react';\n\nimport { InitialScreen } from '../../../../constants.ts';\nimport { CaptchaProvider, WithCaptchaProps } from '../../../components/captcha.tsx';\nimport { DefaultButton } from '../../../components/form/buttonComponent.tsx';\nimport passwordField from '../../../components/form/fields/passwordField.tsx';\nimport phoneNumberField, {\n    type PhoneNumberOptions,\n} from '../../../components/form/fields/phoneNumberField';\nimport { simpleField } from '../../../components/form/fields/simpleField';\nimport simplePasswordField from '../../../components/form/fields/simplePasswordField';\nimport { FormContext, createForm } from '../../../components/form/formComponent';\nimport { Alternative, Heading, Info, Intro, Link } from '../../../components/miscComponent';\nimport { importGoogleRecaptchaScript } from '../../../components/reCaptcha';\nimport { useConfig } from '../../../contexts/config.tsx';\nimport { useI18n } from '../../../contexts/i18n';\nimport { useReachfive } from '../../../contexts/reachfive';\nimport { useRouting } from '../../../contexts/routing';\nimport { email, Validator } from '../../../core/validation';\nimport { isAppError } from '../../../helpers/errors';\nimport { selectLogin } from '../authWidget.tsx';\n\nimport type { OnError, OnSuccess } from '../../../types';\n\ntype EmailIdentifier = { email: string };\ntype PhoneNumberIdentifier = { phoneNumber: string };\n\ntype ForgotPasswordEmailFormData = EmailIdentifier;\ntype ForgotPasswordPhoneNumberFormData = PhoneNumberIdentifier;\n\nconst ForgotPasswordEmailForm = createForm<ForgotPasswordEmailFormData>({\n    prefix: 'r5-forgot-password-',\n    fields() {\n        return [\n            simpleField({\n                key: 'email',\n                label: 'email',\n                required: true,\n                type: 'email',\n                validator: email,\n            }),\n        ];\n    },\n    submitLabel: 'forgotPassword.submitLabel',\n});\n\nconst ForgotPasswordPhoneNumberForm = createForm<\n    ForgotPasswordPhoneNumberFormData,\n    { phoneNumberOptions?: PhoneNumberOptions }\n>({\n    prefix: 'r5-forgot-password-',\n    fields({ config, phoneNumberOptions }) {\n        return [\n            phoneNumberField(\n                {\n                    key: 'phoneNumber',\n                    label: 'phoneNumber',\n                    required: true,\n                    withCountryCallingCode: false,\n                    ...phoneNumberOptions,\n                },\n                config\n            ),\n        ];\n    },\n    submitLabel: 'forgotPassword.submitLabel.code',\n});\n\nexport type VerificationCodeFormData = {\n    password: string;\n    passwordConfirmation: string;\n    verificationCode: string;\n};\n\ninterface VerificationCodeFormProps {\n    /**\n     * Whether or not to provide the display password in clear text option.\n     * @default false\n     */\n    canShowPassword?: boolean;\n}\n\nconst VerificationCodeForm = createForm<VerificationCodeFormData, VerificationCodeFormProps>({\n    prefix: 'r5-verification-code-',\n    fields({ canShowPassword = false, config }) {\n        return [\n            simpleField({\n                key: 'verification_code',\n                label: 'verificationCode',\n                type: 'text',\n            }),\n            passwordField(\n                {\n                    label: 'newPassword',\n                    autoComplete: 'new-password',\n                    canShowPassword,\n                },\n                config\n            ),\n            simplePasswordField({\n                key: 'password_confirmation',\n                label: 'passwordConfirmation',\n                autoComplete: 'new-password',\n                validator: new Validator<string, unknown>({\n                    rule: (value, ctx) =>\n                        value === (ctx as FormContext<VerificationCodeFormData>).fields.password,\n                    hint: 'passwordMatch',\n                }),\n            }),\n        ];\n    },\n});\n\nconst skipError = (error: unknown) =>\n    isAppError(error) ? error.error === 'resource_not_found' : false;\n\nexport interface ForgotPasswordViewProps {\n    /**\n     * Boolean that specifies whether login is enabled.\n     *\n     * @default true\n     */\n    allowLogin?: boolean;\n    /**\n     * Boolean that specifies whether password reset with phone number is enabled.\n     *\n     * @default false\n     */\n    allowPhoneNumberResetPassword?: boolean;\n    /**\n     * Whether or not to display a safe error message on password reset, given an invalid email address.\n     * This mode ensures not to leak email addresses registered to the platform.\n     *\n     * @default false\n     */\n    displaySafeErrorMessage?: boolean;\n    /**\n     * Whether the signup form fields' labels are displayed on the login view.\n     *\n     * @default false\n     */\n    showLabels?: boolean;\n\n    initialScreen?: InitialScreen;\n    /**\n     * Boolean that specifies whether biometric login is enabled.\n     *\n     * @default false\n     */\n    allowWebAuthnLogin?: boolean;\n    /**\n     * Phone number field options.\n     */\n    phoneNumberOptions?: PhoneNumberOptions;\n    /**\n     * The URL sent in the email to which the user is redirected.\n     * This URL must be whitelisted in the `Allowed Callback URLs` field of your ReachFive client settings.\n     */\n    redirectUrl?: string;\n    /**\n     * Returned in the `redirectUrl` as a query parameter, this parameter is used to redirect users to a specific URL after a password reset.\n     * Important: This parameter should only be used with Hosted Pages.\n     */\n    returnToAfterPasswordReset?: string;\n    /**\n     * The origin of the request.\n     */\n    origin?: string;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\nexport const ForgotPasswordView = ({\n    allowLogin = true,\n    allowPhoneNumberResetPassword = false,\n    displaySafeErrorMessage = false,\n    showLabels = false,\n    allowWebAuthnLogin = false,\n    initialScreen,\n    recaptcha_enabled = false,\n    recaptcha_site_key,\n    captchaFoxEnabled = false,\n    captchaFoxMode = 'hidden',\n    captchaFoxSiteKey,\n    origin,\n    redirectUrl,\n    returnToAfterPasswordReset,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n}: WithCaptchaProps<ForgotPasswordViewProps>) => {\n    const coreClient = useReachfive();\n    const config = useConfig();\n    const { goTo } = useRouting();\n    const i18n = useI18n();\n\n    const callback = (data: ForgotPasswordEmailFormData) =>\n        coreClient.requestPasswordReset({\n            ...data,\n            origin,\n            redirectUrl,\n            returnToAfterPasswordReset,\n        });\n\n    useLayoutEffect(() => {\n        importGoogleRecaptchaScript(recaptcha_site_key);\n    }, [recaptcha_site_key]);\n\n    return (\n        <div>\n            <Heading>{i18n('forgotPassword.title')}</Heading>\n            <Intro>{i18n('forgotPassword.prompt')}</Intro>\n            <CaptchaProvider\n                recaptcha_enabled={recaptcha_enabled}\n                recaptcha_site_key={recaptcha_site_key}\n                captchaFoxEnabled={captchaFoxEnabled}\n                captchaFoxSiteKey={captchaFoxSiteKey}\n                captchaFoxMode={captchaFoxMode}\n                action=\"password_reset_requested\"\n            >\n                <ForgotPasswordEmailForm\n                    showLabels={showLabels}\n                    handler={callback}\n                    onSuccess={() => {\n                        onSuccess({ name: 'password_reset_requested' });\n                        goTo('forgot-password-success');\n                    }}\n                    onError={onError}\n                    skipError={displaySafeErrorMessage && skipError}\n                />\n            </CaptchaProvider>\n            {allowPhoneNumberResetPassword && config.sms && (\n                <Alternative>\n                    <DefaultButton onClick={() => goTo('forgot-password-phone-number')}>\n                        {i18n('forgotPassword.usePhoneNumberButton')}\n                    </DefaultButton>\n                </Alternative>\n            )}\n            {allowLogin && (\n                <Alternative>\n                    <Link target={selectLogin(initialScreen, allowWebAuthnLogin)}>\n                        {i18n('forgotPassword.backToLoginLink')}\n                    </Link>\n                </Alternative>\n            )}\n        </div>\n    );\n};\n\nexport const ForgotPasswordPhoneNumberView = ({\n    allowLogin = true,\n    displaySafeErrorMessage = false,\n    showLabels = false,\n    allowWebAuthnLogin = false,\n    initialScreen,\n    phoneNumberOptions,\n    recaptcha_enabled = false,\n    recaptcha_site_key,\n    captchaFoxEnabled = false,\n    captchaFoxMode = 'hidden',\n    captchaFoxSiteKey,\n    redirectUrl,\n    returnToAfterPasswordReset,\n    onError = (() => {}) as OnError,\n}: WithCaptchaProps<ForgotPasswordViewProps>) => {\n    const coreClient = useReachfive();\n    const { goTo } = useRouting();\n    const i18n = useI18n();\n\n    const callback = (data: ForgotPasswordPhoneNumberFormData) =>\n        coreClient\n            .requestPasswordReset({\n                ...data,\n                redirectUrl,\n                returnToAfterPasswordReset,\n            })\n            .then(() => data);\n\n    const onSuccess = ({ phoneNumber }: PhoneNumberIdentifier) => {\n        goTo<PhoneNumberIdentifier>('forgot-password-code', { phoneNumber });\n    };\n\n    useLayoutEffect(() => {\n        importGoogleRecaptchaScript(recaptcha_site_key);\n    }, [recaptcha_site_key]);\n\n    return (\n        <div>\n            <Heading>{i18n('forgotPassword.title')}</Heading>\n            <Intro>{i18n('forgotPassword.prompt.phoneNumber')}</Intro>\n            <CaptchaProvider\n                recaptcha_enabled={recaptcha_enabled}\n                recaptcha_site_key={recaptcha_site_key}\n                captchaFoxEnabled={captchaFoxEnabled}\n                captchaFoxSiteKey={captchaFoxSiteKey}\n                captchaFoxMode={captchaFoxMode}\n                action=\"password_reset_requested\"\n            >\n                <ForgotPasswordPhoneNumberForm\n                    showLabels={showLabels}\n                    handler={callback}\n                    onSuccess={onSuccess}\n                    onError={onError}\n                    skipError={displaySafeErrorMessage && skipError}\n                    phoneNumberOptions={phoneNumberOptions}\n                />\n            </CaptchaProvider>\n            <Alternative>\n                <DefaultButton onClick={() => goTo('forgot-password')}>\n                    {i18n('forgotPassword.useEmailButton')}\n                </DefaultButton>\n            </Alternative>\n            {allowLogin && (\n                <Alternative>\n                    <Link target={selectLogin(initialScreen, allowWebAuthnLogin)}>\n                        {i18n('forgotPassword.backToLoginLink')}\n                    </Link>\n                </Alternative>\n            )}\n        </div>\n    );\n};\n\nexport const ForgotPasswordCodeView = ({\n    allowLogin = true,\n    displaySafeErrorMessage = false,\n    initialScreen,\n    allowWebAuthnLogin = false,\n    showLabels = false,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n}: ForgotPasswordViewProps) => {\n    const coreClient = useReachfive();\n    const i18n = useI18n();\n    const { goTo, params } = useRouting();\n    const { phoneNumber } = params as PhoneNumberIdentifier;\n\n    const callback = useCallback(\n        ({ passwordConfirmation: _, ...data }: VerificationCodeFormData) => {\n            return coreClient.updatePassword({\n                phoneNumber,\n                ...data,\n            });\n        },\n        [coreClient, params]\n    );\n\n    return (\n        <div>\n            <Heading>{i18n('forgotPassword.title')}</Heading>\n            <Info>{i18n('forgotPassword.verificationCode')}</Info>\n            <VerificationCodeForm\n                showLabels={showLabels}\n                handler={callback}\n                onSuccess={() => {\n                    onSuccess({ name: 'password_changed' });\n                    goTo('login');\n                }}\n                onError={onError}\n                skipError={displaySafeErrorMessage && skipError}\n            />\n            {allowLogin && (\n                <Alternative>\n                    <Link target={selectLogin(initialScreen, allowWebAuthnLogin)}>\n                        {i18n('back')}\n                    </Link>\n                </Alternative>\n            )}\n        </div>\n    );\n};\n\nexport const ForgotPasswordSuccessView = ({\n    allowLogin = true,\n    initialScreen,\n    allowWebAuthnLogin = false,\n}: ForgotPasswordViewProps) => {\n    const i18n = useI18n();\n    return (\n        <div>\n            <Heading>{i18n('forgotPassword.title')}</Heading>\n            <Info>{i18n('forgotPassword.successMessage')}</Info>\n            {allowLogin && (\n                <Alternative>\n                    <Link target={selectLogin(initialScreen, allowWebAuthnLogin)}>\n                        {i18n('back')}\n                    </Link>\n                </Alternative>\n            )}\n        </div>\n    );\n};\n","import React from 'react';\n\nimport type { CountryCode } from 'libphonenumber-js';\nimport * as libphonenumber from 'libphonenumber-js';\n\nimport { email, isValidatorError, Validator } from '../../../core/validation';\nimport { isRichFormValue } from '../../../helpers/utils';\nimport { Config, Optional } from '../../../types';\nimport { createField, type FieldComponentProps, type FieldDefinition } from '../fieldCreator';\nimport { FormGroup, Input } from '../formControlsComponent';\n\n/*\n * All possible Identifier data is in the `value` prop, they should all be preserved when the type changes.\n */\ninterface IdentifierData {\n    value?: string;\n    type?: 'tel' | 'email' | 'text';\n    country?: CountryCode;\n    formatted?: string;\n    isValid?: boolean;\n}\n\nfunction specializeRawIdentifier(\n    withPhoneNumber?: boolean,\n    inputValue?: string,\n    telCall?: (value?: string) => IdentifierData,\n    emailCall?: (value?: string) => IdentifierData,\n    otherCall?: (value?: string) => IdentifierData\n): IdentifierData {\n    if (withPhoneNumber && inputValue && /^\\+?[0-9]+$/.test(inputValue)) {\n        return {\n            value: inputValue,\n            ...(telCall?.(inputValue) ?? {}),\n            type: 'tel',\n        };\n    } else if (inputValue?.includes('@')) {\n        return {\n            value: inputValue,\n            ...(emailCall?.(inputValue) ?? {}),\n            type: 'email',\n        };\n    } else {\n        return {\n            value: inputValue,\n            ...(otherCall?.(inputValue) ?? {}),\n            type: 'text',\n        };\n    }\n}\n\nfunction specializeRefinedIdentifier<T>(\n    identifier: IdentifierData,\n    telCall: (identifier: IdentifierData) => T,\n    emailCall: (identifier: IdentifierData) => T,\n    otherCall: (identifier: IdentifierData) => T\n) {\n    if (identifier.type === 'tel') return telCall(identifier);\n    else if (identifier.type === 'email') return emailCall(identifier);\n    else return otherCall(identifier);\n}\n\ntype IdentifierFieldExtraProps = {\n    withPhoneNumber?: boolean;\n    isWebAuthnLogin?: boolean;\n};\n\nexport interface IdentifierFieldProps extends FieldComponentProps<\n    IdentifierData,\n    IdentifierFieldExtraProps\n> {}\n\nfunction IdentifierField({\n    autoComplete,\n    inputId,\n    label,\n    onChange,\n    path,\n    placeholder = label,\n    required = true,\n    showLabel,\n    readOnly,\n    validation,\n    value,\n    withPhoneNumber,\n}: IdentifierFieldProps) {\n    const currentValue = isRichFormValue(value, 'raw') ? value.raw : value;\n\n    const asYouType = (inputValue?: string): IdentifierData => {\n        if (!inputValue) return {};\n\n        const parsed = libphonenumber.parsePhoneNumberFromString(inputValue);\n        return parsed\n            ? {\n                  country: parsed.country,\n                  formatted: parsed.formatInternational(),\n                  isValid: parsed.isValid(),\n                  value: inputValue,\n              }\n            : {\n                  isValid: false,\n                  value: inputValue,\n              };\n    };\n\n    const changeHandler = (event: React.ChangeEvent<HTMLInputElement>) => {\n        const newValue: IdentifierData = {\n            ...currentValue,\n            ...specializeRawIdentifier(withPhoneNumber, event.target.value, asYouType),\n        };\n        onChange({ value: newValue, isDirty: false });\n    };\n\n    const error = validation && isValidatorError(validation) ? validation.error : undefined;\n\n    return (\n        <FormGroup\n            inputId={inputId}\n            labelText={label}\n            {...{ error }}\n            showLabel={showLabel}\n            required={required}\n        >\n            <Input\n                id={inputId}\n                name={path}\n                type=\"text\"\n                value={currentValue?.value ?? ''}\n                placeholder={placeholder}\n                title={label}\n                autoComplete={autoComplete}\n                required={required}\n                readOnly={readOnly}\n                hasError={!!error}\n                onChange={changeHandler}\n                onBlur={() => onChange({ isDirty: true })}\n                data-testid={path}\n            />\n        </FormGroup>\n    );\n}\n\nfunction isValidCountryCode(code?: string): code is CountryCode {\n    return typeof code === 'string' && libphonenumber.isSupportedCountry(code);\n}\n\nfunction computeDefaultKeyLabel(config: Config, isWebAuthnLogin: boolean) {\n    const loginTypeAllowed = config.loginTypeAllowed;\n    if ((loginTypeAllowed.email && loginTypeAllowed.phoneNumber) || isWebAuthnLogin) {\n        return { k: 'identifier', l: 'identifier' };\n    } else if (loginTypeAllowed.email) {\n        return { k: 'email', l: 'email' };\n    } else if (loginTypeAllowed.phoneNumber) {\n        return { k: 'phone_number', l: 'phoneNumber' };\n    } else {\n        return { k: 'identifier', l: 'identifier' };\n    }\n}\n\nexport default function identifierField(\n    {\n        key,\n        label,\n        isWebAuthnLogin = false,\n        ...props\n    }: Optional<FieldDefinition<string, IdentifierData>, 'key' | 'label'> &\n        IdentifierFieldExtraProps,\n    config: Config\n) {\n    const { k, l } = computeDefaultKeyLabel(config, isWebAuthnLogin);\n\n    return createField<string, IdentifierData, IdentifierFieldProps>({\n        ...props,\n        key: key ?? k,\n        label: label ?? l,\n        format: {\n            bind: value =>\n                specializeRawIdentifier(\n                    props.withPhoneNumber,\n                    value,\n                    () =>\n                        ({\n                            country: isValidCountryCode(config.countryCode)\n                                ? config.countryCode\n                                : undefined,\n                            isValid: true,\n                        }) satisfies IdentifierData,\n                    () =>\n                        ({\n                            country: isValidCountryCode(config.countryCode)\n                                ? config.countryCode\n                                : undefined,\n                            isValid: true,\n                        }) satisfies IdentifierData,\n                    () =>\n                        ({\n                            country: isValidCountryCode(config.countryCode)\n                                ? config.countryCode\n                                : undefined,\n                            isValid: true,\n                        }) satisfies IdentifierData\n                ),\n            unbind: value => {\n                const identifier = isRichFormValue(value, 'raw') ? value.raw : value;\n                return identifier\n                    ? specializeRefinedIdentifier(\n                          identifier,\n                          v => v?.formatted ?? v?.value ?? null,\n                          v => v?.value ?? null,\n                          v => v?.value ?? null\n                      )\n                    : null;\n            },\n        },\n        validator: new Validator<IdentifierData, unknown>({\n            rule: (value, ctx) =>\n                specializeRefinedIdentifier(\n                    value,\n                    v => v.isValid ?? !props.withPhoneNumber,\n                    v => email.rule(v.value ?? '', ctx),\n                    v => v.isValid ?? true\n                ) ?? true,\n            hint: value =>\n                specializeRefinedIdentifier(\n                    value,\n                    () => 'phone',\n                    () => 'email',\n                    () => 'identifier'\n                ),\n        }),\n        component: IdentifierField,\n        extendedParams: {\n            withPhoneNumber: props.withPhoneNumber,\n        },\n    });\n}\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1551%201476q15-6%2026-3t11%2017.5-15%2033.5q-13%2016-44%2043.5t-95.5%2068-141%2074-188%2058-229.5%2024.5q-119%200-238-31t-209-76.5-172.5-104-132.5-105-84-87.5q-8-9-10-16.5t1-12%208-7%2011.5-2%2011.5%204.5q192%20117%20300%20166%20389%20176%20799%2090%20190-40%20391-135zm207-115q11%2016%202.5%2069.5t-28.5%20102.5q-34%2083-85%20124-17%2014-26%209t0-24q21-45%2044.5-121.5t6.5-98.5q-5-7-15.5-11.5t-27-6-29.5-2.5-35%200-31.5%202-31%203-22.5%202q-6%201-13%201.5t-11%201-8.5%201-7%20.5h-10l-3-.5-2-1.5-1.5-3q-6-16%2047-40t103-30q46-7%20108-1t76%2024zm-394-443q0%2031%2013.5%2064t32%2058%2037.5%2046%2033%2032l13%2011-227%20224q-40-37-79-75.5t-58-58.5l-19-20q-11-11-25-33-38%2059-97.5%20102.5t-127.5%2063.5-140%2023-137.5-21-117.5-65.5-83-113-31-162.5q0-84%2028-154t72-116.5%20106.5-83%20122.5-57%20130-34.5%20119.5-18.5%2099.5-6.5v-127q0-65-21-97-34-53-121-53-6%200-16.5%201t-40.5%2012-56%2029.5-56%2059.5-48%2096l-294-27q0-60%2022-119t67-113%20108-95%20151.5-65.5%20190.5-24.5q100%200%20181%2025t129.5%2061.5%2081%2083%2045%2086%2012.5%2073.5v589zm-672%2021q0%2086%2070%20133%2066%2044%20139%2022%2084-25%20114-123%2014-45%2014-101v-162q-59%202-111%2012t-106.5%2033.5-87%2071-32.5%20114.5z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E\"","import icon from './amazon.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'amazon',\n    name: 'Amazon',\n    color: '#ff9900',\n    icon,\n    windowSize: {\n        width: 715,\n        height: 525,\n    },\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22170%22%20height%3D%22170%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M150.37%20130.25c-2.45%205.66-5.35%2010.87-8.71%2015.66-4.58%206.53-8.33%2011.05-11.22%2013.56-4.48%204.12-9.28%206.23-14.42%206.35-3.69%200-8.14-1.05-13.32-3.18-5.197-2.12-9.973-3.17-14.34-3.17-4.58%200-9.492%201.05-14.746%203.17-5.262%202.13-9.501%203.24-12.742%203.35-4.929.21-9.842-1.96-14.746-6.52-3.13-2.73-7.045-7.41-11.735-14.04-5.032-7.08-9.169-15.29-12.41-24.65-3.471-10.11-5.211-19.9-5.211-29.378%200-10.857%202.346-20.221%207.045-28.068%203.693-6.303%208.606-11.275%2014.755-14.925s12.793-5.51%2019.948-5.629c3.915%200%209.049%201.211%2015.429%203.591%206.362%202.388%2010.447%203.599%2012.238%203.599%201.339%200%205.877-1.416%2013.57-4.239%207.275-2.618%2013.415-3.702%2018.445-3.275%2013.63%201.1%2023.87%206.473%2030.68%2016.153-12.19%207.386-18.22%2017.731-18.1%2031.002.11%2010.337%203.86%2018.939%2011.23%2025.769%203.34%203.17%207.07%205.62%2011.22%207.36-.9%202.61-1.85%205.11-2.86%207.51zM119.11%207.24c0%208.102-2.96%2015.667-8.86%2022.669-7.12%208.324-15.732%2013.134-25.071%2012.375a25.222%2025.222%200%200%201-.188-3.07c0-7.778%203.386-16.102%209.399-22.908%203.002-3.446%206.82-6.311%2011.45-8.597%204.62-2.252%208.99-3.497%2013.1-3.71.12%201.083.17%202.166.17%203.24z%22%2F%3E%3C%2Fsvg%3E\"","import icon from './apple.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'apple',\n    name: 'Sign in with Apple',\n    color: '#000',\n    fontWeight: 400,\n    fontFamily: 'SF Pro Text,SF Pro Icons,Helvetica Neue,Helvetica,Arial,sans-serif',\n    icon,\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2056.7%2056.7%22%20xmlns%3Av%3D%22https%3A%2F%2Fvecta.io%2Fnano%22%3E%3ClinearGradient%20id%3D%22A%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%228.33%22%20y1%3D%2248.363%22%20x2%3D%2254.917%22%20y2%3D%221.776%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23ff0254%22%2F%3E%3Cstop%20offset%3D%22.999%22%20stop-color%3D%22%23ff5b00%22%2F%3E%3C%2FlinearGradient%3E%3Cpath%20d%3D%22M29.4%2056.2h-2.2C12.5%2056.2.4%2044.1.4%2029.4v-2.2C.4%2012.5%2012.5.4%2027.2.4h24.5a4.48%204.48%200%200%201%204.5%204.5v24.5c0%2014.8-12%2026.8-26.8%2026.8z%22%20fill%3D%22url%28%23A%29%22%2F%3E%3Cg%20fill%3D%22%23fff%22%3E%3Cpath%20d%3D%22M45.4%2031.6s0-.1%200%200v-.4-.3c-.2-1.3-1.2-2.4-2.6-2.6-1.1-.2-2.1.2-2.8%201l-.1.1c-.2.2-.3.5-.5.8-.1.2-.2.5-.3.8-1.6%206-7.8%209.3-13.7%207.5-1.5-.5-2.9-1.3-4.1-2.4l-.3-.3-.3-.3c-1.1-1.2-1.9-2.6-2.4-4.1-1.8-5.9%201.6-12.1%207.5-13.7.3-.1.5-.2.8-.3s.5-.3.8-.5l.1-.1c.8-.7%201.2-1.7%201-2.8-.2-1.4-1.3-2.4-2.6-2.6h-.3-.3-.1-.2-.2-.1-.1-.1c-2.4.5-4.6%201.6-6.5%203.2-.2.1-.4.3-.5.5%200%200-.1%200-.1.1-.2.1-.3.3-.5.4l-.4.4-.1.1c-3.1%203.2-5%207.5-4.9%2012.1v.1c0%201%20.1%202%20.3%203%200%20.1.1.3.1.4s0%20.2.1.3v.1c.7%202.6%201.9%205%203.6%207v.1l.4.4.2.2.3.3.3.3.2.2.4.4h.1c2%201.7%204.4%202.9%207%203.6h.1c.1%200%20.2%200%20.3.1.1%200%20.3.1.4.1%201%20.2%202%20.3%203%20.3h.1c4.5%200%208.9-1.8%2012.1-4.9l.1-.1.4-.4c.2-.2.3-.3.4-.5%200%200%200-.1.1-.1.2-.2.3-.4.5-.5%201.5-1.9%202.6-4.1%203.2-6.5V32v-.1-.1-.2c.1.1.2.1.2%200z%22%2F%3E%3Cpath%20d%3D%22M28.7%2032.3c-2.3%200-4-1.6-4-3.8%200-2.4%201.5-4.2%203.8-4.2%203.4%200%206.7-3%206.8-6.8.1-2.1%201.6-3.7%203.6-3.8%202.2-.2%204%201.2%204.4%203.2.4%202.1-.7%204.1-2.7%204.7-.6.2-1.2.2-1.8.3-3.5.5-5.9%203.1-6%206.6-.2%202.2-1.9%203.8-4.1%203.8z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\"","import icon from './bconnect.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'bconnect',\n    name: 'B.connect',\n    color: '#ff4f00',\n    btnBorderColor: 'rgba(0,0,0,.15)',\n    btnTextColor: '#58666e',\n    btnBackgroundColor: '#ffffff',\n    icon,\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%3E%3Cpath%20d%3D%22M1343%2012v264h-157q-86%200-116%2036t-30%20108v189h293l-39%20296h-254v759h-306v-759h-255v-296h255v-218q0-186%20104-288.5t277-102.5q147%200%20228%2012z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E\"","import icon from './facebook.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'facebook',\n    name: 'Facebook',\n    color: '#3b5998',\n    icon,\n    windowSize: {\n        width: 650,\n        height: 400,\n    },\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2272%22%20height%3D%2272.5%22%20viewBox%3D%220%200%2072%2072.500002%22%20fill%3D%22%23fff%22%3E%20%20%20%20%3Cpath%20d%3D%22M35.9492188%201.2998045l-30.1992186%2017.5v34.900391l30.1992186%2017.5%2030.300781-17.5v-34.900391zm.701172%208.400391l13.699218%207.90039%209.300782%205.398438v26.5l-23%2013.300781-22.999999-13.300781v-26.5l9.298827-5.398438z%22%2F%3E%20%20%20%20%3Cpath%20d%3D%22M50.7499998%2043.1998043c-.2-.4-.5-.7-.8-1.1-.3-.5-.7-.9-.8-1.5-.2-.6%200-1.1%200-1.7%200-1.1-.3-2.2-.6-3.2-.2-.5-.3-1.1-.5-1.6-.1-.3-.2-.6-.4-.9-.1-.1-.1-.4%200-.5.3-.2.6-.5.8-.7.2-.4%200-.9-.3-1.1-.5-.2-.4.5-.8.7h-.2c-.1-.2.1-.3.2-.4%200-.1%200-.2-.1-.2-.3%200-.6-.1-.7-.2-.8-1-1.8-1.5-2.9-1.9.3.1.6.1.9.1.5.1%201.1%200%201.5-.2.4-.2.4-.7.5-1.1.1-.1%200-.2%200-.4s-.2-.4-.3-.6c0%200-.1-.1-.2-.3-.8-.9-3.9-3.5-9.7-3.1-2.5.2-5.6.9-9.2%202.7-.1%200-.2.1-.4.1-.6.3-1.4.8-1.9%201.4-.6.7-1.1%201.5-1.3%202.4-.9.6-1.5%201.5-2%202.4-.6%201.2-1.4%202.2-1.4%203.5v.2c.1.4.1.7.2%201.1.2.8.4%201.6.5%202.4l.3%201.2c.2.4%200%20.9.3%201.3.1.2.1.5.4.6v.3c.1.1.1.1.2.1v.3c.6.7%201.3%201.3%201.7%202.1.2.4-.7.2-1.1.1-.7-.3-1.2-.9-1.8-1.4l-.1.1c.3.5%201.4%201.1.8%201.5-.3.2-.7-.2-.9.1-.1.1%200%20.3%200%20.4-.4-.3-.9-.1-1.3-.3-.3-.1-.4-.6-.7-.6-.9-.2-1.8-.4-2.8-.4h-.2c-.9-.1-1.8-.2-2.6-.1v1c.8-.2%201.6-.4%202.4-.4h.2c.2%200%20.5-.1.7%200-.3%200-.7%200-1%20.1-.8.1-1.6.4-2.4.7v1c.4.1.9.1%201.3.2.5.1%201%20.2%201.5.4.7.2%201.2.5%201.8.8.3.2.4.4.7.6.4.2.9.2%201.2%200h.4c1.1-.3%202.2-.6%202.9-1.5%200%20.1.1.1.1.1-.2.6-.2%201.2-.6%201.8%200%20.1-.1.2.1.3h.1c-.1%200-.1%200-.1.1s.2%200%20.3.1c-.4.1-.7.2-.9.5%200%20.1.1.1.2.1-.1.1-.4.1-.4.2l.1.1c-.1%200-.1%200-.1.1v.2c-.2%200-.3.2-.4.2.3.2.5%200%20.8%200-.8.3-1.4.8-2.2%201-.1%200%200%20.2-.1.2.2.1.4-.1.6-.1-.4.3-.8.5-1.2.7l2.4%201.4c1-.6%201.9-1.3%202.7-2.2l.1.1c-.2.7-.6%201.2-1.2%201.7-.4.2-.7.6-1%20.7l1.8%201c.4-.3.7-.5%201.2-.7.1%200%20.2.1.4.1.6-.6%201.3-1.3%202.3-1.1%200%20.1%200%20.1.1.1%200%200%20.1%200%20.1-.1%200%20.1%200%20.1-.1.1-.3.2-.5.4-.8.6-.1.1%200%20.1.1.1.4-.2.6-.4.9-.6-.1.1-.1.2-.1.3-.9.7-1.6%201.4-2.3%202.2l9.5%205.5c.3-.4.7-1%201.1-1.5%201.8-2.6%204.4-6.1%205.2-6.9.3-.2.6-.2%201-.3%201.2%200%202.5.3%203.7.4.1%200%20.3.1.4.1.4.1.9%200%201.4-.1.5-.2%201.1-.5%201.3-1.1.2-.5.3-1.1%200-1.6-.5-.6.4-.9.7-1.3.2-.4-.2-.6-.2-.9-.1-.1-.4-.1-.5-.3.5-.2%201.3-.7.9-1.3-.2-.4-.6-.9-.2-1.3.5-.3%201.3-.3%201.5-.8.6-1-.2-1.7-.7-2.4zm-3.1-3.6c-.1.1.2.2.2.4-.1.1-.3.2-.4.2l-.4.4c.1%200%200%20.2.2.2-.3.4.2%201.1-.3%201.2-.5.2-1.1.2-1.7%200%20.3-.1.7.1.9-.2v-.3c0-.1-.1-.1-.1-.1l-.1.1c0-.1-.2-.3-.2-.3-.4.1-.8-.1-1.1-.4.2-.1.4-.2.7-.1.2%200%20.1-.4.3-.5h.2c.4-.6%201.3-.8%201.4-1.3%200-.1-.4-.1-.7-.2-.4-.1-.8%200-1.2%200-.6.2-1.1.2-1.6.5.4-.3.9-.6%201.4-.8.4-.1.7-.3%201.1-.3.4-.1.9-.2%201.2-.1.4.1.9.1%201%20.3-.1.6-.4%201-.8%201.3z%22%2F%3E%3C%2Fsvg%3E\"","import icon from './franceconnect.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'franceconnect',\n    name: 'France Connect',\n    color: '#034ea2',\n    icon,\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%22400px%22%20height%3D%22400px%22%20viewBox%3D%220%200%20400%20400%22%20enable-background%3D%22new%200%200%20400%20400%22%20xml%3Aspace%3D%22preserve%22%3E%3Cg%3E%20%3Cpath%20fill%3D%22%23FFFFFF%22%20d%3D%22M142.9%2C24.2C97.6%2C39.7%2C59%2C73.6%2C37.5%2C116.5c-7.5%2C14.8-12.9%2C30.5-16.2%2C46.8c-8.2%2C40.4-2.5%2C83.5%2C16.1%2C120.3%20%20c12.1%2C24%2C29.5%2C45.4%2C50.5%2C62.1c19.9%2C15.8%2C43%2C27.6%2C67.6%2C34.1c31%2C8.3%2C64%2C8.1%2C95.2%2C1c28.2-6.5%2C54.9-20%2C76.2-39.6%20%20c22.5-20.7%2C38.6-47.9%2C47.1-77.2c9.3-31.9%2C10.5-66%2C4.7-98.8c-58.3%2C0-116.7%2C0-175%2C0c0%2C24.2%2C0%2C48.4%2C0%2C72.6c33.8%2C0%2C67.6%2C0%2C101.4%2C0%20%20c-3.9%2C23.2-17.7%2C44.4-37.2%2C57.5c-12.3%2C8.3-26.4%2C13.6-41%2C16.2c-14.6%2C2.5-29.8%2C2.8-44.4-0.1c-14.9-3-29-9.2-41.4-17.9%20%20c-19.8-13.9-34.9-34.2-42.6-57.1c-7.9-23.3-8-49.2%2C0-72.4c5.6-16.4%2C14.8-31.5%2C27-43.9c15-15.4%2C34.5-26.4%2C55.6-30.9%20%20c18-3.8%2C37-3.1%2C54.6%2C2.2c15%2C4.5%2C28.8%2C12.8%2C40.1%2C23.6c11.4-11.4%2C22.8-22.8%2C34.2-34.2c6-6.1%2C12.3-12%2C18.1-18.3%20%20c-17.3-16-37.7-28.9-59.9-37.1C228.2%2C10.6%2C183.2%2C10.3%2C142.9%2C24.2z%22%2F%3E%20%3Cg%3E%20%20%3Cpath%20fill%3D%22%23EA4335%22%20d%3D%22M142.9%2C24.2c40.2-13.9%2C85.3-13.6%2C125.3%2C1.1c22.2%2C8.2%2C42.5%2C21%2C59.9%2C37.1c-5.8%2C6.3-12.1%2C12.2-18.1%2C18.3%20%20%20c-11.4%2C11.4-22.8%2C22.8-34.2%2C34.2c-11.3-10.8-25.1-19-40.1-23.6c-17.6-5.3-36.6-6.1-54.6-2.2c-21%2C4.5-40.5%2C15.5-55.6%2C30.9%20%20%20c-12.2%2C12.3-21.4%2C27.5-27%2C43.9c-20.3-15.8-40.6-31.5-61-47.3C59%2C73.6%2C97.6%2C39.7%2C142.9%2C24.2z%22%2F%3E%20%3C%2Fg%3E%20%3Cg%3E%20%20%3Cpath%20fill%3D%22%23FBBC05%22%20d%3D%22M21.4%2C163.2c3.3-16.2%2C8.7-32%2C16.2-46.8c20.3%2C15.8%2C40.6%2C31.5%2C61%2C47.3c-8%2C23.3-8%2C49.2%2C0%2C72.4%20%20%20c-20.3%2C15.8-40.6%2C31.6-60.9%2C47.3C18.9%2C246.7%2C13.2%2C203.6%2C21.4%2C163.2z%22%2F%3E%20%3C%2Fg%3E%20%3Cg%3E%20%20%3Cpath%20fill%3D%22%234285F4%22%20d%3D%22M203.7%2C165.1c58.3%2C0%2C116.7%2C0%2C175%2C0c5.8%2C32.7%2C4.5%2C66.8-4.7%2C98.8c-8.5%2C29.3-24.6%2C56.5-47.1%2C77.2%20%20%20c-19.7-15.3-39.4-30.6-59.1-45.9c19.5-13.1%2C33.3-34.3%2C37.2-57.5c-33.8%2C0-67.6%2C0-101.4%2C0C203.7%2C213.5%2C203.7%2C189.3%2C203.7%2C165.1z%22%2F%3E%20%3C%2Fg%3E%20%3Cg%3E%20%20%3Cpath%20fill%3D%22%2334A853%22%20d%3D%22M37.5%2C283.5c20.3-15.7%2C40.6-31.5%2C60.9-47.3c7.8%2C22.9%2C22.8%2C43.2%2C42.6%2C57.1c12.4%2C8.7%2C26.6%2C14.9%2C41.4%2C17.9%20%20%20c14.6%2C3%2C29.7%2C2.6%2C44.4%2C0.1c14.6-2.6%2C28.7-7.9%2C41-16.2c19.7%2C15.3%2C39.4%2C30.6%2C59.1%2C45.9c-21.3%2C19.7-48%2C33.1-76.2%2C39.6%20%20%20c-31.2%2C7.1-64.2%2C7.3-95.2-1c-24.6-6.5-47.7-18.2-67.6-34.1C67%2C328.9%2C49.6%2C307.5%2C37.5%2C283.5z%22%2F%3E%20%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E\"","import icon from './google.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'google',\n    name: 'Google',\n    color: '#ea4335',\n    btnBorderColor: 'rgba(0,0,0,.15)',\n    btnTextColor: '#58666e',\n    btnBackgroundColor: '#ffffff',\n    icon,\n    windowSize: {\n        width: 560,\n        height: 630,\n    },\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2235%22%20height%3D%2232%22%20viewBox%3D%220%200%2035%2032%22%3E%20%20%20%20%3Cg%3E%20%20%20%20%20%20%20%20%3Cline%20stroke-width%3D%221%22%20x1%3D%22%22%20y1%3D%22%22%20x2%3D%22%22%20y2%3D%22%22%20stroke%3D%22%23449FDB%22%20opacity%3D%22%22%3E%3C%2Fline%3E%20%20%20%20%3C%2Fg%3E%20%20%20%20%3Cpath%20d%3D%22M7.594%2025.211c0%200-0.578%203.132-3.843%206.319-0.062%200.064-0.166%200.151-0.134%200.315%200.023%200.116%200.148%200.25%200.332%200.223%201.218-0.183%206.994-2.312%2010.284-4.696%201.030%200.15%202.091%200.228%203.175%200.228%209.634%200%2017.444-6.173%2017.444-13.788s-7.81-13.789-17.444-13.789c-9.634%200-17.444%206.173-17.444%2013.788%200%204.738%203.024%208.918%207.629%2011.4z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%20%20%20%20%3Cpath%20d%3D%22M6.416%2011.811h-1.697c-0.619%200-0.877-0.451-0.877-0.89%200-0.452%200.322-0.89%200.877-0.89h5.328c0.555%200%200.877%200.438%200.877%200.89%200%200.438-0.258%200.89-0.877%200.89h-1.696v6.128c0%200.645-0.413%201.006-0.968%201.006s-0.967-0.361-0.967-1.006v-6.128z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%20%20%20%20%3Cpath%20d%3D%22M11.829%2017.175l-0.36%201.087c-0.13%200.4-0.4%200.684-0.929%200.684-0.516%200-0.955-0.387-0.955-0.903%200-0.206%200.065-0.36%200.091-0.426l2.488-6.592c0.219-0.593%200.722-1.071%201.38-1.071%200.684%200%201.162%200.451%201.381%201.071l2.414%206.592c0.078%200.207%200.104%200.388%200.104%200.477%200%200.503-0.413%200.851-0.89%200.851-0.541%200-0.812-0.284-0.941-0.67l-0.351-1.1h-3.43zM13.557%2011.967h-0.026l-1.148%203.469h2.322l-1.148-3.469z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%20%20%20%20%3Cpath%20d%3D%22M18.119%2010.96c0-0.645%200.413-1.006%200.967-1.006s0.968%200.362%200.968%201.006v6.205h2.272c0.658%200%200.955%200.49%200.93%200.929-0.013%200.424-0.361%200.85-0.93%200.85h-3.202c-0.631%200-1.006-0.413-1.006-1.057v-6.928z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%20%20%20%20%3Cpath%20d%3D%22M29.967%2017.145c0.257%200.335%200.49%200.632%200.438%201.032-0.064%200.593-0.593%200.813-1.109%200.761-0.374-0.038-0.581-0.284-0.903-0.722l-2.181-2.973-0.497%200.507v2.267c0%200.503-0.387%200.928-0.968%200.928-0.554%200-0.967-0.361-0.967-0.928v-7.109c0-0.529%200.387-0.954%200.967-0.954%200.555%200%200.968%200.362%200.968%200.954v2.481l2.838-2.957c0.155-0.155%200.4-0.348%200.761-0.348%200.491%200.013%200.942%200.348%200.929%200.903%200%200.335-0.233%200.522-0.658%201.007l-2.006%202.023%202.387%203.128z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%20%20%20%20%3Cpath%20d%3D%22M14.299%208.056c0%200.023-0.013%200.034-0.040%200.034h-0.638c-0.018%200-0.031-0.005-0.040-0.015s-0.016-0.023-0.024-0.037l-0.535-0.969v0.96c0%200.016-0.006%200.030-0.018%200.042s-0.026%200.018-0.042%200.018h-0.495c-0.016%200-0.031-0.006-0.044-0.018s-0.020-0.026-0.020-0.042v-2.139c0-0.016%200.007-0.030%200.020-0.041s0.028-0.017%200.044-0.017h0.495c0.016%200%200.030%200.006%200.042%200.017s0.018%200.025%200.018%200.041v0.963l0.583-0.972c0.008-0.014%200.017-0.026%200.027-0.035s0.023-0.014%200.040-0.014h0.583c0.028%200%200.043%200.011%200.043%200.033%200%200.012-0.004%200.023-0.012%200.033l-0.662%201.045%200.665%201.081c0.006%200.010%200.009%200.020%200.009%200.030z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%20%20%20%20%3Cpath%20d%3D%22M18.469%208.056c0%200.023-0.013%200.034-0.039%200.034h-0.638c-0.018%200-0.032-0.005-0.040-0.015s-0.016-0.023-0.024-0.037l-0.535-0.969v0.96c0%200.016-0.006%200.030-0.018%200.042s-0.026%200.018-0.042%200.018h-0.495c-0.016%200-0.031-0.006-0.044-0.018s-0.020-0.026-0.020-0.042v-2.139c0-0.016%200.007-0.030%200.020-0.041s0.028-0.017%200.044-0.017h0.495c0.016%200%200.030%200.006%200.042%200.017s0.018%200.025%200.018%200.041v0.963l0.583-0.972c0.008-0.014%200.017-0.026%200.027-0.035s0.023-0.014%200.040-0.014h0.583c0.029%200%200.043%200.011%200.043%200.033%200%200.012-0.004%200.023-0.012%200.033l-0.663%201.045%200.665%201.081c0.006%200.010%200.009%200.020%200.009%200.030z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%20%20%20%20%3Cpath%20d%3D%22M22.482%207.118c0%200.186-0.024%200.343-0.074%200.469s-0.117%200.229-0.202%200.308c-0.085%200.079-0.184%200.136-0.298%200.17s-0.233%200.052-0.358%200.052c-0.126%200-0.245-0.017-0.359-0.052s-0.213-0.091-0.298-0.17c-0.085-0.079-0.153-0.182-0.202-0.308s-0.074-0.283-0.074-0.469v-0.313c0-0.184%200.024-0.34%200.074-0.468s0.117-0.231%200.202-0.31c0.085-0.079%200.184-0.136%200.298-0.172s0.233-0.053%200.359-0.053c0.125%200%200.245%200.018%200.358%200.053s0.213%200.093%200.298%200.172c0.085%200.079%200.153%200.182%200.202%200.31s0.074%200.284%200.074%200.468v0.313zM21.857%206.805c0-0.164-0.024-0.281-0.073-0.352s-0.127-0.107-0.234-0.107c-0.107%200-0.185%200.036-0.234%200.107s-0.073%200.188-0.073%200.352v0.313c0%200.164%200.024%200.281%200.073%200.351s0.127%200.104%200.234%200.104c0.107%200%200.185-0.035%200.234-0.104s0.073-0.187%200.073-0.351v-0.313z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%20%20%20%20%3Cpath%20d%3D%22M20.554%208.042c0-0.001-0-0.007-0.002-0.017l-0.376-1.718c-0.058-0.251-0.162-0.503-0.614-0.503s-0.556%200.252-0.614%200.503l-0.376%201.718c-0.002%200.009-0.003%200.016-0.003%200.017-0.002%200.032%200.017%200.047%200.051%200.047h0.526c0.016%200%200.029-0.006%200.040-0.017s0.017-0.025%200.021-0.041l0.072-0.422h0.568l0.071%200.422c0.004%200.017%200.011%200.030%200.021%200.041s0.023%200.017%200.039%200.017h0.526c0.035%200%200.053-0.015%200.051-0.047zM19.353%207.141c0%200%200.131-0.705%200.135-0.72%200.008-0.041%200.026-0.062%200.074-0.062s0.065%200.021%200.074%200.062c0.003%200.015%200.135%200.72%200.135%200.72h-0.416z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%20%20%20%20%3Cpath%20d%3D%22M16.384%208.042c0-0.001-0.001-0.007-0.003-0.017l-0.376-1.718c-0.058-0.251-0.162-0.503-0.614-0.503s-0.556%200.252-0.614%200.503l-0.376%201.718c-0.002%200.009-0.003%200.016-0.003%200.017-0.002%200.032%200.017%200.047%200.051%200.047h0.526c0.016%200%200.029-0.006%200.039-0.017s0.017-0.025%200.021-0.041l0.072-0.422h0.568l0.072%200.422c0.004%200.017%200.011%200.030%200.021%200.041s0.023%200.017%200.040%200.017h0.526c0.034%200%200.053-0.015%200.051-0.047zM15.183%207.141c0%200%200.131-0.705%200.134-0.72%200.009-0.041%200.026-0.062%200.074-0.062s0.065%200.021%200.074%200.062c0.003%200.015%200.135%200.72%200.135%200.72h-0.416z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\"","import icon from './kakaotalk.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'kakaotalk',\n    name: 'KakaoTalk',\n    color: '#fee500',\n    btnTextColor: '#000000',\n    icon,\n    windowSize: {\n        width: 450,\n        height: 400,\n    },\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%3Csvg%20%20%20xmlns%3Adc%3D%22http%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%22%20%20%20xmlns%3Acc%3D%22http%3A%2F%2Fcreativecommons.org%2Fns%23%22%20%20%20xmlns%3Ardf%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%22%20%20%20xmlns%3Asvg%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20%20%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20%20%20xmlns%3Asodipodi%3D%22http%3A%2F%2Fsodipodi.sourceforge.net%2FDTD%2Fsodipodi-0.dtd%22%20%20%20xmlns%3Ainkscape%3D%22http%3A%2F%2Fwww.inkscape.org%2Fnamespaces%2Finkscape%22%20%20%20viewBox%3D%220%200%20369.58011%20345.90307%22%20%20%20height%3D%22345.90308%22%20%20%20width%3D%22369.58011%22%20%20%20xml%3Aspace%3D%22preserve%22%20%20%20id%3D%22svg2%22%20%20%20version%3D%221.1%22%20%20%20inkscape%3Aversion%3D%220.91%20r13725%22%20%20%20sodipodi%3Adocname%3D%22line-logo.svg%22%3E%3Csodipodi%3Anamedview%20%20%20%20%20pagecolor%3D%22%23808080%22%20%20%20%20%20bordercolor%3D%22%23666666%22%20%20%20%20%20borderopacity%3D%221%22%20%20%20%20%20objecttolerance%3D%2210%22%20%20%20%20%20gridtolerance%3D%2210%22%20%20%20%20%20guidetolerance%3D%2210%22%20%20%20%20%20inkscape%3Apageopacity%3D%221%22%20%20%20%20%20inkscape%3Apageshadow%3D%222%22%20%20%20%20%20inkscape%3Awindow-width%3D%221280%22%20%20%20%20%20inkscape%3Awindow-height%3D%22751%22%20%20%20%20%20id%3D%22namedview3425%22%20%20%20%20%20showgrid%3D%22false%22%20%20%20%20%20inkscape%3Azoom%3D%220.73701575%22%20%20%20%20%20inkscape%3Acx%3D%22175.26955%22%20%20%20%20%20inkscape%3Acy%3D%22205.82195%22%20%20%20%20%20inkscape%3Awindow-x%3D%220%22%20%20%20%20%20inkscape%3Awindow-y%3D%221%22%20%20%20%20%20inkscape%3Awindow-maximized%3D%221%22%20%20%20%20%20inkscape%3Acurrent-layer%3D%22svg2%22%20%20%20%20%20showborder%3D%22true%22%20%20%20%20%20fit-margin-top%3D%220%22%20%20%20%20%20fit-margin-left%3D%220%22%20%20%20%20%20fit-margin-right%3D%220%22%20%20%20%20%20fit-margin-bottom%3D%220%22%20%2F%3E%3Cmetadata%20%20%20%20%20id%3D%22metadata8%22%3E%3Crdf%3ARDF%3E%3Ccc%3AWork%20%20%20%20%20%20%20%20%20rdf%3Aabout%3D%22%22%3E%3Cdc%3Aformat%3Eimage%2Fsvg%2Bxml%3C%2Fdc%3Aformat%3E%3Cdc%3Atype%20%20%20%20%20%20%20%20%20%20%20rdf%3Aresource%3D%22http%3A%2F%2Fpurl.org%2Fdc%2Fdcmitype%2FStillImage%22%20%2F%3E%3Cdc%3Atitle%3E%3C%2Fdc%3Atitle%3E%3C%2Fcc%3AWork%3E%3C%2Frdf%3ARDF%3E%3C%2Fmetadata%3E%3Cdefs%20%20%20%20%20id%3D%22defs6%22%3E%3CclipPath%20%20%20%20%20%20%20id%3D%22clipPath18%22%20%20%20%20%20%20%20clipPathUnits%3D%22userSpaceOnUse%22%3E%3Cpath%20%20%20%20%20%20%20%20%20id%3D%22path16%22%20%20%20%20%20%20%20%20%20d%3D%22m%200%2C841.89%20595.276%2C0%20L%20595.276%2C0%200%2C0%20Z%22%20%20%20%20%20%20%20%20%20inkscape%3Aconnector-curvature%3D%220%22%20%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3Cpath%20%20%20%20%20style%3D%22fill-opacity%3A1%3Bfill-rule%3Anonzero%3Bstroke%3Anone%22%20%20%20%20%20fill%3D%22%23ffffff%22%20%20%20%20%20d%3D%22M%20184.78906%2C0%20C%2082.73173%2C0%20-0.00299992%2C66.24804%208.1583437e-8%2C147.9707%208.1583437e-8%2C220.8147%2065.73362%2C281.36316%20152.29492%2C293.66016%20l%200%2C0.002%200.0391%2C0.004%20c%202.03333%2C0.288%204.08462%2C0.54001%206.14062%2C0.77734%2029.472%2C6.13734%203.92552%2C43.02507%2013.57618%2C50.56641%2011.10134%2C8.676%2095.21311%2C-47.55831%20146.31445%2C-94.79297%207.396%2C-6.19333%2014.12236%2C-12.9035%2020.0957%2C-20.04883%20l%200.10938%2C-0.11719%20c%201.42533%2C-1.57066%202.55459%2C-2.9913%203.41992%2C-4.2793%2017.48667%2C-22.60267%2027.58984%2C-49.25544%2027.58984%2C-77.80078%200%2C-81.72266%20-82.73368%2C-147.9707%20-184.79101%2C-147.9707%20z%20m%20-99.54102%2C104.41211%200.80469%2C0%20c%205.30133%2C0%209.63672%2C4.33733%209.63672%2C9.63867%20l%200%2C61.03711%2026.82812%2C0%20c%205.30134%2C0%209.63672%2C4.336%209.63672%2C9.63867%20l%200%2C0.80274%20c%200%2C5.30267%20-4.33538%2C9.64062%20-9.63672%2C9.64062%20l%20-36.46484%2C0%20-0.18555%2C0%20-0.61914%2C0%20c%20-5.30133%2C0%20-9.63672%2C-4.33662%20-9.63672%2C-9.64062%20l%200%2C-71.47852%20c%200%2C-5.30134%204.33539%2C-9.63867%209.63672%2C-9.63867%20z%20m%2064.32227%2C0.002%200.80469%2C0%20c%205.30133%2C0%209.63671%2C4.33539%209.63671%2C9.63672%20l%200%2C71.47852%20c%200%2C5.30267%20-4.33538%2C9.64062%20-9.63671%2C9.64062%20l%20-0.80469%2C0%20c%20-5.30133%2C0%20-9.63867%2C-4.33795%20-9.63867%2C-9.64062%20l%200%2C-71.47852%20c%200%2C-5.30133%204.33734%2C-9.63672%209.63867%2C-9.63672%20z%20m%2033.64648%2C0.002%200.80469%2C0%20c%203.57067%2C0%206.70319%2C1.96771%208.36719%2C4.87304%20l%2034.83593%2C46.72266%200%2C-41.95899%20c%200%2C-5.30133%204.33602%2C-9.63671%209.63868%2C-9.63671%20l%200.80273%2C0%20c%205.304%2C0%209.63867%2C4.33538%209.63867%2C9.63671%20l%200%2C71.47852%20c%200%2C2.62666%20-1.06648%2C5.01577%20-2.78515%2C6.75977%20l%20-0.004%2C0.004%20c%20-0.57334%2C0.69733%20-1.38561%2C1.28938%20-2.34961%2C1.74805%20-1.34666%2C0.71733%20-2.87795%2C1.12695%20-4.50195%2C1.12695%20l%20-0.80469%2C0%20c%20-1.292%2C0%20-2.52692%2C-0.25928%20-3.65625%2C-0.72461%20-1.46934%2C-0.55067%20-2.78662%2C-1.45486%20-3.75195%2C-2.76953%20-0.25466%2C-0.308%20-0.48908%2C-0.6308%20-0.70508%2C-0.9668%20l%20-35.08789%2C-47.92187%200%2C42.74414%20c%200%2C5.30266%20-4.33539%2C9.64062%20-9.63672%2C9.64062%20l%20-0.80469%2C0%20c%20-5.30267%2C1e-5%20-9.63867%2C-4.33796%20-9.63867%2C-9.64062%20l%200%2C-71.47852%20c%200%2C-5.30133%204.33734%2C-9.63671%209.63867%2C-9.63671%20z%20m%2086.0625%2C0.16796%200.6211%2C0%200.18359%2C0%2036.46484%2C0%20c%205.30266%2C0%209.63868%2C4.33601%209.63868%2C9.63868%20l%200%2C0.80273%20c%200%2C5.30133%20-4.33602%2C9.63867%20-9.63868%2C9.63867%20l%20-26.82617%2C0%200%2C15.25977%2026.82617%2C0%20c%205.30266%2C0%209.63868%2C4.33601%209.63868%2C9.63867%20l%200%2C0.80273%20c%200%2C5.30133%20-4.33602%2C9.63777%20-9.63868%2C9.63477%20l%20-26.82617%2C0%200%2C15.25977%2026.82617%2C0%20c%205.30266%2C0%209.63868%2C4.33601%209.63868%2C9.63867%20l%200%2C0.80273%20c%200%2C5.30267%20-4.33602%2C9.63867%20-9.63868%2C9.63867%20l%20-36.46484%2C0%20-0.18359%2C0%20-0.6211%2C0%20c%20-5.3%2C0%20-9.63476%2C-4.336%20-9.63476%2C-9.63867%20l%200%2C-71.47851%20c%200%2C-5.30267%204.33476%2C-9.63868%209.63476%2C-9.63868%20z%22%20%20%20%20%20id%3D%22path22%22%20%20%20%20%20inkscape%3Aconnector-curvature%3D%220%22%20%2F%3E%3C%2Fsvg%3E\"","import icon from './line.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'line',\n    name: 'Line',\n    color: '#00c300',\n    icon,\n    windowSize: {\n        width: 440,\n        height: 550,\n    },\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M477%20625v991h-330v-991h330zm21-306q1%2073-50.5%20122t-135.5%2049h-2q-82%200-132-49t-50-122q0-74%2051.5-122.5t134.5-48.5%20133%2048.5%2051%20122.5zm1166%20729v568h-329v-530q0-105-40.5-164.5t-126.5-59.5q-63%200-105.5%2034.5t-63.5%2085.5q-11%2030-11%2081v553h-329q2-399%202-647t-1-296l-1-48h329v144h-2q20-32%2041-56t56.5-52%2087-43.5%20114.5-15.5q171%200%20275%20113.5t104%20332.5z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E\"","import icon from './linkedin.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'linkedin',\n    name: 'LinkedIn',\n    color: '#0077b5',\n    icon,\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%20512%20512%22%3E%20%20%20%20%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22m338.9325%2C254.73273c-2.7587%2C-53.7213%20-42.64825%2C-86.03352%20-90.81926%2C-86.03352l-1.81364%2C0c-55.58786%2C0%20-86.41135%2C43.71193%20-86.41135%2C93.36995c0%2C55.58963%2037.28972%2C90.70813%2086.20149%2C90.70813c54.51491%2C0%2090.37047%2C-39.94247%2092.96495%2C-87.17941l-0.12253%2C-10.86514l0.00037%2C0l-0.00003%2C0zm-92.36253%2C-134.12075c37.14186%2C0%2072.06859%2C16.419%2097.70509%2C42.12824l0%2C0.09587c0%2C-12.33736%208.30704%2C-21.64256%2019.83444%2C-21.64256l2.91922%2C-0.01956c18.02805%2C0%2021.74091%2C17.06667%2021.74091%2C22.4655l0.08163%2C191.87061c-1.27533%2C12.56726%2012.96695%2C19.05533%2020.858%2C10.98727c30.81427%2C-31.66293%2067.66794%2C-162.77498%20-19.1539%2C-238.72443c-80.91397%2C-70.82441%20-189.48596%2C-59.1584%20-247.22675%2C-19.35647c-61.38795%2C42.33453%20-100.65891%2C136.04395%20-62.50809%2C224.05164c41.59364%2C95.98645%20160.60377%2C124.61685%20231.34043%2C96.05566c35.81735%2C-14.45566%2052.35477%2C33.95807%2015.15643%2C49.7803c-56.20123%2C23.93597%20-212.65044%2C21.52026%20-285.72825%2C-105.07782c-49.37709%2C-85.47534%20-46.76059%2C-235.87268%2084.20552%2C-313.78905c100.17726%2C-59.62546%20232.2637%2C-43.12263%20311.90784%2C40.05385c83.25119%2C86.95306%2078.38718%2C249.78824%20-2.80414%2C313.08463c-36.79355%2C28.76538%20-91.44339%2C0.78082%20-91.0986%2C-41.12851l-0.37408%2C-13.70035c-25.61804%2C25.41931%20-59.71478%2C40.25085%20-96.85658%2C40.25085c-73.38423%2C0%20-137.95771%2C-64.55344%20-137.95771%2C-137.95044c0%2C-74.10297%2064.57348%2C-139.43562%20137.95771%2C-139.43562l0%2C0%22%2F%3E%3C%2Fsvg%3E\"","import icon from './mailru.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'mailru',\n    name: 'Mail.ru',\n    color: '#4988c3',\n    icon,\n    windowSize: {\n        width: 450,\n        height: 400,\n    },\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20height%3D%2288%22%20width%3D%2288%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22m0%2C12.402%2C35.687-4.8602%2C0.0156%2C34.423-35.67%2C0.20313zm35.67%2C33.529%2C0.0277%2C34.453-35.67-4.9041-0.002-29.78zm4.3261-39.025%2C47.318-6.906%2C0%2C41.527-47.318%2C0.37565zm47.329%2C39.349-0.0111%2C41.34-47.318-6.6784-0.0663-34.739z%22%2F%3E%3C%2Fsvg%3E\"","import icon from './microsoft.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'microsoft',\n    fontKey: 'windows',\n    name: 'Microsoft',\n    color: '#00a1f1',\n    icon,\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3Csvg%20width%3D%22800px%22%20height%3D%22800px%22%20viewBox%3D%220%200%20512%20512%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23FFFFFF%22%20d%3D%22M9%2032V480H181.366V255.862L331.358%20480H504V32H331.358V255.862L181.366%2032H9Z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\"","import icon from './naver.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'naver',\n    name: 'Naver',\n    color: '#19CE60',\n    icon,\n    windowSize: {\n        width: 450,\n        height: 400,\n    },\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3Csvg%20version%3D%221.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201594%201595%22%20width%3D%221594%22%20height%3D%221595%22%3E%20%3Ctitle%3Eoktaddd-svg%3C%2Ftitle%3E%20%3Cstyle%3E%20%20.s0%20%7B%20fill%3A%20%23000000%20%7D%20%20%3C%2Fstyle%3E%20%3Cpath%20id%3D%22Layer%22%20fill-rule%3D%22evenodd%22%20class%3D%22s0%22%20d%3D%22m877%2011.5l-32.8%20403.8c-15.5-1.8-31-2.7-46.9-2.7-19.9%200-39.4%201.3-58.5%204.4l-18.6-195.6c-0.4-6.2%204.5-11.6%2010.7-11.6h33.2l-16-197.8c-0.4-6.2%204.5-11.6%2010.2-11.6h108.5c6.2%200%2011.1%205.4%2010.2%2011.1zm-166.1%20410.4c-35%208-68.2%2020.8-98.8%2037.6l-84.6-177.5c-2.6-5.3%200-11.9%205.8-14.2l31.4-11.5-82.8-180.6c-2.6-5.3%200-11.9%205.8-14.2l101.9-37.2c5.7-2.2%2011.9%201.4%2013.7%207.1%200.4%200%20107.6%20390.5%20107.6%20390.5zm-357.4-278l234.3%20330.2c-29.7%2019.5-56.7%2042.5-79.7%2069.1l-140.5-138.1c-4.4-4.4-3.9-11.5%200.5-15.5l25.7-21.3-139.6-141.2c-4.4-4.4-3.9-11.5%200.9-15.5l82.9-69.5c4.8-4%2011.5-3.1%2015%201.8zm136.9%20421.4c-21.3%2027.9-38.5%2058.9-51.4%2092.1l-178.9-81.9c-5.8-2.2-8-9.3-4.9-14.6l16.8-28.8-179.8-85c-5.3-2.6-7.5-9.3-4.4-14.6l54-93.8c3.1-5.3%2010.2-7.1%2015.1-3.6zm-466%2024.8c0.9-6.2%207.1-9.7%2012.8-8.4l392%20102.3c-10.2%2033.2-15.9%2068.2-16.8%20104.5l-196.2-16c-6.2-0.4-10.7-6.2-9.3-12.4l5.7-32.7-198-18.6c-6.2-0.5-10.1-6.2-9.3-12.4l18.6-106.7zm-15%20264.7l403.5-37.2c1.8%2035.9%208.9%2070.9%2019.9%20103.6l-189.5%2052.3c-5.8%201.3-12-2.2-12.9-8.4l-5.7-32.8-192.3%2050c-5.7%201.4-11.9-2.2-12.8-8.4l-19.1-106.7c-0.9-6.2%203.1-11.9%209.3-12.4zm63.4%20280.7c-3.1-5.3-0.9-11.9%204.4-14.6l365.9-173.5c13.7%2032.7%2032.3%2063.3%2054.4%2090.7l-160.3%20114.2c-4.9%203.6-12%202.2-15.1-3.1l-16.8-29.2-163.4%20112.9c-4.9%203.5-12%201.8-15.1-3.5%200%200-54.5-93.9-54-93.9zm525.7-9.3l-111.6%20162c-3.5%205.4-10.6%206.2-15.5%202.3l-25.7-21.7-115.1%20162c-3.6%204.9-10.2%205.8-15.1%201.8l-83.3-69.5c-4.8-4-5.3-11.1-0.9-15.5l284.8-288.2c24.4%2025.6%2052.3%2048.2%2082.4%2066.8zm-138.6%20395.8c-5.8-2.2-8.4-8.9-5.8-14.2l168.8-368.3c31%2015.9%2064.7%2027.9%2099.7%2034.5l-49.7%20190.4c-1.3%205.7-7.9%209.3-13.7%207.1l-31.4-11.5-52.7%20191.7c-1.8%205.7-8%209.3-13.8%207l-101.8-37.1zm337.5-340c19.9%200%2039.4-1.4%2058.4-4.5l18.6%20195.7c0.5%206.2-4.4%2011.5-10.6%2011.5h-33.2l15.9%20197.9c0.9%206.2-3.9%2011.5-10.1%2011.5h-108.6c-5.7%200-10.6-5.3-10.2-11.5l32.8-403.7c15.5%202.2%2031%203.1%2047%203.1zm174.5-728.3c-31-15.5-64.2-27.5-99.7-34.5l49.6-190.4c1.8-5.8%208-9.3%2013.8-7.1l31.4%2011.5%2052.7-191.7c1.8-5.7%208-9.3%2013.8-7.1l101.8%2037.2c5.8%202.2%208.5%208.4%205.8%2014.2zm391.6-207.2l-284.9%20288.2c-23.9-25.7-51.3-48.2-81.9-66.8l111.6-162.1c3.6-4.8%2010.7-6.2%2015.5-2.2l25.7%2021.7%20115.2-162c3.5-4.9%2010.6-5.8%2015-1.8l83.3%2069.5c4.9%204%204.9%2011.1%200.5%2015.5zm153.7%20227.1l-365.9%20173.6c-14.2-32.8-32.3-63.4-54.5-90.8l160.3-114.2c4.9-4%2012-2.2%2015.1%203.1l16.8%2028.8%20163.5-112.9c4.9-3.1%2011.9-1.8%2015%203.5l54.5%2093.9c3.1%205.3%201.4%2011.9-4.4%2014.6zm58%20146.5l18.6%20106.7c0.9%206.2-3.1%2011.5-9.3%2012.4l-403.5%2037.6c-1.8-36.3-8.9-70.8-19.9-103.6l189.6-52.2c5.7-1.8%2011.9%202.2%2012.8%208.4l5.8%2032.8%20192.2-50.1c5.8-1.3%2012%202.3%2012.8%208.5zm-18.6%20391.3l-392-102.3c10.2-33.2%2016-68.1%2016.9-104.4l196.2%2015.9c6.2%200.9%2010.2%206.2%209.3%2012.4l-5.8%2032.8%20198%2018.6c6.2%200.8%2010.2%206.1%209.3%2012.3l-18.6%20106.7c-0.9%206.2-7.1%209.8-12.8%208.5zm-104.1%20243.9c-3.1%205.3-10.2%206.6-15.1%203.5l-333.5-230.2c21.3-27.9%2038.5-58.9%2051.4-92.1l178.9%2081.9c5.8%202.7%208%209.3%204.9%2014.6l-16.8%2028.8%20179.8%2085c5.3%202.7%207.5%209.3%204.4%2014.6zm-446.5-135.9c29.7-19%2056.3-42.5%2079.8-69l140.4%20138.1c4.4%204.4%204.4%2011.5-0.5%2015.5l-25.7%2021.2%20139.6%20141.3c4%204.4%204%2011.5-0.9%2015.4l-82.8%2069.6c-4.5%203.9-11.6%203.1-15.1-1.8l-234.3-330.3zm-1.8%20449.8c-5.7%202.2-11.9-1.3-13.7-7.1l-107.2-390.4c35-8%2068.2-20.8%2098.8-37.7l84.6%20177.6c2.6%205.7%200%2012.4-5.8%2014.1l-31.4%2011.5%2082.8%20180.7c2.6%205.7%200%2011.9-5.8%2014.1l-101.8%2037.2z%22%2F%3E%3C%2Fsvg%3E\"","import icon from './okta.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'okta',\n    name: 'Okta',\n    color: '#58666e',\n    btnTextColor: '#58666e',\n    btnBackgroundColor: '#ffffff',\n    btnBorderColor: '#00000026',\n    icon,\n    windowSize: {\n        width: 450,\n        height: 400,\n    },\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%201500%20750%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M%20145.507812%20616.734375%20C%2093.640625%20616.734375%2051.414062%20574.609375%2051.414062%20520.867188%20C%2051.414062%20467.121094%2093.640625%20424.894531%20145.507812%20424.894531%20C%20197.03125%20424.894531%20239.46875%20467.121094%20239.46875%20520.867188%20C%20239.46875%20574.609375%20197.03125%20616.734375%20145.507812%20616.734375%20M%20145.507812%20375.074219%20C%2063.894531%20375.074219%200%20439.054688%200%20520.867188%20C%200%20602.574219%2063.894531%20666.65625%20145.507812%20666.65625%20C%20226.910156%20666.65625%20290.804688%20602.574219%20290.804688%20520.867188%20C%20290.804688%20439.054688%20226.910156%20375.074219%20145.507812%20375.074219%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20d%3D%22M%20893.976562%20517.019531%20C%20893.496094%20438.929688%20830.347656%20375.402344%20753.089844%20375.402344%20C%20673.589844%20375.402344%20611.269531%20439.15625%20611.269531%20520.511719%20C%20611.269531%20558.714844%20625.914062%20594.980469%20652.265625%20622.667969%20C%20679.09375%20650.6875%20714.476562%20666.128906%20752.128906%20666.128906%20C%20795.101562%20666.128906%20855.308594%20645.53125%20883.929688%20587.082031%20L%20884.679688%20585.195312%20L%20827.0625%20585.195312%20L%20826.714844%20585.625%20C%20811.242188%20604.109375%20782.035156%20616.582031%20754.214844%20616.582031%20C%20718.886719%20616.582031%20676.503906%20593.320312%20664.90625%20540.808594%20L%20892.855469%20540.808594%20C%20893.363281%20535.375%20893.976562%20524.511719%20893.976562%20517.019531%20M%20666.589844%20494.433594%20C%20673.589844%20459.25%20707.316406%20424.894531%20752.664062%20424.894531%20C%20797.933594%20424.894531%20831.632812%20459.25%20838.554688%20494.433594%20Z%20M%20666.589844%20494.433594%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20d%3D%22M%20451.410156%20423.234375%20C%20400.050781%20423.234375%20373.941406%20450.722656%20373.941406%20505.148438%20L%20373.941406%20666.253906%20L%20321.1875%20666.253906%20L%20321.1875%20501.351562%20C%20321.695312%20472.453125%20326.828125%20452.007812%20338.640625%20432.816406%20C%20352.613281%20411.265625%20385.804688%20375%20451.410156%20375%20C%20516.855469%20375%20550.15625%20411.265625%20564.105469%20432.816406%20C%20575.808594%20452.007812%20581.101562%20472.453125%20581.421875%20501.351562%20L%20581.421875%20666.253906%20L%20528.722656%20666.253906%20L%20528.722656%20505.148438%20C%20528.722656%20450.722656%20502.773438%20423.234375%20451.410156%20423.234375%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20d%3D%22M%201168.1875%20375.074219%20L%201057.015625%20645.933594%20L%201029.546875%20712.957031%20L%201014.367188%20750%20L%20959.53125%20750%20L%201002.074219%20645.984375%20L%20888.445312%20375.074219%20L%20946.382812%20375.074219%20L%201029.570312%20578.734375%20L%201112.921875%20375.074219%20Z%20M%201168.1875%20375.074219%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E\"","import icon from './oney.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'oney',\n    name: 'Oney',\n    color: '#8bbc06',\n    icon,\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20width%3D%22350%22%20height%3D%22350%22%3E%20%20%20%20%3Cpath%20id%3D%22background%22%20style%3D%22fill%3A%20rgb%28255%2C%20255%2C%20255%29%3B%22%20d%3D%22M%20350%2C350%200%2C350%200%2C0%20l%20350%2C0%200%2C350%20z%22%2F%3E%20%20%20%20%3Cpath%20id%3D%22letter_o%22%20style%3D%22fill%3A%20rgb%28255%2C%20102%2C%200%29%3B%22%20d%3D%22m%2043.07789%2C321.77478%20c%20-12.673527%2C0%20-24.106883%2C-8.06959%20-24.106883%2C-25.70382%200%2C-17.63421%2011.433356%2C-25.7038%2024.106883%2C-25.7038%2012.673527%2C0%2024.089894%2C8.06959%2024.089894%2C25.7038%200%2C17.63422%20-11.416367%2C25.70382%20-24.089894%2C25.70382%20m%200%2C-40.56887%20c%20-9.581594%2C0%20-11.331424%2C8.63023%20-11.331424%2C14.86505%200%2C6.23485%201.74983%2C14.88207%2011.331424%2C14.88207%209.581594%2C0%2011.331424%2C-8.64722%2011.331424%2C-14.88207%200%2C-6.23482%20-1.74983%2C-14.86505%20-11.331424%2C-14.86505%22%2F%3E%20%20%20%20%3Cpath%20id%3D%22letter_r%22%20style%3D%22fill%3A%20rgb%28255%2C%20102%2C%200%29%3B%22%20d%3D%22m%2075.959576%2C271.65166%2012.197845%2C0%200%2C5.72518%20c%202.327444%2C-3.09194%208.052616%2C-6.72751%2013.421029%2C-6.72751%200.50966%2C0%201.13824%2C0%201.66489%2C0.068%20l%200%2C12.04495%20-0.62858%2C0%20c%20-5.572279%2C0%20-11.671202%2C0.86642%20-13.641884%2C5.19853%20l%200%2C32.39734%20-13.0133%2C0%200%2C-48.70644%20z%22%2F%3E%20%20%20%20%3Cpath%20id%3D%22letter_a%22%20style%3D%22fill%3A%20rgb%28255%2C%20102%2C%200%29%3B%22%20d%3D%22m%20137.30386%2C316.11774%20c%20-4.96068%2C3.26181%20-10.32909%2C4.84176%20-16.10523%2C4.84176%20-9.08892%2C0%20-14.47432%2C-6.04795%20-14.47432%2C-14.16853%200%2C-10.9067%2010.0233%2C-16.66585%2030.68149%2C-18.9933%20l%200%2C-2.71819%20c%200%2C-3.53364%20-2.68421%2C-5.60624%20-7.64489%2C-5.60624%20-4.96069%2C0%20-8.98699%2C1.97068%20-11.89205%2C5.60624%20l%20-8.64722%2C-4.9267%20c%204.53597%2C-6.35375%2011.45034%2C-9.53062%2020.74313%2C-9.53062%2012.70751%2C0%2019.84274%2C5.50432%2019.84274%2C14.45732%200%2C0%20-0.017%2C35.21747%200%2C35.3024%20l%20-11.36541%2C0%20-1.13824%2C-4.26414%20z%20m%20-17.95699%2C-10.26115%20c%200%2C3.27881%202.05563%2C6.33676%205.77614%2C6.33676%204.02631%2C0%207.95068%2C-1.66487%2011.87506%2C-5.13056%20l%200%2C-11.53528%20c%20-11.97699%2C1.47801%20-17.6512%2C4.56993%20-17.6512%2C10.32909%22%2F%3E%20%20%20%20%3Cpath%20id%3D%22letter_n%22%20style%3D%22fill%3A%20rgb%28255%2C%20102%2C%200%29%3B%22%20d%3D%22m%20159.93783%2C272.9496%2010.6179%2C-1.46103%201.17222%2C5.77615%20c%205.98%2C-4.38307%2010.73682%2C-6.71052%2016.71682%2C-6.71052%2010.0233%2C0%2015.20483%2C5.31745%2015.20483%2C15.85039%20l%200%2C33.90934%20-12.82642%2C0%200%2C-31.68381%20c%200%2C-5.96302%20-1.54596%2C-8.64723%20-6.18386%2C-8.64723%20-3.82245%2C0%20-7.64489%2C1.73284%20-12.01097%2C5.4024%20l%200%2C34.92864%20-12.69052%2C0%200%2C-47.36433%20z%22%2F%3E%20%20%20%20%3Cpath%20id%3D%22letter_g%22%20style%3D%22fill%3A%20rgb%28255%2C%20102%2C%200%29%3B%22%20d%3D%22m%20235.02253%2C309.88953%20c%209.7175%2C-0.0679%2010.54995%2C-9.97234%2010.54995%2C-16.41103%200%2C-7.64489%20-3.72052%2C-13.81176%20-10.63489%2C-13.81176%20-4.60393%2C0%20-9.75148%2C3.36374%20-9.75148%2C14.33841%200%2C5.99699%200.42471%2C15.96931%209.83642%2C15.88438%20m%2022.86671%2C-38.41132%200%2C46.12416%20c%200%2C8.12057%20-0.64557%2C21.55859%20-23.83506%2C21.67751%20-9.5816%2C0.068%20-18.46666%2C-3.77148%20-20.23348%2C-12.12989%20l%2012.63955%2C-2.03864%20c%200.52665%2C2.3954%202.00466%2C4.77381%209.17387%2C4.77381%206.64256%2C0%209.83642%2C-3.17687%209.83642%2C-10.78779%20l%200%2C-5.6742%20-0.16988%2C-0.16989%20c%20-2.03864%2C3.65256%20-5.13057%2C7.10125%20-12.5716%2C7.10125%20-11.3654%2C0%20-20.30142%2C-7.88273%20-20.30142%2C-24.34472%200%2C-16.29211%209.22483%2C-25.41501%2019.57091%2C-25.432%209.73449%2C-0.017%2013.3191%2C4.41705%2014.16853%2C6.74449%20l%20-0.16989%2C-0.017%201.07029%2C-5.8271%2010.82176%2C0%20z%22%2F%3E%20%20%20%20%3Cpath%20id%3D%22letter_e%22%20style%3D%22fill%3A%20rgb%28255%2C%20102%2C%200%29%3B%22%20d%3D%22m%20288.54015%2C321.24644%20c%20-14.3554%2C0%20-22.91768%2C-9.24183%20-22.91768%2C-25.26212%200%2C-16.20717%208.66421%2C-25.432%2022.71382%2C-25.432%2014.0496%2C0%2022.40802%2C8.95302%2022.40802%2C24.78643%200%2C0.84943%20-0.10194%2C1.68188%20-0.10194%2C2.51432%20l%20-32.43131%2C0%20c%200.0849%2C9.24182%203.92437%2C13.89671%2011.46733%2C13.89671%204.84176%2C0%208.05262%2C-1.95369%2011.0596%2C-6.23483%20l%209.37774%2C5.19852%20c%20-4.12824%2C6.91438%20-11.56927%2C10.53296%20-21.57558%2C10.53296%20m%209.61557%2C-31.70081%20c%200%2C-6.50665%20-3.7375%2C-10.34608%20-9.81943%2C-10.34608%20-5.79313%2C0%20-9.41171%2C3.75449%20-9.92137%2C10.34608%20l%2019.7408%2C0%20z%22%2F%3E%20%20%20%20%3Cpath%20id%3D%22letter_TM%22%20style%3D%22fill%3A%20rgb%28255%2C%20102%2C%200%29%3B%22%20d%3D%22m%20332.69028%2C253.16977%20-4.72284%2C12.21483%20-4.80779%2C-12.21483%20-4.11125%2C0%200%2C16.10523%202.66722%2C0%200%2C-13.43801%200.0679%2C0%205.28347%2C13.43801%201.69886%2C0%205.24949%2C-13.43801%200.0849%2C0%200%2C13.43801%202.65023%2C0%200%2C-16.10523%20-4.06029%2C0%20z%20m%20-29.64518%2C0%200%2C2.14057%205.02864%2C0%200%2C13.96466%202.66721%2C0%200%2C-13.96466%205.04563%2C0%200%2C-2.14057%20-12.74148%2C0%20z%22%2F%3E%3C%2Fsvg%3E\"","import icon from './orange.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'orange',\n    name: 'Orange',\n    color: '#ff6600',\n    icon,\n    hidden: true,\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1647%20646q18%2084-4%20204-87%20444-565%20444h-44q-25%200-44%2016.5t-24%2042.5l-4%2019-55%20346-2%2015q-5%2026-24.5%2042.5t-44.5%2016.5h-251q-21%200-33-15t-9-36q9-56%2026.5-168t26.5-168%2027-167.5%2027-167.5q5-37%2043-37h131q133%202%20236-21%20175-39%20287-144%20102-95%20155-246%2024-70%2035-133%201-6%202.5-7.5t3.5-1%206%203.5q79%2059%2098%20162zm-172-282q0%20107-46%20236-80%20233-302%20315-113%2040-252%2042%200%201-90%201l-90-1q-100%200-118%2096-2%208-85%20530-1%2010-12%2010h-295q-22%200-36.5-16.5t-11.5-38.5l232-1471q5-29%2027.5-48t51.5-19h598q34%200%2097.5%2013t111.5%2032q107%2041%20163.5%20123t56.5%20196z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E\"","import icon from './paypal.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'paypal',\n    name: 'PayPal',\n    color: '#003087',\n    icon,\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%22800px%22%20height%3D%22800px%22%20viewBox%3D%220%200%20128%20128%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20aria-hidden%3D%22true%22%20role%3D%22img%22%20class%3D%22iconify%20iconify--noto%22%20preserveAspectRatio%3D%22xMidYMid%20meet%22%3E%3Cpath%20d%3D%22M72.51%2015.42H34.65c-.15%200-.28.06-.42.08h-6.47c-1.24%200-2.24%201-2.24%202.24v100.97c0%201.24%201%202.24%202.24%202.24h21.9c1.24%200%202.24-1%202.24-2.24V86.63h20.61c19.83%200%2035.96-15.97%2035.96-35.6c.01-19.63-16.13-35.61-35.96-35.61zm-1.72%2050.22c-.35.03-.7.06-1.06.06H52.28c-.05%200-.09-.04-.14-.06a.513.513%200%200%201-.24-.1a.577.577%200%200%201-.21-.43V36.94c0-.18.09-.32.21-.43c.06-.06.14-.07.22-.09c.06-.02.09-.06.15-.06h17.45c.4%200%20.8.03%201.19.06c7.25.63%2012.97%206.94%2012.97%2014.61c.01%207.71-5.77%2014.05-13.09%2014.61z%22%20fill%3D%22%23fff%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\"","import icon from './ping.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'ping',\n    name: 'Ping',\n    color: '#c90917',\n    icon,\n    windowSize: {\n        width: 450,\n        height: 400,\n    },\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M270%20806q-8-19-8-52%200-20%2011-49t24-45q-1-22%207.5-53t22.5-43q0-139%2092.5-288.5t217.5-209.5q139-66%20324-66%20133%200%20266%2055%2049%2021%2090%2048t71%2056%2055%2068%2042%2074%2032.5%2084.5%2025.5%2089.5%2022%2098l1%205q55%2083%2055%20150%200%2014-9%2040t-9%2038q0%201%201.5%203.5t3.5%205%202%203.5q77%20114%20120.5%20214.5t43.5%20208.5q0%2043-19.5%20100t-55.5%2057q-9%200-19.5-7.5t-19-17.5-19-26-16-26.5-13.5-26-9-17.5q-1-1-3-1l-5%204q-59%20154-132%20223%2020%2020%2061.5%2038.5t69%2041.5%2035.5%2065q-2%204-4%2016t-7%2018q-64%2097-302%2097-53%200-110.5-9t-98-20-104.5-30q-15-5-23-7-14-4-46-4.5t-40-1.5q-41%2045-127.5%2065t-168.5%2020q-35%200-69-1.5t-93-9-101-20.5-74.5-40-32.5-64q0-40%2010-59.5t41-48.5q11-2%2040.5-13t49.5-12q4%200%2014-2%202-2%202-4l-2-3q-48-11-108-105.5t-73-156.5l-5-3q-4%200-12%2020-18%2041-54.5%2074.5t-77.5%2037.5h-1q-4%200-6-4.5t-5-5.5q-23-54-23-100%200-275%20252-466z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E\"","import icon from './qq.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'qq',\n    name: 'QQ',\n    color: '#0071c3',\n    icon,\n    windowSize: {\n        width: 450,\n        height: 400,\n    },\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%3F%3E%3Csvg%20fill%3D%22%23FFFFFF%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20%20viewBox%3D%220%200%2050%2050%22%20width%3D%22500px%22%20height%3D%22500px%22%3E%20%20%20%20%3Cpath%20d%3D%22M41%2C4H9C6.243%2C4%2C4%2C6.243%2C4%2C9v32c0%2C2.757%2C2.243%2C5%2C5%2C5h32c2.757%2C0%2C5-2.243%2C5-5V9C46%2C6.243%2C43.757%2C4%2C41%2C4z%20M37.006%2C22.323%20c-0.227%2C0.021-0.457%2C0.035-0.69%2C0.035c-2.623%2C0-4.928-1.349-6.269-3.388c0%2C5.349%2C0%2C11.435%2C0%2C11.537c0%2C4.709-3.818%2C8.527-8.527%2C8.527%20s-8.527-3.818-8.527-8.527s3.818-8.527%2C8.527-8.527c0.178%2C0%2C0.352%2C0.016%2C0.527%2C0.027v4.202c-0.175-0.021-0.347-0.053-0.527-0.053%20c-2.404%2C0-4.352%2C1.948-4.352%2C4.352s1.948%2C4.352%2C4.352%2C4.352s4.527-1.894%2C4.527-4.298c0-0.095%2C0.042-19.594%2C0.042-19.594h4.016%20c0.378%2C3.591%2C3.277%2C6.425%2C6.901%2C6.685V22.323z%22%2F%3E%3C%2Fsvg%3E\"","import icon from './tiktok.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'tiktok',\n    name: 'TikTok',\n    color: '#000',\n    icon,\n    windowSize: {\n        width: 440,\n        height: 550,\n    },\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1684%20408q-67%2098-162%20167%201%2014%201%2042%200%20130-38%20259.5t-115.5%20248.5-184.5%20210.5-258%20146-323%2054.5q-271%200-496-145%2035%204%2078%204%20225%200%20401-138-105-2-188-64.5t-114-159.5q33%205%2061%205%2043%200%2085-11-112-23-185.5-111.5t-73.5-205.5v-4q68%2038%20146%2041-66-44-105-115t-39-154q0-88%2044-163%20121%20149%20294.5%20238.5t371.5%2099.5q-8-38-8-74%200-134%2094.5-228.5t228.5-94.5q140%200%20236%20102%20109-21%20205-78-37%20115-142%20178%2093-10%20186-50z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E\"","import icon from './twitter.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'twitter',\n    name: 'Twitter',\n    color: '#55acee',\n    icon,\n    windowSize: {\n        width: 800,\n        height: 440,\n    },\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1853%20520q23%2064-150%20294-24%2032-65%2085-78%20100-90%20131-17%2041%2014%2081%2017%2021%2081%2082h1l1%201%201%201%202%202q141%20131%20191%20221%203%205%206.5%2012.5t7%2026.5-.5%2034-25%2027.5-59%2012.5l-256%204q-24%205-56-5t-52-22l-20-12q-30-21-70-64t-68.5-77.5-61-58-56.5-15.5q-3%201-8%203.5t-17%2014.5-21.5%2029.5-17%2052-6.5%2077.5q0%2015-3.5%2027.5t-7.5%2018.5l-4%205q-18%2019-53%2022h-115q-71%204-146-16.5t-131.5-53-103-66-70.5-57.5l-25-24q-10-10-27.5-30t-71.5-91-106-151-122.5-211-130.5-272q-6-16-6-27t3-16l4-6q15-19%2057-19l274-2q12%202%2023%206.5t16%208.5l5%203q16%2011%2024%2032%2020%2050%2046%20103.5t41%2081.5l16%2029q29%2060%2056%20104t48.5%2068.5%2041.5%2038.5%2034%2014%2027-5q2-1%205-5t12-22%2013.5-47%209.5-81%200-125q-2-40-9-73t-14-46l-6-12q-25-34-85-43-13-2%205-24%2017-19%2038-30%2053-26%20239-24%2082%201%20135%2013%2020%205%2033.5%2013.5t20.5%2024%2010.5%2032%203.5%2045.5-1%2055-2.5%2070.5-1.5%2082.5q0%2011-1%2042t-.5%2048%203.5%2040.5%2011.5%2039%2022.5%2024.5q8%202%2017%204t26-11%2038-34.5%2052-67%2068-107.5q60-104%20107-225%204-10%2010-17.5t11-10.5l4-3%205-2.5%2013-3%2020-.5%20288-2q39-5%2064%202.5t31%2016.5z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E\"","import icon from './vkontakte.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'vkontakte',\n    fontKey: 'vk',\n    name: 'VKontakte',\n    color: '#45668e',\n    icon,\n    windowSize: {\n        width: 655,\n        height: 430,\n    },\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%222048%22%20height%3D%221792%22%20viewBox%3D%220%200%202048%201792%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M580%20461q0-41-25-66t-66-25q-43%200-76%2025.5t-33%2065.5q0%2039%2033%2064.5t76%2025.5q41%200%2066-24.5t25-65.5zm743%20507q0-28-25.5-50t-65.5-22q-27%200-49.5%2022.5t-22.5%2049.5q0%2028%2022.5%2050.5t49.5%2022.5q40%200%2065.5-22t25.5-51zm-236-507q0-41-24.5-66t-65.5-25q-43%200-76%2025.5t-33%2065.5q0%2039%2033%2064.5t76%2025.5q41%200%2065.5-24.5t24.5-65.5zm635%20507q0-28-26-50t-65-22q-27%200-49.5%2022.5t-22.5%2049.5q0%2028%2022.5%2050.5t49.5%2022.5q39%200%2065-22t26-51zm-266-397q-31-4-70-4-169%200-311%2077t-223.5%20208.5-81.5%20287.5q0%2078%2023%20152-35%203-68%203-26%200-50-1.5t-55-6.5-44.5-7-54.5-10.5-50-10.5l-253%20127%2072-218q-290-203-290-490%200-169%2097.5-311t264-223.5%20363.5-81.5q176%200%20332.5%2066t262%20182.5%20136.5%20260.5zm592%20561q0%20117-68.5%20223.5t-185.5%20193.5l55%20181-199-109q-150%2037-218%2037-169%200-311-70.5t-223.5-191.5-81.5-264%2081.5-264%20223.5-191.5%20311-70.5q161%200%20303%2070.5t227.5%20192%2085.5%20263.5z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E\"","import icon from './wechat.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'wechat',\n    name: 'WeChat',\n    color: '#44b549',\n    icon,\n    windowSize: {\n        width: 450,\n        height: 400,\n    },\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M675%201284q21-34%2011-69t-45-50q-34-14-73-1t-60%2046q-22%2034-13%2068.5t43%2050.5%2074.5%202.5%2062.5-47.5zm94-121q8-13%203.5-26.5t-17.5-18.5q-14-5-28.5.5t-21.5%2018.5q-17%2031%2013%2045%2014%205%2029-.5t22-18.5zm174%20107q-45%20102-158%20150t-224%2012q-107-34-147.5-126.5t6.5-187.5q47-93%20151.5-139t210.5-19q111%2029%20158.5%20119.5t2.5%20190.5zm312-160q-9-96-89-170t-208.5-109-274.5-21q-223%2023-369.5%20141.5t-132.5%20264.5q9%2096%2089%20170t208.5%20109%20274.5%2021q223-23%20369.5-141.5t132.5-264.5zm308%204q0%2068-37%20139.5t-109%20137-168.5%20117.5-226%2083-270.5%2031-275-33.5-240.5-93-171.5-151-65-199.5q0-115%2069.5-245t197.5-258q169-169%20341.5-236t246.5%207q65%2064%2020%20209-4%2014-1%2020t10%207%2014.5-.5%2013.5-3.5l6-2q139-59%20246-59t153%2061q45%2063%200%20178-2%2013-4.5%2020t4.5%2012.5%2012%207.5%2017%206q57%2018%20103%2047t80%2081.5%2034%20116.5zm-74-624q42%2047%2054.5%20108.5t-6.5%20117.5q-8%2023-29.5%2034t-44.5%204q-23-8-34-29.5t-4-44.5q20-63-24-111t-107-35q-24%205-45-8t-25-37q-5-24%208-44.5t37-25.5q60-13%20119%205.5t101%2065.5zm181-163q87%2096%20112.5%20222.5t-13.5%20241.5q-9%2027-34%2040t-52%204-40-34-5-52q28-82%2010-172t-80-158q-62-69-148-95.5t-173-8.5q-28%206-52-9.5t-30-43.5%209.5-51.5%2043.5-29.5q123-26%20244%2011.5t208%20134.5z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E\"","import icon from './weibo.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'weibo',\n    name: 'Weibo',\n    color: '#e71d34',\n    icon,\n} satisfies Provider;\n","export default \"data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M937%201004l266-499h-112l-157%20312q-24%2048-44%2092l-42-92-155-312h-120l263%20493v324h101v-318zm727-588v960q0%20119-84.5%20203.5t-203.5%2084.5h-960q-119%200-203.5-84.5t-84.5-203.5v-960q0-119%2084.5-203.5t203.5-84.5h960q119%200%20203.5%2084.5t84.5%20203.5z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E\"","import icon from './yandex.svg';\n\nimport type { Provider } from '../providers';\n\nexport default {\n    key: 'yandex',\n    name: 'Yandex',\n    color: '#d43b2f',\n    icon,\n    windowSize: {\n        width: 655,\n        height: 700,\n    },\n} satisfies Provider;\n","import { default as amazon } from './amazon/amazon';\nimport { default as apple } from './apple/apple';\nimport { default as bconnect } from './bconnect/bconnect';\nimport { default as facebook } from './facebook/facebook';\nimport { default as franceconnect } from './franceconnect/franceconnect';\nimport { default as google } from './google/google';\nimport { default as kakaotalk } from './kakaotalk/kakaotalk';\nimport { default as line } from './line/line';\nimport { default as linkedin } from './linkedin/linkedin';\nimport { default as mailru } from './mailru/mailru';\nimport { default as microsoft } from './microsoft/microsoft';\nimport { default as naver } from './naver/naver';\nimport { default as okta } from './okta/okta';\nimport { default as oney } from './oney/oney';\nimport { default as orange } from './orange/orange';\nimport { default as paypal } from './paypal/paypal';\nimport { default as ping } from './ping/ping';\nimport { default as qq } from './qq/qq';\nimport { default as tiktok } from './tiktok/tiktok';\nimport { default as twitter } from './twitter/twitter';\nimport { default as vkontakte } from './vkontakte/vkontakte';\nimport { default as wechat } from './wechat/wechat';\nimport { default as weibo } from './weibo/weibo';\nimport { default as yandex } from './yandex/yandex';\n\nexport interface windowSize {\n    width: number;\n    height: number;\n}\n\nexport interface Provider {\n    key: string;\n    name: string;\n    color: string;\n    fontWeight?: number;\n    fontFamily?: string;\n    fontKey?: string;\n    btnBorderColor?: string;\n    btnTextColor?: string;\n    btnBackgroundColor?: string;\n    icon: string;\n    windowSize?: windowSize;\n    hidden?: boolean;\n}\n\nexport const providers = {\n    amazon: amazon,\n    apple: apple,\n    bconnect: bconnect,\n    facebook: facebook,\n    franceconnect: franceconnect,\n    google: google,\n    kakaotalk: kakaotalk,\n    line: line,\n    linkedin: linkedin,\n    mailru: mailru,\n    microsoft: microsoft,\n    naver: naver,\n    okta: okta,\n    oney: oney,\n    orange: orange,\n    paypal: paypal,\n    ping: ping,\n    qq: qq,\n    tiktok: tiktok,\n    twitter: twitter,\n    vkontakte: vkontakte,\n    wechat: wechat,\n    weibo: weibo,\n    yandex: yandex,\n};\n\nexport default providers;\n\nexport type ProviderId = keyof typeof providers;\n","import React, { PropsWithChildren, useCallback } from 'react';\n\nimport classes from 'classnames';\nimport styled, { useTheme } from 'styled-components';\n\nimport type { AuthOptions } from '@reachfive/identity-core';\n\nimport { useI18n } from '../../contexts/i18n';\nimport { useReachfive } from '../../contexts/reachfive';\nimport { providers as socialProviders } from '../../providers/providers';\nimport { Button, type ButtonProps } from './buttonComponent';\n\nimport type { Provider, ProviderId } from '../../providers/providers';\nimport type { OnError, OnSuccess } from '../../types';\n\ninterface SocialButtonIconProps {\n    className?: classes.Argument;\n    icon: string;\n    textVisible?: boolean;\n}\n\nconst SocialButtonIcon = styled(({ className }: SocialButtonIconProps) => (\n    <span className={classes(['r5-btn-social-icon', className])}></span>\n))`\n    position: absolute;\n    left: 0;\n    top: 0;\n    bottom: 0;\n    width: ${props => (!props.textVisible ? '100%' : props.theme.socialButton.height - 2 + 'px')};\n    box-sizing: border-box;\n    border-radius: ${props => props.theme.socialButton.borderRadius - 1}px;\n    background-image: url(${props => props.icon});\n    background-repeat: no-repeat;\n    background-size: ${props => props.theme.socialButton.height / 2}px\n        ${props => props.theme.socialButton.height / 2}px;\n    background-position: center center;\n\n    ${props => !props.textVisible && 'height: 100%;'}\n`;\n\nconst SocialButtonText = ({ children }: PropsWithChildren<{}>) => (\n    <span className=\"r5-btn-social-text\">{children}</span>\n);\n\ninterface SocialBtn extends ButtonProps {\n    $provider: Provider;\n    $inline: boolean;\n    $textVisible: boolean;\n    $width: string;\n    $height: string;\n}\n\nconst SocialBtn = styled(Button).attrs<SocialBtn>(({ $provider, ...props }) => {\n    const i18n = useI18n();\n    return {\n        $themePrefix: 'socialButton',\n        $color: $provider.btnTextColor ?? '#ffffff',\n        $background: $provider.btnBackgroundColor ?? $provider.color,\n        $border: $provider.btnBorderColor ?? $provider.color,\n        className: classes(['r5-btn-social', `r5-btn-social-${$provider.key}`]),\n        title: i18n(`socialButton.${$provider.key}.title`, { defaultValue: $provider.name }),\n        ...props,\n    };\n})<SocialBtn>`\n    margin-bottom: ${props => props.theme.spacing}px;\n    position: relative;\n\n    width: ${props => props.$width};\n    height: ${props => props.$height};\n\n    ${props =>\n        props.$inline &&\n        `\n        display: inline-block;\n        margin: 0 4px;\n    `}\n\n    ${props =>\n        props.$inline &&\n        props.$textVisible &&\n        `\n        padding-left: ${props.theme.socialButton.paddingX + props.theme.socialButton.height / 2}px;\n    `}\n\n    font-weight: ${props => props.$provider.fontWeight};\n    font-family: ${props => props.$provider.fontFamily};\n`;\n\ninterface SocialButtonProps {\n    provider: Provider;\n    onClick: (providerName: string) => void;\n    count: number;\n}\n\nconst SocialButton = ({ provider, onClick, count }: SocialButtonProps) => {\n    const theme = useTheme();\n    const i18n = useI18n();\n\n    const inline = theme.socialButton.inline;\n    const textVisible = theme.socialButton.textVisible;\n    const height = theme.socialButton.height + 'px';\n\n    const width = !textVisible\n        ? theme.socialButton.height + 'px'\n        : inline\n          ? `calc(${100 / count}% - 8px)`\n          : '100%';\n\n    return (\n        <SocialBtn\n            $provider={provider}\n            $inline={inline}\n            $textVisible={textVisible}\n            $width={width}\n            $height={height}\n            onClick={() => onClick(provider.key)}\n        >\n            <SocialButtonIcon icon={provider.icon} textVisible={textVisible} />\n            {textVisible && (\n                <SocialButtonText>\n                    {i18n(`socialButton.${provider.key}.title`, { defaultValue: provider.name })}\n                </SocialButtonText>\n            )}\n        </SocialBtn>\n    );\n};\n\nexport interface SocialButtonsProps {\n    /**\n     * @deprecated\n     */\n    acceptTos?: boolean;\n    /**\n     * List of authentication options\n     */\n    auth?: AuthOptions;\n    /**\n     * Lists the available social providers. This is an array of strings.\n     *\n     * Tip: If you pass an empty array, social providers will not be displayed.\n     * */\n    providers: string[];\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\nexport const SocialButtons = styled(\n    ({\n        auth,\n        providers,\n        className,\n        onError = (() => {}) as OnError,\n        onSuccess = (() => {}) as OnSuccess,\n    }: SocialButtonsProps & { className?: string }) => {\n        const coreClient = useReachfive();\n\n        const clickHandler = useCallback(\n            (provider: string) => {\n                coreClient\n                    .loginWithSocialProvider(provider, auth)\n                    .then(() => {\n                        onSuccess({\n                            name: 'login',\n                            authResult: { providerName: provider },\n                            authType: 'social',\n                        });\n                    })\n                    .catch(onError);\n            },\n            [coreClient, auth]\n        );\n\n        return (\n            <div className={classes(['r5-social-buttons', className])}>\n                {providers.flatMap(providerKey => {\n                    const [providerName] = providerKey.split(':');\n                    if (socialProviders[providerName as ProviderId] === undefined) {\n                        console.error(`${providerName} provider not found.`);\n                        return [];\n                    }\n                    return [\n                        <SocialButton\n                            provider={socialProviders[providerName as ProviderId]}\n                            count={providers.length}\n                            onClick={() => clickHandler(providerKey)}\n                            key={providerKey}\n                        />,\n                    ];\n                })}\n            </div>\n        );\n    }\n)`\n    text-align: center;\n    ${props => props.theme.socialButton.inline && 'margin: 0 -4px'}\n`;\n","import React, { useLayoutEffect } from 'react';\n\nimport { AuthOptions, LoginWithPasswordParams } from '@reachfive/identity-core';\n\nimport {\n    CaptchaProvider,\n    WithCaptchaProps,\n    type WithCaptchaToken,\n} from '../../../components/captcha';\nimport checkboxField from '../../../components/form/fields/checkboxField';\nimport identifierField from '../../../components/form/fields/identifierField';\nimport { simpleField } from '../../../components/form/fields/simpleField';\nimport simplePasswordField from '../../../components/form/fields/simplePasswordField';\nimport { createForm } from '../../../components/form/formComponent';\nimport { SocialButtons } from '../../../components/form/socialButtonsComponent';\nimport { Alternative, Heading, Link, Separator } from '../../../components/miscComponent';\nimport { importGoogleRecaptchaScript } from '../../../components/reCaptcha';\nimport { useI18n } from '../../../contexts/i18n';\nimport { useReachfive } from '../../../contexts/reachfive';\nimport { useRouting } from '../../../contexts/routing';\nimport { useSession } from '../../../contexts/session';\nimport { enrichLoginEvent, specializeIdentifierData } from '../../../helpers/utils';\nimport { FaSelectionViewState } from '../../stepUp/mfaStepUpWidget';\n\nimport type { OnError, OnSuccess } from '../../../types';\n\nexport type LoginFormData =\n    | {\n          identifier: string;\n          password: string;\n      }\n    | {\n          customIdentifier: string;\n          password: string;\n      };\n\nexport interface LoginFormOptions {\n    allowCustomIdentifier?: boolean;\n    allowAuthentMailPhone?: boolean;\n    canShowPassword?: boolean;\n    defaultIdentifier?: string;\n    enablePasswordAuthentication?: boolean;\n    showEmail?: boolean;\n    showForgotPassword?: boolean;\n    showIdentifier?: boolean;\n    showRememberMe?: boolean;\n}\n\nexport const LoginForm = createForm<LoginFormData, LoginFormOptions>({\n    prefix: 'r5-login-',\n    fields({\n        allowCustomIdentifier,\n        allowAuthentMailPhone = true,\n        canShowPassword,\n        defaultIdentifier,\n        showIdentifier = true,\n        showRememberMe,\n        i18n,\n        config,\n    }) {\n        const hasIdentifierField =\n            allowAuthentMailPhone &&\n            (config.loginTypeAllowed.email || config.loginTypeAllowed.phoneNumber);\n        return [\n            ...(hasIdentifierField\n                ? [\n                      identifierField(\n                          {\n                              defaultValue: defaultIdentifier,\n                              withPhoneNumber:\n                                  showIdentifier && config.loginTypeAllowed.phoneNumber,\n                              required: !allowCustomIdentifier,\n                              autoComplete: 'username webauthn',\n                          },\n                          config\n                      ),\n                  ]\n                : []),\n            ...(allowCustomIdentifier && hasIdentifierField\n                ? [\n                      {\n                          staticContent: <Separator text={i18n('or')} />,\n                      },\n                  ]\n                : []),\n            ...(allowCustomIdentifier\n                ? [\n                      simpleField({\n                          key: 'customIdentifier',\n                          type: 'text',\n                          label: 'customIdentifier',\n                          placeholder: i18n('customIdentifier'),\n                          required: false,\n                      }),\n                  ]\n                : []),\n            simplePasswordField({\n                key: 'password',\n                label: 'password',\n                autoComplete: 'current-password',\n                canShowPassword,\n            }),\n            ...(showRememberMe\n                ? [\n                      checkboxField({\n                          key: 'auth.persistent',\n                          label: 'rememberMe',\n                          defaultValue: false,\n                          required: false,\n                      }),\n                  ]\n                : []),\n        ];\n    },\n    submitLabel: 'login.submitLabel',\n});\n\nexport type LoginViewProps = {\n    /**\n     * @deprecated\n     */\n    acceptTos?: boolean;\n    /**\n     * Boolean that specifies whether an additional field for the custom identifier is shown.\n     *\n     * @default false\n     */\n    allowCustomIdentifier?: boolean;\n    /**\n     * Boolean that specifies if the forgot password option is enabled.\n     *\n     * If the `allowLogin` and `allowSignup` properties are set to `false`, the forgot password feature is enabled even if `allowForgotPassword` is set to `false`.\n     *\n     * @default true\n     */\n    allowForgotPassword?: boolean;\n    /**\n     * Boolean that specifies if the account recovery is enabled.\n     *\n     * @default false\n     */\n    allowAccountRecovery?: boolean;\n    /**\n     * Boolean that specifies whether signup is enabled.\n     *\n     * @default true\n     */\n    allowSignup?: boolean;\n    /**\n     * Boolean that specifies whether biometric login is enabled.\n     *\n     * @default false\n     */\n    allowWebAuthnLogin?: boolean;\n    /**\n     * List of authentication options\n     */\n    auth?: AuthOptions;\n    /**\n     * Whether or not to provide the display password in clear text option.\n     *\n     * @default false\n     */\n    canShowPassword?: boolean;\n    /**\n     * Whether the signup form fields' labels are displayed on the login view.\n     *\n     * @default false\n     */\n    showLabels?: boolean;\n    /**\n     * Whether the Remember me checkbox is displayed on the login view. Affects user session duration.\n     *\n     * The account session duration configured in the ReachFive Console (Settings  Security  SSO) applies when:\n     * - The checkbox is hidden from the user\n     * - The checkbox is visible and selected by the user\n     *\n     * If the checkbox is visible and not selected by the user, the default session duration of 1 day applies.\n     *\n     * @default false\n     */\n    showRememberMe?: boolean;\n    /**\n     * Lists the available social providers. This is an array of strings.\n     * Tip: If you pass an empty array, social providers will not be displayed.\n     */\n    socialProviders?: string[];\n    /**\n     * If `allowCustomIdentifier` property is `true` then the email and phoneNumber fields can be hidden by specifying the `allowAuthentMailPhone` property to `false`.\n     * @default true\n     */\n    allowAuthentMailPhone?: boolean;\n    /**\n     * Boolean that specifies whether a device can be trusted during step up.\n     *\n     * @default false\n     */\n    allowTrustDevice?: boolean;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n    /**\n     * Action used in template\n     */\n    action?: string;\n};\n\nexport const LoginView = ({\n    acceptTos,\n    allowForgotPassword = true,\n    allowSignup = true,\n    allowWebAuthnLogin,\n    allowAccountRecovery = false,\n    auth,\n    canShowPassword = false,\n    socialProviders,\n    allowCustomIdentifier = false,\n    showLabels = false,\n    showRememberMe = false,\n    recaptcha_enabled = false,\n    recaptcha_site_key,\n    captchaFoxEnabled = false,\n    captchaFoxSiteKey,\n    captchaFoxMode = 'hidden',\n    allowAuthentMailPhone = true,\n    allowTrustDevice,\n    action,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n}: WithCaptchaProps<LoginViewProps>) => {\n    const i18n = useI18n();\n    const coreClient = useReachfive();\n    const { goTo } = useRouting();\n    const session = useSession();\n\n    useLayoutEffect(() => {\n        importGoogleRecaptchaScript(recaptcha_site_key);\n    }, [recaptcha_site_key]);\n\n    const controller = new AbortController();\n    const signal = controller.signal;\n\n    React.useEffect(() => {\n        if (allowWebAuthnLogin) {\n            coreClient\n                .loginWithWebAuthn({\n                    conditionalMediation: 'preferred',\n                    auth: {\n                        ...auth,\n                    },\n                    signal: signal,\n                })\n                .catch(onError);\n        }\n    }, [coreClient, auth, allowWebAuthnLogin, signal]);\n\n    const callback = (data: WithCaptchaToken<LoginFormData>) => {\n        const specializedIdentifierData = specializeIdentifierData<LoginWithPasswordParams>(data);\n        const { auth: dataAuth, ...specializedData } = specializedIdentifierData;\n        return coreClient\n            .loginWithPassword({\n                ...specializedData,\n                action,\n                auth: {\n                    ...dataAuth,\n                    ...auth,\n                },\n            })\n            .then(res => {\n                if (res?.stepUpToken) {\n                    goTo<FaSelectionViewState>('fa-selection', {\n                        token: res.stepUpToken,\n                        amr: res.amr ?? [],\n                        allowTrustDevice,\n                        auth,\n                    });\n                }\n                return enrichLoginEvent(res, 'password', specializedIdentifierData);\n            });\n    };\n\n    const defaultIdentifier = session?.lastLoginType === 'password' ? session.email : undefined;\n\n    return (\n        <div>\n            <Heading>{i18n('login.title')}</Heading>\n            {socialProviders && socialProviders.length > 0 && (\n                <SocialButtons\n                    providers={socialProviders}\n                    auth={auth}\n                    acceptTos={acceptTos}\n                    onSuccess={onSuccess}\n                    onError={onError}\n                />\n            )}\n            {socialProviders && socialProviders.length > 0 && <Separator text={i18n('or')} />}\n            <CaptchaProvider\n                recaptcha_enabled={recaptcha_enabled}\n                recaptcha_site_key={recaptcha_site_key}\n                captchaFoxEnabled={captchaFoxEnabled}\n                captchaFoxSiteKey={captchaFoxSiteKey}\n                captchaFoxMode={captchaFoxMode}\n                action=\"login\"\n            >\n                <LoginForm\n                    showLabels={showLabels}\n                    showRememberMe={showRememberMe}\n                    showForgotPassword={allowForgotPassword}\n                    canShowPassword={canShowPassword}\n                    defaultIdentifier={defaultIdentifier}\n                    allowCustomIdentifier={allowCustomIdentifier}\n                    allowAuthentMailPhone={allowAuthentMailPhone}\n                    handler={callback}\n                    onSuccess={res => {\n                        onSuccess({ name: 'login', ...res });\n                    }}\n                    onError={onError}\n                />\n            </CaptchaProvider>\n            {allowForgotPassword && !allowAccountRecovery && (\n                <Alternative>\n                    <Link target=\"forgot-password\">{i18n('login.forgotPasswordLink')}</Link>\n                </Alternative>\n            )}\n            {allowAccountRecovery && (\n                <Alternative>\n                    <Link target=\"account-recovery\">{i18n('accountRecovery.title')}</Link>\n                </Alternative>\n            )}\n            {allowSignup && (\n                <Alternative>\n                    <span>{i18n('login.signupLinkPrefix')}</span>\n                    &nbsp;\n                    <Link target=\"signup\" controller={controller}>\n                        {i18n('login.signupLink')}\n                    </Link>\n                </Alternative>\n            )}\n        </div>\n    );\n};\n\nexport default LoginView;\n","import React, { useLayoutEffect } from 'react';\n\nimport { type AuthOptions } from '@reachfive/identity-core';\nimport { LoginWithPasswordParams } from '@reachfive/identity-core/es/main/oAuthClient';\n\nimport { CaptchaProvider, WithCaptchaProps, WithCaptchaToken } from '../../../components/captcha';\nimport checkboxField from '../../../components/form/fields/checkboxField';\nimport identifierField from '../../../components/form/fields/identifierField';\nimport simplePasswordField from '../../../components/form/fields/simplePasswordField';\nimport { createForm } from '../../../components/form/formComponent';\nimport { Alternative, Heading, Link } from '../../../components/miscComponent';\nimport { importGoogleRecaptchaScript } from '../../../components/reCaptcha';\nimport { useI18n } from '../../../contexts/i18n';\nimport { useReachfive } from '../../../contexts/reachfive';\nimport { useRouting } from '../../../contexts/routing';\nimport { enrichLoginEvent, specializeIdentifierData } from '../../../helpers/utils';\nimport { FaSelectionViewState } from '../../stepUp/mfaStepUpWidget';\n\nimport type { OnError, OnSuccess } from '../../../types';\n\ntype LoginWithPasswordFormData = {\n    identifier: string;\n    password: string;\n};\n\ninterface LoginWithPasswordFormProps {\n    canShowPassword?: boolean;\n    showRememberMe?: boolean;\n    username?: string;\n}\n\nexport const LoginWithPasswordForm = createForm<\n    LoginWithPasswordFormData,\n    LoginWithPasswordFormProps\n>({\n    prefix: 'r5-login-',\n    fields({ username, showRememberMe, canShowPassword, config }) {\n        return [\n            identifierField(\n                {\n                    key: 'identifier',\n                    defaultValue: username,\n                    withPhoneNumber: config.loginTypeAllowed.phoneNumber,\n                    readOnly: true,\n                },\n                config\n            ),\n            simplePasswordField({\n                key: 'password',\n                label: 'password',\n                autoComplete: 'current-password',\n                canShowPassword,\n            }),\n            ...(showRememberMe\n                ? [\n                      checkboxField({\n                          key: 'auth.persistent',\n                          label: 'rememberMe',\n                          defaultValue: false,\n                          required: false,\n                      }),\n                  ]\n                : []),\n        ];\n    },\n    submitLabel: 'login.submitLabel',\n});\n\nexport interface LoginWithPasswordViewProps {\n    allowForgotPassword?: boolean;\n    allowAccountRecovery?: boolean;\n    auth?: AuthOptions;\n    canShowPassword?: boolean;\n    showLabels?: boolean;\n    showRememberMe?: boolean;\n    allowTrustDevice?: boolean;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n    /**\n     * Action used in template\n     */\n    action?: string;\n}\n\nexport type LoginWithPasswordViewState = {\n    username?: string;\n};\n\nexport const LoginWithPasswordView = ({\n    allowForgotPassword = true,\n    allowAccountRecovery = false,\n    auth,\n    canShowPassword,\n    recaptcha_enabled = false,\n    recaptcha_site_key,\n    captchaFoxEnabled = false,\n    captchaFoxSiteKey,\n    captchaFoxMode,\n    showLabels,\n    showRememberMe,\n    allowTrustDevice,\n    action,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n}: WithCaptchaProps<LoginWithPasswordViewProps>) => {\n    const i18n = useI18n();\n    const coreClient = useReachfive();\n    const { goTo, params } = useRouting();\n    const { username } = params as LoginWithPasswordViewState;\n\n    useLayoutEffect(() => {\n        importGoogleRecaptchaScript(recaptcha_site_key);\n    }, [recaptcha_site_key]);\n\n    const callback = (data: WithCaptchaToken<LoginWithPasswordFormData>) => {\n        const specializedIdentifierData = specializeIdentifierData<LoginWithPasswordParams>(data);\n        const { auth: dataAuth, ...specializedData } = specializedIdentifierData;\n\n        return coreClient\n            .loginWithPassword({\n                ...specializedData,\n                auth: {\n                    ...dataAuth,\n                    ...auth,\n                },\n                action,\n            })\n            .then(res => {\n                if (res?.stepUpToken) {\n                    goTo<FaSelectionViewState>('fa-selection', {\n                        token: res.stepUpToken,\n                        amr: res.amr ?? [],\n                        allowTrustDevice,\n                        auth,\n                    });\n                }\n                return enrichLoginEvent(res, 'password', specializedIdentifierData);\n            });\n    };\n\n    return (\n        <CaptchaProvider\n            recaptcha_enabled={recaptcha_enabled}\n            recaptcha_site_key={recaptcha_site_key}\n            captchaFoxEnabled={captchaFoxEnabled}\n            captchaFoxSiteKey={captchaFoxSiteKey}\n            captchaFoxMode={captchaFoxMode}\n            action=\"login\"\n        >\n            <Heading>{i18n('login.title')}</Heading>\n            <LoginWithPasswordForm\n                username={username}\n                showLabels={showLabels}\n                showRememberMe={showRememberMe}\n                canShowPassword={canShowPassword}\n                handler={callback}\n                onSuccess={res => onSuccess({ name: 'login', ...res })}\n                onError={onError}\n            />\n            {allowForgotPassword && !allowAccountRecovery && (\n                <Alternative>\n                    <Link target=\"forgot-password\">{i18n('login.forgotPasswordLink')}</Link>\n                </Alternative>\n            )}\n            {allowAccountRecovery && (\n                <Alternative>\n                    <Link target=\"account-recovery\">{i18n('accountRecovery.title')}</Link>\n                </Alternative>\n            )}\n            <Alternative>\n                <Link target=\"login-with-web-authn\">\n                    {i18n('login.password.userAnotherIdentifier')}\n                </Link>\n            </Alternative>\n        </CaptchaProvider>\n    );\n};\n\nexport default LoginWithPasswordView;\n","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22currentColor%22%3E%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M17.81%204.47c-.08%200-.16-.02-.23-.06C15.66%203.42%2014%203%2012.01%203c-1.98%200-3.86.47-5.57%201.41-.24.13-.54.04-.68-.2-.13-.24-.04-.55.2-.68C7.82%202.52%209.86%202%2012.01%202c2.13%200%203.99.47%206.03%201.52.25.13.34.43.21.67-.09.18-.26.28-.44.28zM3.5%209.72c-.1%200-.2-.03-.29-.09-.23-.16-.28-.47-.12-.7.99-1.4%202.25-2.5%203.75-3.27C9.98%204.04%2014%204.03%2017.15%205.65c1.5.77%202.76%201.86%203.75%203.25.16.22.11.54-.12.7-.23.16-.54.11-.7-.12-.9-1.26-2.04-2.25-3.39-2.94-2.87-1.47-6.54-1.47-9.4.01-1.36.7-2.5%201.7-3.4%202.96-.08.14-.23.21-.39.21zm6.25%2012.07c-.13%200-.26-.05-.35-.15-.87-.87-1.34-1.43-2.01-2.64-.69-1.23-1.05-2.73-1.05-4.34%200-2.97%202.54-5.39%205.66-5.39s5.66%202.42%205.66%205.39c0%20.28-.22.5-.5.5s-.5-.22-.5-.5c0-2.42-2.09-4.39-4.66-4.39-2.57%200-4.66%201.97-4.66%204.39%200%201.44.32%202.77.93%203.85.64%201.15%201.08%201.64%201.85%202.42.19.2.19.51%200%20.71-.11.1-.24.15-.37.15zm7.17-1.85c-1.19%200-2.24-.3-3.1-.89-1.49-1.01-2.38-2.65-2.38-4.39%200-.28.22-.5.5-.5s.5.22.5.5c0%201.41.72%202.74%201.94%203.56.71.48%201.54.71%202.54.71.24%200%20.64-.03%201.04-.1.27-.05.53.13.58.41.05.27-.13.53-.41.58-.57.11-1.07.12-1.21.12zM14.91%2022c-.04%200-.09-.01-.13-.02-1.59-.44-2.63-1.03-3.72-2.1-1.4-1.39-2.17-3.24-2.17-5.22%200-1.62%201.38-2.94%203.08-2.94%201.7%200%203.08%201.32%203.08%202.94%200%201.07.93%201.94%202.08%201.94s2.08-.87%202.08-1.94c0-3.77-3.25-6.83-7.25-6.83-2.84%200-5.44%201.58-6.61%204.03-.39.81-.59%201.76-.59%202.8%200%20.78.07%202.01.67%203.61.1.26-.03.55-.29.64-.26.1-.55-.04-.64-.29-.49-1.31-.73-2.61-.73-3.96%200-1.2.23-2.29.68-3.24%201.33-2.79%204.28-4.6%207.51-4.6%204.55%200%208.25%203.51%208.25%207.83%200%201.62-1.38%202.94-3.08%202.94s-3.08-1.32-3.08-2.94c0-1.07-.93-1.94-2.08-1.94s-2.08.87-2.08%201.94c0%201.71.66%203.31%201.87%204.51.95.94%201.86%201.46%203.27%201.85.27.07.42.35.35.61-.05.23-.26.38-.47.38z%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22currentColor%22%3E%3Cpath%20d%3D%22M20%205H4c-1.1%200-1.99.9-1.99%202L2%2017c0%201.1.9%202%202%202h16c1.1%200%202-.9%202-2V7c0-1.1-.9-2-2-2zm-9%203h2v2h-2V8zm0%203h2v2h-2v-2zM8%208h2v2H8V8zm0%203h2v2H8v-2zm-1%202H5v-2h2v2zm0-3H5V8h2v2zm9%207H8v-2h8v2zm0-4h-2v-2h2v2zm0-3h-2V8h2v2zm3%203h-2v-2h2v2zm0-3h-2V8h2v2z%22%2F%3E%3Cpath%20d%3D%22M0%200h24v24H0zm0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%3C%2Fsvg%3E\"","import React, { PropsWithChildren } from 'react';\n\nimport classes from 'classnames';\nimport styled, { useTheme } from 'styled-components';\n\nimport { useI18n } from '../../contexts/i18n';\nimport { ReactComponent as FingerPrint } from '../../icons/fingerprint.svg';\nimport { ReactComponent as Keyboard } from '../../icons/keyboard.svg';\nimport { Separator } from '../miscComponent';\nimport { Button, type ButtonProps } from './buttonComponent';\n\nconst iconStyle = `\n    width: 40px;\n    height: 40px;\n`;\n\nconst FingerPrintIcon = styled(FingerPrint)`\n    ${iconStyle}\n`;\nconst KeyboardIcon = styled(Keyboard)`\n    ${iconStyle}\n`;\n\nconst PrimaryButtonWithIcon = styled(\n    ({\n        type = 'submit',\n        disabled = false,\n        text,\n        children,\n        className,\n        ...props\n    }: PropsWithChildren<ButtonProps & { text?: string }>) => {\n        const theme = useTheme();\n        return (\n            <Button\n                type={type}\n                disabled={disabled}\n                {...props}\n                className={classes(['r5-button-with-icon'], className)}\n                $background={theme.backgroundColor}\n                $border={theme.backgroundColor}\n                $color={theme.primaryColor}\n            >\n                {children}\n                {text && <span className=\"r5-button-text\">{text}</span>}\n            </Button>\n        );\n    }\n)`\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    .r5-button-text {\n        margin-left: 10px;\n        text-transform: uppercase;\n    }\n`;\n\nconst ButtonsSeparator = styled.div`\n    text-align: center;\n    color: ${props => props.theme.mutedTextColor};\n`;\n\nexport interface WebAuthnLoginViewButtonsProps {\n    disabled?: boolean;\n    enablePasswordAuthentication?: boolean;\n    onPasswordClick: React.MouseEventHandler<HTMLButtonElement>;\n    className?: classes.Argument;\n}\n\nexport const WebAuthnLoginViewButtons = styled(\n    ({\n        disabled,\n        enablePasswordAuthentication,\n        onPasswordClick,\n        className,\n        ...props\n    }: WebAuthnLoginViewButtonsProps) => {\n        const i18n = useI18n();\n        return (\n            <div className={classes(['r5-webauthn-login-buttons'], className)}>\n                <PrimaryButtonWithIcon\n                    type=\"submit\"\n                    data-testid=\"webauthn-button\"\n                    title={i18n('login.withBiometrics')}\n                    disabled={disabled}\n                    {...props}\n                >\n                    <FingerPrintIcon />\n                </PrimaryButtonWithIcon>\n\n                {enablePasswordAuthentication && (\n                    <>\n                        <ButtonsSeparator>{i18n('or')}</ButtonsSeparator>\n\n                        <PrimaryButtonWithIcon\n                            data-testid=\"password-button\"\n                            title={i18n('login.withPassword')}\n                            disabled={disabled}\n                            onClick={onPasswordClick}\n                        >\n                            <KeyboardIcon />\n                        </PrimaryButtonWithIcon>\n                    </>\n                )}\n            </div>\n        );\n    }\n)`\n    display: flex;\n    align-items: center;\n\n    & > :not(:last-child) {\n        margin-right: 20px;\n    }\n`;\n\nexport interface WebAuthnSignupViewButtonsProps {\n    enablePasswordAuthentication?: boolean;\n    onBiometricClick: React.MouseEventHandler<HTMLButtonElement>;\n    onPasswordClick: React.MouseEventHandler<HTMLButtonElement>;\n    className?: classes.Argument;\n}\n\nexport const WebAuthnSignupViewButtons = styled(\n    ({\n        enablePasswordAuthentication,\n        onBiometricClick,\n        onPasswordClick,\n        className,\n    }: WebAuthnSignupViewButtonsProps) => {\n        const i18n = useI18n();\n        return (\n            <div className={classes(['r5-webauthn-signup-buttons'], className)}>\n                <PrimaryButtonWithIcon\n                    data-testid=\"webauthn-button\"\n                    onClick={onBiometricClick}\n                    title={i18n('signup.withBiometrics')}\n                    text={i18n('biometrics')}\n                >\n                    <FingerPrintIcon />\n                </PrimaryButtonWithIcon>\n\n                {enablePasswordAuthentication && (\n                    <>\n                        <Separator text={i18n('or')} />\n\n                        <PrimaryButtonWithIcon\n                            data-testid=\"password-button\"\n                            onClick={onPasswordClick}\n                            title={i18n('signup.withPassword')}\n                            text={i18n('password')}\n                        >\n                            <KeyboardIcon />\n                        </PrimaryButtonWithIcon>\n                    </>\n                )}\n            </div>\n        );\n    }\n)``;\n","import React, { useCallback } from 'react';\n\nimport type { AuthOptions, LoginWithWebAuthnParams } from '@reachfive/identity-core';\n\nimport identifierField from '../../../components/form/fields/identifierField';\nimport { createForm } from '../../../components/form/formComponent';\nimport { SocialButtons } from '../../../components/form/socialButtonsComponent';\nimport { WebAuthnLoginViewButtons } from '../../../components/form/webAuthAndPasswordButtonsComponent';\nimport { Alternative, Heading, Link, Separator } from '../../../components/miscComponent';\nimport { useI18n } from '../../../contexts/i18n';\nimport { useReachfive } from '../../../contexts/reachfive';\nimport { useRouting } from '../../../contexts/routing';\nimport { useSession } from '../../../contexts/session';\nimport {\n    enrichLoginEvent,\n    isCustomIdentifier,\n    specializeIdentifierData,\n} from '../../../helpers/utils';\nimport { LoginWithPasswordViewState } from './loginWithPasswordViewComponent';\n\nimport type { OnError, OnSuccess } from '../../../types';\n\ntype LoginWithWebAuthnFormData = { identifier: string } | { email: string };\n\ntype LoginWithWebAuthnFormProps = {\n    defaultIdentifier?: string;\n    showIdentifier?: boolean;\n};\n\nexport const LoginWithWebAuthnForm = createForm<\n    LoginWithWebAuthnFormData,\n    LoginWithWebAuthnFormProps\n>({\n    prefix: 'r5-login-',\n    fields({ showIdentifier = true, defaultIdentifier, config }) {\n        return [\n            identifierField(\n                {\n                    defaultValue: defaultIdentifier,\n                    withPhoneNumber: showIdentifier && config.loginTypeAllowed.phoneNumber,\n                    required: true,\n                    autoComplete: 'username webauthn',\n                    isWebAuthnLogin: true,\n                },\n                config\n            ),\n        ];\n    },\n});\n\nexport interface LoginWithWebAuthnViewProps {\n    /**\n     * @deprecated\n     */\n    acceptTos?: boolean;\n    /**\n     * Boolean that specifies whether signup is enabled.\n     *\n     * @default true\n     */\n    allowSignup?: boolean;\n    /**\n     * List of authentication options\n     */\n    auth?: AuthOptions;\n    /**\n     * Boolean that specifies whether password authentication is enabled.\n     */\n    enablePasswordAuthentication?: boolean;\n    /**\n     * Whether the signup form fields' labels are displayed on the login view.\n     *\n     * @default false\n     */\n    showLabels?: boolean;\n    /**\n     * Lists the available social providers. This is an array of strings.\n     * Tip: If you pass an empty array, social providers will not be displayed.\n     */\n    socialProviders?: string[];\n\n    allowAccountRecovery?: boolean;\n\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\nexport const LoginWithWebAuthnView = ({\n    acceptTos,\n    allowSignup = true,\n    auth,\n    enablePasswordAuthentication = true,\n    showLabels = false,\n    socialProviders,\n    allowAccountRecovery,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n}: LoginWithWebAuthnViewProps) => {\n    const coreClient = useReachfive();\n    const { goTo } = useRouting();\n    const i18n = useI18n();\n    const session = useSession();\n\n    const controller = new AbortController();\n    const signal = controller.signal;\n    React.useEffect(() => {\n        coreClient\n            .loginWithWebAuthn({\n                conditionalMediation: 'preferred',\n                auth: {\n                    ...auth,\n                },\n                signal: signal,\n            })\n            .catch(onError);\n    }, [coreClient, auth, signal]);\n\n    const handleWebAuthnLogin = React.useCallback(\n        (data: LoginWithWebAuthnFormData) => {\n            const specializedIdentifierData =\n                specializeIdentifierData<LoginWithWebAuthnParams>(data);\n            const { auth: dataAuth, ...identifier } = specializedIdentifierData;\n\n            if (isCustomIdentifier(identifier)) {\n                console.error('Custom identifier is not a valid WebAuthn identifier.');\n                return Promise.reject(\n                    new Error('Custom identifier is not a valid WebAuthn identifier.')\n                );\n            }\n\n            return coreClient\n                .loginWithWebAuthn({\n                    ...identifier,\n                    auth: {\n                        ...dataAuth,\n                        ...auth,\n                    },\n                })\n                .then(res => {\n                    return enrichLoginEvent(res, 'webauthn', specializedIdentifierData);\n                });\n        },\n        [coreClient, auth]\n    );\n\n    const redirectToPasswordLoginView = useCallback(\n        (data: LoginWithWebAuthnFormData) => {\n            const username =\n                'identifier' in data ? data.identifier : 'email' in data ? data.email : '';\n            goTo<LoginWithPasswordViewState>('login-with-password', { username });\n        },\n        [goTo]\n    );\n\n    const defaultIdentifier = session?.lastLoginType === 'password' ? session.email : undefined;\n\n    return (\n        <div>\n            <Heading>{i18n('login.title')}</Heading>\n            {socialProviders && socialProviders.length > 0 && (\n                <SocialButtons\n                    providers={socialProviders}\n                    auth={auth}\n                    acceptTos={acceptTos}\n                    onSuccess={onSuccess}\n                    onError={onError}\n                />\n            )}\n            {socialProviders && socialProviders.length > 0 && <Separator text={i18n('or')} />}\n            <LoginWithWebAuthnForm\n                showLabels={showLabels}\n                defaultIdentifier={defaultIdentifier}\n                handler={handleWebAuthnLogin}\n                onSuccess={res => onSuccess({ name: 'login', ...res })}\n                onError={onError}\n                SubmitComponent={({ disabled, onClick }) => (\n                    <WebAuthnLoginViewButtons\n                        disabled={disabled}\n                        enablePasswordAuthentication={enablePasswordAuthentication}\n                        onPasswordClick={() => onClick(redirectToPasswordLoginView)}\n                    />\n                )}\n            />\n            {allowAccountRecovery && (\n                <Alternative>\n                    <Link target=\"account-recovery\">{i18n('accountRecovery.title')}</Link>\n                </Alternative>\n            )}\n            {allowSignup && (\n                <Alternative>\n                    <span>{i18n('login.signupLinkPrefix')}</span>\n                    &nbsp;\n                    <Link controller={controller} target=\"signup\">\n                        {i18n('login.signupLink')}\n                    </Link>\n                </Alternative>\n            )}\n        </div>\n    );\n};\n\nexport default LoginWithWebAuthnView;\n","import React from 'react';\n\nimport type { AuthOptions } from '@reachfive/identity-core';\n\nimport { InitialScreen } from '../../../../constants.ts';\nimport { SocialButtons } from '../../../components/form/socialButtonsComponent';\nimport { Alternative, Heading, Intro, Link } from '../../../components/miscComponent';\nimport { useI18n } from '../../../contexts/i18n';\nimport { PropsWithSession } from '../../../contexts/session';\nimport { selectLogin } from '../authWidget.tsx';\n\nimport type { OnError, OnSuccess } from '../../../types';\n\nexport interface QuickLoginViewProps {\n    initialScreen?: InitialScreen;\n    /**\n     * Boolean that specifies whether biometric login is enabled.\n     *\n     * @default false\n     */\n    allowWebAuthnLogin?: boolean;\n    /**\n     * List of authentication options\n     */\n    auth?: AuthOptions;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\nexport const QuickLoginView = ({\n    initialScreen,\n    allowWebAuthnLogin = false,\n    auth,\n    session,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n}: PropsWithSession<QuickLoginViewProps>) => {\n    const i18n = useI18n();\n\n    // this component should never be display without session infos defined\n    if (!session) return null;\n\n    return (\n        <div>\n            <Heading>{session.name ?? session.email}</Heading>\n            <Intro>{i18n('lastTimeYouLoggedInWith')}</Intro>\n            <SocialButtons\n                providers={session.lastLoginType ? [session.lastLoginType] : []}\n                auth={auth}\n                onSuccess={onSuccess}\n                onError={onError}\n            />\n            <Alternative>\n                <Link target={selectLogin(initialScreen, allowWebAuthnLogin)}>\n                    {i18n('notYourAccount')}\n                </Link>\n            </Alternative>\n        </div>\n    );\n};\n\nexport default QuickLoginView;\n","import React from 'react';\n\nimport { AuthOptions } from '@reachfive/identity-core';\n\nimport { SocialButtons } from '../../../components/form/socialButtonsComponent';\nimport { Heading, Intro, Separator } from '../../../components/miscComponent';\nimport { useI18n } from '../../../contexts/i18n';\nimport { useReachfive } from '../../../contexts/reachfive';\nimport { PropsWithSession } from '../../../contexts/session';\nimport { intersection } from '../../../helpers/utils';\nimport { LoginForm, type LoginFormData } from './loginViewComponent';\n\nimport type { OnError, OnSuccess } from '../../../types';\n\nexport interface ReauthViewProps {\n    /**\n     * Boolean that specifies if the forgot password option is enabled.\n     *\n     * If the `allowLogin` and `allowSignup` properties are set to `false`, the forgot password feature is enabled even if `allowForgotPassword` is set to `false`.\n     *\n     * @default true\n     */\n    allowForgotPassword?: boolean;\n    /**\n     * List of authentication options\n     */\n    auth?: AuthOptions;\n    /**\n     * Whether the signup form fields' labels are displayed on the login view.\n     *\n     * @default false\n     */\n    showLabels?: boolean;\n    /**\n     * Lists the available social providers. This is an array of strings.\n     * Tip: If you pass an empty array, social providers will not be displayed.\n     */\n    socialProviders?: string[];\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n    /**\n     * Action used in template\n     */\n    action?: string;\n}\n\nexport const ReauthView = ({\n    allowForgotPassword = true,\n    auth,\n    session,\n    showLabels = false,\n    socialProviders,\n    action,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n}: PropsWithSession<ReauthViewProps>) => {\n    const coreClient = useReachfive();\n    const i18n = useI18n();\n\n    // this component should never be display without session infos defined\n    if (!session) return null;\n\n    const handlePasswordLogin = ({ password }: LoginFormData) =>\n        coreClient.loginWithPassword({\n            email: session.email ?? '' /** @todo email must be define */,\n            password,\n            auth: auth,\n            action,\n        });\n\n    const userSocialProviders = intersection(socialProviders ?? [], session.socialProviders ?? []);\n\n    return (\n        <div>\n            <Heading>{session.name}</Heading>\n            <Intro>{i18n('confirmYourIdentity')}</Intro>\n            {userSocialProviders && userSocialProviders.length > 0 && (\n                <SocialButtons\n                    providers={userSocialProviders}\n                    auth={auth}\n                    onSuccess={onSuccess}\n                    onError={onError}\n                />\n            )}\n            {userSocialProviders && userSocialProviders.length > 0 && session.hasPassword && (\n                <Separator text={i18n('or')} />\n            )}\n            {session.hasPassword && (\n                <LoginForm\n                    showLabels={showLabels}\n                    showRememberMe={false}\n                    showForgotPassword={allowForgotPassword}\n                    showEmail={false}\n                    handler={handlePasswordLogin}\n                    onSuccess={res =>\n                        onSuccess({ name: 'login', authResult: res, authType: 'password' })\n                    }\n                    onError={onError}\n                />\n            )}\n        </div>\n    );\n};\n\nexport default ReauthView;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport {\n    eachMonthOfInterval,\n    endOfYear,\n    formatISO,\n    getDate,\n    getDaysInMonth,\n    getMonth,\n    getYear,\n    intlFormat,\n    isValid,\n    parseISO,\n    startOfYear,\n} from 'date-fns';\nimport styled from 'styled-components';\n\nimport { Validator, ValidatorResult, isValidatorError } from '../../../core/validation';\nimport { isRichFormValue } from '../../../helpers/utils';\nimport {\n    createField,\n    type FieldComponentProps,\n    type FieldCreator,\n    type FieldDefinition,\n} from '../fieldCreator';\nimport { FormGroup, Select } from '../formControlsComponent';\n\nimport type { Config, Optional } from '../../../types';\n\nconst inputRowGutter = 10;\n\nconst InputRow = styled.div`\n    display: flex;\n    flex-direction: row;\n    justify-content: space-between;\n    gap: ${inputRowGutter}px;\n`;\n\nconst InputCol = styled.div<{ width: number; minWidth?: number }>`\n    flex-basis: ${props => props.width}%;\n    ${props => (props.minWidth ? `min-width: ${props.minWidth}px;` : '')}\n`;\n\ntype ExtraParams = {\n    locale: string;\n    yearRange?: number;\n};\n\nexport interface DateFieldProps extends FieldComponentProps<Date, ExtraParams> {}\n\nconst DEFAULT_YEAR_RANGE = 129;\nconst MAX_DAYS_IN_MONTH = 31;\n\nconst DateField = ({\n    i18n,\n    inputId,\n    label,\n    locale,\n    onChange,\n    path,\n    required,\n    showLabel,\n    validation = {} as ValidatorResult,\n    value,\n    yearRange = DEFAULT_YEAR_RANGE,\n}: DateFieldProps) => {\n    const date = isRichFormValue(value, 'raw') ? value.raw : value;\n\n    const [day, setDay] = useState<number | undefined>(() => (date ? getDate(date) : undefined));\n    const [month, setMonth] = useState<number | undefined>(() =>\n        date ? getMonth(date) : undefined\n    );\n    const [year, setYear] = useState<number | undefined>(() => (date ? getYear(date) : undefined));\n\n    // Sync the local state with the value prop\n    useEffect(() => {\n        const newDate = isRichFormValue(value, 'raw') ? value.raw : value;\n        if (newDate && isValid(newDate)) {\n            setDay(getDate(newDate));\n            setMonth(getMonth(newDate));\n            setYear(getYear(newDate));\n        } else if (!newDate) {\n            setDay(undefined);\n            setMonth(undefined);\n            setYear(undefined);\n        }\n    }, [value]);\n\n    const isValidDate = useCallback((year?: number, month?: number, day?: number): boolean => {\n        if (year === undefined || month === undefined || day === undefined) {\n            return false;\n        }\n\n        // Check that the month is valid (0-11)\n        if (month < 0 || month > 11) {\n            return false;\n        }\n\n        // Check that the day is valid for this month/year\n        const maxDays = getDaysInMonth(new Date(year, month));\n        if (day < 1 || day > maxDays) {\n            return false;\n        }\n\n        // Create the date and check that it matches the entered values\n        const date = new Date(year, month, day);\n        return (\n            !isNaN(date.getTime()) &&\n            date.getFullYear() === year &&\n            date.getMonth() === month &&\n            date.getDate() === day\n        );\n    }, []);\n\n    const updateDate = useCallback(\n        (year?: number, month?: number, day?: number) => {\n            if (isValidDate(year, month, day)) {\n                onChange({\n                    value: new Date(year!, month!, day),\n                    isDirty: true,\n                });\n            }\n        },\n        [isValidDate, onChange]\n    );\n\n    // Generic handler to handle all date changes\n    const createChangeHandler = useCallback(\n        (part: 'day' | 'month' | 'year') => (event: React.ChangeEvent<HTMLSelectElement>) => {\n            const newValue = Number(event.target.value);\n            if (Number.isNaN(newValue)) return;\n\n            const newYear = part === 'year' ? newValue : year;\n            const newMonth = part === 'month' ? newValue : month;\n            let newDay = part === 'day' ? newValue : day;\n\n            // Setter\n            const setters = { day: setDay, month: setMonth, year: setYear };\n            setters[part](newValue);\n\n            // Validate and adjust the day if year or month change\n            if (\n                part !== 'day' &&\n                newYear !== undefined &&\n                newMonth !== undefined &&\n                newDay !== undefined\n            ) {\n                const maxDays = getDaysInMonth(new Date(newYear, newMonth));\n                if (newDay > maxDays) {\n                    newDay = undefined;\n                    setDay(undefined);\n                }\n            }\n\n            updateDate(newYear, newMonth, newDay);\n        },\n        [year, month, day, updateDate]\n    );\n\n    const handleDayChange = useMemo(() => createChangeHandler('day'), [createChangeHandler]);\n    const handleMonthChange = useMemo(() => createChangeHandler('month'), [createChangeHandler]);\n    const handleYearChange = useMemo(() => createChangeHandler('year'), [createChangeHandler]);\n\n    const months = useMemo(\n        () =>\n            eachMonthOfInterval({\n                start: startOfYear(new Date()),\n                end: endOfYear(new Date()),\n            }).map(month => intlFormat(month, { month: 'long' }, { locale })),\n        [locale]\n    );\n\n    const years = useMemo(() => {\n        const currentYear = getYear(new Date());\n        return Array.from({ length: yearRange + 1 }, (_, i) => currentYear - i);\n    }, [yearRange]);\n\n    // Days in month\n    const daysInMonth = useMemo(() => {\n        const maxDays =\n            year !== undefined && month !== undefined\n                ? getDaysInMonth(new Date(year, month))\n                : MAX_DAYS_IN_MONTH;\n        return Array.from({ length: maxDays }, (_, i) => i + 1);\n    }, [year, month]);\n\n    // Date parts ordered by locale (memoized)\n    const parts = useMemo(\n        () =>\n            new Intl.DateTimeFormat(locale, {\n                year: 'numeric',\n                month: 'long',\n                day: 'numeric',\n            })\n                .formatToParts()\n                .map(part => part.type)\n                .filter((type): type is 'day' | 'month' | 'year' =>\n                    ['day', 'month', 'year'].includes(type)\n                ),\n        [locale]\n    );\n\n    const error = validation && isValidatorError(validation) ? validation.error : undefined;\n\n    const dayOptions = useMemo(\n        () => daysInMonth.map(day => ({ value: String(day), label: String(day) })),\n        [daysInMonth]\n    );\n\n    const monthOptions = useMemo(\n        () => months.map((month, index) => ({ value: String(index), label: month })),\n        [months]\n    );\n\n    const yearOptions = useMemo(\n        () => years.map(year => ({ value: String(year), label: String(year) })),\n        [years]\n    );\n\n    const fields: Record<'day' | 'month' | 'year', React.ReactNode> = {\n        day: (\n            <InputCol key=\"day\" width={20} minWidth={70}>\n                <Select\n                    name={`${path}.day`}\n                    value={day ?? ''}\n                    hasError={!!error}\n                    required={required}\n                    onChange={handleDayChange}\n                    placeholder={i18n('day')}\n                    options={dayOptions}\n                    data-testid={`${path}.day`}\n                    aria-label={i18n('day')}\n                />\n            </InputCol>\n        ),\n        month: (\n            <InputCol key=\"month\" width={50}>\n                <Select\n                    name={`${path}.month`}\n                    value={month ?? ''}\n                    hasError={!!error}\n                    required={required}\n                    onChange={handleMonthChange}\n                    placeholder={i18n('month')}\n                    options={monthOptions}\n                    data-testid={`${path}.month`}\n                    aria-label={i18n('month')}\n                />\n            </InputCol>\n        ),\n        year: (\n            <InputCol key=\"year\" width={30} minWidth={100}>\n                <Select\n                    name={`${path}.year`}\n                    value={year ?? ''}\n                    hasError={!!error}\n                    required={required}\n                    onChange={handleYearChange}\n                    placeholder={i18n('year')}\n                    options={yearOptions}\n                    data-testid={`${path}.year`}\n                    aria-label={i18n('year')}\n                />\n            </InputCol>\n        ),\n    };\n\n    return (\n        <FormGroup\n            inputId={inputId}\n            labelText={label}\n            error={error}\n            showLabel={showLabel}\n            required={required}\n        >\n            <InputRow>{parts.map(part => fields[part])}</InputRow>\n        </FormGroup>\n    );\n};\n\nconst dateFormat = (locale: string): string =>\n    new Intl.DateTimeFormat(locale)\n        .formatToParts()\n        .map(part => {\n            switch (part.type) {\n                case 'day':\n                    return 'dd';\n                case 'month':\n                    return 'mm';\n                case 'year':\n                    return 'yyyy';\n                case 'literal':\n                    return part.value;\n                default:\n                    return '';\n            }\n        })\n        .join('');\n\nexport const datetimeValidator = (locale: string): Validator<Date, unknown> =>\n    new Validator<Date, unknown>({\n        rule: value => isValid(value),\n        hint: 'date',\n        parameters: { format: dateFormat(locale) },\n    });\n\nexport default function dateField(\n    {\n        format,\n        key = 'date',\n        label = 'date',\n        locale,\n        validator,\n        yearRange,\n        ...props\n    }: Optional<FieldDefinition<string, Date>, 'key' | 'label'> & Optional<ExtraParams, 'locale'>,\n    config: Config\n): FieldCreator<Date, DateFieldProps, ExtraParams> {\n    return createField<string, Date, DateFieldProps>({\n        key,\n        label,\n        ...props,\n        format: format ?? {\n            bind: value => {\n                const dt = value ? parseISO(value) : undefined;\n                return dt && isValid(dt) ? { raw: dt } : undefined;\n            },\n            unbind: value => {\n                return isRichFormValue(value, 'raw')\n                    ? formatISO(value.raw, { representation: 'date' })\n                    : value\n                      ? formatISO(value, { representation: 'date' })\n                      : null;\n            },\n        },\n        validator: validator\n            ? datetimeValidator(config.language).and(validator)\n            : datetimeValidator(config.language),\n        component: DateField,\n        extendedParams: {\n            locale: locale ?? config.language,\n            yearRange,\n        },\n    });\n}\n","import { differenceInYears } from 'date-fns';\n\nimport { Validator } from '../../../core/validation';\nimport { Config } from '../../../types';\nimport dateField from './dateField';\n\nexport const ageLimitValidator = (min = 6, max = 129) =>\n    new Validator<Date, unknown>({\n        rule: value => {\n            const age = differenceInYears(new Date(), value);\n            return min <= age && age <= max;\n        },\n        hint: 'birthdate.yearLimit',\n        parameters: { min, max },\n    });\n\nexport default function birthdateField(\n    {\n        min,\n        max,\n        label = 'birthdate',\n        ...props\n    }: Parameters<typeof dateField>[0] & { min?: number; max?: number },\n    config: Config\n) {\n    return dateField(\n        {\n            ...props,\n            label: label,\n            validator: ageLimitValidator(min, max),\n        },\n        config\n    );\n}\n","import React from 'react';\n\nimport styled from 'styled-components';\n\nimport { ConsentType } from '@reachfive/identity-core';\n\nimport { DefaultPathMapping } from '../../../core/mapping';\nimport { checked, empty, isValidatorError } from '../../../core/validation';\nimport { snakeCasePath } from '../../../helpers/transformObjectProperties';\nimport { isRichFormValue } from '../../../helpers/utils';\nimport { MarkdownContent } from '../../miscComponent';\nimport { createField, type FieldComponentProps, type FieldDefinition } from '../fieldCreator';\nimport { Checkbox } from '../formControlsComponent';\n\nconst Description = styled.div`\n    font-size: ${props => props.theme.smallTextFontSize}px;\n    color: ${props => props.theme.mutedTextColor};\n    margin: 5px 5px 10px 5px;\n    text-align: justify;\n    display: block;\n\n    & > p {\n        margin-top: 1px;\n        margin-bottom: 1px;\n    }\n`;\n\ntype ConsentFieldOptions = {\n    type: ConsentType;\n    consentCannotBeGranted?: boolean;\n    description: string;\n    version: {\n        language: string;\n        versionId: number;\n    };\n};\n\nexport interface ConsentFieldProps extends FieldComponentProps<\n    boolean,\n    ConsentFieldOptions,\n    {},\n    'granted'\n> {}\n\nconst ConsentField = ({\n    value,\n    onChange,\n    label,\n    description,\n    path,\n    required,\n    validation,\n    consentCannotBeGranted,\n}: ConsentFieldProps) => {\n    const granted = (isRichFormValue(value, 'granted') ? value.granted : value) ?? false;\n\n    const onToggle = () =>\n        onChange({\n            value: consentCannotBeGranted ? false : !granted,\n            isDirty: true,\n        });\n\n    const error = validation && isValidatorError(validation) ? validation.error : undefined;\n\n    return (\n        <div style={{ position: 'relative' }}>\n            <Checkbox\n                value={granted ? String(granted) : undefined}\n                onToggle={onToggle}\n                name={path}\n                label={label}\n                data-testid={path}\n                required={required}\n                error={error}\n            />\n            <MarkdownContent\n                root={Description}\n                source={description}\n                data-testid={`${path}.description`}\n            />\n        </div>\n    );\n};\n\ntype Value = {\n    consentType?: ConsentType;\n    consentVersion?: {\n        language: string;\n        versionId: number;\n    };\n    granted: boolean;\n};\n\nexport default function consentField({\n    type,\n    required = false,\n    consentCannotBeGranted,\n    description,\n    version,\n    ...props\n}: Omit<FieldDefinition<Value, boolean>, 'defaultValue'> & {\n    defaultValue?: boolean;\n} & ConsentFieldOptions) {\n    return createField<Value, boolean, ConsentFieldProps, ConsentFieldOptions, 'granted'>({\n        ...props,\n        required,\n        defaultValue: { granted: props.defaultValue ?? false },\n        mapping: new DefaultPathMapping(snakeCasePath(props.path ?? props.key)), // Consent key should be snake_case\n        format: {\n            bind: value => value,\n            unbind: value => ({\n                granted: (isRichFormValue(value, 'granted') ? value.granted : value) ?? false,\n                consentType: type,\n                consentVersion: version,\n            }),\n        },\n        validator: required ? checked : empty,\n        rawProperty: 'granted',\n        component: ConsentField,\n        extendedParams: {\n            consentCannotBeGranted,\n            description,\n            type,\n            version,\n        },\n    });\n}\n","import React from 'react';\n\nimport { isValidatorError } from '../../../core/validation';\nimport { isRichFormValue } from '../../../helpers/utils';\nimport { createField, type FieldComponentProps, type FieldDefinition } from '../fieldCreator';\nimport { FormGroup, Select, type SelectProps } from '../formControlsComponent';\n\ntype Value = SelectProps['value'];\n\ntype SelectOptions = {\n    values: SelectProps['options'];\n};\n\nexport interface SelectFieldProps extends FieldComponentProps<Value, SelectOptions> {}\n\nconst SelectField = (props: SelectFieldProps) => {\n    const { value = '', validation, onChange, inputId, label, placeholder = label } = props;\n\n    const currentValue = isRichFormValue(value, 'raw') ? value.raw : value;\n\n    const handleChange = (event: React.ChangeEvent<HTMLSelectElement>) =>\n        onChange({\n            value: event.target.value,\n        });\n\n    const handleBlur = () => onChange({ isDirty: true });\n\n    const error = validation && isValidatorError(validation) ? validation.error : undefined;\n\n    return (\n        <FormGroup\n            inputId={inputId}\n            labelText={label}\n            {...{ error }}\n            showLabel={props.showLabel}\n            required={props.required}\n        >\n            <Select\n                id={inputId}\n                name={props.path}\n                required={props.required}\n                value={currentValue}\n                hasError={!!error}\n                onChange={handleChange}\n                onBlur={handleBlur}\n                placeholder={placeholder}\n                options={props.values}\n                data-testid={props.path}\n            />\n        </FormGroup>\n    );\n};\n\nexport default function selectField({\n    values,\n    ...config\n}: FieldDefinition<string, Value> & SelectOptions) {\n    return createField<string, Value, SelectFieldProps, SelectOptions>({\n        ...config,\n        component: SelectField,\n        extendedParams: i18n => ({\n            values: values.map(({ label, value }) => ({ value, label: i18n(label || value) })),\n        }),\n    });\n}\n","import { ConsentVersions, CustomField, CustomFieldType } from '@reachfive/identity-core';\n\nimport { AddressPathMapping } from '../../core/mapping';\nimport { Validator, checked, email, float, integer } from '../../core/validation';\nimport { UserError } from '../../helpers/errors';\nimport { camelCasePath } from '../../helpers/transformObjectProperties';\nimport { FormValue, camelCase, isRichFormValue } from '../../helpers/utils';\nimport { Config, Prettify } from '../../types';\nimport birthdateField from './fields/birthdayField';\nimport checkboxField from './fields/checkboxField';\nimport consentField from './fields/consentField';\nimport dateField from './fields/dateField';\nimport passwordField from './fields/passwordField';\nimport phoneNumberField from './fields/phoneNumberField';\nimport selectField from './fields/selectField';\nimport simpleField from './fields/simpleField';\nimport simplePasswordField from './fields/simplePasswordField';\nimport { FormContext } from './formComponent';\n\ntype FieldBuilder =\n    | typeof simpleField\n    | typeof checkboxField\n    | typeof selectField\n    | typeof dateField\n    | typeof birthdateField\n    | typeof phoneNumberField\n    | typeof passwordField\n    | typeof simplePasswordField\n    | typeof consentField;\n\ntype FieldConfig<T extends FieldBuilder> = Parameters<T>[0];\n\ntype PredefinedFieldConfig<T extends FieldBuilder> = Prettify<Omit<FieldConfig<T>, 'label'>>;\n\ntype PredefinedFieldKey = keyof typeof predefinedFields;\n\ntype PredefinedFieldOptions = {\n    [K in keyof typeof predefinedFields]: Prettify<\n        { key: K } & Parameters<(typeof predefinedFields)[K]>[0]\n    >;\n}[keyof typeof predefinedFields];\n\ntype CustomFieldOptions = Prettify<{ key: string } & FieldOptions>;\n\ntype ConsentFieldOptions = { key: string; errorArchivedConsents?: boolean };\n\ntype DataType<T extends CustomFieldType> = { dataType: T };\n\ntype FieldOptions =\n    | Prettify<DataType<'number'> & FieldConfig<typeof simpleField>>\n    | Prettify<DataType<'integer'> & FieldConfig<typeof simpleField>>\n    | Prettify<DataType<'decimal'> & FieldConfig<typeof simpleField>>\n    | Prettify<DataType<'string'> & FieldConfig<typeof simpleField>>\n    | Prettify<DataType<'date'> & FieldConfig<typeof dateField>>\n    | Prettify<DataType<'checkbox'> & FieldConfig<typeof checkboxField>>\n    | Prettify<DataType<'select'> & FieldConfig<typeof selectField>>\n    // | DataType<'tags'>\n    // | DataType<'object'>\n    | Prettify<DataType<'phone'> & FieldConfig<typeof phoneNumberField>>\n    | Prettify<DataType<'email'> & FieldConfig<typeof simpleField>>;\n\n// type FieldOptionsByDataType<T extends CustomFieldType> = Prettify<Omit<Extract<FieldOptions, DataType<T>>, 'dataType'>>\n\ntype PredefinedFieldBuilder<T extends FieldBuilder> = (\n    props: PredefinedFieldConfig<T>,\n    config: Config\n) => ReturnType<T>;\n\nfunction createPredefinedFieldBuilder<T extends FieldBuilder>(builder: PredefinedFieldBuilder<T>) {\n    return builder;\n}\n\nfunction predefinedFieldComponent<T extends FieldBuilder>(\n    builder: PredefinedFieldBuilder<T>,\n    props: PredefinedFieldConfig<T>,\n    config: Config\n) {\n    return builder(props, config);\n}\n\nconst predefinedFields = {\n    customIdentifier: createPredefinedFieldBuilder<typeof simpleField>((props, _config) =>\n        simpleField({\n            label: 'customIdentifier',\n            ...props,\n        })\n    ),\n    givenName: createPredefinedFieldBuilder<typeof simpleField>((props, _config) =>\n        simpleField({\n            label: 'givenName',\n            ...props,\n        })\n    ),\n    familyName: createPredefinedFieldBuilder<typeof simpleField>((props, _config) =>\n        simpleField({\n            label: 'familyName',\n            ...props,\n        })\n    ),\n    email: createPredefinedFieldBuilder<typeof simpleField>((props, _config) =>\n        simpleField({\n            label: 'email',\n            type: 'email',\n            ...props,\n            validator: email,\n        })\n    ),\n    phoneNumber: createPredefinedFieldBuilder<typeof phoneNumberField>((props, config) =>\n        phoneNumberField(props, config)\n    ),\n    password: createPredefinedFieldBuilder<typeof passwordField>((props, config) =>\n        passwordField(props, config)\n    ),\n    passwordConfirmation: createPredefinedFieldBuilder<typeof simplePasswordField>(\n        (props, _config) =>\n            simplePasswordField({\n                label: 'passwordConfirmation',\n                ...props,\n                canShowPassword: false,\n                validator: new Validator<string, unknown>({\n                    rule: (value, ctx) =>\n                        value === (ctx as FormContext<{ password: string }>).fields.password,\n                    hint: 'passwordMatch',\n                }),\n                // mapping: {\n                //     bind: () => undefined,\n                //     unbind: x => x\n                // }\n            })\n    ),\n    gender: createPredefinedFieldBuilder<typeof selectField>((props, _config) =>\n        selectField({\n            label: 'gender',\n            ...props,\n            values: [\n                {\n                    value: 'male',\n                    label: 'genders.male',\n                },\n                {\n                    value: 'female',\n                    label: 'genders.female',\n                },\n                {\n                    value: 'other',\n                    label: 'genders.other',\n                },\n            ],\n        })\n    ),\n    birthdate: createPredefinedFieldBuilder<typeof birthdateField>((props, config) =>\n        birthdateField(props, config)\n    ),\n    'address.title': createPredefinedFieldBuilder<typeof simpleField>((props, _config) =>\n        simpleField({\n            label: 'address.title',\n            path: 'addresses.title',\n            mapping: new AddressPathMapping('title'),\n            ...props,\n        })\n    ),\n    'address.addressType': createPredefinedFieldBuilder<typeof selectField>((props, _config) =>\n        selectField({\n            label: 'address.addressType',\n            path: 'addresses.addressType',\n            mapping: new AddressPathMapping('addressType'),\n            ...props,\n            values: [\n                { value: 'billing', label: 'address.addressType.billing' },\n                { value: 'delivery', label: 'address.addressType.delivery' },\n            ],\n        })\n    ),\n    'address.streetAddress': createPredefinedFieldBuilder<typeof simpleField>((props, _config) =>\n        simpleField({\n            label: 'address.streetAddress',\n            path: 'addresses.streetAddress',\n            mapping: new AddressPathMapping('streetAddress'),\n            ...props,\n        })\n    ),\n    'address.addressComplement': createPredefinedFieldBuilder<typeof simpleField>(\n        (props, _config) =>\n            simpleField({\n                label: 'address.addressComplement',\n                path: 'addresses.addressComplement',\n                mapping: new AddressPathMapping('addressComplement'),\n                ...props,\n            })\n    ),\n    'address.locality': createPredefinedFieldBuilder<typeof simpleField>((props, _config) =>\n        simpleField({\n            label: 'address.locality',\n            path: 'addresses.locality',\n            mapping: new AddressPathMapping('locality'),\n            ...props,\n        })\n    ),\n    'address.region': createPredefinedFieldBuilder<typeof simpleField>((props, _config) =>\n        simpleField({\n            label: 'address.region',\n            path: 'addresses.region',\n            mapping: new AddressPathMapping('region'),\n            ...props,\n        })\n    ),\n    'address.postalCode': createPredefinedFieldBuilder<typeof simpleField>((props, _config) =>\n        simpleField({\n            label: 'address.postalCode',\n            path: 'addresses.postalCode',\n            mapping: new AddressPathMapping('postalCode'),\n            ...props,\n        })\n    ),\n    'address.country': createPredefinedFieldBuilder<typeof simpleField>((props, _config) =>\n        simpleField({\n            label: 'address.country',\n            path: 'addresses.country',\n            mapping: new AddressPathMapping('country'),\n            ...props,\n        })\n    ),\n    friendlyName: createPredefinedFieldBuilder<typeof simpleField>((props, _config) =>\n        simpleField({\n            label: 'webauthn.friendly.name',\n            required: false,\n            ...props,\n        })\n    ),\n};\n\ntype CustomFieldBuilder<T extends FieldBuilder> = (\n    customField: CustomField,\n    { label, ...props }: FieldConfig<T>,\n    config: Config\n) => ReturnType<T>;\n\nfunction createFieldBuilder<T extends FieldBuilder>(builder: CustomFieldBuilder<T>) {\n    return builder;\n}\n\nfunction customFieldComponent<T extends FieldBuilder>(\n    customField: CustomField,\n    builder: CustomFieldBuilder<T>,\n    props: FieldConfig<T>,\n    config: Config\n) {\n    return builder(customField, props, config);\n}\n\nconst customFields = {\n    number: createFieldBuilder<typeof simpleField>((customField, { label, ...props }, _config) =>\n        simpleField({\n            label: label ?? customField.name,\n            ...props,\n            key: `custom_fields.${customField.path}`,\n            type: 'number',\n        })\n    ),\n    integer: createFieldBuilder<typeof simpleField>((customField, { label, ...props }, _config) =>\n        simpleField({\n            label: label ?? customField.name,\n            ...props,\n            key: `custom_fields.${customField.path}`,\n            type: 'number',\n            format: {\n                bind: (value?: string | number) =>\n                    typeof value === 'number' ? value.toString() : '',\n                unbind: (value?: FormValue<string>) => {\n                    const string = isRichFormValue(value) ? value.raw : value;\n                    return string ? parseInt(string, 10) : 0;\n                },\n            },\n            validator: integer,\n        })\n    ),\n    decimal: createFieldBuilder<typeof simpleField>((customField, { label, ...props }, _config) =>\n        simpleField({\n            label: label ?? customField.name,\n            ...props,\n            key: `custom_fields.${customField.path}`,\n            type: 'number',\n            format: {\n                bind: (value?: string | number) =>\n                    typeof value === 'number' ? value.toString() : '',\n                unbind: (value?: FormValue<string>) => {\n                    const string = isRichFormValue(value) ? value.raw : value;\n                    return string ? parseFloat(string) : 0;\n                },\n            },\n            validator: float,\n        })\n    ),\n    string: createFieldBuilder<typeof simpleField>((customField, { label, ...props }, _config) =>\n        simpleField({\n            label: label ?? customField.name,\n            ...props,\n            key: `custom_fields.${customField.path}`,\n        })\n    ),\n    date: createFieldBuilder<typeof dateField>((customField, { label, ...props }, config) =>\n        dateField(\n            {\n                label: label ?? customField.name,\n                ...props,\n                key: `custom_fields.${customField.path}`,\n            },\n            config\n        )\n    ),\n    checkbox: createFieldBuilder<typeof checkboxField>(\n        (customField, { label, ...props }, _config) =>\n            checkboxField({\n                label: label ?? customField.name,\n                ...props,\n                key: `custom_fields.${customField.path}`,\n                ...(props.required ? { validator: checked } : {}),\n            })\n    ),\n    select: createFieldBuilder<typeof selectField>((customField, { label, ...props }, _config) =>\n        selectField({\n            label: label ?? customField.name,\n            ...props,\n            key: `custom_fields.${customField.path}`,\n            values: customField.selectableValues ?? [],\n        })\n    ),\n    phone: createFieldBuilder<typeof phoneNumberField>((customField, { label, ...props }, config) =>\n        phoneNumberField(\n            {\n                label: label ?? customField.name,\n                ...props,\n                key: `custom_fields.${customField.path}`,\n            },\n            config\n        )\n    ),\n    email: createFieldBuilder<typeof simpleField>((customField, { label, ...props }, _config) =>\n        simpleField({\n            label: label ?? customField.name,\n            ...props,\n            key: `custom_fields.${customField.path}`,\n            type: 'email',\n            validator: email,\n        })\n    ),\n    tags: createFieldBuilder<typeof simpleField>((customField, { label, ...props }, _config) =>\n        simpleField({\n            label: label ?? customField.name,\n            ...props,\n            key: `custom_fields.${customField.path}`,\n        })\n    ),\n    object: createFieldBuilder<typeof simpleField>((customField, { label, ...props }, _config) =>\n        simpleField({\n            label: label ?? customField.name,\n            ...props,\n            key: `custom_fields.${customField.path}`,\n        })\n    ),\n};\n\nfunction consentFieldComponent(\n    consent: ConsentVersions,\n    fieldConfig: ConsentFieldOptions,\n    versionIdPath: string | number\n) {\n    if (fieldConfig.errorArchivedConsents && consent.status === 'archived') {\n        throw new UserError(`The '${consent.key}' consent is archived and cannot be displayed.`);\n    }\n\n    // If the version ID is not defined in the path, get the latest version ID\n    const versionId =\n        Number(versionIdPath) ||\n        Math.max(...Object.values(consent.versions.map(v => Number(v.versionId))));\n\n    const version = consent.versions.find(version => version.versionId === versionId);\n    if (!version) {\n        throw new UserError(`Unknown version ID n°${versionId} of consent '${consent.key}'.`);\n    }\n\n    const baseConfig: FieldConfig<typeof consentField> = {\n        ...fieldConfig,\n        key: `consents.${consent.key}.${versionId}`,\n        path: `consents.${consent.key}`, // Will target the same profile consent value for different versions of the consent\n        label: version.title,\n        type: consent.consentType,\n        version: { versionId, language: version.language },\n        description: version.description ?? version.title,\n        consentCannotBeGranted: !fieldConfig.errorArchivedConsents && consent.status === 'archived',\n    };\n\n    return consentField(baseConfig);\n}\n\nfunction isPredefinedField(key: string): key is PredefinedFieldKey {\n    return key in predefinedFields;\n}\n\nfunction findCustomField(\n    customFields: CustomField[],\n    camelPath: string,\n    prefix = 'customFields'\n): CustomField | undefined {\n    return customFields?.find(customField => {\n        const fieldCamelPath = camelCase(customField.path);\n        return camelPath === fieldCamelPath || camelPath === `${prefix}.${fieldCamelPath}`;\n    });\n}\n\nfunction buildCustomField<FieldConfig extends FieldConf<string>>(\n    customField: CustomField,\n    fieldConfig: FieldConfig,\n    config: Config\n) {\n    const builder = customFields[customField.dataType];\n    type Field = typeof builder extends CustomFieldBuilder<infer T> ? T : never;\n    return customFieldComponent<Field>(customField, builder, fieldConfig, config);\n}\n\nfunction isConsentField(\n    config: Config,\n    camelPath: string,\n    _options: object\n): _options is ConsentFieldOptions {\n    return Object.values(config.consentsVersions).some(versions => {\n        const fieldCamelPath = camelCase(versions.key);\n        return camelPath === fieldCamelPath || camelPath === `consents.${fieldCamelPath}`;\n    });\n}\n\nconst findConsentField = (config: Config, camelPath: string): ConsentVersions | undefined => {\n    return Object.values(config.consentsVersions).find(versions => {\n        const fieldCamelPath = camelCase(versions.key);\n        return camelPath === fieldCamelPath || camelPath === `consents.${fieldCamelPath}`;\n    });\n};\n\ntype FieldConf<K extends string> = K extends PredefinedFieldKey\n    ? { key: PredefinedFieldKey } & PredefinedFieldConfig<FieldBuilder>\n    : K extends `custom.${string}`\n      ? CustomFieldOptions\n      : K extends `consents.${string}`\n        ? ConsentFieldOptions\n        : CustomFieldOptions | ConsentFieldOptions;\n\nconst resolveField = <K extends string>(\n    fieldConfig: FieldConf<K> & ExtraOptions,\n    config: Config\n) => {\n    // Predefined fields\n    if (isPredefinedField(fieldConfig.key)) {\n        const builder = predefinedFields[fieldConfig.key];\n        type Field = typeof builder extends PredefinedFieldBuilder<infer T> ? T : never;\n        return predefinedFieldComponent<Field>(\n            builder,\n            fieldConfig as PredefinedFieldConfig<Field>,\n            config\n        );\n    }\n\n    // Custom fields\n    const customField = findCustomField(config.customFields ?? [], fieldConfig.key);\n    if (customField) {\n        return buildCustomField(customField, fieldConfig, config);\n    }\n\n    // Custom address fields\n    const addressField = findCustomField(\n        config.addressFields ?? [],\n        fieldConfig.key,\n        'address.customFields'\n    );\n    // custom address field property should be `customField.{string}`\n    if (addressField) {\n        const addressProperty =\n            new RegExp('^address(?:es)?\\\\.(.+)').exec(fieldConfig.key)?.at(1) ?? fieldConfig.key;\n        const addressFieldConfig = {\n            ...fieldConfig,\n            path: `addresses.${addressProperty}`,\n            mapping: new AddressPathMapping(addressProperty),\n        };\n        return buildCustomField(addressField, addressFieldConfig, config);\n    }\n\n    // Consent fields\n    const camelPathSplit =\n        fieldConfig.key.split('.v'); /** @todo What if consent start with a `v`? */\n    if (isConsentField(config, camelPathSplit[0], fieldConfig)) {\n        const consentField = findConsentField(config, camelPathSplit[0]);\n        // Find most recent consent version if not given\n        if (consentField) {\n            const highestConsentVersion = consentField.versions[0].versionId;\n            return consentFieldComponent(\n                consentField,\n                fieldConfig,\n                camelPathSplit[1] || highestConsentVersion\n            );\n        }\n    }\n\n    throw new UserError(`Unknown field: ${fieldConfig.key}`);\n};\n\nexport type ExtraOptions = {\n    canShowPassword?: boolean;\n    errorArchivedConsents?: boolean;\n};\n\n/**\n * @example { key: \"email\" }\n * @example { key: \"family_name\", defaultValue: \"Moreau\", required\": true }\n * @example { key: \"given_name\", defaultValue: \"Kylian\", type: \"hidden\" }\n * @example { key: \"customFields.date\", path: \"date\", dataType: \"date\" }\n * @example { key: \"consents.foo\" }\n */\nexport type Field = PredefinedFieldOptions | CustomFieldOptions | ConsentFieldOptions;\n\nexport function buildFormFields(\n    fields: (string | Field)[] = [],\n    { canShowPassword, errorArchivedConsents, ...config }: Config & ExtraOptions\n) {\n    return fields\n        .filter(x => !!x)\n        .map(field =>\n            resolveField(\n                typeof field === 'string'\n                    ? { key: camelCasePath(field), canShowPassword, errorArchivedConsents }\n                    : {\n                          ...field,\n                          key: camelCasePath(field.key),\n                          canShowPassword,\n                          errorArchivedConsents,\n                      },\n                config\n            )\n        );\n}\n","import React, { useCallback, useLayoutEffect, useState } from 'react';\n\nimport { AuthOptions } from '@reachfive/identity-core';\nimport { SignupParams } from '@reachfive/identity-core/es/main/oAuthClient';\n\nimport { CaptchaProvider, WithCaptchaProps, type WithCaptchaToken } from '../../components/captcha';\nimport { useConfig } from '../../contexts/config';\nimport { useReachfive } from '../../contexts/reachfive';\nimport { snakeCaseProperties } from '../../helpers/transformObjectProperties';\nimport { isValued, isEqual } from '../../helpers/utils';\nimport { MarkdownContent } from '../miscComponent';\nimport { extractCaptchaTokenFromData, importGoogleRecaptchaScript } from '../reCaptcha';\nimport { type PhoneNumberOptions } from './fields/phoneNumberField';\nimport { createForm } from './formComponent';\nimport { UserAgreementStyle } from './formControlsComponent';\nimport { buildFormFields, type Field } from './formFieldFactory';\n\nimport type { OnError, OnSuccess } from '../../types';\n\nconst SignupForm = createForm<SignupParams['data']>({\n    prefix: 'r5-signup-',\n    submitLabel: 'signup.submitLabel',\n});\n\nexport interface PasswordSignupFormProps {\n    /**\n     * List of authentication options\n     */\n    auth?: AuthOptions;\n    /**\n     * A function that is called before the signup request is made.\n     */\n    beforeSignup?: <T>(param: T) => T;\n    /**\n     * Whether or not to provide the display password in clear text option.\n     * @default false\n     */\n    canShowPassword?: boolean;\n    /**\n     * Object that lets you set display options for the phone number field.\n     */\n    phoneNumberOptions?: PhoneNumberOptions;\n    /**\n     * The URL sent in the email to which the user is redirected. This URL must be whitelisted in the `Allowed Callback URLs` field of your ReachFive client settings.\n     */\n    redirectUrl?: string;\n    /**\n     * Returned in the `redirectUrl` as a query parameter, this parameter is used as the post-email confirmation URL.\n     */\n    returnToAfterEmailConfirmation?: string;\n    /**\n     * Boolean for whether the signup form fields' labels are displayed on the login view.\n     * @default false\n     * If set to `true`, the labels are shown which includes an asterisk (*) next to required fields.\n     */\n    showLabels?: boolean;\n    /**\n     * List of the signup fields to display in the form.\n     *\n     * A field is either a string representing the field’s key (predefined, custom field, or consent) or an object with attributes overriding the default field configuration.\n     *\n     * @default ['given_name', 'family_name', 'email', 'password', 'password_confirmation']\n     */\n    signupFields?: (string | Field)[];\n    /**\n     * The user agreement text to display in the form.\n     */\n    userAgreement?: string;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\nexport const PasswordSignupForm = ({\n    auth,\n    beforeSignup = x => x,\n    canShowPassword,\n    phoneNumberOptions,\n    recaptcha_enabled = false,\n    recaptcha_site_key,\n    captchaFoxEnabled = false,\n    captchaFoxSiteKey,\n    captchaFoxMode = 'hidden',\n    redirectUrl,\n    returnToAfterEmailConfirmation,\n    showLabels,\n    signupFields = ['given_name', 'family_name', 'email', 'password', 'password_confirmation'],\n    userAgreement,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) satisfies OnSuccess,\n}: WithCaptchaProps<PasswordSignupFormProps>) => {\n    const coreClient = useReachfive();\n    const config = useConfig();\n    const [blacklist, setBlacklist] = useState<string[]>([]);\n\n    useLayoutEffect(() => {\n        importGoogleRecaptchaScript(recaptcha_site_key);\n    }, [recaptcha_site_key]);\n\n    const callback = useCallback(\n        (data: WithCaptchaToken<SignupParams['data']>) => {\n            const captchaToken = extractCaptchaTokenFromData(data);\n            return coreClient.signup({\n                captchaToken,\n                data: snakeCaseProperties(data) as SignupParams['data'],\n                auth,\n                redirectUrl,\n                returnToAfterEmailConfirmation,\n            });\n        },\n        [auth, coreClient, redirectUrl, returnToAfterEmailConfirmation]\n    );\n\n    const refreshBlacklist = useCallback(\n        ({ email = '', givenName = '', familyName = '' }: SignupParams['data']) => {\n            const list = [email.split('@'), email, givenName.split(' '), familyName.split(' ')]\n                .flat(1)\n                .map(str => str.trim().toLowerCase())\n                .filter(function (word) {\n                    return isValued(word);\n                });\n\n            const distinct = Array.from(new Set(list));\n\n            if (!isEqual(distinct, blacklist)) {\n                setBlacklist(distinct);\n            }\n        },\n        [blacklist]\n    );\n\n    const fields = buildFormFields(signupFields, {\n        ...config,\n        canShowPassword,\n        errorArchivedConsents: true,\n    });\n\n    const allFields = userAgreement\n        ? [\n              ...fields,\n              {\n                  staticContent: (\n                      <MarkdownContent\n                          key=\"user-agreement\"\n                          data-testid=\"user-agreement\"\n                          root={UserAgreementStyle}\n                          source={userAgreement}\n                      />\n                  ),\n              },\n          ]\n        : fields;\n\n    return (\n        <CaptchaProvider\n            recaptcha_enabled={recaptcha_enabled}\n            recaptcha_site_key={recaptcha_site_key}\n            captchaFoxEnabled={captchaFoxEnabled}\n            captchaFoxSiteKey={captchaFoxSiteKey}\n            captchaFoxMode={captchaFoxMode}\n            action=\"signup\"\n        >\n            <SignupForm\n                fields={allFields}\n                showLabels={showLabels}\n                beforeSubmit={beforeSignup}\n                onFieldChange={refreshBlacklist}\n                sharedProps={{\n                    blacklist,\n                    ...phoneNumberOptions,\n                }}\n                handler={callback}\n                onSuccess={authResult => {\n                    const isIdentifierVerificationRequired =\n                        authResult != undefined &&\n                        authResult.accessToken == undefined &&\n                        authResult?.code == undefined;\n                    onSuccess({\n                        name: 'signup',\n                        authResult,\n                        isIdentifierVerificationRequired,\n                    });\n                }}\n                onError={onError}\n            />\n        </CaptchaProvider>\n    );\n};\n\nexport default PasswordSignupForm;\n","import React from 'react';\n\nimport { InitialScreen } from '../../../../constants.ts';\nimport { type PhoneNumberOptions } from '../../../components/form/fields/phoneNumberField';\nimport PasswordSignupForm from '../../../components/form/passwordSignupFormComponent';\nimport { SocialButtons } from '../../../components/form/socialButtonsComponent';\nimport { WebAuthnSignupViewButtons } from '../../../components/form/webAuthAndPasswordButtonsComponent';\nimport { Alternative, Heading, Link, Separator } from '../../../components/miscComponent';\nimport { useI18n } from '../../../contexts/i18n';\nimport { useRouting } from '../../../contexts/routing';\nimport { selectLogin } from '../authWidget.tsx';\n\nimport type { OnError, OnSuccess } from '../../../types';\nimport type { SignupWithPasswordViewProps } from './signupWithPasswordViewComponent';\nimport type { SignupWithWebAuthnViewProps } from './signupWithWebAuthnViewComponent';\n\nexport interface SignupViewProps extends SignupWithPasswordViewProps, SignupWithWebAuthnViewProps {\n    /**\n     * Boolean that specifies whether login is enabled.\n     *\n     * @default true\n     */\n    allowLogin?: boolean;\n    initialScreen?: InitialScreen;\n    /**\n     * Boolean that specifies whether biometric login is enabled.\n     *\n     * @default false\n     */\n    allowWebAuthnLogin?: boolean;\n    /**\n     * Boolean that specifies whether biometric signup is enabled.\n     *\n     * @default false\n     */\n    allowWebAuthnSignup?: boolean;\n    /**\n     * Boolean that specifies whether password authentication is enabled.\n     */\n    enablePasswordAuthentication?: boolean;\n    /**\n     * Lists the available social providers. This is an array of strings.\n     * Tip: If you pass an empty array, social providers will not be displayed.\n     */\n    socialProviders?: string[];\n    /**\n     * Phone number field options.\n     */\n    phoneNumberOptions?: PhoneNumberOptions;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\nexport const SignupView = ({\n    allowLogin = true,\n    initialScreen,\n    allowWebAuthnLogin = false,\n    allowWebAuthnSignup = false,\n    enablePasswordAuthentication = true,\n    socialProviders,\n    ...props\n}: SignupViewProps) => {\n    const i18n = useI18n();\n    const { goTo } = useRouting();\n\n    return (\n        <div>\n            <Heading>{i18n('signup.title')}</Heading>\n\n            {socialProviders && socialProviders.length > 0 && (\n                <SocialButtons\n                    providers={socialProviders}\n                    auth={props.auth}\n                    onSuccess={props.onSuccess}\n                    onError={props.onError}\n                />\n            )}\n            {socialProviders && socialProviders.length > 0 && <Separator text={i18n('or')} />}\n\n            {allowWebAuthnSignup ? (\n                <WebAuthnSignupViewButtons\n                    enablePasswordAuthentication={enablePasswordAuthentication}\n                    onPasswordClick={() => goTo('signup-with-password')}\n                    onBiometricClick={() => goTo('signup-with-web-authn')}\n                />\n            ) : (\n                <PasswordSignupForm {...props} />\n            )}\n\n            {allowLogin && (\n                <Alternative>\n                    <span>{i18n('signup.loginLinkPrefix')}</span>\n                    &nbsp;\n                    <Link target={selectLogin(initialScreen, allowWebAuthnLogin)}>\n                        {i18n('signup.loginLink')}\n                    </Link>\n                </Alternative>\n            )}\n        </div>\n    );\n};\n\nexport default SignupView;\n","import React, { useState } from 'react';\n\nimport { SignupEvent } from '@/types/events';\n\nimport PasswordSignupForm, {\n    type PasswordSignupFormProps,\n} from '../../../components/form/passwordSignupFormComponent';\nimport { Alternative, Heading, Link } from '../../../components/miscComponent';\nimport { useI18n } from '../../../contexts/i18n';\n\nimport type { OnSuccess } from '@/types';\n\nexport interface SignupWithPasswordViewProps extends PasswordSignupFormProps {}\n\nexport const SignupWithPasswordView = ({\n    onSuccess = (() => {}) satisfies OnSuccess,\n    ...props\n}: SignupWithPasswordViewProps) => {\n    const i18n = useI18n();\n    const [isAwaitingIdentifierVerification, setIsAwaitingIdentifierVerification] =\n        useState<boolean>(false);\n    const enrichedOnSuccess = (evt: SignupEvent) => {\n        setIsAwaitingIdentifierVerification(evt.isIdentifierVerificationRequired);\n        onSuccess(evt);\n    };\n    return (\n        <div>\n            {isAwaitingIdentifierVerification ? (\n                <div className=\"success\">{i18n('signup.awaiting.identifier.verification')}</div>\n            ) : (\n                <div>\n                    <Heading>{i18n('signup.withPassword')}</Heading>\n                    <PasswordSignupForm {...props} onSuccess={enrichedOnSuccess as OnSuccess} />\n                </div>\n            )}\n            <Alternative>\n                <Link target={'signup'}>{i18n('back')}</Link>\n            </Alternative>\n        </div>\n    );\n};\n\nexport default SignupWithPasswordView;\n","import React, { useState } from 'react';\n\nimport type { AuthOptions, Client as CoreClient } from '@reachfive/identity-core';\n\nimport { createForm } from '../../../components/form/formComponent';\nimport { UserAgreementStyle } from '../../../components/form/formControlsComponent';\nimport { buildFormFields, type Field } from '../../../components/form/formFieldFactory';\nimport { Alternative, Heading, Link, MarkdownContent } from '../../../components/miscComponent';\nimport { useConfig } from '../../../contexts/config';\nimport { useI18n } from '../../../contexts/i18n';\nimport { useReachfive } from '../../../contexts/reachfive';\nimport { snakeCaseProperties } from '../../../helpers/transformObjectProperties';\n\nimport type { OnError, OnSuccess } from '../../../types';\n\ntype SignupFormData = Parameters<CoreClient['signupWithWebAuthn']>[0]['profile'] & {\n    friendlyName?: string;\n};\n\nconst SignupForm = createForm({\n    prefix: 'r5-webauthn-signup-',\n    submitLabel: 'signup.submitLabel',\n});\n\nexport interface SignupWithWebAuthnViewProps {\n    /**\n     * List of authentication options\n     */\n    auth?: AuthOptions;\n    /**  */\n    beforeSignup?: <T>(param: T) => T;\n    /**\n     * The URL sent in the email to which the user is redirected.\n     * This URL must be whitelisted in the `Allowed Callback URLs` field of your ReachFive client settings.\n     */\n    redirectUrl?: string;\n    /**\n     * Returned in the `redirectUrl` as a query parameter, this parameter is used as the post-email confirmation URL.\n     * Important: This parameter should only be used with Hosted Pages.\n     */\n    returnToAfterEmailConfirmation?: string;\n    /**\n     * Whether the signup form fields' labels are displayed on the login view.\n     *\n     * @default false\n     */\n    showLabels?: boolean;\n    /**\n     * List of the signup fields to display in the form.\n     *\n     * A field is either a string representing the field’s key (predefined, custom field, or consent) or an object with attributes overriding the default field configuration.\n     *\n     * @default ['given_name', 'family_name', 'email']\n     *\n     * @example\n     * [\n     *   \"email\",\n     *   {\n     *     \"key\": \"family_name\",\n     *     \"defaultValue\": \"Moreau\",\n     *     \"required\": true\n     *   }\n     * ]\n     */\n    signupFields?: (string | Field)[];\n    /**  */\n    userAgreement?: string;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\nexport const SignupWithWebAuthnView = ({\n    auth,\n    beforeSignup = x => x,\n    redirectUrl,\n    returnToAfterEmailConfirmation,\n    signupFields = ['given_name', 'family_name', 'email'],\n    showLabels = false,\n    userAgreement,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n}: SignupWithWebAuthnViewProps) => {\n    const coreClient = useReachfive();\n    const config = useConfig();\n    const i18n = useI18n();\n    const [isAwaitingIdentifierVerification, setIsAwaitingIdentifierVerification] =\n        useState<boolean>(false);\n\n    const handleSignup = (data: SignupFormData) =>\n        coreClient.signupWithWebAuthn(\n            {\n                profile: snakeCaseProperties(data),\n                friendlyName: data.friendlyName,\n                redirectUrl,\n                returnToAfterEmailConfirmation,\n            },\n            auth\n        );\n\n    const webAuthnSignupFields = signupFields.filter(\n        field => field !== 'password' && field !== 'password_confirmation'\n    );\n\n    const fields = buildFormFields(webAuthnSignupFields, config);\n\n    const allFields = userAgreement\n        ? [\n              ...fields,\n              {\n                  staticContent: (\n                      <MarkdownContent\n                          key=\"user-agreement\"\n                          root={UserAgreementStyle}\n                          source={userAgreement}\n                      />\n                  ),\n              },\n          ]\n        : fields;\n\n    return (\n        <div>\n            {isAwaitingIdentifierVerification ? (\n                <div className=\"success\">{i18n('signup.awaiting.identifier.verification')}</div>\n            ) : (\n                <div>\n                    <Heading>{i18n('signup.withBiometrics')}</Heading>\n                    <SignupForm\n                        fields={allFields}\n                        showLabels={showLabels}\n                        beforeSubmit={beforeSignup}\n                        handler={handleSignup}\n                        onSuccess={authResult => {\n                            const isIdentifierVerificationRequired =\n                                authResult != undefined &&\n                                authResult.accessToken == undefined &&\n                                authResult?.code == undefined;\n                            setIsAwaitingIdentifierVerification(isIdentifierVerificationRequired);\n                            onSuccess({\n                                name: 'signup',\n                                authResult,\n                                isIdentifierVerificationRequired,\n                            });\n                        }}\n                        onError={onError}\n                    />\n                </div>\n            )}\n\n            <Alternative>\n                <Link target={'signup'}>{i18n('back')}</Link>\n            </Alternative>\n        </div>\n    );\n};\n\nexport default SignupWithWebAuthnView;\n","import { ComponentProps } from 'react';\n\nimport { type SessionInfo } from '@reachfive/identity-core';\n\nimport { InitialScreen } from '../../../constants.ts';\nimport { createMultiViewWidget } from '../../components/widget/widget';\nimport { UserError } from '../../helpers/errors';\nimport { ProviderId } from '../../providers/providers';\nimport { FaSelectionView, VerificationCodeView } from '../stepUp/mfaStepUpWidget';\nimport {\n    AccountRecoverySuccessView,\n    AccountRecoveryView,\n} from './views/accountRecoveryViewComponent.tsx';\nimport {\n    ForgotPasswordCodeView,\n    ForgotPasswordPhoneNumberView,\n    ForgotPasswordSuccessView,\n    ForgotPasswordView,\n} from './views/forgotPasswordViewComponent';\nimport LoginView from './views/loginViewComponent';\nimport LoginWithPasswordView from './views/loginWithPasswordViewComponent';\nimport LoginWithWebAuthnView from './views/loginWithWebAuthnViewComponent';\nimport QuickLoginView from './views/quickLoginViewComponent';\nimport ReauthView from './views/reauthViewComponent';\nimport SignupView from './views/signupViewComponent';\nimport SignupWithPasswordView from './views/signupWithPasswordViewComponent';\nimport SignupWithWebAuthnView from './views/signupWithWebAuthnViewComponent';\n\nimport type { PropsWithSession } from '../../contexts/session';\nimport type { FaSelectionViewState, VerificationCodeViewState } from '../stepUp/mfaStepUpWidget';\n\nexport interface AuthWidgetProps\n    extends\n        ComponentProps<typeof LoginView>,\n        ComponentProps<typeof LoginWithWebAuthnView>,\n        ComponentProps<typeof LoginWithPasswordView>,\n        ComponentProps<typeof SignupView>,\n        ComponentProps<typeof SignupWithPasswordView>,\n        ComponentProps<typeof SignupWithWebAuthnView>,\n        ComponentProps<typeof ForgotPasswordView>,\n        ComponentProps<typeof QuickLoginView>,\n        ComponentProps<typeof ReauthView>,\n        Omit<ComponentProps<typeof FaSelectionView>, keyof FaSelectionViewState>,\n        Omit<ComponentProps<typeof VerificationCodeView>, keyof VerificationCodeViewState> {\n    /**\n     * Boolean that specifies whether quick login is enabled.\n     *\n     * @default true\n     */\n    allowQuickLogin?: boolean;\n    /**\n     * The widget’s initial screen if a value is provided, otherwise:\n     * - if `quickLogin` is set to `true`, it defaults to `quick-login`.\n     * - otherwise if the user is authenticated, it defaults to `reauth`.\n     * - otherwise if `allowLogin` is set to `true` and `allowWebAuthnLogin` is not set to `true`, it defaults to `login`.\n     * - otherwise if `allowLogin` is set to `true`, it defaults to `login-with-web-authn`.\n     * - otherwise if `allowSignup` is set to `true`, it defaults to `signup`.\n     * - otherwise, defaults to `forgot-password`.\n     */\n    initialScreen?: InitialScreen;\n}\n\nexport function selectLogin(initialScreen?: InitialScreen, allowWebAuthnLogin?: boolean): string {\n    if (initialScreen === 'login' || initialScreen === 'login-with-web-authn') return initialScreen;\n    return !allowWebAuthnLogin ? 'login' : 'login-with-web-authn';\n}\n\nexport default createMultiViewWidget<AuthWidgetProps, PropsWithSession<AuthWidgetProps>>({\n    initialView({\n        initialScreen,\n        allowLogin = true,\n        allowQuickLogin = true,\n        allowSignup = true,\n        allowWebAuthnLogin,\n        socialProviders,\n        session = {} as SessionInfo,\n    }): string {\n        const quickLogin =\n            allowQuickLogin &&\n            !session.isAuthenticated &&\n            session.lastLoginType &&\n            socialProviders?.includes(session.lastLoginType as ProviderId);\n\n        return (\n            initialScreen ??\n            (quickLogin ? 'quick-login' : undefined) ??\n            (session.isAuthenticated ? 'reauth' : undefined) ??\n            (allowLogin && !allowWebAuthnLogin ? 'login' : undefined) ??\n            (allowLogin ? 'login-with-web-authn' : undefined) ??\n            (allowSignup ? 'signup' : undefined) ??\n            'forgot-password'\n        );\n    },\n    views: {\n        login: LoginView,\n        'login-with-web-authn': LoginWithWebAuthnView,\n        'login-with-password': LoginWithPasswordView,\n        signup: SignupView,\n        'signup-with-password': SignupWithPasswordView,\n        'signup-with-web-authn': SignupWithWebAuthnView,\n        'forgot-password': ForgotPasswordView,\n        'forgot-password-phone-number': ForgotPasswordPhoneNumberView,\n        'account-recovery': AccountRecoveryView,\n        'forgot-password-code': ForgotPasswordCodeView,\n        'forgot-password-success': ForgotPasswordSuccessView,\n        'account-recovery-success': AccountRecoverySuccessView,\n        'quick-login': QuickLoginView,\n        'fa-selection': FaSelectionView,\n        'verification-code': VerificationCodeView,\n        reauth: ReauthView,\n    },\n    prepare: (options, { config, session }) => {\n        if (!config.passwordPolicy) {\n            throw new UserError('This feature is not available on your account.');\n        }\n        if (!config.webAuthn && options.allowWebAuthnLogin) {\n            throw new UserError('The WebAuthn feature is not available on your account.');\n        }\n\n        return {\n            socialProviders: config.socialProviders,\n            ...options,\n            session,\n        } as PropsWithSession<AuthWidgetProps>;\n    },\n});\n","import React, { ComponentProps, useLayoutEffect } from 'react';\n\nimport { CaptchaProvider, WithCaptchaProps, type WithCaptchaToken } from '../../components/captcha';\nimport { simpleField } from '../../components/form/fields/simpleField';\nimport { createForm } from '../../components/form/formComponent';\nimport { Info, Intro } from '../../components/miscComponent';\nimport { importGoogleRecaptchaScript } from '../../components/reCaptcha';\nimport { createMultiViewWidget } from '../../components/widget/widget';\nimport { useI18n } from '../../contexts/i18n';\nimport { useReachfive } from '../../contexts/reachfive';\nimport { useRouting } from '../../contexts/routing';\nimport { email } from '../../core/validation';\n\nimport type { OnError, OnSuccess } from '../../types';\n\ntype EmailFormData = { email: string };\n\nconst EmailEditorForm = createForm<EmailFormData>({\n    prefix: 'r5-email-editor-',\n    supportMultipleSubmits: true,\n    fields: [\n        simpleField({\n            key: 'email',\n            label: 'email',\n            type: 'email',\n            validator: email,\n        }),\n    ],\n});\n\ninterface MainViewProps {\n    /**\n     * The authorization credential JSON Web Token (JWT) used to access the ReachFive API, less than five minutes old.\n     */\n    accessToken: string;\n    /**\n     * The URL sent in the email to which the user is redirected.\n     * This URL must be whitelisted in the `Allowed Callback URLs` field of your ReachFive client settings.\n     */\n    redirectUrl?: string;\n    /**\n     * Whether the signup form fields' labels are displayed on the login view.\n     * @default false\n     */\n    showLabels?: boolean;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\nconst MainView = ({\n    accessToken,\n    recaptcha_enabled = false,\n    recaptcha_site_key,\n    captchaFoxEnabled = false,\n    captchaFoxMode = 'hidden',\n    captchaFoxSiteKey,\n    redirectUrl,\n    showLabels = false,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n}: WithCaptchaProps<MainViewProps>) => {\n    const coreClient = useReachfive();\n    const i18n = useI18n();\n    const { goTo } = useRouting();\n\n    useLayoutEffect(() => {\n        importGoogleRecaptchaScript(recaptcha_site_key);\n    }, [recaptcha_site_key]);\n\n    const callback = (data: WithCaptchaToken<EmailFormData>) => {\n        return coreClient.updateEmail({ ...data, accessToken, redirectUrl });\n    };\n\n    const handleSuccess = () => {\n        onSuccess({ name: 'email_updated' });\n        goTo('success');\n    };\n\n    return (\n        <div>\n            <CaptchaProvider\n                recaptcha_enabled={recaptcha_enabled}\n                recaptcha_site_key={recaptcha_site_key}\n                captchaFoxEnabled={captchaFoxEnabled}\n                captchaFoxSiteKey={captchaFoxSiteKey}\n                captchaFoxMode={captchaFoxMode}\n                action=\"update_email\"\n            >\n                <Intro>{i18n('emailEditor.intro')}</Intro>\n                <EmailEditorForm\n                    showLabels={showLabels}\n                    handler={callback}\n                    onSuccess={handleSuccess}\n                    onError={onError}\n                />\n            </CaptchaProvider>\n        </div>\n    );\n};\n\nconst SuccessView = () => {\n    const i18n = useI18n();\n    return <Info>{i18n('emailEditor.successMessage')}</Info>;\n};\n\nexport interface EmailEditorWidgetProps extends ComponentProps<typeof MainView> {}\n\nexport default createMultiViewWidget<EmailEditorWidgetProps>({\n    initialView: 'main',\n    views: {\n        main: MainView,\n        success: SuccessView,\n    },\n});\n","import React, { useCallback, useState } from 'react';\n\nimport { MFA } from '@reachfive/identity-core';\n\nimport { useReachfive } from '../../../contexts/reachfive';\n\ntype CredentialsContextType = {\n    credentials: MFA.Credential[];\n    refresh: () => Promise<MFA.Credential[]>;\n};\n\nexport const CredentialsContext = React.createContext<CredentialsContextType>({\n    credentials: [],\n    refresh: () => Promise.resolve([]),\n});\n\nexport const useCredentials = () => {\n    return React.useContext(CredentialsContext);\n};\n\nexport type CredentialsProviderProps = {\n    /**\n     * The authorization credential JSON Web Token (JWT) used to access the ReachFive API, less than five minutes old.\n     */\n    accessToken: string;\n    /**\n     * The user's MFA credentials\n     */\n    credentials: MFA.Credential[];\n};\n\nexport const CredentialsProvider = ({\n    accessToken,\n    children,\n    credentials: initialCredentials,\n}: React.PropsWithChildren<CredentialsProviderProps>) => {\n    const coreClient = useReachfive();\n    const [credentials, setCredentials] = useState<MFA.Credential[]>(initialCredentials);\n\n    const refresh = useCallback(() => {\n        return coreClient.listMfaCredentials(accessToken).then(({ credentials }) => {\n            setCredentials(credentials);\n            return credentials;\n        });\n    }, []);\n\n    return (\n        <CredentialsContext.Provider value={{ credentials, refresh }}>\n            {children}\n        </CredentialsContext.Provider>\n    );\n};\n\nconst withCredentials = <P extends object>(WrappedComponent: React.ComponentType<P>) => {\n    const displayName = WrappedComponent.displayName ?? WrappedComponent.name ?? 'Component';\n\n    const ComponentWithCredentialsContext = (props: P & CredentialsProviderProps) => {\n        return (\n            <CredentialsProvider accessToken={props.accessToken} credentials={props.credentials}>\n                <WrappedComponent {...(props as P)} />\n            </CredentialsProvider>\n        );\n    };\n\n    ComponentWithCredentialsContext.displayName = `withCredentials(${displayName})`;\n\n    return ComponentWithCredentialsContext;\n};\n\nexport { withCredentials };\n","import React, { useCallback, useState } from 'react';\n\nimport { MFA, Profile } from '@reachfive/identity-core';\nimport type {\n    StartMfaEmailRegistrationResponse,\n    StartMfaPhoneNumberRegistrationResponse,\n} from '@reachfive/identity-core/es/main/mfaClient';\n\nimport { DestructiveButton } from '../../components/form/buttonComponent';\nimport checkboxField from '../../components/form/fields/checkboxField.tsx';\nimport phoneNumberField, {\n    type PhoneNumberOptions,\n} from '../../components/form/fields/phoneNumberField';\nimport { simpleField } from '../../components/form/fields/simpleField';\nimport { createForm } from '../../components/form/formComponent';\nimport { Intro, Separator } from '../../components/miscComponent';\nimport { createMultiViewWidget } from '../../components/widget/widget';\nimport { useConfig } from '../../contexts/config';\nimport { useI18n } from '../../contexts/i18n';\nimport { useReachfive } from '../../contexts/reachfive';\nimport { useRouting } from '../../contexts/routing';\nimport { isAppError, UserError } from '../../helpers/errors';\nimport {\n    useCredentials,\n    withCredentials,\n    type CredentialsProviderProps,\n} from './contexts/credentials';\n\nimport type { OnError, OnSuccess, Prettify } from '../../types';\n\ntype EmailRegisteringCredentialFormData = { trustDevice: boolean };\n\nconst EmailRegisteringCredentialForm = createForm<\n    EmailRegisteringCredentialFormData,\n    DisplayTrustDeviceFormOptions\n>({\n    prefix: 'r5-mfa-credentials-email-',\n    fields({ displayTrustDevice }) {\n        return displayTrustDevice\n            ? [\n                  checkboxField({\n                      key: 'trust_device',\n                      label: 'mfa.stepUp.trustDevice',\n                      defaultValue: false,\n                  }),\n              ]\n            : [];\n    },\n    submitLabel: 'mfa.register.email',\n});\n\nconst EmailCredentialRemovalForm = createForm({\n    prefix: 'r5-mfa-credentials-email-removal-',\n    submitLabel: 'mfa.remove.email',\n    SubmitComponent: ({ disabled, label }) => (\n        <DestructiveButton disabled={disabled}>{label}</DestructiveButton>\n    ),\n});\n\nconst PhoneNumberCredentialRemovalForm = createForm({\n    prefix: 'r5-mfa-credentials-phone-number-removal-',\n    submitLabel: 'mfa.remove.phoneNumber',\n    SubmitComponent: ({ disabled, label }) => (\n        <DestructiveButton disabled={disabled}>{label}</DestructiveButton>\n    ),\n});\n\ntype VerificationCodeFormData = { verificationCode: string; trustDevice: boolean };\n\ntype DisplayTrustDeviceFormOptions = {\n    displayTrustDevice: boolean;\n};\n\nconst VerificationCodeForm = createForm<VerificationCodeFormData, DisplayTrustDeviceFormOptions>({\n    prefix: 'r5-mfa-credentials-verification-code-',\n    fields({ displayTrustDevice }) {\n        return [\n            simpleField({\n                key: 'verification_code',\n                label: 'verificationCode',\n                type: 'text',\n            }),\n            ...(displayTrustDevice\n                ? [\n                      checkboxField({\n                          key: 'trust_device',\n                          label: 'mfa.stepUp.trustDevice',\n                          defaultValue: false,\n                      }),\n                  ]\n                : []),\n        ];\n    },\n});\n\ntype PhoneNumberRegisteringCredentialFormData = { phoneNumber: string; trustDevice: boolean };\n\nconst PhoneNumberRegisteringCredentialForm = createForm<\n    PhoneNumberRegisteringCredentialFormData,\n    { phoneNumberOptions?: PhoneNumberOptions } & DisplayTrustDeviceFormOptions\n>({\n    prefix: 'r5-mfa-credentials-phone-number-',\n    fields: ({ config, phoneNumberOptions, displayTrustDevice }) => {\n        return [\n            phoneNumberField(\n                {\n                    required: true,\n                    ...phoneNumberOptions,\n                },\n                config\n            ),\n            ...(displayTrustDevice\n                ? [\n                      checkboxField({\n                          key: 'trust_device',\n                          label: 'mfa.stepUp.trustDevice',\n                          required: true,\n                          defaultValue: false,\n                      }),\n                  ]\n                : []),\n        ];\n    },\n    submitLabel: 'mfa.register.phoneNumber',\n});\n\ninterface MainViewProps {\n    /**\n     * The authorization credential JSON Web Token (JWT) used to access the ReachFive API, less than five minutes old.\n     */\n    accessToken: string;\n    /**\n     * Boolean to enable (`true`) or disable (`false`) whether the option to remove MFA credentials are displayed.\n     *\n     * @default false\n     */\n    requireMfaRegistration?: boolean;\n    /**\n     * Show the introduction text.\n     *\n     * @default true\n     */\n    showIntro?: boolean;\n    /**\n     * Boolean to enable (true) or disable (false) whether the option to remove MFA credentials are displayed.\n     *\n     * @default true\n     */\n    showRemoveMfaCredentials?: boolean;\n    /**\n     * Phone number field options.\n     */\n    phoneNumberOptions?: PhoneNumberOptions;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n\n    profileIdentifiers?: Pick<Profile, 'emailVerified' | 'phoneNumber' | 'phoneNumberVerified'>;\n    /**\n     * Allow to trust device during enrollment\n     */\n    allowTrustDevice?: boolean;\n    /**\n     * Action used in template\n     */\n    action?: string;\n}\n\nconst MainView = withCredentials(\n    ({\n        accessToken,\n        onError = (() => {}) as OnError,\n        onSuccess = (() => {}) as OnSuccess,\n        phoneNumberOptions,\n        requireMfaRegistration = false,\n        showIntro = true,\n        showRemoveMfaCredentials = true,\n        allowTrustDevice = false,\n        profileIdentifiers = {},\n        action,\n    }: MainViewProps) => {\n        const coreClient = useReachfive();\n        const config = useConfig();\n        const i18n = useI18n();\n        const { goTo } = useRouting();\n        const { credentials, refresh } = useCredentials();\n        const [displayTrustDevicePhoneNumber, setDisplayTrustDevicePhoneNumber] =\n            useState<boolean>(false);\n\n        const onEmailRegistering = (data: EmailRegisteringCredentialFormData) => {\n            return coreClient\n                .startMfaEmailRegistration({\n                    accessToken,\n                    action,\n                    ...data,\n                })\n                .then(resp => {\n                    onSuccess({ name: 'mfa_email_start_registration' });\n                    if (data.trustDevice && resp.status == 'enabled') {\n                        onSuccess({ name: 'mfa_trusted_device_added' });\n                    }\n                    return resp;\n                })\n                .catch(error => {\n                    onError(error);\n                    throw error;\n                });\n        };\n\n        const onPhoneNumberRegistering = (data: PhoneNumberRegisteringCredentialFormData) => {\n            return coreClient\n                .startMfaPhoneNumberRegistration({\n                    accessToken,\n                    action,\n                    ...data,\n                })\n                .then(resp => {\n                    onSuccess({ name: 'mfa_phone_number_start_registration' });\n                    if (data.trustDevice && resp.status == 'enabled') {\n                        onSuccess({ name: 'mfa_trusted_device_added' });\n                    }\n                    return resp;\n                })\n                .catch(error => {\n                    onError(error);\n                    throw error;\n                });\n        };\n\n        const onEmailRemoval = () => {\n            return coreClient.removeMfaEmail({\n                accessToken,\n            });\n        };\n\n        const onPhoneNumberRemoval = ({ phoneNumber }: MFA.PhoneCredential) => {\n            return coreClient.removeMfaPhoneNumber({\n                accessToken,\n                phoneNumber,\n            });\n        };\n\n        const onPhoneNumberChange = useCallback(\n            (data: PhoneNumberRegisteringCredentialFormData) => {\n                const { phoneNumber } = data;\n                setDisplayTrustDevicePhoneNumber(\n                    profileIdentifiers.phoneNumber != undefined &&\n                        profileIdentifiers.phoneNumber === phoneNumber &&\n                        config.rbaEnabled &&\n                        allowTrustDevice &&\n                        profileIdentifiers.phoneNumberVerified != undefined &&\n                        profileIdentifiers.phoneNumberVerified\n                );\n            },\n            [displayTrustDevicePhoneNumber]\n        );\n\n        const phoneNumberCredentialRegistered = credentials.find<MFA.PhoneCredential>(\n            (credential): credential is MFA.PhoneCredential => MFA.isPhoneCredential(credential)\n        );\n        const isEmailCredentialRegistered = credentials.some(credential =>\n            MFA.isEmailCredential(credential)\n        );\n        const isPhoneCredentialRegistered = credentials.some(credential =>\n            MFA.isPhoneCredential(credential)\n        );\n\n        return (\n            <div className=\"flex flex-col gap-4\">\n                {config.mfaEmailEnabled && !isEmailCredentialRegistered && (\n                    <div id=\"email-registering-credential\">\n                        {showIntro && (\n                            <Intro>\n                                {requireMfaRegistration\n                                    ? i18n('mfa.email.explain.required')\n                                    : i18n('mfa.email.explain')}\n                            </Intro>\n                        )}\n                        <EmailRegisteringCredentialForm\n                            displayTrustDevice={\n                                profileIdentifiers.emailVerified != undefined &&\n                                profileIdentifiers.emailVerified &&\n                                allowTrustDevice &&\n                                config.rbaEnabled\n                            }\n                            handler={onEmailRegistering}\n                            onSuccess={(data: StartMfaEmailRegistrationResponse) =>\n                                goTo<VerificationCodeViewState>('verification-code', {\n                                    ...data,\n                                    registrationType: 'email',\n                                    allowTrustDevice,\n                                })\n                            }\n                            onError={onError}\n                        />\n                    </div>\n                )}\n\n                {config.mfaEmailEnabled &&\n                    !isEmailCredentialRegistered &&\n                    config.mfaSmsEnabled &&\n                    !isPhoneCredentialRegistered && <Separator text={i18n('or')} />}\n\n                {config.mfaSmsEnabled && !isPhoneCredentialRegistered && (\n                    <div id=\"phone-number-registering-credential\">\n                        {showIntro && <Intro>{i18n('mfa.phoneNumber.explain')}</Intro>}\n                        <PhoneNumberRegisteringCredentialForm\n                            handler={onPhoneNumberRegistering}\n                            displayTrustDevice={displayTrustDevicePhoneNumber}\n                            onFieldChange={onPhoneNumberChange}\n                            onSuccess={(data: StartMfaPhoneNumberRegistrationResponse) =>\n                                goTo<VerificationCodeViewState>('verification-code', {\n                                    ...data,\n                                    registrationType: 'sms',\n                                    allowTrustDevice,\n                                })\n                            }\n                            onError={onError}\n                            phoneNumberOptions={phoneNumberOptions}\n                        />\n                    </div>\n                )}\n\n                {showRemoveMfaCredentials &&\n                    config.mfaEmailEnabled &&\n                    isEmailCredentialRegistered && (\n                        <div>\n                            {showIntro && <Intro>{i18n('mfa.email.remove.explain')}</Intro>}\n                            <EmailCredentialRemovalForm\n                                handler={onEmailRemoval}\n                                onSuccess={async () => {\n                                    onSuccess({ name: 'mfa_email_deleted' });\n                                    await refresh();\n                                }}\n                                onError={onError}\n                            />\n                        </div>\n                    )}\n                {showRemoveMfaCredentials &&\n                    config.mfaEmailEnabled &&\n                    config.mfaSmsEnabled &&\n                    phoneNumberCredentialRegistered &&\n                    isEmailCredentialRegistered && <Separator text={i18n('or')} />}\n                {showRemoveMfaCredentials &&\n                    config.mfaSmsEnabled &&\n                    phoneNumberCredentialRegistered && (\n                        <div>\n                            {showIntro && <Intro>{i18n('mfa.phoneNumber.remove.explain')}</Intro>}\n                            <PhoneNumberCredentialRemovalForm\n                                handler={() =>\n                                    onPhoneNumberRemoval({ ...phoneNumberCredentialRegistered })\n                                }\n                                onSuccess={async () => {\n                                    onSuccess({ name: 'mfa_phone_number_deleted' });\n                                    await refresh();\n                                }}\n                                onError={onError}\n                            />\n                        </div>\n                    )}\n            </div>\n        );\n    }\n);\n\ninterface VerificationCodeViewProps {\n    /**\n     * The authorization credential JSON Web Token (JWT) used to access the ReachFive API, less than five minutes old.\n     */\n    accessToken: string;\n    /**\n     * Show the introduction text.\n     */\n    showIntro?: boolean;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n    /**\n     * Display the checkbox to trust device\n     */\n    allowTrustDevice?: boolean;\n}\n\ntype VerificationCodeViewState = (\n    | ({ registrationType: 'email' } & StartMfaEmailRegistrationResponse)\n    | ({ registrationType: 'sms' } & StartMfaPhoneNumberRegistrationResponse)\n) & { allowTrustDevice: boolean };\n\nconst VerificationCodeView = ({\n    accessToken,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n    showIntro = true,\n    allowTrustDevice = false,\n}: VerificationCodeViewProps) => {\n    const coreClient = useReachfive();\n    const i18n = useI18n();\n    const config = useConfig();\n    const { goTo, params } = useRouting();\n    const { registrationType, status } = params as VerificationCodeViewState;\n\n    const onEmailCodeVerification = (data: VerificationCodeFormData) => {\n        return coreClient\n            .verifyMfaEmailRegistration({\n                ...data,\n                accessToken,\n            })\n            .then(resp => {\n                if (data.trustDevice) {\n                    onSuccess({ name: 'mfa_trusted_device_added' });\n                }\n                return resp;\n            })\n            .catch(error => {\n                onError(error);\n                throw error;\n            });\n    };\n\n    const onSmsCodeVerification = (data: VerificationCodeFormData) => {\n        return coreClient\n            .verifyMfaPhoneNumberRegistration({\n                ...data,\n                accessToken,\n            })\n            .then(resp => {\n                if (data.trustDevice) {\n                    onSuccess({ name: 'mfa_trusted_device_added' });\n                }\n                return resp;\n            })\n            .catch(error => {\n                onError(error);\n                throw error;\n            });\n    };\n\n    const onCredentialRegistered = () => {\n        switch (registrationType) {\n            case 'email':\n                onSuccess({ name: 'mfa_email_verify_registration' });\n                break;\n            case 'sms':\n                onSuccess({ name: 'mfa_phone_number_verify_registration' });\n                break;\n        }\n        goTo('main');\n    };\n\n    React.useEffect(() => {\n        if (status === 'enabled') {\n            onCredentialRegistered();\n        }\n    }, [showIntro, status]);\n\n    return (\n        <div>\n            {showIntro && status === 'email_sent' && <Intro>{i18n('mfa.verify.email')}</Intro>}\n            {status === 'email_sent' && (\n                <VerificationCodeForm\n                    displayTrustDevice={allowTrustDevice && config.rbaEnabled}\n                    handler={onEmailCodeVerification}\n                    onSuccess={onCredentialRegistered}\n                    onError={onError}\n                />\n            )}\n\n            {showIntro && status === 'sms_sent' && <Intro>{i18n('mfa.verify.sms')}</Intro>}\n            {status === 'sms_sent' && (\n                <VerificationCodeForm\n                    displayTrustDevice={allowTrustDevice && config.rbaEnabled}\n                    handler={onSmsCodeVerification}\n                    onSuccess={onCredentialRegistered}\n                    onError={onError}\n                />\n            )}\n        </div>\n    );\n};\n\ntype MfaCredentialsProps = Prettify<\n    MainViewProps & VerificationCodeViewProps & CredentialsProviderProps\n>;\n\nexport type MfaCredentialsWidgetProps = Prettify<\n    Omit<MfaCredentialsProps, 'credentials' | 'profileIdentifiers'>\n>;\n\nexport default createMultiViewWidget<MfaCredentialsWidgetProps, MfaCredentialsProps>({\n    initialView: 'main',\n    views: {\n        main: MainView,\n        'verification-code': VerificationCodeView,\n    },\n    prepare: (options, { apiClient }) => {\n        return Promise.all([\n            apiClient.listMfaCredentials(options.accessToken),\n            apiClient.getUser({\n                accessToken: options.accessToken,\n                fields: 'email_verified,phone_number,phone_number_verified',\n            }),\n        ])\n            .then(([{ credentials }, profile]) => {\n                const profileIdentifiers = profile as Pick<\n                    Profile,\n                    'emailVerified' | 'phoneNumber' | 'phoneNumberVerified'\n                >;\n                return {\n                    ...options,\n                    credentials,\n                    profileIdentifiers,\n                };\n            })\n            .catch((error: unknown) => {\n                options.onError?.(error);\n                if (isAppError(error)) {\n                    throw UserError.fromAppError(error);\n                } else {\n                    throw error;\n                }\n            });\n    },\n});\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n  const Context = React.createContext(defaultContext);\n  const Provider = (props) => {\n    const { children, ...context } = props;\n    const value = React.useMemo(() => context, Object.values(context));\n    return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n  };\n  Provider.displayName = rootComponentName + \"Provider\";\n  function useContext2(consumerName) {\n    const context = React.useContext(Context);\n    if (context) return context;\n    if (defaultContext !== void 0) return defaultContext;\n    throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n  }\n  return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n  let defaultContexts = [];\n  function createContext3(rootComponentName, defaultContext) {\n    const BaseContext = React.createContext(defaultContext);\n    const index = defaultContexts.length;\n    defaultContexts = [...defaultContexts, defaultContext];\n    const Provider = (props) => {\n      const { scope, children, ...context } = props;\n      const Context = scope?.[scopeName]?.[index] || BaseContext;\n      const value = React.useMemo(() => context, Object.values(context));\n      return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n    };\n    Provider.displayName = rootComponentName + \"Provider\";\n    function useContext2(consumerName, scope) {\n      const Context = scope?.[scopeName]?.[index] || BaseContext;\n      const context = React.useContext(Context);\n      if (context) return context;\n      if (defaultContext !== void 0) return defaultContext;\n      throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n    }\n    return [Provider, useContext2];\n  }\n  const createScope = () => {\n    const scopeContexts = defaultContexts.map((defaultContext) => {\n      return React.createContext(defaultContext);\n    });\n    return function useScope(scope) {\n      const contexts = scope?.[scopeName] || scopeContexts;\n      return React.useMemo(\n        () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n        [scope, contexts]\n      );\n    };\n  };\n  createScope.scopeName = scopeName;\n  return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n  const baseScope = scopes[0];\n  if (scopes.length === 1) return baseScope;\n  const createScope = () => {\n    const scopeHooks = scopes.map((createScope2) => ({\n      useScope: createScope2(),\n      scopeName: createScope2.scopeName\n    }));\n    return function useComposedScopes(overrideScopes) {\n      const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n        const scopeProps = useScope(overrideScopes);\n        const currentScope = scopeProps[`__scope${scopeName}`];\n        return { ...nextScopes2, ...currentScope };\n      }, {});\n      return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n    };\n  };\n  createScope.scopeName = baseScope.scopeName;\n  return createScope;\n}\nexport {\n  createContext2 as createContext,\n  createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n  if (typeof ref === \"function\") {\n    return ref(value);\n  } else if (ref !== null && ref !== void 0) {\n    ref.current = value;\n  }\n}\nfunction composeRefs(...refs) {\n  return (node) => {\n    let hasCleanup = false;\n    const cleanups = refs.map((ref) => {\n      const cleanup = setRef(ref, node);\n      if (!hasCleanup && typeof cleanup == \"function\") {\n        hasCleanup = true;\n      }\n      return cleanup;\n    });\n    if (hasCleanup) {\n      return () => {\n        for (let i = 0; i < cleanups.length; i++) {\n          const cleanup = cleanups[i];\n          if (typeof cleanup == \"function\") {\n            cleanup();\n          } else {\n            setRef(refs[i], null);\n          }\n        }\n      };\n    }\n  };\n}\nfunction useComposedRefs(...refs) {\n  return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n  composeRefs,\n  useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n  return function handleEvent(event) {\n    originalEventHandler?.(event);\n    if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n      return ourEventHandler?.(event);\n    }\n  };\n}\nexport {\n  composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n  useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n  const [id, setId] = React.useState(useReactId());\n  useLayoutEffect(() => {\n    if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n  }, [deterministicId]);\n  return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n  useId\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n  const callbackRef = React.useRef(callback);\n  React.useEffect(() => {\n    callbackRef.current = callback;\n  });\n  return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n  useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n  prop,\n  defaultProp,\n  onChange = () => {\n  }\n}) {\n  const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n  const isControlled = prop !== void 0;\n  const value = isControlled ? prop : uncontrolledProp;\n  const handleChange = useCallbackRef(onChange);\n  const setValue = React.useCallback(\n    (nextValue) => {\n      if (isControlled) {\n        const setter = nextValue;\n        const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n        if (value2 !== prop) handleChange(value2);\n      } else {\n        setUncontrolledProp(nextValue);\n      }\n    },\n    [isControlled, prop, setUncontrolledProp, handleChange]\n  );\n  return [value, setValue];\n}\nfunction useUncontrolledState({\n  defaultProp,\n  onChange\n}) {\n  const uncontrolledState = React.useState(defaultProp);\n  const [value] = uncontrolledState;\n  const prevValueRef = React.useRef(value);\n  const handleChange = useCallbackRef(onChange);\n  React.useEffect(() => {\n    if (prevValueRef.current !== value) {\n      handleChange(value);\n      prevValueRef.current = value;\n    }\n  }, [value, prevValueRef, handleChange]);\n  return uncontrolledState;\n}\nexport {\n  useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n  const { children, ...slotProps } = props;\n  const childrenArray = React.Children.toArray(children);\n  const slottable = childrenArray.find(isSlottable);\n  if (slottable) {\n    const newElement = slottable.props.children;\n    const newChildren = childrenArray.map((child) => {\n      if (child === slottable) {\n        if (React.Children.count(newElement) > 1) return React.Children.only(null);\n        return React.isValidElement(newElement) ? newElement.props.children : null;\n      } else {\n        return child;\n      }\n    });\n    return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n  }\n  return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n  const { children, ...slotProps } = props;\n  if (React.isValidElement(children)) {\n    const childrenRef = getElementRef(children);\n    const props2 = mergeProps(slotProps, children.props);\n    if (children.type !== React.Fragment) {\n      props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n    }\n    return React.cloneElement(children, props2);\n  }\n  return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n  return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n  return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n  const overrideProps = { ...childProps };\n  for (const propName in childProps) {\n    const slotPropValue = slotProps[propName];\n    const childPropValue = childProps[propName];\n    const isHandler = /^on[A-Z]/.test(propName);\n    if (isHandler) {\n      if (slotPropValue && childPropValue) {\n        overrideProps[propName] = (...args) => {\n          childPropValue(...args);\n          slotPropValue(...args);\n        };\n      } else if (slotPropValue) {\n        overrideProps[propName] = slotPropValue;\n      }\n    } else if (propName === \"style\") {\n      overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n    } else if (propName === \"className\") {\n      overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n    }\n  }\n  return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n  let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n  let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n  if (mayWarn) {\n    return element.ref;\n  }\n  getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n  mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n  if (mayWarn) {\n    return element.props.ref;\n  }\n  return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n  Root,\n  Slot,\n  Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n  \"a\",\n  \"button\",\n  \"div\",\n  \"form\",\n  \"h2\",\n  \"h3\",\n  \"img\",\n  \"input\",\n  \"label\",\n  \"li\",\n  \"nav\",\n  \"ol\",\n  \"p\",\n  \"span\",\n  \"svg\",\n  \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n  const Node = React.forwardRef((props, forwardedRef) => {\n    const { asChild, ...primitiveProps } = props;\n    const Comp = asChild ? Slot : node;\n    if (typeof window !== \"undefined\") {\n      window[Symbol.for(\"radix-ui\")] = true;\n    }\n    return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n  });\n  Node.displayName = `Primitive.${node}`;\n  return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n  if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n  Primitive,\n  Root,\n  dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-escape-keydown/src/useEscapeKeydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n  const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n  React.useEffect(() => {\n    const handleKeyDown = (event) => {\n      if (event.key === \"Escape\") {\n        onEscapeKeyDown(event);\n      }\n    };\n    ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n    return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n  }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n  useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dismissable-layer/src/dismissable-layer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n  layers: /* @__PURE__ */ new Set(),\n  layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n  branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n  (props, forwardedRef) => {\n    const {\n      disableOutsidePointerEvents = false,\n      onEscapeKeyDown,\n      onPointerDownOutside,\n      onFocusOutside,\n      onInteractOutside,\n      onDismiss,\n      ...layerProps\n    } = props;\n    const context = React.useContext(DismissableLayerContext);\n    const [node, setNode] = React.useState(null);\n    const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n    const [, force] = React.useState({});\n    const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n    const layers = Array.from(context.layers);\n    const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n    const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n    const index = node ? layers.indexOf(node) : -1;\n    const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n    const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n    const pointerDownOutside = usePointerDownOutside((event) => {\n      const target = event.target;\n      const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n      if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n      onPointerDownOutside?.(event);\n      onInteractOutside?.(event);\n      if (!event.defaultPrevented) onDismiss?.();\n    }, ownerDocument);\n    const focusOutside = useFocusOutside((event) => {\n      const target = event.target;\n      const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n      if (isFocusInBranch) return;\n      onFocusOutside?.(event);\n      onInteractOutside?.(event);\n      if (!event.defaultPrevented) onDismiss?.();\n    }, ownerDocument);\n    useEscapeKeydown((event) => {\n      const isHighestLayer = index === context.layers.size - 1;\n      if (!isHighestLayer) return;\n      onEscapeKeyDown?.(event);\n      if (!event.defaultPrevented && onDismiss) {\n        event.preventDefault();\n        onDismiss();\n      }\n    }, ownerDocument);\n    React.useEffect(() => {\n      if (!node) return;\n      if (disableOutsidePointerEvents) {\n        if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n          originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n          ownerDocument.body.style.pointerEvents = \"none\";\n        }\n        context.layersWithOutsidePointerEventsDisabled.add(node);\n      }\n      context.layers.add(node);\n      dispatchUpdate();\n      return () => {\n        if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n          ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n        }\n      };\n    }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n    React.useEffect(() => {\n      return () => {\n        if (!node) return;\n        context.layers.delete(node);\n        context.layersWithOutsidePointerEventsDisabled.delete(node);\n        dispatchUpdate();\n      };\n    }, [node, context]);\n    React.useEffect(() => {\n      const handleUpdate = () => force({});\n      document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n      return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n    }, []);\n    return /* @__PURE__ */ jsx(\n      Primitive.div,\n      {\n        ...layerProps,\n        ref: composedRefs,\n        style: {\n          pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n          ...props.style\n        },\n        onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n        onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n        onPointerDownCapture: composeEventHandlers(\n          props.onPointerDownCapture,\n          pointerDownOutside.onPointerDownCapture\n        )\n      }\n    );\n  }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n  const context = React.useContext(DismissableLayerContext);\n  const ref = React.useRef(null);\n  const composedRefs = useComposedRefs(forwardedRef, ref);\n  React.useEffect(() => {\n    const node = ref.current;\n    if (node) {\n      context.branches.add(node);\n      return () => {\n        context.branches.delete(node);\n      };\n    }\n  }, [context.branches]);\n  return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n  const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n  const isPointerInsideReactTreeRef = React.useRef(false);\n  const handleClickRef = React.useRef(() => {\n  });\n  React.useEffect(() => {\n    const handlePointerDown = (event) => {\n      if (event.target && !isPointerInsideReactTreeRef.current) {\n        let handleAndDispatchPointerDownOutsideEvent2 = function() {\n          handleAndDispatchCustomEvent(\n            POINTER_DOWN_OUTSIDE,\n            handlePointerDownOutside,\n            eventDetail,\n            { discrete: true }\n          );\n        };\n        var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n        const eventDetail = { originalEvent: event };\n        if (event.pointerType === \"touch\") {\n          ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n          handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n          ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n        } else {\n          handleAndDispatchPointerDownOutsideEvent2();\n        }\n      } else {\n        ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n      }\n      isPointerInsideReactTreeRef.current = false;\n    };\n    const timerId = window.setTimeout(() => {\n      ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n    }, 0);\n    return () => {\n      window.clearTimeout(timerId);\n      ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n      ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n    };\n  }, [ownerDocument, handlePointerDownOutside]);\n  return {\n    // ensures we check React component tree (not just DOM tree)\n    onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n  };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n  const handleFocusOutside = useCallbackRef(onFocusOutside);\n  const isFocusInsideReactTreeRef = React.useRef(false);\n  React.useEffect(() => {\n    const handleFocus = (event) => {\n      if (event.target && !isFocusInsideReactTreeRef.current) {\n        const eventDetail = { originalEvent: event };\n        handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n          discrete: false\n        });\n      }\n    };\n    ownerDocument.addEventListener(\"focusin\", handleFocus);\n    return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n  }, [ownerDocument, handleFocusOutside]);\n  return {\n    onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n    onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n  };\n}\nfunction dispatchUpdate() {\n  const event = new CustomEvent(CONTEXT_UPDATE);\n  document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n  const target = detail.originalEvent.target;\n  const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n  if (handler) target.addEventListener(name, handler, { once: true });\n  if (discrete) {\n    dispatchDiscreteCustomEvent(target, event);\n  } else {\n    target.dispatchEvent(event);\n  }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n  Branch,\n  DismissableLayer,\n  DismissableLayerBranch,\n  Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/focus-scope/src/focus-scope.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = React.forwardRef((props, forwardedRef) => {\n  const {\n    loop = false,\n    trapped = false,\n    onMountAutoFocus: onMountAutoFocusProp,\n    onUnmountAutoFocus: onUnmountAutoFocusProp,\n    ...scopeProps\n  } = props;\n  const [container, setContainer] = React.useState(null);\n  const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n  const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n  const lastFocusedElementRef = React.useRef(null);\n  const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n  const focusScope = React.useRef({\n    paused: false,\n    pause() {\n      this.paused = true;\n    },\n    resume() {\n      this.paused = false;\n    }\n  }).current;\n  React.useEffect(() => {\n    if (trapped) {\n      let handleFocusIn2 = function(event) {\n        if (focusScope.paused || !container) return;\n        const target = event.target;\n        if (container.contains(target)) {\n          lastFocusedElementRef.current = target;\n        } else {\n          focus(lastFocusedElementRef.current, { select: true });\n        }\n      }, handleFocusOut2 = function(event) {\n        if (focusScope.paused || !container) return;\n        const relatedTarget = event.relatedTarget;\n        if (relatedTarget === null) return;\n        if (!container.contains(relatedTarget)) {\n          focus(lastFocusedElementRef.current, { select: true });\n        }\n      }, handleMutations2 = function(mutations) {\n        const focusedElement = document.activeElement;\n        if (focusedElement !== document.body) return;\n        for (const mutation of mutations) {\n          if (mutation.removedNodes.length > 0) focus(container);\n        }\n      };\n      var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n      document.addEventListener(\"focusin\", handleFocusIn2);\n      document.addEventListener(\"focusout\", handleFocusOut2);\n      const mutationObserver = new MutationObserver(handleMutations2);\n      if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n      return () => {\n        document.removeEventListener(\"focusin\", handleFocusIn2);\n        document.removeEventListener(\"focusout\", handleFocusOut2);\n        mutationObserver.disconnect();\n      };\n    }\n  }, [trapped, container, focusScope.paused]);\n  React.useEffect(() => {\n    if (container) {\n      focusScopesStack.add(focusScope);\n      const previouslyFocusedElement = document.activeElement;\n      const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n      if (!hasFocusedCandidate) {\n        const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n        container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n        container.dispatchEvent(mountEvent);\n        if (!mountEvent.defaultPrevented) {\n          focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n          if (document.activeElement === previouslyFocusedElement) {\n            focus(container);\n          }\n        }\n      }\n      return () => {\n        container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n        setTimeout(() => {\n          const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n          container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n          container.dispatchEvent(unmountEvent);\n          if (!unmountEvent.defaultPrevented) {\n            focus(previouslyFocusedElement ?? document.body, { select: true });\n          }\n          container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n          focusScopesStack.remove(focusScope);\n        }, 0);\n      };\n    }\n  }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n  const handleKeyDown = React.useCallback(\n    (event) => {\n      if (!loop && !trapped) return;\n      if (focusScope.paused) return;\n      const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n      const focusedElement = document.activeElement;\n      if (isTabKey && focusedElement) {\n        const container2 = event.currentTarget;\n        const [first, last] = getTabbableEdges(container2);\n        const hasTabbableElementsInside = first && last;\n        if (!hasTabbableElementsInside) {\n          if (focusedElement === container2) event.preventDefault();\n        } else {\n          if (!event.shiftKey && focusedElement === last) {\n            event.preventDefault();\n            if (loop) focus(first, { select: true });\n          } else if (event.shiftKey && focusedElement === first) {\n            event.preventDefault();\n            if (loop) focus(last, { select: true });\n          }\n        }\n      }\n    },\n    [loop, trapped, focusScope.paused]\n  );\n  return /* @__PURE__ */ jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });\n});\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates, { select = false } = {}) {\n  const previouslyFocusedElement = document.activeElement;\n  for (const candidate of candidates) {\n    focus(candidate, { select });\n    if (document.activeElement !== previouslyFocusedElement) return;\n  }\n}\nfunction getTabbableEdges(container) {\n  const candidates = getTabbableCandidates(container);\n  const first = findVisible(candidates, container);\n  const last = findVisible(candidates.reverse(), container);\n  return [first, last];\n}\nfunction getTabbableCandidates(container) {\n  const nodes = [];\n  const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n    acceptNode: (node) => {\n      const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n      if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n      return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n    }\n  });\n  while (walker.nextNode()) nodes.push(walker.currentNode);\n  return nodes;\n}\nfunction findVisible(elements, container) {\n  for (const element of elements) {\n    if (!isHidden(element, { upTo: container })) return element;\n  }\n}\nfunction isHidden(node, { upTo }) {\n  if (getComputedStyle(node).visibility === \"hidden\") return true;\n  while (node) {\n    if (upTo !== void 0 && node === upTo) return false;\n    if (getComputedStyle(node).display === \"none\") return true;\n    node = node.parentElement;\n  }\n  return false;\n}\nfunction isSelectableInput(element) {\n  return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n  if (element && element.focus) {\n    const previouslyFocusedElement = document.activeElement;\n    element.focus({ preventScroll: true });\n    if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n      element.select();\n  }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n  let stack = [];\n  return {\n    add(focusScope) {\n      const activeFocusScope = stack[0];\n      if (focusScope !== activeFocusScope) {\n        activeFocusScope?.pause();\n      }\n      stack = arrayRemove(stack, focusScope);\n      stack.unshift(focusScope);\n    },\n    remove(focusScope) {\n      stack = arrayRemove(stack, focusScope);\n      stack[0]?.resume();\n    }\n  };\n}\nfunction arrayRemove(array, item) {\n  const updatedArray = [...array];\n  const index = updatedArray.indexOf(item);\n  if (index !== -1) {\n    updatedArray.splice(index, 1);\n  }\n  return updatedArray;\n}\nfunction removeLinks(items) {\n  return items.filter((item) => item.tagName !== \"A\");\n}\nvar Root = FocusScope;\nexport {\n  FocusScope,\n  Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/portal/src/portal.tsx\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PORTAL_NAME = \"Portal\";\nvar Portal = React.forwardRef((props, forwardedRef) => {\n  const { container: containerProp, ...portalProps } = props;\n  const [mounted, setMounted] = React.useState(false);\n  useLayoutEffect(() => setMounted(true), []);\n  const container = containerProp || mounted && globalThis?.document?.body;\n  return container ? ReactDOM.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;\n});\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\nexport {\n  Portal,\n  Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n  return React.useReducer((state, event) => {\n    const nextState = machine[state][event];\n    return nextState ?? state;\n  }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n  const { present, children } = props;\n  const presence = usePresence(present);\n  const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n  const ref = useComposedRefs(presence.ref, getElementRef(child));\n  const forceMount = typeof children === \"function\";\n  return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n  const [node, setNode] = React2.useState();\n  const stylesRef = React2.useRef({});\n  const prevPresentRef = React2.useRef(present);\n  const prevAnimationNameRef = React2.useRef(\"none\");\n  const initialState = present ? \"mounted\" : \"unmounted\";\n  const [state, send] = useStateMachine(initialState, {\n    mounted: {\n      UNMOUNT: \"unmounted\",\n      ANIMATION_OUT: \"unmountSuspended\"\n    },\n    unmountSuspended: {\n      MOUNT: \"mounted\",\n      ANIMATION_END: \"unmounted\"\n    },\n    unmounted: {\n      MOUNT: \"mounted\"\n    }\n  });\n  React2.useEffect(() => {\n    const currentAnimationName = getAnimationName(stylesRef.current);\n    prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n  }, [state]);\n  useLayoutEffect(() => {\n    const styles = stylesRef.current;\n    const wasPresent = prevPresentRef.current;\n    const hasPresentChanged = wasPresent !== present;\n    if (hasPresentChanged) {\n      const prevAnimationName = prevAnimationNameRef.current;\n      const currentAnimationName = getAnimationName(styles);\n      if (present) {\n        send(\"MOUNT\");\n      } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n        send(\"UNMOUNT\");\n      } else {\n        const isAnimating = prevAnimationName !== currentAnimationName;\n        if (wasPresent && isAnimating) {\n          send(\"ANIMATION_OUT\");\n        } else {\n          send(\"UNMOUNT\");\n        }\n      }\n      prevPresentRef.current = present;\n    }\n  }, [present, send]);\n  useLayoutEffect(() => {\n    if (node) {\n      let timeoutId;\n      const ownerWindow = node.ownerDocument.defaultView ?? window;\n      const handleAnimationEnd = (event) => {\n        const currentAnimationName = getAnimationName(stylesRef.current);\n        const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n        if (event.target === node && isCurrentAnimation) {\n          send(\"ANIMATION_END\");\n          if (!prevPresentRef.current) {\n            const currentFillMode = node.style.animationFillMode;\n            node.style.animationFillMode = \"forwards\";\n            timeoutId = ownerWindow.setTimeout(() => {\n              if (node.style.animationFillMode === \"forwards\") {\n                node.style.animationFillMode = currentFillMode;\n              }\n            });\n          }\n        }\n      };\n      const handleAnimationStart = (event) => {\n        if (event.target === node) {\n          prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n        }\n      };\n      node.addEventListener(\"animationstart\", handleAnimationStart);\n      node.addEventListener(\"animationcancel\", handleAnimationEnd);\n      node.addEventListener(\"animationend\", handleAnimationEnd);\n      return () => {\n        ownerWindow.clearTimeout(timeoutId);\n        node.removeEventListener(\"animationstart\", handleAnimationStart);\n        node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n        node.removeEventListener(\"animationend\", handleAnimationEnd);\n      };\n    } else {\n      send(\"ANIMATION_END\");\n    }\n  }, [node, send]);\n  return {\n    isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n    ref: React2.useCallback((node2) => {\n      if (node2) stylesRef.current = getComputedStyle(node2);\n      setNode(node2);\n    }, [])\n  };\n}\nfunction getAnimationName(styles) {\n  return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n  let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n  let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n  if (mayWarn) {\n    return element.ref;\n  }\n  getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n  mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n  if (mayWarn) {\n    return element.props.ref;\n  }\n  return element.props.ref || element.ref;\n}\nexport {\n  Presence\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/focus-guards/src/FocusGuards.tsx\nimport * as React from \"react\";\nvar count = 0;\nfunction FocusGuards(props) {\n  useFocusGuards();\n  return props.children;\n}\nfunction useFocusGuards() {\n  React.useEffect(() => {\n    const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n    document.body.insertAdjacentElement(\"afterbegin\", edgeGuards[0] ?? createFocusGuard());\n    document.body.insertAdjacentElement(\"beforeend\", edgeGuards[1] ?? createFocusGuard());\n    count++;\n    return () => {\n      if (count === 1) {\n        document.querySelectorAll(\"[data-radix-focus-guard]\").forEach((node) => node.remove());\n      }\n      count--;\n    };\n  }, []);\n}\nfunction createFocusGuard() {\n  const element = document.createElement(\"span\");\n  element.setAttribute(\"data-radix-focus-guard\", \"\");\n  element.tabIndex = 0;\n  element.style.outline = \"none\";\n  element.style.opacity = \"0\";\n  element.style.position = \"fixed\";\n  element.style.pointerEvents = \"none\";\n  return element;\n}\nvar Root = FocusGuards;\nexport {\n  FocusGuards,\n  Root,\n  useFocusGuards\n};\n//# sourceMappingURL=index.mjs.map\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n  function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose, inner;\n    if (async) {\n      if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n      dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n      if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n      dispose = value[Symbol.dispose];\n      if (async) inner = dispose;\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n    if (typeof ref === 'function') {\n        ref(value);\n    }\n    else if (ref) {\n        ref.current = value;\n    }\n    return ref;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n    var ref = useState(function () { return ({\n        // value\n        value: initialValue,\n        // last callback\n        callback: callback,\n        // \"memoized\" public interface\n        facade: {\n            get current() {\n                return ref.value;\n            },\n            set current(value) {\n                var last = ref.value;\n                if (last !== value) {\n                    ref.value = value;\n                    ref.callback(value, last);\n                }\n            },\n        },\n    }); })[0];\n    // update callback\n    ref.callback = callback;\n    return ref.facade;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n *   const ownRef = useRef();\n *   const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n *   return <div ref={domRef}>...</div>\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n    var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n        return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n    });\n    // handle refs changes - added or removed\n    useIsomorphicLayoutEffect(function () {\n        var oldValue = currentValues.get(callbackRef);\n        if (oldValue) {\n            var prevRefs_1 = new Set(oldValue);\n            var nextRefs_1 = new Set(refs);\n            var current_1 = callbackRef.current;\n            prevRefs_1.forEach(function (ref) {\n                if (!nextRefs_1.has(ref)) {\n                    assignRef(ref, null);\n                }\n            });\n            nextRefs_1.forEach(function (ref) {\n                if (!prevRefs_1.has(ref)) {\n                    assignRef(ref, current_1);\n                }\n            });\n        }\n        currentValues.set(callbackRef, refs);\n    }, [refs]);\n    return callbackRef;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n    return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n    if (middleware === void 0) { middleware = ItoI; }\n    var buffer = [];\n    var assigned = false;\n    var medium = {\n        read: function () {\n            if (assigned) {\n                throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n            }\n            if (buffer.length) {\n                return buffer[buffer.length - 1];\n            }\n            return defaults;\n        },\n        useMedium: function (data) {\n            var item = middleware(data, assigned);\n            buffer.push(item);\n            return function () {\n                buffer = buffer.filter(function (x) { return x !== item; });\n            };\n        },\n        assignSyncMedium: function (cb) {\n            assigned = true;\n            while (buffer.length) {\n                var cbs = buffer;\n                buffer = [];\n                cbs.forEach(cb);\n            }\n            buffer = {\n                push: function (x) { return cb(x); },\n                filter: function () { return buffer; },\n            };\n        },\n        assignMedium: function (cb) {\n            assigned = true;\n            var pendingQueue = [];\n            if (buffer.length) {\n                var cbs = buffer;\n                buffer = [];\n                cbs.forEach(cb);\n                pendingQueue = buffer;\n            }\n            var executeQueue = function () {\n                var cbs = pendingQueue;\n                pendingQueue = [];\n                cbs.forEach(cb);\n            };\n            var cycle = function () { return Promise.resolve().then(executeQueue); };\n            cycle();\n            buffer = {\n                push: function (x) {\n                    pendingQueue.push(x);\n                    cycle();\n                },\n                filter: function (filter) {\n                    pendingQueue = pendingQueue.filter(filter);\n                    return buffer;\n                },\n            };\n        },\n    };\n    return medium;\n}\nexport function createMedium(defaults, middleware) {\n    if (middleware === void 0) { middleware = ItoI; }\n    return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n    if (options === void 0) { options = {}; }\n    var medium = innerCreateMedium(null);\n    medium.options = __assign({ async: true, ssr: false }, options);\n    return medium;\n}\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n    var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n    if (!sideCar) {\n        throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n    }\n    var Target = sideCar.read();\n    if (!Target) {\n        throw new Error('Sidecar medium not found');\n    }\n    return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n    medium.useMedium(exported);\n    return SideCar;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n    return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n    var ref = React.useRef(null);\n    var _a = React.useState({\n        onScrollCapture: nothing,\n        onWheelCapture: nothing,\n        onTouchMoveCapture: nothing,\n    }), callbacks = _a[0], setCallbacks = _a[1];\n    var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n    var SideCar = sideCar;\n    var containerRef = useMergeRefs([ref, parentRef]);\n    var containerProps = __assign(__assign({}, rest), callbacks);\n    return (React.createElement(React.Fragment, null,\n        enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n        forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n    enabled: true,\n    removeScrollBar: true,\n    inert: false,\n};\nRemoveScroll.classNames = {\n    fullWidth: fullWidthClassName,\n    zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","var currentNonce;\nexport var setNonce = function (nonce) {\n    currentNonce = nonce;\n};\nexport var getNonce = function () {\n    if (currentNonce) {\n        return currentNonce;\n    }\n    if (typeof __webpack_nonce__ !== 'undefined') {\n        return __webpack_nonce__;\n    }\n    return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n    if (!document)\n        return null;\n    var tag = document.createElement('style');\n    tag.type = 'text/css';\n    var nonce = getNonce();\n    if (nonce) {\n        tag.setAttribute('nonce', nonce);\n    }\n    return tag;\n}\nfunction injectStyles(tag, css) {\n    // @ts-ignore\n    if (tag.styleSheet) {\n        // @ts-ignore\n        tag.styleSheet.cssText = css;\n    }\n    else {\n        tag.appendChild(document.createTextNode(css));\n    }\n}\nfunction insertStyleTag(tag) {\n    var head = document.head || document.getElementsByTagName('head')[0];\n    head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n    var counter = 0;\n    var stylesheet = null;\n    return {\n        add: function (style) {\n            if (counter == 0) {\n                if ((stylesheet = makeStyleTag())) {\n                    injectStyles(stylesheet, style);\n                    insertStyleTag(stylesheet);\n                }\n            }\n            counter++;\n        },\n        remove: function () {\n            counter--;\n            if (!counter && stylesheet) {\n                stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n                stylesheet = null;\n            }\n        },\n    };\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n    var sheet = stylesheetSingleton();\n    return function (styles, isDynamic) {\n        React.useEffect(function () {\n            sheet.add(styles);\n            return function () {\n                sheet.remove();\n            };\n        }, [styles && isDynamic]);\n    };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n    var useStyle = styleHookSingleton();\n    var Sheet = function (_a) {\n        var styles = _a.styles, dynamic = _a.dynamic;\n        useStyle(styles, dynamic);\n        return null;\n    };\n    return Sheet;\n};\n","export var zeroGap = {\n    left: 0,\n    top: 0,\n    right: 0,\n    gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n    var cs = window.getComputedStyle(document.body);\n    var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n    var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n    var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n    return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n    if (gapMode === void 0) { gapMode = 'margin'; }\n    if (typeof window === 'undefined') {\n        return zeroGap;\n    }\n    var offsets = getOffset(gapMode);\n    var documentWidth = document.documentElement.clientWidth;\n    var windowWidth = window.innerWidth;\n    return {\n        left: offsets[0],\n        top: offsets[1],\n        right: offsets[2],\n        gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n    };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\nexport var lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n    var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n    if (gapMode === void 0) { gapMode = 'margin'; }\n    return \"\\n  .\".concat(noScrollbarsClassName, \" {\\n   overflow: hidden \").concat(important, \";\\n   padding-right: \").concat(gap, \"px \").concat(important, \";\\n  }\\n  body[\").concat(lockAttribute, \"] {\\n    overflow: hidden \").concat(important, \";\\n    overscroll-behavior: contain;\\n    \").concat([\n        allowRelative && \"position: relative \".concat(important, \";\"),\n        gapMode === 'margin' &&\n            \"\\n    padding-left: \".concat(left, \"px;\\n    padding-top: \").concat(top, \"px;\\n    padding-right: \").concat(right, \"px;\\n    margin-left:0;\\n    margin-top:0;\\n    margin-right: \").concat(gap, \"px \").concat(important, \";\\n    \"),\n        gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n    ]\n        .filter(Boolean)\n        .join(''), \"\\n  }\\n  \\n  .\").concat(zeroRightClassName, \" {\\n    right: \").concat(gap, \"px \").concat(important, \";\\n  }\\n  \\n  .\").concat(fullWidthClassName, \" {\\n    margin-right: \").concat(gap, \"px \").concat(important, \";\\n  }\\n  \\n  .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n    right: 0 \").concat(important, \";\\n  }\\n  \\n  .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n    margin-right: 0 \").concat(important, \";\\n  }\\n  \\n  body[\").concat(lockAttribute, \"] {\\n    \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n  }\\n\");\n};\nvar getCurrentUseCounter = function () {\n    var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n    return isFinite(counter) ? counter : 0;\n};\nexport var useLockAttribute = function () {\n    React.useEffect(function () {\n        document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n        return function () {\n            var newCounter = getCurrentUseCounter() - 1;\n            if (newCounter <= 0) {\n                document.body.removeAttribute(lockAttribute);\n            }\n            else {\n                document.body.setAttribute(lockAttribute, newCounter.toString());\n            }\n        };\n    }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (_a) {\n    var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n    useLockAttribute();\n    /*\n     gap will be measured on every component mount\n     however it will be used only by the \"first\" invocation\n     due to singleton nature of <Style\n     */\n    var gap = React.useMemo(function () { return getGapWidth(gapMode); }, [gapMode]);\n    return React.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? '!important' : '') });\n};\n","var passiveSupported = false;\nif (typeof window !== 'undefined') {\n    try {\n        var options = Object.defineProperty({}, 'passive', {\n            get: function () {\n                passiveSupported = true;\n                return true;\n            },\n        });\n        // @ts-ignore\n        window.addEventListener('test', options, options);\n        // @ts-ignore\n        window.removeEventListener('test', options, options);\n    }\n    catch (err) {\n        passiveSupported = false;\n    }\n}\nexport var nonPassive = passiveSupported ? { passive: false } : false;\n","var alwaysContainsScroll = function (node) {\n    // textarea will always _contain_ scroll inside self. It only can be hidden\n    return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n    if (!(node instanceof Element)) {\n        return false;\n    }\n    var styles = window.getComputedStyle(node);\n    return (\n    // not-not-scrollable\n    styles[overflow] !== 'hidden' &&\n        // contains scroll inside self\n        !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nexport var locationCouldBeScrolled = function (axis, node) {\n    var ownerDocument = node.ownerDocument;\n    var current = node;\n    do {\n        // Skip over shadow root\n        if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n            current = current.host;\n        }\n        var isScrollable = elementCouldBeScrolled(axis, current);\n        if (isScrollable) {\n            var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];\n            if (scrollHeight > clientHeight) {\n                return true;\n            }\n        }\n        current = current.parentNode;\n    } while (current && current !== ownerDocument.body);\n    return false;\n};\nvar getVScrollVariables = function (_a) {\n    var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n    return [\n        scrollTop,\n        scrollHeight,\n        clientHeight,\n    ];\n};\nvar getHScrollVariables = function (_a) {\n    var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n    return [\n        scrollLeft,\n        scrollWidth,\n        clientWidth,\n    ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n    return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n    return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n    /**\n     * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n     * and then increasingly negative as you scroll towards the end of the content.\n     * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n     */\n    return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n    var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n    var delta = directionFactor * sourceDelta;\n    // find scrollable target\n    var target = event.target;\n    var targetInLock = endTarget.contains(target);\n    var shouldCancelScroll = false;\n    var isDeltaPositive = delta > 0;\n    var availableScroll = 0;\n    var availableScrollTop = 0;\n    do {\n        var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n        var elementScroll = scroll_1 - capacity - directionFactor * position;\n        if (position || elementScroll) {\n            if (elementCouldBeScrolled(axis, target)) {\n                availableScroll += elementScroll;\n                availableScrollTop += position;\n            }\n        }\n        if (target instanceof ShadowRoot) {\n            target = target.host;\n        }\n        else {\n            target = target.parentNode;\n        }\n    } while (\n    // portaled content\n    (!targetInLock && target !== document.body) ||\n        // self content\n        (targetInLock && (endTarget.contains(target) || endTarget === target)));\n    // handle epsilon around 0 (non standard zoom levels)\n    if (isDeltaPositive &&\n        ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n        shouldCancelScroll = true;\n    }\n    else if (!isDeltaPositive &&\n        ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n        shouldCancelScroll = true;\n    }\n    return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n    return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n    return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n  .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n  .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n    var shouldPreventQueue = React.useRef([]);\n    var touchStartRef = React.useRef([0, 0]);\n    var activeAxis = React.useRef();\n    var id = React.useState(idCounter++)[0];\n    var Style = React.useState(styleSingleton)[0];\n    var lastProps = React.useRef(props);\n    React.useEffect(function () {\n        lastProps.current = props;\n    }, [props]);\n    React.useEffect(function () {\n        if (props.inert) {\n            document.body.classList.add(\"block-interactivity-\".concat(id));\n            var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n            allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n            return function () {\n                document.body.classList.remove(\"block-interactivity-\".concat(id));\n                allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n            };\n        }\n        return;\n    }, [props.inert, props.lockRef.current, props.shards]);\n    var shouldCancelEvent = React.useCallback(function (event, parent) {\n        if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n            return !lastProps.current.allowPinchZoom;\n        }\n        var touch = getTouchXY(event);\n        var touchStart = touchStartRef.current;\n        var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n        var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n        var currentAxis;\n        var target = event.target;\n        var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n        // allow horizontal touch move on Range inputs. They will not cause any scroll\n        if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n            return false;\n        }\n        var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n        if (!canBeScrolledInMainDirection) {\n            return true;\n        }\n        if (canBeScrolledInMainDirection) {\n            currentAxis = moveDirection;\n        }\n        else {\n            currentAxis = moveDirection === 'v' ? 'h' : 'v';\n            canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n            // other axis might be not scrollable\n        }\n        if (!canBeScrolledInMainDirection) {\n            return false;\n        }\n        if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n            activeAxis.current = currentAxis;\n        }\n        if (!currentAxis) {\n            return true;\n        }\n        var cancelingAxis = activeAxis.current || currentAxis;\n        return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n    }, []);\n    var shouldPrevent = React.useCallback(function (_event) {\n        var event = _event;\n        if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n            // not the last active\n            return;\n        }\n        var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n        var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n        // self event, and should be canceled\n        if (sourceEvent && sourceEvent.should) {\n            if (event.cancelable) {\n                event.preventDefault();\n            }\n            return;\n        }\n        // outside or shard event\n        if (!sourceEvent) {\n            var shardNodes = (lastProps.current.shards || [])\n                .map(extractRef)\n                .filter(Boolean)\n                .filter(function (node) { return node.contains(event.target); });\n            var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n            if (shouldStop) {\n                if (event.cancelable) {\n                    event.preventDefault();\n                }\n            }\n        }\n    }, []);\n    var shouldCancel = React.useCallback(function (name, delta, target, should) {\n        var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n        shouldPreventQueue.current.push(event);\n        setTimeout(function () {\n            shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n        }, 1);\n    }, []);\n    var scrollTouchStart = React.useCallback(function (event) {\n        touchStartRef.current = getTouchXY(event);\n        activeAxis.current = undefined;\n    }, []);\n    var scrollWheel = React.useCallback(function (event) {\n        shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n    }, []);\n    var scrollTouchMove = React.useCallback(function (event) {\n        shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n    }, []);\n    React.useEffect(function () {\n        lockStack.push(Style);\n        props.setCallbacks({\n            onScrollCapture: scrollWheel,\n            onWheelCapture: scrollWheel,\n            onTouchMoveCapture: scrollTouchMove,\n        });\n        document.addEventListener('wheel', shouldPrevent, nonPassive);\n        document.addEventListener('touchmove', shouldPrevent, nonPassive);\n        document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n        return function () {\n            lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n            document.removeEventListener('wheel', shouldPrevent, nonPassive);\n            document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n            document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n        };\n    }, []);\n    var removeScrollBar = props.removeScrollBar, inert = props.inert;\n    return (React.createElement(React.Fragment, null,\n        inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n        removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n    var shadowParent = null;\n    while (node !== null) {\n        if (node instanceof ShadowRoot) {\n            shadowParent = node.host;\n            node = node.host;\n        }\n        node = node.parentNode;\n    }\n    return shadowParent;\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","var getDefaultParent = function (originalTarget) {\n    if (typeof document === 'undefined') {\n        return null;\n    }\n    var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n    return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n    return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n    return targets\n        .map(function (target) {\n        if (parent.contains(target)) {\n            return target;\n        }\n        var correctedTarget = unwrapHost(target);\n        if (correctedTarget && parent.contains(correctedTarget)) {\n            return correctedTarget;\n        }\n        console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n        return null;\n    })\n        .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n    var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n    if (!markerMap[markerName]) {\n        markerMap[markerName] = new WeakMap();\n    }\n    var markerCounter = markerMap[markerName];\n    var hiddenNodes = [];\n    var elementsToKeep = new Set();\n    var elementsToStop = new Set(targets);\n    var keep = function (el) {\n        if (!el || elementsToKeep.has(el)) {\n            return;\n        }\n        elementsToKeep.add(el);\n        keep(el.parentNode);\n    };\n    targets.forEach(keep);\n    var deep = function (parent) {\n        if (!parent || elementsToStop.has(parent)) {\n            return;\n        }\n        Array.prototype.forEach.call(parent.children, function (node) {\n            if (elementsToKeep.has(node)) {\n                deep(node);\n            }\n            else {\n                try {\n                    var attr = node.getAttribute(controlAttribute);\n                    var alreadyHidden = attr !== null && attr !== 'false';\n                    var counterValue = (counterMap.get(node) || 0) + 1;\n                    var markerValue = (markerCounter.get(node) || 0) + 1;\n                    counterMap.set(node, counterValue);\n                    markerCounter.set(node, markerValue);\n                    hiddenNodes.push(node);\n                    if (counterValue === 1 && alreadyHidden) {\n                        uncontrolledNodes.set(node, true);\n                    }\n                    if (markerValue === 1) {\n                        node.setAttribute(markerName, 'true');\n                    }\n                    if (!alreadyHidden) {\n                        node.setAttribute(controlAttribute, 'true');\n                    }\n                }\n                catch (e) {\n                    console.error('aria-hidden: cannot operate on ', node, e);\n                }\n            }\n        });\n    };\n    deep(parentNode);\n    elementsToKeep.clear();\n    lockCount++;\n    return function () {\n        hiddenNodes.forEach(function (node) {\n            var counterValue = counterMap.get(node) - 1;\n            var markerValue = markerCounter.get(node) - 1;\n            counterMap.set(node, counterValue);\n            markerCounter.set(node, markerValue);\n            if (!counterValue) {\n                if (!uncontrolledNodes.has(node)) {\n                    node.removeAttribute(controlAttribute);\n                }\n                uncontrolledNodes.delete(node);\n            }\n            if (!markerValue) {\n                node.removeAttribute(markerName);\n            }\n        });\n        lockCount--;\n        if (!lockCount) {\n            // clear\n            counterMap = new WeakMap();\n            counterMap = new WeakMap();\n            uncontrolledNodes = new WeakMap();\n            markerMap = {};\n        }\n    };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n    if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n    var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n    var activeParentNode = parentNode || getDefaultParent(originalTarget);\n    if (!activeParentNode) {\n        return function () { return null; };\n    }\n    // we should not hide ariaLive elements - https://github.com/theKashey/aria-hidden/issues/10\n    targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live]')));\n    return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n    if (markerName === void 0) { markerName = 'data-inert-ed'; }\n    var activeParentNode = parentNode || getDefaultParent(originalTarget);\n    if (!activeParentNode) {\n        return function () { return null; };\n    }\n    return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n    return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n    if (markerName === void 0) { markerName = 'data-suppressed'; }\n    return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","\"use client\";\n\n// packages/react/dialog/src/dialog.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContext, createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { hideOthers } from \"aria-hidden\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props) => {\n  const {\n    __scopeDialog,\n    children,\n    open: openProp,\n    defaultOpen,\n    onOpenChange,\n    modal = true\n  } = props;\n  const triggerRef = React.useRef(null);\n  const contentRef = React.useRef(null);\n  const [open = false, setOpen] = useControllableState({\n    prop: openProp,\n    defaultProp: defaultOpen,\n    onChange: onOpenChange\n  });\n  return /* @__PURE__ */ jsx(\n    DialogProvider,\n    {\n      scope: __scopeDialog,\n      triggerRef,\n      contentRef,\n      contentId: useId(),\n      titleId: useId(),\n      descriptionId: useId(),\n      open,\n      onOpenChange: setOpen,\n      onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n      modal,\n      children\n    }\n  );\n};\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeDialog, ...triggerProps } = props;\n    const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n    const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n    return /* @__PURE__ */ jsx(\n      Primitive.button,\n      {\n        type: \"button\",\n        \"aria-haspopup\": \"dialog\",\n        \"aria-expanded\": context.open,\n        \"aria-controls\": context.contentId,\n        \"data-state\": getState(context.open),\n        ...triggerProps,\n        ref: composedTriggerRef,\n        onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n      }\n    );\n  }\n);\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n  forceMount: void 0\n});\nvar DialogPortal = (props) => {\n  const { __scopeDialog, forceMount, children, container } = props;\n  const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n  return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children: child }) })) });\n};\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = React.forwardRef(\n  (props, forwardedRef) => {\n    const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n    const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n    const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n    return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;\n  }\n);\nDialogOverlay.displayName = OVERLAY_NAME;\nvar DialogOverlayImpl = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeDialog, ...overlayProps } = props;\n    const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n    return (\n      // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n      // ie. when `Overlay` and `Content` are siblings\n      /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(\n        Primitive.div,\n        {\n          \"data-state\": getState(context.open),\n          ...overlayProps,\n          ref: forwardedRef,\n          style: { pointerEvents: \"auto\", ...overlayProps.style }\n        }\n      ) })\n    );\n  }\n);\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = React.forwardRef(\n  (props, forwardedRef) => {\n    const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n    const { forceMount = portalContext.forceMount, ...contentProps } = props;\n    const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n    return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });\n  }\n);\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = React.forwardRef(\n  (props, forwardedRef) => {\n    const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n    const contentRef = React.useRef(null);\n    const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n    React.useEffect(() => {\n      const content = contentRef.current;\n      if (content) return hideOthers(content);\n    }, []);\n    return /* @__PURE__ */ jsx(\n      DialogContentImpl,\n      {\n        ...props,\n        ref: composedRefs,\n        trapFocus: context.open,\n        disableOutsidePointerEvents: true,\n        onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n          event.preventDefault();\n          context.triggerRef.current?.focus();\n        }),\n        onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n          const originalEvent = event.detail.originalEvent;\n          const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n          const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n          if (isRightClick) event.preventDefault();\n        }),\n        onFocusOutside: composeEventHandlers(\n          props.onFocusOutside,\n          (event) => event.preventDefault()\n        )\n      }\n    );\n  }\n);\nvar DialogContentNonModal = React.forwardRef(\n  (props, forwardedRef) => {\n    const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n    const hasInteractedOutsideRef = React.useRef(false);\n    const hasPointerDownOutsideRef = React.useRef(false);\n    return /* @__PURE__ */ jsx(\n      DialogContentImpl,\n      {\n        ...props,\n        ref: forwardedRef,\n        trapFocus: false,\n        disableOutsidePointerEvents: false,\n        onCloseAutoFocus: (event) => {\n          props.onCloseAutoFocus?.(event);\n          if (!event.defaultPrevented) {\n            if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n            event.preventDefault();\n          }\n          hasInteractedOutsideRef.current = false;\n          hasPointerDownOutsideRef.current = false;\n        },\n        onInteractOutside: (event) => {\n          props.onInteractOutside?.(event);\n          if (!event.defaultPrevented) {\n            hasInteractedOutsideRef.current = true;\n            if (event.detail.originalEvent.type === \"pointerdown\") {\n              hasPointerDownOutsideRef.current = true;\n            }\n          }\n          const target = event.target;\n          const targetIsTrigger = context.triggerRef.current?.contains(target);\n          if (targetIsTrigger) event.preventDefault();\n          if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n            event.preventDefault();\n          }\n        }\n      }\n    );\n  }\n);\nvar DialogContentImpl = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n    const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n    const contentRef = React.useRef(null);\n    const composedRefs = useComposedRefs(forwardedRef, contentRef);\n    useFocusGuards();\n    return /* @__PURE__ */ jsxs(Fragment, { children: [\n      /* @__PURE__ */ jsx(\n        FocusScope,\n        {\n          asChild: true,\n          loop: true,\n          trapped: trapFocus,\n          onMountAutoFocus: onOpenAutoFocus,\n          onUnmountAutoFocus: onCloseAutoFocus,\n          children: /* @__PURE__ */ jsx(\n            DismissableLayer,\n            {\n              role: \"dialog\",\n              id: context.contentId,\n              \"aria-describedby\": context.descriptionId,\n              \"aria-labelledby\": context.titleId,\n              \"data-state\": getState(context.open),\n              ...contentProps,\n              ref: composedRefs,\n              onDismiss: () => context.onOpenChange(false)\n            }\n          )\n        }\n      ),\n      /* @__PURE__ */ jsxs(Fragment, { children: [\n        /* @__PURE__ */ jsx(TitleWarning, { titleId: context.titleId }),\n        /* @__PURE__ */ jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })\n      ] })\n    ] });\n  }\n);\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeDialog, ...titleProps } = props;\n    const context = useDialogContext(TITLE_NAME, __scopeDialog);\n    return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });\n  }\n);\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeDialog, ...descriptionProps } = props;\n    const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n    return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });\n  }\n);\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeDialog, ...closeProps } = props;\n    const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n    return /* @__PURE__ */ jsx(\n      Primitive.button,\n      {\n        type: \"button\",\n        ...closeProps,\n        ref: forwardedRef,\n        onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n      }\n    );\n  }\n);\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n  return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n  contentName: CONTENT_NAME,\n  titleName: TITLE_NAME,\n  docsSlug: \"dialog\"\n});\nvar TitleWarning = ({ titleId }) => {\n  const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n  const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n  React.useEffect(() => {\n    if (titleId) {\n      const hasTitle = document.getElementById(titleId);\n      if (!hasTitle) console.error(MESSAGE);\n    }\n  }, [MESSAGE, titleId]);\n  return null;\n};\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = ({ contentRef, descriptionId }) => {\n  const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n  const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n  React.useEffect(() => {\n    const describedById = contentRef.current?.getAttribute(\"aria-describedby\");\n    if (descriptionId && describedById) {\n      const hasDescription = document.getElementById(descriptionId);\n      if (!hasDescription) console.warn(MESSAGE);\n    }\n  }, [MESSAGE, contentRef, descriptionId]);\n  return null;\n};\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\nexport {\n  Close,\n  Content,\n  Description,\n  Dialog,\n  DialogClose,\n  DialogContent,\n  DialogDescription,\n  DialogOverlay,\n  DialogPortal,\n  DialogTitle,\n  DialogTrigger,\n  Overlay,\n  Portal,\n  Root,\n  Title,\n  Trigger,\n  WarningProvider,\n  createDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/alert-dialog/src/alert-dialog.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { createDialogScope } from \"@radix-ui/react-dialog\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Slottable } from \"@radix-ui/react-slot\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n  createDialogScope\n]);\nvar useDialogScope = createDialogScope();\nvar AlertDialog = (props) => {\n  const { __scopeAlertDialog, ...alertDialogProps } = props;\n  const dialogScope = useDialogScope(__scopeAlertDialog);\n  return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });\n};\nAlertDialog.displayName = ROOT_NAME;\nvar TRIGGER_NAME = \"AlertDialogTrigger\";\nvar AlertDialogTrigger = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAlertDialog, ...triggerProps } = props;\n    const dialogScope = useDialogScope(__scopeAlertDialog);\n    return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });\n  }\n);\nAlertDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"AlertDialogPortal\";\nvar AlertDialogPortal = (props) => {\n  const { __scopeAlertDialog, ...portalProps } = props;\n  const dialogScope = useDialogScope(__scopeAlertDialog);\n  return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });\n};\nAlertDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"AlertDialogOverlay\";\nvar AlertDialogOverlay = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAlertDialog, ...overlayProps } = props;\n    const dialogScope = useDialogScope(__scopeAlertDialog);\n    return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { ...dialogScope, ...overlayProps, ref: forwardedRef });\n  }\n);\nAlertDialogOverlay.displayName = OVERLAY_NAME;\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar AlertDialogContent = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAlertDialog, children, ...contentProps } = props;\n    const dialogScope = useDialogScope(__scopeAlertDialog);\n    const contentRef = React.useRef(null);\n    const composedRefs = useComposedRefs(forwardedRef, contentRef);\n    const cancelRef = React.useRef(null);\n    return /* @__PURE__ */ jsx(\n      DialogPrimitive.WarningProvider,\n      {\n        contentName: CONTENT_NAME,\n        titleName: TITLE_NAME,\n        docsSlug: \"alert-dialog\",\n        children: /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsxs(\n          DialogPrimitive.Content,\n          {\n            role: \"alertdialog\",\n            ...dialogScope,\n            ...contentProps,\n            ref: composedRefs,\n            onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n              event.preventDefault();\n              cancelRef.current?.focus({ preventScroll: true });\n            }),\n            onPointerDownOutside: (event) => event.preventDefault(),\n            onInteractOutside: (event) => event.preventDefault(),\n            children: [\n              /* @__PURE__ */ jsx(Slottable, { children }),\n              /* @__PURE__ */ jsx(DescriptionWarning, { contentRef })\n            ]\n          }\n        ) })\n      }\n    );\n  }\n);\nAlertDialogContent.displayName = CONTENT_NAME;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAlertDialog, ...titleProps } = props;\n    const dialogScope = useDialogScope(__scopeAlertDialog);\n    return /* @__PURE__ */ jsx(DialogPrimitive.Title, { ...dialogScope, ...titleProps, ref: forwardedRef });\n  }\n);\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"AlertDialogDescription\";\nvar AlertDialogDescription = React.forwardRef((props, forwardedRef) => {\n  const { __scopeAlertDialog, ...descriptionProps } = props;\n  const dialogScope = useDialogScope(__scopeAlertDialog);\n  return /* @__PURE__ */ jsx(DialogPrimitive.Description, { ...dialogScope, ...descriptionProps, ref: forwardedRef });\n});\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAlertDialog, ...actionProps } = props;\n    const dialogScope = useDialogScope(__scopeAlertDialog);\n    return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...actionProps, ref: forwardedRef });\n  }\n);\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAlertDialog, ...cancelProps } = props;\n    const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n    const dialogScope = useDialogScope(__scopeAlertDialog);\n    const ref = useComposedRefs(forwardedRef, cancelRef);\n    return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...cancelProps, ref });\n  }\n);\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning = ({ contentRef }) => {\n  const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n  React.useEffect(() => {\n    const hasDescription = document.getElementById(\n      contentRef.current?.getAttribute(\"aria-describedby\")\n    );\n    if (!hasDescription) console.warn(MESSAGE);\n  }, [MESSAGE, contentRef]);\n  return null;\n};\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\nexport {\n  Action,\n  AlertDialog,\n  AlertDialogAction,\n  AlertDialogCancel,\n  AlertDialogContent,\n  AlertDialogDescription,\n  AlertDialogOverlay,\n  AlertDialogPortal,\n  AlertDialogTitle,\n  AlertDialogTrigger,\n  Cancel,\n  Content2 as Content,\n  Description2 as Description,\n  Overlay2 as Overlay,\n  Portal2 as Portal,\n  Root2 as Root,\n  Title2 as Title,\n  Trigger2 as Trigger,\n  createAlertDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n  const classMap = createClassMap(config);\n  const {\n    conflictingClassGroups,\n    conflictingClassGroupModifiers\n  } = config;\n  const getClassGroupId = className => {\n    const classParts = className.split(CLASS_PART_SEPARATOR);\n    // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n    if (classParts[0] === '' && classParts.length !== 1) {\n      classParts.shift();\n    }\n    return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n  };\n  const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n    const conflicts = conflictingClassGroups[classGroupId] || [];\n    if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n      return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n    }\n    return conflicts;\n  };\n  return {\n    getClassGroupId,\n    getConflictingClassGroupIds\n  };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n  if (classParts.length === 0) {\n    return classPartObject.classGroupId;\n  }\n  const currentClassPart = classParts[0];\n  const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n  const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n  if (classGroupFromNextClassPart) {\n    return classGroupFromNextClassPart;\n  }\n  if (classPartObject.validators.length === 0) {\n    return undefined;\n  }\n  const classRest = classParts.join(CLASS_PART_SEPARATOR);\n  return classPartObject.validators.find(({\n    validator\n  }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n  if (arbitraryPropertyRegex.test(className)) {\n    const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n    const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n    if (property) {\n      // I use two dots here because one dot is used as prefix for class groups in plugins\n      return 'arbitrary..' + property;\n    }\n  }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n  const {\n    theme,\n    classGroups\n  } = config;\n  const classMap = {\n    nextPart: new Map(),\n    validators: []\n  };\n  for (const classGroupId in classGroups) {\n    processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme);\n  }\n  return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n  classGroup.forEach(classDefinition => {\n    if (typeof classDefinition === 'string') {\n      const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n      classPartObjectToEdit.classGroupId = classGroupId;\n      return;\n    }\n    if (typeof classDefinition === 'function') {\n      if (isThemeGetter(classDefinition)) {\n        processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n        return;\n      }\n      classPartObject.validators.push({\n        validator: classDefinition,\n        classGroupId\n      });\n      return;\n    }\n    Object.entries(classDefinition).forEach(([key, classGroup]) => {\n      processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n    });\n  });\n};\nconst getPart = (classPartObject, path) => {\n  let currentClassPartObject = classPartObject;\n  path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n    if (!currentClassPartObject.nextPart.has(pathPart)) {\n      currentClassPartObject.nextPart.set(pathPart, {\n        nextPart: new Map(),\n        validators: []\n      });\n    }\n    currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n  });\n  return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n  if (maxCacheSize < 1) {\n    return {\n      get: () => undefined,\n      set: () => {}\n    };\n  }\n  let cacheSize = 0;\n  let cache = new Map();\n  let previousCache = new Map();\n  const update = (key, value) => {\n    cache.set(key, value);\n    cacheSize++;\n    if (cacheSize > maxCacheSize) {\n      cacheSize = 0;\n      previousCache = cache;\n      cache = new Map();\n    }\n  };\n  return {\n    get(key) {\n      let value = cache.get(key);\n      if (value !== undefined) {\n        return value;\n      }\n      if ((value = previousCache.get(key)) !== undefined) {\n        update(key, value);\n        return value;\n      }\n    },\n    set(key, value) {\n      if (cache.has(key)) {\n        cache.set(key, value);\n      } else {\n        update(key, value);\n      }\n    }\n  };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length;\nconst createParseClassName = config => {\n  const {\n    prefix,\n    experimentalParseClassName\n  } = config;\n  /**\n   * Parse class name into parts.\n   *\n   * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n   * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n   */\n  let parseClassName = className => {\n    const modifiers = [];\n    let bracketDepth = 0;\n    let parenDepth = 0;\n    let modifierStart = 0;\n    let postfixModifierPosition;\n    for (let index = 0; index < className.length; index++) {\n      let currentCharacter = className[index];\n      if (bracketDepth === 0 && parenDepth === 0) {\n        if (currentCharacter === MODIFIER_SEPARATOR) {\n          modifiers.push(className.slice(modifierStart, index));\n          modifierStart = index + MODIFIER_SEPARATOR_LENGTH;\n          continue;\n        }\n        if (currentCharacter === '/') {\n          postfixModifierPosition = index;\n          continue;\n        }\n      }\n      if (currentCharacter === '[') {\n        bracketDepth++;\n      } else if (currentCharacter === ']') {\n        bracketDepth--;\n      } else if (currentCharacter === '(') {\n        parenDepth++;\n      } else if (currentCharacter === ')') {\n        parenDepth--;\n      }\n    }\n    const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n    const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);\n    const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;\n    const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n    return {\n      modifiers,\n      hasImportantModifier,\n      baseClassName,\n      maybePostfixModifierPosition\n    };\n  };\n  if (prefix) {\n    const fullPrefix = prefix + MODIFIER_SEPARATOR;\n    const parseClassNameOriginal = parseClassName;\n    parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : {\n      isExternal: true,\n      modifiers: [],\n      hasImportantModifier: false,\n      baseClassName: className,\n      maybePostfixModifierPosition: undefined\n    };\n  }\n  if (experimentalParseClassName) {\n    const parseClassNameOriginal = parseClassName;\n    parseClassName = className => experimentalParseClassName({\n      className,\n      parseClassName: parseClassNameOriginal\n    });\n  }\n  return parseClassName;\n};\nconst stripImportantModifier = baseClassName => {\n  if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {\n    return baseClassName.substring(0, baseClassName.length - 1);\n  }\n  /**\n   * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n   * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n   */\n  if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {\n    return baseClassName.substring(1);\n  }\n  return baseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n  const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true]));\n  const sortModifiers = modifiers => {\n    if (modifiers.length <= 1) {\n      return modifiers;\n    }\n    const sortedModifiers = [];\n    let unsortedModifiers = [];\n    modifiers.forEach(modifier => {\n      const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier];\n      if (isPositionSensitive) {\n        sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n        unsortedModifiers = [];\n      } else {\n        unsortedModifiers.push(modifier);\n      }\n    });\n    sortedModifiers.push(...unsortedModifiers.sort());\n    return sortedModifiers;\n  };\n  return sortModifiers;\n};\nconst createConfigUtils = config => ({\n  cache: createLruCache(config.cacheSize),\n  parseClassName: createParseClassName(config),\n  sortModifiers: createSortModifiers(config),\n  ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n  const {\n    parseClassName,\n    getClassGroupId,\n    getConflictingClassGroupIds,\n    sortModifiers\n  } = configUtils;\n  /**\n   * Set of classGroupIds in following format:\n   * `{importantModifier}{variantModifiers}{classGroupId}`\n   * @example 'float'\n   * @example 'hover:focus:bg-color'\n   * @example 'md:!pr'\n   */\n  const classGroupsInConflict = [];\n  const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n  let result = '';\n  for (let index = classNames.length - 1; index >= 0; index -= 1) {\n    const originalClassName = classNames[index];\n    const {\n      isExternal,\n      modifiers,\n      hasImportantModifier,\n      baseClassName,\n      maybePostfixModifierPosition\n    } = parseClassName(originalClassName);\n    if (isExternal) {\n      result = originalClassName + (result.length > 0 ? ' ' + result : result);\n      continue;\n    }\n    let hasPostfixModifier = !!maybePostfixModifierPosition;\n    let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n    if (!classGroupId) {\n      if (!hasPostfixModifier) {\n        // Not a Tailwind class\n        result = originalClassName + (result.length > 0 ? ' ' + result : result);\n        continue;\n      }\n      classGroupId = getClassGroupId(baseClassName);\n      if (!classGroupId) {\n        // Not a Tailwind class\n        result = originalClassName + (result.length > 0 ? ' ' + result : result);\n        continue;\n      }\n      hasPostfixModifier = false;\n    }\n    const variantModifier = sortModifiers(modifiers).join(':');\n    const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n    const classId = modifierId + classGroupId;\n    if (classGroupsInConflict.includes(classId)) {\n      // Tailwind class omitted due to conflict\n      continue;\n    }\n    classGroupsInConflict.push(classId);\n    const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n    for (let i = 0; i < conflictGroups.length; ++i) {\n      const group = conflictGroups[i];\n      classGroupsInConflict.push(modifierId + group);\n    }\n    // Tailwind class not in conflict\n    result = originalClassName + (result.length > 0 ? ' ' + result : result);\n  }\n  return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n  let index = 0;\n  let argument;\n  let resolvedValue;\n  let string = '';\n  while (index < arguments.length) {\n    if (argument = arguments[index++]) {\n      if (resolvedValue = toValue(argument)) {\n        string && (string += ' ');\n        string += resolvedValue;\n      }\n    }\n  }\n  return string;\n}\nconst toValue = mix => {\n  if (typeof mix === 'string') {\n    return mix;\n  }\n  let resolvedValue;\n  let string = '';\n  for (let k = 0; k < mix.length; k++) {\n    if (mix[k]) {\n      if (resolvedValue = toValue(mix[k])) {\n        string && (string += ' ');\n        string += resolvedValue;\n      }\n    }\n  }\n  return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n  let configUtils;\n  let cacheGet;\n  let cacheSet;\n  let functionToCall = initTailwindMerge;\n  function initTailwindMerge(classList) {\n    const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n    configUtils = createConfigUtils(config);\n    cacheGet = configUtils.cache.get;\n    cacheSet = configUtils.cache.set;\n    functionToCall = tailwindMerge;\n    return tailwindMerge(classList);\n  }\n  function tailwindMerge(classList) {\n    const cachedResult = cacheGet(classList);\n    if (cachedResult) {\n      return cachedResult;\n    }\n    const result = mergeClassList(classList, configUtils);\n    cacheSet(classList, result);\n    return result;\n  }\n  return function callTailwindMerge() {\n    return functionToCall(twJoin.apply(null, arguments));\n  };\n}\nconst fromTheme = key => {\n  const themeGetter = theme => theme[key] || [];\n  themeGetter.isThemeGetter = true;\n  return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isNever, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n  const result = arbitraryValueRegex.exec(value);\n  if (result) {\n    if (result[1]) {\n      return testLabel(result[1]);\n    }\n    return testValue(result[2]);\n  }\n  return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n  const result = arbitraryVariableRegex.exec(value);\n  if (result) {\n    if (result[1]) {\n      return testLabel(result[1]);\n    }\n    return shouldMatchNoLabel;\n  }\n  return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position';\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isLabelImage = label => imageLabels.has(label);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isLabelSize = label => sizeLabels.has(label);\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n  __proto__: null,\n  isAny,\n  isAnyNonArbitrary,\n  isArbitraryImage,\n  isArbitraryLength,\n  isArbitraryNumber,\n  isArbitraryPosition,\n  isArbitraryShadow,\n  isArbitrarySize,\n  isArbitraryValue,\n  isArbitraryVariable,\n  isArbitraryVariableFamilyName,\n  isArbitraryVariableImage,\n  isArbitraryVariableLength,\n  isArbitraryVariablePosition,\n  isArbitraryVariableShadow,\n  isArbitraryVariableSize,\n  isFraction,\n  isInteger,\n  isNumber,\n  isPercent,\n  isTshirtSize\n}, Symbol.toStringTag, {\n  value: 'Module'\n});\nconst getDefaultConfig = () => {\n  /**\n   * Theme getters for theme variable namespaces\n   * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n   */\n  /***/\n  const themeColor = fromTheme('color');\n  const themeFont = fromTheme('font');\n  const themeText = fromTheme('text');\n  const themeFontWeight = fromTheme('font-weight');\n  const themeTracking = fromTheme('tracking');\n  const themeLeading = fromTheme('leading');\n  const themeBreakpoint = fromTheme('breakpoint');\n  const themeContainer = fromTheme('container');\n  const themeSpacing = fromTheme('spacing');\n  const themeRadius = fromTheme('radius');\n  const themeShadow = fromTheme('shadow');\n  const themeInsetShadow = fromTheme('inset-shadow');\n  const themeDropShadow = fromTheme('drop-shadow');\n  const themeBlur = fromTheme('blur');\n  const themePerspective = fromTheme('perspective');\n  const themeAspect = fromTheme('aspect');\n  const themeEase = fromTheme('ease');\n  const themeAnimate = fromTheme('animate');\n  /**\n   * Helpers to avoid repeating the same scales\n   *\n   * We use functions that create a new array every time they're called instead of static arrays.\n   * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n   */\n  /***/\n  const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n  const scalePosition = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n  const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n  const scaleOverscroll = () => ['auto', 'contain', 'none'];\n  const scaleInset = () => [isFraction, 'px', 'full', 'auto', isArbitraryVariable, isArbitraryValue, themeSpacing];\n  const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n  const scaleGridColRowStartAndEnd = () => ['auto', {\n    span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n  }, isArbitraryVariable, isArbitraryValue];\n  const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n  const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n  const scaleGap = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n  const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline'];\n  const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch'];\n  const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n  const scalePadding = () => ['px', ...scaleUnambiguousSpacing()];\n  const scaleMargin = () => ['px', 'auto', ...scaleUnambiguousSpacing()];\n  const scaleSizing = () => [isFraction, 'auto', 'px', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', isArbitraryVariable, isArbitraryValue, themeSpacing];\n  const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n  const scaleGradientStopPosition = () => [isPercent, isArbitraryLength];\n  const scaleRadius = () => [\n  // Deprecated since Tailwind CSS v4.0.0\n  '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n  const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n  const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n  const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n  const scaleBlur = () => [\n  // Deprecated since Tailwind CSS v4.0.0\n  '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n  const scaleOrigin = () => ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryVariable, isArbitraryValue];\n  const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n  const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n  const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n  const scaleTranslate = () => [isFraction, 'full', 'px', isArbitraryVariable, isArbitraryValue, themeSpacing];\n  return {\n    cacheSize: 500,\n    theme: {\n      animate: ['spin', 'ping', 'pulse', 'bounce'],\n      aspect: ['video'],\n      blur: [isTshirtSize],\n      breakpoint: [isTshirtSize],\n      color: [isAny],\n      container: [isTshirtSize],\n      'drop-shadow': [isTshirtSize],\n      ease: ['in', 'out', 'in-out'],\n      font: [isAnyNonArbitrary],\n      'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n      'inset-shadow': [isTshirtSize],\n      leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n      perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n      radius: [isTshirtSize],\n      shadow: [isTshirtSize],\n      spacing: [isNumber],\n      text: [isTshirtSize],\n      tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n    },\n    classGroups: {\n      // --------------\n      // --- Layout ---\n      // --------------\n      /**\n       * Aspect Ratio\n       * @see https://tailwindcss.com/docs/aspect-ratio\n       */\n      aspect: [{\n        aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n      }],\n      /**\n       * Container\n       * @see https://tailwindcss.com/docs/container\n       * @deprecated since Tailwind CSS v4.0.0\n       */\n      container: ['container'],\n      /**\n       * Columns\n       * @see https://tailwindcss.com/docs/columns\n       */\n      columns: [{\n        columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n      }],\n      /**\n       * Break After\n       * @see https://tailwindcss.com/docs/break-after\n       */\n      'break-after': [{\n        'break-after': scaleBreak()\n      }],\n      /**\n       * Break Before\n       * @see https://tailwindcss.com/docs/break-before\n       */\n      'break-before': [{\n        'break-before': scaleBreak()\n      }],\n      /**\n       * Break Inside\n       * @see https://tailwindcss.com/docs/break-inside\n       */\n      'break-inside': [{\n        'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n      }],\n      /**\n       * Box Decoration Break\n       * @see https://tailwindcss.com/docs/box-decoration-break\n       */\n      'box-decoration': [{\n        'box-decoration': ['slice', 'clone']\n      }],\n      /**\n       * Box Sizing\n       * @see https://tailwindcss.com/docs/box-sizing\n       */\n      box: [{\n        box: ['border', 'content']\n      }],\n      /**\n       * Display\n       * @see https://tailwindcss.com/docs/display\n       */\n      display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n      /**\n       * Screen Reader Only\n       * @see https://tailwindcss.com/docs/display#screen-reader-only\n       */\n      sr: ['sr-only', 'not-sr-only'],\n      /**\n       * Floats\n       * @see https://tailwindcss.com/docs/float\n       */\n      float: [{\n        float: ['right', 'left', 'none', 'start', 'end']\n      }],\n      /**\n       * Clear\n       * @see https://tailwindcss.com/docs/clear\n       */\n      clear: [{\n        clear: ['left', 'right', 'both', 'none', 'start', 'end']\n      }],\n      /**\n       * Isolation\n       * @see https://tailwindcss.com/docs/isolation\n       */\n      isolation: ['isolate', 'isolation-auto'],\n      /**\n       * Object Fit\n       * @see https://tailwindcss.com/docs/object-fit\n       */\n      'object-fit': [{\n        object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n      }],\n      /**\n       * Object Position\n       * @see https://tailwindcss.com/docs/object-position\n       */\n      'object-position': [{\n        object: [...scalePosition(), isArbitraryValue, isArbitraryVariable]\n      }],\n      /**\n       * Overflow\n       * @see https://tailwindcss.com/docs/overflow\n       */\n      overflow: [{\n        overflow: scaleOverflow()\n      }],\n      /**\n       * Overflow X\n       * @see https://tailwindcss.com/docs/overflow\n       */\n      'overflow-x': [{\n        'overflow-x': scaleOverflow()\n      }],\n      /**\n       * Overflow Y\n       * @see https://tailwindcss.com/docs/overflow\n       */\n      'overflow-y': [{\n        'overflow-y': scaleOverflow()\n      }],\n      /**\n       * Overscroll Behavior\n       * @see https://tailwindcss.com/docs/overscroll-behavior\n       */\n      overscroll: [{\n        overscroll: scaleOverscroll()\n      }],\n      /**\n       * Overscroll Behavior X\n       * @see https://tailwindcss.com/docs/overscroll-behavior\n       */\n      'overscroll-x': [{\n        'overscroll-x': scaleOverscroll()\n      }],\n      /**\n       * Overscroll Behavior Y\n       * @see https://tailwindcss.com/docs/overscroll-behavior\n       */\n      'overscroll-y': [{\n        'overscroll-y': scaleOverscroll()\n      }],\n      /**\n       * Position\n       * @see https://tailwindcss.com/docs/position\n       */\n      position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n      /**\n       * Top / Right / Bottom / Left\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      inset: [{\n        inset: scaleInset()\n      }],\n      /**\n       * Right / Left\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      'inset-x': [{\n        'inset-x': scaleInset()\n      }],\n      /**\n       * Top / Bottom\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      'inset-y': [{\n        'inset-y': scaleInset()\n      }],\n      /**\n       * Start\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      start: [{\n        start: scaleInset()\n      }],\n      /**\n       * End\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      end: [{\n        end: scaleInset()\n      }],\n      /**\n       * Top\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      top: [{\n        top: scaleInset()\n      }],\n      /**\n       * Right\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      right: [{\n        right: scaleInset()\n      }],\n      /**\n       * Bottom\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      bottom: [{\n        bottom: scaleInset()\n      }],\n      /**\n       * Left\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      left: [{\n        left: scaleInset()\n      }],\n      /**\n       * Visibility\n       * @see https://tailwindcss.com/docs/visibility\n       */\n      visibility: ['visible', 'invisible', 'collapse'],\n      /**\n       * Z-Index\n       * @see https://tailwindcss.com/docs/z-index\n       */\n      z: [{\n        z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n      }],\n      // ------------------------\n      // --- Flexbox and Grid ---\n      // ------------------------\n      /**\n       * Flex Basis\n       * @see https://tailwindcss.com/docs/flex-basis\n       */\n      basis: [{\n        basis: [isFraction, 'full', 'auto', isArbitraryVariable, isArbitraryValue, themeContainer, themeSpacing]\n      }],\n      /**\n       * Flex Direction\n       * @see https://tailwindcss.com/docs/flex-direction\n       */\n      'flex-direction': [{\n        flex: ['row', 'row-reverse', 'col', 'col-reverse']\n      }],\n      /**\n       * Flex Wrap\n       * @see https://tailwindcss.com/docs/flex-wrap\n       */\n      'flex-wrap': [{\n        flex: ['nowrap', 'wrap', 'wrap-reverse']\n      }],\n      /**\n       * Flex\n       * @see https://tailwindcss.com/docs/flex\n       */\n      flex: [{\n        flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n      }],\n      /**\n       * Flex Grow\n       * @see https://tailwindcss.com/docs/flex-grow\n       */\n      grow: [{\n        grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Flex Shrink\n       * @see https://tailwindcss.com/docs/flex-shrink\n       */\n      shrink: [{\n        shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Order\n       * @see https://tailwindcss.com/docs/order\n       */\n      order: [{\n        order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Grid Template Columns\n       * @see https://tailwindcss.com/docs/grid-template-columns\n       */\n      'grid-cols': [{\n        'grid-cols': scaleGridTemplateColsRows()\n      }],\n      /**\n       * Grid Column Start / End\n       * @see https://tailwindcss.com/docs/grid-column\n       */\n      'col-start-end': [{\n        col: scaleGridColRowStartAndEnd()\n      }],\n      /**\n       * Grid Column Start\n       * @see https://tailwindcss.com/docs/grid-column\n       */\n      'col-start': [{\n        'col-start': scaleGridColRowStartOrEnd()\n      }],\n      /**\n       * Grid Column End\n       * @see https://tailwindcss.com/docs/grid-column\n       */\n      'col-end': [{\n        'col-end': scaleGridColRowStartOrEnd()\n      }],\n      /**\n       * Grid Template Rows\n       * @see https://tailwindcss.com/docs/grid-template-rows\n       */\n      'grid-rows': [{\n        'grid-rows': scaleGridTemplateColsRows()\n      }],\n      /**\n       * Grid Row Start / End\n       * @see https://tailwindcss.com/docs/grid-row\n       */\n      'row-start-end': [{\n        row: scaleGridColRowStartAndEnd()\n      }],\n      /**\n       * Grid Row Start\n       * @see https://tailwindcss.com/docs/grid-row\n       */\n      'row-start': [{\n        'row-start': scaleGridColRowStartOrEnd()\n      }],\n      /**\n       * Grid Row End\n       * @see https://tailwindcss.com/docs/grid-row\n       */\n      'row-end': [{\n        'row-end': scaleGridColRowStartOrEnd()\n      }],\n      /**\n       * Grid Auto Flow\n       * @see https://tailwindcss.com/docs/grid-auto-flow\n       */\n      'grid-flow': [{\n        'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n      }],\n      /**\n       * Grid Auto Columns\n       * @see https://tailwindcss.com/docs/grid-auto-columns\n       */\n      'auto-cols': [{\n        'auto-cols': scaleGridAutoColsRows()\n      }],\n      /**\n       * Grid Auto Rows\n       * @see https://tailwindcss.com/docs/grid-auto-rows\n       */\n      'auto-rows': [{\n        'auto-rows': scaleGridAutoColsRows()\n      }],\n      /**\n       * Gap\n       * @see https://tailwindcss.com/docs/gap\n       */\n      gap: [{\n        gap: scaleGap()\n      }],\n      /**\n       * Gap X\n       * @see https://tailwindcss.com/docs/gap\n       */\n      'gap-x': [{\n        'gap-x': scaleGap()\n      }],\n      /**\n       * Gap Y\n       * @see https://tailwindcss.com/docs/gap\n       */\n      'gap-y': [{\n        'gap-y': scaleGap()\n      }],\n      /**\n       * Justify Content\n       * @see https://tailwindcss.com/docs/justify-content\n       */\n      'justify-content': [{\n        justify: [...scaleAlignPrimaryAxis(), 'normal']\n      }],\n      /**\n       * Justify Items\n       * @see https://tailwindcss.com/docs/justify-items\n       */\n      'justify-items': [{\n        'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n      }],\n      /**\n       * Justify Self\n       * @see https://tailwindcss.com/docs/justify-self\n       */\n      'justify-self': [{\n        'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n      }],\n      /**\n       * Align Content\n       * @see https://tailwindcss.com/docs/align-content\n       */\n      'align-content': [{\n        content: ['normal', ...scaleAlignPrimaryAxis()]\n      }],\n      /**\n       * Align Items\n       * @see https://tailwindcss.com/docs/align-items\n       */\n      'align-items': [{\n        items: [...scaleAlignSecondaryAxis(), 'baseline']\n      }],\n      /**\n       * Align Self\n       * @see https://tailwindcss.com/docs/align-self\n       */\n      'align-self': [{\n        self: ['auto', ...scaleAlignSecondaryAxis(), 'baseline']\n      }],\n      /**\n       * Place Content\n       * @see https://tailwindcss.com/docs/place-content\n       */\n      'place-content': [{\n        'place-content': scaleAlignPrimaryAxis()\n      }],\n      /**\n       * Place Items\n       * @see https://tailwindcss.com/docs/place-items\n       */\n      'place-items': [{\n        'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n      }],\n      /**\n       * Place Self\n       * @see https://tailwindcss.com/docs/place-self\n       */\n      'place-self': [{\n        'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n      }],\n      // Spacing\n      /**\n       * Padding\n       * @see https://tailwindcss.com/docs/padding\n       */\n      p: [{\n        p: scalePadding()\n      }],\n      /**\n       * Padding X\n       * @see https://tailwindcss.com/docs/padding\n       */\n      px: [{\n        px: scalePadding()\n      }],\n      /**\n       * Padding Y\n       * @see https://tailwindcss.com/docs/padding\n       */\n      py: [{\n        py: scalePadding()\n      }],\n      /**\n       * Padding Start\n       * @see https://tailwindcss.com/docs/padding\n       */\n      ps: [{\n        ps: scalePadding()\n      }],\n      /**\n       * Padding End\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pe: [{\n        pe: scalePadding()\n      }],\n      /**\n       * Padding Top\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pt: [{\n        pt: scalePadding()\n      }],\n      /**\n       * Padding Right\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pr: [{\n        pr: scalePadding()\n      }],\n      /**\n       * Padding Bottom\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pb: [{\n        pb: scalePadding()\n      }],\n      /**\n       * Padding Left\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pl: [{\n        pl: scalePadding()\n      }],\n      /**\n       * Margin\n       * @see https://tailwindcss.com/docs/margin\n       */\n      m: [{\n        m: scaleMargin()\n      }],\n      /**\n       * Margin X\n       * @see https://tailwindcss.com/docs/margin\n       */\n      mx: [{\n        mx: scaleMargin()\n      }],\n      /**\n       * Margin Y\n       * @see https://tailwindcss.com/docs/margin\n       */\n      my: [{\n        my: scaleMargin()\n      }],\n      /**\n       * Margin Start\n       * @see https://tailwindcss.com/docs/margin\n       */\n      ms: [{\n        ms: scaleMargin()\n      }],\n      /**\n       * Margin End\n       * @see https://tailwindcss.com/docs/margin\n       */\n      me: [{\n        me: scaleMargin()\n      }],\n      /**\n       * Margin Top\n       * @see https://tailwindcss.com/docs/margin\n       */\n      mt: [{\n        mt: scaleMargin()\n      }],\n      /**\n       * Margin Right\n       * @see https://tailwindcss.com/docs/margin\n       */\n      mr: [{\n        mr: scaleMargin()\n      }],\n      /**\n       * Margin Bottom\n       * @see https://tailwindcss.com/docs/margin\n       */\n      mb: [{\n        mb: scaleMargin()\n      }],\n      /**\n       * Margin Left\n       * @see https://tailwindcss.com/docs/margin\n       */\n      ml: [{\n        ml: scaleMargin()\n      }],\n      /**\n       * Space Between X\n       * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n       */\n      'space-x': [{\n        'space-x': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Space Between X Reverse\n       * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n       */\n      'space-x-reverse': ['space-x-reverse'],\n      /**\n       * Space Between Y\n       * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n       */\n      'space-y': [{\n        'space-y': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Space Between Y Reverse\n       * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n       */\n      'space-y-reverse': ['space-y-reverse'],\n      // --------------\n      // --- Sizing ---\n      // --------------\n      /**\n       * Width\n       * @see https://tailwindcss.com/docs/width\n       */\n      /**\n       * Size\n       * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n       */\n      size: [{\n        size: scaleSizing()\n      }],\n      w: [{\n        w: [themeContainer, 'screen', ...scaleSizing()]\n      }],\n      /**\n       * Min-Width\n       * @see https://tailwindcss.com/docs/min-width\n       */\n      'min-w': [{\n        'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n        'none', ...scaleSizing()]\n      }],\n      /**\n       * Max-Width\n       * @see https://tailwindcss.com/docs/max-width\n       */\n      'max-w': [{\n        'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n        'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n        {\n          screen: [themeBreakpoint]\n        }, ...scaleSizing()]\n      }],\n      /**\n       * Height\n       * @see https://tailwindcss.com/docs/height\n       */\n      h: [{\n        h: ['screen', ...scaleSizing()]\n      }],\n      /**\n       * Min-Height\n       * @see https://tailwindcss.com/docs/min-height\n       */\n      'min-h': [{\n        'min-h': ['screen', 'none', ...scaleSizing()]\n      }],\n      /**\n       * Max-Height\n       * @see https://tailwindcss.com/docs/max-height\n       */\n      'max-h': [{\n        'max-h': ['screen', ...scaleSizing()]\n      }],\n      // ------------------\n      // --- Typography ---\n      // ------------------\n      /**\n       * Font Size\n       * @see https://tailwindcss.com/docs/font-size\n       */\n      'font-size': [{\n        text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n      }],\n      /**\n       * Font Smoothing\n       * @see https://tailwindcss.com/docs/font-smoothing\n       */\n      'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n      /**\n       * Font Style\n       * @see https://tailwindcss.com/docs/font-style\n       */\n      'font-style': ['italic', 'not-italic'],\n      /**\n       * Font Weight\n       * @see https://tailwindcss.com/docs/font-weight\n       */\n      'font-weight': [{\n        font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n      }],\n      /**\n       * Font Stretch\n       * @see https://tailwindcss.com/docs/font-stretch\n       */\n      'font-stretch': [{\n        'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n      }],\n      /**\n       * Font Family\n       * @see https://tailwindcss.com/docs/font-family\n       */\n      'font-family': [{\n        font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]\n      }],\n      /**\n       * Font Variant Numeric\n       * @see https://tailwindcss.com/docs/font-variant-numeric\n       */\n      'fvn-normal': ['normal-nums'],\n      /**\n       * Font Variant Numeric\n       * @see https://tailwindcss.com/docs/font-variant-numeric\n       */\n      'fvn-ordinal': ['ordinal'],\n      /**\n       * Font Variant Numeric\n       * @see https://tailwindcss.com/docs/font-variant-numeric\n       */\n      'fvn-slashed-zero': ['slashed-zero'],\n      /**\n       * Font Variant Numeric\n       * @see https://tailwindcss.com/docs/font-variant-numeric\n       */\n      'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n      /**\n       * Font Variant Numeric\n       * @see https://tailwindcss.com/docs/font-variant-numeric\n       */\n      'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n      /**\n       * Font Variant Numeric\n       * @see https://tailwindcss.com/docs/font-variant-numeric\n       */\n      'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n      /**\n       * Letter Spacing\n       * @see https://tailwindcss.com/docs/letter-spacing\n       */\n      tracking: [{\n        tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Line Clamp\n       * @see https://tailwindcss.com/docs/line-clamp\n       */\n      'line-clamp': [{\n        'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n      }],\n      /**\n       * Line Height\n       * @see https://tailwindcss.com/docs/line-height\n       */\n      leading: [{\n        leading: [isArbitraryVariable, isArbitraryValue, /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n        themeLeading, themeSpacing]\n      }],\n      /**\n       * List Style Image\n       * @see https://tailwindcss.com/docs/list-style-image\n       */\n      'list-image': [{\n        'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * List Style Position\n       * @see https://tailwindcss.com/docs/list-style-position\n       */\n      'list-style-position': [{\n        list: ['inside', 'outside']\n      }],\n      /**\n       * List Style Type\n       * @see https://tailwindcss.com/docs/list-style-type\n       */\n      'list-style-type': [{\n        list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Text Alignment\n       * @see https://tailwindcss.com/docs/text-align\n       */\n      'text-alignment': [{\n        text: ['left', 'center', 'right', 'justify', 'start', 'end']\n      }],\n      /**\n       * Placeholder Color\n       * @deprecated since Tailwind CSS v3.0.0\n       * @see https://v3.tailwindcss.com/docs/placeholder-color\n       */\n      'placeholder-color': [{\n        placeholder: scaleColor()\n      }],\n      /**\n       * Text Color\n       * @see https://tailwindcss.com/docs/text-color\n       */\n      'text-color': [{\n        text: scaleColor()\n      }],\n      /**\n       * Text Decoration\n       * @see https://tailwindcss.com/docs/text-decoration\n       */\n      'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n      /**\n       * Text Decoration Style\n       * @see https://tailwindcss.com/docs/text-decoration-style\n       */\n      'text-decoration-style': [{\n        decoration: [...scaleLineStyle(), 'wavy']\n      }],\n      /**\n       * Text Decoration Thickness\n       * @see https://tailwindcss.com/docs/text-decoration-thickness\n       */\n      'text-decoration-thickness': [{\n        decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n      }],\n      /**\n       * Text Decoration Color\n       * @see https://tailwindcss.com/docs/text-decoration-color\n       */\n      'text-decoration-color': [{\n        decoration: scaleColor()\n      }],\n      /**\n       * Text Underline Offset\n       * @see https://tailwindcss.com/docs/text-underline-offset\n       */\n      'underline-offset': [{\n        'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Text Transform\n       * @see https://tailwindcss.com/docs/text-transform\n       */\n      'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n      /**\n       * Text Overflow\n       * @see https://tailwindcss.com/docs/text-overflow\n       */\n      'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n      /**\n       * Text Wrap\n       * @see https://tailwindcss.com/docs/text-wrap\n       */\n      'text-wrap': [{\n        text: ['wrap', 'nowrap', 'balance', 'pretty']\n      }],\n      /**\n       * Text Indent\n       * @see https://tailwindcss.com/docs/text-indent\n       */\n      indent: [{\n        indent: ['px', ...scaleUnambiguousSpacing()]\n      }],\n      /**\n       * Vertical Alignment\n       * @see https://tailwindcss.com/docs/vertical-align\n       */\n      'vertical-align': [{\n        align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Whitespace\n       * @see https://tailwindcss.com/docs/whitespace\n       */\n      whitespace: [{\n        whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n      }],\n      /**\n       * Word Break\n       * @see https://tailwindcss.com/docs/word-break\n       */\n      break: [{\n        break: ['normal', 'words', 'all', 'keep']\n      }],\n      /**\n       * Hyphens\n       * @see https://tailwindcss.com/docs/hyphens\n       */\n      hyphens: [{\n        hyphens: ['none', 'manual', 'auto']\n      }],\n      /**\n       * Content\n       * @see https://tailwindcss.com/docs/content\n       */\n      content: [{\n        content: ['none', isArbitraryVariable, isArbitraryValue]\n      }],\n      // -------------------\n      // --- Backgrounds ---\n      // -------------------\n      /**\n       * Background Attachment\n       * @see https://tailwindcss.com/docs/background-attachment\n       */\n      'bg-attachment': [{\n        bg: ['fixed', 'local', 'scroll']\n      }],\n      /**\n       * Background Clip\n       * @see https://tailwindcss.com/docs/background-clip\n       */\n      'bg-clip': [{\n        'bg-clip': ['border', 'padding', 'content', 'text']\n      }],\n      /**\n       * Background Origin\n       * @see https://tailwindcss.com/docs/background-origin\n       */\n      'bg-origin': [{\n        'bg-origin': ['border', 'padding', 'content']\n      }],\n      /**\n       * Background Position\n       * @see https://tailwindcss.com/docs/background-position\n       */\n      'bg-position': [{\n        bg: [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition]\n      }],\n      /**\n       * Background Repeat\n       * @see https://tailwindcss.com/docs/background-repeat\n       */\n      'bg-repeat': [{\n        bg: ['no-repeat', {\n          repeat: ['', 'x', 'y', 'space', 'round']\n        }]\n      }],\n      /**\n       * Background Size\n       * @see https://tailwindcss.com/docs/background-size\n       */\n      'bg-size': [{\n        bg: ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize]\n      }],\n      /**\n       * Background Image\n       * @see https://tailwindcss.com/docs/background-image\n       */\n      'bg-image': [{\n        bg: ['none', {\n          linear: [{\n            to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n          }, isInteger, isArbitraryVariable, isArbitraryValue],\n          radial: ['', isArbitraryVariable, isArbitraryValue],\n          conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n        }, isArbitraryVariableImage, isArbitraryImage]\n      }],\n      /**\n       * Background Color\n       * @see https://tailwindcss.com/docs/background-color\n       */\n      'bg-color': [{\n        bg: scaleColor()\n      }],\n      /**\n       * Gradient Color Stops From Position\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-from-pos': [{\n        from: scaleGradientStopPosition()\n      }],\n      /**\n       * Gradient Color Stops Via Position\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-via-pos': [{\n        via: scaleGradientStopPosition()\n      }],\n      /**\n       * Gradient Color Stops To Position\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-to-pos': [{\n        to: scaleGradientStopPosition()\n      }],\n      /**\n       * Gradient Color Stops From\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-from': [{\n        from: scaleColor()\n      }],\n      /**\n       * Gradient Color Stops Via\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-via': [{\n        via: scaleColor()\n      }],\n      /**\n       * Gradient Color Stops To\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-to': [{\n        to: scaleColor()\n      }],\n      // ---------------\n      // --- Borders ---\n      // ---------------\n      /**\n       * Border Radius\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      rounded: [{\n        rounded: scaleRadius()\n      }],\n      /**\n       * Border Radius Start\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-s': [{\n        'rounded-s': scaleRadius()\n      }],\n      /**\n       * Border Radius End\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-e': [{\n        'rounded-e': scaleRadius()\n      }],\n      /**\n       * Border Radius Top\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-t': [{\n        'rounded-t': scaleRadius()\n      }],\n      /**\n       * Border Radius Right\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-r': [{\n        'rounded-r': scaleRadius()\n      }],\n      /**\n       * Border Radius Bottom\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-b': [{\n        'rounded-b': scaleRadius()\n      }],\n      /**\n       * Border Radius Left\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-l': [{\n        'rounded-l': scaleRadius()\n      }],\n      /**\n       * Border Radius Start Start\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-ss': [{\n        'rounded-ss': scaleRadius()\n      }],\n      /**\n       * Border Radius Start End\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-se': [{\n        'rounded-se': scaleRadius()\n      }],\n      /**\n       * Border Radius End End\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-ee': [{\n        'rounded-ee': scaleRadius()\n      }],\n      /**\n       * Border Radius End Start\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-es': [{\n        'rounded-es': scaleRadius()\n      }],\n      /**\n       * Border Radius Top Left\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-tl': [{\n        'rounded-tl': scaleRadius()\n      }],\n      /**\n       * Border Radius Top Right\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-tr': [{\n        'rounded-tr': scaleRadius()\n      }],\n      /**\n       * Border Radius Bottom Right\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-br': [{\n        'rounded-br': scaleRadius()\n      }],\n      /**\n       * Border Radius Bottom Left\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-bl': [{\n        'rounded-bl': scaleRadius()\n      }],\n      /**\n       * Border Width\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w': [{\n        border: scaleBorderWidth()\n      }],\n      /**\n       * Border Width X\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-x': [{\n        'border-x': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Y\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-y': [{\n        'border-y': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Start\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-s': [{\n        'border-s': scaleBorderWidth()\n      }],\n      /**\n       * Border Width End\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-e': [{\n        'border-e': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Top\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-t': [{\n        'border-t': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Right\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-r': [{\n        'border-r': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Bottom\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-b': [{\n        'border-b': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Left\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-l': [{\n        'border-l': scaleBorderWidth()\n      }],\n      /**\n       * Divide Width X\n       * @see https://tailwindcss.com/docs/border-width#between-children\n       */\n      'divide-x': [{\n        'divide-x': scaleBorderWidth()\n      }],\n      /**\n       * Divide Width X Reverse\n       * @see https://tailwindcss.com/docs/border-width#between-children\n       */\n      'divide-x-reverse': ['divide-x-reverse'],\n      /**\n       * Divide Width Y\n       * @see https://tailwindcss.com/docs/border-width#between-children\n       */\n      'divide-y': [{\n        'divide-y': scaleBorderWidth()\n      }],\n      /**\n       * Divide Width Y Reverse\n       * @see https://tailwindcss.com/docs/border-width#between-children\n       */\n      'divide-y-reverse': ['divide-y-reverse'],\n      /**\n       * Border Style\n       * @see https://tailwindcss.com/docs/border-style\n       */\n      'border-style': [{\n        border: [...scaleLineStyle(), 'hidden', 'none']\n      }],\n      /**\n       * Divide Style\n       * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n       */\n      'divide-style': [{\n        divide: [...scaleLineStyle(), 'hidden', 'none']\n      }],\n      /**\n       * Border Color\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color': [{\n        border: scaleColor()\n      }],\n      /**\n       * Border Color X\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-x': [{\n        'border-x': scaleColor()\n      }],\n      /**\n       * Border Color Y\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-y': [{\n        'border-y': scaleColor()\n      }],\n      /**\n       * Border Color S\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-s': [{\n        'border-s': scaleColor()\n      }],\n      /**\n       * Border Color E\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-e': [{\n        'border-e': scaleColor()\n      }],\n      /**\n       * Border Color Top\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-t': [{\n        'border-t': scaleColor()\n      }],\n      /**\n       * Border Color Right\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-r': [{\n        'border-r': scaleColor()\n      }],\n      /**\n       * Border Color Bottom\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-b': [{\n        'border-b': scaleColor()\n      }],\n      /**\n       * Border Color Left\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-l': [{\n        'border-l': scaleColor()\n      }],\n      /**\n       * Divide Color\n       * @see https://tailwindcss.com/docs/divide-color\n       */\n      'divide-color': [{\n        divide: scaleColor()\n      }],\n      /**\n       * Outline Style\n       * @see https://tailwindcss.com/docs/outline-style\n       */\n      'outline-style': [{\n        outline: [...scaleLineStyle(), 'none', 'hidden']\n      }],\n      /**\n       * Outline Offset\n       * @see https://tailwindcss.com/docs/outline-offset\n       */\n      'outline-offset': [{\n        'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Outline Width\n       * @see https://tailwindcss.com/docs/outline-width\n       */\n      'outline-w': [{\n        outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n      }],\n      /**\n       * Outline Color\n       * @see https://tailwindcss.com/docs/outline-color\n       */\n      'outline-color': [{\n        outline: [themeColor]\n      }],\n      // ---------------\n      // --- Effects ---\n      // ---------------\n      /**\n       * Box Shadow\n       * @see https://tailwindcss.com/docs/box-shadow\n       */\n      shadow: [{\n        shadow: [\n        // Deprecated since Tailwind CSS v4.0.0\n        '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n      }],\n      /**\n       * Box Shadow Color\n       * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n       */\n      'shadow-color': [{\n        shadow: scaleColor()\n      }],\n      /**\n       * Inset Box Shadow\n       * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n       */\n      'inset-shadow': [{\n        'inset-shadow': ['none', isArbitraryVariable, isArbitraryValue, themeInsetShadow]\n      }],\n      /**\n       * Inset Box Shadow Color\n       * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n       */\n      'inset-shadow-color': [{\n        'inset-shadow': scaleColor()\n      }],\n      /**\n       * Ring Width\n       * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n       */\n      'ring-w': [{\n        ring: scaleBorderWidth()\n      }],\n      /**\n       * Ring Width Inset\n       * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n       * @deprecated since Tailwind CSS v4.0.0\n       * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n       */\n      'ring-w-inset': ['ring-inset'],\n      /**\n       * Ring Color\n       * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n       */\n      'ring-color': [{\n        ring: scaleColor()\n      }],\n      /**\n       * Ring Offset Width\n       * @see https://v3.tailwindcss.com/docs/ring-offset-width\n       * @deprecated since Tailwind CSS v4.0.0\n       * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n       */\n      'ring-offset-w': [{\n        'ring-offset': [isNumber, isArbitraryLength]\n      }],\n      /**\n       * Ring Offset Color\n       * @see https://v3.tailwindcss.com/docs/ring-offset-color\n       * @deprecated since Tailwind CSS v4.0.0\n       * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n       */\n      'ring-offset-color': [{\n        'ring-offset': scaleColor()\n      }],\n      /**\n       * Inset Ring Width\n       * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n       */\n      'inset-ring-w': [{\n        'inset-ring': scaleBorderWidth()\n      }],\n      /**\n       * Inset Ring Color\n       * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n       */\n      'inset-ring-color': [{\n        'inset-ring': scaleColor()\n      }],\n      /**\n       * Opacity\n       * @see https://tailwindcss.com/docs/opacity\n       */\n      opacity: [{\n        opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Mix Blend Mode\n       * @see https://tailwindcss.com/docs/mix-blend-mode\n       */\n      'mix-blend': [{\n        'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n      }],\n      /**\n       * Background Blend Mode\n       * @see https://tailwindcss.com/docs/background-blend-mode\n       */\n      'bg-blend': [{\n        'bg-blend': scaleBlendMode()\n      }],\n      // ---------------\n      // --- Filters ---\n      // ---------------\n      /**\n       * Filter\n       * @see https://tailwindcss.com/docs/filter\n       */\n      filter: [{\n        filter: [\n        // Deprecated since Tailwind CSS v3.0.0\n        '', 'none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Blur\n       * @see https://tailwindcss.com/docs/blur\n       */\n      blur: [{\n        blur: scaleBlur()\n      }],\n      /**\n       * Brightness\n       * @see https://tailwindcss.com/docs/brightness\n       */\n      brightness: [{\n        brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Contrast\n       * @see https://tailwindcss.com/docs/contrast\n       */\n      contrast: [{\n        contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Drop Shadow\n       * @see https://tailwindcss.com/docs/drop-shadow\n       */\n      'drop-shadow': [{\n        'drop-shadow': [\n        // Deprecated since Tailwind CSS v4.0.0\n        '', 'none', themeDropShadow, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Grayscale\n       * @see https://tailwindcss.com/docs/grayscale\n       */\n      grayscale: [{\n        grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Hue Rotate\n       * @see https://tailwindcss.com/docs/hue-rotate\n       */\n      'hue-rotate': [{\n        'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Invert\n       * @see https://tailwindcss.com/docs/invert\n       */\n      invert: [{\n        invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Saturate\n       * @see https://tailwindcss.com/docs/saturate\n       */\n      saturate: [{\n        saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Sepia\n       * @see https://tailwindcss.com/docs/sepia\n       */\n      sepia: [{\n        sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Filter\n       * @see https://tailwindcss.com/docs/backdrop-filter\n       */\n      'backdrop-filter': [{\n        'backdrop-filter': [\n        // Deprecated since Tailwind CSS v3.0.0\n        '', 'none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Blur\n       * @see https://tailwindcss.com/docs/backdrop-blur\n       */\n      'backdrop-blur': [{\n        'backdrop-blur': scaleBlur()\n      }],\n      /**\n       * Backdrop Brightness\n       * @see https://tailwindcss.com/docs/backdrop-brightness\n       */\n      'backdrop-brightness': [{\n        'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Contrast\n       * @see https://tailwindcss.com/docs/backdrop-contrast\n       */\n      'backdrop-contrast': [{\n        'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Grayscale\n       * @see https://tailwindcss.com/docs/backdrop-grayscale\n       */\n      'backdrop-grayscale': [{\n        'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Hue Rotate\n       * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n       */\n      'backdrop-hue-rotate': [{\n        'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Invert\n       * @see https://tailwindcss.com/docs/backdrop-invert\n       */\n      'backdrop-invert': [{\n        'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Opacity\n       * @see https://tailwindcss.com/docs/backdrop-opacity\n       */\n      'backdrop-opacity': [{\n        'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Saturate\n       * @see https://tailwindcss.com/docs/backdrop-saturate\n       */\n      'backdrop-saturate': [{\n        'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Sepia\n       * @see https://tailwindcss.com/docs/backdrop-sepia\n       */\n      'backdrop-sepia': [{\n        'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      // --------------\n      // --- Tables ---\n      // --------------\n      /**\n       * Border Collapse\n       * @see https://tailwindcss.com/docs/border-collapse\n       */\n      'border-collapse': [{\n        border: ['collapse', 'separate']\n      }],\n      /**\n       * Border Spacing\n       * @see https://tailwindcss.com/docs/border-spacing\n       */\n      'border-spacing': [{\n        'border-spacing': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Border Spacing X\n       * @see https://tailwindcss.com/docs/border-spacing\n       */\n      'border-spacing-x': [{\n        'border-spacing-x': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Border Spacing Y\n       * @see https://tailwindcss.com/docs/border-spacing\n       */\n      'border-spacing-y': [{\n        'border-spacing-y': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Table Layout\n       * @see https://tailwindcss.com/docs/table-layout\n       */\n      'table-layout': [{\n        table: ['auto', 'fixed']\n      }],\n      /**\n       * Caption Side\n       * @see https://tailwindcss.com/docs/caption-side\n       */\n      caption: [{\n        caption: ['top', 'bottom']\n      }],\n      // ---------------------------------\n      // --- Transitions and Animation ---\n      // ---------------------------------\n      /**\n       * Transition Property\n       * @see https://tailwindcss.com/docs/transition-property\n       */\n      transition: [{\n        transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Transition Behavior\n       * @see https://tailwindcss.com/docs/transition-behavior\n       */\n      'transition-behavior': [{\n        transition: ['normal', 'discrete']\n      }],\n      /**\n       * Transition Duration\n       * @see https://tailwindcss.com/docs/transition-duration\n       */\n      duration: [{\n        duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Transition Timing Function\n       * @see https://tailwindcss.com/docs/transition-timing-function\n       */\n      ease: [{\n        ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Transition Delay\n       * @see https://tailwindcss.com/docs/transition-delay\n       */\n      delay: [{\n        delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Animation\n       * @see https://tailwindcss.com/docs/animation\n       */\n      animate: [{\n        animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n      }],\n      // ------------------\n      // --- Transforms ---\n      // ------------------\n      /**\n       * Backface Visibility\n       * @see https://tailwindcss.com/docs/backface-visibility\n       */\n      backface: [{\n        backface: ['hidden', 'visible']\n      }],\n      /**\n       * Perspective\n       * @see https://tailwindcss.com/docs/perspective\n       */\n      perspective: [{\n        perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Perspective Origin\n       * @see https://tailwindcss.com/docs/perspective-origin\n       */\n      'perspective-origin': [{\n        'perspective-origin': scaleOrigin()\n      }],\n      /**\n       * Rotate\n       * @see https://tailwindcss.com/docs/rotate\n       */\n      rotate: [{\n        rotate: scaleRotate()\n      }],\n      /**\n       * Rotate X\n       * @see https://tailwindcss.com/docs/rotate\n       */\n      'rotate-x': [{\n        'rotate-x': scaleRotate()\n      }],\n      /**\n       * Rotate Y\n       * @see https://tailwindcss.com/docs/rotate\n       */\n      'rotate-y': [{\n        'rotate-y': scaleRotate()\n      }],\n      /**\n       * Rotate Z\n       * @see https://tailwindcss.com/docs/rotate\n       */\n      'rotate-z': [{\n        'rotate-z': scaleRotate()\n      }],\n      /**\n       * Scale\n       * @see https://tailwindcss.com/docs/scale\n       */\n      scale: [{\n        scale: scaleScale()\n      }],\n      /**\n       * Scale X\n       * @see https://tailwindcss.com/docs/scale\n       */\n      'scale-x': [{\n        'scale-x': scaleScale()\n      }],\n      /**\n       * Scale Y\n       * @see https://tailwindcss.com/docs/scale\n       */\n      'scale-y': [{\n        'scale-y': scaleScale()\n      }],\n      /**\n       * Scale Z\n       * @see https://tailwindcss.com/docs/scale\n       */\n      'scale-z': [{\n        'scale-z': scaleScale()\n      }],\n      /**\n       * Scale 3D\n       * @see https://tailwindcss.com/docs/scale\n       */\n      'scale-3d': ['scale-3d'],\n      /**\n       * Skew\n       * @see https://tailwindcss.com/docs/skew\n       */\n      skew: [{\n        skew: scaleSkew()\n      }],\n      /**\n       * Skew X\n       * @see https://tailwindcss.com/docs/skew\n       */\n      'skew-x': [{\n        'skew-x': scaleSkew()\n      }],\n      /**\n       * Skew Y\n       * @see https://tailwindcss.com/docs/skew\n       */\n      'skew-y': [{\n        'skew-y': scaleSkew()\n      }],\n      /**\n       * Transform\n       * @see https://tailwindcss.com/docs/transform\n       */\n      transform: [{\n        transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n      }],\n      /**\n       * Transform Origin\n       * @see https://tailwindcss.com/docs/transform-origin\n       */\n      'transform-origin': [{\n        origin: scaleOrigin()\n      }],\n      /**\n       * Transform Style\n       * @see https://tailwindcss.com/docs/transform-style\n       */\n      'transform-style': [{\n        transform: ['3d', 'flat']\n      }],\n      /**\n       * Translate\n       * @see https://tailwindcss.com/docs/translate\n       */\n      translate: [{\n        translate: scaleTranslate()\n      }],\n      /**\n       * Translate X\n       * @see https://tailwindcss.com/docs/translate\n       */\n      'translate-x': [{\n        'translate-x': scaleTranslate()\n      }],\n      /**\n       * Translate Y\n       * @see https://tailwindcss.com/docs/translate\n       */\n      'translate-y': [{\n        'translate-y': scaleTranslate()\n      }],\n      /**\n       * Translate Z\n       * @see https://tailwindcss.com/docs/translate\n       */\n      'translate-z': [{\n        'translate-z': scaleTranslate()\n      }],\n      /**\n       * Translate None\n       * @see https://tailwindcss.com/docs/translate\n       */\n      'translate-none': ['translate-none'],\n      // ---------------------\n      // --- Interactivity ---\n      // ---------------------\n      /**\n       * Accent Color\n       * @see https://tailwindcss.com/docs/accent-color\n       */\n      accent: [{\n        accent: scaleColor()\n      }],\n      /**\n       * Appearance\n       * @see https://tailwindcss.com/docs/appearance\n       */\n      appearance: [{\n        appearance: ['none', 'auto']\n      }],\n      /**\n       * Caret Color\n       * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n       */\n      'caret-color': [{\n        caret: scaleColor()\n      }],\n      /**\n       * Color Scheme\n       * @see https://tailwindcss.com/docs/color-scheme\n       */\n      'color-scheme': [{\n        scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n      }],\n      /**\n       * Cursor\n       * @see https://tailwindcss.com/docs/cursor\n       */\n      cursor: [{\n        cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Field Sizing\n       * @see https://tailwindcss.com/docs/field-sizing\n       */\n      'field-sizing': [{\n        'field-sizing': ['fixed', 'content']\n      }],\n      /**\n       * Pointer Events\n       * @see https://tailwindcss.com/docs/pointer-events\n       */\n      'pointer-events': [{\n        'pointer-events': ['auto', 'none']\n      }],\n      /**\n       * Resize\n       * @see https://tailwindcss.com/docs/resize\n       */\n      resize: [{\n        resize: ['none', '', 'y', 'x']\n      }],\n      /**\n       * Scroll Behavior\n       * @see https://tailwindcss.com/docs/scroll-behavior\n       */\n      'scroll-behavior': [{\n        scroll: ['auto', 'smooth']\n      }],\n      /**\n       * Scroll Margin\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-m': [{\n        'scroll-m': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin X\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-mx': [{\n        'scroll-mx': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Y\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-my': [{\n        'scroll-my': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Start\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-ms': [{\n        'scroll-ms': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin End\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-me': [{\n        'scroll-me': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Top\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-mt': [{\n        'scroll-mt': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Right\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-mr': [{\n        'scroll-mr': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Bottom\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-mb': [{\n        'scroll-mb': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Left\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-ml': [{\n        'scroll-ml': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-p': [{\n        'scroll-p': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding X\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-px': [{\n        'scroll-px': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Y\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-py': [{\n        'scroll-py': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Start\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-ps': [{\n        'scroll-ps': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding End\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pe': [{\n        'scroll-pe': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Top\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pt': [{\n        'scroll-pt': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Right\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pr': [{\n        'scroll-pr': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Bottom\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pb': [{\n        'scroll-pb': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Left\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pl': [{\n        'scroll-pl': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Snap Align\n       * @see https://tailwindcss.com/docs/scroll-snap-align\n       */\n      'snap-align': [{\n        snap: ['start', 'end', 'center', 'align-none']\n      }],\n      /**\n       * Scroll Snap Stop\n       * @see https://tailwindcss.com/docs/scroll-snap-stop\n       */\n      'snap-stop': [{\n        snap: ['normal', 'always']\n      }],\n      /**\n       * Scroll Snap Type\n       * @see https://tailwindcss.com/docs/scroll-snap-type\n       */\n      'snap-type': [{\n        snap: ['none', 'x', 'y', 'both']\n      }],\n      /**\n       * Scroll Snap Type Strictness\n       * @see https://tailwindcss.com/docs/scroll-snap-type\n       */\n      'snap-strictness': [{\n        snap: ['mandatory', 'proximity']\n      }],\n      /**\n       * Touch Action\n       * @see https://tailwindcss.com/docs/touch-action\n       */\n      touch: [{\n        touch: ['auto', 'none', 'manipulation']\n      }],\n      /**\n       * Touch Action X\n       * @see https://tailwindcss.com/docs/touch-action\n       */\n      'touch-x': [{\n        'touch-pan': ['x', 'left', 'right']\n      }],\n      /**\n       * Touch Action Y\n       * @see https://tailwindcss.com/docs/touch-action\n       */\n      'touch-y': [{\n        'touch-pan': ['y', 'up', 'down']\n      }],\n      /**\n       * Touch Action Pinch Zoom\n       * @see https://tailwindcss.com/docs/touch-action\n       */\n      'touch-pz': ['touch-pinch-zoom'],\n      /**\n       * User Select\n       * @see https://tailwindcss.com/docs/user-select\n       */\n      select: [{\n        select: ['none', 'text', 'all', 'auto']\n      }],\n      /**\n       * Will Change\n       * @see https://tailwindcss.com/docs/will-change\n       */\n      'will-change': [{\n        'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n      }],\n      // -----------\n      // --- SVG ---\n      // -----------\n      /**\n       * Fill\n       * @see https://tailwindcss.com/docs/fill\n       */\n      fill: [{\n        fill: ['none', ...scaleColor()]\n      }],\n      /**\n       * Stroke Width\n       * @see https://tailwindcss.com/docs/stroke-width\n       */\n      'stroke-w': [{\n        stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n      }],\n      /**\n       * Stroke\n       * @see https://tailwindcss.com/docs/stroke\n       */\n      stroke: [{\n        stroke: ['none', ...scaleColor()]\n      }],\n      // ---------------------\n      // --- Accessibility ---\n      // ---------------------\n      /**\n       * Forced Color Adjust\n       * @see https://tailwindcss.com/docs/forced-color-adjust\n       */\n      'forced-color-adjust': [{\n        'forced-color-adjust': ['auto', 'none']\n      }]\n    },\n    conflictingClassGroups: {\n      overflow: ['overflow-x', 'overflow-y'],\n      overscroll: ['overscroll-x', 'overscroll-y'],\n      inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n      'inset-x': ['right', 'left'],\n      'inset-y': ['top', 'bottom'],\n      flex: ['basis', 'grow', 'shrink'],\n      gap: ['gap-x', 'gap-y'],\n      p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n      px: ['pr', 'pl'],\n      py: ['pt', 'pb'],\n      m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n      mx: ['mr', 'ml'],\n      my: ['mt', 'mb'],\n      size: ['w', 'h'],\n      'font-size': ['leading'],\n      'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n      'fvn-ordinal': ['fvn-normal'],\n      'fvn-slashed-zero': ['fvn-normal'],\n      'fvn-figure': ['fvn-normal'],\n      'fvn-spacing': ['fvn-normal'],\n      'fvn-fraction': ['fvn-normal'],\n      'line-clamp': ['display', 'overflow'],\n      rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n      'rounded-s': ['rounded-ss', 'rounded-es'],\n      'rounded-e': ['rounded-se', 'rounded-ee'],\n      'rounded-t': ['rounded-tl', 'rounded-tr'],\n      'rounded-r': ['rounded-tr', 'rounded-br'],\n      'rounded-b': ['rounded-br', 'rounded-bl'],\n      'rounded-l': ['rounded-tl', 'rounded-bl'],\n      'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n      'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n      'border-w-x': ['border-w-r', 'border-w-l'],\n      'border-w-y': ['border-w-t', 'border-w-b'],\n      'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n      'border-color-x': ['border-color-r', 'border-color-l'],\n      'border-color-y': ['border-color-t', 'border-color-b'],\n      translate: ['translate-x', 'translate-y', 'translate-none'],\n      'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n      'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n      'scroll-mx': ['scroll-mr', 'scroll-ml'],\n      'scroll-my': ['scroll-mt', 'scroll-mb'],\n      'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n      'scroll-px': ['scroll-pr', 'scroll-pl'],\n      'scroll-py': ['scroll-pt', 'scroll-pb'],\n      touch: ['touch-x', 'touch-y', 'touch-pz'],\n      'touch-x': ['touch'],\n      'touch-y': ['touch'],\n      'touch-pz': ['touch']\n    },\n    conflictingClassGroupModifiers: {\n      'font-size': ['leading']\n    },\n    orderSensitiveModifiers: ['before', 'after', 'placeholder', 'file', 'marker', 'selection', 'first-line', 'first-letter', 'backdrop', '*', '**']\n  };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n  cacheSize,\n  prefix,\n  experimentalParseClassName,\n  extend = {},\n  override = {}\n}) => {\n  overrideProperty(baseConfig, 'cacheSize', cacheSize);\n  overrideProperty(baseConfig, 'prefix', prefix);\n  overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n  overrideConfigProperties(baseConfig.theme, override.theme);\n  overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n  overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n  overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n  overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n  mergeConfigProperties(baseConfig.theme, extend.theme);\n  mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n  mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n  mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n  mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n  return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n  if (overrideValue !== undefined) {\n    baseObject[overrideKey] = overrideValue;\n  }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n  if (overrideObject) {\n    for (const key in overrideObject) {\n      overrideProperty(baseObject, key, overrideObject[key]);\n    }\n  }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n  if (mergeObject) {\n    for (const key in mergeObject) {\n      mergeArrayProperties(baseObject, mergeObject, key);\n    }\n  }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n  const mergeValue = mergeObject[key];\n  if (mergeValue !== undefined) {\n    baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n  }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n    return twMerge(clsx(inputs));\n}\n","import * as React from \"react\"\n\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n  \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n  {\n    variants: {\n      variant: {\n        default: \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n        destructive: \"bg-destructive text-white shadow-sm hover:bg-destructive/90\",\n        outline:\n          \"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground\",\n        secondary: \"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\n        ghost: \"hover:bg-accent hover:text-accent-foreground\",\n        link: \"text-primary underline-offset-4 hover:underline\",\n      },\n      size: {\n        default: \"h-9 px-4 py-2\",\n        sm: \"h-8 px-3 text-xs\",\n        lg: \"h-10 px-8\",\n        icon: \"h-9 w-9\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n      size: \"default\",\n    },\n  }\n)\n\nexport interface ButtonProps\n  extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {\n  asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n  ({ className, variant, size, asChild = false, ...props }, ref) => {\n    const Comp = asChild ? Slot : \"button\"\n    return (\n      <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} />\n    )\n  }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","import * as React from \"react\"\n\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\nimport { type AlertDialogActionProps } from \"@radix-ui/react-alert-dialog\"\nimport { type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport { ThemeVariablesContainer } from \"../widget/widget\"\nimport { buttonVariants } from \"./button\"\n\nconst AlertDialog = AlertDialogPrimitive.Root\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\n\nconst AlertDialogOverlay = React.forwardRef<\n  React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n  <AlertDialogPrimitive.Overlay\n    className={cn(\n      \"fixed inset-0 z-50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n      className\n    )}\n    {...props}\n    ref={ref}\n  />\n))\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\n\nconst AlertDialogContent = React.forwardRef<\n  React.ElementRef<typeof AlertDialogPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => {\n  return (\n    <AlertDialogPortal>\n      <ThemeVariablesContainer className=\"r5-widget\">\n        <AlertDialogOverlay />\n        <AlertDialogPrimitive.Content\n          ref={ref}\n          className={cn(\n            \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-white p-6 drop-shadow-md duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n            className\n          )}\n          {...props}\n        />\n      </ThemeVariablesContainer>\n    </AlertDialogPortal>\n  )\n})\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\n\nconst AlertDialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n  <div className={cn(\"flex flex-col space-y-2 text-center sm:text-left\", className)} {...props} />\n)\nAlertDialogHeader.displayName = \"AlertDialogHeader\"\n\nconst AlertDialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n  <div\n    className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className)}\n    {...props}\n  />\n)\nAlertDialogFooter.displayName = \"AlertDialogFooter\"\n\nconst AlertDialogTitle = React.forwardRef<\n  React.ElementRef<typeof AlertDialogPrimitive.Title>,\n  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n  <AlertDialogPrimitive.Title\n    ref={ref}\n    className={cn(\"text-lg font-semibold\", className)}\n    {...props}\n  />\n))\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\n\nconst AlertDialogDescription = React.forwardRef<\n  React.ElementRef<typeof AlertDialogPrimitive.Description>,\n  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n  <AlertDialogPrimitive.Description\n    ref={ref}\n    className={cn(\"text-sm text-muted-foreground\", className)}\n    {...props}\n  />\n))\nAlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName\n\nexport interface ActionProps extends AlertDialogActionProps, VariantProps<typeof buttonVariants> {}\n\nconst AlertDialogAction = React.forwardRef<\n  React.ElementRef<typeof AlertDialogPrimitive.Action>,\n  ActionProps\n>(({ className, variant, ...props }, ref) => (\n  <AlertDialogPrimitive.Action\n    ref={ref}\n    className={cn(buttonVariants({ variant }), className)}\n    {...props}\n  />\n))\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\n\nconst AlertDialogCancel = React.forwardRef<\n  React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n  <AlertDialogPrimitive.Cancel\n    ref={ref}\n    className={cn(buttonVariants({ variant: \"outline\" }), \"sm:mt-0\", className)}\n    {...props}\n  />\n))\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\n\nexport {\n  AlertDialog,\n  AlertDialogAction,\n  AlertDialogCancel,\n  AlertDialogContent,\n  AlertDialogDescription,\n  AlertDialogFooter,\n  AlertDialogHeader,\n  AlertDialogOverlay,\n  AlertDialogPortal,\n  AlertDialogTitle,\n  AlertDialogTrigger,\n}\n","import React from 'react';\n\nimport { LoaderCircle, Mail, MessageSquareMore, X } from 'lucide-react';\n\nimport { MFA } from '@reachfive/identity-core';\n\nimport {\n    AlertDialog,\n    AlertDialogAction,\n    AlertDialogCancel,\n    AlertDialogContent,\n    AlertDialogDescription,\n    AlertDialogFooter,\n    AlertDialogHeader,\n    AlertDialogTitle,\n    AlertDialogTrigger,\n} from '../../components/ui/alert-dialog';\nimport { Button } from '../../components/ui/button';\nimport { createWidget } from '../../components/widget/widget';\nimport { useConfig } from '../../contexts/config';\nimport { useI18n } from '../../contexts/i18n';\nimport { useReachfive } from '../../contexts/reachfive.tsx';\nimport { dateFormat } from '../../helpers/utils.ts';\nimport { OnError, OnSuccess } from '../../types';\nimport {\n    CredentialsProviderProps,\n    useCredentials,\n    withCredentials,\n} from './contexts/credentials.tsx';\n\nconst credentialIconByType = (type: MFA.CredentialsResponse['credentials'][number]['type']) => {\n    switch (type) {\n        case 'email':\n            return <Mail className=\"bg-background w-icon h-icon stroke-textColor\" />;\n        case 'sms':\n            return <MessageSquareMore className=\"bg-background w-icon h-icon stroke-textColor\" />;\n    }\n};\n\nexport interface MfaListProps {\n    /**\n     * The authorization credential JSON Web Token (JWT) used to access the ReachFive API, less than five minutes old.\n     */\n    accessToken: string;\n    /**\n     * Callback function called when the request has succeeded.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n    /**\n     * Indicates whether delete mfa credential button is displayed\n     */\n    showRemoveMfaCredential?: boolean;\n}\n\ninterface DeleteButtonProps {\n    credential: MFA.Credential;\n    isOpen: boolean;\n    setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;\n    onDeleteCallback: (credential: MFA.Credential) => void;\n    deleteConfirmationTitle: string;\n    setDeleteConfirmationTitle: React.Dispatch<React.SetStateAction<string>>;\n}\n\nconst DeleteButton = ({\n    credential,\n    isOpen,\n    setIsOpen,\n    onDeleteCallback,\n    deleteConfirmationTitle,\n    setDeleteConfirmationTitle,\n}: DeleteButtonProps) => {\n    const i18n = useI18n();\n\n    return (\n        <AlertDialog open={isOpen} onOpenChange={setIsOpen}>\n            <AlertDialogTrigger asChild>\n                <Button\n                    variant=\"destructive\"\n                    size=\"icon\"\n                    className=\"ml-1\"\n                    onClick={_ =>\n                        setDeleteConfirmationTitle(\n                            credential.type === 'email'\n                                ? 'mfa.remove.email'\n                                : 'mfa.remove.phoneNumber'\n                        )\n                    }\n                >\n                    <X />\n                </Button>\n            </AlertDialogTrigger>\n            <AlertDialogContent>\n                <AlertDialogHeader>\n                    <AlertDialogTitle>{i18n(deleteConfirmationTitle)}</AlertDialogTitle>\n                    <AlertDialogDescription />\n                </AlertDialogHeader>\n                <AlertDialogFooter>\n                    <AlertDialogCancel>{i18n('confirmation.cancel')}</AlertDialogCancel>\n                    <AlertDialogAction\n                        variant=\"destructive\"\n                        onClick={_ => onDeleteCallback(credential)}\n                    >\n                        {i18n('confirmation.yes')}\n                    </AlertDialogAction>\n                </AlertDialogFooter>\n            </AlertDialogContent>\n        </AlertDialog>\n    );\n};\n\nexport const MfaList = withCredentials(\n    ({\n        accessToken,\n        showRemoveMfaCredential,\n        onError = (() => {}) as OnError,\n        onSuccess = (() => {}) as OnSuccess,\n    }: MfaListProps) => {\n        const [isOpen, setIsOpen] = React.useState(false);\n        const [loading, setLoading] = React.useState(false);\n        const [deleteConfirmationTitle, setDeleteConfirmationTitle] = React.useState('');\n        const i18n = useI18n();\n        const config = useConfig();\n        const client = useReachfive();\n        const { credentials, refresh } = useCredentials();\n\n        const refreshCredentials = async () => {\n            setLoading(true);\n            try {\n                await refresh();\n            } catch (error) {\n                onError(error);\n            } finally {\n                setLoading(false);\n            }\n        };\n\n        const onDelete = (credential: MFA.Credential) => {\n            switch (credential.type) {\n                case 'sms':\n                    client\n                        .removeMfaPhoneNumber({\n                            accessToken,\n                            phoneNumber: credential.phoneNumber,\n                        })\n                        .then(() => {\n                            refreshCredentials();\n                            onSuccess({ name: 'mfa_phone_number_deleted' });\n                        })\n                        .catch(onError);\n                    break;\n                case 'email':\n                    client\n                        .removeMfaEmail({ accessToken })\n                        .then(() => {\n                            refreshCredentials();\n                            onSuccess({ name: 'mfa_email_deleted' });\n                        })\n                        .catch(onError);\n                    break;\n            }\n        };\n\n        if (loading) {\n            return <LoaderCircle className=\"animate-spin\" />;\n        }\n\n        return (\n            <div>\n                {credentials.length === 0 && (\n                    <div className=\"mb-1 text-center text-textColor\">\n                        {i18n('mfaList.noCredentials')}\n                    </div>\n                )}\n                {credentials.map((credential, _) => (\n                    <div\n                        id={`credential-${credential.friendlyName}`}\n                        data-testid=\"credential\"\n                        key={`credential-${credential.friendlyName}`}\n                        className={`flex flex-col ${isOpen ? 'opacity-15' : ''}`}\n                    >\n                        <div className=\"flex flex-row items-center rounded\">\n                            <div className=\"box-border flex flex-row items-center align-middle border border-solid rounded basis-full whitespace-nowrap p-generic\">\n                                {credentialIconByType(credential.type)}\n                                <div className=\"ml-innerBlock w-max justify-items-stretch text-textColor\">\n                                    <div className=\"font-bold\">{credential.friendlyName}</div>\n                                    <div>\n                                        {MFA.isEmailCredential(credential)\n                                            ? credential.email\n                                            : MFA.isPhoneCredential(credential)\n                                              ? credential.phoneNumber\n                                              : 'N/A'}\n                                    </div>\n                                    <div>\n                                        <span>{i18n('mfaList.createdAt')}&nbsp;: </span>\n                                        <time dateTime={credential.createdAt}>\n                                            {dateFormat(credential.createdAt, config.language)}\n                                        </time>\n                                    </div>\n                                </div>\n                            </div>\n                            {showRemoveMfaCredential && (\n                                <DeleteButton\n                                    isOpen={isOpen}\n                                    setIsOpen={setIsOpen}\n                                    onDeleteCallback={onDelete}\n                                    deleteConfirmationTitle={deleteConfirmationTitle}\n                                    setDeleteConfirmationTitle={setDeleteConfirmationTitle}\n                                    credential={credential}\n                                />\n                            )}\n                        </div>\n                    </div>\n                ))}\n            </div>\n        );\n    }\n);\n\nexport type MfaListWidgetProps = {\n    /**\n     * The authorization credential JSON Web Token (JWT) used to access the ReachFive API, less than five minutes old.\n     */\n    accessToken: string;\n    /**\n     * Callback function called when the request has succeeded.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n    /**\n     * Indicates whether delete mfa credential button is displayed\n     */\n    showRemoveMfaCredential?: boolean;\n};\n\nexport default createWidget<MfaListWidgetProps, MfaListProps & CredentialsProviderProps>({\n    component: MfaList,\n    prepare: async (options, { apiClient }) => {\n        try {\n            const { credentials } = await apiClient.listMfaCredentials(options.accessToken);\n            options.onSuccess?.({\n                name: 'mfa_credentials_listed',\n                credentials,\n            });\n            return {\n                ...options,\n                credentials,\n            };\n        } catch (error) {\n            options.onError?.(error);\n            throw error;\n        }\n    },\n});\n","import React, { useEffect } from 'react';\n\nimport { LoaderCircle, X } from 'lucide-react';\n\nimport { TrustedDevice } from '@reachfive/identity-core';\n\nimport {\n    AlertDialog,\n    AlertDialogAction,\n    AlertDialogCancel,\n    AlertDialogContent,\n    AlertDialogDescription,\n    AlertDialogFooter,\n    AlertDialogHeader,\n    AlertDialogTitle,\n    AlertDialogTrigger,\n} from '../../components/ui/alert-dialog';\nimport { Button } from '../../components/ui/button';\nimport { createWidget } from '../../components/widget/widget.tsx';\nimport { useConfig } from '../../contexts/config.tsx';\nimport { useI18n } from '../../contexts/i18n.tsx';\nimport { useReachfive } from '../../contexts/reachfive.tsx';\nimport { dateFormat } from '../../helpers/utils.ts';\nimport { OnError, OnSuccess } from '../../types';\n\nexport type TrustedDeviceWidgetProps = {\n    accessToken: string;\n\n    showRemoveTrustedDevice?: boolean;\n\n    onError?: OnError;\n\n    onSuccess?: OnSuccess;\n};\n\nexport interface TrustedDeviceProps {\n    /**\n     * The authorization credential JSON Web Token (JWT) used to access the ReachFive API, less than five minutes old.\n     */\n    accessToken: string;\n\n    /**\n     * Indicates whether the delete trusted device button is displayed\n     */\n    showRemoveTrustedDevice?: boolean;\n\n    /**\n     * Callback function called when the request has succeeded.\n     */\n    onSuccess?: OnSuccess;\n\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\ninterface DeleteButtonProps {\n    device: TrustedDevice;\n    isOpen: boolean;\n    setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;\n    onDeleteCallback: (device: TrustedDevice) => void;\n}\n\nconst DeleteButton = ({ device, isOpen, setIsOpen, onDeleteCallback }: DeleteButtonProps) => {\n    const i18n = useI18n();\n\n    return (\n        <AlertDialog open={isOpen} onOpenChange={setIsOpen}>\n            <AlertDialogTrigger asChild>\n                <Button variant=\"destructive\" size=\"icon\" className=\"ml-1\">\n                    <X />\n                </Button>\n            </AlertDialogTrigger>\n            <AlertDialogContent>\n                <AlertDialogHeader>\n                    <AlertDialogTitle>{i18n('trustDevice.delete.confirmation')}</AlertDialogTitle>\n                    <AlertDialogDescription />\n                </AlertDialogHeader>\n                <AlertDialogFooter>\n                    <AlertDialogCancel>{i18n('confirmation.cancel')}</AlertDialogCancel>\n                    <AlertDialogAction\n                        variant=\"destructive\"\n                        onClick={_ => onDeleteCallback(device)}\n                    >\n                        {i18n('confirmation.yes')}\n                    </AlertDialogAction>\n                </AlertDialogFooter>\n            </AlertDialogContent>\n        </AlertDialog>\n    );\n};\n\nexport const TrustedDeviceList = ({\n    accessToken,\n    showRemoveTrustedDevice,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n}: TrustedDeviceProps) => {\n    const [isOpen, setIsOpen] = React.useState(false);\n    const [trustedDevices, setTrustedDevices] = React.useState<TrustedDevice[]>([]);\n    const [loading, setLoading] = React.useState(true);\n\n    const i18n = useI18n();\n    const config = useConfig();\n    const client = useReachfive();\n\n    const fetchTrustedDevices = () => {\n        setLoading(true);\n        client\n            .listTrustedDevices(accessToken)\n            .then(response => {\n                setTrustedDevices(response.trustedDevices);\n                onSuccess({ name: 'mfa_trusted_device_listed', devices: response.trustedDevices });\n            })\n            .catch(onError)\n            .finally(() => setLoading(false));\n    };\n\n    useEffect(() => {\n        fetchTrustedDevices();\n    }, [accessToken]);\n\n    const onDelete = (device: TrustedDevice) => {\n        client\n            .removeTrustedDevice({\n                accessToken: accessToken,\n                trustedDeviceId: device.id,\n            })\n            .then(() => {\n                fetchTrustedDevices();\n                onSuccess({ name: 'mfa_trusted_device_deleted', device });\n            })\n            .catch(onError);\n    };\n\n    if (loading) {\n        return <LoaderCircle className=\"animate-spin\" />;\n    }\n\n    return (\n        <div>\n            {trustedDevices.length === 0 && (\n                <div className=\"mb-1 text-center text-theme\">{i18n('trustedDevices.empty')}</div>\n            )}\n            {trustedDevices.map((trustedDevice, _) => (\n                <div\n                    id={`trusted-device-${trustedDevice.id}`}\n                    key={`trusted-device-${trustedDevice.id}`}\n                    className={`flex items-center ${isOpen ? 'opacity-15' : ''}`}\n                    data-testid=\"trustedDevice\"\n                >\n                    <div className=\"flex text-theme flex-col items-center basis-full line-height-1 align-middle whitespace-nowrap box-border p-[calc(var(--padding-y)*1px)] border-solid border-[calc(var(--border-width)*1px)] rounded-[calc(var(--border-radius)*1px)]\">\n                        <div className=\"font-bold \">{trustedDevice.metadata.deviceName}</div>\n                        <div className=\"font-bold\">{trustedDevice.metadata.ip}</div>\n                        <div className=\"font-bold\">{trustedDevice.metadata.deviceClass}</div>\n                        <div className=\"font-bold\">{trustedDevice.metadata.operatingSystem}</div>\n                        <div className=\"font-bold\">{trustedDevice.metadata.userAgent}</div>\n                        <div>\n                            <span>{i18n('mfaList.createdAt')}&nbsp;: </span>\n                            <time dateTime={trustedDevice.createdAt}>\n                                {dateFormat(trustedDevice.createdAt, config.language)}\n                            </time>\n                        </div>\n                    </div>\n                    {showRemoveTrustedDevice && (\n                        <DeleteButton\n                            device={trustedDevice}\n                            isOpen={isOpen}\n                            setIsOpen={setIsOpen}\n                            onDeleteCallback={onDelete}\n                        />\n                    )}\n                </div>\n            ))}\n        </div>\n    );\n};\n\nexport default createWidget<TrustedDeviceWidgetProps, TrustedDeviceProps>({\n    component: TrustedDeviceList,\n});\n","import React, { ComponentProps, useLayoutEffect } from 'react';\n\nimport { AuthOptions, AuthResult, SingleFactorPasswordlessParams } from '@reachfive/identity-core';\n\nimport { CaptchaProvider, WithCaptchaProps, type WithCaptchaToken } from '../../components/captcha';\nimport phoneNumberField, {\n    type PhoneNumberOptions,\n} from '../../components/form/fields/phoneNumberField';\nimport { simpleField } from '../../components/form/fields/simpleField';\nimport { createForm } from '../../components/form/formComponent';\nimport { SocialButtons } from '../../components/form/socialButtonsComponent';\nimport { Info, Intro, Separator } from '../../components/miscComponent';\nimport { importGoogleRecaptchaScript } from '../../components/reCaptcha';\nimport { createMultiViewWidget } from '../../components/widget/widget';\nimport { useConfig } from '../../contexts/config';\nimport { useI18n } from '../../contexts/i18n';\nimport { useReachfive } from '../../contexts/reachfive';\nimport { useRouting } from '../../contexts/routing';\nimport { email } from '../../core/validation';\n\nimport type { Config, OnError, OnSuccess, Prettify } from '../../types';\n\ntype EmailFormData = { email: string; captchaToken?: string };\n\nconst EmailInputForm = createForm<EmailFormData>({\n    prefix: 'r5-passwordless-',\n    fields: [\n        simpleField({\n            key: 'email',\n            label: 'email',\n            type: 'email',\n            validator: email,\n        }),\n    ],\n});\n\ntype PhoneNumberFormData = { phoneNumber: string; captchaToken?: string };\n\nconst phoneNumberInputForm = (config: Config) =>\n    createForm<PhoneNumberFormData, { phoneNumberOptions?: PhoneNumberOptions }>({\n        prefix: 'r5-passwordless-sms-',\n        fields: ({ phoneNumberOptions }) => [\n            phoneNumberField(\n                {\n                    required: true,\n                    ...phoneNumberOptions,\n                },\n                config\n            ),\n        ],\n    });\n\ntype VerificationCodeFormData = { verificationCode: string };\n\nconst VerificationCodeInputForm = createForm<VerificationCodeFormData>({\n    prefix: 'r5-passwordless-sms-',\n    fields: [\n        simpleField({\n            key: 'verification_code',\n            label: 'verificationCode',\n            type: 'text',\n        }),\n    ],\n});\n\ninterface MainViewProps {\n    /**\n     * List of authentication options\n     */\n    auth?: AuthOptions;\n    /**\n     * The passwordless auth type (`magic_link` or `sms`).\n     * @default \"magic_link\"\n     */\n    authType?: SingleFactorPasswordlessParams['authType'];\n    /**\n     * Show the introduction text.\n     * @default true\n     */\n    showIntro?: boolean;\n    /**\n     * Show the social login buttons.\n     * @default false\n     */\n    showSocialLogins?: boolean;\n    /**\n     * Lists the available social providers. This is an array of strings.\n     *\n     * Tip:  If you pass an empty array, social providers will not be displayed.\n     */\n    socialProviders?: string[];\n    /**\n     * Phone number field options.\n     */\n    phoneNumberOptions?: PhoneNumberOptions;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\nconst MainView = ({\n    auth,\n    authType = 'magic_link',\n    recaptcha_enabled = false,\n    recaptcha_site_key,\n    captchaFoxEnabled = false,\n    captchaFoxMode = 'hidden',\n    captchaFoxSiteKey,\n    showIntro = true,\n    showSocialLogins = false,\n    socialProviders,\n    phoneNumberOptions,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n}: WithCaptchaProps<MainViewProps>) => {\n    const coreClient = useReachfive();\n    const config = useConfig();\n    const i18n = useI18n();\n    const { goTo } = useRouting();\n\n    useLayoutEffect(() => {\n        importGoogleRecaptchaScript(recaptcha_site_key);\n    }, [recaptcha_site_key]);\n\n    const callback = (data: WithCaptchaToken<EmailFormData | PhoneNumberFormData>) =>\n        coreClient\n            .startPasswordless(\n                {\n                    authType,\n                    ...data,\n                },\n                auth\n            )\n            .then(() => data);\n\n    const handleSuccess = (data: EmailFormData | PhoneNumberFormData) => {\n        onSuccess({ name: 'otp_sent', authType });\n        if ('email' in data) {\n            goTo('emailSent');\n        } else {\n            goTo<VerificationCodeViewState>('verificationCode', data);\n        }\n    };\n\n    const isEmail = authType === 'magic_link';\n    const PhoneNumberInputForm = phoneNumberInputForm(config);\n\n    return (\n        <div>\n            {showSocialLogins && socialProviders && socialProviders.length > 0 && (\n                <SocialButtons\n                    providers={socialProviders}\n                    auth={auth}\n                    onSuccess={onSuccess}\n                    onError={onError}\n                />\n            )}\n            {showSocialLogins && socialProviders && socialProviders.length > 0 && (\n                <Separator text={i18n('or')} />\n            )}\n            {isEmail && showIntro && <Intro>{i18n('passwordless.intro')}</Intro>}\n            {isEmail && (\n                <CaptchaProvider\n                    recaptcha_enabled={recaptcha_enabled}\n                    recaptcha_site_key={recaptcha_site_key}\n                    captchaFoxEnabled={captchaFoxEnabled}\n                    captchaFoxSiteKey={captchaFoxSiteKey}\n                    captchaFoxMode={captchaFoxMode}\n                    action=\"passwordless_email\"\n                >\n                    <EmailInputForm\n                        handler={callback}\n                        onSuccess={handleSuccess}\n                        onError={onError}\n                    />\n                </CaptchaProvider>\n            )}\n            {!isEmail && showIntro && <Intro>{i18n('passwordless.sms.intro')}</Intro>}\n            {!isEmail && (\n                <CaptchaProvider\n                    recaptcha_enabled={recaptcha_enabled}\n                    recaptcha_site_key={recaptcha_site_key}\n                    captchaFoxEnabled={captchaFoxEnabled}\n                    captchaFoxSiteKey={captchaFoxSiteKey}\n                    captchaFoxMode={captchaFoxMode}\n                    action=\"passwordless_phone\"\n                >\n                    <PhoneNumberInputForm\n                        handler={callback}\n                        onSuccess={handleSuccess}\n                        onError={onError}\n                        phoneNumberOptions={phoneNumberOptions}\n                    />\n                </CaptchaProvider>\n            )}\n        </div>\n    );\n};\n\ninterface VerificationCodeViewProps {\n    /**\n     * The passwordless auth type (`magic_link` or `sms`).\n     * @default \"magic_link\"\n     */\n    authType?: SingleFactorPasswordlessParams['authType'];\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\ntype VerificationCodeViewState = {\n    phoneNumber: string;\n};\n\nconst VerificationCodeView = ({\n    authType = 'magic_link',\n    recaptcha_enabled = false,\n    recaptcha_site_key,\n    captchaFoxEnabled = false,\n    captchaFoxMode = 'hidden',\n    captchaFoxSiteKey,\n    onSuccess = (() => {}) as OnSuccess,\n    onError = (() => {}) as OnError,\n}: WithCaptchaProps<VerificationCodeViewProps>) => {\n    const coreClient = useReachfive();\n    const i18n = useI18n();\n    const { params } = useRouting();\n    const { phoneNumber } = params as VerificationCodeViewState;\n\n    const handleSubmit = (data: WithCaptchaToken<VerificationCodeFormData>) => {\n        return coreClient\n            .verifyPasswordless({\n                authType,\n                phoneNumber,\n                ...data,\n            })\n            .then(result => {\n                if (AuthResult.isAuthResult(result)) {\n                    onSuccess({\n                        name: 'login',\n                        authResult: result,\n                        authType,\n                        identifierType: 'phone_number',\n                    });\n                } else {\n                    onError();\n                }\n            })\n            .catch(onError);\n    };\n\n    return (\n        <div>\n            <CaptchaProvider\n                recaptcha_enabled={recaptcha_enabled}\n                recaptcha_site_key={recaptcha_site_key}\n                captchaFoxEnabled={captchaFoxEnabled}\n                captchaFoxSiteKey={captchaFoxSiteKey}\n                captchaFoxMode={captchaFoxMode}\n                action=\"verify_passwordless_sms\"\n            >\n                <Info>{i18n('passwordless.sms.verification.intro')}</Info>\n                <VerificationCodeInputForm handler={handleSubmit} onError={onError} />\n            </CaptchaProvider>\n        </div>\n    );\n};\n\nconst EmailSentView = () => {\n    const i18n = useI18n();\n    return <Info>{i18n('passwordless.emailSent')}</Info>;\n};\n\nexport type PasswordlessWidgetProps = Prettify<\n    ComponentProps<typeof MainView> & ComponentProps<typeof VerificationCodeView>\n>;\n\nexport default createMultiViewWidget<PasswordlessWidgetProps>({\n    initialView: 'main',\n    views: {\n        main: MainView,\n        emailSent: EmailSentView,\n        verificationCode: VerificationCodeView,\n    },\n    prepare: (options, { config }) => ({\n        socialProviders: config.socialProviders,\n        ...options,\n    }),\n});\n","import React from 'react';\n\nimport { Heading, Info, Link } from '../../components/miscComponent';\nimport { createMultiViewWidget } from '../../components/widget/widget';\nimport { useI18n } from '../../contexts/i18n';\nimport { useReachfive } from '../../contexts/reachfive';\nimport { useRouting } from '../../contexts/routing';\nimport { parseQueryString } from '../../helpers/queryString';\nimport { PasswordEditorForm, PasswordEditorFormData } from '../passwordEditor/passwordEditorWidget';\n\nimport type { OnError, OnSuccess } from '../../types';\n\ninterface MainViewProps {\n    /**\n     * Whether or not to provide the display password in clear text option.\n     * @default false\n     */\n    canShowPassword?: boolean;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n    /**\n     * Whether the form fields' labels are displayed on the form view.\n     * @default false\n     */\n    showLabels?: boolean;\n}\n\nconst MainView = ({\n    authentication,\n    canShowPassword = false,\n    onSuccess = (() => {}) as OnSuccess,\n    onError = (() => {}) as OnError,\n    showLabels = false,\n}: PropsWithAuthentication<MainViewProps>) => {\n    const coreClient = useReachfive();\n    const i18n = useI18n();\n    const { goTo } = useRouting();\n\n    const handleSubmit = ({ password }: PasswordEditorFormData) => {\n        return coreClient.updatePassword({\n            password,\n            ...authentication,\n        });\n    };\n\n    const handleSuccess = () => {\n        onSuccess({ name: 'password_changed' });\n        goTo('success');\n    };\n\n    return (\n        <div>\n            <Heading>{i18n('passwordReset.title')}</Heading>\n            <Info>{i18n('passwordReset.intro')}</Info>\n            <PasswordEditorForm\n                handler={handleSubmit}\n                canShowPassword={canShowPassword}\n                showLabels={showLabels}\n                onSuccess={handleSuccess}\n                onError={onError}\n            />\n        </div>\n    );\n};\n\ninterface SuccessViewProps {\n    loginLink?: string;\n}\n\nconst SuccessView = ({ loginLink }: SuccessViewProps) => {\n    const i18n = useI18n();\n    return (\n        <div>\n            <Heading>{i18n('passwordReset.successTitle')}</Heading>\n            <Info>{i18n('passwordReset.successMessage')}</Info>\n            {loginLink && (\n                <Info>\n                    <Link href={loginLink}>{i18n('passwordReset.loginLink')}</Link>\n                </Info>\n            )}\n        </div>\n    );\n};\n\nconst resolveCode = () => {\n    const qs = window.location.search.substring(1);\n    const { verificationCode, email } = parseQueryString(qs);\n    return { authentication: { verificationCode, email } as Authentication };\n};\n\ntype Authentication = { verificationCode: string; email: string };\ntype PropsWithAuthentication<P> = P & { authentication?: Authentication };\n\nexport interface PasswordResetWidgetProps extends MainViewProps, SuccessViewProps {}\n\nexport default createMultiViewWidget<\n    PasswordResetWidgetProps,\n    PropsWithAuthentication<PasswordResetWidgetProps>\n>({\n    initialView: 'main',\n    views: {\n        main: MainView,\n        success: SuccessView,\n    },\n    prepare: options => ({\n        ...options,\n        ...resolveCode(),\n    }),\n});\n","import React, { useMemo } from 'react';\n\nimport phoneNumberField, {\n    type PhoneNumberOptions,\n} from '../../components/form/fields/phoneNumberField';\nimport { simpleField } from '../../components/form/fields/simpleField';\nimport { createForm } from '../../components/form/formComponent';\nimport { Info, Intro } from '../../components/miscComponent';\nimport { createMultiViewWidget } from '../../components/widget/widget';\nimport { useConfig } from '../../contexts/config';\nimport { useI18n } from '../../contexts/i18n';\nimport { useReachfive } from '../../contexts/reachfive';\nimport { useRouting } from '../../contexts/routing';\n\nimport type { Config, Prettify, OnError, OnSuccess } from '../../types';\n\ntype PhoneNumberFormData = { phoneNumber: string };\n\nconst phoneNumberInputForm = (config: Config) =>\n    createForm<PhoneNumberFormData, { phoneNumberOptions?: PhoneNumberOptions }>({\n        prefix: 'r5-phonenumber-editor-',\n        fields: ({ phoneNumberOptions }) => [\n            phoneNumberField(\n                {\n                    required: true,\n                    ...phoneNumberOptions,\n                },\n                config\n            ),\n        ],\n    });\n\ntype VerificationCodeFormData = { verificationCode: string };\n\nconst VerificationCodeInputForm = createForm<VerificationCodeFormData>({\n    prefix: 'r5-phonenumber-editor-',\n    fields: [\n        simpleField({\n            key: 'verification_code',\n            label: 'verificationCode',\n            type: 'text',\n        }),\n    ],\n});\n\ninterface MainViewProps {\n    /**\n     * The authorization credential JSON Web Token (JWT) used to access the ReachFive API, less than five minutes old.\n     */\n    accessToken: string;\n    /**\n     * Whether the form fields's labels are displayed on the login view.\n     *\n     * @default false\n     */\n    showLabels?: boolean;\n    /**\n     * Phone number field options.\n     */\n    phoneNumberOptions?: PhoneNumberOptions;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n    /**\n     * Callback function called when the request has succeeded\n     */\n    onSuccess?: OnSuccess;\n}\n\nconst MainView = ({\n    accessToken,\n    showLabels = false,\n    phoneNumberOptions,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n}: MainViewProps) => {\n    const coreClient = useReachfive();\n    const config = useConfig();\n    const i18n = useI18n();\n    const { goTo } = useRouting();\n\n    const handleSubmit = (data: PhoneNumberFormData) => {\n        return coreClient\n            .updatePhoneNumber({\n                ...data,\n                accessToken,\n            })\n            .then(() => {\n                onSuccess({ name: 'phone_number_updated' });\n                return data;\n            });\n    };\n\n    const handleSuccess = (data: PhoneNumberFormData) =>\n        goTo<VerificationCodeViewState>('verificationCode', data);\n\n    const PhoneNumberInputForm = useMemo(() => phoneNumberInputForm(config), [config]);\n\n    return (\n        <div>\n            <Intro>{i18n('phoneNumberEditor.intro')}</Intro>\n            <PhoneNumberInputForm\n                showLabels={showLabels}\n                handler={handleSubmit}\n                onSuccess={handleSuccess}\n                onError={onError}\n                phoneNumberOptions={phoneNumberOptions}\n            />\n        </div>\n    );\n};\n\ntype VerificationCodeViewProps = {\n    /**\n     * The authorization credential JSON Web Token (JWT) used to access the ReachFive API, less than five minutes old.\n     */\n    accessToken: string;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n};\n\ntype VerificationCodeViewState = {\n    /**\n     * The phone number to verify.\n     */\n    phoneNumber: string;\n};\n\nconst VerificationCodeView = ({\n    accessToken,\n    onSuccess = (() => {}) as OnSuccess,\n    onError = (() => {}) as OnError,\n}: VerificationCodeViewProps) => {\n    const coreClient = useReachfive();\n    const i18n = useI18n();\n    const { params } = useRouting();\n    const { phoneNumber } = params as VerificationCodeViewState;\n\n    const handleSubmit = (data: VerificationCodeFormData) => {\n        return coreClient.verifyPhoneNumber({\n            ...data,\n            phoneNumber,\n            accessToken,\n        });\n    };\n\n    return (\n        <div>\n            <Info>{i18n('phoneNumberEditor.verification.intro')}</Info>\n            <VerificationCodeInputForm\n                handler={handleSubmit}\n                onSuccess={() => onSuccess({ name: 'phone_number_verified', phoneNumber })}\n                onError={onError}\n            />\n        </div>\n    );\n};\n\nexport type PhoneNumberEditorWidgetProps = Prettify<MainViewProps & VerificationCodeViewProps>;\n\nexport default createMultiViewWidget<PhoneNumberEditorWidgetProps>({\n    initialView: 'main',\n    views: {\n        main: MainView,\n        verificationCode: VerificationCodeView,\n    },\n});\n","import React from 'react';\n\nimport { ConsentVersions, Profile, UserConsent } from '@reachfive/identity-core';\n\nimport { FieldCreator } from '../../components/form/fieldCreator';\nimport { PhoneNumberOptions } from '../../components/form/fields/phoneNumberField';\nimport { createForm } from '../../components/form/formComponent';\nimport { Field, buildFormFields } from '../../components/form/formFieldFactory';\nimport { createWidget } from '../../components/widget/widget';\nimport { useReachfive } from '../../contexts/reachfive';\nimport { UserError } from '../../helpers/errors';\nimport { camelCaseProperties } from '../../helpers/transformObjectProperties';\n\nimport type { OnError, OnSuccess } from '../../types';\n\ntype ProfileWithConsents = Profile & { consents?: Record<string, UserConsent> };\n\nconst ProfileEditorForm = createForm<ProfileWithConsents>({\n    prefix: 'r5-profile-editor-',\n    supportMultipleSubmits: true,\n    submitLabel: 'save',\n});\n\ninterface ProfileEditorProps {\n    /**\n     * The authorization credential JSON Web Token (JWT) used to access the ReachFive API, less than five minutes old.\n     */\n    accessToken: string;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n    /**\n     * Phone number field options.\n     */\n    phoneNumberOptions?: PhoneNumberOptions;\n    /**\n     *\n     */\n    profile: ProfileWithConsents;\n    /**\n     * The URL sent in the email to which the user is redirected.\n     * This URL must be whitelisted in the `Allowed Callback URLs` field of your ReachFive client settings.\n     */\n    redirectUrl?: string;\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    resolvedFields: FieldCreator<any, any, any, any>[];\n    /**\n     * Whether the form fields' labels are displayed on the form view.\n     * @default false\n     */\n    showLabels?: boolean;\n}\n\nconst ProfileEditor = ({\n    accessToken,\n    onSuccess = (() => {}) as OnSuccess,\n    onError = (() => {}) as OnError,\n    phoneNumberOptions,\n    profile,\n    redirectUrl,\n    resolvedFields,\n    showLabels = false,\n}: ProfileEditorProps) => {\n    const coreClient = useReachfive();\n\n    const handleSubmit = (data: ProfileWithConsents) =>\n        coreClient.updateProfile({\n            data,\n            accessToken: accessToken,\n            redirectUrl: redirectUrl,\n        });\n\n    return (\n        <ProfileEditorForm\n            handler={handleSubmit}\n            initialModel={profile}\n            fields={resolvedFields}\n            sharedProps={{\n                ...phoneNumberOptions,\n            }}\n            showLabels={showLabels}\n            onSuccess={() => onSuccess({ name: 'user_updated' })}\n            onError={onError}\n        />\n    );\n};\n\nexport interface ProfileEditorWidgetProps extends Omit<\n    ProfileEditorProps,\n    'profile' | 'resolvedFields'\n> {\n    /**\n     * List of the fields to display in the form.\n     *\n     * **Important:**\n     *\n     * The following fields can not be changed with this widget:\n     * - `password`\n     * - `password_confirmation`\n     *\n     * It is not possible to update the primary identifier submitted at registration (email or phone number). When the primary identifier is the email address (SMS feature disabled), users can only enter a phone number and update without limit.\n     */\n    fields?: (string | Field)[];\n}\n\nexport default createWidget<ProfileEditorWidgetProps, ProfileEditorProps>({\n    component: ProfileEditor,\n    prepare: (options, { apiClient, config }) => {\n        const opts = {\n            showLabels: true,\n            fields: [],\n            ...options,\n        };\n        const { accessToken, fields = [] } = opts;\n\n        const haveNotAllowedFields = fields.some(field => {\n            const fieldName = typeof field === 'string' ? field : field.key;\n            return fieldName === 'password' || fieldName === 'password_confirmation';\n        });\n\n        if (haveNotAllowedFields) {\n            throw new UserError('These fields are not allowed: password, password_confirmation.');\n        }\n\n        // This step removes the version from the consents\n        const resolvedFields = buildFormFields(fields, {\n            ...config,\n            errorArchivedConsents: false,\n        });\n\n        return (\n            apiClient\n                .getUser({\n                    accessToken,\n                    fields: resolvedFields.map(({ path }) => path).join(','),\n                })\n                /**\n                 * @todo this can be removed when https://github.com/ReachFive/identity-web-core-sdk/pull/260 will be merged\n                 * L'idéal serait que la clé d'un consentement soit en valeur d'une propriété \"key\" et non une clé de la structure Map utilisée.\n                 * le mieux serait même que `consents` soit un array et non un map.\n                 * Mais bon, difficile de changer ça maintenant sans créer un breaking change pour les utilisateurs de l'api ou du sdk core...\n                 */\n                .then(\n                    ({ consents, ...profile }) =>\n                        ({\n                            ...profile,\n                            consents: consents\n                                ? Object.fromEntries(\n                                      Object.entries(consents).map(([key, value]) => [\n                                          key,\n                                          camelCaseProperties(value) as UserConsent,\n                                      ])\n                                  )\n                                : undefined,\n                        }) as Profile\n                ) /** @todo check api response key format in sdk core */\n                .then((profile: Profile) => {\n                    const filteredProfileConsents =\n                        profile.consents && Object.keys(profile.consents).length > 0\n                            ? filterProfileConsents(\n                                  fields,\n                                  config.consentsVersions,\n                                  profile.consents\n                              )\n                            : undefined;\n                    const filteredOutConsentsProfile = {\n                        ...profile,\n                        consents: filteredProfileConsents,\n                    };\n                    return {\n                        ...opts,\n                        profile: filteredOutConsentsProfile,\n                        resolvedFields: resolvedFields.filter(field => {\n                            return (\n                                (field.path !== 'email' || !filteredOutConsentsProfile.email) &&\n                                (field.path !== 'phone_number' ||\n                                    !config.sms ||\n                                    !filteredOutConsentsProfile.phoneNumber)\n                            );\n                        }),\n                    } satisfies ProfileEditorProps;\n                })\n                .catch((error: unknown) => {\n                    options.onError?.(error);\n                    // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n                    return Promise.reject(error);\n                })\n        );\n    },\n});\n\n// Filter out the profile consents with different version than the one the given consent field own\nconst filterProfileConsents = (\n    fields: (string | Field)[],\n    consentsVersions: Record<string, ConsentVersions>,\n    profileConsents: Record<string, UserConsent>\n) => {\n    return Object.keys(profileConsents)\n        .filter(profileConsentKey => {\n            const consentField = fields\n                .map(f => (typeof f === 'string' ? f : f.key))\n                .find(field => field.startsWith(`consents.${profileConsentKey}`));\n            const consentFieldSplit = consentField ? consentField.split('.v') : [];\n            // Find most recent consent version if not given\n            const highestConsentVersion = consentsVersions[profileConsentKey].versions[0].versionId;\n            const consentFieldVersion = parseInt(consentFieldSplit[1]) || highestConsentVersion;\n            const profileConsentVersion =\n                profileConsents[profileConsentKey].consentVersion?.versionId;\n            return !consentFieldVersion || consentFieldVersion === profileConsentVersion;\n        })\n        .reduce<Record<string, UserConsent>>((filteredProfileConsents, consentKey) => {\n            filteredProfileConsents[consentKey] = profileConsents[consentKey];\n            return filteredProfileConsents;\n        }, {});\n};\n","import { darken } from 'polished';\nimport styled from 'styled-components';\n\nexport const CloseIcon = styled.span`\n    position: absolute;\n    right: ${({ theme }) => theme.paddingY}px;\n    top: ${({ theme }) => theme.paddingY}px;\n    width: ${({ theme }) => theme._absoluteLineHeight}px;\n    height: ${({ theme }) => theme._absoluteLineHeight}px;\n    cursor: pointer;\n    box-sizing: border-box;\n    overflow: hidden;\n    &:hover {\n        &::before,\n        &::after {\n            background: ${props => darken(0.2, props.theme.mutedTextColor)};\n        }\n    }\n\n    &::before,\n    &::after {\n        content: '';\n        position: absolute;\n        height: 3px;\n        width: 75%;\n        top: 50%;\n        left: 0;\n        margin-top: -1px;\n        background: ${props => props.theme.mutedTextColor};\n        background-position: center center;\n    }\n    &::before {\n        transform: rotate(45deg);\n    }\n    &::after {\n        transform: rotate(-45deg);\n    }\n`;\n\nexport const Card = styled.div`\n    padding: ${({ theme }) => theme.paddingY}px ${({ theme }) => theme._blockInnerHeight}px;\n    border: ${({ theme }) => theme.borderWidth}px solid ${({ theme }) => theme.borderColor};\n    color: ${({ theme }) => theme.textColor};\n    box-sizing: border-box;\n    white-space: nowrap;\n    vertical-align: middle;\n    position: relative;\n\n    &:only-child {\n        border-radius: ${({ theme }) => theme.borderRadius}px;\n    }\n\n    &:not(:only-child) {\n        &:first-child {\n            border-radius: ${({ theme }) => theme.borderRadius}px\n                ${({ theme }) => theme.borderRadius}px 0 0;\n        }\n\n        &:last-child {\n            border-radius: 0 0 ${({ theme }) => theme.borderRadius}px\n                ${({ theme }) => theme.borderRadius}px;\n        }\n\n        &:not(:last-child) {\n            border-bottom-width: 0;\n        }\n    }\n`;\n","import React, { Fragment, useCallback, useEffect, useState } from 'react';\n\nimport styled from 'styled-components';\n\nimport { AuthOptions, Identity, Profile } from '@reachfive/identity-core';\n\nimport { DefaultButton } from '../../components/form/buttonComponent';\nimport { Card, CloseIcon } from '../../components/form/cardComponent';\nimport { SocialButtons } from '../../components/form/socialButtonsComponent';\nimport { Alternative, ErrorText, Info, Link, MutedText } from '../../components/miscComponent';\nimport { createMultiViewWidget } from '../../components/widget/widget';\nimport { useI18n } from '../../contexts/i18n';\nimport { useReachfive } from '../../contexts/reachfive';\nimport { useRouting } from '../../contexts/routing';\nimport { isAppError, UserError } from '../../helpers/errors';\nimport { ProviderId, providers as socialProviders } from '../../providers/providers';\n\nimport type { OnError, OnSuccess } from '../../types';\n\ntype Unlink = (id: string) => Promise<void>;\n\ninterface WithIdentitiesProps {\n    accessToken: string;\n    auth?: AuthOptions;\n    identities?: Identity[];\n    unlink: Unlink;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\nfunction findAvailableProviders(providers: string[], identities: Identity[]): string[] {\n    return providers.filter(provider => {\n        const providerName = provider.split(':').shift();\n        return identities.findIndex(i => i.provider == providerName) == -1;\n    });\n}\n\nconst withIdentities = <T extends WithIdentitiesProps = WithIdentitiesProps>(\n    WrappedComponent: React.ComponentType<T>\n) => {\n    const displayName = WrappedComponent.displayName ?? WrappedComponent.name ?? 'Component';\n\n    const ComponentWithIdentities = (props: Omit<T, 'identities' | 'unlink'>) => {\n        const coreClient = useReachfive();\n        const { goTo } = useRouting();\n        const [identities, setIdentities] = useState<Identity[]>([]);\n\n        const refresh = useCallback(() => {\n            coreClient\n                .getUser({\n                    accessToken: props.accessToken,\n                    fields: 'social_identities{id,provider,username}',\n                })\n                .then(({ socialIdentities }: Profile) => setIdentities(socialIdentities))\n                .catch(props.onError);\n        }, [props.accessToken, coreClient]);\n\n        const unlink = useCallback(\n            (identityId: string) => {\n                const prevIdentities = identities;\n                // Optimistic update\n                setIdentities(identities.filter(i => i.id !== identityId));\n                // api call + catch failure\n                return coreClient\n                    .unlink({ accessToken: props.accessToken, identityId })\n                    .then(() => props.onSuccess?.({ name: 'unlink', identityId }))\n                    .catch((error: unknown) => {\n                        props.onError?.(error);\n                        // restore previous identities\n                        setIdentities(prevIdentities);\n                        // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n                        return Promise.reject(error);\n                    });\n            },\n            [props.accessToken, coreClient, identities]\n        );\n\n        const handleAuthenticated = useCallback(() => {\n            refresh();\n            goTo('links');\n        }, [goTo, refresh]);\n\n        useEffect(() => {\n            if (props.auth?.popupMode) {\n                coreClient.on('authenticated', handleAuthenticated);\n            }\n            refresh();\n            return () => coreClient.off('authenticated', handleAuthenticated);\n        }, [coreClient, props.auth, handleAuthenticated, refresh]);\n\n        return <WrappedComponent {...(props as T)} identities={identities} unlink={unlink} />;\n    };\n\n    ComponentWithIdentities.displayName = `withIdentities(${displayName})`;\n\n    return ComponentWithIdentities;\n};\n\nconst SocialIcon = styled.span<{ icon: string }>`\n    position: absolute;\n    left: 0;\n    top: 0;\n    bottom: 0;\n    width: ${props => props.theme._blockInnerHeight}px;\n    box-sizing: border-box;\n    background-image: url(${props => props.icon});\n    background-repeat: no-repeat;\n    background-size: ${props => props.theme._absoluteLineHeight}px\n        ${props => props.theme._absoluteLineHeight}px;\n    background-position: center center;\n`;\n\ninterface IdentityListProps {\n    identities?: Identity[];\n    unlink: Unlink;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\nconst IdentityList = ({\n    identities = [],\n    onError = (() => {}) as OnError,\n    unlink,\n}: IdentityListProps) => {\n    const i18n = useI18n();\n    const [error, setError] = useState<UserError | undefined>();\n\n    const onRemove = (id: string) => {\n        unlink(id)\n            .then(() => setError(undefined))\n            .catch((error: unknown) => {\n                onError(error);\n                if (isAppError(error)) {\n                    setError(UserError.fromAppError(error));\n                }\n            });\n    };\n\n    return (\n        <div>\n            {identities.length === 0 && <Info>{i18n('socialAccounts.noLinkedAccount')}</Info>}\n            {error && (\n                <ErrorText style={{ marginBottom: '10px', textAlign: 'center' }}>\n                    {error.message}\n                </ErrorText>\n            )}\n            {identities.map(({ provider, id, username }) => {\n                const providerInfos = socialProviders[provider as ProviderId];\n                return (\n                    <Card key={id} data-testid={`identity-${provider}`}>\n                        <SocialIcon icon={providerInfos.icon} />\n                        <span>{providerInfos.name}</span>\n                        &nbsp;\n                        <MutedText>-&nbsp;{username}</MutedText>\n                        <CloseIcon\n                            title={i18n('remove')}\n                            onClick={() => onRemove(id!)}\n                            data-testid={`identity-${provider}-unlink`}\n                        />\n                    </Card>\n                );\n            })}\n        </div>\n    );\n};\n\nconst AvailableProvider = styled.div`\n    margin-top: ${props => props.theme.spacing}px;\n`;\n\ninterface SocialAccountsProps {\n    accessToken: string;\n    auth?: AuthOptions;\n    identities?: Identity[];\n    providers: string[];\n    unlink: Unlink;\n}\n\nconst SocialAccounts = withIdentities(\n    ({ identities = [], providers, unlink }: SocialAccountsProps) => {\n        const i18n = useI18n();\n        const { goTo } = useRouting();\n        const availableProviders = findAvailableProviders(providers, identities);\n        return (\n            <Fragment>\n                <IdentityList identities={identities} unlink={unlink} />\n                {availableProviders.length > 0 && (\n                    <AvailableProvider>\n                        <DefaultButton onClick={() => goTo('link-account')}>\n                            {i18n('socialAccounts.linkNewAccount')}\n                        </DefaultButton>\n                    </AvailableProvider>\n                )}\n            </Fragment>\n        );\n    }\n);\n\ninterface LinkAccountProps {\n    accessToken: string;\n    auth?: AuthOptions;\n    identities?: Identity[];\n    providers: string[];\n    unlink: Unlink;\n    onSuccess?: OnSuccess;\n    onError?: OnError;\n}\n\nconst LinkAccount = withIdentities(\n    ({ auth, accessToken, identities = [], providers, onSuccess, onError }: LinkAccountProps) => {\n        const i18n = useI18n();\n        const availableProviders = findAvailableProviders(providers, identities);\n        return (\n            <Fragment>\n                <SocialButtons\n                    providers={availableProviders}\n                    auth={{ ...auth, accessToken }}\n                    onSuccess={onSuccess}\n                    onError={onError}\n                />\n                <Alternative>\n                    <Link target=\"links\">{i18n('back')}</Link>\n                </Alternative>\n            </Fragment>\n        );\n    }\n);\n\nexport interface SocialAccountsWidgetProps {\n    /**\n     * The authorization credential JSON Web Token (JWT) used to access the ReachFive API, less than five minutes old.\n     */\n    accessToken: string;\n    /**\n     * List of authentication options\n     */\n    auth?: AuthOptions;\n    /**\n     * Lists the available social providers. This is an array of strings.\n     *\n     * Tip: If you pass an empty array, social providers will not be displayed.\n     * */\n    providers?: string[];\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\ninterface SocialAccountsWidgetPropsPrepared\n    extends\n        Omit<SocialAccountsProps, 'identities' | 'unlink'>, // indentities and unlink are injected by HoC `withIdentity`\n        Omit<LinkAccountProps, 'identities' | 'unlink'> {}\n\nexport default createMultiViewWidget<SocialAccountsWidgetProps, SocialAccountsWidgetPropsPrepared>({\n    initialView: 'links',\n    views: {\n        links: SocialAccounts,\n        'link-account': LinkAccount,\n    },\n    prepare: (options, { config }) => ({\n        providers: options.providers ?? config.socialProviders,\n        ...options,\n    }),\n});\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%22240%22%20height%3D%22240%22%20viewBox%3D%220%200%20240%20240%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M239.116%20120.417C239.116%2054.4193%20185.613%200.916504%20119.616%200.916504C53.619%200.916504%200.116211%2054.4193%200.116211%20120.417C0.116211%20186.417%2053.619%20239.917%20119.616%20239.917C185.613%20239.917%20239.116%20186.417%20239.116%20120.417ZM97.8658%2054.0276C96.9263%2055.8714%2096.9263%2058.2851%2096.9263%2063.1126V90.4729C96.9263%2091.6788%2096.9263%2092.2817%2097.0785%2092.8392C97.2134%2093.3331%2097.4352%2093.799%2097.7335%2094.215C98.0702%2094.6847%2098.5381%2095.0648%2099.4741%2095.8251L106.395%20101.447C107.523%20102.364%20108.087%20102.822%20108.292%20103.374C108.471%20103.857%20108.471%20104.39%20108.292%20104.873C108.087%20105.425%20107.523%20105.883%20106.395%20106.8L99.4741%20112.422C98.5382%20113.182%2098.0702%20113.562%2097.7335%20114.032C97.4352%20114.448%2097.2134%20114.914%2097.0785%20115.408C96.9263%20115.965%2096.9263%20116.568%2096.9263%20117.774V177.719C96.9263%20182.547%2096.9263%20184.961%2097.8658%20186.805C98.6922%20188.426%20100.011%20189.745%20101.633%20190.571C103.477%20191.511%20105.89%20191.511%20110.718%20191.511H128.515C133.342%20191.511%20135.756%20191.511%20137.6%20190.571C139.221%20189.745%20140.54%20188.426%20141.367%20186.805C142.306%20184.961%20142.306%20182.547%20142.306%20177.719V150.359C142.306%20149.153%20142.306%20148.55%20142.154%20147.993C142.019%20147.499%20141.797%20147.033%20141.499%20146.617C141.162%20146.147%20140.694%20145.767%20139.758%20145.007L132.837%20139.385C131.709%20138.468%20131.145%20138.01%20130.94%20137.459C130.761%20136.975%20130.761%20136.443%20130.94%20135.959C131.145%20135.407%20131.709%20134.949%20132.837%20134.033L139.758%20128.41C140.694%20127.65%20141.162%20127.27%20141.499%20126.8C141.797%20126.384%20142.019%20125.918%20142.154%20125.424C142.306%20124.867%20142.306%20124.264%20142.306%20123.058V63.1126C142.306%2058.2851%20142.306%2055.8714%20141.367%2054.0276C140.54%2052.4057%20139.221%2051.087%20137.6%2050.2606C135.756%2049.3211%20133.342%2049.3211%20128.515%2049.3211H110.718C105.89%2049.3211%20103.477%2049.3211%20101.633%2050.2606C100.011%2051.087%2098.6922%2052.4057%2097.8658%2054.0276Z%22%20fill%3D%22%231A285F%22%2F%3E%3C%2Fsvg%3E\"","import { SocialButtons } from '../../components/form/socialButtonsComponent';\nimport { createWidget } from '../../components/widget/widget';\n\nimport type { SocialButtonsProps } from '../../components/form/socialButtonsComponent';\n\nexport interface SocialLoginWidgetProps extends Omit<SocialButtonsProps, 'providers'> {\n    /**\n     * Lists the available social providers. This is an array of strings.\n     *\n     * Tip: If you pass an empty array, social providers will not be displayed.\n     * */\n    socialProviders?: SocialButtonsProps['providers'];\n}\n\nexport default createWidget<SocialLoginWidgetProps, SocialButtonsProps>({\n    name: 'social-login',\n    standalone: false,\n    component: SocialButtons,\n    prepare: ({ socialProviders, ...options }, { config }) => ({\n        providers: (Array.isArray(socialProviders) && socialProviders) || config.socialProviders,\n        ...options,\n    }),\n});\n","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20256%20256%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22m217.36%2C90.69c-15.58%2C9.54-25.17%2C26.41-25.38%2C44.68.06%2C20.67%2C12.43%2C39.32%2C31.46%2C47.41-3.67%2C11.84-9.1%2C23.06-16.11%2C33.28-10.03%2C14.44-20.52%2C28.87-36.47%2C28.87s-20.06-9.27-38.45-9.27-24.32%2C9.57-38.9%2C9.57-24.77-13.37-36.47-29.79c-15.46-22.99-23.95-49.96-24.47-77.66%2C0-45.59%2C29.63-69.75%2C58.81-69.75%2C15.5%2C0%2C28.42%2C10.18%2C38.15%2C10.18s23.71-10.79%2C41.34-10.79c18.41-.47%2C35.84%2C8.24%2C46.5%2C23.25Zm-54.86-42.55c7.77-9.14%2C12.17-20.67%2C12.46-32.67.01-1.58-.14-3.16-.46-4.71-13.35%2C1.3-25.69%2C7.67-34.5%2C17.78-7.85%2C8.78-12.41%2C20-12.92%2C31.76%2C0%2C1.43.16%2C2.86.46%2C4.26%2C1.05.2%2C2.12.3%2C3.19.3%2C12.43-.99%2C23.91-7.04%2C31.76-16.73Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%22300%22%20height%3D%22300%22%20viewBox%3D%220%200%20300%20300%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url%28%23clip0_68_61%29%22%3E%3Cpath%20d%3D%22M300%20253.125C300%20279.023%20279.023%20300%20253.125%20300H46.875C20.9766%20300%200%20279.023%200%20253.125V46.875C0%2020.9766%2020.9766%200%2046.875%200H253.125C279.023%200%20300%2020.9766%20300%2046.875V253.125Z%22%20fill%3D%22%23175DDC%22%2F%3E%3Cpath%20d%3D%22M243.105%2037.6758C241.201%2035.7715%20238.945%2034.834%20236.367%2034.834H63.6328C61.0254%2034.834%2058.7988%2035.7715%2056.8945%2037.6758C54.9902%2039.5801%2054.0527%2041.8359%2054.0527%2044.4141V159.58C54.0527%20168.164%2055.7227%20176.689%2059.0625%20185.156C62.4023%20193.594%2066.5625%20201.094%2071.5137%20207.656C76.4648%20214.189%2082.3535%20220.576%2089.209%20226.787C96.0645%20232.998%20102.393%20238.125%20108.164%20242.227C113.965%20246.328%20120%20250.195%20126.299%20253.857C132.598%20257.52%20137.08%20259.98%20139.717%20261.27C142.354%20262.559%20144.492%20263.584%20146.074%20264.258C147.275%20264.844%20148.564%20265.166%20149.971%20265.166C151.377%20265.166%20152.666%20264.873%20153.867%20264.258C155.479%20263.555%20157.588%20262.559%20160.254%20261.27C162.891%20259.98%20167.373%20257.49%20173.672%20253.857C179.971%20250.195%20186.006%20246.328%20191.807%20242.227C197.607%20238.125%20203.936%20232.969%20210.791%20226.787C217.646%20220.576%20223.535%20214.219%20228.486%20207.656C233.438%20201.094%20237.568%20193.623%20240.938%20185.156C244.277%20176.719%20245.947%20168.193%20245.947%20159.58V44.4434C245.977%2041.8359%20245.01%2039.5801%20243.105%2037.6758ZM220.84%20160.664C220.84%20202.354%20150%20238.271%20150%20238.271V59.502H220.84C220.84%2059.502%20220.84%20118.975%20220.84%20160.664Z%22%20fill%3D%22white%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0_68_61%22%3E%3Crect%20width%3D%22300%22%20height%3D%22300%22%20fill%3D%22white%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2048%2048%22%3E%20%20%3Cdefs%3E%20%20%20%20%3ClinearGradient%20id%3D%22a%22%20x1%3D%223.2173%22%20y1%3D%2215%22%20x2%3D%2244.7812%22%20y2%3D%2215%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23d93025%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23ea4335%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22b%22%20x1%3D%2220.7219%22%20y1%3D%2247.6791%22%20x2%3D%2241.5039%22%20y2%3D%2211.6837%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23fcc934%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23fbbc04%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22c%22%20x1%3D%2226.5981%22%20y1%3D%2246.5015%22%20x2%3D%225.8161%22%20y2%3D%2210.506%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20offset%3D%220%22%20stop-color%3D%22%231e8e3e%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2334a853%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%20%20%20%20%3Cpath%20id%3D%22p%22%20d%3D%22M13.6086%2030.0031%203.218%2012.006A23.994%2023.994%200%200%200%2024.0025%2048l10.3906-17.9971-.0067-.0068a11.9852%2011.9852%200%200%201-20.7778.007Z%22%2F%3E%20%20%3C%2Fdefs%3E%20%20%20%20%3Cuse%20xlink%3Ahref%3D%22%23p%22%20fill%3D%22url%28%23a%29%22%20transform%3D%22rotate%28120%2024%2024%29%22%2F%3E%20%20%3Cuse%20xlink%3Ahref%3D%22%23p%22%20fill%3D%22url%28%23b%29%22%20transform%3D%22rotate%28-120%2024%2024%29%22%2F%3E%20%20%3Cuse%20xlink%3Ahref%3D%22%23p%22%20fill%3D%22url%28%23c%29%22%2F%3E%20%20%20%20%3Ccircle%20cx%3D%2224%22%20cy%3D%2224%22%20r%3D%2212%22%20style%3D%22fill%3A%23fff%22%2F%3E%20%20%3Ccircle%20cx%3D%2224%22%20cy%3D%2224%22%20r%3D%229.5%22%20style%3D%22fill%3A%231a73e8%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M257.474%20359.209C257.474%20356.189%20254.454%20353.169%20250.215%20351.959L199.411%20333.231C190.895%20329.601%20181.264%20333.831%20181.264%20339.89V475.779C181.264%20478.809%20184.283%20482.438%20187.303%20483.648L239.326%20502.376C247.195%20505.396%20257.474%20501.166%20257.474%20494.508V359.209Z%22%20fill%3D%22%2309363F%22%2F%3E%3Cpath%20d%3D%22M352.736%20321.103C352.736%20318.084%20349.717%20315.064%20345.477%20313.854L294.674%20295.126C286.157%20291.496%20276.526%20295.726%20276.526%20301.785V437.674C276.526%20440.704%20279.546%20444.333%20282.566%20445.543L334.589%20464.271C342.458%20467.291%20352.736%20463.061%20352.736%20456.403V321.103Z%22%20fill%3D%22%2309363F%22%2F%3E%3Cpath%20d%3D%22M257.474%2035.3211C257.474%2032.3013%20254.454%2029.2815%20250.215%2028.0717L199.411%209.34343C190.895%205.71399%20181.264%209.94358%20181.264%2016.0022V151.892C181.264%20154.921%20184.283%20158.551%20187.303%20159.76L239.326%20178.489C247.195%20181.508%20257.474%20177.279%20257.474%20170.62V35.3211Z%22%20fill%3D%22%2309363F%22%2F%3E%3Cpath%20d%3D%22M352.736%2092.4777C352.736%2089.4579%20349.717%2086.4382%20345.477%2085.2283L294.674%2066.5C286.157%2062.8706%20276.526%2067.1002%20276.526%2073.1588V209.048C276.526%20212.078%20279.546%20215.707%20282.566%20216.917L334.589%20235.645C342.458%20238.665%20352.736%20234.436%20352.736%20227.777V92.4777Z%22%20fill%3D%22%2309363F%22%2F%3E%3Cpath%20d%3D%22M448%20168.687C448%20165.667%20444.98%20162.647%20440.741%20161.437L389.937%20142.709C381.421%20139.079%20371.79%20143.309%20371.79%20149.368V361.466C371.79%20364.495%20374.81%20368.125%20377.829%20369.335L429.852%20388.063C437.721%20391.083%20448%20386.853%20448%20380.194V168.687Z%22%20fill%3D%22%2309363F%22%2F%3E%3Cpath%20d%3D%22M162.21%2035.3306C162.21%2032.3108%20159.19%2029.2815%20154.951%2028.0717L104.148%209.34343C95.6787%205.71399%2086%209.94358%2086%2016.0022V475.789C86%20478.808%2089.0198%20482.438%2092.0492%20483.648L144.063%20502.376C151.931%20505.396%20162.21%20501.166%20162.21%20494.507V35.3306Z%22%20fill%3D%22%2309363F%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20id%3D%22Layer_1%22%20data-name%3D%22Layer%201%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3Aurl%28%23linear-gradient%29%3B%7D.cls-2%7Bopacity%3A0.35%3Bfill%3Aurl%28%23radial-gradient%29%3B%7D.cls-2%2C.cls-4%7Bisolation%3Aisolate%3B%7D.cls-3%7Bfill%3Aurl%28%23linear-gradient-2%29%3B%7D.cls-4%7Bopacity%3A0.41%3Bfill%3Aurl%28%23radial-gradient-2%29%3B%7D.cls-5%7Bfill%3Aurl%28%23radial-gradient-3%29%3B%7D.cls-6%7Bfill%3Aurl%28%23radial-gradient-4%29%3B%7D%3C%2Fstyle%3E%3ClinearGradient%20id%3D%22linear-gradient%22%20x1%3D%2263.33%22%20y1%3D%2284.03%22%20x2%3D%22241.67%22%20y2%3D%2284.03%22%20gradientTransform%3D%22matrix%281%2C%200%2C%200%2C%20-1%2C%200%2C%20266%29%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%230c59a4%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23114a8b%22%2F%3E%3C%2FlinearGradient%3E%3CradialGradient%20id%3D%22radial-gradient%22%20cx%3D%22161.83%22%20cy%3D%2268.91%22%20r%3D%2295.38%22%20gradientTransform%3D%22matrix%281%2C%200%2C%200%2C%20-0.95%2C%200%2C%20248.84%29%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220.72%22%20stop-opacity%3D%220%22%2F%3E%3Cstop%20offset%3D%220.95%22%20stop-opacity%3D%220.53%22%2F%3E%3Cstop%20offset%3D%221%22%2F%3E%3C%2FradialGradient%3E%3ClinearGradient%20id%3D%22linear-gradient-2%22%20x1%3D%22157.35%22%20y1%3D%22161.39%22%20x2%3D%2245.96%22%20y2%3D%2240.06%22%20gradientTransform%3D%22matrix%281%2C%200%2C%200%2C%20-1%2C%200%2C%20266%29%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%231b9de2%22%2F%3E%3Cstop%20offset%3D%220.16%22%20stop-color%3D%22%231595df%22%2F%3E%3Cstop%20offset%3D%220.67%22%20stop-color%3D%22%230680d7%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%230078d4%22%2F%3E%3C%2FlinearGradient%3E%3CradialGradient%20id%3D%22radial-gradient-2%22%20cx%3D%22-340.29%22%20cy%3D%2262.99%22%20r%3D%22143.24%22%20gradientTransform%3D%22matrix%280.15%2C%20-0.99%2C%20-0.8%2C%20-0.12%2C%20176.64%2C%20-125.4%29%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220.76%22%20stop-opacity%3D%220%22%2F%3E%3Cstop%20offset%3D%220.95%22%20stop-opacity%3D%220.5%22%2F%3E%3Cstop%20offset%3D%221%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient%20id%3D%22radial-gradient-3%22%20cx%3D%22113.37%22%20cy%3D%22570.21%22%20r%3D%22202.43%22%20gradientTransform%3D%22matrix%28-0.04%2C%201%2C%202.13%2C%200.08%2C%20-1179.54%2C%20-106.69%29%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%2335c1f1%22%2F%3E%3Cstop%20offset%3D%220.11%22%20stop-color%3D%22%2334c1ed%22%2F%3E%3Cstop%20offset%3D%220.23%22%20stop-color%3D%22%232fc2df%22%2F%3E%3Cstop%20offset%3D%220.31%22%20stop-color%3D%22%232bc3d2%22%2F%3E%3Cstop%20offset%3D%220.67%22%20stop-color%3D%22%2336c752%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient%20id%3D%22radial-gradient-4%22%20cx%3D%22376.52%22%20cy%3D%22567.97%22%20r%3D%2297.34%22%20gradientTransform%3D%22matrix%280.28%2C%200.96%2C%200.78%2C%20-0.23%2C%20-303.76%2C%20-148.5%29%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%2366eb6e%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2366eb6e%22%20stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Ctitle%3EEdge_Logo_265x265%3C%2Ftitle%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M235.68%2C195.46a93.73%2C93.73%2C0%2C0%2C1-10.54%2C4.71%2C101.87%2C101.87%2C0%2C0%2C1-35.9%2C6.46c-47.32%2C0-88.54-32.55-88.54-74.32A31.48%2C31.48%2C0%2C0%2C1%2C117.13%2C105c-42.8%2C1.8-53.8%2C46.4-53.8%2C72.53%2C0%2C73.88%2C68.09%2C81.37%2C82.76%2C81.37%2C7.91%2C0%2C19.84-2.3%2C27-4.56l1.31-.44A128.34%2C128.34%2C0%2C0%2C0%2C241%2C201.1%2C4%2C4%2C0%2C0%2C0%2C235.68%2C195.46Z%22%20transform%3D%22translate%28-4.63%20-4.92%29%22%2F%3E%3Cpath%20class%3D%22cls-2%22%20d%3D%22M235.68%2C195.46a93.73%2C93.73%2C0%2C0%2C1-10.54%2C4.71%2C101.87%2C101.87%2C0%2C0%2C1-35.9%2C6.46c-47.32%2C0-88.54-32.55-88.54-74.32A31.48%2C31.48%2C0%2C0%2C1%2C117.13%2C105c-42.8%2C1.8-53.8%2C46.4-53.8%2C72.53%2C0%2C73.88%2C68.09%2C81.37%2C82.76%2C81.37%2C7.91%2C0%2C19.84-2.3%2C27-4.56l1.31-.44A128.34%2C128.34%2C0%2C0%2C0%2C241%2C201.1%2C4%2C4%2C0%2C0%2C0%2C235.68%2C195.46Z%22%20transform%3D%22translate%28-4.63%20-4.92%29%22%2F%3E%3Cpath%20class%3D%22cls-3%22%20d%3D%22M110.34%2C246.34A79.2%2C79.2%2C0%2C0%2C1%2C87.6%2C225%2C80.72%2C80.72%2C0%2C0%2C1%2C117.13%2C105c3.12-1.47%2C8.45-4.13%2C15.54-4a32.35%2C32.35%2C0%2C0%2C1%2C25.69%2C13%2C31.88%2C31.88%2C0%2C0%2C1%2C6.36%2C18.66c0-.21%2C24.46-79.6-80-79.6-43.9%2C0-80%2C41.66-80%2C78.21a130.15%2C130.15%2C0%2C0%2C0%2C12.11%2C56%2C128%2C128%2C0%2C0%2C0%2C156.38%2C67.11%2C75.55%2C75.55%2C0%2C0%2C1-62.78-8Z%22%20transform%3D%22translate%28-4.63%20-4.92%29%22%2F%3E%3Cpath%20class%3D%22cls-4%22%20d%3D%22M110.34%2C246.34A79.2%2C79.2%2C0%2C0%2C1%2C87.6%2C225%2C80.72%2C80.72%2C0%2C0%2C1%2C117.13%2C105c3.12-1.47%2C8.45-4.13%2C15.54-4a32.35%2C32.35%2C0%2C0%2C1%2C25.69%2C13%2C31.88%2C31.88%2C0%2C0%2C1%2C6.36%2C18.66c0-.21%2C24.46-79.6-80-79.6-43.9%2C0-80%2C41.66-80%2C78.21a130.15%2C130.15%2C0%2C0%2C0%2C12.11%2C56%2C128%2C128%2C0%2C0%2C0%2C156.38%2C67.11%2C75.55%2C75.55%2C0%2C0%2C1-62.78-8Z%22%20transform%3D%22translate%28-4.63%20-4.92%29%22%2F%3E%3Cpath%20class%3D%22cls-5%22%20d%3D%22M156.94%2C153.78c-.81%2C1.05-3.3%2C2.5-3.3%2C5.66%2C0%2C2.61%2C1.7%2C5.12%2C4.72%2C7.23%2C14.38%2C10%2C41.49%2C8.68%2C41.56%2C8.68A59.56%2C59.56%2C0%2C0%2C0%2C230.19%2C167a61.38%2C61.38%2C0%2C0%2C0%2C30.43-52.88c.26-22.41-8-37.31-11.34-43.91C228.09%2C28.76%2C182.35%2C4.92%2C132.61%2C4.92a128%2C128%2C0%2C0%2C0-128%2C126.2c.48-36.54%2C36.8-66.05%2C80-66.05%2C3.5%2C0%2C23.46.34%2C42%2C10.07%2C16.34%2C8.58%2C24.9%2C18.94%2C30.85%2C29.21%2C6.18%2C10.67%2C7.28%2C24.15%2C7.28%2C29.52S162%2C147.2%2C156.94%2C153.78Z%22%20transform%3D%22translate%28-4.63%20-4.92%29%22%2F%3E%3Cpath%20class%3D%22cls-6%22%20d%3D%22M156.94%2C153.78c-.81%2C1.05-3.3%2C2.5-3.3%2C5.66%2C0%2C2.61%2C1.7%2C5.12%2C4.72%2C7.23%2C14.38%2C10%2C41.49%2C8.68%2C41.56%2C8.68A59.56%2C59.56%2C0%2C0%2C0%2C230.19%2C167a61.38%2C61.38%2C0%2C0%2C0%2C30.43-52.88c.26-22.41-8-37.31-11.34-43.91C228.09%2C28.76%2C182.35%2C4.92%2C132.61%2C4.92a128%2C128%2C0%2C0%2C0-128%2C126.2c.48-36.54%2C36.8-66.05%2C80-66.05%2C3.5%2C0%2C23.46.34%2C42%2C10.07%2C16.34%2C8.58%2C24.9%2C18.94%2C30.85%2C29.21%2C6.18%2C10.67%2C7.28%2C24.15%2C7.28%2C29.52S162%2C147.2%2C156.94%2C153.78Z%22%20transform%3D%22translate%28-4.63%20-4.92%29%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M256.483%2028.0554C313.899%2028.0554%20371.315%2027.8856%20428.745%2028.1405C440.68%2027.9076%20452.521%2030.2889%20463.441%2035.1179C474.362%2039.9469%20484.099%2047.1073%20491.971%2056.0984C504.062%2069.6962%20511.132%2087.0387%20512%20105.23C512.028%20121.933%20510.035%20138.578%20506.063%20154.801C498.444%20198.706%20490.515%20242.527%20482.726%20286.376C476.012%20324.134%20469.581%20361.95%20462.513%20399.68C457.672%20420.969%20446.545%20440.303%20430.58%20455.165C414.616%20470.027%20394.555%20479.727%20373.011%20483.002C367.752%20483.629%20362.462%20483.946%20357.166%20483.95C290.053%20484.017%20222.94%20484.017%20155.828%20483.95C130.466%20483.9%20105.93%20474.915%2086.5132%20458.566C67.0965%20442.218%2054.0362%20419.548%2049.618%20394.525C36.1804%20319.177%2022.6297%20243.853%208.96597%20168.553C6.28034%20153.639%203.312%20138.811%201.2059%20123.784C-2.46105%20102.729%202.31093%2081.0744%2014.4852%2063.5244C26.6596%2045.9745%2045.2529%2033.9462%2066.2266%2030.0525C73.0557%2028.7451%2079.9959%2028.1094%2086.9484%2028.1546C143.46%2027.9941%20199.971%2027.961%20256.483%2028.0554ZM210.926%20339.643C210.926%20354.67%20210.926%20369.697%20210.926%20384.738C210.773%20388.205%20211.343%20391.665%20212.597%20394.899C213.852%20398.134%20215.764%20401.071%20218.213%20403.525C220.662%20405.979%20223.593%20407.895%20226.821%20409.152C230.049%20410.409%20233.503%20410.979%20236.962%20410.826C249.387%20410.826%20261.812%20410.826%20274.236%20410.826C277.922%20411.183%20281.642%20410.717%20285.127%20409.462C288.612%20408.208%20291.777%20406.196%20294.394%20403.57C297.012%20400.945%20299.017%20397.772%20300.265%20394.278C301.514%20390.785%20301.975%20387.058%20301.615%20383.364C301.615%20353.919%20301.616%20324.46%20301.474%20295.015C301.311%20293.331%20301.67%20291.637%20302.502%20290.165C303.334%20288.692%20304.599%20287.512%20306.125%20286.786C323.79%20276.298%20337.551%20260.314%20345.313%20241.266C353.075%20222.219%20354.413%20201.151%20349.123%20181.272C342.356%20156.853%20326.286%20136.075%20304.376%20123.414C282.466%20110.754%20256.469%20107.225%20231.987%20113.586C217.669%20116.544%20204.289%20122.959%20193.007%20132.274C181.726%20141.588%20172.884%20153.522%20167.249%20167.038C159.027%20188.686%20158.548%20212.521%20165.893%20234.484C173.238%20256.447%20187.954%20275.181%20207.533%20287.495C208.67%20288.038%20209.613%20288.917%20210.237%20290.013C210.861%20291.109%20211.136%20292.37%20211.025%20293.627C210.841%20309.008%20210.926%20324.333%20210.926%20339.671V339.643Z%22%20fill%3D%22%230D338F%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20enable-background%3D%22new%200%200%20192%20192%22%20height%3D%2224px%22%20viewBox%3D%220%200%20192%20192%22%20width%3D%2224px%22%3E%3Crect%20fill%3D%22none%22%20height%3D%22192%22%20width%3D%22192%22%20y%3D%220%22%2F%3E%3Cg%3E%3Cpath%20d%3D%22M69.29%2C106c-3.46%2C5.97-9.91%2C10-17.29%2C10c-11.03%2C0-20-8.97-20-20s8.97-20%2C20-20%20c7.38%2C0%2C13.83%2C4.03%2C17.29%2C10h25.55C90.3%2C66.54%2C72.82%2C52%2C52%2C52C27.74%2C52%2C8%2C71.74%2C8%2C96s19.74%2C44%2C44%2C44c20.82%2C0%2C38.3-14.54%2C42.84-34%20H69.29z%22%20fill%3D%22%234285F4%22%2F%3E%3Crect%20fill%3D%22%23FBBC04%22%20height%3D%2224%22%20width%3D%2244%22%20x%3D%2294%22%20y%3D%2284%22%2F%3E%3Cpath%20d%3D%22M94.32%2C84H68v0.05c2.5%2C3.34%2C4%2C7.47%2C4%2C11.95s-1.5%2C8.61-4%2C11.95V108h26.32%20c1.08-3.82%2C1.68-7.84%2C1.68-12S95.41%2C87.82%2C94.32%2C84z%22%20fill%3D%22%23EA4335%22%2F%3E%3Cpath%20d%3D%22M184%2C106v26h-16v-8c0-4.42-3.58-8-8-8s-8%2C3.58-8%2C8v8h-16v-26H184z%22%20fill%3D%22%2334A853%22%2F%3E%3Crect%20fill%3D%22%23188038%22%20height%3D%2224%22%20width%3D%2248%22%20x%3D%22136%22%20y%3D%2284%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20id%3D%22Layer_1%22%20data-name%3D%22Layer%201%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23f15b5c%3B%7D.cls-2%7Bfill%3A%23921b1d%3B%7D.cls-3%7Bfill%3A%23ee3025%3B%7D.cls-4%7Bfill%3A%23bb2026%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M341.87%2C100.2l-4.29-1.64c-32.31-11.81-65.36-13.27-76.92-13.4l-.89%2C0H120.12A23.43%2C23.43%2C0%2C0%2C0%2C111.6%2C87c-.41.21-.81.42-1.17.64l-1.85%2C1.76%2C133.35%2C65.8%2C103.38-52.89Z%22%2F%3E%3Cline%20class%3D%22cls-2%22%20x1%3D%22294.58%22%20y1%3D%22137.07%22%20x2%3D%22296.99%22%20y2%3D%22138.27%22%2F%3E%3Cline%20class%3D%22cls-2%22%20x1%3D%22239.53%22%20y1%3D%22152.11%22%20x2%3D%22241.93%22%20y2%3D%22153.31%22%2F%3E%3Cpath%20class%3D%22cls-3%22%20d%3D%22M106.74%2C91q-2.62%2C4.2-2.35%2C11.26t.26%2C13.37V423.21q0%2C5.76-.26%2C14.41t1.31%2C12.84a14.55%2C14.55%2C0%2C0%2C0%2C1.14%2C2.19l136-299.56L110.43%2C87.65A11.24%2C11.24%2C0%2C0%2C0%2C106.74%2C91Z%22%2F%3E%3Cpath%20class%3D%22cls-4%22%20d%3D%22M361.86%2C111.53c-2.32-1.55-4.7-3.1-7.13-4.68a93.92%2C93.92%2C0%2C0%2C0-12-6.32c-.27-.11-.55-.23-.83-.33l-99%2C52.89L387.63%2C402.31A164.07%2C164.07%2C0%2C0%2C0%2C397%2C388.12q29.82-51.21%2C29.82-125a284.83%2C284.83%2C0%2C0%2C0-7.08-61.25%2C164.16%2C164.16%2C0%2C0%2C0-26.53-59.75%2C134.9%2C134.9%2C0%2C0%2C0-9.05-11.38A153.2%2C153.2%2C0%2C0%2C0%2C361.86%2C111.53Z%22%2F%3E%3Cpath%20class%3D%22cls-2%22%20d%3D%22M106.65%2C452.34a10.07%2C10.07%2C0%2C0%2C0%2C7.69%2C5.19l1.74.2h156c50.27%2C0%2C88.64-18.69%2C115.52-55.42L242.89%2C153.09Z%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%20128%20128%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22e%22%20x1%3D%2263.9998%22%20y1%3D%22-3.314%22%20x2%3D%2263.9998%22%20y2%3D%22118.486%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23414141%22%2F%3E%3Cstop%20offset%3D%22.196%22%20stop-color%3D%22%233e3e3e%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%233a3a3a%22%2F%3E%3C%2FlinearGradient%3E%3CradialGradient%20id%3D%22g%22%20cx%3D%22302.8014%22%20cy%3D%22-375.5301%22%20fx%3D%22302.8014%22%20fy%3D%22-375.5301%22%20r%3D%22207.2339%22%20gradientTransform%3D%22translate%28-46.999%20185.5275%29%20scale%28.3539%29%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%22.6733%22%20stop-color%3D%22%23fcfcfc%22%20stop-opacity%3D%220%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23fcfcfc%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient%20id%3D%22i%22%20cx%3D%22311.1472%22%20cy%3D%22-348.2325%22%20fx%3D%22311.1472%22%20fy%3D%22-348.2325%22%20r%3D%22172.3893%22%20gradientTransform%3D%22translate%28-46.999%20185.5275%29%20scale%28.3539%29%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%22.1088%22%20stop-color%3D%22%230f0f0d%22%20stop-opacity%3D%220%22%2F%3E%3Cstop%20offset%3D%22.8856%22%20stop-color%3D%22%23414141%22%20stop-opacity%3D%220%22%2F%3E%3Cstop%20offset%3D%22.9339%22%20stop-color%3D%22%231e1e1d%22%20stop-opacity%3D%22.6841%22%2F%3E%3Cstop%20offset%3D%22.9874%22%20stop-color%3D%22%230f0f0d%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient%20id%3D%22n%22%20cx%3D%22316.8927%22%20cy%3D%22-451.5973%22%20fx%3D%22316.8927%22%20fy%3D%22-451.5973%22%20r%3D%22334.8364%22%20gradientTransform%3D%22translate%28-46.999%20117.9256%29%20scale%28.3539%20.2026%29%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%232e6b26%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%236ab536%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient%20id%3D%22p%22%20cx%3D%22314.3875%22%20cy%3D%22-453.363%22%20fx%3D%22314.3875%22%20fy%3D%22-453.363%22%20r%3D%2265.3925%22%20gradientTransform%3D%22translate%28-46.999%20185.5275%29%20scale%28.3539%29%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%236ab536%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%232e6b26%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient%20id%3D%22r%22%20cx%3D%22322.2128%22%20cy%3D%22-390.2547%22%20fx%3D%22322.2128%22%20fy%3D%22-390.2547%22%20r%3D%2296.5851%22%20gradientTransform%3D%22translate%28-44.2199%20256.5751%29%20scale%28.3356%20.5572%29%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23000%22%2F%3E%3Cstop%20offset%3D%22.7842%22%20stop-color%3D%22%234f4f4f%22%20stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient%20id%3D%22u%22%20cx%3D%22312.9946%22%20cy%3D%22-473.0178%22%20fx%3D%22312.9946%22%20fy%3D%22-473.0178%22%20r%3D%22223.5101%22%20gradientTransform%3D%22translate%28-46.999%20185.5275%29%20scale%28.3539%29%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23f5f5f5%22%2F%3E%3Cstop%20offset%3D%22.5481%22%20stop-color%3D%22%23f2f2f2%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Cg%20style%3D%22isolation%3Aisolate%3B%22%3E%3Cg%20id%3D%22b%22%3E%3Cg%20id%3D%22c%22%3E%3Crect%20width%3D%22128%22%20height%3D%22128%22%20style%3D%22fill%3Anone%3B%20stroke-width%3A0px%3B%22%2F%3E%3Cg%20id%3D%22d%22%3E%3Cpath%20id%3D%22f%22%20d%3D%22m63.9999%2C124.9c-33.5805%2C0-60.9001-27.3198-60.9001-60.9S30.4194%2C3.1%2C63.9999%2C3.1s60.8999%2C27.3195%2C60.8999%2C60.9-27.3193%2C60.9-60.8999%2C60.9Zm0-116.6759c-30.7415%2C0-55.7515%2C25.021-55.7515%2C55.7759s25.01%2C55.7759%2C55.7515%2C55.7759%2C55.7512-25.0212%2C55.7512-55.7759S94.7414%2C8.2241%2C63.9999%2C8.2241Z%22%20style%3D%22fill%3Aurl%28%23e%29%3B%20stroke-width%3A0px%3B%22%2F%3E%3Cpath%20id%3D%22h%22%20d%3D%22m63.9999%2C3.1238C30.4325%2C3.1238%2C3.1236%2C30.4327%2C3.1236%2C64s27.3089%2C60.8762%2C60.8763%2C60.8762%2C60.8761-27.3091%2C60.8761-60.8762S97.5674%2C3.1238%2C63.9999%2C3.1238Z%22%20style%3D%22fill%3Aurl%28%23g%29%3B%20mix-blend-mode%3Alighten%3B%20opacity%3A.32%3B%20stroke-width%3A0px%3B%22%2F%3E%3Cpath%20id%3D%22j%22%20d%3D%22m63.9999%2C124.9c-33.5805%2C0-60.9001-27.3198-60.9001-60.9S30.4194%2C3.1%2C63.9999%2C3.1s60.8999%2C27.3195%2C60.8999%2C60.9-27.3193%2C60.9-60.8999%2C60.9Zm0-116.6759c-30.7415%2C0-55.7515%2C25.021-55.7515%2C55.7759s25.01%2C55.7759%2C55.7515%2C55.7759%2C55.7512-25.0212%2C55.7512-55.7759S94.7414%2C8.2241%2C63.9999%2C8.2241Z%22%20style%3D%22fill%3Aurl%28%23i%29%3B%20opacity%3A.44%3B%20stroke-width%3A0px%3B%22%2F%3E%3Cpath%20id%3D%22k%22%20d%3D%22m63.9999%2C8.5504c-30.9783%2C0-56.1809%2C25.2025-56.1809%2C56.1808s25.2025%2C56.1808%2C56.1809%2C56.1808%2C56.1807-25.2028%2C56.1807-56.1808S94.9783%2C8.5504%2C63.9999%2C8.5504Z%22%20style%3D%22fill%3Argba%2815%2C15%2C13%2C.35%29%3B%20stroke-width%3A0px%3B%22%2F%3E%3Cpath%20id%3D%22l%22%20d%3D%22m63.9999%2C124.9c-33.5805%2C0-60.9001-27.3198-60.9001-60.9S30.4194%2C3.1%2C63.9999%2C3.1s60.8999%2C27.3195%2C60.8999%2C60.9-27.3193%2C60.9-60.8999%2C60.9Zm0-120.4966C30.4195%2C4.4034%2C3.0998%2C31.3596%2C3.0998%2C64.4932s27.3197%2C60.0898%2C60.9001%2C60.0898%2C60.8999-26.9565%2C60.8999-60.0898S97.5804%2C4.4034%2C64%2C4.4034Z%22%20style%3D%22fill%3A%230f0f0d%3B%20opacity%3A.35%3B%20stroke-width%3A0px%3B%22%2F%3E%3C%2Fg%3E%3Cg%20id%3D%22m%22%3E%3Cpath%20id%3D%22o%22%20d%3D%22m63.9999%2C8.2241c-30.7551%2C0-55.776%2C25.0209-55.776%2C55.7759s25.0209%2C55.7759%2C55.776%2C55.7759%2C55.7758-25.0211%2C55.7758-55.7759S94.755%2C8.2241%2C63.9999%2C8.2241Z%22%20style%3D%22fill%3Aurl%28%23n%29%3B%20stroke-width%3A0px%3B%22%2F%3E%3Cpath%20id%3D%22q%22%20d%3D%22m63.9998%2C12.8613c-9.1608%2C0-16.6136%2C7.4528-16.6136%2C16.6135s7.4528%2C16.6135%2C16.6136%2C16.6135%2C16.6135-7.4528%2C16.6135-16.6135-7.4527-16.6135-16.6135-16.6135Z%22%20style%3D%22fill%3Aurl%28%23p%29%3B%20mix-blend-mode%3Alighten%3B%20opacity%3A.7%3B%20stroke-width%3A0px%3B%22%2F%3E%3Cpath%20id%3D%22s%22%20d%3D%22m34.6871%2C16.3645c-.0027.0191-.0054.0378-.0081.0569-.0725.0136-.0736-.0037.0081-.0569Zm42.1177%2C35.8001l-.7714%2C13.7822%2C9.1023%2C9.9165-9.1023%2C9.9165%2C6.0168%2C6.5549-6.0168%2C6.5549.7714%2C13.6696h-25.61v-60.3946c-10.1823-5.2104-17.1248-16.4714-17.1248-29.4132%2C0-2.1659.3032-4.1671.609-6.33%2C1.1046-.2082%2C18.9673-7.6947%2C18.9673-7.6947-.1483.8092%2C20.8551.8092%2C20.7068%2C0%2C0%2C0%2C17.2577%2C7.4257%2C18.9891%2C7.7899.438%2C2.1264.5873%2C4.101.5873%2C6.2348%2C0%2C12.9418-7.0968%2C24.2029-17.1248%2C29.4133Zm16.5077-35.8001c.0108.0511.0194.1011.0299.1521.1896.0399.196-.0035-.0299-.1521Z%22%20style%3D%22fill%3Aurl%28%23r%29%3B%20mix-blend-mode%3Amultiply%3B%20opacity%3A.3%3B%20stroke-width%3A0px%3B%22%2F%3E%3Cpath%20id%3D%22t%22%20d%3D%22m34.1161%2C100.4319c-9.8977-8.6081-16.164-21.2969-16.164-35.4968%2C0-16.5227%2C8.6409-31.7744%2C22.8728-40.29-.2541%2C1.6523-.5083%2C3.1774-.5083%2C4.8297%2C0%2C9.7865%2C5.7182%2C18.302%2C14.1049%2C22.2421v44.6113l10.5469%2C10.5491%2C10.5469-10.5491-.6354-9.2781%2C4.9558-4.9568-4.9558-4.9568%2C7.4972-7.4988-7.4972-7.4988.6354-10.422c8.2596-3.94%2C14.1049-12.4556%2C14.1049-22.2421%2C0-1.6523-.1271-3.1774-.5083-4.8297%2C5.1643%2C3.1178%2C9.5922%2C7.1416%2C13.1419%2C11.7972-8.5841-11.7889-22.5293-19.4587-38.2766-19.4587-26.0911%2C0-47.2421%2C21.05-47.2421%2C47.0165%2C0%2C14.693%2C6.7736%2C27.8101%2C17.3809%2C36.4318Zm27.4214-7.6624h-3.558v-35.2061h3.558v35.2061Zm-5.0828-73.9708c2.7956-.5084%2C5.7182-.7626%2C8.5138-.7626%2C2.9226-.1271%2C5.7182.2542%2C8.5138.7626.1271.6355.2542%2C1.271.2542%2C1.9064%2C0%2C4.8297-3.9392%2C8.7698-8.7679%2C8.7698s-8.7679-3.94-8.7679-8.7698c0-.6355.1271-1.2709.2542-1.9064Z%22%20style%3D%22fill%3A%230f0f0d%3B%20mix-blend-mode%3Amultiply%3B%20opacity%3A.2%3B%20stroke-width%3A0px%3B%22%2F%3E%3Cpath%20id%3D%22v%22%20d%3D%22m63.9999%2C8.2241c-30.7415%2C0-55.7514%2C25.0209-55.7514%2C55.7759s25.01%2C55.7759%2C55.7514%2C55.7759%2C55.7512-25.0212%2C55.7512-55.7759S94.7414%2C8.2241%2C63.9999%2C8.2241Zm-8.5138%2C9.5882c2.7956-.5084%2C5.7182-.7626%2C8.5138-.7626%2C2.9226-.1271%2C5.7182.2542%2C8.5138.7626.1271.6355.2542%2C1.271.2542%2C1.9064%2C0%2C4.8297-3.9392%2C8.7698-8.7679%2C8.7698s-8.7679-3.94-8.7679-8.7698c0-.6355.1271-1.2709.2542-1.9064Zm5.0828%2C38.7648v35.2061h-3.558v-35.2061h3.558Zm3.4309%2C54.3978c-25.9225%2C0-47.0163-20.9711-47.0163-47.0261%2C0-16.5227%2C8.6409-31.7744%2C22.8728-40.29-.2541%2C1.6523-.5083%2C3.1774-.5083%2C4.8297%2C0%2C9.7865%2C5.7182%2C18.302%2C14.1049%2C22.2421v44.6113l10.5469%2C10.5491%2C10.5469-10.5491-.6354-9.2781%2C4.9558-4.9568-4.9558-4.9568%2C7.4972-7.4988-7.4972-7.4988.6354-10.422c8.2596-3.94%2C14.1049-12.4556%2C14.1049-22.2421%2C0-1.6523-.1271-3.1774-.5083-4.8297%2C14.1049%2C8.5156%2C22.7457%2C23.7673%2C22.8728%2C40.29%2C0%2C25.9279-20.9668%2C47.0261-47.0163%2C47.0261Z%22%20style%3D%22fill%3Aurl%28%23u%29%3B%20stroke-width%3A0px%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url%28%23clip0_6034_33627%29%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2212%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M22%2012C22%2017.5228%2017.5228%2022%2012%2022C6.47715%2022%202%2017.5228%202%2012C2%206.47715%206.47715%202%2012%202C17.5228%202%2022%206.47715%2022%2012Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M10.1218%203.27325H11.6666V9.51527H14.8575L18.696%206.46317L19.6607%207.66821L15.3989%2011.0564H10.1218V3.27325Z%22%20fill%3D%22%23FFC700%22%2F%3E%3Cpath%20d%3D%22M13.1438%203.48366L14.6887%203.87694V6.03492L16.4173%204.61811L17.7008%205.56097L14.407%208.26013L13.1438%208.25341V3.48366Z%22%20fill%3D%22%23FFC700%22%2F%3E%3Cpath%20d%3D%22M4.0387%2015.0849L5.58354%2016.3958V7.81427L4.0387%209.22772V15.0849Z%22%20fill%3D%22%23FFC700%22%2F%3E%3Cpath%20d%3D%22M8.61257%2018.2411L7.06604%2019.5806V4.49485L8.61257%205.83434V18.2411Z%22%20fill%3D%22%23FFC700%22%2F%3E%3Cpath%20d%3D%22M14.6887%2018.1174L16.4173%2019.5342L17.7008%2018.5897L14.407%2015.8922L13.1438%2015.8989V20.6687L14.6887%2020.2754V18.1174Z%22%20fill%3D%22%23FFC700%22%2F%3E%3Cpath%20d%3D%22M18.696%2017.4786L14.8575%2014.4248H11.6666V20.6668H10.1218V12.8853H15.3989L19.6607%2016.2735L18.696%2017.4786Z%22%20fill%3D%22%23FFC700%22%2F%3E%3Cpath%20d%3D%22M16.7376%2011.9706L19.8981%2014.5706L20.883%2013.3823L19.1661%2011.9706L20.883%2010.5588L19.8981%209.37056L16.7376%2011.9706Z%22%20fill%3D%22%23FFC700%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0_6034_33627%22%3E%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22white%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2080%2080%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%20%20%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.6134%2070C2.82435%2063.352%200%2055.1722%200%2046.3273C0%2024.0552%2017.9086%206%2040%206C62.0914%206%2080%2024.0552%2080%2046.3273C80%2055.1721%2077.1757%2063.3518%2072.3867%2069.9999L53.1747%2038.5466L51.3195%2041.7046L53.2018%2050.4877L40%2027.7147L31.8334%2041.6161L33.7346%2050.4877L26.8147%2038.5646L7.6134%2070Z%22%20fill%3D%22%230CAAAB%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%221024%22%20height%3D%221024%22%20viewBox%3D%220%200%201024%201024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M353.274%20214.391C408.835%20158.832%20436.614%20131.052%20468.648%20120.644C496.825%20111.489%20527.175%20111.489%20555.352%20120.644C587.386%20131.052%20615.165%20158.832%20670.726%20214.391L809.608%20353.274C865.169%20408.835%20892.948%20436.614%20903.356%20468.648C912.512%20496.825%20912.512%20527.175%20903.356%20555.352C892.948%20587.386%20865.169%20615.165%20809.608%20670.726L670.726%20809.608C615.165%20865.169%20587.386%20892.948%20555.352%20903.356C527.175%20912.512%20496.825%20912.512%20468.648%20903.356C436.614%20892.948%20408.835%20865.169%20353.274%20809.608L327.162%20780.336C311.361%20762.621%20303.462%20753.763%20297.827%20743.688C292.833%20734.754%20289.166%20725.137%20286.947%20715.144C284.444%20703.878%20284.444%20692.008%20284.444%20668.271V355.729C284.444%20331.992%20284.444%20320.122%20286.947%20308.855C289.166%20298.863%20292.833%20289.246%20297.827%20280.311C303.462%20270.237%20311.361%20261.38%20327.162%20243.665L353.274%20214.391Z%22%20fill%3D%22url%28%23paint0_radial_12155_41873%29%22%2F%3E%3Cpath%20d%3D%22M353.274%20214.391C408.835%20158.832%20436.614%20131.052%20468.648%20120.644C496.825%20111.489%20527.175%20111.489%20555.352%20120.644C587.386%20131.052%20615.165%20158.832%20670.726%20214.391L809.608%20353.274C865.169%20408.835%20892.948%20436.614%20903.356%20468.648C912.512%20496.825%20912.512%20527.175%20903.356%20555.352C892.948%20587.386%20865.169%20615.165%20809.608%20670.726L670.726%20809.608C615.165%20865.169%20587.386%20892.948%20555.352%20903.356C527.175%20912.512%20496.825%20912.512%20468.648%20903.356C436.614%20892.948%20408.835%20865.169%20353.274%20809.608L327.162%20780.336C311.361%20762.621%20303.462%20753.763%20297.827%20743.688C292.833%20734.754%20289.166%20725.137%20286.947%20715.144C284.444%20703.878%20284.444%20692.008%20284.444%20668.271V355.729C284.444%20331.992%20284.444%20320.122%20286.947%20308.855C289.166%20298.863%20292.833%20289.246%20297.827%20280.311C303.462%20270.237%20311.361%20261.38%20327.162%20243.665L353.274%20214.391Z%22%20fill%3D%22url%28%23paint1_linear_12155_41873%29%22%2F%3E%3Cpath%20d%3D%22M343.356%20224.303C371.135%20196.524%20385.024%20182.634%20401.041%20177.43C415.13%20172.852%20430.305%20172.852%20444.393%20177.43C460.41%20182.634%20474.3%20196.524%20502.079%20224.303L710.406%20432.629C738.185%20460.408%20752.074%20474.3%20757.279%20490.314C761.856%20504.403%20761.856%20519.581%20757.279%20533.669C752.074%20549.686%20738.185%20563.576%20710.406%20591.354L502.079%20799.681C474.3%20827.46%20460.41%20841.35%20444.393%20846.555C430.305%20851.132%20415.13%20851.132%20401.041%20846.555C385.024%20841.35%20371.135%20827.46%20343.356%20799.681L214.391%20670.717C158.832%20615.157%20131.052%20587.378%20120.644%20555.346C111.489%20527.167%20111.489%20496.816%20120.644%20468.639C131.052%20436.605%20158.832%20408.826%20214.391%20353.266L343.356%20224.303Z%22%20fill%3D%22url%28%23paint2_radial_12155_41873%29%22%2F%3E%3Cdefs%3E%3CradialGradient%20id%3D%22paint0_radial_12155_41873%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientUnits%3D%22userSpaceOnUse%22%20gradientTransform%3D%22translate%28354.145%20925.744%29%20rotate%28-58.142%29%20scale%28664.835%201039.67%29%22%3E%3Cstop%20stop-color%3D%22%23FFD580%22%2F%3E%3Cstop%20offset%3D%220.09375%22%20stop-color%3D%22%23F6C592%22%2F%3E%3Cstop%20offset%3D%220.205%22%20stop-color%3D%22%23EBB6A2%22%2F%3E%3Cstop%20offset%3D%220.324466%22%20stop-color%3D%22%23DFA5AF%22%2F%3E%3Cstop%20offset%3D%220.42875%22%20stop-color%3D%22%23D397BE%22%2F%3E%3Cstop%20offset%3D%220.53375%22%20stop-color%3D%22%23C486CB%22%2F%3E%3Cstop%20offset%3D%220.64875%22%20stop-color%3D%22%23B578D9%22%2F%3E%3Cstop%20offset%3D%220.77125%22%20stop-color%3D%22%23A166E5%22%2F%3E%3Cstop%20offset%3D%220.89125%22%20stop-color%3D%22%238B57F2%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23704CFF%22%2F%3E%3C%2FradialGradient%3E%3ClinearGradient%20id%3D%22paint1_linear_12155_41873%22%20x1%3D%22326.713%22%20y1%3D%22-44.3649%22%20x2%3D%22481.598%22%20y2%3D%22901.077%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%236D4AFF%22%2F%3E%3Cstop%20offset%3D%220.392009%22%20stop-color%3D%22%23B39FFB%22%20stop-opacity%3D%220.978022%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FFE8DB%22%20stop-opacity%3D%220.8%22%2F%3E%3C%2FlinearGradient%3E%3CradialGradient%20id%3D%22paint2_radial_12155_41873%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientUnits%3D%22userSpaceOnUse%22%20gradientTransform%3D%22translate%28295.746%20844.786%29%20rotate%28-58.142%29%20scale%28534.758%20836.255%29%22%3E%3Cstop%20stop-color%3D%22%23FFD580%22%2F%3E%3Cstop%20offset%3D%220.09375%22%20stop-color%3D%22%23F6C592%22%2F%3E%3Cstop%20offset%3D%220.205%22%20stop-color%3D%22%23EBB6A2%22%2F%3E%3Cstop%20offset%3D%220.324466%22%20stop-color%3D%22%23DFA5AF%22%2F%3E%3Cstop%20offset%3D%220.42875%22%20stop-color%3D%22%23D397BE%22%2F%3E%3Cstop%20offset%3D%220.53375%22%20stop-color%3D%22%23C486CB%22%2F%3E%3Cstop%20offset%3D%220.64875%22%20stop-color%3D%22%23B578D9%22%2F%3E%3Cstop%20offset%3D%220.77125%22%20stop-color%3D%22%23A166E5%22%2F%3E%3Cstop%20offset%3D%220.89125%22%20stop-color%3D%22%238B57F2%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23704CFF%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20version%3D%221.1%22%20width%3D%2252px%22%20height%3D%2252px%22%20viewBox%3D%220%200%2052.0%2052.0%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%3Cdefs%3E%3CclipPath%20id%3D%22i0%22%3E%3Cpath%20d%3D%22M360%2C0%20L360%2C800%20L0%2C800%20L0%2C0%20L360%2C0%20Z%22%3E%3C%2Fpath%3E%3C%2FclipPath%3E%3CclipPath%20id%3D%22i1%22%3E%3Cpath%20d%3D%22M26%2C0%20C33.9910278%2C0%2041.1395833%2C0.975%2045.9087778%2C5.77777778%20C49.7101944%2C9.60591667%2052%2C15.8650556%2052%2C26%20C52%2C36.1349444%2049.7098333%2C42.3944444%2045.9080556%2C46.2225833%20C41.1388611%2C51.0246389%2033.9903056%2C52%2026%2C52%20C18.0089722%2C52%2010.8607778%2C51.0246389%206.09158333%2C46.2225833%20C2.29016667%2C42.3944444%200%2C36.1349444%200%2C26%20C0%2C15.8650556%202.28980556%2C9.60555556%206.09086111%2C5.77777778%20C10.8600556%2C0.975%2018.0086111%2C0%2026%2C0%20Z%22%3E%3C%2Fpath%3E%3C%2FclipPath%3E%3ClinearGradient%20id%3D%22i2%22%20x1%3D%2226px%22%20y1%3D%2252px%22%20x2%3D%2226px%22%20y2%3D%220.195921148px%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%232929B2%22%20offset%3D%220%25%22%3E%3C%2Fstop%3E%3Cstop%20stop-color%3D%22%231A40CC%22%20offset%3D%22100%25%22%3E%3C%2Fstop%3E%3C%2FlinearGradient%3E%3CclipPath%20id%3D%22i3%22%3E%3Cpath%20d%3D%22M37.1944444%2C0%20L37.1944444%2C5.72222222%20L0%2C5.72222222%20L0%2C0%20L37.1944444%2C0%20Z%22%3E%3C%2Fpath%3E%3C%2FclipPath%3E%3CclipPath%20id%3D%22i4%22%3E%3Cpath%20d%3D%22M1.88342213%2C0%20C2.62075987%2C0%203.64356402%2C0.181610871%203.64356402%2C1.32111819%20L3.64356402%2C1.68911562%20L2.34279339%2C1.68911562%20L2.34279339%2C1.36490659%20C2.34279339%2C1.07957573%202.16319664%2C0.889153371%201.8581768%2C0.889153371%20C1.52931788%2C0.889153371%201.41648398%2C1.07527088%201.38085927%2C1.24215109%20C1.36679688%2C1.30026657%201.36090408%2C1.41172184%201.38614941%2C1.51725793%20C1.53460802%2C2.1304973%203.51244902%2C2.45611887%203.73255883%2C3.55553727%20C3.75371937%2C3.6670598%203.80079488%2C3.96113488%203.73804986%2C4.41300963%20C3.61182321%2C5.28965203%202.8380572%2C5.61217949%201.89581043%2C5.61217949%20C0.915729136%2C5.61217949%200%2C5.25998892%200%2C4.0888006%20L0%2C3.68824773%20L1.39940823%2C3.68824773%20L1.40121625%2C4.19231879%20C1.40121625%2C4.4786586%201.59608073%2C4.66928275%201.92185932%2C4.66928275%20C2.2707404%2C4.66928275%202.38839569%2C4.49150589%202.43118552%2C4.31541061%20C2.45622996%2C4.21639905%202.47149769%2C4.05463085%202.42100703%2C3.92864671%20C2.15134406%2C3.25096911%200.297921677%2C2.94128895%200.0721199473%2C1.87032292%20C0.0173436085%2C1.60564189%200.0238390912%2C1.39907634%200.0617405677%2C1.16426021%20C0.200221581%2C0.308873007%200.957112727%2C0%201.88342213%2C0%20Z%20M18.8411186%2C0.0296631089%20C19.5704877%2C0.0296631089%2020.5778901%2C0.206969129%2020.5778901%2C1.33564706%20L20.5778901%2C1.70075217%20L19.2921864%2C1.70075217%20L19.2921864%2C1.38044441%20C19.2921864%2C1.0974005%2019.115603%2C0.90879425%2018.8144001%2C0.90879425%20C18.4912331%2C0.90879425%2018.3790688%2C1.09161586%2018.34177%2C1.25937049%20C18.3297835%2C1.31681334%2018.3230871%2C1.42665428%2018.3462566%2C1.53017248%20C18.4943134%2C2.13641647%2020.4503912%2C2.46311425%2020.6660144%2C3.54921452%20C20.6896526%2C3.65905547%2020.7340496%2C3.95070907%2020.6751885%2C4.3984135%20C20.5517743%2C5.26510093%2019.7824949%2C5.58480333%2018.8510962%2C5.58480333%20C17.8785818%2C5.58480333%2016.9756428%2C5.23543783%2016.9756428%2C4.07750037%20L16.9756428%2C3.67788919%20L18.3595154%2C3.67788919%20L18.3599172%2C4.18061498%20C18.3599172%2C4.46305352%2018.5551834%2C4.65044903%2018.8797567%2C4.65044903%20C19.2257583%2C4.65044903%2019.3424761%2C4.47516091%2019.3823865%2C4.30088174%20C19.4063595%2C4.20556966%2019.4198192%2C4.04380146%2019.3728107%2C3.9169429%20C19.1064289%2C3.24726963%2017.2711537%2C2.94007821%2017.0477627%2C1.8811523%20C16.9901069%2C1.6193636%2016.9990801%2C1.41421058%2017.0353074%2C1.18309393%20C17.1723153%2C0.333827686%2017.92251%2C0.0296631089%2018.8411186%2C0.0296631089%20Z%20M23.2364845%2C0.166880211%20L23.2362291%2C4.11137366%20C23.2372063%2C4.15798462%2023.2408818%2C4.20406745%2023.2496764%2C4.24115194%20C23.2751226%2C4.37123913%2023.3877556%2C4.62159308%2023.7469491%2C4.62159308%20C24.1108301%2C4.62159308%2024.2205836%2C4.37123913%2024.2481057%2C4.24115194%20C24.2596905%2C4.1855252%2024.2617663%2C4.10965222%2024.2596905%2C4.04211988%20L24.2596905%2C0.166880211%20L25.5786083%2C0.166880211%20L25.5786083%2C3.92185312%20C25.5843002%2C4.01864499%2025.5747244%2C4.21639905%2025.5674253%2C4.26819178%20C25.4747475%2C5.24667079%2024.707477%2C5.56435529%2023.7469491%2C5.56435529%20C22.7882962%2C5.56435529%2022.020557%2C5.24667079%2021.9295532%2C4.26819178%20C21.9238613%2C4.21639905%2021.9162944%2C4.01864499%2021.9179685%2C3.92185312%20L21.9179685%2C0.166880211%20L23.2364845%2C0.166880211%20Z%20M34.6297621%2C0.0259636282%20C35.5539956%2C0.0259636282%2036.3600382%2C0.336854534%2036.4587427%2C1.31950387%20C36.465573%2C1.39119692%2036.4683814%2C1.46511378%2036.4693607%2C1.52618022%20L36.469004%2C1.65575402%20L36.4687203%2C1.66617884%20L36.4687203%2C1.83803654%20L35.1553605%2C1.83803654%20L35.15515%2C1.53355556%20C35.1544471%2C1.49873362%2035.15149%2C1.40564123%2035.1394901%2C1.34526571%20C35.1166555%2C1.2313217%2035.0170804%2C0.966035306%2034.6181774%2C0.966035306%20C34.2381582%2C0.966035306%2034.1255921%2C1.21759999%2034.0996772%2C1.34526571%20C34.0817978%2C1.41542132%2034.0761059%2C1.50811012%2034.0761059%2C1.5927946%20L34.0761059%2C3.98689672%20C34.0761059%2C4.05463085%2034.0801907%2C4.12761151%2034.0897665%2C4.18613057%20C34.1125342%2C4.327518%2034.2438501%2C4.5682533%2034.6209899%2C4.5682533%20C35.0004064%2C4.5682533%2035.134133%2C4.327518%2035.1553605%2C4.18613057%20C35.1669452%2C4.12761151%2035.1706282%2C4.05463085%2035.1689541%2C3.98689672%20L35.1689541%2C3.22890676%20L34.6344496%2C3.22890676%20L34.6344496%2C2.46493036%20L36.4791667%2C2.46493036%20L36.4791667%2C3.86851334%20C36.4770908%2C3.96443078%2036.4754837%2C4.03868945%2036.460015%2C4.21397757%20C36.3728282%2C5.16958707%2035.5539956%2C5.50832497%2034.6260791%2C5.50832497%20C33.7038545%2C5.50832497%2032.87933%2C5.16958707%2032.7936164%2C4.21397757%20C32.775938%2C4.03868945%2032.7728576%2C3.96443078%2032.7728576%2C3.86851334%20L32.7728576%2C1.66617884%20C32.7728576%2C1.5702614%2032.788728%2C1.40909857%2032.7991074%2C1.31950387%20C32.9141511%2C0.339746855%2033.7038545%2C0.0259636282%2034.6297621%2C0.0259636282%20Z%20M12.1447447%2C0.166880211%20L12.8022616%2C4.26159998%20L13.4601804%2C0.166880211%20L15.5852746%2C0.166880211%20L15.7019255%2C5.40521036%20L14.395262%2C5.40521036%20L14.3598382%2C0.555931054%20L13.4622562%2C5.40521036%20L12.1398563%2C5.40521036%20L11.2430779%2C0.555931054%20L11.207788%2C5.40521036%20L9.9044058%2C5.40521036%20L10.0172397%2C0.166880211%20L12.1447447%2C0.166880211%20Z%20M7.9012525%2C0.166880211%20L8.86325358%2C5.40521036%20L7.4643141%2C5.40521036%20L6.75382883%2C0.555931054%20L6.02586602%2C5.40521036%20L4.61714983%2C5.40521036%20L5.58316873%2C0.166880211%20L7.9012525%2C0.166880211%20Z%20M28.304836%2C5.35059257%20L27.0246233%2C5.35059257%20L27.0246233%2C0.166880211%20L28.9598753%2C0.166880211%20L30.1879903%2C4.38435547%20L30.1168748%2C0.166880211%20L31.4054581%2C0.166880211%20L31.4054581%2C5.35059257%20L29.5494241%2C5.35059257%20L28.23%2C0.999%20L28.304836%2C5.35059257%20Z%22%3E%3C%2Fpath%3E%3C%2FclipPath%3E%3CclipPath%20id%3D%22i5%22%3E%3Cpath%20d%3D%22M24.3352966%2C2.47006432%20C25.3096502%2C2.47006432%2026.121323%2C2.65660564%2026.7692768%2C3.02897356%20C27.4172305%2C3.40169883%2027.9295017%2C3.90843367%2028.3060902%2C4.55025015%20L26.3954573%2C5.48259937%20C26.1960869%2C5.1463247%2025.9191836%2C4.88009236%2025.5647473%2C4.68461708%20C25.2103111%2C4.48914179%2024.8004942%2C4.39122547%2024.3352966%2C4.39122547%20C23.8036422%2C4.39122547%2023.4104395%2C4.49485953%2023.1556885%2C4.70212766%20C22.9005913%2C4.90939579%2022.7735619%2C5.14954093%2022.7735619%2C5.42220573%20C22.7735619%2C5.73846831%2022.9618562%2C5.96503381%2023.3384447%2C6.10083017%20C23.714687%2C6.23734125%2024.2688398%2C6.38207158%2024.9998646%2C6.53466381%20C25.3986054%2C6.6111386%2025.799769%2C6.71155644%2026.204394%2C6.83734675%20C26.6086729%2C6.9627797%2026.9769543%2C7.13181043%2027.3092383%2C7.34479631%20C27.6415222%2C7.55742482%2027.9101185%2C7.82973226%2028.1150269%2C8.1627907%20C28.3199354%2C8.49549178%2028.4223896%2C8.91252955%2028.4223896%2C9.41426137%20C28.4223896%2C9.75232283%2028.3448567%2C10.1043213%2028.1897908%2C10.469542%20C28.0343788%2C10.8347628%2027.7938191%2C11.1731816%2027.4670731%2C11.4837264%20C27.1403272%2C11.794986%2026.7277413%2C12.0483534%2026.2293153%2C12.2445434%20C25.7308893%2C12.4410908%2025.1327782%2C12.5390071%2024.4349818%2C12.5390071%20C23.3605969%2C12.5390071%2022.4689682%2C12.332811%2021.7600957%2C11.9200616%20C21.0512233%2C11.5069548%2020.5029547%2C10.9105228%2020.11529%2C10.1300511%20L22.1920649%2C9.16518225%20C22.4246637%2C9.60473363%2022.7403335%2C9.94243774%2023.1390743%2C10.1786519%20C23.5378151%2C10.4145088%2024.0030126%2C10.5320798%2024.534667%2C10.5320798%20C25.0884736%2C10.5320798%2025.5038286%2C10.417725%2025.7807319%2C10.1890153%20C26.0572891%2C9.95994832%2026.1960869%2C9.68764088%2026.1960869%2C9.37102095%20C26.1960869%2C9.19662983%2026.1323992%2C9.05511573%2026.0050236%2C8.94576392%20C25.8776481%2C8.83712683%2025.7115061%2C8.74135466%2025.5065976%2C8.65987685%20C25.3013431%2C8.57804167%2025.0607833%2C8.51014349%2024.78388%2C8.45511023%20C24.5069767%2C8.40079169%2024.2189972%2C8.3407554%2023.9199416%2C8.27535873%20C23.4987025%2C8.18816318%2023.0864626%2C8.08488647%2022.6821838%2C7.9648139%20C22.277905%2C7.84509869%2021.9151616%2C7.67856947%2021.5939538%2C7.46629831%20C21.2727459%2C7.25331244%2021.0124568%2C6.98064764%2020.8130864%2C6.64830392%20C20.613716%2C6.3159602%2020.5140308%2C5.89892243%2020.5140308%2C5.39754797%20C20.5140308%2C5.01553137%2020.6054089%2C4.64780912%2020.7881651%2C4.2936665%20C20.9709213%2C3.93916653%2021.2284414%2C3.62612018%2021.5607254%2C3.35309803%20C21.8930093%2C3.08079059%2022.294173%2C2.86566056%2022.7652548%2C2.7073506%20C23.2359904%2C2.54904063%2023.7593377%2C2.47006432%2024.3352966%2C2.47006432%20Z%20M33.1073515%2C2.47006432%20C34.081705%2C2.47006432%2034.8933779%2C2.65660564%2035.5413316%2C3.02897356%20C36.1892854%2C3.40169883%2036.7015565%2C3.90843367%2037.0781451%2C4.55025015%20L35.1675122%2C5.48259937%20C34.9681418%2C5.1463247%2034.6912384%2C4.88009236%2034.3368022%2C4.68461708%20C33.9823659%2C4.48914179%2033.572549%2C4.39122547%2033.1073515%2C4.39122547%20C32.5756971%2C4.39122547%2032.1824944%2C4.49485953%2031.9277433%2C4.70212766%20C31.6726461%2C4.90939579%2031.5456167%2C5.14954093%2031.5456167%2C5.42220573%20C31.5456167%2C5.73846831%2031.733911%2C5.96503381%2032.1104995%2C6.10083017%20C32.4867419%2C6.23734125%2033.0408947%2C6.38207158%2033.7719194%2C6.53466381%20C34.1706602%2C6.6111386%2034.5718239%2C6.71155644%2034.9764489%2C6.83734675%20C35.3807277%2C6.9627797%2035.7490091%2C7.13181043%2036.0812931%2C7.34479631%20C36.4135771%2C7.55742482%2036.6821733%2C7.82973226%2036.8870818%2C8.1627907%20C37.0919902%2C8.49549178%2037.1944444%2C8.91252955%2037.1944444%2C9.41426137%20C37.1944444%2C9.75232283%2037.1169115%2C10.1043213%2036.9618457%2C10.469542%20C36.8064337%2C10.8347628%2036.5658739%2C11.1731816%2036.239128%2C11.4837264%20C35.9123821%2C11.794986%2035.4997961%2C12.0483534%2035.0013702%2C12.2445434%20C34.5029442%2C12.4410908%2033.904833%2C12.5390071%2033.2070367%2C12.5390071%20C32.1326518%2C12.5390071%2031.2410231%2C12.332811%2030.5321506%2C11.9200616%20C29.8232781%2C11.5069548%2029.2750095%2C10.9105228%2028.8873449%2C10.1300511%20L30.9641198%2C9.16518225%20C31.1967186%2C9.60473363%2031.5123883%2C9.94243774%2031.9111291%2C10.1786519%20C32.3098699%2C10.4145088%2032.7750675%2C10.5320798%2033.3067218%2C10.5320798%20C33.8605285%2C10.5320798%2034.2758835%2C10.417725%2034.5527868%2C10.1890153%20C34.829344%2C9.95994832%2034.9681418%2C9.68764088%2034.9681418%2C9.37102095%20C34.9681418%2C9.19662983%2034.904454%2C9.05511573%2034.7770785%2C8.94576392%20C34.6497029%2C8.83712683%2034.483561%2C8.74135466%2034.2786525%2C8.65987685%20C34.0733979%2C8.57804167%2033.8328382%2C8.51014349%2033.5559348%2C8.45511023%20C33.2790315%2C8.40079169%2032.9910521%2C8.3407554%2032.6919965%2C8.27535873%20C32.2707573%2C8.18816318%2031.8585175%2C8.08488647%2031.4542386%2C7.9648139%20C31.0499598%2C7.84509869%2030.6872165%2C7.67856947%2030.3660086%2C7.46629831%20C30.0448008%2C7.25331244%2029.7845116%2C6.98064764%2029.5851412%2C6.64830392%20C29.3857709%2C6.3159602%2029.2860857%2C5.89892243%2029.2860857%2C5.39754797%20C29.2860857%2C5.01553137%2029.3774638%2C4.64780912%2029.5602199%2C4.2936665%20C29.7429761%2C3.93916653%2030.0004962%2C3.62612018%2030.3327802%2C3.35309803%20C30.6650642%2C3.08079059%2031.0662279%2C2.86566056%2031.5373096%2C2.7073506%20C32.0080453%2C2.54904063%2032.5313926%2C2.47006432%2033.1073515%2C2.47006432%20Z%20M13.7732057%2C2.47002859%20C14.4156214%2C2.47002859%2015.0081945%2C2.59010116%2015.550925%2C2.82953159%20C16.0933094%2C3.06967673%2016.5422389%2C3.39666007%2016.8966751%2C3.81083897%20L16.8966751%2C2.48718181%20L19.139592%2C2.48718181%20L19.139592%2C12.5218181%20L16.8966751%2C12.5218181%20L16.8966751%2C11.0959563%20C16.5422389%2C11.5440843%2016.0881174%2C11.8967975%2015.5343108%2C12.1537385%20C14.9805042%2C12.4106795%2014.382393%2C12.5389714%2013.7399773%2C12.5389714%20C13.1529423%2C12.5389714%2012.5742143%2C12.4264033%2012.0037935%2C12.2005525%20C11.4333726%2C11.9743444%2010.9211015%2C11.646289%2010.4669801%2C11.2163863%20C10.0128586%2C10.7864836%209.64700011%2C10.260094%209.37044292%2C9.63757491%20C9.0935396%2C9.01469844%208.95508794%2C8.30641322%208.95508794%2C7.51307658%20C8.95508794%2C6.70830447%209.09042444%2C5.99501622%209.36213582%2C5.3717824%20C9.63350107%2C4.74890593%209.99347539%2C4.22287371%2010.4420588%2C3.79297103%20C10.8906421%2C3.36271098%2011.4056823%2C3.03501292%2011.9871793%2C2.80951949%20C12.5686763%2C2.58331134%2013.1640184%2C2.47002859%2013.7732057%2C2.47002859%20Z%20M4.15354978%2C0%20C4.78488935%2C0%205.36638632%2C0.117213701%205.89804069%2C0.351998461%20C6.42969506%2C0.586425862%206.88900844%2C0.903403156%207.27701922%2C1.30400242%20C7.66468386%2C1.70424432%207.96893138%2C2.175958%208.19080017%2C2.71914344%20C8.41232282%2C3.26197152%208.52308415%2C3.84232228%208.52308415%2C4.46019572%20C8.52308415%2C5.07735444%208.41232282%2C5.66056408%208.19080017%2C6.20946726%20C7.96893138%2C6.75837044%207.66468386%2C7.23294299%207.27701922%2C7.63354225%20C6.88900844%2C8.03378416%206.42692603%2C8.35111881%205.88973359%2C8.58518885%20C5.35219502%2C8.81961625%204.76827515%2C8.93682995%204.13693558%2C8.93682995%20L2.25953108%2C8.93682995%20L2.25953108%2C12.5218539%20L0%2C12.5218539%20L0%2C0%20L4.15354978%2C0%20Z%20M14.1054897%2C4.58023256%20C13.6956728%2C4.58023256%2013.3107771%2C4.65563527%2012.9508028%2C4.80572599%20C12.5908285%2C4.9558167%2012.2779278%2C5.16022596%2012.0121006%2C5.41752433%20C11.7462734%2C5.67553741%2011.5385959%2C5.98179394%2011.3890681%2C6.33629391%20C11.2395403%2C6.69079389%2011.1647764%2C7.07173841%2011.1647764%2C7.48019957%20C11.1647764%2C7.88830337%2011.2395403%2C8.27246413%2011.3890681%2C8.63196712%20C11.5385959%2C8.99147012%2011.7462734%2C9.30272967%2012.0121006%2C9.5664605%20C12.2779278%2C9.82947661%2012.5908285%2C10.03603%2012.9508028%2C10.1868354%20C13.3107771%2C10.3369262%2013.6956728%2C10.4119715%2014.1054897%2C10.4119715%20C14.5263827%2C10.4119715%2014.9137012%2C10.3369262%2015.2684836%2C10.1868354%20C15.6229199%2C10.03603%2015.9271674%2C9.82661774%2016.1822646%2C9.55788389%20C16.4370156%2C9.28950739%2016.639155%2C8.97789048%2016.7886828%2C8.62374787%20C16.9382106%2C8.26960526%2017.0129745%2C7.88830337%2017.0129745%2C7.48019957%20C17.0129745%2C7.08281654%2016.9382106%2C6.70687503%2016.7886828%2C6.35237506%20C16.639155%2C5.99787509%2016.4370156%2C5.68911705%2016.1822646%2C5.42610094%20C15.9271674%2C5.16272747%2015.6229199%2C4.9558167%2015.2684836%2C4.80572599%20C14.9137012%2C4.65563527%2014.5263827%2C4.58023256%2014.1054897%2C4.58023256%20Z%20M3.98740779%2C2.16130628%20L2.25953108%2C2.16130628%20L2.25953108%2C6.77552367%20L3.98740779%2C6.77552367%20C4.31969177%2C6.77552367%204.62428542%2C6.71548738%204.90118874%2C6.59541481%20C5.17774593%2C6.47534224%205.41622892%2C6.30952774%205.6155993%2C6.09832866%20C5.81496969%2C5.88677222%205.97003555%2C5.64055198%206.08079688%2C5.36038265%20C6.19121208%2C5.08057067%206.24693887%2C4.78003189%206.24693887%2C4.46019572%20C6.24693887%2C4.13964484%206.19121208%2C3.83946341%206.08079688%2C3.55929408%20C5.97003555%2C3.27912475%205.81496969%2C3.03612073%205.6155993%2C2.83028204%20C5.41622892%2C2.62444334%205.17774593%2C2.46148771%204.90118874%2C2.34141514%20C4.62428542%2C2.22134257%204.31969177%2C2.16130628%203.98740779%2C2.16130628%20Z%22%3E%3C%2Fpath%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3Cg%20transform%3D%22translate%28-233.0%20-160.0%29%22%3E%3Cg%20clip-path%3D%22url%28%23i0%29%22%3E%3Cg%20transform%3D%22translate%28233.0%20160.0%29%22%3E%3Cg%20transform%3D%22translate%28-0.00018055555555207548%200.0%29%22%3E%3Cg%20clip-path%3D%22url%28%23i1%29%22%3E%3Cpolygon%20points%3D%220%2C0%2052%2C0%2052%2C52%200%2C52%200%2C0%22%20stroke%3D%22none%22%20fill%3D%22url%28%23i2%29%22%3E%3C%2Fpolygon%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%287.583333333333332%2014.80555555555555%29%22%3E%3Cg%20clip-path%3D%22url%28%23i3%29%22%3E%3Cg%20clip-path%3D%22url%28%23i4%29%22%3E%3Cpolygon%20points%3D%220%2C0%2036.4791667%2C0%2036.4791667%2C5.61217949%200%2C5.61217949%200%2C0%22%20stroke%3D%22none%22%20fill%3D%22%23FFFFFF%22%3E%3C%2Fpolygon%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%287.583333333333371%2024.43208025547733%29%22%3E%3Cg%20clip-path%3D%22url%28%23i5%29%22%3E%3Cpolygon%20points%3D%220%2C0%2037.1944444%2C0%2037.1944444%2C12.5390071%200%2C12.5390071%200%2C0%22%20stroke%3D%22none%22%20fill%3D%22%23FFFFFF%22%3E%3C%2Fpolygon%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2077.6%2077.6%22%20style%3D%22enable-background%3Anew%200%200%2077.6%2077.6%3B%22%3E%3Cg%3E%3Cpath%20fill%3D%22%232C2F73%22%20d%3D%22M77.6%2C55.1c-4.9%2C1.4-11.4%2C1.9-16.2%2C2l-22.7-45.8h-1.3l-22.6%2C45.8c-4.8-0.1-10.5-0.6-15.4-2l28.7-53.7h20.5%20L77.6%2C55.1z%22%3E%3C%2Fpath%3E%3Cpath%20fill%3D%22%235EBFD4%22%20d%3D%22M47.7%2C41.4c0%2C5.3-4.3%2C9.5-9.6%2C9.5c-5.3%2C0-9.5-4.3-9.5-9.5c0-5.3%2C4.3-9.5%2C9.5-9.5%20C43.4%2C31.9%2C47.7%2C36.1%2C47.7%2C41.4%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%230078d4%3Bstroke-width%3A0px%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Crect%20class%3D%22cls-1%22%20x%3D%2224.25%22%20y%3D%2224.25%22%20width%3D%2298.35%22%20height%3D%2298.35%22%2F%3E%3Crect%20class%3D%22cls-1%22%20x%3D%22133.4%22%20y%3D%2224.25%22%20width%3D%2298.35%22%20height%3D%2298.35%22%2F%3E%3Crect%20class%3D%22cls-1%22%20x%3D%2224.25%22%20y%3D%22133.4%22%20width%3D%2298.35%22%20height%3D%2298.35%22%2F%3E%3Crect%20class%3D%22cls-1%22%20x%3D%22133.4%22%20y%3D%22133.4%22%20width%3D%2298.35%22%20height%3D%2298.35%22%2F%3E%3C%2Fsvg%3E\"","import React, { useState } from 'react';\n\nimport styled, { type CSSProperties } from 'styled-components';\n\nimport { type DeviceCredential } from '@reachfive/identity-core';\n\nimport { Card, CloseIcon } from '../../components/form/cardComponent';\nimport { createForm } from '../../components/form/formComponent';\nimport { buildFormFields } from '../../components/form/formFieldFactory';\nimport { Heading, Info, MutedText, Paragraph } from '../../components/miscComponent';\nimport { createWidget } from '../../components/widget/widget';\nimport { useConfig } from '../../contexts/config';\nimport { useI18n } from '../../contexts/i18n';\nimport { useReachfive } from '../../contexts/reachfive';\nimport { UserError } from '../../helpers/errors';\n// Source https://github.com/passkeydeveloper/passkey-authenticator-aaguids\nimport { ReactComponent as FingerPrint } from '../../icons/fingerprint.svg';\nimport { ReactComponent as OnePassword } from '../../icons/webauthn/1password.svg';\nimport { ReactComponent as Apple } from '../../icons/webauthn/apple.svg';\nimport { ReactComponent as Bitwarden } from '../../icons/webauthn/bitwarden.svg';\nimport { ReactComponent as Chrome } from '../../icons/webauthn/chrome.svg';\nimport { ReactComponent as Dashlane } from '../../icons/webauthn/dashlane.svg';\nimport { ReactComponent as Edge } from '../../icons/webauthn/edge.svg';\nimport { ReactComponent as Enpass } from '../../icons/webauthn/enpass.svg';\nimport { ReactComponent as GooglePasswordManager } from '../../icons/webauthn/google-password-manager.svg';\nimport { ReactComponent as IDmelon } from '../../icons/webauthn/idmelon.svg';\nimport { ReactComponent as KeePassXC } from '../../icons/webauthn/keepassxc.svg';\nimport { ReactComponent as Keeper } from '../../icons/webauthn/keeper.svg';\nimport { ReactComponent as NordPass } from '../../icons/webauthn/nordpass.svg';\nimport { ReactComponent as ProtonPass } from '../../icons/webauthn/proton-pass.svg';\nimport { ReactComponent as SamsungPass } from '../../icons/webauthn/samsung-pass.svg';\nimport { ReactComponent as Thales } from '../../icons/webauthn/thales.svg';\nimport { ReactComponent as WindowsHello } from '../../icons/webauthn/windows-hello.svg';\n\n// Source https://github.com/passkeydeveloper/passkey-authenticator-aaguids\n\nimport type { OnError, OnSuccess } from '../../types';\n\nconst DeviceName = styled.div`\n    font-weight: bold;\n    line-height: 2;\n`;\n\ntype DeviceInputFormData = {\n    friendlyName: string;\n};\n\nconst DeviceInputForm = createForm<DeviceInputFormData>({\n    prefix: 'r5-device-editor-',\n    submitLabel: 'add',\n    supportMultipleSubmits: true,\n    resetAfterSuccess: true,\n});\n\nconst DevicesListWrapper = styled.div`\n    margin-bottom: ${props => props.theme.spacing}px;\n`;\n\ninterface DevicesListProps {\n    devices: DeviceCredential[];\n    removeWebAuthnDevice: (id: string) => Promise<void>;\n}\n\nconst dateFormat = (dateString: string, locales?: Intl.LocalesArgument) =>\n    new Date(dateString).toLocaleDateString(locales, {\n        timeZone: 'UTC',\n        year: 'numeric',\n        month: 'short',\n        day: '2-digit',\n        hour: '2-digit',\n        minute: '2-digit',\n    });\n\nconst iconStyle: CSSProperties = {\n    width: '40px',\n    height: '40px',\n};\nconst CardContent = styled.div`\n    display: flex;\n    align-items: center;\n`;\nconst CardIcon = styled.div`\n    flex-shrink: 0;\n    margin-right: 16px;\n`;\n\nconst CardText = styled.div`\n    flex-grow: 1;\n`;\n\nconst DevicesList = ({ devices, removeWebAuthnDevice }: DevicesListProps) => {\n    const i18n = useI18n();\n    const config = useConfig();\n\n    return (\n        <DevicesListWrapper>\n            <Heading>{i18n('webauthn.registredDevices.list')}</Heading>\n\n            <div>\n                {devices.map(device => {\n                    const { id, friendlyName, createdAt, lastUsedAt, aaguid } = device;\n                    const [provider, Icon] = getProviderData(aaguid ?? '');\n\n                    return (\n                        <Card key={id} data-testid=\"device\">\n                            <CardContent>\n                                <CardIcon>\n                                    <Icon style={iconStyle} />\n                                </CardIcon>\n                                <CardText>\n                                    <DeviceName data-testid=\"device-name\">\n                                        {friendlyName}\n                                    </DeviceName>\n                                    {provider && (\n                                        <div data-testid=\"device-provider\">{provider}</div>\n                                    )}\n                                    {createdAt && (\n                                        <div data-testid=\"device-created-at\">\n                                            {i18n('webauthn.registredDevices.createdAt')}:&nbsp;\n                                            <time dateTime={createdAt}>\n                                                {dateFormat(createdAt, config.language)}\n                                            </time>\n                                        </div>\n                                    )}\n                                    {lastUsedAt && (\n                                        <div data-testid=\"device-last-used-at\">\n                                            {i18n('webauthn.registredDevices.lastUsedAt')}:&nbsp;\n                                            <time dateTime={lastUsedAt}>\n                                                {dateFormat(lastUsedAt, config.language)}\n                                            </time>\n                                        </div>\n                                    )}\n                                </CardText>\n                            </CardContent>\n                            <CloseIcon\n                                title={i18n('remove')}\n                                onClick={() => removeWebAuthnDevice(id)}\n                                data-testid=\"device-remove\"\n                            />\n                        </Card>\n                    );\n                })}\n            </div>\n        </DevicesListWrapper>\n    );\n};\n\nexport interface WebAuthnDevicesProps {\n    /**\n     * The authorization credential JSON Web Token (JWT) used to access the ReachFive API, less than five minutes old.\n     */\n    accessToken: string;\n    /**\n     * Registred FIDO2 devices\n     */\n    devices: DeviceCredential[];\n    /**\n     * Whether the form fields's labels are displayed on the login view.\n     *\n     * @default false\n     */\n    showLabels?: boolean;\n    /**\n     * Callback function called when the request has succeed.\n     */\n    onSuccess?: OnSuccess;\n    /**\n     * Callback function called when the request has failed.\n     */\n    onError?: OnError;\n}\n\nfunction WebAuthnDevices({\n    accessToken,\n    devices: initDevices,\n    showLabels = false,\n    onError = (() => {}) as OnError,\n    onSuccess = (() => {}) as OnSuccess,\n}: WebAuthnDevicesProps) {\n    const coreClient = useReachfive();\n    const config = useConfig();\n    const i18n = useI18n();\n\n    const [devices, setDevices] = useState<DeviceCredential[]>(initDevices || []);\n\n    const removeWebAuthnDevice = async (deviceId: string) => {\n        if (!confirm(i18n('webauthn.registredDevices.confirm.removal'))) return;\n\n        try {\n            await coreClient.removeWebAuthnDevice(accessToken, deviceId);\n            onSuccess({ name: 'webauthn_credential_deleted', deviceId });\n            const newDevices = await coreClient.listWebAuthnDevices(accessToken);\n            setDevices(newDevices);\n        } catch (error) {\n            onError(error);\n        }\n    };\n\n    const addNewWebAuthnDevice = ({ friendlyName }: DeviceInputFormData) => {\n        return coreClient.addNewWebAuthnDevice(accessToken, friendlyName).then(() => {\n            onSuccess({ name: 'webauthn_credential_created', friendlyName });\n            return coreClient\n                .listWebAuthnDevices(accessToken)\n                .then(newDevices => setDevices(newDevices));\n        });\n    };\n\n    const fields = buildFormFields(['friendly_name'], config);\n\n    return (\n        <div>\n            {devices.length === 0 ? (\n                <Info>{i18n('webauthn.registredDevices.no.list')}</Info>\n            ) : (\n                <DevicesList devices={devices} removeWebAuthnDevice={removeWebAuthnDevice} />\n            )}\n\n            <Paragraph align=\"center\">\n                <MutedText>{i18n('webauthn.registredDevices.add')}</MutedText>\n            </Paragraph>\n\n            <DeviceInputForm\n                fields={fields}\n                showLabels={showLabels}\n                handler={addNewWebAuthnDevice}\n                onError={onError}\n            />\n        </div>\n    );\n}\n\nexport type WebAuthnWidgetProps = Omit<WebAuthnDevicesProps, 'devices'>;\n\nexport default createWidget<WebAuthnWidgetProps, WebAuthnDevicesProps>({\n    name: 'webauthn-devices',\n    component: WebAuthnDevices,\n    prepare: (options, { apiClient, config }) => {\n        const { accessToken } = options;\n\n        if (!config.webAuthn) {\n            const error = new UserError('The WebAuthn feature is not available on your account.');\n            options.onError?.(error);\n            throw error;\n        }\n\n        if (!accessToken) {\n            const error = new UserError('You must be logged in to manage the FIDO2 devices.');\n            options.onError?.(error);\n            throw error;\n        }\n\n        return apiClient\n            .listWebAuthnDevices(accessToken)\n            .then(devices => ({\n                ...options,\n                devices,\n            }))\n            .catch(err => {\n                options.onError?.(err);\n                throw err;\n            });\n    },\n});\n\nconst providerData = new Map<\n    string,\n    [string, React.FunctionComponent<React.SVGAttributes<SVGElement>> | null]\n>([\n    ['ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4', ['Google Password Manager', GooglePasswordManager]],\n    ['adce0002-35bc-c60a-648b-0b25f1f05503', ['Chrome on Mac', Chrome]],\n    ['08987058-cadc-4b81-b6e1-30de50dcbe96', ['Windows Hello', WindowsHello]],\n    ['9ddd1817-af5a-4672-a2b9-3e3dd95000a9', ['Windows Hello', WindowsHello]],\n    ['6028b017-b1d4-4c02-b4b3-afcdafc96bb2', ['Windows Hello', WindowsHello]],\n    ['dd4ec289-e01d-41c9-bb89-70fa845d4bf2', ['iCloud Keychain (Managed)', Apple]],\n    ['531126d6-e717-415c-9320-3d9aa6981239', ['Dashlane', Dashlane]],\n    ['bada5566-a7aa-401f-bd96-45619a55120d', ['1Password', OnePassword]],\n    ['b84e4048-15dc-4dd0-8640-f4f60813c8af', ['NordPass', NordPass]],\n    ['0ea242b4-43c4-4a1b-8b17-dd6d0b6baec6', ['Keeper', Keeper]],\n    ['f3809540-7f14-49c1-a8b3-8f813b225541', ['Enpass', Enpass]],\n    ['b5397666-4885-aa6b-cebf-e52262a439a2', ['Chromium Browser', null]],\n    ['771b48fd-d3d4-4f74-9232-fc157ab0507a', ['Edge on Mac', Edge]],\n    ['39a5647e-1853-446c-a1f6-a79bae9f5bc7', ['IDmelon', IDmelon]],\n    ['d548826e-79b4-db40-a3d8-11116f7e8349', ['Bitwarden', Bitwarden]],\n    ['fbfc3007-154e-4ecc-8c0b-6e020557d7bd', ['iCloud Keychain', Apple]],\n    ['53414d53-554e-4700-0000-000000000000', ['Samsung Pass', SamsungPass]],\n    ['66a0ccb3-bd6a-191f-ee06-e375c50b9846', ['Thales Bio iOS SDK', Thales]],\n    ['8836336a-f590-0921-301d-46427531eee6', ['Thales Bio Android SDK', Thales]],\n    ['cd69adb5-3c7a-deb9-3177-6800ea6cb72a', ['Thales PIN Android SDK', Thales]],\n    ['17290f1e-c212-34d0-1423-365d729f09d9', ['Thales PIN iOS SDK', Thales]],\n    ['50726f74-6f6e-5061-7373-50726f746f6e', ['Proton Pass', ProtonPass]],\n    ['fdb141b2-5d84-443e-8a35-4698c205a502', ['KeePassXC', KeePassXC]],\n]);\n\nfunction getProviderData(\n    aaguid: string\n): [string | null, React.FunctionComponent<React.SVGAttributes<SVGElement>>] {\n    const data = providerData.get(aaguid);\n\n    if (data === undefined) {\n        return [null, FingerPrint];\n    } else {\n        const [provider, icon] = data;\n        return [provider, icon ?? FingerPrint];\n    }\n}\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport type { AuthOptions, Client as CoreClient, SessionInfo } from '@reachfive/identity-core';\n\nimport { ErrorText } from './components/miscComponent';\nimport { type I18nMessages } from './contexts/i18n';\nimport { UserError } from './helpers/errors';\nimport { logError } from './helpers/logger';\nimport { Config, Prettify } from './types';\nimport accountRecoveryWidget, {\n    type AccountRecoveryWidgetProps,\n} from './widgets/accountRecovery/accountRecoveryWidget.tsx';\nimport authWidget, { type AuthWidgetProps } from './widgets/auth/authWidget';\nimport emailEditorWidget, {\n    type EmailEditorWidgetProps,\n} from './widgets/emailEditor/emailEditorWidget';\nimport mfaCredentialsWidget, {\n    type MfaCredentialsWidgetProps,\n} from './widgets/mfa/MfaCredentialsWidget';\nimport mfaListWidget, { type MfaListWidgetProps } from './widgets/mfa/mfaListWidget';\nimport trustedDevicesWidget, {\n    type TrustedDeviceWidgetProps,\n} from './widgets/mfa/trustedDevicesWidget.tsx';\nimport passwordEditorWidget, {\n    type PasswordEditorWidgetProps,\n} from './widgets/passwordEditor/passwordEditorWidget';\nimport passwordlessWidget, {\n    type PasswordlessWidgetProps,\n} from './widgets/passwordless/passwordlessWidget';\nimport passwordResetWidget, {\n    type PasswordResetWidgetProps,\n} from './widgets/passwordReset/passwordResetWidget';\nimport phoneNumberEditorWidget, {\n    type PhoneNumberEditorWidgetProps,\n} from './widgets/phoneNumberEditor/phoneNumberEditorWidget';\nimport profileEditorWidget, {\n    type ProfileEditorWidgetProps,\n} from './widgets/profileEditor/profileEditorWidget';\nimport socialAccountsWidget, {\n    type SocialAccountsWidgetProps,\n} from './widgets/socialAccounts/socialAccountsWidget';\nimport socialLoginWidget, {\n    type SocialLoginWidgetProps,\n} from './widgets/socialLogin/socialLoginWidget';\nimport mfaStepUpWidget, { type MfaStepUpWidgetProps } from './widgets/stepUp/mfaStepUpWidget';\nimport webAuthnWidget, { type WebAuthnWidgetProps } from './widgets/webAuthn/webAuthnDevicesWidget';\n\nimport type { Context, I18nProps, ThemeProps } from './components/widget/widget';\n\nexport interface WidgetInstance {\n    destroy(): void;\n}\n\nexport interface WidgetProps {\n    /** The DOM element or the `id` of a DOM element in which the widget should be embedded. */\n    container: string | HTMLElement;\n    /**\n     * The [ISO country](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code useful to format phone numbers.\n     * Defaults to the predefined country code in your account settings or `FR`.\n     */\n    countryCode?: string;\n    /**\n     * Callback function called after the widget has been successfully loaded and rendered inside the container.\n     * The callback is called with the widget instance.\n     */\n    onReady?: (instance: WidgetInstance) => void;\n}\n\n// type PropsWithWidgetProps<P> = P & WidgetProps\ntype WidgetOptions<P> = Prettify<P & WidgetProps & I18nProps & ThemeProps>;\n\ntype Widget<P> = (props: P, ctx: Context) => Promise<React.JSX.Element>;\n\n// type WidgetOptions<W> = PropsWithWidgetProps<W extends Widget<infer P> ? P : never[0]>\n\nexport class UiClient {\n    config: Config;\n    core: CoreClient;\n    defaultI18n: I18nMessages;\n\n    constructor(config: Config, coreClient: CoreClient, defaultI18n: I18nMessages) {\n        this.config = config;\n        this.core = coreClient;\n        this.defaultI18n = defaultI18n;\n    }\n\n    showAuth(options: WidgetOptions<AuthWidgetProps>) {\n        this._ssoCheck(authWidget, options);\n    }\n\n    showAccountRecovery(options: WidgetOptions<AccountRecoveryWidgetProps>) {\n        this._showWidget(accountRecoveryWidget, options);\n    }\n\n    showSocialLogin(options: WidgetOptions<SocialLoginWidgetProps>) {\n        this._ssoCheck(socialLoginWidget, options);\n    }\n\n    showPasswordless(options: WidgetOptions<PasswordlessWidgetProps>) {\n        this._ssoCheck(passwordlessWidget, options);\n    }\n\n    showEmailEditor(options: WidgetOptions<EmailEditorWidgetProps>) {\n        this._showWidget(emailEditorWidget, options);\n    }\n\n    showPasswordEditor(options: WidgetOptions<PasswordEditorWidgetProps>) {\n        this._showWidget(passwordEditorWidget, options);\n    }\n\n    showPhoneNumberEditor(options: WidgetOptions<PhoneNumberEditorWidgetProps>) {\n        this._showWidget(phoneNumberEditorWidget, options);\n    }\n\n    showProfileEditor(options: WidgetOptions<ProfileEditorWidgetProps>) {\n        this._showWidget(profileEditorWidget, options);\n    }\n\n    showPasswordReset(options: WidgetOptions<PasswordResetWidgetProps>) {\n        this._showWidget(passwordResetWidget, options);\n    }\n\n    showSocialAccounts(options: WidgetOptions<SocialAccountsWidgetProps>) {\n        this._showWidget(socialAccountsWidget, options);\n    }\n\n    showWebAuthnDevices(options: WidgetOptions<WebAuthnWidgetProps>) {\n        this._showWidget(webAuthnWidget, options);\n    }\n\n    showMfa(options: WidgetOptions<MfaCredentialsWidgetProps>) {\n        this._showWidget(mfaCredentialsWidget, options);\n    }\n\n    showStepUp(options: WidgetOptions<MfaStepUpWidgetProps>) {\n        this._showWidget(mfaStepUpWidget, options);\n    }\n\n    showMfaCredentials(options: WidgetOptions<MfaListWidgetProps>) {\n        this._showWidget(mfaListWidget, options);\n    }\n\n    showTrustedDevices(options: WidgetOptions<TrustedDeviceWidgetProps>) {\n        this._showWidget(trustedDevicesWidget, options);\n    }\n\n    async _showWidget<P extends WidgetProps>(\n        widget: Widget<Omit<P, keyof WidgetProps>>,\n        options: P = {} as P,\n        props = {}\n    ) {\n        const { container: _c1, countryCode: _c2, onReady: _c3, ...widgetProps } = options;\n\n        const container =\n            typeof options.container === 'string'\n                ? document.getElementById(options.container)\n                : options.container;\n\n        if (!container) {\n            const containerName =\n                typeof options.container === 'string' ? options.container : 'element';\n            throw new Error(`Container '#${containerName}' not found.`);\n        }\n\n        const root = createRoot(container);\n\n        try {\n            const config = {\n                ...this.config,\n                countryCode: options.countryCode ?? this.config.countryCode ?? 'FR',\n            };\n\n            const WidgetComponent = await widget(widgetProps, {\n                ...props,\n                config,\n                apiClient: this.core,\n                defaultI18n: this.defaultI18n,\n            });\n\n            root.render(WidgetComponent);\n\n            if (options.onReady && typeof options.onReady === 'function') {\n                options.onReady({\n                    destroy() {\n                        root.unmount();\n                    },\n                });\n            }\n        } catch (error) {\n            const message = this.adaptError(error);\n            root.render(<ErrorText>{message}</ErrorText>);\n            this.handleError(error);\n        }\n    }\n\n    _ssoCheck<P extends WidgetProps>(\n        widget: Widget<Omit<P, keyof WidgetProps>>,\n        options: P & { auth?: AuthOptions }\n    ) {\n        const { auth = {} } = options;\n        const showAuthWidget = (session?: SessionInfo) =>\n            this._showWidget(widget, options, { session });\n\n        if (this.config.sso || auth.idTokenHint || auth.loginHint) {\n            setTimeout(\n                () =>\n                    Promise.resolve(this.core.checkUrlFragment(window.location.href)).then(\n                        authResult => {\n                            // Avoid authentication triggering when an authentication response is present\n                            if (authResult) return;\n\n                            this.core\n                                .getSessionInfo()\n                                .then(session => {\n                                    const reAuthenticate = auth?.prompt === 'login';\n\n                                    if (session.isAuthenticated && !reAuthenticate) {\n                                        this.core.loginFromSession(auth);\n                                    } else {\n                                        showAuthWidget(session);\n                                    }\n                                })\n                                .catch((err: unknown) => {\n                                    logError(err instanceof Error ? err : String(err));\n                                    showAuthWidget();\n                                });\n                        }\n                    ),\n                0\n            );\n        } else {\n            showAuthWidget();\n        }\n    }\n\n    adaptError(error: unknown): string {\n        return error instanceof UserError\n            ? error.message\n            : error instanceof Error\n              ? error.message\n              : 'Unexpected error';\n    }\n\n    handleError(error: unknown): void {\n        if (error instanceof UserError) {\n            const message = this.adaptError(error);\n            logError(`ReachFive widget display fails: ${message}`);\n        } else if (error instanceof Error || typeof error === 'string') {\n            logError(error);\n        }\n    }\n}\n","import type {\n    Config,\n    ConsentVersions,\n    Client as CoreClient,\n    RemoteSettings,\n} from '@reachfive/identity-core';\nimport { createClient as createCoreClient } from '@reachfive/identity-core';\n\nimport { UiClient } from './client';\nimport { toQueryString } from './helpers/queryString';\nimport { camelCaseProperties } from './helpers/transformObjectProperties';\n\nexport type { Config } from '@reachfive/identity-core';\n\nexport type Client = {\n    core: CoreClient;\n    showAuth: InstanceType<typeof UiClient>['showAuth'];\n    showAccountRecovery: InstanceType<typeof UiClient>['showAccountRecovery'];\n    showEmailEditor: InstanceType<typeof UiClient>['showEmailEditor'];\n    showPasswordEditor: InstanceType<typeof UiClient>['showPasswordEditor'];\n    showPhoneNumberEditor: InstanceType<typeof UiClient>['showPhoneNumberEditor'];\n    showPasswordReset: InstanceType<typeof UiClient>['showPasswordReset'];\n    showPasswordless: InstanceType<typeof UiClient>['showPasswordless'];\n    showProfileEditor: InstanceType<typeof UiClient>['showProfileEditor'];\n    showSocialAccounts: InstanceType<typeof UiClient>['showSocialAccounts'];\n    showSocialLogin: InstanceType<typeof UiClient>['showSocialLogin'];\n    showWebAuthnDevices: InstanceType<typeof UiClient>['showWebAuthnDevices'];\n    showMfa: InstanceType<typeof UiClient>['showMfa'];\n    showMfaCredentials: InstanceType<typeof UiClient>['showMfaCredentials'];\n    showStepUp: InstanceType<typeof UiClient>['showStepUp'];\n    showTrustedDevices: InstanceType<typeof UiClient>['showTrustedDevices'];\n};\n\nexport function createClient(creationConfig: Config): Client {\n    const coreClient = createCoreClient(creationConfig);\n\n    const client = coreClient.remoteSettings.then(remoteSettings => {\n        const remoteConfig = camelCaseProperties(remoteSettings) as RemoteSettings;\n        const language = creationConfig.language ?? remoteSettings.language;\n\n        return fetch(\n            `https://${creationConfig.domain}/identity/v1/config/consents?${toQueryString({ lang: language })}`\n        )\n            .then(response => response.json())\n            .then((consentsVersions: Record<string, ConsentVersions>) => {\n                return fetch(`${remoteConfig.resourceBaseUrl}/${language}.json`)\n                    .then(response => response.json())\n                    .then(defaultI18n => {\n                        const config = {\n                            ...creationConfig,\n                            ...remoteConfig,\n                            consentsVersions: Object.fromEntries(\n                                Object.entries(consentsVersions).map(([key, value]) => [\n                                    key, // consents keys should be snake_case\n                                    camelCaseProperties(value) as ConsentVersions,\n                                ])\n                            ),\n                        };\n                        return new UiClient(config, coreClient, defaultI18n);\n                    });\n            });\n    });\n\n    return {\n        core: coreClient,\n        showAuth: (options: Parameters<Awaited<typeof client>['showAuth']>[0]) =>\n            client.then(client => client.showAuth(options)),\n        showAccountRecovery: (\n            options: Parameters<Awaited<typeof client>['showAccountRecovery']>[0]\n        ) => client.then(client => client.showAccountRecovery(options)),\n        showEmailEditor: (options: Parameters<Awaited<typeof client>['showEmailEditor']>[0]) =>\n            client.then(client => client.showEmailEditor(options)),\n        showPasswordEditor: (\n            options: Parameters<Awaited<typeof client>['showPasswordEditor']>[0]\n        ) => client.then(client => client.showPasswordEditor(options)),\n        showPhoneNumberEditor: (\n            options: Parameters<Awaited<typeof client>['showPhoneNumberEditor']>[0]\n        ) => client.then(client => client.showPhoneNumberEditor(options)),\n        showPasswordReset: (options: Parameters<Awaited<typeof client>['showPasswordReset']>[0]) =>\n            client.then(client => client.showPasswordReset(options)),\n        showPasswordless: (options: Parameters<Awaited<typeof client>['showPasswordless']>[0]) =>\n            client.then(client => client.showPasswordless(options)),\n        showProfileEditor: (options: Parameters<Awaited<typeof client>['showProfileEditor']>[0]) =>\n            client.then(client => client.showProfileEditor(options)),\n        showSocialAccounts: (\n            options: Parameters<Awaited<typeof client>['showSocialAccounts']>[0]\n        ) => client.then(client => client.showSocialAccounts(options)),\n        showSocialLogin: (options: Parameters<Awaited<typeof client>['showSocialLogin']>[0]) =>\n            client.then(client => client.showSocialLogin(options)),\n        showWebAuthnDevices: (\n            options: Parameters<Awaited<typeof client>['showWebAuthnDevices']>[0]\n        ) => client.then(client => client.showWebAuthnDevices(options)),\n        showMfa: (options: Parameters<Awaited<typeof client>['showMfa']>[0]) =>\n            client.then(client => client.showMfa(options)),\n        showMfaCredentials: (\n            options: Parameters<Awaited<typeof client>['showMfaCredentials']>[0]\n        ) => client.then(client => client.showMfaCredentials(options)),\n        showStepUp: (options: Parameters<Awaited<typeof client>['showStepUp']>[0]) =>\n            client.then(client => client.showStepUp(options)),\n        showTrustedDevices: (\n            options: Parameters<Awaited<typeof client>['showTrustedDevices']>[0]\n        ) => client.then(client => client.showTrustedDevices(options)),\n    };\n}\n","export default {\n  \"ext\": \"مفتاح.\",\n  \"country\": \"الدولة\",\n  \"phone\": \"رقم الهاتف\",\n  \"AB\": \"أبخازيا\",\n  \"AC\": \"جزيرة أسنسيون\",\n  \"AD\": \"أندورا\",\n  \"AE\": \"الإمارات العربية المتحدة\",\n  \"AF\": \"أفغانستان\",\n  \"AG\": \"أنتيغوا وباربودا\",\n  \"AI\": \"أنغيلا\",\n  \"AL\": \"ألبانيا\",\n  \"AM\": \"أرمينيا\",\n  \"AO\": \"أنغولا\",\n  \"AQ\": \"القارة القطبية الجنوبية\",\n  \"AR\": \"الأرجنتين\",\n  \"AS\": \"ساموا الأمريكية\",\n  \"AT\": \"النمسا\",\n  \"AU\": \"أستراليا\",\n  \"AW\": \"أروبا\",\n  \"AX\": \"جزر آلاند\",\n  \"AZ\": \"أذربيجان\",\n  \"BA\": \"البوسنة والهرسك\",\n  \"BB\": \"باربادوس\",\n  \"BD\": \"بنغلاديش\",\n  \"BE\": \"بلجيكا\",\n  \"BF\": \"بوركينا فاسو\",\n  \"BG\": \"بلغاريا\",\n  \"BH\": \"البحرين\",\n  \"BI\": \"بوروندي\",\n  \"BJ\": \"بنين\",\n  \"BL\": \"سانت بارتيليمي\",\n  \"BM\": \"برمودا\",\n  \"BN\": \"بروناي\",\n  \"BO\": \"بوليفيا\",\n  \"BQ\": \"بونير وسانت يوستاتيوس وسابا\",\n  \"BR\": \"البرازيل\",\n  \"BS\": \"باهاماس\",\n  \"BT\": \"بوتان\",\n  \"BV\": \"جزيرة بوفيت\",\n  \"BW\": \"بوتسوانا\",\n  \"BY\": \"بيلاروس\",\n  \"BZ\": \"بليز\",\n  \"CA\": \"كندا\",\n  \"CC\": \"جزر كوكوس (كيلينغ)\",\n  \"CD\": \"جمهورية الكونغو الديمقراطية\",\n  \"CF\": \"جمهورية أفريقيا الوسطى\",\n  \"CG\": \"جمهورية الكونغو\",\n  \"CH\": \"سويسرا\",\n  \"CI\": \"ساحل العاج\",\n  \"CK\": \"جزر كوك\",\n  \"CL\": \"تشيلي\",\n  \"CM\": \"الكاميرون\",\n  \"CN\": \"الصين\",\n  \"CO\": \"كولومبيا\",\n  \"CR\": \"كوستاريكا\",\n  \"CU\": \"كوبا\",\n  \"CV\": \"الرأس الأخضر\",\n  \"CW\": \"كوراساو\",\n  \"CX\": \"جزيرة الكريسماس\",\n  \"CY\": \"قبرص\",\n  \"CZ\": \"جمهورية التشيك\",\n  \"DE\": \"ألمانيا\",\n  \"DJ\": \"جيبوتي\",\n  \"DK\": \"الدنمارك\",\n  \"DM\": \"دومينيكا\",\n  \"DO\": \"جمهورية الدومينيكان\",\n  \"DZ\": \"الجزائر\",\n  \"EC\": \"الإكوادور\",\n  \"EE\": \"إستونيا\",\n  \"EG\": \"مصر\",\n  \"EH\": \"الصحراء الغربية\",\n  \"ER\": \"إريتريا\",\n  \"ES\": \"إسبانيا\",\n  \"ET\": \"إثيوبيا\",\n  \"FI\": \"فنلندا\",\n  \"FJ\": \"فيجي\",\n  \"FK\": \"جزر فوكلاند\",\n  \"FM\": \"ولايات ميكرونيسيا المتحدة\",\n  \"FO\": \"جزر فاروس\",\n  \"FR\": \"فرنسا\",\n  \"GA\": \"الغابون\",\n  \"GB\": \"المملكة المتحدة\",\n  \"GD\": \"غرينادا\",\n  \"GE\": \"جورجيا\",\n  \"GF\": \"غيانا الفرنسية\",\n  \"GG\": \"غيرنسي\",\n  \"GH\": \"غانا\",\n  \"GI\": \"جبل طارق\",\n  \"GL\": \"الأرض الخضراء\",\n  \"GM\": \"غامبيا\",\n  \"GN\": \"غينيا\",\n  \"GP\": \"جوادلوب\",\n  \"GQ\": \"غينيا الاستوائية\",\n  \"GR\": \"اليونان\",\n  \"GS\": \"جورجيا الجنوبية وجزر ساندويتش الجنوبية\",\n  \"GT\": \"غواتيمالا\",\n  \"GU\": \"غوام\",\n  \"GW\": \"غينيا بيساو\",\n  \"GY\": \"غيانا\",\n  \"HK\": \"هونج كونج\",\n  \"HM\": \"قلب الجزيرة وجزر ماكدونالز\",\n  \"HN\": \"هندوراس\",\n  \"HR\": \"كرواتيا\",\n  \"HT\": \"هايتي\",\n  \"HU\": \"المجر\",\n  \"ID\": \"إندونيسيا\",\n  \"IE\": \"أيرلندا\",\n  \"IL\": \"إسرائيل\",\n  \"IM\": \"جزيرة آيل أوف مان\",\n  \"IN\": \"الهند\",\n  \"IO\": \"إقليم المحيط البريطاني الهندي\",\n  \"IQ\": \"العراق\",\n  \"IR\": \"إيران\",\n  \"IS\": \"آيسلندا\",\n  \"IT\": \"إيطاليا\",\n  \"JE\": \"جيرسي\",\n  \"JM\": \"جامايكا\",\n  \"JO\": \"الأردن\",\n  \"JP\": \"اليابان\",\n  \"KE\": \"كينيا\",\n  \"KG\": \"قيرغيزستان\",\n  \"KH\": \"كمبوديا\",\n  \"KI\": \"كيريباتي\",\n  \"KM\": \"جزر القمر\",\n  \"KN\": \"سانت كيتس ونيفيس\",\n  \"KP\": \"كوريا الشمالية\",\n  \"KR\": \"كوريا الجنوبية\",\n  \"KW\": \"الكويت\",\n  \"KY\": \"جزر كايمان\",\n  \"KZ\": \"كازاخستان\",\n  \"LA\": \"لاوس\",\n  \"LB\": \"لبنان\",\n  \"LC\": \"سانت لوسيا\",\n  \"LI\": \"ليختنشتاين\",\n  \"LK\": \"سريلانكا\",\n  \"LR\": \"ليبيريا\",\n  \"LS\": \"ليسوتو\",\n  \"LT\": \"ليتوانيا\",\n  \"LU\": \"لوكسمبورغ\",\n  \"LV\": \"لاتفيا\",\n  \"LY\": \"ليبيا\",\n  \"MA\": \"المغرب\",\n  \"MC\": \"موناكو\",\n  \"MD\": \"مولدوفا\",\n  \"ME\": \"الجبل الأسود\",\n  \"MF\": \"سانت مارتن (الجزء الفرنسي)\",\n  \"MG\": \"مدغشقر\",\n  \"MH\": \"جزر مارشال\",\n  \"MK\": \"مقدونيا\",\n  \"ML\": \"مالي\",\n  \"MM\": \"ميانمار\",\n  \"MN\": \"منغوليا\",\n  \"MO\": \"ماكاو\",\n  \"MP\": \"جزر مريانا الشمالية\",\n  \"MQ\": \"مارتينيك\",\n  \"MR\": \"موريتانيا\",\n  \"MS\": \"مونتسيرات\",\n  \"MT\": \"مالطا\",\n  \"MU\": \"موريشيوس\",\n  \"MV\": \"جزر المالديف\",\n  \"MW\": \"مالاوي\",\n  \"MX\": \"المكسيك\",\n  \"MY\": \"ماليزيا\",\n  \"MZ\": \"موزمبيق\",\n  \"NA\": \"ناميبيا\",\n  \"NC\": \"كاليدونيا الجديدة\",\n  \"NE\": \"النيجر\",\n  \"NF\": \"جزيرة نورفولك\",\n  \"NG\": \"نيجيريا\",\n  \"NI\": \"نيكاراغوا\",\n  \"NL\": \"هولندا\",\n  \"NO\": \"النرويج\",\n  \"NP\": \"نيبال\",\n  \"NR\": \"ناورو\",\n  \"NU\": \"نيوي\",\n  \"NZ\": \"نيوزيلندا\",\n  \"OM\": \"عمان\",\n  \"OS\": \"أوسيتيا الجنوبية\",\n  \"PA\": \"بنما\",\n  \"PE\": \"بيرو\",\n  \"PF\": \"بولينيزيا الفرنسية\",\n  \"PG\": \"بابوا غينيا الجديدة\",\n  \"PH\": \"الفلبين\",\n  \"PK\": \"باكستان\",\n  \"PL\": \"بولندا\",\n  \"PM\": \"سانت بيير وميكلون\",\n  \"PN\": \"بيتكيرن\",\n  \"PR\": \"بورتوريكو\",\n  \"PS\": \"فلسطين\",\n  \"PT\": \"البرتغال\",\n  \"PW\": \"بالاو\",\n  \"PY\": \"باراغواي\",\n  \"QA\": \"قطر\",\n  \"RE\": \"جمع شمل\",\n  \"RO\": \"رومانيا\",\n  \"RS\": \"صربيا\",\n  \"RU\": \"روسيا\",\n  \"RW\": \"رواندا\",\n  \"SA\": \"السعودية\",\n  \"SB\": \"جزر سليمان\",\n  \"SC\": \"سيشل\",\n  \"SD\": \"السودان\",\n  \"SE\": \"السويد\",\n  \"SG\": \"سنغافورة\",\n  \"SH\": \"سانت هيلانة\",\n  \"SI\": \"سلوفينيا\",\n  \"SJ\": \"سفالبارد وجان ماين\",\n  \"SK\": \"سلوفاكيا\",\n  \"SL\": \"سيراليون\",\n  \"SM\": \"سان مارينو\",\n  \"SN\": \"السنغال\",\n  \"SO\": \"الصومال\",\n  \"SR\": \"سورينام\",\n  \"SS\": \"جنوب السودان\",\n  \"ST\": \"ساو تومي وبرينسيب\",\n  \"SV\": \"السلفادور\",\n  \"SX\": \"سينت مارتن\",\n  \"SY\": \"سوريا\",\n  \"SZ\": \"إسواتيني\",\n  \"TA\": \"تريستان دا كونها\",\n  \"TC\": \"جزر تركس وكايكوس\",\n  \"TD\": \"تشاد\",\n  \"TF\": \"المناطق الجنوبية لفرنسا\",\n  \"TG\": \"توغو\",\n  \"TH\": \"تايلاند\",\n  \"TJ\": \"طاجيكستان\",\n  \"TK\": \"توكيلاو\",\n  \"TL\": \"تيمور الشرقية\",\n  \"TM\": \"تركمانستان\",\n  \"TN\": \"تونس\",\n  \"TO\": \"تونغا\",\n  \"TR\": \"تركيا\",\n  \"TT\": \"ترينيداد وتوباغو\",\n  \"TV\": \"توفالو\",\n  \"TW\": \"تايوان\",\n  \"TZ\": \"تنزانيا\",\n  \"UA\": \"أوكرانيا\",\n  \"UG\": \"أوغندا\",\n  \"UM\": \"جزر الولايات المتحدة البعيدة الصغرى\",\n  \"US\": \"الولايات المتحدة\",\n  \"UY\": \"الأوروغواي\",\n  \"UZ\": \"أوزبكستان\",\n  \"VA\": \"الكرسي الرسولي (دولة الفاتيكان)\",\n  \"VC\": \"سانت فينسنت والغرينادين\",\n  \"VE\": \"فنزويلا\",\n  \"VG\": \"جزر العذراء البريطانية\",\n  \"VI\": \"جزر فيرجن الأمريكية\",\n  \"VN\": \"فيتنام\",\n  \"VU\": \"فانواتو\",\n  \"WF\": \"واليس وفوتونا\",\n  \"WS\": \"ساموا\",\n  \"XK\": \"كوسوفو\",\n  \"YE\": \"اليمن\",\n  \"YT\": \"مايوت\",\n  \"ZA\": \"جنوب أفريقيا\",\n  \"ZM\": \"زامبيا\",\n  \"ZW\": \"زيمبابوي\",\n  \"ZZ\": \"دولي\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Número de telèfon del país\",\n  \"phone\": \"Telèfon\",\n  \"AB\": \"Abkhàzia\",\n  \"AC\": \"Illa Ascensió\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"Emirats Àrabs Units\",\n  \"AF\": \"Afganistan\",\n  \"AG\": \"Antigua i Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albània\",\n  \"AM\": \"Armènia\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antàrtida\",\n  \"AR\": \"Argentina\",\n  \"AS\": \"Samoa Americana\",\n  \"AT\": \"Àustria\",\n  \"AU\": \"Austràlia\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Illes Åland\",\n  \"AZ\": \"Azerbaidjan\",\n  \"BA\": \"Bòsnia i Hercegovina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladesh\",\n  \"BE\": \"Bèlgica\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgària\",\n  \"BH\": \"Bahrain\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benín\",\n  \"BL\": \"Saint Barthélemy\",\n  \"BM\": \"Bermudes\",\n  \"BN\": \"Brunei\",\n  \"BO\": \"Bolívia\",\n  \"BQ\": \"Carib Neerlandès\",\n  \"BR\": \"Brasil\",\n  \"BS\": \"Bahames\",\n  \"BT\": \"Bhutan\",\n  \"BV\": \"Illa Bouvet\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Bielorússia\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Canadà\",\n  \"CC\": \"Illes Cocos\",\n  \"CD\": \"Congo\",\n  \"CF\": \"República Centreafricana\",\n  \"CG\": \"Congo\",\n  \"CH\": \"Suïssa\",\n  \"CI\": \"Costa d'Ivori\",\n  \"CK\": \"Illes Cook\",\n  \"CL\": \"Xile\",\n  \"CM\": \"Camerun\",\n  \"CN\": \"Xina\",\n  \"CO\": \"Colòmbia\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Cuba\",\n  \"CV\": \"Cap Verd\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Illa de Nadal\",\n  \"CY\": \"Xipre\",\n  \"CZ\": \"República Txeca\",\n  \"DE\": \"Alemanya\",\n  \"DJ\": \"Djibouti\",\n  \"DK\": \"Dinamarca\",\n  \"DM\": \"Dominica\",\n  \"DO\": \"República Dominicana\",\n  \"DZ\": \"Algèria\",\n  \"EC\": \"Equador\",\n  \"EE\": \"Estònia\",\n  \"EG\": \"Egipte\",\n  \"EH\": \"Sàhara Occidental\",\n  \"ER\": \"Eritrea\",\n  \"ES\": \"Espanya\",\n  \"ET\": \"Etiòpia\",\n  \"FI\": \"Finlàndia\",\n  \"FJ\": \"Fiji\",\n  \"FK\": \"Illes Malvines\",\n  \"FM\": \"Micronèsia\",\n  \"FO\": \"Illes Fèroe\",\n  \"FR\": \"França\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"Regne Unit\",\n  \"GD\": \"Granada\",\n  \"GE\": \"Geòrgia\",\n  \"GF\": \"Guaiana Francesa\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Groenlàndia\",\n  \"GM\": \"Gàmbia\",\n  \"GN\": \"Guinea\",\n  \"GP\": \"Guadalupe\",\n  \"GQ\": \"Guinea Equatorial\",\n  \"GR\": \"Grècia\",\n  \"GS\": \"Illes Geòrgia del Sud i Sandwich del Sud\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guinea Bissau\",\n  \"GY\": \"Guyana\",\n  \"HK\": \"Hong Kong\",\n  \"HM\": \"Illes Heard i McDonald\",\n  \"HN\": \"Hondures\",\n  \"HR\": \"Croàcia\",\n  \"HT\": \"Haití\",\n  \"HU\": \"Hongria\",\n  \"ID\": \"Indonèsia\",\n  \"IE\": \"Irlanda\",\n  \"IL\": \"Israel\",\n  \"IM\": \"Illa de Man\",\n  \"IN\": \"Índia\",\n  \"IO\": \"Territori Britànic de l'Oceà Índic\",\n  \"IQ\": \"Iraq\",\n  \"IR\": \"Iran\",\n  \"IS\": \"Islàndia\",\n  \"IT\": \"Itàlia\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamaica\",\n  \"JO\": \"Jordània\",\n  \"JP\": \"Japó\",\n  \"KE\": \"Kenya\",\n  \"KG\": \"Kirguizistan\",\n  \"KH\": \"Cambodja\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Comores\",\n  \"KN\": \"Saint Kitts i Nevis\",\n  \"KP\": \"Corea del Nord\",\n  \"KR\": \"Corea del Sud\",\n  \"KW\": \"Kuwait\",\n  \"KY\": \"Illes Caiman\",\n  \"KZ\": \"Kazakhstan\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Líban\",\n  \"LC\": \"Saint Lucia\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Libèria\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Lituània\",\n  \"LU\": \"Luxemburg\",\n  \"LV\": \"Letònia\",\n  \"LY\": \"Líbia\",\n  \"MA\": \"Marroc\",\n  \"MC\": \"Mònaco\",\n  \"MD\": \"Moldàvia\",\n  \"ME\": \"Montenegro\",\n  \"MF\": \"Saint Martin\",\n  \"MG\": \"Madagascar\",\n  \"MH\": \"Illes Marshall\",\n  \"MK\": \"Macedònia del Nord\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mongòlia\",\n  \"MO\": \"Macau\",\n  \"MP\": \"Illes Marianes del Nord\",\n  \"MQ\": \"Martinica\",\n  \"MR\": \"Mauritània\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Maurici\",\n  \"MV\": \"Maldives\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Mèxic\",\n  \"MY\": \"Malàisia\",\n  \"MZ\": \"Moçambic\",\n  \"NA\": \"Namíbia\",\n  \"NC\": \"Nova Caledònia\",\n  \"NE\": \"Níger\",\n  \"NF\": \"Illa Norfolk\",\n  \"NG\": \"Nigèria\",\n  \"NI\": \"Nicaragua\",\n  \"NL\": \"Països Baixos\",\n  \"NO\": \"Noruega\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Nova Zelanda\",\n  \"OM\": \"Oman\",\n  \"OS\": \"Ossètia del Sud\",\n  \"PA\": \"Panamà\",\n  \"PE\": \"Perú\",\n  \"PF\": \"Polinèsia Francesa\",\n  \"PG\": \"Papua Nova Guinea\",\n  \"PH\": \"Filipines\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Polònia\",\n  \"PM\": \"Saint-Pierre i Miquelon\",\n  \"PN\": \"Illes Pitcairn\",\n  \"PR\": \"Puerto Rico\",\n  \"PS\": \"Palestina\",\n  \"PT\": \"Portugal\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguai\",\n  \"QA\": \"Qatar\",\n  \"RE\": \"Reunió\",\n  \"RO\": \"Romania\",\n  \"RS\": \"Sèrbia\",\n  \"RU\": \"Rússia\",\n  \"RW\": \"Rwanda\",\n  \"SA\": \"Aràbia Saudita\",\n  \"SB\": \"Illes Salomó\",\n  \"SC\": \"Seychelles\",\n  \"SD\": \"Sudan\",\n  \"SE\": \"Suècia\",\n  \"SG\": \"Singapur\",\n  \"SH\": \"Santa Helena, Ascensió i Tristan da Cunha\",\n  \"SI\": \"Eslovènia\",\n  \"SJ\": \"Svalbard i Jan Mayen\",\n  \"SK\": \"Eslovàquia\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somàlia\",\n  \"SR\": \"Surinam\",\n  \"SS\": \"Sudan del Sud\",\n  \"ST\": \"São Tomé i Príncipe\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Síria\",\n  \"SZ\": \"Eswatini\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Illes Turks i Caicos\",\n  \"TD\": \"Txad\",\n  \"TF\": \"Terres Australs i Antàrtiques Franceses\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Tailàndia\",\n  \"TJ\": \"Tadjikistan\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Timor Oriental\",\n  \"TM\": \"Turkmenistan\",\n  \"TN\": \"Tunísia\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Turquia\",\n  \"TT\": \"Trinitat i Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan\",\n  \"TZ\": \"Tanzània\",\n  \"UA\": \"Ucraïna\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"Illes Perifèriques Menors dels Estats Units\",\n  \"US\": \"Estats Units\",\n  \"UY\": \"Uruguai\",\n  \"UZ\": \"Uzbekistan\",\n  \"VA\": \"Ciutat del Vaticà\",\n  \"VC\": \"Saint Vincent i les Grenadines\",\n  \"VE\": \"Veneçuela\",\n  \"VG\": \"Illes Verges Britàniques\",\n  \"VI\": \"Illes Verges Nord-americanes\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis i Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Iemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"Sud-àfrica\",\n  \"ZM\": \"Zàmbia\",\n  \"ZW\": \"Zimbabwe\",\n  \"ZZ\": \"Internacional\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Stát\",\n  \"phone\": \"Telefon\",\n  \"AB\": \"Abcházie\",\n  \"AC\": \"Ostrov Ascension\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"Spojené arabské emiráty\",\n  \"AF\": \"Afghánistán\",\n  \"AG\": \"Antigua a Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albánie\",\n  \"AM\": \"Arménie\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antarktida\",\n  \"AR\": \"Argentina\",\n  \"AS\": \"Americká Samoa\",\n  \"AT\": \"Rakousko\",\n  \"AU\": \"Austrálie\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Ålandské ostrovy\",\n  \"AZ\": \"Ázerbájdžán\",\n  \"BA\": \"Bosna a Hercegovina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladéš\",\n  \"BE\": \"Belgie\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulharsko\",\n  \"BH\": \"Bahrajn\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BL\": \"Svatý Bartoloměj\",\n  \"BM\": \"Bermudy\",\n  \"BN\": \"Brunej Darussalam\",\n  \"BO\": \"Bolívie\",\n  \"BQ\": \"Bonaire, Sint Eustatius a Saba\",\n  \"BR\": \"Brazílie\",\n  \"BS\": \"Bahamy\",\n  \"BT\": \"Bhútán\",\n  \"BV\": \"Bouvet Island\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Bělorusko\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Kanada\",\n  \"CC\": \"Kokosové (Keellovy) ostrovy\",\n  \"CD\": \"Kongo, Demokratická republika\",\n  \"CF\": \"Středoafrická republika\",\n  \"CG\": \"Kongo\",\n  \"CH\": \"Švýcarsko\",\n  \"CI\": \"Pobřeží slonoviny\",\n  \"CK\": \"Cookovy ostrovy\",\n  \"CL\": \"Chile\",\n  \"CM\": \"Kamerun\",\n  \"CN\": \"Čína\",\n  \"CO\": \"Kolumbie\",\n  \"CR\": \"Kostarika\",\n  \"CU\": \"Kuba\",\n  \"CV\": \"Kapverdy\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Vánoční ostrov\",\n  \"CY\": \"Kypr\",\n  \"CZ\": \"Česká republika\",\n  \"DE\": \"Německo\",\n  \"DJ\": \"Džibuti\",\n  \"DK\": \"Dánsko\",\n  \"DM\": \"Dominika\",\n  \"DO\": \"Dominikánská republika\",\n  \"DZ\": \"Alžírsko\",\n  \"EC\": \"Ekvádor\",\n  \"EE\": \"Estonsko\",\n  \"EG\": \"Egypt\",\n  \"EH\": \"Západní Sahara\",\n  \"ER\": \"Eritrea\",\n  \"ES\": \"Španělsko\",\n  \"ET\": \"Etiopie\",\n  \"FI\": \"Finsko\",\n  \"FJ\": \"Fidži\",\n  \"FK\": \"Falklandské ostrovy\",\n  \"FM\": \"Federativní státy Mikronésie\",\n  \"FO\": \"Faerské ostrovy\",\n  \"FR\": \"Francie\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"Spojené království\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Georgia\",\n  \"GF\": \"Francouzská Guyana\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Grónsko\",\n  \"GM\": \"Gambie\",\n  \"GN\": \"Guinea\",\n  \"GP\": \"Guadeloupe\",\n  \"GQ\": \"Rovníková Guinea\",\n  \"GR\": \"Řecko\",\n  \"GS\": \"Jižní Georgie a Jižní Sandwichovy ostrovy\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guinea-Bissau\",\n  \"GY\": \"Guyana\",\n  \"HK\": \"Hongkong\",\n  \"HM\": \"Heardův ostrov a McDonaldovy ostrovy\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Chorvatsko\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Maďarsko\",\n  \"ID\": \"Indonésie\",\n  \"IE\": \"Irsko\",\n  \"IL\": \"Izrael\",\n  \"IM\": \"Ostrov Man\",\n  \"IN\": \"Indie\",\n  \"IO\": \"Britské území Indického oceánu\",\n  \"IQ\": \"Irák\",\n  \"IR\": \"Írán\",\n  \"IS\": \"Island\",\n  \"IT\": \"Itálie\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamajka\",\n  \"JO\": \"Jordan\",\n  \"JP\": \"Japonsko\",\n  \"KE\": \"Keňa\",\n  \"KG\": \"Kyrgyzstán\",\n  \"KH\": \"Kambodža\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Komory\",\n  \"KN\": \"Svatý Kryštof a Nevis\",\n  \"KP\": \"Severní Korea\",\n  \"KR\": \"Jižní Korea\",\n  \"KW\": \"Kuvajt\",\n  \"KY\": \"Kajmanské ostrovy\",\n  \"KZ\": \"Kazachstán\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Libanon\",\n  \"LC\": \"Svatá Lucie\",\n  \"LI\": \"Lichtenštejnsko\",\n  \"LK\": \"Srí Lanka\",\n  \"LR\": \"Libérie\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Litva\",\n  \"LU\": \"Lucembursko\",\n  \"LV\": \"Lotyšsko\",\n  \"LY\": \"Libye\",\n  \"MA\": \"Maroko\",\n  \"MC\": \"Monaco\",\n  \"MD\": \"Moldavsko\",\n  \"ME\": \"Černá Hora\",\n  \"MF\": \"Svatý Martin (francouzská část)\",\n  \"MG\": \"Madagaskar\",\n  \"MH\": \"Marshallovy ostrovy\",\n  \"MK\": \"Severní Makedonie\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mongolsko\",\n  \"MO\": \"Macao\",\n  \"MP\": \"Severní Mariany\",\n  \"MQ\": \"Martinik\",\n  \"MR\": \"Mauritánie\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Mauricius\",\n  \"MV\": \"Maledivy\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Mexiko\",\n  \"MY\": \"Malajsie\",\n  \"MZ\": \"Mosambik\",\n  \"NA\": \"Namibie\",\n  \"NC\": \"Nová Kaledonie\",\n  \"NE\": \"Niger\",\n  \"NF\": \"Ostrov Norfolk\",\n  \"NG\": \"Nigérie\",\n  \"NI\": \"Nikaragua\",\n  \"NL\": \"Nizozemsko\",\n  \"NO\": \"Norsko\",\n  \"NP\": \"Nepál\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Nový Zéland\",\n  \"OM\": \"Omán\",\n  \"OS\": \"Jižní Osetie\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Peru\",\n  \"PF\": \"Francouzská Polynésie\",\n  \"PG\": \"Papua Nová Guinea\",\n  \"PH\": \"Filipíny\",\n  \"PK\": \"Pákistán\",\n  \"PL\": \"Polsko\",\n  \"PM\": \"Saint Pierre a Miquelon\",\n  \"PN\": \"Pitcairn\",\n  \"PR\": \"Portoriko\",\n  \"PS\": \"Palestina\",\n  \"PT\": \"Portugalsko\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Katar\",\n  \"RE\": \"Reunion\",\n  \"RO\": \"Rumunsko\",\n  \"RS\": \"Srbsko\",\n  \"RU\": \"Rusko\",\n  \"RW\": \"Rwanda\",\n  \"SA\": \"Saúdská Arábie\",\n  \"SB\": \"Šalamounovy ostrovy\",\n  \"SC\": \"Seychely\",\n  \"SD\": \"Súdán\",\n  \"SE\": \"Švédsko\",\n  \"SG\": \"Singapur\",\n  \"SH\": \"Svatá Helena\",\n  \"SI\": \"Slovinsko\",\n  \"SJ\": \"Svalbard a Jan Mayen\",\n  \"SK\": \"Slovensko\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somálsko\",\n  \"SR\": \"Surinam\",\n  \"SS\": \"Jižní Súdán\",\n  \"ST\": \"Svatý Tomáš a Princip\",\n  \"SV\": \"Salvador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Sýrie\",\n  \"SZ\": \"Svazijsko\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Ostrovy Turks a Caicos\",\n  \"TD\": \"Chad\",\n  \"TF\": \"Francouzská jižní území\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Thajsko\",\n  \"TJ\": \"Tádžikistán\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Timor-Leste\",\n  \"TM\": \"Turkmenistán\",\n  \"TN\": \"Tunisko\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Turecko\",\n  \"TT\": \"Trinidad a Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Tchaj -wan\",\n  \"TZ\": \"Tanzanie\",\n  \"UA\": \"Ukrajina\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"Menší odlehlé ostrovy USA\",\n  \"US\": \"Spojené státy\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Uzbekistán\",\n  \"VA\": \"Svatý stolec (městský stát Vatikán)\",\n  \"VC\": \"Svatý Vincenc a Grenadiny\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Panenské ostrovy, Britové\",\n  \"VI\": \"Panenské ostrovy, USA\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis a Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Jemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"Jižní Afrika\",\n  \"ZM\": \"Zambie\",\n  \"ZW\": \"Zimbabwe\",\n  \"ZZ\": \"Mezinárodní\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Land der Telefonnummer\",\n  \"phone\": \"Telefon\",\n  \"AB\": \"Abkhazia\",\n  \"AC\": \"Ascension\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"Vereinigte Arabische Emirate\",\n  \"AF\": \"Afghanistan\",\n  \"AG\": \"Antigua und Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albanien\",\n  \"AM\": \"Armenien\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antarktis\",\n  \"AR\": \"Argentinien\",\n  \"AS\": \"Amerikanisch-Samoa\",\n  \"AT\": \"Österreich\",\n  \"AU\": \"Australien\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Ålandinseln\",\n  \"AZ\": \"Aserbaidschan\",\n  \"BA\": \"Bosnien und Herzegowina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladesch\",\n  \"BE\": \"Belgien\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgarien\",\n  \"BH\": \"Bahrain\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BL\": \"St. Barthélemy\",\n  \"BM\": \"Bermuda\",\n  \"BN\": \"Brunei Darussalam\",\n  \"BO\": \"Bolivien\",\n  \"BQ\": \"Bonaire, Sint Eustatius und Saba\",\n  \"BR\": \"Brasilien\",\n  \"BS\": \"Bahamas\",\n  \"BT\": \"Bhutan\",\n  \"BV\": \"Bouvet Island\",\n  \"BW\": \"Botsuana\",\n  \"BY\": \"Belarus\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Kanada\",\n  \"CC\": \"Kokosinseln\",\n  \"CD\": \"Kongo-Kinshasa\",\n  \"CF\": \"Zentralafrikanische Republik\",\n  \"CG\": \"Kongo-Brazzaville\",\n  \"CH\": \"Schweiz\",\n  \"CI\": \"Côte d’Ivoire\",\n  \"CK\": \"Cookinseln\",\n  \"CL\": \"Chile\",\n  \"CM\": \"Kamerun\",\n  \"CN\": \"China\",\n  \"CO\": \"Kolumbien\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Kuba\",\n  \"CV\": \"Cabo Verde\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Weihnachtsinsel\",\n  \"CY\": \"Zypern\",\n  \"CZ\": \"Tschechien\",\n  \"DE\": \"Deutschland\",\n  \"DJ\": \"Dschibuti\",\n  \"DK\": \"Dänemark\",\n  \"DM\": \"Dominica\",\n  \"DO\": \"Dominikanische Republik\",\n  \"DZ\": \"Algerien\",\n  \"EC\": \"Ecuador\",\n  \"EE\": \"Estland\",\n  \"EG\": \"Ägypten\",\n  \"EH\": \"Westsahara\",\n  \"ER\": \"Eritrea\",\n  \"ES\": \"Spanien\",\n  \"ET\": \"Äthiopien\",\n  \"FI\": \"Finnland\",\n  \"FJ\": \"Fidschi\",\n  \"FK\": \"Falklandinseln\",\n  \"FM\": \"Mikronesien\",\n  \"FO\": \"Färöer\",\n  \"FR\": \"Frankreich\",\n  \"GA\": \"Gabun\",\n  \"GB\": \"Vereinigtes Königreich\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Georgien\",\n  \"GF\": \"Französisch-Guayana\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Grönland\",\n  \"GM\": \"Gambia\",\n  \"GN\": \"Guinea\",\n  \"GP\": \"Guadeloupe\",\n  \"GQ\": \"Äquatorialguinea\",\n  \"GR\": \"Griechenland\",\n  \"GS\": \"Südgeorgien und die Südlichen Sandwichinseln\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guinea-Bissau\",\n  \"GY\": \"Guyana\",\n  \"HK\": \"Sonderverwaltungsregion Hongkong\",\n  \"HM\": \"Heard Island and McDonald Islands\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Kroatien\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Ungarn\",\n  \"ID\": \"Indonesien\",\n  \"IE\": \"Irland\",\n  \"IL\": \"Israel\",\n  \"IM\": \"Isle of Man\",\n  \"IN\": \"Indien\",\n  \"IO\": \"Britisches Territorium im Indischen Ozean\",\n  \"IQ\": \"Irak\",\n  \"IR\": \"Iran\",\n  \"IS\": \"Island\",\n  \"IT\": \"Italien\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamaika\",\n  \"JO\": \"Jordanien\",\n  \"JP\": \"Japan\",\n  \"KE\": \"Kenia\",\n  \"KG\": \"Kirgisistan\",\n  \"KH\": \"Kambodscha\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Komoren\",\n  \"KN\": \"St. Kitts und Nevis\",\n  \"KP\": \"Nordkorea\",\n  \"KR\": \"Südkorea\",\n  \"KW\": \"Kuwait\",\n  \"KY\": \"Kaimaninseln\",\n  \"KZ\": \"Kasachstan\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Libanon\",\n  \"LC\": \"St. Lucia\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Liberia\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Litauen\",\n  \"LU\": \"Luxemburg\",\n  \"LV\": \"Lettland\",\n  \"LY\": \"Libyen\",\n  \"MA\": \"Marokko\",\n  \"MC\": \"Monaco\",\n  \"MD\": \"Republik Moldau\",\n  \"ME\": \"Montenegro\",\n  \"MF\": \"St. Martin\",\n  \"MG\": \"Madagaskar\",\n  \"MH\": \"Marshallinseln\",\n  \"MK\": \"Nordmazedonien\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mongolei\",\n  \"MO\": \"Sonderverwaltungsregion Macau\",\n  \"MP\": \"Nördliche Marianen\",\n  \"MQ\": \"Martinique\",\n  \"MR\": \"Mauretanien\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Mauritius\",\n  \"MV\": \"Malediven\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Mexiko\",\n  \"MY\": \"Malaysia\",\n  \"MZ\": \"Mosambik\",\n  \"NA\": \"Namibia\",\n  \"NC\": \"Neukaledonien\",\n  \"NE\": \"Niger\",\n  \"NF\": \"Norfolkinsel\",\n  \"NG\": \"Nigeria\",\n  \"NI\": \"Nicaragua\",\n  \"NL\": \"Niederlande\",\n  \"NO\": \"Norwegen\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Neuseeland\",\n  \"OM\": \"Oman\",\n  \"OS\": \"South Ossetia\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Peru\",\n  \"PF\": \"Französisch-Polynesien\",\n  \"PG\": \"Papua-Neuguinea\",\n  \"PH\": \"Philippinen\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Polen\",\n  \"PM\": \"St. Pierre und Miquelon\",\n  \"PN\": \"Pitcairninseln\",\n  \"PR\": \"Puerto Rico\",\n  \"PS\": \"Palästinensische Autonomiegebiete\",\n  \"PT\": \"Portugal\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Katar\",\n  \"RE\": \"Réunion\",\n  \"RO\": \"Rumänien\",\n  \"RS\": \"Serbien\",\n  \"RU\": \"Russland\",\n  \"RW\": \"Ruanda\",\n  \"SA\": \"Saudi-Arabien\",\n  \"SB\": \"Salomonen\",\n  \"SC\": \"Seychellen\",\n  \"SD\": \"Sudan\",\n  \"SE\": \"Schweden\",\n  \"SG\": \"Singapur\",\n  \"SH\": \"St. Helena\",\n  \"SI\": \"Slowenien\",\n  \"SJ\": \"Spitzbergen und Jan Mayen\",\n  \"SK\": \"Slowakei\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somalia\",\n  \"SR\": \"Suriname\",\n  \"SS\": \"Südsudan\",\n  \"ST\": \"São Tomé und Príncipe\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Syrien\",\n  \"SZ\": \"Swasiland\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Turks- und Caicosinseln\",\n  \"TD\": \"Tschad\",\n  \"TF\": \"Französische Süd- und Antarktisgebiete\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Thailand\",\n  \"TJ\": \"Tadschikistan\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Timor-Leste\",\n  \"TM\": \"Turkmenistan\",\n  \"TN\": \"Tunesien\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Türkei\",\n  \"TT\": \"Trinidad und Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan\",\n  \"TZ\": \"Tansania\",\n  \"UA\": \"Ukraine\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"Amerikanische Überseeinseln\",\n  \"US\": \"Vereinigte Staaten\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Usbekistan\",\n  \"VA\": \"Vatikanstadt\",\n  \"VC\": \"St. Vincent und die Grenadinen\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Britische Jungferninseln\",\n  \"VI\": \"Amerikanische Jungferninseln\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis und Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Jemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"Südafrika\",\n  \"ZM\": \"Sambia\",\n  \"ZW\": \"Simbabwe\",\n  \"ZZ\": \"International\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Τη χώρα τηλεφώνου\",\n  \"phone\": \"Tηλέφωνο\",\n  \"AB\": \"Αμπχαζία\",\n  \"AC\": \"Νησί της αναλήψεως\",\n  \"AD\": \"Ανδόρα\",\n  \"AE\": \"Ηνωμένα Αραβικά Εμιράτα\",\n  \"AF\": \"Αφγανιστάν\",\n  \"AG\": \"Αντίγκουα και Μπαρμπούντα\",\n  \"AI\": \"Ανγκουίλα\",\n  \"AL\": \"Αλβανία\",\n  \"AM\": \"Αρμενία\",\n  \"AO\": \"Αγκόλα\",\n  \"AQ\": \"Ανταρκτική\",\n  \"AR\": \"Αργεντινή\",\n  \"AS\": \"Αμερικανική Σαμόα\",\n  \"AT\": \"Αυστρία\",\n  \"AU\": \"Αυστραλία\",\n  \"AW\": \"Αρούμπα\",\n  \"AX\": \"Νήσοι Åland\",\n  \"AZ\": \"Αζερμπαϊτζάν\",\n  \"BA\": \"Βοσνία και Ερζεγοβίνη\",\n  \"BB\": \"Μπαρμπάντος\",\n  \"BD\": \"Μπαγκλαντές\",\n  \"BE\": \"Βέλγιο\",\n  \"BF\": \"Μπουρκίνα Φάσο\",\n  \"BG\": \"Βουλγαρία\",\n  \"BH\": \"Μπαχρέιν\",\n  \"BI\": \"Μπουρούντι\",\n  \"BJ\": \"Μπενίν\",\n  \"BL\": \"Άγιος Βαρθολομαίος\",\n  \"BM\": \"Βερμούδες\",\n  \"BN\": \"Μπρουνέι\",\n  \"BO\": \"Βολιβία\",\n  \"BQ\": \"Καραϊβική Κάτω Χώρες\",\n  \"BR\": \"Βραζιλία\",\n  \"BS\": \"Μπαχάμες\",\n  \"BT\": \"Μπουτάν\",\n  \"BV\": \"Νήσος Μπούβε\",\n  \"BW\": \"Μποτσουάνα\",\n  \"BY\": \"Λευκορωσία\",\n  \"BZ\": \"Μπελίζε\",\n  \"CA\": \"Καναδάς\",\n  \"CC\": \"Νήσοι Κόκος\",\n  \"CD\": \"Κονγκό (ΛΔΚ)\",\n  \"CF\": \"Δημοκρατία Κεντρικής Αφρικής\",\n  \"CG\": \"Κονγκό (Δημοκρατία)\",\n  \"CH\": \"Ελβετία\",\n  \"CI\": \"Ακτή του Ελεφαντοστού\",\n  \"CK\": \"Νήσοι Κουκ\",\n  \"CL\": \"Χιλή\",\n  \"CM\": \"Καμερούν\",\n  \"CN\": \"Κίνα\",\n  \"CO\": \"Κολομβία\",\n  \"CR\": \"Κόστα Ρίκα\",\n  \"CU\": \"Κούβα\",\n  \"CV\": \"Πράσινο Ακρωτήριο\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Το νησί των Χριστουγέννων\",\n  \"CY\": \"Κύπρος\",\n  \"CZ\": \"Δημοκρατία της Τσεχίας\",\n  \"DE\": \"Γερμανία\",\n  \"DJ\": \"Τζιμπουτί\",\n  \"DK\": \"Δανία\",\n  \"DM\": \"Δομίνικα\",\n  \"DO\": \"Δομινικανή Δημοκρατία\",\n  \"DZ\": \"Αλγερία\",\n  \"EC\": \"Ισημερινός\",\n  \"EE\": \"Εσθονία\",\n  \"EG\": \"Αίγυπτος\",\n  \"EH\": \"Δυτική Σαχάρα\",\n  \"ER\": \"Ερυθραία\",\n  \"ES\": \"Ισπανία\",\n  \"ET\": \"Αιθιοπία\",\n  \"FI\": \"Φινλανδία\",\n  \"FJ\": \"Φίτζι\",\n  \"FK\": \"Νήσοι Φώκλαντ\",\n  \"FM\": \"Μικρονησία\",\n  \"FO\": \"Νήσοι Φερόε\",\n  \"FR\": \"Γαλλία\",\n  \"GA\": \"Γκαμπόν\",\n  \"GB\": \"Ηνωμένο Βασίλειο\",\n  \"GD\": \"Γρενάδα\",\n  \"GE\": \"Γεωργία\",\n  \"GF\": \"Γαλλική Γουιάνα\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Γκάνα\",\n  \"GI\": \"Γιβραλτάρ\",\n  \"GL\": \"Γροιλανδία\",\n  \"GM\": \"Γκάμπια\",\n  \"GN\": \"Γουινέα\",\n  \"GP\": \"Γουαδελούπη\",\n  \"GQ\": \"Ισημερινή Γουινέα\",\n  \"GR\": \"Ελλάδα\",\n  \"GS\": \"Νότια Γεωργία και Νότιες Νήσοι Σάντουιτς\",\n  \"GT\": \"Γουατεμάλα\",\n  \"GU\": \"Γκουάμ\",\n  \"GW\": \"Γουινέα-Μπισάου\",\n  \"GY\": \"Γουιάνα\",\n  \"HK\": \"Χονγκ Κονγκ\",\n  \"HM\": \"Το νησί Heard και τα νησιά McDonald\",\n  \"HN\": \"Ονδούρα\",\n  \"HR\": \"Κροατία\",\n  \"HT\": \"Αϊτή\",\n  \"HU\": \"Ουγγαρία\",\n  \"ID\": \"Ινδονησία\",\n  \"IE\": \"Ιρλανδία\",\n  \"IL\": \"Ισραήλ\",\n  \"IM\": \"Νήσος του Μαν\",\n  \"IN\": \"Ινδία\",\n  \"IO\": \"Βρετανικό έδαφος του Ινδικού Ωκεανού\",\n  \"IQ\": \"Ιράκ\",\n  \"IR\": \"Ιράν\",\n  \"IS\": \"Ισλανδία\",\n  \"IT\": \"Ιταλία\",\n  \"JE\": \"Τζέρσεϋ\",\n  \"JM\": \"Τζαμάικα\",\n  \"JO\": \"Ιορδανία\",\n  \"JP\": \"Ιαπωνία\",\n  \"KE\": \"Κένυα\",\n  \"KG\": \"Κιργιζιστάν\",\n  \"KH\": \"Καμπότζη\",\n  \"KI\": \"Κιριμπάτι\",\n  \"KM\": \"Κομόρες\",\n  \"KN\": \"Άγιος Χριστόφορος και Νέβις\",\n  \"KP\": \"Βόρεια Κορέα\",\n  \"KR\": \"Νότια Κορέα\",\n  \"KW\": \"Κουβέιτ\",\n  \"KY\": \"Νήσοι Κέιμαν\",\n  \"KZ\": \"Καζακστάν\",\n  \"LA\": \"Λάος\",\n  \"LB\": \"Λίβανος\",\n  \"LC\": \"Αγία Λουκία\",\n  \"LI\": \"Λιχτενστάιν\",\n  \"LK\": \"Σρι Λάνκα\",\n  \"LR\": \"Λιβερία\",\n  \"LS\": \"Λεσόθο\",\n  \"LT\": \"Λιθουανία\",\n  \"LU\": \"Λουξεμβούργο\",\n  \"LV\": \"Λετονία\",\n  \"LY\": \"Λιβύη\",\n  \"MA\": \"Μαρόκο\",\n  \"MC\": \"Μονακό\",\n  \"MD\": \"Μολδαβία\",\n  \"ME\": \"Μαυροβούνιο\",\n  \"MF\": \"Άγιος Μαρτίνος\",\n  \"MG\": \"Μαδαγασκάρη (Μαδαγασκάρα)\",\n  \"MH\": \"Νήσοι Μάρσαλ\",\n  \"MK\": \"Μακεδονία (ΠΓΔΜ)\",\n  \"ML\": \"Μάλι\",\n  \"MM\": \"Μυανμάρ\",\n  \"MN\": \"Μογγολία\",\n  \"MO\": \"Μακάο\",\n  \"MP\": \"Νήσοι Β. Μαριάνων\",\n  \"MQ\": \"Μαρτινίκα\",\n  \"MR\": \"Μαυριτανία\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Μάλτα\",\n  \"MU\": \"Μαυρίκιος\",\n  \"MV\": \"Μαλδίβες\",\n  \"MW\": \"Μαλάουι\",\n  \"MX\": \"Μεξικό\",\n  \"MY\": \"Μαλαισία\",\n  \"MZ\": \"Μοζαμβίκη\",\n  \"NA\": \"Ναμίμπια\",\n  \"NC\": \"Νέα Καληδονία\",\n  \"NE\": \"Νίγηρας\",\n  \"NF\": \"Νησί Norfolk\",\n  \"NG\": \"Νιγηρία\",\n  \"NI\": \"Νικαράγουα\",\n  \"NL\": \"Κάτω Χώρες\",\n  \"NO\": \"Νορβηγία\",\n  \"NP\": \"Νεπάλ\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Νέα Ζηλανδία\",\n  \"OM\": \"Ομάν\",\n  \"OS\": \"Νότια Οσετία\",\n  \"PA\": \"Παναμάς\",\n  \"PE\": \"Περού\",\n  \"PF\": \"Γαλλική Πολυνησία\",\n  \"PG\": \"Παπούα Νέα Γουινέα\",\n  \"PH\": \"Φιλιππίνες\",\n  \"PK\": \"Πακιστάν\",\n  \"PL\": \"Πολωνία\",\n  \"PM\": \"Άγιος Πέτρος και Μικελόν\",\n  \"PN\": \"Pitcairn\",\n  \"PR\": \"Πουέρτο Ρίκο\",\n  \"PS\": \"Παλαιστίνη\",\n  \"PT\": \"Πορτογαλία\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Παραγουάη\",\n  \"QA\": \"Κατάρ\",\n  \"RE\": \"Ρεϋνιόν\",\n  \"RO\": \"Ρουμανία\",\n  \"RS\": \"Σερβία\",\n  \"RU\": \"Ρωσία\",\n  \"RW\": \"Ρουάντα\",\n  \"SA\": \"Σαουδική Αραβία\",\n  \"SB\": \"Νήσοι Σολομώντος\",\n  \"SC\": \"Σεϋχέλλες\",\n  \"SD\": \"Σουδάν\",\n  \"SE\": \"Σουηδία\",\n  \"SG\": \"Σιγκαπούρη\",\n  \"SH\": \"Αγία Ελένη\",\n  \"SI\": \"Σλοβενία ​​(Slovenija)\",\n  \"SJ\": \"Svalbard και Jan Mayen\",\n  \"SK\": \"Σλοβακία\",\n  \"SL\": \"Σιέρα Λεόνε\",\n  \"SM\": \"Άγιος Μαρίνος\",\n  \"SN\": \"Σενεγάλη\",\n  \"SO\": \"Σομαλία\",\n  \"SR\": \"Σουρινάμ\",\n  \"SS\": \"Νότιο Σουδάν\",\n  \"ST\": \"Σάο Τομέ και Πρίνσιπε\",\n  \"SV\": \"Ελ Σαλβαδόρ\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Συρία\",\n  \"SZ\": \"Σουαζιλάνδη\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Νήσοι Τερκς και Κάικος\",\n  \"TD\": \"Τσαντ\",\n  \"TF\": \"Γαλλικά νότια εδάφη\",\n  \"TG\": \"Τόγκο\",\n  \"TH\": \"Ταϊλάνδη\",\n  \"TJ\": \"Τατζικιστάν\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Τιμόρ-Λέστε\",\n  \"TM\": \"Τουρκμενιστάν\",\n  \"TN\": \"Τυνησία\",\n  \"TO\": \"Τόνγκα\",\n  \"TR\": \"Τουρκία\",\n  \"TT\": \"Τρινιντάντ και Τομπάγκο\",\n  \"TV\": \"Τουβαλού\",\n  \"TW\": \"Ταϊβάν\",\n  \"TZ\": \"Τανζανία\",\n  \"UA\": \"Ουκρανία\",\n  \"UG\": \"Ουγκάντα\",\n  \"UM\": \"Μικρά απομακρυσμένα νησιά των Ηνωμένων Πολιτειών\",\n  \"US\": \"Ηνωμένες Πολιτείες\",\n  \"UY\": \"Ουρουγουάη\",\n  \"UZ\": \"Ουζμπεκιστάν\",\n  \"VA\": \"Πόλη του Βατικανού\",\n  \"VC\": \"Άγιος Βικέντιος και Γρεναδίνες\",\n  \"VE\": \"Βενεζουέλα\",\n  \"VG\": \"Βρετανικές Παρθένοι Νήσοι\",\n  \"VI\": \"Παρθένοι Νήσοι των ΗΠΑ\",\n  \"VN\": \"Βιετνάμ\",\n  \"VU\": \"Βανουάτου\",\n  \"WF\": \"Wallis and Futuna\",\n  \"WS\": \"Σαμόα\",\n  \"XK\": \"Κοσόβου\",\n  \"YE\": \"Υεμένη\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"Νότια Αφρική\",\n  \"ZM\": \"Ζάμπια\",\n  \"ZW\": \"Ζιμπάμπουε\",\n  \"ZZ\": \"Διεθνές\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Phone number country\",\n  \"phone\": \"Phone\",\n  \"AB\": \"Abkhazia\",\n  \"AC\": \"Ascension Island\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"United Arab Emirates\",\n  \"AF\": \"Afghanistan\",\n  \"AG\": \"Antigua and Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albania\",\n  \"AM\": \"Armenia\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antarctica\",\n  \"AR\": \"Argentina\",\n  \"AS\": \"American Samoa\",\n  \"AT\": \"Austria\",\n  \"AU\": \"Australia\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Åland Islands\",\n  \"AZ\": \"Azerbaijan\",\n  \"BA\": \"Bosnia and Herzegovina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladesh\",\n  \"BE\": \"Belgium\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgaria\",\n  \"BH\": \"Bahrain\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BL\": \"Saint Barthélemy\",\n  \"BM\": \"Bermuda\",\n  \"BN\": \"Brunei Darussalam\",\n  \"BO\": \"Bolivia\",\n  \"BQ\": \"Bonaire, Sint Eustatius and Saba\",\n  \"BR\": \"Brazil\",\n  \"BS\": \"Bahamas\",\n  \"BT\": \"Bhutan\",\n  \"BV\": \"Bouvet Island\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Belarus\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Canada\",\n  \"CC\": \"Cocos (Keeling) Islands\",\n  \"CD\": \"Congo, Democratic Republic of the\",\n  \"CF\": \"Central African Republic\",\n  \"CG\": \"Congo\",\n  \"CH\": \"Switzerland\",\n  \"CI\": \"Cote d'Ivoire\",\n  \"CK\": \"Cook Islands\",\n  \"CL\": \"Chile\",\n  \"CM\": \"Cameroon\",\n  \"CN\": \"China\",\n  \"CO\": \"Colombia\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Cuba\",\n  \"CV\": \"Cape Verde\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Christmas Island\",\n  \"CY\": \"Cyprus\",\n  \"CZ\": \"Czech Republic\",\n  \"DE\": \"Germany\",\n  \"DJ\": \"Djibouti\",\n  \"DK\": \"Denmark\",\n  \"DM\": \"Dominica\",\n  \"DO\": \"Dominican Republic\",\n  \"DZ\": \"Algeria\",\n  \"EC\": \"Ecuador\",\n  \"EE\": \"Estonia\",\n  \"EG\": \"Egypt\",\n  \"EH\": \"Western Sahara\",\n  \"ER\": \"Eritrea\",\n  \"ES\": \"Spain\",\n  \"ET\": \"Ethiopia\",\n  \"FI\": \"Finland\",\n  \"FJ\": \"Fiji\",\n  \"FK\": \"Falkland Islands\",\n  \"FM\": \"Federated States of Micronesia\",\n  \"FO\": \"Faroe Islands\",\n  \"FR\": \"France\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"United Kingdom\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Georgia\",\n  \"GF\": \"French Guiana\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Greenland\",\n  \"GM\": \"Gambia\",\n  \"GN\": \"Guinea\",\n  \"GP\": \"Guadeloupe\",\n  \"GQ\": \"Equatorial Guinea\",\n  \"GR\": \"Greece\",\n  \"GS\": \"South Georgia and the South Sandwich Islands\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guinea-Bissau\",\n  \"GY\": \"Guyana\",\n  \"HK\": \"Hong Kong\",\n  \"HM\": \"Heard Island and McDonald Islands\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Croatia\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Hungary\",\n  \"ID\": \"Indonesia\",\n  \"IE\": \"Ireland\",\n  \"IL\": \"Israel\",\n  \"IM\": \"Isle of Man\",\n  \"IN\": \"India\",\n  \"IO\": \"British Indian Ocean Territory\",\n  \"IQ\": \"Iraq\",\n  \"IR\": \"Iran\",\n  \"IS\": \"Iceland\",\n  \"IT\": \"Italy\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamaica\",\n  \"JO\": \"Jordan\",\n  \"JP\": \"Japan\",\n  \"KE\": \"Kenya\",\n  \"KG\": \"Kyrgyzstan\",\n  \"KH\": \"Cambodia\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Comoros\",\n  \"KN\": \"Saint Kitts and Nevis\",\n  \"KP\": \"North Korea\",\n  \"KR\": \"South Korea\",\n  \"KW\": \"Kuwait\",\n  \"KY\": \"Cayman Islands\",\n  \"KZ\": \"Kazakhstan\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Lebanon\",\n  \"LC\": \"Saint Lucia\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Liberia\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Lithuania\",\n  \"LU\": \"Luxembourg\",\n  \"LV\": \"Latvia\",\n  \"LY\": \"Libya\",\n  \"MA\": \"Morocco\",\n  \"MC\": \"Monaco\",\n  \"MD\": \"Moldova\",\n  \"ME\": \"Montenegro\",\n  \"MF\": \"Saint Martin (French Part)\",\n  \"MG\": \"Madagascar\",\n  \"MH\": \"Marshall Islands\",\n  \"MK\": \"North Macedonia\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mongolia\",\n  \"MO\": \"Macao\",\n  \"MP\": \"Northern Mariana Islands\",\n  \"MQ\": \"Martinique\",\n  \"MR\": \"Mauritania\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Mauritius\",\n  \"MV\": \"Maldives\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Mexico\",\n  \"MY\": \"Malaysia\",\n  \"MZ\": \"Mozambique\",\n  \"NA\": \"Namibia\",\n  \"NC\": \"New Caledonia\",\n  \"NE\": \"Niger\",\n  \"NF\": \"Norfolk Island\",\n  \"NG\": \"Nigeria\",\n  \"NI\": \"Nicaragua\",\n  \"NL\": \"Netherlands\",\n  \"NO\": \"Norway\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"New Zealand\",\n  \"OM\": \"Oman\",\n  \"OS\": \"South Ossetia\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Peru\",\n  \"PF\": \"French Polynesia\",\n  \"PG\": \"Papua New Guinea\",\n  \"PH\": \"Philippines\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Poland\",\n  \"PM\": \"Saint Pierre and Miquelon\",\n  \"PN\": \"Pitcairn\",\n  \"PR\": \"Puerto Rico\",\n  \"PS\": \"Palestine\",\n  \"PT\": \"Portugal\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Qatar\",\n  \"RE\": \"Reunion\",\n  \"RO\": \"Romania\",\n  \"RS\": \"Serbia\",\n  \"RU\": \"Russia\",\n  \"RW\": \"Rwanda\",\n  \"SA\": \"Saudi Arabia\",\n  \"SB\": \"Solomon Islands\",\n  \"SC\": \"Seychelles\",\n  \"SD\": \"Sudan\",\n  \"SE\": \"Sweden\",\n  \"SG\": \"Singapore\",\n  \"SH\": \"Saint Helena\",\n  \"SI\": \"Slovenia\",\n  \"SJ\": \"Svalbard and Jan Mayen\",\n  \"SK\": \"Slovakia\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somalia\",\n  \"SR\": \"Suriname\",\n  \"SS\": \"South Sudan\",\n  \"ST\": \"Sao Tome and Principe\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Syria\",\n  \"SZ\": \"Swaziland\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Turks and Caicos Islands\",\n  \"TD\": \"Chad\",\n  \"TF\": \"French Southern Territories\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Thailand\",\n  \"TJ\": \"Tajikistan\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Timor-Leste\",\n  \"TM\": \"Turkmenistan\",\n  \"TN\": \"Tunisia\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Turkey\",\n  \"TT\": \"Trinidad and Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan\",\n  \"TZ\": \"Tanzania\",\n  \"UA\": \"Ukraine\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"United States Minor Outlying Islands\",\n  \"US\": \"United States\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Uzbekistan\",\n  \"VA\": \"Holy See (Vatican City State)\",\n  \"VC\": \"Saint Vincent and the Grenadines\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Virgin Islands, British\",\n  \"VI\": \"Virgin Islands, U.S.\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis and Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Yemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"South Africa\",\n  \"ZM\": \"Zambia\",\n  \"ZW\": \"Zimbabwe\",\n  \"ZZ\": \"International\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Número de teléfono del país\",\n  \"phone\": \"Teléfono\",\n  \"AB\": \"Abjasia\",\n  \"AC\": \"Isla Ascensión\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"Emiratos Árabes Unidos\",\n  \"AF\": \"Afganistán\",\n  \"AG\": \"Antigua y Barbuda\",\n  \"AI\": \"Anguila\",\n  \"AL\": \"Albania\",\n  \"AM\": \"Armenia\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antártida\",\n  \"AR\": \"Argentina\",\n  \"AS\": \"Samoa Americana\",\n  \"AT\": \"Austria\",\n  \"AU\": \"Australia\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Islas Åland\",\n  \"AZ\": \"Azerbaiyán\",\n  \"BA\": \"Bosnia y Herzegovina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladés\",\n  \"BE\": \"Bélgica\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgaria\",\n  \"BH\": \"Baréin\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benín\",\n  \"BL\": \"San Bartolomé\",\n  \"BM\": \"Bermudas\",\n  \"BN\": \"Brunéi\",\n  \"BO\": \"Bolivia\",\n  \"BQ\": \"Caribe Neerlandés\",\n  \"BR\": \"Brasil\",\n  \"BS\": \"Bahamas\",\n  \"BT\": \"Bután\",\n  \"BV\": \"Isla Bouvet\",\n  \"BW\": \"Botsuana\",\n  \"BY\": \"Bielorrusia\",\n  \"BZ\": \"Belice\",\n  \"CA\": \"Canadá\",\n  \"CC\": \"Islas Cocos\",\n  \"CD\": \"Congo\",\n  \"CF\": \"República Centroafricana\",\n  \"CG\": \"Congo\",\n  \"CH\": \"Suiza\",\n  \"CI\": \"Costa de Marfil\",\n  \"CK\": \"Islas Cook\",\n  \"CL\": \"Chile\",\n  \"CM\": \"Camerún\",\n  \"CN\": \"China\",\n  \"CO\": \"Colombia\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Cuba\",\n  \"CV\": \"Cabo Verde\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Isla de Navidad\",\n  \"CY\": \"Chipre\",\n  \"CZ\": \"República Checa\",\n  \"DE\": \"Alemania\",\n  \"DJ\": \"Yibuti\",\n  \"DK\": \"Dinamarca\",\n  \"DM\": \"Dominica\",\n  \"DO\": \"República Dominicana\",\n  \"DZ\": \"Argelia\",\n  \"EC\": \"Ecuador\",\n  \"EE\": \"Estonia\",\n  \"EG\": \"Egipto\",\n  \"EH\": \"Sáhara Occidental\",\n  \"ER\": \"Eritrea\",\n  \"ES\": \"España\",\n  \"ET\": \"Etiopía\",\n  \"FI\": \"Finlandia\",\n  \"FJ\": \"Fiji\",\n  \"FK\": \"Islas Malvinas\",\n  \"FM\": \"Micronesia\",\n  \"FO\": \"Islas Feroe\",\n  \"FR\": \"Francia\",\n  \"GA\": \"Gabón\",\n  \"GB\": \"Reino Unido\",\n  \"GD\": \"Granada\",\n  \"GE\": \"Georgia\",\n  \"GF\": \"Guayana Francesa\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Groenlandia\",\n  \"GM\": \"Gambia\",\n  \"GN\": \"Guinea\",\n  \"GP\": \"Guadalupe\",\n  \"GQ\": \"Guinea Ecuatorial\",\n  \"GR\": \"Grecia\",\n  \"GS\": \"Georgia del Sur y las Islas Sandwich del Sur\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guinea-Bisáu\",\n  \"GY\": \"Guyana\",\n  \"HK\": \"Hong Kong\",\n  \"HM\": \"Islas Heard y McDonald\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Croacia\",\n  \"HT\": \"Haití\",\n  \"HU\": \"Hungría\",\n  \"ID\": \"Indonesia\",\n  \"IE\": \"Irlanda\",\n  \"IL\": \"Israel\",\n  \"IM\": \"Isla de Man\",\n  \"IN\": \"India\",\n  \"IO\": \"Territorio Británico del Océano Índico\",\n  \"IQ\": \"Irak\",\n  \"IR\": \"Irán\",\n  \"IS\": \"Islandia\",\n  \"IT\": \"Italia\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamaica\",\n  \"JO\": \"Jordan\",\n  \"JP\": \"Japón\",\n  \"KE\": \"Kenya\",\n  \"KG\": \"Kirguistán\",\n  \"KH\": \"Camboya\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Comoras\",\n  \"KN\": \"San Cristóbal y Nieves\",\n  \"KP\": \"Corea del Norte\",\n  \"KR\": \"Corea del Sur\",\n  \"KW\": \"Kuwait\",\n  \"KY\": \"Islas Caimán\",\n  \"KZ\": \"Kazajstán\",\n  \"LA\": \"República Democrática Popular Lao\",\n  \"LB\": \"Líbano\",\n  \"LC\": \"Santa Lucía\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Liberia\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Lituania\",\n  \"LU\": \"Luxemburgo\",\n  \"LV\": \"Letonia\",\n  \"LY\": \"Jamahiriya Árabe Libia\",\n  \"MA\": \"Marruecos\",\n  \"MC\": \"Mónaco\",\n  \"MD\": \"Moldavia\",\n  \"ME\": \"Montenegro\",\n  \"MF\": \"San Martín\",\n  \"MG\": \"Madagascar\",\n  \"MH\": \"Islas Marshall\",\n  \"MK\": \"Macedonia\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mongolia\",\n  \"MO\": \"Macao\",\n  \"MP\": \"Islas Marianas del Norte\",\n  \"MQ\": \"Martinica\",\n  \"MR\": \"Mauritania\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Mauricio\",\n  \"MV\": \"Maldivas\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"México\",\n  \"MY\": \"Malaysia\",\n  \"MZ\": \"Mozambique\",\n  \"NA\": \"Namibia\",\n  \"NC\": \"Nueva Caledonia\",\n  \"NE\": \"Níger\",\n  \"NF\": \"Isla Norfolk\",\n  \"NG\": \"Nigeria\",\n  \"NI\": \"Nicaragua\",\n  \"NL\": \"Holanda\",\n  \"NO\": \"Noruega\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Nueva Zelanda\",\n  \"OM\": \"Omán\",\n  \"OS\": \"Osetia del Sur\",\n  \"PA\": \"Panamá\",\n  \"PE\": \"Perú\",\n  \"PF\": \"Polinesia Francesa\",\n  \"PG\": \"Papúa Nueva Guinea\",\n  \"PH\": \"Filipinas\",\n  \"PK\": \"Pakistán\",\n  \"PL\": \"Polonia\",\n  \"PM\": \"San Pedro y Miquelón\",\n  \"PN\": \"Pitcairn\",\n  \"PR\": \"Puerto Rico\",\n  \"PS\": \"Territorio Palestino Ocupado\",\n  \"PT\": \"Portugal\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Qatar\",\n  \"RE\": \"Reunión\",\n  \"RO\": \"Rumania\",\n  \"RS\": \"Serbia\",\n  \"RU\": \"Federación Rusa\",\n  \"RW\": \"Ruanda\",\n  \"SA\": \"Arabia Saudita\",\n  \"SB\": \"Islas Salomón\",\n  \"SC\": \"Seychelles\",\n  \"SD\": \"Sudán\",\n  \"SE\": \"Suecia\",\n  \"SG\": \"Singapur\",\n  \"SH\": \"Santa Helena, Ascensión y Tristán Da Cunha\",\n  \"SI\": \"Eslovenia\",\n  \"SJ\": \"Svalbard y Jan Mayen\",\n  \"SK\": \"Eslovaquia\",\n  \"SL\": \"Sierra Leona\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somalia\",\n  \"SR\": \"Surinam\",\n  \"SS\": \"Sur de Sudán\",\n  \"ST\": \"Santo Tomé y Príncipe\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"República Árabe Siria\",\n  \"SZ\": \"Swazilandia\",\n  \"TA\": \"Tristán da Cunha\",\n  \"TC\": \"Islas Turcas y Caicos\",\n  \"TD\": \"Chad\",\n  \"TF\": \"Territorios Australes Franceses\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Tailandia\",\n  \"TJ\": \"Tayikistán\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Timor-Leste\",\n  \"TM\": \"Turkmenistán\",\n  \"TN\": \"Túnez\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Turquía\",\n  \"TT\": \"Trinidad y Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwán\",\n  \"TZ\": \"Tanzania\",\n  \"UA\": \"Ucrania\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"Islas periféricas menores de Estados Unidos\",\n  \"US\": \"Estados Unidos\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Uzbekistán\",\n  \"VA\": \"Santa Sede (Ciudad del Vaticano)\",\n  \"VC\": \"San Vicente y las Granadinas\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Islas Vírgenes Británicas\",\n  \"VI\": \"Islas Vírgenes, EE.UU.\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis y Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Yemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"Sudáfrica\",\n  \"ZM\": \"Zambia\",\n  \"ZW\": \"Zimbabwe\",\n  \"ZZ\": \"Internacional\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Riik\",\n  \"phone\": \"Telefoninumber\",\n  \"AB\": \"Abhaasia\",\n  \"AC\": \"Ascension\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"Araabia Ühendemiraadid\",\n  \"AF\": \"Afganistan\",\n  \"AG\": \"Antigua ja Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albaania\",\n  \"AM\": \"Armeenia\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antarktika\",\n  \"AR\": \"Argentina\",\n  \"AS\": \"Ameerika Samoa\",\n  \"AT\": \"Austria\",\n  \"AU\": \"Austraalia\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Ahvenamaa\",\n  \"AZ\": \"Aserbaidžaan\",\n  \"BA\": \"Bosnia ja Hertsegoviina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladesh\",\n  \"BE\": \"Belgia\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgaaria\",\n  \"BH\": \"Bahrein\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BL\": \"Saint-Barthélemy\",\n  \"BM\": \"Bermuda\",\n  \"BN\": \"Brunei\",\n  \"BO\": \"Boliivia\",\n  \"BQ\": \"Hollandi Kariibi mere saared\",\n  \"BR\": \"Brasiilia\",\n  \"BS\": \"Bahama\",\n  \"BT\": \"Bhutan\",\n  \"BV\": \"Bouvet’ saar\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Valgevene\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Kanada\",\n  \"CC\": \"Kookossaared\",\n  \"CD\": \"Kongo DV\",\n  \"CF\": \"Kesk-Aafrika Vabariik\",\n  \"CG\": \"Kongo Vabariik\",\n  \"CH\": \"Šveits\",\n  \"CI\": \"Côte d’Ivoire\",\n  \"CK\": \"Cooki saared\",\n  \"CL\": \"Tšiili\",\n  \"CM\": \"Kamerun\",\n  \"CN\": \"Hiina\",\n  \"CO\": \"Colombia\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Kuuba\",\n  \"CV\": \"Roheneemesaared\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Jõulusaar\",\n  \"CY\": \"Küpros\",\n  \"CZ\": \"Tšehhi\",\n  \"DE\": \"Saksamaa\",\n  \"DJ\": \"Djibouti\",\n  \"DK\": \"Taani\",\n  \"DM\": \"Dominica\",\n  \"DO\": \"Dominikaani Vabariik\",\n  \"DZ\": \"Alžeeria\",\n  \"EC\": \"Ecuador\",\n  \"EE\": \"Eesti\",\n  \"EG\": \"Egiptus\",\n  \"EH\": \"Lääne-Sahara\",\n  \"ER\": \"Eritrea\",\n  \"ES\": \"Hispaania\",\n  \"ET\": \"Etioopia\",\n  \"FI\": \"Soome\",\n  \"FJ\": \"Fidži\",\n  \"FK\": \"Falklandi saared\",\n  \"FM\": \"Mikroneesia\",\n  \"FO\": \"Fääri saared\",\n  \"FR\": \"Prantsusmaa\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"Suurbritannia\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Gruusia\",\n  \"GF\": \"Prantsuse Guajaana\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Gröönimaa\",\n  \"GM\": \"Gambia\",\n  \"GN\": \"Guinea\",\n  \"GP\": \"Guadeloupe\",\n  \"GQ\": \"Ekvatoriaal-Guinea\",\n  \"GR\": \"Kreeka\",\n  \"GS\": \"Lõuna-Georgia ja Lõuna-Sandwichi saared\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guinea-Bissau\",\n  \"GY\": \"Guyana\",\n  \"HK\": \"Hongkongi erihalduspiirkond\",\n  \"HM\": \"Heardi ja McDonaldi saared\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Horvaatia\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Ungari\",\n  \"ID\": \"Indoneesia\",\n  \"IE\": \"Iirimaa\",\n  \"IL\": \"Iisrael\",\n  \"IM\": \"Mani saar\",\n  \"IN\": \"India\",\n  \"IO\": \"Briti India ookeani ala\",\n  \"IQ\": \"Iraak\",\n  \"IR\": \"Iraan\",\n  \"IS\": \"Island\",\n  \"IT\": \"Itaalia\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamaica\",\n  \"JO\": \"Jordaania\",\n  \"JP\": \"Jaapan\",\n  \"KE\": \"Keenia\",\n  \"KG\": \"Kõrgõzstan\",\n  \"KH\": \"Kambodža\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Komoorid\",\n  \"KN\": \"Saint Kitts ja Nevis\",\n  \"KP\": \"Põhja-Korea\",\n  \"KR\": \"Lõuna-Korea\",\n  \"KW\": \"Kuveit\",\n  \"KY\": \"Kaimanisaared\",\n  \"KZ\": \"Kasahstan\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Liibanon\",\n  \"LC\": \"Saint Lucia\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Libeeria\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Leedu\",\n  \"LU\": \"Luksemburg\",\n  \"LV\": \"Läti\",\n  \"LY\": \"Liibüa\",\n  \"MA\": \"Maroko\",\n  \"MC\": \"Monaco\",\n  \"MD\": \"Moldova\",\n  \"ME\": \"Montenegro\",\n  \"MF\": \"Saint-Martin\",\n  \"MG\": \"Madagaskar\",\n  \"MH\": \"Marshalli Saared\",\n  \"MK\": \"Põhja-Makedoonia\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar (Birma)\",\n  \"MN\": \"Mongoolia\",\n  \"MO\": \"Macau erihalduspiirkond\",\n  \"MP\": \"Põhja-Mariaanid\",\n  \"MQ\": \"Martinique\",\n  \"MR\": \"Mauritaania\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Mauritius\",\n  \"MV\": \"Maldiivid\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Mehhiko\",\n  \"MY\": \"Malaisia\",\n  \"MZ\": \"Mosambiik\",\n  \"NA\": \"Namiibia\",\n  \"NC\": \"Uus-Kaledoonia\",\n  \"NE\": \"Niger\",\n  \"NF\": \"Norfolk\",\n  \"NG\": \"Nigeeria\",\n  \"NI\": \"Nicaragua\",\n  \"NL\": \"Holland\",\n  \"NO\": \"Norra\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Uus-Meremaa\",\n  \"OM\": \"Omaan\",\n  \"OS\": \"Lõuna-Osseetia\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Peruu\",\n  \"PF\": \"Prantsuse Polüneesia\",\n  \"PG\": \"Paapua Uus-Guinea\",\n  \"PH\": \"Filipiinid\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Poola\",\n  \"PM\": \"Saint-Pierre ja Miquelon\",\n  \"PN\": \"Pitcairni saared\",\n  \"PR\": \"Puerto Rico\",\n  \"PS\": \"Palestiina alad\",\n  \"PT\": \"Portugal\",\n  \"PW\": \"Belau\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Katar\",\n  \"RE\": \"Réunion\",\n  \"RO\": \"Rumeenia\",\n  \"RS\": \"Serbia\",\n  \"RU\": \"Venemaa\",\n  \"RW\": \"Rwanda\",\n  \"SA\": \"Saudi Araabia\",\n  \"SB\": \"Saalomoni Saared\",\n  \"SC\": \"Seišellid\",\n  \"SD\": \"Sudaan\",\n  \"SE\": \"Rootsi\",\n  \"SG\": \"Singapur\",\n  \"SH\": \"Saint Helena\",\n  \"SI\": \"Sloveenia\",\n  \"SJ\": \"Svalbard ja Jan Mayen\",\n  \"SK\": \"Slovakkia\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somaalia\",\n  \"SR\": \"Suriname\",\n  \"SS\": \"Lõuna-Sudaan\",\n  \"ST\": \"São Tomé ja Príncipe\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Süüria\",\n  \"SZ\": \"Svaasimaa\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Turks ja Caicos\",\n  \"TD\": \"Tšaad\",\n  \"TF\": \"Prantsuse Lõunaalad\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Tai\",\n  \"TJ\": \"Tadžikistan\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Ida-Timor\",\n  \"TM\": \"Türkmenistan\",\n  \"TN\": \"Tuneesia\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Türgi\",\n  \"TT\": \"Trinidad ja Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan\",\n  \"TZ\": \"Tansaania\",\n  \"UA\": \"Ukraina\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"Ühendriikide hajasaared\",\n  \"US\": \"Ameerika Ühendriigid\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Usbekistan\",\n  \"VA\": \"Vatikan\",\n  \"VC\": \"Saint Vincent ja Grenadiinid\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Briti Neitsisaared\",\n  \"VI\": \"USA Neitsisaared\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis ja Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Jeemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"Lõuna-Aafrika Vabariik\",\n  \"ZM\": \"Sambia\",\n  \"ZW\": \"Zimbabwe\",\n  \"ZZ\": \"Rahvusvaheline\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Maa\",\n  \"phone\": \"Puhelinnumero\",\n  \"AB\": \"Abhasia\",\n  \"AC\": \"Ascension\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"Arabiemiirikunnat\",\n  \"AF\": \"Afganistan\",\n  \"AG\": \"Antigua ja Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albania\",\n  \"AM\": \"Armenia\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antarktis\",\n  \"AR\": \"Argentiina\",\n  \"AS\": \"Amerikan Samoa\",\n  \"AT\": \"Itävalta\",\n  \"AU\": \"Australia\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Ahvenanmaa\",\n  \"AZ\": \"Azerbaidžan\",\n  \"BA\": \"Bosnia ja Hertsegovina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladesh\",\n  \"BE\": \"Belgia\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgaria\",\n  \"BH\": \"Bahrain\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BL\": \"Saint-Barthélemy\",\n  \"BM\": \"Bermuda\",\n  \"BN\": \"Brunei\",\n  \"BO\": \"Bolivia\",\n  \"BQ\": \"Bonaire, Sint Eustatius ja Saba\",\n  \"BR\": \"Brasilia\",\n  \"BS\": \"Bahama\",\n  \"BT\": \"Bhutan\",\n  \"BV\": \"Bouvet’nsaari\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Valko-Venäjä\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Kanada\",\n  \"CC\": \"Kookossaaret\",\n  \"CD\": \"Kongon demokraattinen tasavalta\",\n  \"CF\": \"Keski-Afrikan tasavalta\",\n  \"CG\": \"Kongon tasavalta\",\n  \"CH\": \"Sveitsi\",\n  \"CI\": \"Norsunluurannikko\",\n  \"CK\": \"Cookinsaaret\",\n  \"CL\": \"Chile\",\n  \"CM\": \"Kamerun\",\n  \"CN\": \"Kiina\",\n  \"CO\": \"Kolumbia\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Kuuba\",\n  \"CV\": \"Kap Verde\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Joulusaari\",\n  \"CY\": \"Kypros\",\n  \"CZ\": \"Tšekki\",\n  \"DE\": \"Saksa\",\n  \"DJ\": \"Djibouti\",\n  \"DK\": \"Tanska\",\n  \"DM\": \"Dominica\",\n  \"DO\": \"Dominikaaninen tasavalta\",\n  \"DZ\": \"Algeria\",\n  \"EC\": \"Ecuador\",\n  \"EE\": \"Viro\",\n  \"EG\": \"Egypti\",\n  \"EH\": \"Länsi-Sahara\",\n  \"ER\": \"Eritrea\",\n  \"ES\": \"Espanja\",\n  \"ET\": \"Etiopia\",\n  \"FI\": \"Suomi\",\n  \"FJ\": \"Fidži\",\n  \"FK\": \"Falklandinsaaret\",\n  \"FM\": \"Mikronesian liittovaltio\",\n  \"FO\": \"Färsaaret\",\n  \"FR\": \"Ranska\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"Yhdistynyt kuningaskunta\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Georgia\",\n  \"GF\": \"Ranskan Guayana\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Grönlanti\",\n  \"GM\": \"Gambia\",\n  \"GN\": \"Guinea\",\n  \"GP\": \"Guadeloupe\",\n  \"GQ\": \"Päiväntasaajan Guinea\",\n  \"GR\": \"Kreikka\",\n  \"GS\": \"Etelä-Georgia ja Eteläiset Sandwichsaaret\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guinea-Bissau\",\n  \"GY\": \"Guyana\",\n  \"HK\": \"Hongkong\",\n  \"HM\": \"Heard ja McDonaldinsaaret\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Kroatia\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Unkari\",\n  \"ID\": \"Indonesia\",\n  \"IE\": \"Irlanti\",\n  \"IL\": \"Israel\",\n  \"IM\": \"Mansaari\",\n  \"IN\": \"Intia\",\n  \"IO\": \"Brittiläinen Intian valtameren alue\",\n  \"IQ\": \"Irak\",\n  \"IR\": \"Iran\",\n  \"IS\": \"Islanti\",\n  \"IT\": \"Italia\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamaika\",\n  \"JO\": \"Jordania\",\n  \"JP\": \"Japani\",\n  \"KE\": \"Kenia\",\n  \"KG\": \"Kirgisia\",\n  \"KH\": \"Kambodža\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Komorit\",\n  \"KN\": \"Saint Kitts ja Nevis\",\n  \"KP\": \"Korean demokraattinen kansantasavalta\",\n  \"KR\": \"Korean tasavalta\",\n  \"KW\": \"Kuwait\",\n  \"KY\": \"Caymansaaret\",\n  \"KZ\": \"Kazakstan\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Libanon\",\n  \"LC\": \"Saint Lucia\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Liberia\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Liettua\",\n  \"LU\": \"Luxemburg\",\n  \"LV\": \"Latvia\",\n  \"LY\": \"Libya\",\n  \"MA\": \"Marokko\",\n  \"MC\": \"Monaco\",\n  \"MD\": \"Moldova\",\n  \"ME\": \"Montenegro\",\n  \"MF\": \"Saint-Martin\",\n  \"MG\": \"Madagaskar\",\n  \"MH\": \"Marshallinsaaret\",\n  \"MK\": \"Pohjois-Makedonia\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mongolia\",\n  \"MO\": \"Macao\",\n  \"MP\": \"Pohjois-Mariaanit\",\n  \"MQ\": \"Martinique\",\n  \"MR\": \"Mauritania\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Mauritius\",\n  \"MV\": \"Malediivit\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Meksiko\",\n  \"MY\": \"Malesia\",\n  \"MZ\": \"Mosambik\",\n  \"NA\": \"Namibia\",\n  \"NC\": \"Uusi-Kaledonia\",\n  \"NE\": \"Niger\",\n  \"NF\": \"Norfolkinsaari\",\n  \"NG\": \"Nigeria\",\n  \"NI\": \"Nicaragua\",\n  \"NL\": \"Alankomaat\",\n  \"NO\": \"Norja\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Uusi-Seelanti\",\n  \"OM\": \"Oman\",\n  \"OS\": \"Etelä-Ossetia\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Peru\",\n  \"PF\": \"Ranskan Polynesia\",\n  \"PG\": \"Papua-Uusi-Guinea\",\n  \"PH\": \"Filippiinit\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Puola\",\n  \"PM\": \"Saint-Pierre ja Miquelon\",\n  \"PN\": \"Pitcairn\",\n  \"PR\": \"Puerto Rico\",\n  \"PS\": \"Palestiina\",\n  \"PT\": \"Portugali\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Qatar\",\n  \"RE\": \"Réunion\",\n  \"RO\": \"Romania\",\n  \"RS\": \"Serbia\",\n  \"RU\": \"Venäjä\",\n  \"RW\": \"Ruanda\",\n  \"SA\": \"Saudi-Arabia\",\n  \"SB\": \"Salomonsaaret\",\n  \"SC\": \"Seychellit\",\n  \"SD\": \"Sudan\",\n  \"SE\": \"Ruotsi\",\n  \"SG\": \"Singapore\",\n  \"SH\": \"Saint Helena\",\n  \"SI\": \"Slovenia\",\n  \"SJ\": \"Svalbard ja Jan Mayen\",\n  \"SK\": \"Slovakia\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somalia\",\n  \"SR\": \"Suriname\",\n  \"SS\": \"Etelä-Sudan\",\n  \"ST\": \"São Tomé ja Príncipe\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Syyria\",\n  \"SZ\": \"Swazimaa\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Turks- ja Caicossaaret\",\n  \"TD\": \"Tšad\",\n  \"TF\": \"Ranskan eteläiset alueet\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Thaimaa\",\n  \"TJ\": \"Tadžikistan\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Itä-Timor\",\n  \"TM\": \"Turkmenistan\",\n  \"TN\": \"Tunisia\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Turkki\",\n  \"TT\": \"Trinidad ja Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan\",\n  \"TZ\": \"Tansania\",\n  \"UA\": \"Ukraina\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"Yhdysvaltain pienet erillissaaret\",\n  \"US\": \"Yhdysvallat\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Uzbekistan\",\n  \"VA\": \"Vatikaanivaltio\",\n  \"VC\": \"Saint Vincent ja Grenadiinit\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Brittiläiset Neitsytsaaret\",\n  \"VI\": \"Yhdysvaltain Neitsytsaaret\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis ja Futunasaaret\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Jemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"Etelä-Afrikka\",\n  \"ZM\": \"Sambia\",\n  \"ZW\": \"Zimbabwe\",\n  \"ZZ\": \"Kansainvälinen\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Numéro de téléphone pays\",\n  \"phone\": \"Téléphone\",\n  \"AB\": \"Abkhazie\",\n  \"AC\": \"Île de l'Ascension\",\n  \"AD\": \"Andorre\",\n  \"AE\": \"Émirats Arabes Unis\",\n  \"AF\": \"Afghanistan\",\n  \"AG\": \"Antigua et Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albanie\",\n  \"AM\": \"Arménie\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antarctique\",\n  \"AR\": \"Argentine\",\n  \"AS\": \"Samoa américaines\",\n  \"AT\": \"Autriche\",\n  \"AU\": \"Australie\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"île d'Åland\",\n  \"AZ\": \"Azerbaïdjan\",\n  \"BA\": \"Bosnie-Herzégovine\",\n  \"BB\": \"Barbade\",\n  \"BD\": \"Bangladesh\",\n  \"BE\": \"Belgique\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgarie\",\n  \"BH\": \"Bahrain\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Bénin\",\n  \"BL\": \"St. Barthélemy\",\n  \"BM\": \"Bermudes\",\n  \"BN\": \"Brunéi\",\n  \"BO\": \"Bolivie\",\n  \"BQ\": \"Pays-Bas caribéens\",\n  \"BR\": \"Brésil\",\n  \"BS\": \"Bahamas\",\n  \"BT\": \"Bhoutan\",\n  \"BV\": \"Île Bouvet\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Biélorussie\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Canada\",\n  \"CC\": \"Ile des Cocos (Keeling)\",\n  \"CD\": \"République Démocratique du Congo\",\n  \"CF\": \"Centrafrique\",\n  \"CG\": \"Congo (République)\",\n  \"CH\": \"Suisse\",\n  \"CI\": \"Côte d'Ivoire\",\n  \"CK\": \"Iles Cook\",\n  \"CL\": \"Chili\",\n  \"CM\": \"Cameroun\",\n  \"CN\": \"Chine (République populaire)\",\n  \"CO\": \"Colombie\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Cuba\",\n  \"CV\": \"Iles du Cap-Vert\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Ile Christmas (Océan indien)\",\n  \"CY\": \"Chypre\",\n  \"CZ\": \"Tchèque (République)\",\n  \"DE\": \"Allemagne\",\n  \"DJ\": \"Djibouti\",\n  \"DK\": \"Danemark\",\n  \"DM\": \"Dominique\",\n  \"DO\": \"Dominicaine (République)\",\n  \"DZ\": \"Algérie\",\n  \"EC\": \"Equateur\",\n  \"EE\": \"Estonie\",\n  \"EG\": \"Egypte\",\n  \"EH\": \"Sahara Occidental\",\n  \"ER\": \"Erythrée\",\n  \"ES\": \"Espagne\",\n  \"ET\": \"Ethiopie\",\n  \"FI\": \"Finlande\",\n  \"FJ\": \"Fidji\",\n  \"FK\": \"Iles Falkland\",\n  \"FM\": \"Micronésie (Etats fédérés)\",\n  \"FO\": \"Iles Féroé\",\n  \"FR\": \"France\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"Grande-Bretagne et Irlande du Nord\",\n  \"GD\": \"Grenade\",\n  \"GE\": \"Géorgie\",\n  \"GF\": \"Guyane française\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Groenland\",\n  \"GM\": \"Gambie\",\n  \"GN\": \"Guinée (République)\",\n  \"GP\": \"Guadeloupe\",\n  \"GQ\": \"Guinée équatorial\",\n  \"GR\": \"Grèce\",\n  \"GS\": \"Géorgie du Sud-et-les Îles Sandwich du Sud\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guinée-Bissau\",\n  \"GY\": \"Guyane\",\n  \"HK\": \"Hong-Kong\",\n  \"HM\": \"Îles Heard et Îles de McDonald\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Croatie\",\n  \"HT\": \"Haïti\",\n  \"HU\": \"Hongrie\",\n  \"ID\": \"Indonésie\",\n  \"IE\": \"Irlande\",\n  \"IL\": \"Israël\",\n  \"IM\": \"Ile de Man\",\n  \"IN\": \"Inde\",\n  \"IO\": \"Territoire britannique de l'Océan indien\",\n  \"IQ\": \"Iraq\",\n  \"IR\": \"Iran\",\n  \"IS\": \"Islande\",\n  \"IT\": \"Italie\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamaïque\",\n  \"JO\": \"Jordanie\",\n  \"JP\": \"Japon\",\n  \"KE\": \"Kenya\",\n  \"KG\": \"Kirghizistan\",\n  \"KH\": \"Cambodge\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Comores\",\n  \"KN\": \"St. Christophe (St. Kitts) et Nevis\",\n  \"KP\": \"Corée, République populaire démocratique (Corée du Nord)\",\n  \"KR\": \"Corée, République (Corée du Sud)\",\n  \"KW\": \"Kuwait\",\n  \"KY\": \"Cayman\",\n  \"KZ\": \"Kazakhstan\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Liban\",\n  \"LC\": \"St. Lucie\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Liberia\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Lituanie\",\n  \"LU\": \"Luxembourg\",\n  \"LV\": \"Lettonie\",\n  \"LY\": \"Libye\",\n  \"MA\": \"Maroc\",\n  \"MC\": \"Monaco\",\n  \"MD\": \"Moldavie\",\n  \"ME\": \"Monténégro, République\",\n  \"MF\": \"St. Martin\",\n  \"MG\": \"Madagascar\",\n  \"MH\": \"Îles Marshall\",\n  \"MK\": \"ex-République yougoslave de Macédoine\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mongolie\",\n  \"MO\": \"Macao\",\n  \"MP\": \"Îles Mariannes\",\n  \"MQ\": \"Martinique\",\n  \"MR\": \"Mauritanie\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malte\",\n  \"MU\": \"Ile Maurice\",\n  \"MV\": \"Maldives\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Mexique\",\n  \"MY\": \"Malaisie\",\n  \"MZ\": \"Mozambique\",\n  \"NA\": \"Namibie\",\n  \"NC\": \"Nouvelle-Calédonie\",\n  \"NE\": \"Niger\",\n  \"NF\": \"Île Norfolk\",\n  \"NG\": \"Nigeria\",\n  \"NI\": \"Nicaragua\",\n  \"NL\": \"Pays-Bas\",\n  \"NO\": \"Norvège\",\n  \"NP\": \"Népal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Nouvelle-Zélande\",\n  \"OM\": \"Oman\",\n  \"OS\": \"Ossétie du Sud-Alanie\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Pérou\",\n  \"PF\": \"Polynésie française\",\n  \"PG\": \"Papouasie-Nouvelle-Guinée\",\n  \"PH\": \"Philippines\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Pologne\",\n  \"PM\": \"St. Pierre et Miquelon\",\n  \"PN\": \"Îles Pitcairn\",\n  \"PR\": \"Porto Rico\",\n  \"PS\": \"Palestine\",\n  \"PT\": \"Portugal\",\n  \"PW\": \"Palaos\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Qatar\",\n  \"RE\": \"Île de la Réunion\",\n  \"RO\": \"Roumanie\",\n  \"RS\": \"Serbie, République\",\n  \"RU\": \"Russie (Fédération de)\",\n  \"RW\": \"Rwanda\",\n  \"SA\": \"Arabie Saoudite\",\n  \"SB\": \"Iles Salomon\",\n  \"SC\": \"Seychelles\",\n  \"SD\": \"Soudan\",\n  \"SE\": \"Suède\",\n  \"SG\": \"Singapour\",\n  \"SH\": \"St. Hélène, Ascension et Tristan da Cunha\",\n  \"SI\": \"Slovénie\",\n  \"SJ\": \"Svalbard et île Jan Mayen SK Slovaque (République)\",\n  \"SK\": \"Slovaquie\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"St-Marin\",\n  \"SN\": \"Sénégal\",\n  \"SO\": \"Somalie\",\n  \"SR\": \"Suriname\",\n  \"SS\": \"Soudan du Sud\",\n  \"ST\": \"St. Thomas et Prince\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"St-Martin (Pays-Bas)\",\n  \"SY\": \"Syrie\",\n  \"SZ\": \"Swaziland\",\n  \"TA\": \"Île Tristan da Cunha\",\n  \"TC\": \"Turques et Caïques\",\n  \"TD\": \"Tchad\",\n  \"TF\": \"Terres australes et antarctiques françaises\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Thaïlande\",\n  \"TJ\": \"Tadjikistan\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Timor oriental\",\n  \"TM\": \"Turkménistan\",\n  \"TN\": \"Tunisie\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Turquie\",\n  \"TT\": \"Trinité et Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan (Taipei chinois)\",\n  \"TZ\": \"Tanzanie\",\n  \"UA\": \"Ukraine\",\n  \"UG\": \"Ouganda\",\n  \"UM\": \"Iles mineures éloignées des États-Unis\",\n  \"US\": \"États-Unis d'Amérique\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Ouzbékistan\",\n  \"VA\": \"Vatican\",\n  \"VC\": \"St. Vincent et Grenadines\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Iles britanniques Vierges (Tortola)\",\n  \"VI\": \"Îles Vierges (États-Unis)\",\n  \"VN\": \"Viêt-Nam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis et Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Yemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"Afrique du Sud\",\n  \"ZM\": \"Zambie\",\n  \"ZW\": \"Zimbabwe\",\n  \"ZZ\": \"International\"\n}","export default {\n  \"ext\": \"שלוחה\",\n  \"country\": \"ארץ מספר טלפון\",\n  \"phone\": \"טלפון\",\n  \"AB\": \"אבחזיה\",\n  \"AC\": \"אי אסנסיון\",\n  \"AD\": \"אנדורה\",\n  \"AE\": \"איחוד האמירויות הערביות\",\n  \"AF\": \"אפגניסטן\",\n  \"AG\": \"אנטיגואה וברבודה\",\n  \"AI\": \"אנגווילה\",\n  \"AL\": \"אלבניה\",\n  \"AM\": \"ארמניה\",\n  \"AO\": \"אנגולה\",\n  \"AQ\": \"אנטארקטיקה\",\n  \"AR\": \"ארגנטינה\",\n  \"AS\": \"סמואה אמריקאית\",\n  \"AT\": \"אוסטריה\",\n  \"AU\": \"אוסטרליה\",\n  \"AW\": \"ארובה\",\n  \"AX\": \"איי אולנד\",\n  \"AZ\": \"אזרבייג'ן\",\n  \"BA\": \"בוסניה והרצגובינה\",\n  \"BB\": \"ברבדוס\",\n  \"BD\": \"בנגלדש\",\n  \"BE\": \"בלגיה\",\n  \"BF\": \"בורקינה פאסו\",\n  \"BG\": \"בולגריה\",\n  \"BH\": \"בחריין\",\n  \"BI\": \"בורונדי\",\n  \"BJ\": \"בנין\",\n  \"BL\": \"סנט ברתולומיאו\",\n  \"BM\": \"ברמודה\",\n  \"BN\": \"ברוניי דארוסלם\",\n  \"BO\": \"בוליביה\",\n  \"BQ\": \"האיים הקריביים ההולנדיים\",\n  \"BR\": \"ברזיל\",\n  \"BS\": \"בהאמה\",\n  \"BT\": \"בהוטן\",\n  \"BV\": \"אי בובט\",\n  \"BW\": \"בוצואנה\",\n  \"BY\": \"בלארוס\",\n  \"BZ\": \"בליז\",\n  \"CA\": \"קנדה\",\n  \"CC\": \"איי קוקוס (קילינג)\",\n  \"CD\": \"קונגו, הרפובליקה הדמוקרטית של\",\n  \"CF\": \"הרפובליקה המרכז אפריקאית\",\n  \"CG\": \"קונגו\",\n  \"CH\": \"שוויץ\",\n  \"CI\": \"חוף השנהב\",\n  \"CK\": \"איי קוק\",\n  \"CL\": \"צ'ילה\",\n  \"CM\": \"קמרון\",\n  \"CN\": \"סין\",\n  \"CO\": \"קולומביה\",\n  \"CR\": \"קוסטה ריקה\",\n  \"CU\": \"קובה\",\n  \"CV\": \"קייפ ורדה\",\n  \"CW\": \"קורסאו\",\n  \"CX\": \"אי חג המולד\",\n  \"CY\": \"קפריסין\",\n  \"CZ\": \"צ'כיה\",\n  \"DE\": \"גרמניה\",\n  \"DJ\": \"ג'יבוטי\",\n  \"DK\": \"דנמרק\",\n  \"DM\": \"דומיניקה\",\n  \"DO\": \"הרפובליקה הדומיניקנית\",\n  \"DZ\": \"אלג'יריה\",\n  \"EC\": \"אקוודור\",\n  \"EE\": \"אסטוניה\",\n  \"EG\": \"מצרים\",\n  \"EH\": \"סהרה המערבית\",\n  \"ER\": \"אריתריאה\",\n  \"ES\": \"ספרד\",\n  \"ET\": \"אתיופיה\",\n  \"FI\": \"פינלנד\",\n  \"FJ\": \"פיג'י\",\n  \"FK\": \"איי פוקלנד\",\n  \"FM\": \"מדינות פדרציות של מיקרונזיה\",\n  \"FO\": \"איי פארו\",\n  \"FR\": \"צרפת\",\n  \"GA\": \"גבון\",\n  \"GB\": \"בריטניה\",\n  \"GD\": \"גרנדה\",\n  \"GE\": \"ג'ורג'יה\",\n  \"GF\": \"גיאנה הצרפתית\",\n  \"GG\": \"גרנזי\",\n  \"GH\": \"גאנה\",\n  \"GI\": \"גיברלטר\",\n  \"GL\": \"גרינלנד\",\n  \"GM\": \"גמביה\",\n  \"GN\": \"גינאה\",\n  \"GP\": \"גוואדלופ\",\n  \"GQ\": \"גינאה המשוונית\",\n  \"GR\": \"יוון\",\n  \"GS\": \"דרום ג'ורג'יה ואיי סנדוויץ' הדרומיים\",\n  \"GT\": \"גואטמלה\",\n  \"GU\": \"גואם\",\n  \"GW\": \"גינאה-ביסאו\",\n  \"GY\": \"גיאנה\",\n  \"HK\": \"הונג קונג\",\n  \"HM\": \"איי הרד ואיי מקדונלד\",\n  \"HN\": \"הונדורס\",\n  \"HR\": \"קרואטיה\",\n  \"HT\": \"האיטי\",\n  \"HU\": \"הונגריה\",\n  \"ID\": \"אינדונזיה\",\n  \"IE\": \"אירלנד\",\n  \"IL\": \"ישראל\",\n  \"IM\": \"אי מאן\",\n  \"IN\": \"הודו\",\n  \"IO\": \"הטריטוריה הבריטית באוקיינוס ההודי\",\n  \"IQ\": \"עיראק\",\n  \"IR\": \"איראן\",\n  \"IS\": \"איסלנד\",\n  \"IT\": \"איטליה\",\n  \"JE\": \"ג'רזי\",\n  \"JM\": \"ג'מייקה\",\n  \"JO\": \"ירדן\",\n  \"JP\": \"יפן\",\n  \"KE\": \"קניה\",\n  \"KG\": \"קירגיזסטן\",\n  \"KH\": \"קמבודיה\",\n  \"KI\": \"קיריבטי\",\n  \"KM\": \"קומורו\",\n  \"KN\": \"סנט קיטס ונוויס\",\n  \"KP\": \"צפון קוריאה\",\n  \"KR\": \"דרום קוריאה\",\n  \"KW\": \"כווית\",\n  \"KY\": \"איי קיימן\",\n  \"KZ\": \"קזחסטן\",\n  \"LA\": \"לאוס\",\n  \"LB\": \"לבנון\",\n  \"LC\": \"לוסיה הקדושה\",\n  \"LI\": \"ליכטנשטיין\",\n  \"LK\": \"סרי לנקה\",\n  \"LR\": \"ליבריה\",\n  \"LS\": \"לסוטו\",\n  \"LT\": \"ליטא\",\n  \"LU\": \"לוקסמבורג\",\n  \"LV\": \"לטביה\",\n  \"LY\": \"לוב\",\n  \"MA\": \"מרוקו\",\n  \"MC\": \"מונקו\",\n  \"MD\": \"מולדובה\",\n  \"ME\": \"מונטנגרו\",\n  \"MF\": \"סנט מרטין (חלק צרפתי)\",\n  \"MG\": \"מדגסקר\",\n  \"MH\": \"איי מרשל\",\n  \"MK\": \"צפון מקדוניה\",\n  \"ML\": \"מלי\",\n  \"MM\": \"מיאנמר\",\n  \"MN\": \"מונגוליה\",\n  \"MO\": \"מקאו\",\n  \"MP\": \"איי מריאנה הצפוניים\",\n  \"MQ\": \"מרטיניק\",\n  \"MR\": \"מאוריטניה\",\n  \"MS\": \"מונסראט\",\n  \"MT\": \"מלטה\",\n  \"MU\": \"מאוריציוס\",\n  \"MV\": \"המלדיביים\",\n  \"MW\": \"מלאווי\",\n  \"MX\": \"מקסיקו\",\n  \"MY\": \"מלזיה\",\n  \"MZ\": \"מוזמביק\",\n  \"NA\": \"נמיביה\",\n  \"NC\": \"קלדוניה החדשה\",\n  \"NE\": \"ניג'ר\",\n  \"NF\": \"אי נורפוק\",\n  \"NG\": \"ניגריה\",\n  \"NI\": \"ניקרגואה\",\n  \"NL\": \"הולנד\",\n  \"NO\": \"נורווגיה\",\n  \"NP\": \"נפאל\",\n  \"NR\": \"נאורו\",\n  \"NU\": \"ניווה\",\n  \"NZ\": \"ניו זילנד\",\n  \"OM\": \"אומן\",\n  \"OS\": \"דרום אוסטיה\",\n  \"PA\": \"פנמה\",\n  \"PE\": \"פרו\",\n  \"PF\": \"פולינזיה הצרפתית\",\n  \"PG\": \"פפואה גינאה החדשה\",\n  \"PH\": \"פיליפינים\",\n  \"PK\": \"פקיסטן\",\n  \"PL\": \"פולין\",\n  \"PM\": \"סנט פייר ומיקלון\",\n  \"PN\": \"פיטקרן\",\n  \"PR\": \"פורטו ריקו\",\n  \"PS\": \"פלסטין\",\n  \"PT\": \"פורטוגל\",\n  \"PW\": \"פאלאו\",\n  \"PY\": \"פרגוואי\",\n  \"QA\": \"קטאר\",\n  \"RE\": \"איחוד\",\n  \"RO\": \"רומניה\",\n  \"RS\": \"סרביה\",\n  \"RU\": \"רוסיה\",\n  \"RW\": \"רואנדה\",\n  \"SA\": \"ערב הסעודית\",\n  \"SB\": \"איי שלמה\",\n  \"SC\": \"איי סיישל\",\n  \"SD\": \"סודן\",\n  \"SE\": \"שבדיה\",\n  \"SG\": \"סינגפור\",\n  \"SH\": \"הלנה הקדושה\",\n  \"SI\": \"סלובניה\",\n  \"SJ\": \"סבאלברד ויאן מאין\",\n  \"SK\": \"סלובקיה\",\n  \"SL\": \"סיירה לאונה\",\n  \"SM\": \"סן מרינו\",\n  \"SN\": \"סנגל\",\n  \"SO\": \"סומליה\",\n  \"SR\": \"סורינאם\",\n  \"SS\": \"דרום סודן\",\n  \"ST\": \"סאו טומה ופרינסיפה\",\n  \"SV\": \"אל סלבדור\",\n  \"SX\": \"סנט מרטן\",\n  \"SY\": \"סוריה\",\n  \"SZ\": \"סווזילנד\",\n  \"TA\": \"טריסטן דה קוניה\",\n  \"TC\": \"איי טורקס וקייקוס\",\n  \"TD\": \"צ'אד\",\n  \"TF\": \"הטריטוריות הדרומיות הצרפתיות\",\n  \"TG\": \"טוגו\",\n  \"TH\": \"תאילנד\",\n  \"TJ\": \"טג'יקיסטן\",\n  \"TK\": \"טוקלאו\",\n  \"TL\": \"טימור-לסטה\",\n  \"TM\": \"טורקמניסטן\",\n  \"TN\": \"תוניסיה\",\n  \"TO\": \"טונגה\",\n  \"TR\": \"טורקיה\",\n  \"TT\": \"טרינידד וטובגו\",\n  \"TV\": \"טובאלו\",\n  \"TW\": \"טייוואן\",\n  \"TZ\": \"טנזניה\",\n  \"UA\": \"אוקראינה\",\n  \"UG\": \"אוגנדה\",\n  \"UM\": \"האיים הקטנים של ארצות הברית\",\n  \"US\": \"ארצות הברית\",\n  \"UY\": \"אורוגוואי\",\n  \"UZ\": \"אוזבקיסטן\",\n  \"VA\": \"הוותיקן\",\n  \"VC\": \"סנט וינסנט והגרנדינים\",\n  \"VE\": \"ונצואלה\",\n  \"VG\": \"איי הבתולה, בריטיים\",\n  \"VI\": \"איי הבתולה של ארצות הברית\",\n  \"VN\": \"וייטנאם\",\n  \"VU\": \"ונואטו\",\n  \"WF\": \"וואליס ופוטונה\",\n  \"WS\": \"סמואה\",\n  \"XK\": \"קוסובו\",\n  \"YE\": \"תימן\",\n  \"YT\": \"מיוט\",\n  \"ZA\": \"דרום אפריקה\",\n  \"ZM\": \"זמביה\",\n  \"ZW\": \"זימבווה\",\n  \"ZZ\": \"בינלאומי\"\n}","export default {\n  \"ext\": \"լրաց.\",\n  \"country\": \"Հեռախոսահամարի երկիր\",\n  \"phone\": \"Հեռախոս\",\n  \"AB\": \"Ափხազիա\",\n  \"AC\": \"Ասենսյոնի կղզի\",\n  \"AD\": \"Անդորրա\",\n  \"AE\": \"Միացյալ Արաբական Էմիրաթներ\",\n  \"AF\": \"Աֆղանստան\",\n  \"AG\": \"Անտիգուա եւ Բարբուդա\",\n  \"AI\": \"Անգուիլա\",\n  \"AL\": \"Ալբանիա\",\n  \"AM\": \"Հայաստան\",\n  \"AO\": \"Անգոլա\",\n  \"AQ\": \"Անտարկտիկա\",\n  \"AR\": \"Արգենտինա\",\n  \"AS\": \"Ամերիկյան Սամոա\",\n  \"AT\": \"Ավստրիա\",\n  \"AU\": \"Ավստրալիա\",\n  \"AW\": \"Արուբա\",\n  \"AX\": \"Ալանդյան կղզիներ\",\n  \"AZ\": \"Ադրբեջան\",\n  \"BA\": \"Բոսնիա եւ Հերցեգովինա\",\n  \"BB\": \"Բարբադոս\",\n  \"BD\": \"Բանգլադեշ\",\n  \"BE\": \"Բելգիա\",\n  \"BF\": \"Բուրկինա Ֆասո\",\n  \"BG\": \"Բուլղարիա\",\n  \"BH\": \"Բահրեյն\",\n  \"BI\": \"Բուրունդի\",\n  \"BJ\": \"Բենին\",\n  \"BL\": \"Սուրբ Բարթողոմեոս\",\n  \"BM\": \"Բերմուդյան կղզիներ\",\n  \"BN\": \"Բրունեյ\",\n  \"BO\": \"Բոլիվիա\",\n  \"BQ\": \"Բոնեյր, Սինտ Էյուստատիոս եւ Սաբա\",\n  \"BR\": \"Բրազիլիա\",\n  \"BS\": \"Բահամայի կղզիներ\",\n  \"BT\": \"Բուտան\",\n  \"BV\": \"Բուվե կղզի\",\n  \"BW\": \"Բոտսվանա\",\n  \"BY\": \"Բելառուս\",\n  \"BZ\": \"Բելիզ\",\n  \"CA\": \"Կանադա\",\n  \"CC\": \"Կոկոսյան կղզիներ\",\n  \"CD\": \"Կոնգո, Դեմոկրատական Հանրապետություն\",\n  \"CF\": \"Կենդրոնական Աֆրիկյան Հանրապետություն\",\n  \"CG\": \"Կոնգո\",\n  \"CH\": \"Շվեյցարիա\",\n  \"CI\": \"Կոտ դ'Իվուար\",\n  \"CK\": \"Կուկի կղզիներ\",\n  \"CL\": \"Չիլի\",\n  \"CM\": \"Կամերուն\",\n  \"CN\": \"Չինաստան\",\n  \"CO\": \"Կոլումբիա\",\n  \"CR\": \"Կոստա Ռիկա\",\n  \"CU\": \"Կուբա\",\n  \"CV\": \"Կաբո Վերդե\",\n  \"CW\": \"Կյուրասաո\",\n  \"CX\": \"Ծննդյան կղզի\",\n  \"CY\": \"Կիպրոս\",\n  \"CZ\": \"Չեխիա\",\n  \"DE\": \"Գերմանիա\",\n  \"DJ\": \"Ջիբուտի\",\n  \"DK\": \"Դանիա\",\n  \"DM\": \"Դոմինիկա\",\n  \"DO\": \"Դոմինիկյան Հանրապետություն\",\n  \"DZ\": \"Ալժիր\",\n  \"EC\": \"Էկվադոր\",\n  \"EE\": \"Էստոնիա\",\n  \"EG\": \"Եգիպտոս\",\n  \"EH\": \"Արևմտյան Սահարա\",\n  \"ER\": \"Էրիթրեա\",\n  \"ES\": \"Իսպանիա\",\n  \"ET\": \"Եթովպիա\",\n  \"FI\": \"Ֆինլանդիա\",\n  \"FJ\": \"Ֆիջի\",\n  \"FK\": \"Ֆոլքլենդյան կղզիներ\",\n  \"FM\": \"Միկրոնեզիա\",\n  \"FO\": \"Ֆարերյան կղզիներ\",\n  \"FR\": \"Ֆրանսիա\",\n  \"GA\": \"Գաբոն\",\n  \"GB\": \"Մեծ Բրիտանիա\",\n  \"GD\": \"Գրենադա\",\n  \"GE\": \"Վրաստան\",\n  \"GF\": \"Ֆրանսիական Գվիանա\",\n  \"GG\": \"Գերնսի\",\n  \"GH\": \"Գանա\",\n  \"GI\": \"Ջիբրալթար\",\n  \"GL\": \"Գրենլանդիա\",\n  \"GM\": \"Գամբիա\",\n  \"GN\": \"Գվինեա\",\n  \"GP\": \"Գվադելուպա\",\n  \"GQ\": \"Եքվատորիալ Գվինեա\",\n  \"GR\": \"Հունաստան\",\n  \"GS\": \"Հարավային Ջորջիա եւ Հարավային Սանդվիչյան կղզիներ\",\n  \"GT\": \"Գվատեմալա\",\n  \"GU\": \"Գուամ\",\n  \"GW\": \"Գվինեա-Բիսաու\",\n  \"GY\": \"Գայանա\",\n  \"HK\": \"Հոնգ Կոնգ\",\n  \"HM\": \"Հերդ եւ Մակդոնալդյան կղզիներ\",\n  \"HN\": \"Հոնդուրաս\",\n  \"HR\": \"Խորվաթիա\",\n  \"HT\": \"Հայիթի\",\n  \"HU\": \"Հունգարիա\",\n  \"ID\": \"Ինդոնեզիա\",\n  \"IE\": \"Իռլանդիա\",\n  \"IL\": \"Իսրաել\",\n  \"IM\": \"Մենի կղզի\",\n  \"IN\": \"Հնդկաստան\",\n  \"IO\": \"Բրիտանական Հնդկական ծոցական տարածաշրջան\",\n  \"IQ\": \"Իրաք\",\n  \"IR\": \"Իրան\",\n  \"IS\": \"Իսլանդիա\",\n  \"IT\": \"Իտալիա\",\n  \"JE\": \"Ջերսի\",\n  \"JM\": \"Ջամայկա\",\n  \"JO\": \"Հորդանան\",\n  \"JP\": \"Ճապոնիա\",\n  \"KE\": \"Քենիա\",\n  \"KG\": \"Ղրղզստան\",\n  \"KH\": \"Կամբոջա\",\n  \"KI\": \"Կիրիբատի\",\n  \"KM\": \"Կոմորոս\",\n  \"KN\": \"Սենտ Կիտս եւ Նեւիս\",\n  \"KP\": \"Թվականի Կորեա\",\n  \"KR\": \"Հարավային Կորեա\",\n  \"KW\": \"Քուվեյթ\",\n  \"KY\": \"Կայմանյան կղզիներ\",\n  \"KZ\": \"Ղազախստան\",\n  \"LA\": \"Լաոս\",\n  \"LB\": \"Լիբանան\",\n  \"LC\": \"Սենտ Լյուսիա\",\n  \"LI\": \"Լիխտենշտեյն\",\n  \"LK\": \"Շրի Լանկա\",\n  \"LR\": \"Լիբերիա\",\n  \"LS\": \"Լեսոտո\",\n  \"LT\": \"Լիտվա\",\n  \"LU\": \"Լյուքսեմբուրգ\",\n  \"LV\": \"Լատվիա\",\n  \"LY\": \"Լիբիա\",\n  \"MA\": \"Մարոկկո\",\n  \"MC\": \"Մոնակո\",\n  \"MD\": \"Մոլդովա\",\n  \"ME\": \"Չեռնոգորիա\",\n  \"MF\": \"Սենտ Մարտեն\",\n  \"MG\": \"Մադագասկար\",\n  \"MH\": \"Մարշալյան կղզիներ\",\n  \"MK\": \"Մակեդոնիա\",\n  \"ML\": \"Մալի\",\n  \"MM\": \"Մյանմա\",\n  \"MN\": \"Մոնղոլիա\",\n  \"MO\": \"Մակաո\",\n  \"MP\": \"Հյուսիսային Մարիանական կղզիներ\",\n  \"MQ\": \"Մարտինիկա\",\n  \"MR\": \"Մավրիտանիա\",\n  \"MS\": \"Մոնսերատ\",\n  \"MT\": \"Մալթա\",\n  \"MU\": \"Մավրիկիոս\",\n  \"MV\": \"Մալդիվներ\",\n  \"MW\": \"Մալավի\",\n  \"MX\": \"Մեքսիկա\",\n  \"MY\": \"Մալայզիա\",\n  \"MZ\": \"Մոզամբիկ\",\n  \"NA\": \"Նամիբիա\",\n  \"NC\": \"Նոր Կալեդոնիա\",\n  \"NE\": \"Նիգեր\",\n  \"NF\": \"Նորֆոլկ կղզի\",\n  \"NG\": \"Նիգերիա\",\n  \"NI\": \"Նիկարագուա\",\n  \"NL\": \"Նիդերլանդեր\",\n  \"NO\": \"Նորվեգիա\",\n  \"NP\": \"Նեպալ\",\n  \"NR\": \"Նաուրու\",\n  \"NU\": \"Նիուե\",\n  \"NZ\": \"Նոր Զելանդիա\",\n  \"OM\": \"Օման\",\n  \"OS\": \"Հարավային Օսեթիա\",\n  \"PA\": \"Պանամա\",\n  \"PE\": \"Պերու\",\n  \"PF\": \"Ֆրանսիական Պոլինեզիա\",\n  \"PG\": \"Պապուա Նոր Գվինեա\",\n  \"PH\": \"Ֆիլիպիններ\",\n  \"PK\": \"Պակիստան\",\n  \"PL\": \"Լեհաստան\",\n  \"PM\": \"Սենտ Պիեռ եւ Միքելոն\",\n  \"PN\": \"Պիտկերների կղզիներ\",\n  \"PR\": \"Պուերտո Ռիկո\",\n  \"PS\": \"Պաղեստինայի տարածքներ\",\n  \"PT\": \"Պորտուգալիա\",\n  \"PW\": \"Պալաու\",\n  \"PY\": \"Պարագվայ\",\n  \"QA\": \"Կատար\",\n  \"RE\": \"Ռեյունիոն\",\n  \"RO\": \"Ռումինիա\",\n  \"RS\": \"Սերբիա\",\n  \"RU\": \"Ռուսաստան\",\n  \"RW\": \"Ռուանդա\",\n  \"SA\": \"Սաուդյան Արաբիա\",\n  \"SB\": \"Սողոմոնյան կղզիներ\",\n  \"SC\": \"Սեյշելներ\",\n  \"SD\": \"Սուդան\",\n  \"SE\": \"Շվեդիա\",\n  \"SG\": \"Սինգապուր\",\n  \"SH\": \"Սուրբ Հեղինե կղզի\",\n  \"SI\": \"Սլովենիա\",\n  \"SJ\": \"Սվալբարդ եւ Ջան Մայեն\",\n  \"SK\": \"Սլովակիա\",\n  \"SL\": \"Սյերա Լեոնե\",\n  \"SM\": \"Սան Մարինո\",\n  \"SN\": \"Սենեգալ\",\n  \"SO\": \"Սոմալի\",\n  \"SR\": \"Սուրինամ\",\n  \"SS\": \"Հարավային Սուդան\",\n  \"ST\": \"Սան Տոմե եւ Պրինսիպի\",\n  \"SV\": \"Սալվադոր\",\n  \"SX\": \"Սինտ Մաարտեն\",\n  \"SY\": \"Սիրիա\",\n  \"SZ\": \"Սվազիլենդ\",\n  \"TA\": \"Տրիստան դա Կունյա\",\n  \"TC\": \"Տերկս եւ Կայկոսյան կղզիներ\",\n  \"TD\": \"Չադ\",\n  \"TF\": \"Ֆրանսիական հարավային տարածքներ\",\n  \"TG\": \"Տոգո\",\n  \"TH\": \"Թաիլանդ\",\n  \"TJ\": \"Տաջիկստան\",\n  \"TK\": \"Տոկելաու\",\n  \"TL\": \"Թիմոր Լեշտի\",\n  \"TM\": \"Թուրքմենստան\",\n  \"TN\": \"Թունիս\",\n  \"TO\": \"Տոնգա\",\n  \"TR\": \"Թուրքիա\",\n  \"TT\": \"Տրինիդադ եւ Տոբագո\",\n  \"TV\": \"Տուվալու\",\n  \"TW\": \"Թայվան\",\n  \"TZ\": \"Տանզանիա\",\n  \"UA\": \"Ուկրաինա\",\n  \"UG\": \"Ուգանդա\",\n  \"UM\": \"ԱՄՆ-ի հեռացված բնակարան կղզիներ\",\n  \"US\": \"Միացյալ Նահանգներ\",\n  \"UY\": \"Ուրուգվայ\",\n  \"UZ\": \"Ուզբեկստան\",\n  \"VA\": \"Վատիկան\",\n  \"VC\": \"Սենտ Վինսենտ եւ Գրենադիներ\",\n  \"VE\": \"Վենեսուելա\",\n  \"VG\": \"Բրիտանական Վիրգինյան կղզիներ\",\n  \"VI\": \"ԱՄՆ-ի Վիրգինյան կղզիներ\",\n  \"VN\": \"Վիետնամ\",\n  \"VU\": \"Վանուատու\",\n  \"WF\": \"Ուոլիս եւ Ֆուտունա\",\n  \"WS\": \"Սամոա\",\n  \"XK\": \"Կոսովո\",\n  \"YE\": \"Եմեն\",\n  \"YT\": \"Մայոտտե\",\n  \"ZA\": \"Հարավային Աֆրիկա\",\n  \"ZM\": \"Զամբիա\",\n  \"ZW\": \"Զիմբաբվե\",\n  \"ZZ\": \"Միջազգային\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Paese del numero di telefono\",\n  \"phone\": \"Telefono\",\n  \"AB\": \"Abkhazia\",\n  \"AC\": \"Ascension Island\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"Emirati Arabi Uniti\",\n  \"AF\": \"Afghanistan\",\n  \"AG\": \"Antigua e Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albania\",\n  \"AM\": \"Armenia\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antartide\",\n  \"AR\": \"Argentina\",\n  \"AS\": \"Samoa Americane\",\n  \"AT\": \"Austria\",\n  \"AU\": \"Australia\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Isole Åland\",\n  \"AZ\": \"Azerbaigian\",\n  \"BA\": \"Bosnia-Erzegovina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladesh\",\n  \"BE\": \"Belgio\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgaria\",\n  \"BH\": \"Bahrain\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BL\": \"San Bartolomeo\",\n  \"BM\": \"Bermuda\",\n  \"BN\": \"Brunei Darussalam\",\n  \"BO\": \"Bolivia, stato plurinazionale di\",\n  \"BQ\": \"Bonaire, Sint Eustatius e Saba\",\n  \"BR\": \"Brasile\",\n  \"BS\": \"Bahamas\",\n  \"BT\": \"Bhutan\",\n  \"BV\": \"Bouvet Island\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Bielorussia\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Canada\",\n  \"CC\": \"Isole Cocos (Keeling)\",\n  \"CD\": \"Congo, Repubblica Democratica del\",\n  \"CF\": \"Repubblica Centrafricana\",\n  \"CG\": \"Congo\",\n  \"CH\": \"Svizzera\",\n  \"CI\": \"Costa d'Avorio\",\n  \"CK\": \"Cook Islands\",\n  \"CL\": \"Cile\",\n  \"CM\": \"Camerun\",\n  \"CN\": \"Cina\",\n  \"CO\": \"Colombia\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Cuba\",\n  \"CV\": \"Capo Verde\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Isola di Natale\",\n  \"CY\": \"Cipro\",\n  \"CZ\": \"Repubblica Ceca\",\n  \"DE\": \"Germania\",\n  \"DJ\": \"Gibuti\",\n  \"DK\": \"Danimarca\",\n  \"DM\": \"Dominica\",\n  \"DO\": \"Repubblica Dominicana\",\n  \"DZ\": \"Algeria\",\n  \"EC\": \"Ecuador\",\n  \"EE\": \"Estonia\",\n  \"EG\": \"Egitto\",\n  \"EH\": \"Sahara Occidentale\",\n  \"ER\": \"Eritrea\",\n  \"ES\": \"Spagna\",\n  \"ET\": \"Etiopia\",\n  \"FI\": \"Finlandia\",\n  \"FJ\": \"Fiji\",\n  \"FK\": \"Isole Falkland (Malvinas)\",\n  \"FM\": \"Micronesia, Stati Federati di\",\n  \"FO\": \"Isole Faroe\",\n  \"FR\": \"Francia\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"Regno Unito\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Georgia\",\n  \"GF\": \"Guiana Francese\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibilterra\",\n  \"GL\": \"Groenlandia\",\n  \"GM\": \"Gambia\",\n  \"GN\": \"Guinea\",\n  \"GP\": \"Guadalupa\",\n  \"GQ\": \"Guinea Equatoriale\",\n  \"GR\": \"Grecia\",\n  \"GS\": \"Georgia del Sud e le isole Sandwich del Sud\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guinea-Bissau\",\n  \"GY\": \"Guyana\",\n  \"HK\": \"Hong Kong\",\n  \"HM\": \"Heard Island e McDonald Islands\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Croazia\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Ungheria\",\n  \"ID\": \"Indonesia\",\n  \"IE\": \"Irlanda\",\n  \"IL\": \"Israele\",\n  \"IM\": \"Isola di Man\",\n  \"IN\": \"India\",\n  \"IO\": \"Territorio Britannico dell'Oceano Indiano\",\n  \"IQ\": \"Iraq\",\n  \"IR\": \"Iran, Repubblica Islamica dell'Iran\",\n  \"IS\": \"Islanda\",\n  \"IT\": \"Italia\",\n  \"JE\": \"Maglia\",\n  \"JM\": \"Giamaica\",\n  \"JO\": \"Jordan\",\n  \"JP\": \"Giappone\",\n  \"KE\": \"Kenya\",\n  \"KG\": \"Kirghizistan\",\n  \"KH\": \"Cambogia\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Comore\",\n  \"KN\": \"Saint Kitts e Nevis\",\n  \"KP\": \"Corea, Repubblica Democratica Popolare di\",\n  \"KR\": \"Corea, Repubblica di\",\n  \"KW\": \"Kuwait\",\n  \"KY\": \"Isole Cayman\",\n  \"KZ\": \"Kazakistan\",\n  \"LA\": \"Repubblica Democratica Popolare del Laos\",\n  \"LB\": \"Libano\",\n  \"LC\": \"Santa Lucia\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Liberia\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Lituania\",\n  \"LU\": \"Lussemburgo\",\n  \"LV\": \"Lettonia\",\n  \"LY\": \"Giamahiriya araba libica\",\n  \"MA\": \"Marocco\",\n  \"MC\": \"Monaco\",\n  \"MD\": \"Moldavia\",\n  \"ME\": \"Montenegro\",\n  \"MF\": \"Saint Martin (parte francese)\",\n  \"MG\": \"Madagascar\",\n  \"MH\": \"Isole Marshall\",\n  \"MK\": \"Macedonia, l'ex Repubblica Jugoslava di\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mongolia\",\n  \"MO\": \"Macao\",\n  \"MP\": \"Marianne settentrionali\",\n  \"MQ\": \"Martinica\",\n  \"MR\": \"Mauritania\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Mauritius\",\n  \"MV\": \"Maldive\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Messico\",\n  \"MY\": \"Malesia\",\n  \"MZ\": \"Mozambico\",\n  \"NA\": \"Namibia\",\n  \"NC\": \"Nuova Caledonia\",\n  \"NE\": \"Niger\",\n  \"NF\": \"Norfolk Island\",\n  \"NG\": \"Nigeria\",\n  \"NI\": \"Nicaragua\",\n  \"NL\": \"Paesi Bassi\",\n  \"NO\": \"Norvegia\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Nuova Zelanda\",\n  \"OM\": \"Oman\",\n  \"OS\": \"Ossezia del Sud\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Perù\",\n  \"PF\": \"Polinesia Francese\",\n  \"PG\": \"Papua Nuova Guinea\",\n  \"PH\": \"Filippine\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Polonia\",\n  \"PM\": \"Saint Pierre e Miquelon\",\n  \"PN\": \"Pitcairn\",\n  \"PR\": \"Puerto Rico\",\n  \"PS\": \"Territorio palestinese occupato\",\n  \"PT\": \"Portogallo\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Qatar\",\n  \"RE\": \"Riunione\",\n  \"RO\": \"Romania\",\n  \"RS\": \"Serbia\",\n  \"RU\": \"Federazione Russa\",\n  \"RW\": \"Rwanda\",\n  \"SA\": \"Arabia Saudita\",\n  \"SB\": \"Isole Salomone\",\n  \"SC\": \"Seychelles\",\n  \"SD\": \"Sudan\",\n  \"SE\": \"Svezia\",\n  \"SG\": \"Singapore\",\n  \"SH\": \"Santa Elena, Ascensione e Tristan Da Cunha\",\n  \"SI\": \"Slovenia\",\n  \"SJ\": \"Svalbard e Jan Mayen\",\n  \"SK\": \"Slovacchia\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somalia\",\n  \"SR\": \"Suriname\",\n  \"SS\": \"Sud Sudan\",\n  \"ST\": \"Sao Tome e Principe\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Repubblica Araba Siriana\",\n  \"SZ\": \"Swaziland\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Isole Turks e Caicos\",\n  \"TD\": \"Chad\",\n  \"TF\": \"Territori francesi del sud\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Thailandia\",\n  \"TJ\": \"Tagikistan\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Timor Est\",\n  \"TM\": \"Turkmenistan\",\n  \"TN\": \"Tunisia\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Turchia\",\n  \"TT\": \"Trinidad e Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan, provincia di Cina\",\n  \"TZ\": \"Tanzania, Repubblica Unita di\",\n  \"UA\": \"Ucraina\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"Isole Minori Esterne degli Stati Uniti\",\n  \"US\": \"Stati Uniti\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Uzbekistan\",\n  \"VA\": \"Santa Sede (Stato della Città del Vaticano)\",\n  \"VC\": \"Saint Vincent e le Grenadine\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Isole Vergini Britanniche\",\n  \"VI\": \"Isole Vergini Americane\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis e Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Yemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"Sudafrica\",\n  \"ZM\": \"Zambia\",\n  \"ZW\": \"Zimbabwe\",\n  \"ZZ\": \"Internazionale\"\n}","export default {\n  \"ext\": \"例\",\n  \"country\": \"電話番号 国\",\n  \"phone\": \"電話番号\",\n  \"AB\": \"アブハジア自治共和国\",\n  \"AC\": \"アセンション島\",\n  \"AD\": \"アンドラ\",\n  \"AE\": \"アラブ首長国連邦\",\n  \"AF\": \"アフガニスタン\",\n  \"AG\": \"アンティグア・バーブーダ\",\n  \"AI\": \"アンギラ\",\n  \"AL\": \"アルバニア\",\n  \"AM\": \"アルメニア\",\n  \"AO\": \"アンゴラ\",\n  \"AQ\": \"南極\",\n  \"AR\": \"アルゼンチン\",\n  \"AS\": \"アメリカ領サモア\",\n  \"AT\": \"オーストリア\",\n  \"AU\": \"オーストラリア\",\n  \"AW\": \"アルバ\",\n  \"AX\": \"オーランド諸島\",\n  \"AZ\": \"アゼルバイジャン\",\n  \"BA\": \"ボスニア・ヘルツェゴビナ\",\n  \"BB\": \"バルバドス\",\n  \"BD\": \"バングラデシュ\",\n  \"BE\": \"ベルギー\",\n  \"BF\": \"ブルキナファソ\",\n  \"BG\": \"ブルガリア\",\n  \"BH\": \"バーレーン\",\n  \"BI\": \"ブルンジ\",\n  \"BJ\": \"ベナン\",\n  \"BL\": \"サン・バルテルミー\",\n  \"BM\": \"バミューダ\",\n  \"BN\": \"ブルネイ・ダルサラーム\",\n  \"BO\": \"ボリビア多民族国\",\n  \"BQ\": \"ボネール、シント・ユースタティウスおよびサバ\",\n  \"BR\": \"ブラジル\",\n  \"BS\": \"バハマ\",\n  \"BT\": \"ブータン\",\n  \"BV\": \"ブーベ島\",\n  \"BW\": \"ボツワナ\",\n  \"BY\": \"ベラルーシ\",\n  \"BZ\": \"ベリーズ\",\n  \"CA\": \"カナダ\",\n  \"CC\": \"ココス（キーリング）諸島\",\n  \"CD\": \"コンゴ民主共和国\",\n  \"CF\": \"中央アフリカ共和国\",\n  \"CG\": \"コンゴ共和国\",\n  \"CH\": \"スイス\",\n  \"CI\": \"コートジボワール\",\n  \"CK\": \"クック諸島\",\n  \"CL\": \"チリ\",\n  \"CM\": \"カメルーン\",\n  \"CN\": \"中華人民共和国\",\n  \"CO\": \"コロンビア\",\n  \"CR\": \"コスタリカ\",\n  \"CU\": \"キューバ\",\n  \"CV\": \"カーボベルデ\",\n  \"CW\": \"キュラソー\",\n  \"CX\": \"クリスマス島\",\n  \"CY\": \"キプロス\",\n  \"CZ\": \"チェコ\",\n  \"DE\": \"ドイツ\",\n  \"DJ\": \"ジブチ\",\n  \"DK\": \"デンマーク\",\n  \"DM\": \"ドミニカ国\",\n  \"DO\": \"ドミニカ共和国\",\n  \"DZ\": \"アルジェリア\",\n  \"EC\": \"エクアドル\",\n  \"EE\": \"エストニア\",\n  \"EG\": \"エジプト\",\n  \"EH\": \"西サハラ\",\n  \"ER\": \"エリトリア\",\n  \"ES\": \"スペイン\",\n  \"ET\": \"エチオピア\",\n  \"FI\": \"フィンランド\",\n  \"FJ\": \"フィジー\",\n  \"FK\": \"フォークランド（マルビナス）諸島\",\n  \"FM\": \"ミクロネシア連邦\",\n  \"FO\": \"フェロー諸島\",\n  \"FR\": \"フランス\",\n  \"GA\": \"ガボン\",\n  \"GB\": \"イギリス\",\n  \"GD\": \"グレナダ\",\n  \"GE\": \"ジョージア\",\n  \"GF\": \"フランス領ギアナ\",\n  \"GG\": \"ガーンジー\",\n  \"GH\": \"ガーナ\",\n  \"GI\": \"ジブラルタル\",\n  \"GL\": \"グリーンランド\",\n  \"GM\": \"ガンビア\",\n  \"GN\": \"ギニア\",\n  \"GP\": \"グアドループ\",\n  \"GQ\": \"赤道ギニア\",\n  \"GR\": \"ギリシャ\",\n  \"GS\": \"サウスジョージア・サウスサンドウィッチ諸島\",\n  \"GT\": \"グアテマラ\",\n  \"GU\": \"グアム\",\n  \"GW\": \"ギニアビサウ\",\n  \"GY\": \"ガイアナ\",\n  \"HK\": \"香港\",\n  \"HM\": \"ハード島とマクドナルド諸島\",\n  \"HN\": \"ホンジュラス\",\n  \"HR\": \"クロアチア\",\n  \"HT\": \"ハイチ\",\n  \"HU\": \"ハンガリー\",\n  \"ID\": \"インドネシア\",\n  \"IE\": \"アイルランド\",\n  \"IL\": \"イスラエル\",\n  \"IM\": \"マン島\",\n  \"IN\": \"インド\",\n  \"IO\": \"イギリス領インド洋地域\",\n  \"IQ\": \"イラク\",\n  \"IR\": \"イラン・イスラム共和国\",\n  \"IS\": \"アイスランド\",\n  \"IT\": \"イタリア\",\n  \"JE\": \"ジャージー\",\n  \"JM\": \"ジャマイカ\",\n  \"JO\": \"ヨルダン\",\n  \"JP\": \"日本\",\n  \"KE\": \"ケニア\",\n  \"KG\": \"キルギス\",\n  \"KH\": \"カンボジア\",\n  \"KI\": \"キリバス\",\n  \"KM\": \"小諸\",\n  \"KN\": \"セントクリストファー・ネイビス\",\n  \"KP\": \"朝鮮民主主義人民共和国\",\n  \"KR\": \"大韓民国\",\n  \"KW\": \"クウェート\",\n  \"KY\": \"ケイマン諸島\",\n  \"KZ\": \"カザフスタン\",\n  \"LA\": \"ラオス人民民主共和国\",\n  \"LB\": \"レバノン\",\n  \"LC\": \"セントルシア\",\n  \"LI\": \"リヒテンシュタイン\",\n  \"LK\": \"スリランカ\",\n  \"LR\": \"リベリア\",\n  \"LS\": \"レソト\",\n  \"LT\": \"リトアニア\",\n  \"LU\": \"ルクセンブルク\",\n  \"LV\": \"ラトビア\",\n  \"LY\": \"リビア\",\n  \"MA\": \"モロッコ\",\n  \"MC\": \"モナコ\",\n  \"MD\": \"モルドバ共和国\",\n  \"ME\": \"モンテネグロ\",\n  \"MF\": \"サン・マルタン（フランス領）\",\n  \"MG\": \"マダガスカル\",\n  \"MH\": \"マーシャル諸島\",\n  \"MK\": \"北マケドニア\",\n  \"ML\": \"マリ\",\n  \"MM\": \"ミャンマー\",\n  \"MN\": \"モンゴル\",\n  \"MO\": \"マカオ\",\n  \"MP\": \"北マリアナ諸島\",\n  \"MQ\": \"マルティニーク\",\n  \"MR\": \"モーリタニア\",\n  \"MS\": \"モントセラト\",\n  \"MT\": \"マルタ\",\n  \"MU\": \"モーリシャス\",\n  \"MV\": \"モルディブ\",\n  \"MW\": \"マラウイ\",\n  \"MX\": \"メキシコ\",\n  \"MY\": \"マレーシア\",\n  \"MZ\": \"モザンビーク\",\n  \"NA\": \"ナミビア\",\n  \"NC\": \"ニューカレドニア\",\n  \"NE\": \"ニジェール\",\n  \"NF\": \"ノーフォーク島\",\n  \"NG\": \"ナイジェリア\",\n  \"NI\": \"ニカラグア\",\n  \"NL\": \"オランダ\",\n  \"NO\": \"ノルウェー\",\n  \"NP\": \"ネパール\",\n  \"NR\": \"ナウル\",\n  \"NU\": \"ニウエ\",\n  \"NZ\": \"ニュージーランド\",\n  \"OM\": \"オマーン\",\n  \"OS\": \"南オセチア共和国\",\n  \"PA\": \"パナマ\",\n  \"PE\": \"ペルー\",\n  \"PF\": \"フランス領ポリネシア\",\n  \"PG\": \"パプアニューギニア\",\n  \"PH\": \"フィリピン\",\n  \"PK\": \"パキスタン\",\n  \"PL\": \"ポーランド\",\n  \"PM\": \"サンピエール島・ミクロン島\",\n  \"PN\": \"ピトケアン\",\n  \"PR\": \"プエルトリコ\",\n  \"PS\": \"パレスチナ\",\n  \"PT\": \"ポルトガル\",\n  \"PW\": \"パラオ\",\n  \"PY\": \"パラグアイ\",\n  \"QA\": \"カタール\",\n  \"RE\": \"レユニオン\",\n  \"RO\": \"ルーマニア\",\n  \"RS\": \"セルビア\",\n  \"RU\": \"ロシア連邦\",\n  \"RW\": \"ルワンダ\",\n  \"SA\": \"サウジアラビア\",\n  \"SB\": \"ソロモン諸島\",\n  \"SC\": \"セーシェル\",\n  \"SD\": \"スーダン\",\n  \"SE\": \"スウェーデン\",\n  \"SG\": \"シンガポール\",\n  \"SH\": \"セントヘレナ・アセンションおよびトリスタンダクーニャ\",\n  \"SI\": \"スロベニア\",\n  \"SJ\": \"スヴァールバル諸島およびヤンマイエン島\",\n  \"SK\": \"スロバキア\",\n  \"SL\": \"シエラレオネ\",\n  \"SM\": \"サンマリノ\",\n  \"SN\": \"セネガル\",\n  \"SO\": \"ソマリア\",\n  \"SR\": \"スリナム\",\n  \"SS\": \"南スーダン\",\n  \"ST\": \"サントメ・プリンシペ\",\n  \"SV\": \"エルサルバドル\",\n  \"SX\": \"シント・マールテン（オランダ領）\",\n  \"SY\": \"シリア・アラブ共和国\",\n  \"SZ\": \"スワジランド\",\n  \"TA\": \"トリスタンダクーニャ\",\n  \"TC\": \"タークス・カイコス諸島\",\n  \"TD\": \"チャド\",\n  \"TF\": \"フランス領南方・南極地域\",\n  \"TG\": \"トーゴ\",\n  \"TH\": \"タイ\",\n  \"TJ\": \"タジキスタン\",\n  \"TK\": \"トケラウ\",\n  \"TL\": \"東ティモール\",\n  \"TM\": \"トルクメニスタン\",\n  \"TN\": \"チュニジア\",\n  \"TO\": \"トンガ\",\n  \"TR\": \"トルコ\",\n  \"TT\": \"トリニダード・トバゴ\",\n  \"TV\": \"ツバル\",\n  \"TW\": \"台湾\",\n  \"TZ\": \"タンザニア\",\n  \"UA\": \"ウクライナ\",\n  \"UG\": \"ウガンダ\",\n  \"UM\": \"合衆国領有小離島\",\n  \"US\": \"アメリカ合衆国\",\n  \"UY\": \"ウルグアイ\",\n  \"UZ\": \"ウズベキスタン\",\n  \"VA\": \"バチカン市国\",\n  \"VC\": \"セントビンセントおよびグレナディーン諸島\",\n  \"VE\": \"ベネズエラ・ボリバル共和国\",\n  \"VG\": \"イギリス領ヴァージン諸島\",\n  \"VI\": \"アメリカ領ヴァージン諸島\",\n  \"VN\": \"ベトナム\",\n  \"VU\": \"バヌアツ\",\n  \"WF\": \"ウォリス・フツナ\",\n  \"WS\": \"サモア\",\n  \"XK\": \"コソボ\",\n  \"YE\": \"イエメン\",\n  \"YT\": \"マヨット\",\n  \"ZA\": \"南アフリカ\",\n  \"ZM\": \"ザンビア\",\n  \"ZW\": \"ジンバブエ\",\n  \"ZZ\": \"国際\"\n}","export default {\n  \"ext\": \"내선\",\n  \"country\": \"전화번호 국가\",\n  \"phone\": \"전화번호\",\n  \"AB\": \"압하지야\",\n  \"AC\": \"어센션섬\",\n  \"AD\": \"안도라\",\n  \"AE\": \"아랍에미리트\",\n  \"AF\": \"아프가니스탄\",\n  \"AG\": \"앤티가 바부다\",\n  \"AI\": \"앵귈라\",\n  \"AL\": \"알바니아\",\n  \"AM\": \"아르메니아\",\n  \"AO\": \"앙골라\",\n  \"AQ\": \"남극 대륙\",\n  \"AR\": \"아르헨티나\",\n  \"AS\": \"아메리칸 사모아\",\n  \"AT\": \"오스트리아\",\n  \"AU\": \"오스트레일리아\",\n  \"AW\": \"아루바\",\n  \"AX\": \"올란드 제도\",\n  \"AZ\": \"아제르바이잔\",\n  \"BA\": \"보스니아 헤르체고비나\",\n  \"BB\": \"바베이도스\",\n  \"BD\": \"방글라데시\",\n  \"BE\": \"벨기에\",\n  \"BF\": \"부르키나파소\",\n  \"BG\": \"불가리아\",\n  \"BH\": \"바레인\",\n  \"BI\": \"부룬디\",\n  \"BJ\": \"베냉\",\n  \"BL\": \"생바르텔레미\",\n  \"BM\": \"버뮤다\",\n  \"BN\": \"브루나이\",\n  \"BO\": \"볼리비아\",\n  \"BQ\": \"네덜란드령 카리브\",\n  \"BR\": \"브라질\",\n  \"BS\": \"바하마\",\n  \"BT\": \"부탄\",\n  \"BV\": \"부베섬\",\n  \"BW\": \"보츠와나\",\n  \"BY\": \"벨라루스\",\n  \"BZ\": \"벨리즈\",\n  \"CA\": \"캐나다\",\n  \"CC\": \"코코스 제도\",\n  \"CD\": \"콩고-킨샤사\",\n  \"CF\": \"중앙 아프리카 공화국\",\n  \"CG\": \"콩고-브라자빌\",\n  \"CH\": \"스위스\",\n  \"CI\": \"코트디부아르\",\n  \"CK\": \"쿡 제도\",\n  \"CL\": \"칠레\",\n  \"CM\": \"카메룬\",\n  \"CN\": \"중국\",\n  \"CO\": \"콜롬비아\",\n  \"CR\": \"코스타리카\",\n  \"CU\": \"쿠바\",\n  \"CV\": \"카보베르데\",\n  \"CW\": \"퀴라소\",\n  \"CX\": \"크리스마스섬\",\n  \"CY\": \"키프로스\",\n  \"CZ\": \"체코\",\n  \"DE\": \"독일\",\n  \"DJ\": \"지부티\",\n  \"DK\": \"덴마크\",\n  \"DM\": \"도미니카\",\n  \"DO\": \"도미니카 공화국\",\n  \"DZ\": \"알제리\",\n  \"EC\": \"에콰도르\",\n  \"EE\": \"에스토니아\",\n  \"EG\": \"이집트\",\n  \"EH\": \"서사하라\",\n  \"ER\": \"에리트리아\",\n  \"ES\": \"스페인\",\n  \"ET\": \"에티오피아\",\n  \"FI\": \"핀란드\",\n  \"FJ\": \"피지\",\n  \"FK\": \"포클랜드 제도\",\n  \"FM\": \"미크로네시아\",\n  \"FO\": \"페로 제도\",\n  \"FR\": \"프랑스\",\n  \"GA\": \"가봉\",\n  \"GB\": \"영국\",\n  \"GD\": \"그레나다\",\n  \"GE\": \"조지아\",\n  \"GF\": \"프랑스령 기아나\",\n  \"GG\": \"건지\",\n  \"GH\": \"가나\",\n  \"GI\": \"지브롤터\",\n  \"GL\": \"그린란드\",\n  \"GM\": \"감비아\",\n  \"GN\": \"기니\",\n  \"GP\": \"과들루프\",\n  \"GQ\": \"적도 기니\",\n  \"GR\": \"그리스\",\n  \"GS\": \"사우스조지아 사우스샌드위치 제도\",\n  \"GT\": \"과테말라\",\n  \"GU\": \"괌\",\n  \"GW\": \"기니비사우\",\n  \"GY\": \"가이아나\",\n  \"HK\": \"홍콩(중국 특별행정구)\",\n  \"HM\": \"허드 맥도널드 제도\",\n  \"HN\": \"온두라스\",\n  \"HR\": \"크로아티아\",\n  \"HT\": \"아이티\",\n  \"HU\": \"헝가리\",\n  \"ID\": \"인도네시아\",\n  \"IE\": \"아일랜드\",\n  \"IL\": \"이스라엘\",\n  \"IM\": \"맨 섬\",\n  \"IN\": \"인도\",\n  \"IO\": \"영국령 인도양 식민지\",\n  \"IQ\": \"이라크\",\n  \"IR\": \"이란\",\n  \"IS\": \"아이슬란드\",\n  \"IT\": \"이탈리아\",\n  \"JE\": \"저지\",\n  \"JM\": \"자메이카\",\n  \"JO\": \"요르단\",\n  \"JP\": \"일본\",\n  \"KE\": \"케냐\",\n  \"KG\": \"키르기스스탄\",\n  \"KH\": \"캄보디아\",\n  \"KI\": \"키리바시\",\n  \"KM\": \"코모로\",\n  \"KN\": \"세인트키츠 네비스\",\n  \"KP\": \"북한\",\n  \"KR\": \"대한민국\",\n  \"KW\": \"쿠웨이트\",\n  \"KY\": \"케이맨 제도\",\n  \"KZ\": \"카자흐스탄\",\n  \"LA\": \"라오스\",\n  \"LB\": \"레바논\",\n  \"LC\": \"세인트루시아\",\n  \"LI\": \"리히텐슈타인\",\n  \"LK\": \"스리랑카\",\n  \"LR\": \"라이베리아\",\n  \"LS\": \"레소토\",\n  \"LT\": \"리투아니아\",\n  \"LU\": \"룩셈부르크\",\n  \"LV\": \"라트비아\",\n  \"LY\": \"리비아\",\n  \"MA\": \"모로코\",\n  \"MC\": \"모나코\",\n  \"MD\": \"몰도바\",\n  \"ME\": \"몬테네그로\",\n  \"MF\": \"생마르탱\",\n  \"MG\": \"마다가스카르\",\n  \"MH\": \"마셜 제도\",\n  \"MK\": \"북마케도니아\",\n  \"ML\": \"말리\",\n  \"MM\": \"미얀마\",\n  \"MN\": \"몽골\",\n  \"MO\": \"마카오(중국 특별행정구)\",\n  \"MP\": \"북마리아나제도\",\n  \"MQ\": \"마르티니크\",\n  \"MR\": \"모리타니\",\n  \"MS\": \"몬트세라트\",\n  \"MT\": \"몰타\",\n  \"MU\": \"모리셔스\",\n  \"MV\": \"몰디브\",\n  \"MW\": \"말라위\",\n  \"MX\": \"멕시코\",\n  \"MY\": \"말레이시아\",\n  \"MZ\": \"모잠비크\",\n  \"NA\": \"나미비아\",\n  \"NC\": \"뉴칼레도니아\",\n  \"NE\": \"니제르\",\n  \"NF\": \"노퍽섬\",\n  \"NG\": \"나이지리아\",\n  \"NI\": \"니카라과\",\n  \"NL\": \"네덜란드\",\n  \"NO\": \"노르웨이\",\n  \"NP\": \"네팔\",\n  \"NR\": \"나우루\",\n  \"NU\": \"니우에\",\n  \"NZ\": \"뉴질랜드\",\n  \"OM\": \"오만\",\n  \"OS\": \"남오세티아\",\n  \"PA\": \"파나마\",\n  \"PE\": \"페루\",\n  \"PF\": \"프랑스령 폴리네시아\",\n  \"PG\": \"파푸아뉴기니\",\n  \"PH\": \"필리핀\",\n  \"PK\": \"파키스탄\",\n  \"PL\": \"폴란드\",\n  \"PM\": \"생피에르 미클롱\",\n  \"PN\": \"핏케언 섬\",\n  \"PR\": \"푸에르토리코\",\n  \"PS\": \"팔레스타인 지구\",\n  \"PT\": \"포르투갈\",\n  \"PW\": \"팔라우\",\n  \"PY\": \"파라과이\",\n  \"QA\": \"카타르\",\n  \"RE\": \"리유니온\",\n  \"RO\": \"루마니아\",\n  \"RS\": \"세르비아\",\n  \"RU\": \"러시아\",\n  \"RW\": \"르완다\",\n  \"SA\": \"사우디아라비아\",\n  \"SB\": \"솔로몬 제도\",\n  \"SC\": \"세이셸\",\n  \"SD\": \"수단\",\n  \"SE\": \"스웨덴\",\n  \"SG\": \"싱가포르\",\n  \"SH\": \"세인트헬레나\",\n  \"SI\": \"슬로베니아\",\n  \"SJ\": \"스발바르제도-얀마웬섬\",\n  \"SK\": \"슬로바키아\",\n  \"SL\": \"시에라리온\",\n  \"SM\": \"산마리노\",\n  \"SN\": \"세네갈\",\n  \"SO\": \"소말리아\",\n  \"SR\": \"수리남\",\n  \"SS\": \"남수단\",\n  \"ST\": \"상투메 프린시페\",\n  \"SV\": \"엘살바도르\",\n  \"SX\": \"신트마르턴\",\n  \"SY\": \"시리아\",\n  \"SZ\": \"에스와티니\",\n  \"TA\": \"트리스탄다쿠냐\",\n  \"TC\": \"터크스 케이커스 제도\",\n  \"TD\": \"차드\",\n  \"TF\": \"프랑스 남부 지방\",\n  \"TG\": \"토고\",\n  \"TH\": \"태국\",\n  \"TJ\": \"타지키스탄\",\n  \"TK\": \"토켈라우\",\n  \"TL\": \"동티모르\",\n  \"TM\": \"투르크메니스탄\",\n  \"TN\": \"튀니지\",\n  \"TO\": \"통가\",\n  \"TR\": \"터키\",\n  \"TT\": \"트리니다드 토바고\",\n  \"TV\": \"투발루\",\n  \"TW\": \"대만\",\n  \"TZ\": \"탄자니아\",\n  \"UA\": \"우크라이나\",\n  \"UG\": \"우간다\",\n  \"UM\": \"미국령 해외 제도\",\n  \"US\": \"미국\",\n  \"UY\": \"우루과이\",\n  \"UZ\": \"우즈베키스탄\",\n  \"VA\": \"바티칸 시국\",\n  \"VC\": \"세인트빈센트그레나딘\",\n  \"VE\": \"베네수엘라\",\n  \"VG\": \"영국령 버진아일랜드\",\n  \"VI\": \"미국령 버진아일랜드\",\n  \"VN\": \"베트남\",\n  \"VU\": \"바누아투\",\n  \"WF\": \"왈리스-푸투나 제도\",\n  \"WS\": \"사모아\",\n  \"XK\": \"코소보\",\n  \"YE\": \"예멘\",\n  \"YT\": \"마요트\",\n  \"ZA\": \"남아프리카\",\n  \"ZM\": \"잠비아\",\n  \"ZW\": \"짐바브웨\",\n  \"ZZ\": \"국적불명\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Telefonnummer land\",\n  \"phone\": \"Telefon\",\n  \"AB\": \"Abkhasia\",\n  \"AC\": \"Ascension Island\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"De Forente Arabiske Emirater\",\n  \"AF\": \"Afghanistan\",\n  \"AG\": \"Antigua og Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albania\",\n  \"AM\": \"Armenia\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antarctica\",\n  \"AR\": \"Argentina\",\n  \"AS\": \"Amerikansk Samoa\",\n  \"AT\": \"Østerrike\",\n  \"AU\": \"Australia\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Åland\",\n  \"AZ\": \"Aserbajdsjan\",\n  \"BA\": \"Bosnia Hercegovina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladesh\",\n  \"BE\": \"Belgia\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgaria\",\n  \"BH\": \"Bahrain\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BL\": \"Saint Barthélemy\",\n  \"BM\": \"Bermuda\",\n  \"BN\": \"Brunei\",\n  \"BO\": \"Bolivia\",\n  \"BQ\": \"Bonaire\",\n  \"BR\": \"Brasil\",\n  \"BS\": \"Bahamas\",\n  \"BT\": \"Bhutan\",\n  \"BV\": \"Bouvetøya\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Hviterussland\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Canada\",\n  \"CC\": \"Kokosøyene\",\n  \"CD\": \"Den Demokratiske Republikk Kongo\",\n  \"CF\": \"Den Sentralafrikanske Republikk\",\n  \"CG\": \"Kongo\",\n  \"CH\": \"Sveits\",\n  \"CI\": \"Elfenbenskysten\",\n  \"CK\": \"Cookøyene\",\n  \"CL\": \"Chile\",\n  \"CM\": \"Kamerun\",\n  \"CN\": \"Kina\",\n  \"CO\": \"Colombia\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Cuba\",\n  \"CV\": \"Kapp Verde\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Christmasøya\",\n  \"CY\": \"Kypros\",\n  \"CZ\": \"Tsjekkia\",\n  \"DE\": \"Tyskland\",\n  \"DJ\": \"Djibouti\",\n  \"DK\": \"Danmark\",\n  \"DM\": \"Dominica\",\n  \"DO\": \"Den Dominikanske Republikk\",\n  \"DZ\": \"Algerie\",\n  \"EC\": \"Ecuador\",\n  \"EE\": \"Estland\",\n  \"EG\": \"Egypt\",\n  \"EH\": \"Vest-Sahara\",\n  \"ER\": \"Eritrea\",\n  \"ES\": \"Spania\",\n  \"ET\": \"Etiopia\",\n  \"FI\": \"Finland\",\n  \"FJ\": \"Fiji\",\n  \"FK\": \"Falklandøyene\",\n  \"FM\": \"Mikronesia\",\n  \"FO\": \"Færøyene\",\n  \"FR\": \"Frankrike\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"Storbritannia\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Georgia\",\n  \"GF\": \"Fransk Guiana\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Grønland\",\n  \"GM\": \"Gambia\",\n  \"GN\": \"Guinea\",\n  \"GP\": \"Guadeloupe\",\n  \"GQ\": \"Ekvatorial Guinea\",\n  \"GR\": \"Hellas\",\n  \"GS\": \"Sør-Georgia\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guinea-Bissau\",\n  \"GY\": \"Guyana\",\n  \"HK\": \"Hong Kong\",\n  \"HM\": \"Heardøya og McDonaldøyene\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Kroatia\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Ungarn\",\n  \"ID\": \"Indonesia\",\n  \"IE\": \"Irland\",\n  \"IL\": \"Israel\",\n  \"IM\": \"Man\",\n  \"IN\": \"India\",\n  \"IO\": \"Det Britisk Territoriet i Indiahavet\",\n  \"IQ\": \"Irak\",\n  \"IR\": \"Iran\",\n  \"IS\": \"Island\",\n  \"IT\": \"Italia\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamaica\",\n  \"JO\": \"Jordan\",\n  \"JP\": \"Japan\",\n  \"KE\": \"Kenya\",\n  \"KG\": \"Kirgisistan\",\n  \"KH\": \"Kambodsja\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Komorene\",\n  \"KN\": \"Saint Kitts og Nevis\",\n  \"KP\": \"Nord-Korea\",\n  \"KR\": \"Sør-Korea\",\n  \"KW\": \"Kuwait\",\n  \"KY\": \"Caymanøyene\",\n  \"KZ\": \"Kazakhstan\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Libanon\",\n  \"LC\": \"Saint Lucia\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Liberia\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Litauen\",\n  \"LU\": \"Luxembourg\",\n  \"LV\": \"Latvia\",\n  \"LY\": \"Libya\",\n  \"MA\": \"Morokko\",\n  \"MC\": \"Monaco\",\n  \"MD\": \"Moldova\",\n  \"ME\": \"Montenegro\",\n  \"MF\": \"Saint Martin\",\n  \"MG\": \"Madagaskar\",\n  \"MH\": \"Marshalløyene\",\n  \"MK\": \"Makedonien\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mongolia\",\n  \"MO\": \"Macau\",\n  \"MP\": \"Nord-Marianene\",\n  \"MQ\": \"Martinique\",\n  \"MR\": \"Mauritania\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Mauritius\",\n  \"MV\": \"Maldivene\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Mexico\",\n  \"MY\": \"Malaysia\",\n  \"MZ\": \"Mosambik\",\n  \"NA\": \"Namibia\",\n  \"NC\": \"Ny-Caledonia\",\n  \"NE\": \"Niger\",\n  \"NF\": \"Norfolkøya\",\n  \"NG\": \"Nigeria\",\n  \"NI\": \"Nicaragua\",\n  \"NL\": \"Nederland\",\n  \"NO\": \"Norge\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"New Zealand\",\n  \"OM\": \"Oman\",\n  \"OS\": \"Sør-Ossetia\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Peru\",\n  \"PF\": \"Fransk Polynesia\",\n  \"PG\": \"Papua Ny-Guinea\",\n  \"PH\": \"Filippinene\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Polen\",\n  \"PM\": \"Saint Pierre og Miquelon\",\n  \"PN\": \"Pitcairnøyene\",\n  \"PR\": \"Puerto Rico\",\n  \"PS\": \"Palestine\",\n  \"PT\": \"Portugal\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Qatar\",\n  \"RE\": \"Réunion\",\n  \"RO\": \"Romania\",\n  \"RS\": \"Serbia\",\n  \"RU\": \"Russland\",\n  \"RW\": \"Rwanda\",\n  \"SA\": \"Saudi Arabia\",\n  \"SB\": \"Salomonøyene\",\n  \"SC\": \"Seychellene\",\n  \"SD\": \"Sudan\",\n  \"SE\": \"Sverige\",\n  \"SG\": \"Singapore\",\n  \"SH\": \"Saint Helena\",\n  \"SI\": \"Slovenia\",\n  \"SJ\": \"Svalbard og Jan Mayen\",\n  \"SK\": \"Slovakia\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somalia\",\n  \"SR\": \"Surinam\",\n  \"SS\": \"Sør-Sudan\",\n  \"ST\": \"São Tomé og Príncipe\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Syria\",\n  \"SZ\": \"Swaziland\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Turks- og Caicosøyene\",\n  \"TD\": \"Tsjad\",\n  \"TF\": \"Den Franske Sørterritoria\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Thailand\",\n  \"TJ\": \"Tadsjikistan\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Øst Timor\",\n  \"TM\": \"Turkmenistan\",\n  \"TN\": \"Tunisia\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Tyrkia\",\n  \"TT\": \"Trinidad og Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan\",\n  \"TZ\": \"Tanzania\",\n  \"UA\": \"Ukraina\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"De små ytre øyene i USA\",\n  \"US\": \"USA (Amerikas Forente Stater)\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Usbekistan\",\n  \"VA\": \"Den Hellige Stol\",\n  \"VC\": \"Saint Vincent og Grenadinene\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"De Britiske Jomfruøyene\",\n  \"VI\": \"Jomfruøyene (U.S.)\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis og Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Jemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"Sør-Africa\",\n  \"ZM\": \"Zambia\",\n  \"ZW\": \"Zimbabwe\",\n  \"ZZ\": \"Internasjonal\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Land telefoonnummer\",\n  \"phone\": \"Telefoon\",\n  \"AB\": \"Abchazië\",\n  \"AC\": \"Ascension Eiland\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"Verenigde Arabische Emiraten\",\n  \"AF\": \"Afghanistan\",\n  \"AG\": \"Antigua en Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albanië\",\n  \"AM\": \"Armenië\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antarctica\",\n  \"AR\": \"Argentinië\",\n  \"AS\": \"Amerikaans Samoa\",\n  \"AT\": \"Oostenrijk\",\n  \"AU\": \"Australië\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Åland-eilanden\",\n  \"AZ\": \"Azerbeidzjan\",\n  \"BA\": \"Bosnië en Herzegovina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladesh\",\n  \"BE\": \"België\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgarije\",\n  \"BH\": \"Bahrein\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BL\": \"Saint Barthélemy\",\n  \"BM\": \"Bermuda\",\n  \"BN\": \"Brunei Darussalam\",\n  \"BO\": \"Bolivia\",\n  \"BQ\": \"Bonaire, Sint Eustatius en Saba\",\n  \"BR\": \"Brazilië\",\n  \"BS\": \"Bahama's\",\n  \"BT\": \"Bhutan\",\n  \"BV\": \"Bouvet Eiland\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Belarus\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Canada\",\n  \"CC\": \"Cocos (Keeling) Eilanden\",\n  \"CD\": \"Congo, Democratische Republiek van de\",\n  \"CF\": \"Centraal-Afrikaanse Republiek\",\n  \"CG\": \"Congo\",\n  \"CH\": \"Zwitserland\",\n  \"CI\": \"Ivoorkust\",\n  \"CK\": \"Cookeilanden\",\n  \"CL\": \"Chili\",\n  \"CM\": \"Kameroen\",\n  \"CN\": \"China\",\n  \"CO\": \"Colombia\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Cuba\",\n  \"CV\": \"Kaapverdië\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Christmas Island\",\n  \"CY\": \"Cyprus\",\n  \"CZ\": \"Tsjechische Republiek\",\n  \"DE\": \"Duitsland\",\n  \"DJ\": \"Djibouti\",\n  \"DK\": \"Denemarken\",\n  \"DM\": \"Dominica\",\n  \"DO\": \"Dominicaanse Republiek\",\n  \"DZ\": \"Algerije\",\n  \"EC\": \"Ecuador\",\n  \"EE\": \"Estland\",\n  \"EG\": \"Egypte\",\n  \"EH\": \"Westelijke Sahara\",\n  \"ER\": \"Eritrea\",\n  \"ES\": \"Spanje\",\n  \"ET\": \"Ethiopië\",\n  \"FI\": \"Finland\",\n  \"FJ\": \"Fiji\",\n  \"FK\": \"Falklandeilanden\",\n  \"FM\": \"Federale Staten van Micronesia\",\n  \"FO\": \"Faeröer-eilanden\",\n  \"FR\": \"France\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"Verenigd Koninkrijk\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Georgië\",\n  \"GF\": \"Frans Guyana\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Groenland\",\n  \"GM\": \"Gambia\",\n  \"GN\": \"Guinee\",\n  \"GP\": \"Guadeloupe\",\n  \"GQ\": \"Equatoriaal-Guinea\",\n  \"GR\": \"Griekenland\",\n  \"GS\": \"Zuid-Georgië en de Zuidelijke Sandwicheilanden\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guinee-Bissau\",\n  \"GY\": \"Guyana\",\n  \"HK\": \"Hong Kong\",\n  \"HM\": \"Heard Island en McDonald Eilanden\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Croatia\",\n  \"HT\": \"Haïti\",\n  \"HU\": \"Hongarije\",\n  \"ID\": \"Indonesië\",\n  \"IE\": \"Ierland\",\n  \"IL\": \"Israël\",\n  \"IM\": \"Isle of Man\",\n  \"IN\": \"India\",\n  \"IO\": \"Brits Territorium in de Indische Oceaan\",\n  \"IQ\": \"Irak\",\n  \"IR\": \"Iran\",\n  \"IS\": \"IJsland\",\n  \"IT\": \"Italië\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamaica\",\n  \"JO\": \"Jordanië\",\n  \"JP\": \"Japan\",\n  \"KE\": \"Kenia\",\n  \"KG\": \"Kyrgyzstan\",\n  \"KH\": \"Cambodja\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Comoren\",\n  \"KN\": \"Saint Kitts en Nevis\",\n  \"KP\": \"Noord-Korea\",\n  \"KR\": \"Zuid-Korea\",\n  \"KW\": \"Koeweit\",\n  \"KY\": \"Kaaimaneilanden\",\n  \"KZ\": \"Kazachstan\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Libanon\",\n  \"LC\": \"Saint Lucia\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Liberia\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Litouwen\",\n  \"LU\": \"Luxemburg\",\n  \"LV\": \"Letland\",\n  \"LY\": \"Libië\",\n  \"MA\": \"Marokko\",\n  \"MC\": \"Monaco\",\n  \"MD\": \"Moldavië\",\n  \"ME\": \"Montenegro\",\n  \"MF\": \"Saint Martin (Frans deel)\",\n  \"MG\": \"Madagaskar\",\n  \"MH\": \"Marshalleilanden\",\n  \"MK\": \"Noord-Macedonië\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mongolië\",\n  \"MO\": \"Macau\",\n  \"MP\": \"Noordelijke Marianen\",\n  \"MQ\": \"Martinique\",\n  \"MR\": \"Mauritanië\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Mauritius\",\n  \"MV\": \"Maldiven\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Mexico\",\n  \"MY\": \"Maleisië\",\n  \"MZ\": \"Mozambique\",\n  \"NA\": \"Namibië\",\n  \"NC\": \"Nieuw-Caledonië\",\n  \"NE\": \"Niger\",\n  \"NF\": \"Norfolk Island\",\n  \"NG\": \"Nigeria\",\n  \"NI\": \"Nicaragua\",\n  \"NL\": \"Nederland\",\n  \"NO\": \"Noorwegen\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Nieuw-Zeeland\",\n  \"OM\": \"Oman\",\n  \"OS\": \"Zuid-Ossetië\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Peru\",\n  \"PF\": \"Frans Polynesië\",\n  \"PG\": \"Papoea-Nieuw-Guinea\",\n  \"PH\": \"Filipijnen\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Polen\",\n  \"PM\": \"Saint Pierre en Miquelon\",\n  \"PN\": \"Pitcairn\",\n  \"PR\": \"Puerto Rico\",\n  \"PS\": \"Palestina\",\n  \"PT\": \"Portugal\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Qatar\",\n  \"RE\": \"Reunion\",\n  \"RO\": \"Roemenië\",\n  \"RS\": \"Servië\",\n  \"RU\": \"Rusland\",\n  \"RW\": \"Rwanda\",\n  \"SA\": \"Saudi-Arabië\",\n  \"SB\": \"Salomonseilanden\",\n  \"SC\": \"Seychellen\",\n  \"SD\": \"Soedan\",\n  \"SE\": \"Zweden\",\n  \"SG\": \"Singapore\",\n  \"SH\": \"Saint Helena\",\n  \"SI\": \"Slovenië\",\n  \"SJ\": \"Svalbard en Jan Mayen\",\n  \"SK\": \"Slowakije\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somalië\",\n  \"SR\": \"Suriname\",\n  \"SS\": \"Zuid-Soedan\",\n  \"ST\": \"Sao Tomé en Principe\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Syrië\",\n  \"SZ\": \"Swaziland\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Turks- en Caicoseilanden\",\n  \"TD\": \"Tsjaad\",\n  \"TF\": \"Franse Zuidelijke Gebieden\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Thailand\",\n  \"TJ\": \"Tadzjikistan\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Timor-Leste\",\n  \"TM\": \"Turkmenistan\",\n  \"TN\": \"Tunesië\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Turkije\",\n  \"TT\": \"Trinidad en Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan\",\n  \"TZ\": \"Tanzania\",\n  \"UA\": \"Oekraïne\",\n  \"UG\": \"Oeganda\",\n  \"UM\": \"Verenigde Staten Kleine Pacifische Eilanden\",\n  \"US\": \"Verenigde Staten\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Oezbekistan\",\n  \"VA\": \"Heilige Stoel (Vaticaanstad)\",\n  \"VC\": \"Saint Vincent en de Grenadines\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Maagdeneilanden, Brits\",\n  \"VI\": \"Maagdeneilanden, V.S\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis en Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Jemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"Zuid-Afrika\",\n  \"ZM\": \"Zambia\",\n  \"ZW\": \"Zimbabwe\",\n  \"ZZ\": \"International\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Kraj numeru telefonu\",\n  \"phone\": \"Telefon\",\n  \"AB\": \"Abchazja\",\n  \"AC\": \"Wyspa Wniebowstąpienia\",\n  \"AD\": \"Andora\",\n  \"AE\": \"Zjednoczone Emiraty Arabskie\",\n  \"AF\": \"Afganistan\",\n  \"AG\": \"Antigua I Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albania\",\n  \"AM\": \"Armenia\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antarktyda\",\n  \"AR\": \"Argentyna\",\n  \"AS\": \"Samoa\",\n  \"AT\": \"Austria\",\n  \"AU\": \"Australia\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Wyspy Alandzkie\",\n  \"AZ\": \"Azerbejdżan\",\n  \"BA\": \"Bośnia i Hercegowina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladesz\",\n  \"BE\": \"Belgia\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bułgaria\",\n  \"BH\": \"Bahrajn\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BL\": \"Saint Barthélemy\",\n  \"BM\": \"Bermudy\",\n  \"BN\": \"Brunei\",\n  \"BO\": \"Boliwia\",\n  \"BQ\": \"Bonaire, Saba i Sint Eustatius\",\n  \"BR\": \"Brazylia\",\n  \"BS\": \"Bahama\",\n  \"BT\": \"Bhutan\",\n  \"BV\": \"Wyspa Bouveta\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Białoruś\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Kanada\",\n  \"CC\": \"Wyspy Kokosowe\",\n  \"CD\": \"Demokratyczna Republika Konga\",\n  \"CF\": \"Republika Środkowoafrykańska\",\n  \"CG\": \"Kongo\",\n  \"CH\": \"Szwajcaria\",\n  \"CI\": \"Wybrzeże Kości Słoniowej\",\n  \"CK\": \"Wyspy Cooka\",\n  \"CL\": \"Chile\",\n  \"CM\": \"Kamerun\",\n  \"CN\": \"Chiny\",\n  \"CO\": \"Kolumbia\",\n  \"CR\": \"Kostaryka\",\n  \"CU\": \"Kuba\",\n  \"CV\": \"Republika Zielonego Przylądka\",\n  \"CW\": \"Kurazao\",\n  \"CX\": \"Wyspa Bożego Narodzenia\",\n  \"CY\": \"Cypr\",\n  \"CZ\": \"Czechy\",\n  \"DE\": \"Niemcy\",\n  \"DJ\": \"Dżibuti\",\n  \"DK\": \"Dania\",\n  \"DM\": \"Dominika\",\n  \"DO\": \"Dominikana\",\n  \"DZ\": \"Algeria\",\n  \"EC\": \"Ekwador\",\n  \"EE\": \"Estonia\",\n  \"EG\": \"Egipt\",\n  \"EH\": \"Zachodnia Sahara\",\n  \"ER\": \"Państwo Erytrea\",\n  \"ES\": \"Hiszpania\",\n  \"ET\": \"Etiopia\",\n  \"FI\": \"Finlandia\",\n  \"FJ\": \"Fidżi\",\n  \"FK\": \"Falklandy\",\n  \"FM\": \"Mikronezja\",\n  \"FO\": \"Wyspy Owcze\",\n  \"FR\": \"Francja\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"Wielka Brytania\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Gruzja\",\n  \"GF\": \"Gwinea Francuzka\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Grenlandia\",\n  \"GM\": \"Gambia\",\n  \"GN\": \"Gwinea\",\n  \"GP\": \"Gwadelupa\",\n  \"GQ\": \"Gwinea Równikowa\",\n  \"GR\": \"Grecja\",\n  \"GS\": \"Georgia Południowa i Sandwich Południowy\",\n  \"GT\": \"Gwatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Gwinea-Bissau\",\n  \"GY\": \"Gujana\",\n  \"HK\": \"HongKong\",\n  \"HM\": \"Wyspy Heard i McDonalda\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Chorwacja\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Węgry\",\n  \"ID\": \"Indonezja\",\n  \"IE\": \"Irlandia\",\n  \"IL\": \"Izrael\",\n  \"IM\": \"Wyspa Man\",\n  \"IN\": \"Indie\",\n  \"IO\": \"Brytyjskie Terytorium Oceanu Indyjskiego\",\n  \"IQ\": \"Irak\",\n  \"IR\": \"Iran\",\n  \"IS\": \"Islandia\",\n  \"IT\": \"Włochy\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamajka\",\n  \"JO\": \"Jordania\",\n  \"JP\": \"Japonia\",\n  \"KE\": \"Kenia\",\n  \"KG\": \"Kirgistan\",\n  \"KH\": \"Kambodża\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Komory\",\n  \"KN\": \"Saint Kitts and Nevis\",\n  \"KP\": \"Korea Północna\",\n  \"KR\": \"Korea Południowa\",\n  \"KW\": \"Kuwejt\",\n  \"KY\": \"Kajmany\",\n  \"KZ\": \"Kazachstan\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Liban\",\n  \"LC\": \"Saint Lucia\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Liberia\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Litwa\",\n  \"LU\": \"Luksemburg\",\n  \"LV\": \"Łotwa\",\n  \"LY\": \"Libia\",\n  \"MA\": \"Maroko\",\n  \"MC\": \"Monako\",\n  \"MD\": \"Mołdawia\",\n  \"ME\": \"Czarnogóra\",\n  \"MF\": \"Saint Martin\",\n  \"MG\": \"Madagaskar\",\n  \"MH\": \"Wyspy Marshalla\",\n  \"MK\": \"Macedonia\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Mjanma\",\n  \"MN\": \"Mongolia\",\n  \"MO\": \"Makau\",\n  \"MP\": \"Mariany Północne\",\n  \"MQ\": \"Martynika\",\n  \"MR\": \"Mauretania\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Mauritius\",\n  \"MV\": \"Malediwy\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Meksyk\",\n  \"MY\": \"Malezja\",\n  \"MZ\": \"Mozambik\",\n  \"NA\": \"Namibia\",\n  \"NC\": \"Nowa Kaledonia\",\n  \"NE\": \"Niger\",\n  \"NF\": \"Wyspa Norfolk\",\n  \"NG\": \"Nigeria\",\n  \"NI\": \"Nikaragua\",\n  \"NL\": \"Holandia\",\n  \"NO\": \"Norwegia\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Nowa Zelandia\",\n  \"OM\": \"Oman\",\n  \"OS\": \"Osetia Południowa\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Peru\",\n  \"PF\": \"Polinezja Francuska\",\n  \"PG\": \"Papua Nowa Gwinea\",\n  \"PH\": \"Filipiny\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Polska\",\n  \"PM\": \"Saint Pierre and Miquelon\",\n  \"PN\": \"Pitcairn\",\n  \"PR\": \"Portoryko\",\n  \"PS\": \"Palestyna\",\n  \"PT\": \"Portugalia\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paragwaj\",\n  \"QA\": \"Katar\",\n  \"RE\": \"Reunion\",\n  \"RO\": \"Romunia\",\n  \"RS\": \"Serbia\",\n  \"RU\": \"Rosja\",\n  \"RW\": \"Rwanda\",\n  \"SA\": \"Arabia Saudyjska\",\n  \"SB\": \"Wyspy Salomona\",\n  \"SC\": \"Seszele\",\n  \"SD\": \"Sudan\",\n  \"SE\": \"Szwecja\",\n  \"SG\": \"Singapur\",\n  \"SH\": \"Wyspa Świętej Heleny, Wyspa Wniebowstąpienia i Tristan da Cunha\",\n  \"SI\": \"Słowenia\",\n  \"SJ\": \"Svalbard i Jan Mayen\",\n  \"SK\": \"Słowacja\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somalia\",\n  \"SR\": \"Surinam\",\n  \"SS\": \"Sudan Południowy\",\n  \"ST\": \"Wyspy Świętego Tomasza i Książęca\",\n  \"SV\": \"Salwador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Syryjska Republika Arabska\",\n  \"SZ\": \"Szwajcarja\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Turks i Caicos\",\n  \"TD\": \"Czad\",\n  \"TF\": \"Francuskie Terytoria Południowe\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Tajlandia\",\n  \"TJ\": \"Tadżykistan\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Timor Wschodni\",\n  \"TM\": \"Turkmenistan\",\n  \"TN\": \"Tunezja\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Turcja\",\n  \"TT\": \"Trynidad i Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan\",\n  \"TZ\": \"Tanzania\",\n  \"UA\": \"Ukraina\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"Dalekie Wyspy Mniejsze Stanów Zjednoczonych\",\n  \"US\": \"Stany Zjednoczone\",\n  \"UY\": \"Urugwaj\",\n  \"UZ\": \"Uzbekistan\",\n  \"VA\": \"Watykan\",\n  \"VC\": \"Saint Vincent i Grenadyny\",\n  \"VE\": \"Wenezuela\",\n  \"VG\": \"Brytyjskie Wyspy Dziewicze\",\n  \"VI\": \"Wyspy Dziewicze Stanów Zjednoczonych\",\n  \"VN\": \"Wietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis i Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosowo\",\n  \"YE\": \"Jemen\",\n  \"YT\": \"Majotta\",\n  \"ZA\": \"Afryka Południowa\",\n  \"ZM\": \"Zambia\",\n  \"ZW\": \"Zimbabwe\",\n  \"ZZ\": \"Międzynarodowy\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"País\",\n  \"phone\": \"Telefone\",\n  \"AB\": \"Abecásia\",\n  \"AC\": \"Ilha de Ascensão\",\n  \"AD\": \"Andora\",\n  \"AE\": \"Emirados Árabes Unidos\",\n  \"AF\": \"Afeganistão\",\n  \"AG\": \"Antígua e Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albânia\",\n  \"AM\": \"Arménia\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antártida\",\n  \"AR\": \"Argentina\",\n  \"AS\": \"Samoa Americana\",\n  \"AT\": \"Áustria\",\n  \"AU\": \"Austrália\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Ilhas de Aland\",\n  \"AZ\": \"Azerbaijão\",\n  \"BA\": \"Bósnia e Herzegovina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladesh\",\n  \"BE\": \"Bélgica\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgária\",\n  \"BH\": \"Bahrein\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benim\",\n  \"BL\": \"São Bartolomeu\",\n  \"BM\": \"Bermudas\",\n  \"BN\": \"Brunei\",\n  \"BO\": \"Bolívia\",\n  \"BQ\": \"Países Baixos Caribenhos\",\n  \"BR\": \"Brasil\",\n  \"BS\": \"Bahamas\",\n  \"BT\": \"Butão\",\n  \"BV\": \"Ilha Bouvet\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Bielorrússia\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Canadá\",\n  \"CC\": \"Ilhas Cocos (Keeling)\",\n  \"CD\": \"Congo, República Democrática do\",\n  \"CF\": \"República Centro-Africana\",\n  \"CG\": \"Congo\",\n  \"CH\": \"Suíça\",\n  \"CI\": \"Costa do Marfim\",\n  \"CK\": \"Ilhas Cook\",\n  \"CL\": \"Chile\",\n  \"CM\": \"Camarões\",\n  \"CN\": \"China\",\n  \"CO\": \"Colômbia\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Cuba\",\n  \"CV\": \"Cabo Verde\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Ilha Christmas\",\n  \"CY\": \"Chipre\",\n  \"CZ\": \"República Checa\",\n  \"DE\": \"Alemanha\",\n  \"DJ\": \"Djibouti\",\n  \"DK\": \"Dinamarca\",\n  \"DM\": \"Dominica\",\n  \"DO\": \"República Dominicana\",\n  \"DZ\": \"Argélia\",\n  \"EC\": \"Equador\",\n  \"EE\": \"Estónia\",\n  \"EG\": \"Egito\",\n  \"EH\": \"Saara Ocidental\",\n  \"ER\": \"Eritreia\",\n  \"ES\": \"Espanha\",\n  \"ET\": \"Etiópia\",\n  \"FI\": \"Finlândia\",\n  \"FJ\": \"Fiji\",\n  \"FK\": \"Ilhas Malvinas\",\n  \"FM\": \"Micronésia\",\n  \"FO\": \"Ilhas Faroé\",\n  \"FR\": \"França\",\n  \"GA\": \"Gabão\",\n  \"GB\": \"Reino Unido\",\n  \"GD\": \"Granada\",\n  \"GE\": \"Geórgia\",\n  \"GF\": \"Guiana Francesa\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Gana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Groenlândia\",\n  \"GM\": \"Gâmbia\",\n  \"GN\": \"Guiné\",\n  \"GP\": \"Guadalupe\",\n  \"GQ\": \"Guiné Equatorial\",\n  \"GR\": \"Grécia\",\n  \"GS\": \"Ilhas Geórgia do Sul e Sandwich do Sul\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guiné-Bissau\",\n  \"GY\": \"Guiana\",\n  \"HK\": \"Hong Kong\",\n  \"HM\": \"Ilha Heard e Ilhas McDonald\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Croácia\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Hungria\",\n  \"ID\": \"Indonésia\",\n  \"IE\": \"Irlanda\",\n  \"IL\": \"Israel\",\n  \"IM\": \"Ilha de Man\",\n  \"IN\": \"Índia\",\n  \"IO\": \"Território do Oceano Índico Britânico\",\n  \"IQ\": \"Iraque\",\n  \"IR\": \"Irã\",\n  \"IS\": \"Islândia\",\n  \"IT\": \"Itália\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamaica\",\n  \"JO\": \"Jordânia\",\n  \"JP\": \"Japão\",\n  \"KE\": \"Quénia\",\n  \"KG\": \"Quirguistão\",\n  \"KH\": \"Camboja\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Comores\",\n  \"KN\": \"São Cristóvão e Nevis\",\n  \"KP\": \"Coreia do Norte\",\n  \"KR\": \"Coreia do Sul\",\n  \"KW\": \"Kuwait\",\n  \"KY\": \"Ilhas Cayman\",\n  \"KZ\": \"Cazaquistão\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Líbano\",\n  \"LC\": \"Santa Lúcia\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Liberia\",\n  \"LS\": \"Lesoto\",\n  \"LT\": \"Lituânia\",\n  \"LU\": \"Luxemburgo\",\n  \"LV\": \"Letónia\",\n  \"LY\": \"Líbia\",\n  \"MA\": \"Marrocos\",\n  \"MC\": \"Mónaco\",\n  \"MD\": \"Moldávia\",\n  \"ME\": \"Montenegro\",\n  \"MF\": \"São Martinho (Parte Francesa)\",\n  \"MG\": \"Madagáscar\",\n  \"MH\": \"Ilhas Marshall\",\n  \"MK\": \"Macedónia do Norte\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mongólia\",\n  \"MO\": \"Macau\",\n  \"MP\": \"Ilhas Marianas do Norte\",\n  \"MQ\": \"Martinica\",\n  \"MR\": \"Mauritânia\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Maurícia\",\n  \"MV\": \"Maldivas\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"México\",\n  \"MY\": \"Malásia\",\n  \"MZ\": \"Moçambique\",\n  \"NA\": \"Namíbia\",\n  \"NC\": \"Nova Caledônia\",\n  \"NE\": \"Níger\",\n  \"NF\": \"Ilha Norfolk\",\n  \"NG\": \"Nigéria\",\n  \"NI\": \"Nicarágua\",\n  \"NL\": \"Países Baixos\",\n  \"NO\": \"Noruega\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Nova Zelândia\",\n  \"OM\": \"Omã\",\n  \"OS\": \"Ossétia do Sul\",\n  \"PA\": \"Panamá\",\n  \"PE\": \"Peru\",\n  \"PF\": \"Polinésia Francesa\",\n  \"PG\": \"Papua-Nova Guiné\",\n  \"PH\": \"Filipinas\",\n  \"PK\": \"Paquistão\",\n  \"PL\": \"Polónia\",\n  \"PM\": \"Saint-Pierre e Miquelon\",\n  \"PN\": \"Ilhas Pitcairn\",\n  \"PR\": \"Porto Rico\",\n  \"PS\": \"Palestina\",\n  \"PT\": \"Portugal\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguai\",\n  \"QA\": \"Catar\",\n  \"RE\": \"Reunião\",\n  \"RO\": \"Romênia\",\n  \"RS\": \"Sérvia\",\n  \"RU\": \"Rússia\",\n  \"RW\": \"Ruanda\",\n  \"SA\": \"Arábia Saudita\",\n  \"SB\": \"Ilhas Salomão\",\n  \"SC\": \"Seychelles\",\n  \"SD\": \"Sudão\",\n  \"SE\": \"Suécia\",\n  \"SG\": \"Singapura\",\n  \"SH\": \"Santa Helena\",\n  \"SI\": \"Eslovênia\",\n  \"SJ\": \"Svalbard e Jan Mayen\",\n  \"SK\": \"Eslováquia\",\n  \"SL\": \"Serra Leoa\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somália\",\n  \"SR\": \"Suriname\",\n  \"SS\": \"Sudão do Sul\",\n  \"ST\": \"São Tomé e Príncipe\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Síria\",\n  \"SZ\": \"Suazilândia\",\n  \"TA\": \"Tristão da Cunha\",\n  \"TC\": \"Turks e Caicos\",\n  \"TD\": \"Chade\",\n  \"TF\": \"Terras Austrais e Antárticas Francesas\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Tailândia\",\n  \"TJ\": \"Tajiquistão\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Timor-Leste\",\n  \"TM\": \"Turcomenistão\",\n  \"TN\": \"Tunísia\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Turquia\",\n  \"TT\": \"Trindade e Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan\",\n  \"TZ\": \"Tanzânia\",\n  \"UA\": \"Ucrânia\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"Ilhas Menores Distantes dos Estados Unidos\",\n  \"US\": \"Estados Unidos\",\n  \"UY\": \"Uruguai\",\n  \"UZ\": \"Uzbequistão\",\n  \"VA\": \"Cidade do Vaticano\",\n  \"VC\": \"São Vicente e Granadinas\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Ilhas Virgens Britânicas\",\n  \"VI\": \"Ilhas Virgens Americanas\",\n  \"VN\": \"Vietnã\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis e Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Iêmen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"África do Sul\",\n  \"ZM\": \"Zâmbia\",\n  \"ZW\": \"Zimbábue\",\n  \"ZZ\": \"Internacional\"\n}","export default {\n  \"ext\": \"ext\",\n  \"country\": \"País do número de telefone\",\n  \"phone\": \"Telefone\",\n  \"AB\": \"Abkhazia\",\n  \"AC\": \"Ilha da Ascensão\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"Emirados Árabes Unidos\",\n  \"AF\": \"Afeganistão\",\n  \"AG\": \"Antígua e Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albânia\",\n  \"AM\": \"Armênia\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antarctica\",\n  \"AR\": \"Argentina\",\n  \"AS\": \"Samoa Americana\",\n  \"AT\": \"Áustria\",\n  \"AU\": \"Austrália\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"ilhas Åland\",\n  \"AZ\": \"Azerbaijão\",\n  \"BA\": \"Bósnia e Herzegovina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladesh\",\n  \"BE\": \"Bélgica\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgária\",\n  \"BH\": \"Bahrain\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BL\": \"São Bartolomeu\",\n  \"BM\": \"Bermuda\",\n  \"BN\": \"Brunei Darussalam\",\n  \"BO\": \"Bolívia, Estado Plurinacional da\",\n  \"BQ\": \"Bonaire, Santo Eustáquio e Saba\",\n  \"BR\": \"Brasil, República Federativa do\",\n  \"BS\": \"Bahamas\",\n  \"BT\": \"Butão\",\n  \"BV\": \"Ilha Bouvet\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Belarus\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Canadá\",\n  \"CC\": \"Ilhas Cocos (Keeling)\",\n  \"CD\": \"Congo, República Democrática do\",\n  \"CF\": \"República Centro-Africana\",\n  \"CG\": \"Congo, República do\",\n  \"CH\": \"Suíça\",\n  \"CI\": \"Costa do Marfim\",\n  \"CK\": \"Ilhas Cook\",\n  \"CL\": \"Chile\",\n  \"CM\": \"Camarões\",\n  \"CN\": \"China\",\n  \"CO\": \"Colômbia\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Cuba\",\n  \"CV\": \"Cabo Verde\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Ilha Christmas, Território da\",\n  \"CY\": \"Chipre\",\n  \"CZ\": \"República Checa\",\n  \"DE\": \"Alemanha\",\n  \"DJ\": \"Djibouti, República do\",\n  \"DK\": \"Dinamarca\",\n  \"DM\": \"Dominica\",\n  \"DO\": \"República Dominicana\",\n  \"DZ\": \"Argélia\",\n  \"EC\": \"Equador\",\n  \"EE\": \"Estónia\",\n  \"EG\": \"Egito\",\n  \"EH\": \"Sara Ocidental\",\n  \"ER\": \"Eritreia\",\n  \"ES\": \"Espanha\",\n  \"ET\": \"Etiópia\",\n  \"FI\": \"Finlândia\",\n  \"FJ\": \"Fiji\",\n  \"FK\": \"Ilhas Falkland (Malvinas)\",\n  \"FM\": \"Micronésia, Estados Federados da\",\n  \"FO\": \"Faroe Islands\",\n  \"FR\": \"França\",\n  \"GA\": \"Gabão\",\n  \"GB\": \"Reino Unido\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Georgia\",\n  \"GF\": \"Guiana Francesa\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Gana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Gronelândia\",\n  \"GM\": \"Gâmbia\",\n  \"GN\": \"Guiné\",\n  \"GP\": \"Guadalupe\",\n  \"GQ\": \"Guiné Equatorial\",\n  \"GR\": \"Grécia\",\n  \"GS\": \"Geórgia do Sul e Ilhas Sandwich do Sul\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guiné-Bissau\",\n  \"GY\": \"Guiana\",\n  \"HK\": \"Hong Kong\",\n  \"HM\": \"Ilha Heard e Ilhas McDonald\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Croácia\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Hungria\",\n  \"ID\": \"Indonésia\",\n  \"IE\": \"Irlanda\",\n  \"IL\": \"Israel\",\n  \"IM\": \"Ilha de Man\",\n  \"IN\": \"Índia\",\n  \"IO\": \"Território Britânico do Oceano Índico\",\n  \"IQ\": \"Iraque\",\n  \"IR\": \"Irã, República Islâmica do\",\n  \"IS\": \"Islândia\",\n  \"IT\": \"Itália\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamaica\",\n  \"JO\": \"Jordânia, Reino Haxemita da\",\n  \"JP\": \"Japão\",\n  \"KE\": \"Quênia\",\n  \"KG\": \"Quirguizistão\",\n  \"KH\": \"Camboja\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Comores\",\n  \"KN\": \"São Cristóvão e Névis\",\n  \"KP\": \"Coreia do Norte, República Popular Democrática\",\n  \"KR\": \"Coreia do Sul, República da\",\n  \"KW\": \"Kuwait\",\n  \"KY\": \"Ilhas Cayman\",\n  \"KZ\": \"Cazaquistão\",\n  \"LA\": \"Laos, República Democrática Popular\",\n  \"LB\": \"Líbano\",\n  \"LC\": \"Santa Lúcia\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Libéria\",\n  \"LS\": \"Lesoto\",\n  \"LT\": \"Lituânia\",\n  \"LU\": \"Luxemburgo\",\n  \"LV\": \"Letónia\",\n  \"LY\": \"Líbia\",\n  \"MA\": \"Marrocos\",\n  \"MC\": \"Mônaco\",\n  \"MD\": \"Moldávia\",\n  \"ME\": \"Montenegro\",\n  \"MF\": \"São Martinho (parte francesa)\",\n  \"MG\": \"Madagascar\",\n  \"MH\": \"Ilhas Marshall\",\n  \"MK\": \"Macedónia, Antiga República Jugoslava da\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mongólia\",\n  \"MO\": \"Macau\",\n  \"MP\": \"Ilhas Marianas do Norte\",\n  \"MQ\": \"Martinica\",\n  \"MR\": \"Mauritânia\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Ilhas Maurício\",\n  \"MV\": \"Maldivas\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"México\",\n  \"MY\": \"Malásia\",\n  \"MZ\": \"Moçambique\",\n  \"NA\": \"Namíbia\",\n  \"NC\": \"Nova Caledónia\",\n  \"NE\": \"Níger\",\n  \"NF\": \"Ilha Norfolk\",\n  \"NG\": \"Nigéria\",\n  \"NI\": \"Nicarágua\",\n  \"NL\": \"Holanda\",\n  \"NO\": \"Noruega\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Nova Zelândia\",\n  \"OM\": \"Oman\",\n  \"OS\": \"Ossétia do Sul\",\n  \"PA\": \"Panamá\",\n  \"PE\": \"Peru\",\n  \"PF\": \"Polinésia Francesa\",\n  \"PG\": \"Papua Nova Guiné\",\n  \"PH\": \"Filipinas\",\n  \"PK\": \"Paquistão\",\n  \"PL\": \"Polónia\",\n  \"PM\": \"São Pedro e Miquelon\",\n  \"PN\": \"Ilhas Pitcairn\",\n  \"PR\": \"Porto Rico\",\n  \"PS\": \"Território Palestino Ocupado\",\n  \"PT\": \"Portugal\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguai\",\n  \"QA\": \"Qatar\",\n  \"RE\": \"Reunião\",\n  \"RO\": \"Roménia\",\n  \"RS\": \"Sérvia\",\n  \"RU\": \"Federação Russa\",\n  \"RW\": \"Ruanda\",\n  \"SA\": \"Arábia Saudita\",\n  \"SB\": \"Ilhas Salomão\",\n  \"SC\": \"Seychelles\",\n  \"SD\": \"Sudão\",\n  \"SE\": \"Suécia\",\n  \"SG\": \"Singapura\",\n  \"SH\": \"Santa Helena, Ascensão e Tristão da Cunha\",\n  \"SI\": \"Eslovénia\",\n  \"SJ\": \"Svalbard e Jan Mayen\",\n  \"SK\": \"Eslováquia\",\n  \"SL\": \"Serra Leoa\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somália\",\n  \"SR\": \"Suriname\",\n  \"SS\": \"Sudão do Sul\",\n  \"ST\": \"São Tomé e Príncipe\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"República Árabe da Síria\",\n  \"SZ\": \"Suazilândia\",\n  \"TA\": \"Tristão da Cunha\",\n  \"TC\": \"Ilhas Turks e Caicos\",\n  \"TD\": \"Chad\",\n  \"TF\": \"Territórios Franceses do Sul\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Tailândia\",\n  \"TJ\": \"Tajiquistão\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Timor-Leste\",\n  \"TM\": \"Turquemenistão\",\n  \"TN\": \"Tunísia\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Turquia\",\n  \"TT\": \"Trinidad e Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan, Província da China\",\n  \"TZ\": \"Tanzânia, República Unida da\",\n  \"UA\": \"Ucrânia\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"Ilhas Menores Inferiores dos Estados Unidos\",\n  \"US\": \"Estados Unidos da América\",\n  \"UY\": \"Uruguai\",\n  \"UZ\": \"Uzbequistão\",\n  \"VA\": \"Santa Sé (Estado da Cidade do Vaticano)\",\n  \"VC\": \"São Vicente e Granadinas\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Ilhas Virgens Britânicas\",\n  \"VI\": \"Ilhas Virgens, EUA\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis e Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Lémen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"África do Sul\",\n  \"ZM\": \"Zâmbia\",\n  \"ZW\": \"Zimbábue\",\n  \"ZZ\": \"Internacional\"\n}","export default {\n  \"ext\": \"доб.\",\n  \"country\": \"Страна номера телефона\",\n  \"phone\": \"Телефон\",\n  \"AB\": \"Абхазия\",\n  \"AC\": \"Остров Вознесения\",\n  \"AD\": \"Андорра\",\n  \"AE\": \"Объединенные Арабские Эмираты\",\n  \"AF\": \"Афганистан\",\n  \"AG\": \"Антигуа и Барбуда\",\n  \"AI\": \"Ангилья\",\n  \"AL\": \"Албания\",\n  \"AM\": \"Армения\",\n  \"AO\": \"Ангола\",\n  \"AQ\": \"Антарктида\",\n  \"AR\": \"Аргентина\",\n  \"AS\": \"Американское Самоа\",\n  \"AT\": \"Австрия\",\n  \"AU\": \"Австралия\",\n  \"AW\": \"Аруба\",\n  \"AX\": \"Эландские острова\",\n  \"AZ\": \"Азербайджан\",\n  \"BA\": \"Босния и Герцеговина\",\n  \"BB\": \"Барбадос\",\n  \"BD\": \"Бангладеш\",\n  \"BE\": \"Бельгия\",\n  \"BF\": \"Буркина-Фасо\",\n  \"BG\": \"Болгария\",\n  \"BH\": \"Бахрейн\",\n  \"BI\": \"Бурунди\",\n  \"BJ\": \"Бенин\",\n  \"BL\": \"Сен-Бартельми\",\n  \"BM\": \"Бермуды\",\n  \"BN\": \"Бруней-Даруссалам\",\n  \"BO\": \"Боливия, Многонациональное Государство\",\n  \"BQ\": \"Бонайре, Саба и Синт-Эстатиус\",\n  \"BR\": \"Бразилия\",\n  \"BS\": \"Багамы\",\n  \"BT\": \"Бутан\",\n  \"BV\": \"Остров Буве\",\n  \"BW\": \"Ботсвана\",\n  \"BY\": \"Белоруссия\",\n  \"BZ\": \"Белиз\",\n  \"CA\": \"Канада\",\n  \"CC\": \"Кокосовые (Килинг) острова\",\n  \"CD\": \"Конго, Демократическая Республика\",\n  \"CF\": \"Центрально-Африканская Республика\",\n  \"CG\": \"Конго\",\n  \"CH\": \"Швейцария\",\n  \"CI\": \"Кот д'Ивуар\",\n  \"CK\": \"Острова Кука\",\n  \"CL\": \"Чили\",\n  \"CM\": \"Камерун\",\n  \"CN\": \"Китай\",\n  \"CO\": \"Колумбия\",\n  \"CR\": \"Коста-Рика\",\n  \"CU\": \"Куба\",\n  \"CV\": \"Кабо-Верде\",\n  \"CW\": \"Кюрасао\",\n  \"CX\": \"Остров Рождества\",\n  \"CY\": \"Кипр\",\n  \"CZ\": \"Чешская Республика\",\n  \"DE\": \"Германия\",\n  \"DJ\": \"Джибути\",\n  \"DK\": \"Дания\",\n  \"DM\": \"Доминика\",\n  \"DO\": \"Доминиканская Республика\",\n  \"DZ\": \"Алжир\",\n  \"EC\": \"Эквадор\",\n  \"EE\": \"Эстония\",\n  \"EG\": \"Египет\",\n  \"EH\": \"Западная Сахара\",\n  \"ER\": \"Эритрея\",\n  \"ES\": \"Испания\",\n  \"ET\": \"Эфиопия\",\n  \"FI\": \"Финляндия\",\n  \"FJ\": \"Фиджи\",\n  \"FK\": \"Фолклендские острова (Мальвинские)\",\n  \"FM\": \"Микронезия, Федеративные Штаты\",\n  \"FO\": \"Фарерские острова\",\n  \"FR\": \"Франция\",\n  \"GA\": \"Габон\",\n  \"GB\": \"Соединенное Королевство\",\n  \"GD\": \"Гренада\",\n  \"GE\": \"Грузия\",\n  \"GF\": \"Французская Гвиана\",\n  \"GG\": \"Гернси\",\n  \"GH\": \"Гана\",\n  \"GI\": \"Гибралтар\",\n  \"GL\": \"Гренландия\",\n  \"GM\": \"Гамбия\",\n  \"GN\": \"Гвинея\",\n  \"GP\": \"Гваделупа\",\n  \"GQ\": \"Экваториальная Гвинея\",\n  \"GR\": \"Греция\",\n  \"GS\": \"Южная Джорджия и Южные Сандвичевы острова\",\n  \"GT\": \"Гватемала\",\n  \"GU\": \"Гуам\",\n  \"GW\": \"Гвинея-Бисау\",\n  \"GY\": \"Гайана\",\n  \"HK\": \"Гонконг\",\n  \"HM\": \"Остров Херд и острова Макдональд\",\n  \"HN\": \"Гондурас\",\n  \"HR\": \"Хорватия\",\n  \"HT\": \"Гаити\",\n  \"HU\": \"Венгрия\",\n  \"ID\": \"Индонезия\",\n  \"IE\": \"Ирландия\",\n  \"IL\": \"Израиль\",\n  \"IM\": \"Остров Мэн\",\n  \"IN\": \"Индия\",\n  \"IO\": \"Британская территория в Индийском океане\",\n  \"IQ\": \"Ирак\",\n  \"IR\": \"Иран, Исламская Республика\",\n  \"IS\": \"Исландия\",\n  \"IT\": \"Италия\",\n  \"JE\": \"Джерси\",\n  \"JM\": \"Ямайка\",\n  \"JO\": \"Иордания\",\n  \"JP\": \"Япония\",\n  \"KE\": \"Кения\",\n  \"KG\": \"Киргизия\",\n  \"KH\": \"Камбоджа\",\n  \"KI\": \"Кирибати\",\n  \"KM\": \"Коморы\",\n  \"KN\": \"Сент-Китс и Невис\",\n  \"KP\": \"Корея, Народно-Демократическая Республика\",\n  \"KR\": \"Корея, Республика\",\n  \"KW\": \"Кувейт\",\n  \"KY\": \"Острова Кайман\",\n  \"KZ\": \"Казахстан\",\n  \"LA\": \"Лаос\",\n  \"LB\": \"Ливан\",\n  \"LC\": \"Сент-Люсия\",\n  \"LI\": \"Лихтенштейн\",\n  \"LK\": \"Шри-Ланка\",\n  \"LR\": \"Либерия\",\n  \"LS\": \"Лесото\",\n  \"LT\": \"Литва\",\n  \"LU\": \"Люксембург\",\n  \"LV\": \"Латвия\",\n  \"LY\": \"Ливийская Арабская Джамахирия\",\n  \"MA\": \"Марокко\",\n  \"MC\": \"Монако\",\n  \"MD\": \"Молдова, Республика\",\n  \"ME\": \"Черногория\",\n  \"MF\": \"Сен-Мартен\",\n  \"MG\": \"Мадагаскар\",\n  \"MH\": \"Маршалловы острова\",\n  \"MK\": \"Республика Македония\",\n  \"ML\": \"Мали\",\n  \"MM\": \"Мьянма\",\n  \"MN\": \"Монголия\",\n  \"MO\": \"Макао\",\n  \"MP\": \"Северные Марианские острова\",\n  \"MQ\": \"Мартиника\",\n  \"MR\": \"Мавритания\",\n  \"MS\": \"Монтсеррат\",\n  \"MT\": \"Мальта\",\n  \"MU\": \"Маврикий\",\n  \"MV\": \"Мальдивы\",\n  \"MW\": \"Малави\",\n  \"MX\": \"Мексика\",\n  \"MY\": \"Малайзия\",\n  \"MZ\": \"Мозамбик\",\n  \"NA\": \"Намибия\",\n  \"NC\": \"Новая Каледония\",\n  \"NE\": \"Нигер\",\n  \"NF\": \"Остров Норфолк\",\n  \"NG\": \"Нигерия\",\n  \"NI\": \"Никарагуа\",\n  \"NL\": \"Нидерланды\",\n  \"NO\": \"Норвегия\",\n  \"NP\": \"Непал\",\n  \"NR\": \"Науру\",\n  \"NU\": \"Ниуэ\",\n  \"NZ\": \"Новая Зеландия\",\n  \"OM\": \"Оман\",\n  \"OS\": \"Южная Осетия\",\n  \"PA\": \"Панама\",\n  \"PE\": \"Перу\",\n  \"PF\": \"Французская Полинезия\",\n  \"PG\": \"Папуа-Новая Гвинея\",\n  \"PH\": \"Филиппины\",\n  \"PK\": \"Пакистан\",\n  \"PL\": \"Польша\",\n  \"PM\": \"Сент-Пьер и Микелон\",\n  \"PN\": \"Питкерн\",\n  \"PR\": \"Пуэрто-Рико\",\n  \"PS\": \"Палестинская территория, оккупированная\",\n  \"PT\": \"Португалия\",\n  \"PW\": \"Палау\",\n  \"PY\": \"Парагвай\",\n  \"QA\": \"Катар\",\n  \"RE\": \"Реюньон\",\n  \"RO\": \"Румыния\",\n  \"RS\": \"Сербия\",\n  \"RU\": \"Россия\",\n  \"RW\": \"Руанда\",\n  \"SA\": \"Саудовская Аравия\",\n  \"SB\": \"Соломоновы острова\",\n  \"SC\": \"Сейшелы\",\n  \"SD\": \"Судан\",\n  \"SE\": \"Швеция\",\n  \"SG\": \"Сингапур\",\n  \"SH\": \"Святая Елена, Остров вознесения, Тристан-да-Кунья\",\n  \"SI\": \"Словения\",\n  \"SJ\": \"Шпицберген и Ян Майен\",\n  \"SK\": \"Словакия\",\n  \"SL\": \"Сьерра-Леоне\",\n  \"SM\": \"Сан-Марино\",\n  \"SN\": \"Сенегал\",\n  \"SO\": \"Сомали\",\n  \"SR\": \"Суринам\",\n  \"SS\": \"Южный Судан\",\n  \"ST\": \"Сан-Томе и Принсипи\",\n  \"SV\": \"Эль-Сальвадор\",\n  \"SX\": \"Синт-Мартен\",\n  \"SY\": \"Сирийская Арабская Республика\",\n  \"SZ\": \"Свазиленд\",\n  \"TA\": \"Тристан-да-Кунья\",\n  \"TC\": \"Острова Теркс и Кайкос\",\n  \"TD\": \"Чад\",\n  \"TF\": \"Французские Южные территории\",\n  \"TG\": \"Того\",\n  \"TH\": \"Таиланд\",\n  \"TJ\": \"Таджикистан\",\n  \"TK\": \"Токелау\",\n  \"TL\": \"Тимор-Лесте\",\n  \"TM\": \"Туркмения\",\n  \"TN\": \"Тунис\",\n  \"TO\": \"Тонга\",\n  \"TR\": \"Турция\",\n  \"TT\": \"Тринидад и Тобаго\",\n  \"TV\": \"Тувалу\",\n  \"TW\": \"Тайвань (Китай)\",\n  \"TZ\": \"Танзания, Объединенная Республика\",\n  \"UA\": \"Украина\",\n  \"UG\": \"Уганда\",\n  \"UM\": \"Малые Тихоокеанские отдаленные острова Соединенных Штатов\",\n  \"US\": \"Соединенные Штаты\",\n  \"UY\": \"Уругвай\",\n  \"UZ\": \"Узбекистан\",\n  \"VA\": \"Папский Престол (город-государство Ватикан)\",\n  \"VC\": \"Сент-Винсент и Гренадины\",\n  \"VE\": \"Венесуэла Боливарианская Республика\",\n  \"VG\": \"Виргинские острова, Британские\",\n  \"VI\": \"Виргинские острова, США\",\n  \"VN\": \"Вьетнам\",\n  \"VU\": \"Вануату\",\n  \"WF\": \"Уоллис и Футуна\",\n  \"WS\": \"Самоа\",\n  \"XK\": \"Косово\",\n  \"YE\": \"Йемен\",\n  \"YT\": \"Майотта\",\n  \"ZA\": \"Южная Африка\",\n  \"ZM\": \"Замбия\",\n  \"ZW\": \"Зимбабве\",\n  \"ZZ\": \"Международный\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Štát\",\n  \"phone\": \"Telefón\",\n  \"AB\": \"Abcházsko\",\n  \"AC\": \"Ostrov Ascension\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"Spojené arabské emiráty\",\n  \"AF\": \"Afghanistan\",\n  \"AG\": \"Antigua a Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albánsko\",\n  \"AM\": \"Arménsko\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antarktída\",\n  \"AR\": \"Argentína\",\n  \"AS\": \"Americká Samoa\",\n  \"AT\": \"Rakúsko\",\n  \"AU\": \"Austrália\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Ålandské ostrovy\",\n  \"AZ\": \"Azerbajdžan\",\n  \"BA\": \"Bosna a Hercegovina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladéš\",\n  \"BE\": \"Belgicko\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulharsko\",\n  \"BH\": \"Bahrajn\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BL\": \"Svätý Bartolomej\",\n  \"BM\": \"Bermudy\",\n  \"BN\": \"Brunej Darussalam\",\n  \"BO\": \"Bolívia\",\n  \"BQ\": \"Bonaire, Sint Eustatius a Saba\",\n  \"BR\": \"Brazília\",\n  \"BS\": \"Bahamy\",\n  \"BT\": \"Bhután\",\n  \"BV\": \"Bouvet Island\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Belorusko\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Kanada\",\n  \"CC\": \"Kokosové (Keellovy) ostrovy\",\n  \"CD\": \"Konžská demokratická republika\",\n  \"CF\": \"Stredoafrická republika\",\n  \"CG\": \"Kongo\",\n  \"CH\": \"Švajčiarsko\",\n  \"CI\": \"Pobrežie Slonoviny\",\n  \"CK\": \"Cookove ostrovy\",\n  \"CL\": \"Čile\",\n  \"CM\": \"Kamerun\",\n  \"CN\": \"Čína\",\n  \"CO\": \"Kolumbia\",\n  \"CR\": \"Kostarika\",\n  \"CU\": \"Kuba\",\n  \"CV\": \"Kapverdy\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Vianočné ostrovy\",\n  \"CY\": \"Cyprus\",\n  \"CZ\": \"Česká republika\",\n  \"DE\": \"Nemecko\",\n  \"DJ\": \"Džibuti\",\n  \"DK\": \"Dánsko\",\n  \"DM\": \"Dominika\",\n  \"DO\": \"Dominikánska republika\",\n  \"DZ\": \"Alžírsko\",\n  \"EC\": \"Ekvádor\",\n  \"EE\": \"Estónsko\",\n  \"EG\": \"Egypt\",\n  \"EH\": \"Západná Sahara\",\n  \"ER\": \"Eritrea\",\n  \"ES\": \"Španielsko\",\n  \"ET\": \"Etiópia\",\n  \"FI\": \"Fínsko\",\n  \"FJ\": \"Fidži\",\n  \"FK\": \"Falklandské ostrovy\",\n  \"FM\": \"Federatívne štáty Mikronézie\",\n  \"FO\": \"Faerské ostrovy\",\n  \"FR\": \"Francúzsko\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"Spojené kráľovstvo\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Georgia\",\n  \"GF\": \"Francúzska Guyana\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Grónsko\",\n  \"GM\": \"Gambia\",\n  \"GN\": \"Guinea\",\n  \"GP\": \"Guadeloupe\",\n  \"GQ\": \"Rovníková Guinea\",\n  \"GR\": \"Grécko\",\n  \"GS\": \"Južná Georgia a Južné Sandwichove ostrovy\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guinea-Bissau\",\n  \"GY\": \"Guyana\",\n  \"HK\": \"Hongkong\",\n  \"HM\": \"Heardov ostrov a McDonaldové ostrovy\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Chorvátsko\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Maďarsko\",\n  \"ID\": \"Indonézia\",\n  \"IE\": \"Írsko\",\n  \"IL\": \"Izrael\",\n  \"IM\": \"Ostrov Man\",\n  \"IN\": \"India\",\n  \"IO\": \"Britské územie Indického oceánu\",\n  \"IQ\": \"Irak\",\n  \"IR\": \"Irán\",\n  \"IS\": \"Island\",\n  \"IT\": \"Taliansko\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamajka\",\n  \"JO\": \"Jordánsko\",\n  \"JP\": \"Japonsko\",\n  \"KE\": \"Keňa\",\n  \"KG\": \"Kyrgyzstan\",\n  \"KH\": \"Kambodža\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Komory\",\n  \"KN\": \"Svätý Krištof a Nevis\",\n  \"KP\": \"Severná Kórea\",\n  \"KR\": \"Južná Kórea\",\n  \"KW\": \"Kuvajt\",\n  \"KY\": \"Kajmanské ostrovy\",\n  \"KZ\": \"Kazachstan\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Libanon\",\n  \"LC\": \"Svätá Lucia\",\n  \"LI\": \"Lichtenštajnsko\",\n  \"LK\": \"Srí Lanka\",\n  \"LR\": \"Libéria\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Litva\",\n  \"LU\": \"Luxembursko\",\n  \"LV\": \"Lotyšsko\",\n  \"LY\": \"Líbya\",\n  \"MA\": \"Maroko\",\n  \"MC\": \"Monako\",\n  \"MD\": \"Moldavsko\",\n  \"ME\": \"Čierna Hora\",\n  \"MF\": \"Svätý Martin (francúzská časť)\",\n  \"MG\": \"Madagaskar\",\n  \"MH\": \"Marshallové ostrovy\",\n  \"MK\": \"Severné Macedónsko\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Mjanmarsko\",\n  \"MN\": \"Mongolsko\",\n  \"MO\": \"Macao\",\n  \"MP\": \"Severné Mariany\",\n  \"MQ\": \"Martinik\",\n  \"MR\": \"Mauretánia\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Maurícius\",\n  \"MV\": \"Maldivy\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Mexiko\",\n  \"MY\": \"Malajzia\",\n  \"MZ\": \"Mozambik\",\n  \"NA\": \"Namíbia\",\n  \"NC\": \"Nová Kaledónia\",\n  \"NE\": \"Niger\",\n  \"NF\": \"Ostrov Norfolk\",\n  \"NG\": \"Nigéria\",\n  \"NI\": \"Nikaragua\",\n  \"NL\": \"Holandsko\",\n  \"NO\": \"Nórsko\",\n  \"NP\": \"Nepál\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Nový Zéland\",\n  \"OM\": \"Omán\",\n  \"OS\": \"Južné Osetsko\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Peru\",\n  \"PF\": \"Francúzska Polynézia\",\n  \"PG\": \"Papua Nová Guinea\",\n  \"PH\": \"Filipíny\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Poľsko\",\n  \"PM\": \"Saint Pierre a Miquelon\",\n  \"PN\": \"Pitcairn\",\n  \"PR\": \"Portoriko\",\n  \"PS\": \"Palestína\",\n  \"PT\": \"Portugalsko\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Katar\",\n  \"RE\": \"Reunion\",\n  \"RO\": \"Rumunsko\",\n  \"RS\": \"Srbsko\",\n  \"RU\": \"Rusko\",\n  \"RW\": \"Rwanda\",\n  \"SA\": \"Saudská Arábia\",\n  \"SB\": \"Šalamúnove ostrovy\",\n  \"SC\": \"Seychely\",\n  \"SD\": \"Sudán\",\n  \"SE\": \"Švédsko\",\n  \"SG\": \"Singapur\",\n  \"SH\": \"Svätá Helena\",\n  \"SI\": \"Slovinsko\",\n  \"SJ\": \"Svalbard a Jan Mayen\",\n  \"SK\": \"Slovensko\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Maríno\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somálsko\",\n  \"SR\": \"Surinam\",\n  \"SS\": \"Južný Súdán\",\n  \"ST\": \"Svatý Tomáš a Princip\",\n  \"SV\": \"Salvádor\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Sýria\",\n  \"SZ\": \"Svazijsko\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Ostrovy Turks a Caicos\",\n  \"TD\": \"Čad\",\n  \"TF\": \"Francúzske južné územia\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Thajsko\",\n  \"TJ\": \"Tadžikistan\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Timor-Leste\",\n  \"TM\": \"Turkmenistan\",\n  \"TN\": \"Tunisko\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Turecko\",\n  \"TT\": \"Trinidad a Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan\",\n  \"TZ\": \"Tanzánia\",\n  \"UA\": \"Ukrajina\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"Menšie odľehlé ostrovy USA\",\n  \"US\": \"Spojené štáty americké\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Uzbekistan\",\n  \"VA\": \"Svätý stolec (mestský štát Vatikán)\",\n  \"VC\": \"Svätý Vincenc a Grenadiny\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Panenské ostrovy, Briti\",\n  \"VI\": \"Panenské ostrovy, USA\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis a Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Jemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"Južná Afrika\",\n  \"ZM\": \"Zambia\",\n  \"ZW\": \"Zimbabwe\",\n  \"ZZ\": \"Medzinárodné\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Land\",\n  \"phone\": \"Telefonnummer\",\n  \"AB\": \"Abchazien\",\n  \"AC\": \"Ascension\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"Förenade Arabemiraten\",\n  \"AF\": \"Afghanistan\",\n  \"AG\": \"Antigua och Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albanien\",\n  \"AM\": \"Armenien\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antarktis\",\n  \"AR\": \"Argentina\",\n  \"AS\": \"Amerikanska Samoa\",\n  \"AT\": \"Österrike\",\n  \"AU\": \"Australien\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Åland\",\n  \"AZ\": \"Azerbajdzjan\",\n  \"BA\": \"Bosnien och Hercegovina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladesh\",\n  \"BE\": \"Belgien\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgarien\",\n  \"BH\": \"Bahrain\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BL\": \"Saint-Barthélemy\",\n  \"BM\": \"Bermuda\",\n  \"BN\": \"Brunei\",\n  \"BO\": \"Bolivia\",\n  \"BQ\": \"Bonaire, Saint Eustatius och Saba\",\n  \"BR\": \"Brasilien\",\n  \"BS\": \"Bahamas\",\n  \"BT\": \"Bhutan\",\n  \"BV\": \"Bouvetön\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Vitryssland\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Kanada\",\n  \"CC\": \"Kokosöarna\",\n  \"CD\": \"Demokratiska republiken Kongo\",\n  \"CF\": \"Centralafrikanska republiken\",\n  \"CG\": \"Kongo-Brazzaville\",\n  \"CH\": \"Schweiz\",\n  \"CI\": \"Elfenbenskusten\",\n  \"CK\": \"Cooköarna\",\n  \"CL\": \"Chile\",\n  \"CM\": \"Kamerun\",\n  \"CN\": \"Kina\",\n  \"CO\": \"Colombia\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Kuba\",\n  \"CV\": \"Kap Verde\",\n  \"CW\": \"Curacao\",\n  \"CX\": \"Julön\",\n  \"CY\": \"Cypern\",\n  \"CZ\": \"Tjeckien\",\n  \"DE\": \"Tyskland\",\n  \"DJ\": \"Djibouti\",\n  \"DK\": \"Danmark\",\n  \"DM\": \"Dominica\",\n  \"DO\": \"Dominikanska republiken\",\n  \"DZ\": \"Algeriet\",\n  \"EC\": \"Ecuador\",\n  \"EE\": \"Estland\",\n  \"EG\": \"Egypten\",\n  \"EH\": \"Västsahara\",\n  \"ER\": \"Eritrea\",\n  \"ES\": \"Spanien\",\n  \"ET\": \"Etiopien\",\n  \"FI\": \"Finland\",\n  \"FJ\": \"Fiji\",\n  \"FK\": \"Falklandsöarna\",\n  \"FM\": \"Mikronesiska federationen\",\n  \"FO\": \"Färöarna\",\n  \"FR\": \"Frankrike\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"Storbritannien\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Georgien\",\n  \"GF\": \"Franska Guyana\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Grönland\",\n  \"GM\": \"Gambia\",\n  \"GN\": \"Guinea\",\n  \"GP\": \"Guadeloupe\",\n  \"GQ\": \"Ekvatorialguinea\",\n  \"GR\": \"Grekland\",\n  \"GS\": \"Sydgeorgien och Sydsandwichöarna\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guinea Bissau\",\n  \"GY\": \"Guyana\",\n  \"HK\": \"Hongkong\",\n  \"HM\": \"Heard- och McDonaldsöarna\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Kroatien\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Ungern\",\n  \"ID\": \"Indonesien\",\n  \"IE\": \"Irland\",\n  \"IL\": \"Israel\",\n  \"IM\": \"Isle of Man\",\n  \"IN\": \"Indien\",\n  \"IO\": \"Brittiska territoriet i Indiska Oceanen\",\n  \"IQ\": \"Irak\",\n  \"IR\": \"Iran\",\n  \"IS\": \"Island\",\n  \"IT\": \"Italien\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamaica\",\n  \"JO\": \"Jordanien\",\n  \"JP\": \"Japan\",\n  \"KE\": \"Kenya\",\n  \"KG\": \"Kirgizistan\",\n  \"KH\": \"Kambodja\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Komorerna\",\n  \"KN\": \"Saint Kitts och Nevis\",\n  \"KP\": \"Nordkorea\",\n  \"KR\": \"Sydkorea\",\n  \"KW\": \"Kuwait\",\n  \"KY\": \"Caymanöarna\",\n  \"KZ\": \"Kazakstan\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Libanon\",\n  \"LC\": \"Saint Lucia\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Liberia\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Litauen\",\n  \"LU\": \"Luxemburg\",\n  \"LV\": \"Lettland\",\n  \"LY\": \"Libyen\",\n  \"MA\": \"Marocko\",\n  \"MC\": \"Monaco\",\n  \"MD\": \"Moldavien\",\n  \"ME\": \"Montenegro\",\n  \"MF\": \"Saint Martin (franska delen)\",\n  \"MG\": \"Madagaskar\",\n  \"MH\": \"Marshallöarna\",\n  \"MK\": \"Nordmakedonien\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mongoliet\",\n  \"MO\": \"Macau\",\n  \"MP\": \"Nordmarianerna\",\n  \"MQ\": \"Martinique\",\n  \"MR\": \"Mauretanien\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Mauritius\",\n  \"MV\": \"Maldiverna\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Mexiko\",\n  \"MY\": \"Malaysia\",\n  \"MZ\": \"Moçambique\",\n  \"NA\": \"Namibia\",\n  \"NC\": \"Nya Kaledonien\",\n  \"NE\": \"Niger\",\n  \"NF\": \"Norfolkön\",\n  \"NG\": \"Nigeria\",\n  \"NI\": \"Nicaragua\",\n  \"NL\": \"Nederländerna\",\n  \"NO\": \"Norge\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Nya Zeeland\",\n  \"OM\": \"Oman\",\n  \"OS\": \"Sydossetien\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Peru\",\n  \"PF\": \"Franska Polynesien\",\n  \"PG\": \"Papua Nya Guinea\",\n  \"PH\": \"Filippinerna\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Polen\",\n  \"PM\": \"Saint-Pierre och Miquelon\",\n  \"PN\": \"Pitcairnöarna\",\n  \"PR\": \"Puerto Rico\",\n  \"PS\": \"Palestinska territoriet, ockuperade\",\n  \"PT\": \"Portugal\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Qatar\",\n  \"RE\": \"Réunion\",\n  \"RO\": \"Rumänien\",\n  \"RS\": \"Serbien\",\n  \"RU\": \"Ryssland\",\n  \"RW\": \"Rwanda\",\n  \"SA\": \"Saudiarabien\",\n  \"SB\": \"Salomonöarna\",\n  \"SC\": \"Seychellerna\",\n  \"SD\": \"Sudan\",\n  \"SE\": \"Sverige\",\n  \"SG\": \"Singapore\",\n  \"SH\": \"Sankta Helena\",\n  \"SI\": \"Slovenien\",\n  \"SJ\": \"Svalbard och Jan Mayen\",\n  \"SK\": \"Slovakien\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somalia\",\n  \"SR\": \"Surinam\",\n  \"SS\": \"Sydsudan\",\n  \"ST\": \"São Tomé och Príncipe\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"Sint Maarten (nederländska delen)\",\n  \"SY\": \"Syrien\",\n  \"SZ\": \"Swaziland\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Turks- och Caicosöarna\",\n  \"TD\": \"Tchad\",\n  \"TF\": \"Franska södra territorierna\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Thailand\",\n  \"TJ\": \"Tadzjikistan\",\n  \"TK\": \"Tokelauöarna\",\n  \"TL\": \"Östtimor\",\n  \"TM\": \"Turkmenistan\",\n  \"TN\": \"Tunisien\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Turkiet\",\n  \"TT\": \"Trinidad och Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan\",\n  \"TZ\": \"Tanzania\",\n  \"UA\": \"Ukraina\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"USA:s yttre öar\",\n  \"US\": \"USA\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Uzbekistan\",\n  \"VA\": \"Vatikanstaten\",\n  \"VC\": \"Saint Vincent och Grenadinerna\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Brittiska Jungfruöarna\",\n  \"VI\": \"Amerikanska Jungfruöarna\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis- och Futunaöarna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Jemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"Sydafrika\",\n  \"ZM\": \"Zambia\",\n  \"ZW\": \"Zimbabwe\",\n  \"ZZ\": \"Internationell\"\n}","export default {\n  \"ext\": \"ภายนอก\",\n  \"country\": \"ประเทศ\",\n  \"phone\": \"โทรศัพท์\",\n  \"AB\": \"อับคาเซีย\",\n  \"AC\": \"เกาะแอสเซนชัน\",\n  \"AD\": \"อันดอร์รา\",\n  \"AE\": \"สหรัฐอาหรับเอมิเรตส์\",\n  \"AF\": \"อัฟกานิสถาน\",\n  \"AG\": \"แอนติกาและบาร์บูดา\",\n  \"AI\": \"แองกวิลลา\",\n  \"AL\": \"แอลเบเนีย\",\n  \"AM\": \"อาร์เมเนีย\",\n  \"AO\": \"แองโกลา\",\n  \"AQ\": \"แอนตาร์กติกา\",\n  \"AR\": \"อาร์เจนตินา\",\n  \"AS\": \"อเมริกันซามัว\",\n  \"AT\": \"ออสเตรีย\",\n  \"AU\": \"ออสเตรเลีย\",\n  \"AW\": \"อารูบา\",\n  \"AX\": \"หมู่เกาะโอลันด์\",\n  \"AZ\": \"อาเซอร์ไบจาน\",\n  \"BA\": \"บอสเนียและเฮอร์เซโกวีนา\",\n  \"BB\": \"บาร์เบโดส\",\n  \"BD\": \"บังกลาเทศ\",\n  \"BE\": \"เบลเยียม\",\n  \"BF\": \"บูร์กินาฟาโซ\",\n  \"BG\": \"บัลแกเรีย\",\n  \"BH\": \"บาห์เรน\",\n  \"BI\": \"บุรุนดี\",\n  \"BJ\": \"เบนิน\",\n  \"BL\": \"แซ็ง-บาร์เตเลมี\",\n  \"BM\": \"เบอร์มิวดา\",\n  \"BN\": \"บรูไน\",\n  \"BO\": \"โบลิเวีย\",\n  \"BQ\": \"โบแนร์ ซินต์เอิสตาซิอุส และซาบา\",\n  \"BR\": \"บราซิล\",\n  \"BS\": \"บาฮามาส\",\n  \"BT\": \"ภูฏาน\",\n  \"BV\": \"เกาะบูเว\",\n  \"BW\": \"บอตสวานา\",\n  \"BY\": \"เบลารุส\",\n  \"BZ\": \"เบลีซ\",\n  \"CA\": \"แคนาดา\",\n  \"CC\": \"หมู่เกาะโคโคส (คีลิง)\",\n  \"CD\": \"สาธารณรัฐประชาธิปไตยคองโก\",\n  \"CF\": \"สาธารณรัฐแอฟริกากลาง\",\n  \"CG\": \"คองโก\",\n  \"CH\": \"สวิตเซอร์แลนด์\",\n  \"CI\": \"โกตดิวัวร์\",\n  \"CK\": \"หมู่เกาะคุก\",\n  \"CL\": \"ชิลี\",\n  \"CM\": \"แคเมอรูน\",\n  \"CN\": \"จีน\",\n  \"CO\": \"โคลอมเบีย\",\n  \"CR\": \"คอสตาริกา\",\n  \"CU\": \"คิวบา\",\n  \"CV\": \"เคปเวิร์ด\",\n  \"CW\": \"คูราเซา\",\n  \"CX\": \"เกาะคริสต์มาส\",\n  \"CY\": \"ไซปรัส\",\n  \"CZ\": \"สาธารณรัฐเช็ก\",\n  \"DE\": \"เยอรมนี\",\n  \"DJ\": \"จิบูตี\",\n  \"DK\": \"เดนมาร์ก\",\n  \"DM\": \"โดมินิกา\",\n  \"DO\": \"สาธารณรัฐโดมินิกัน\",\n  \"DZ\": \"แอลจีเรีย\",\n  \"EC\": \"เอกวาดอร์\",\n  \"EE\": \"เอสโตเนีย\",\n  \"EG\": \"อียิปต์\",\n  \"EH\": \"ซาฮาราตะวันตก\",\n  \"ER\": \"เอริเทรีย\",\n  \"ES\": \"สเปน\",\n  \"ET\": \"เอธิโอเปีย\",\n  \"FI\": \"ฟินแลนด์\",\n  \"FJ\": \"ฟีจี\",\n  \"FK\": \"หมู่เกาะฟอล์กแลนด์\",\n  \"FM\": \"สหพันธรัฐไมโครนีเซีย\",\n  \"FO\": \"หมู่เกาะแฟโร\",\n  \"FR\": \"ฝรั่งเศส\",\n  \"GA\": \"กาบอง\",\n  \"GB\": \"สหราชอาณาจักร\",\n  \"GD\": \"เกรเนดา\",\n  \"GE\": \"จอร์เจีย\",\n  \"GF\": \"เฟรนช์เกียนา\",\n  \"GG\": \"เกิร์นซีย์\",\n  \"GH\": \"กานา\",\n  \"GI\": \"ยิบรอลตาร์\",\n  \"GL\": \"กรีนแลนด์\",\n  \"GM\": \"แกมเบีย\",\n  \"GN\": \"กินี\",\n  \"GP\": \"กวาเดอลูป\",\n  \"GQ\": \"อิเควทอเรียลกินี\",\n  \"GR\": \"กรีซ\",\n  \"GS\": \"เกาะเซาท์จอร์เจียและหมู่เกาะเซาท์แซนด์วิช\",\n  \"GT\": \"กัวเตมาลา\",\n  \"GU\": \"กวม\",\n  \"GW\": \"กินี-บิสเซา\",\n  \"GY\": \"กายอานา\",\n  \"HK\": \"ฮ่องกง\",\n  \"HM\": \"เกาะเฮิร์ดและหมู่เกาะแมกดอนัลด์\",\n  \"HN\": \"ฮอนดูรัส\",\n  \"HR\": \"โครเอเชีย\",\n  \"HT\": \"เฮติ\",\n  \"HU\": \"ฮังการี\",\n  \"ID\": \"อินโดนีเซีย\",\n  \"IE\": \"ไอร์แลนด์\",\n  \"IL\": \"อิสราเอล\",\n  \"IM\": \"เกาะแมน\",\n  \"IN\": \"อินเดีย\",\n  \"IO\": \"บริติชอินเดียนโอเชียนเทร์ริทอรี\",\n  \"IQ\": \"อิรัก\",\n  \"IR\": \"อิหร่าน\",\n  \"IS\": \"ไอซ์แลนด์\",\n  \"IT\": \"อิตาลี\",\n  \"JE\": \"เจอร์ซีย์\",\n  \"JM\": \"จาเมกา\",\n  \"JO\": \"จอร์แดน\",\n  \"JP\": \"ญี่ปุ่น\",\n  \"KE\": \"เคนยา\",\n  \"KG\": \"คีร์กีซสถาน\",\n  \"KH\": \"กัมพูชา\",\n  \"KI\": \"คิริบาส\",\n  \"KM\": \"คอโมโรส\",\n  \"KN\": \"เซนต์คิตส์และเนวิส\",\n  \"KP\": \"เกาหลีเหนือ\",\n  \"KR\": \"เกาหลีใต้\",\n  \"KW\": \"คูเวต\",\n  \"KY\": \"หมู่เกาะเคย์แมน\",\n  \"KZ\": \"คาซัคสถาน\",\n  \"LA\": \"ลาว\",\n  \"LB\": \"เลบานอน\",\n  \"LC\": \"เซนต์ลูเชีย\",\n  \"LI\": \"ลิกเตนสไตน์\",\n  \"LK\": \"ศรีลังกา\",\n  \"LR\": \"ไลบีเรีย\",\n  \"LS\": \"เลโซโท\",\n  \"LT\": \"ลิทัวเนีย\",\n  \"LU\": \"ลักเซมเบิร์ก\",\n  \"LV\": \"ลัตเวีย\",\n  \"LY\": \"ลิเบีย\",\n  \"MA\": \"โมร็อกโก\",\n  \"MC\": \"โมนาโก\",\n  \"MD\": \"มอลโดวา\",\n  \"ME\": \"มอนเตเนโกร\",\n  \"MF\": \"แซ็ง-มาร์แต็ง (เขตแดนฝรั่งเศส)\",\n  \"MG\": \"มาดากัสการ์\",\n  \"MH\": \"หมู่เกาะมาร์แชลล์\",\n  \"MK\": \"มาซิโดเนียเหนือ\",\n  \"ML\": \"มาลี\",\n  \"MM\": \"เมียนมา\",\n  \"MN\": \"มองโกเลีย\",\n  \"MO\": \"มาเก๊า\",\n  \"MP\": \"หมู่เกาะนอร์เทิร์นมาเรียนา\",\n  \"MQ\": \"มาร์ตีนิก\",\n  \"MR\": \"มอริเตเนีย\",\n  \"MS\": \"มอนต์เซอร์รัต\",\n  \"MT\": \"มอลตา\",\n  \"MU\": \"มอริเชียส\",\n  \"MV\": \"มัลดีฟส์\",\n  \"MW\": \"มาลาวี\",\n  \"MX\": \"เม็กซิโก\",\n  \"MY\": \"มาเลเซีย\",\n  \"MZ\": \"โมซัมบิก\",\n  \"NA\": \"นามิเบีย\",\n  \"NC\": \"นิวแคลิโดเนีย\",\n  \"NE\": \"ไนเจอร์\",\n  \"NF\": \"เกาะนอร์ฟอล์ก\",\n  \"NG\": \"ไนจีเรีย\",\n  \"NI\": \"นิการากัว\",\n  \"NL\": \"เนเธอร์แลนด์\",\n  \"NO\": \"นอร์เวย์\",\n  \"NP\": \"เนปาล\",\n  \"NR\": \"นาอูรู\",\n  \"NU\": \"นีอูเอ\",\n  \"NZ\": \"นิวซีแลนด์\",\n  \"OM\": \"โอมาน\",\n  \"OS\": \"ออสซีเชียใต้\",\n  \"PA\": \"ปานามา\",\n  \"PE\": \"เปรู\",\n  \"PF\": \"เฟรนช์โปลินีเซีย\",\n  \"PG\": \"ปาปัวนิวกินี\",\n  \"PH\": \"ฟิลิปปินส์\",\n  \"PK\": \"ปากีสถาน\",\n  \"PL\": \"โปแลนด์\",\n  \"PM\": \"แซงปีแยร์และมีเกอลง\",\n  \"PN\": \"หมู่เกาะพิตแคร์น\",\n  \"PR\": \"เปอร์โตริโก\",\n  \"PS\": \"ปาเลสไตน์\",\n  \"PT\": \"โปรตุเกส\",\n  \"PW\": \"ปาเลา\",\n  \"PY\": \"ปารากวัย\",\n  \"QA\": \"กาตาร์\",\n  \"RE\": \"เรอูนียง\",\n  \"RO\": \"โรมาเนีย\",\n  \"RS\": \"เซอร์เบีย\",\n  \"RU\": \"รัสเซีย\",\n  \"RW\": \"รวันดา\",\n  \"SA\": \"ซาอุดีอาระเบีย\",\n  \"SB\": \"หมู่เกาะโซโลมอน\",\n  \"SC\": \"เซเชลส์\",\n  \"SD\": \"ซูดาน\",\n  \"SE\": \"สวีเดน\",\n  \"SG\": \"สิงคโปร์\",\n  \"SH\": \"เซนต์เฮเลนา\",\n  \"SI\": \"สโลวีเนีย\",\n  \"SJ\": \"สฟาลบาร์และยานไมเอน\",\n  \"SK\": \"สโลวาเกีย\",\n  \"SL\": \"เซียร์ราลีโอน\",\n  \"SM\": \"ซานมารีโน\",\n  \"SN\": \"เซเนกัล\",\n  \"SO\": \"โซมาเลีย\",\n  \"SR\": \"ซูรินาม\",\n  \"SS\": \"ซูดานใต้\",\n  \"ST\": \"เซาตูเมและปรินซิปี\",\n  \"SV\": \"เอลซัลวาดอร์\",\n  \"SX\": \"ซินต์มาร์เติน\",\n  \"SY\": \"ซีเรีย\",\n  \"SZ\": \"เอสวาตินี\",\n  \"TA\": \"ทริสตันดากูนยา\",\n  \"TC\": \"หมู่เกาะเติกส์และหมู่เกาะเคคอส\",\n  \"TD\": \"ชาด\",\n  \"TF\": \"เฟรนช์เซาเทิร์นเทร์ริทอรีส์\",\n  \"TG\": \"โตโก\",\n  \"TH\": \"ไทย\",\n  \"TJ\": \"ทาจิกิสถาน\",\n  \"TK\": \"โตเกเลา\",\n  \"TL\": \"ติมอร์-เลสเต\",\n  \"TM\": \"เติร์กเมนิสถาน\",\n  \"TN\": \"ตูนิเซีย\",\n  \"TO\": \"ตองกา\",\n  \"TR\": \"ตุรกี\",\n  \"TT\": \"ตรินิแดดและโตเบโก\",\n  \"TV\": \"ตูวาลู\",\n  \"TW\": \"ไต้หวัน\",\n  \"TZ\": \"แทนซาเนีย\",\n  \"UA\": \"ยูเครน\",\n  \"UG\": \"ยูกันดา\",\n  \"UM\": \"หมู่เกาะห่างไกลของสหรัฐอเมริกา\",\n  \"US\": \"สหรัฐอเมริกา\",\n  \"UY\": \"อุรุกวัย\",\n  \"UZ\": \"อุซเบกิสถาน\",\n  \"VA\": \"นครรัฐวาติกัน\",\n  \"VC\": \"เซนต์วินเซนต์และเกรนาดีนส์\",\n  \"VE\": \"เวเนซุเอลา\",\n  \"VG\": \"หมู่เกาะบริติชเวอร์จิน\",\n  \"VI\": \"หมู่เกาะเวอร์จินของสหรัฐอเมริกา\",\n  \"VN\": \"เวียดนาม\",\n  \"VU\": \"วานูอาตู\",\n  \"WF\": \"วาลลิสและฟุตูนา\",\n  \"WS\": \"ซามัว\",\n  \"XK\": \"โคโซโว\",\n  \"YE\": \"เยเมน\",\n  \"YT\": \"มายอต\",\n  \"ZA\": \"แอฟริกาใต้\",\n  \"ZM\": \"แซมเบีย\",\n  \"ZW\": \"ซิมบับเว\",\n  \"ZZ\": \"นานาชาติ\"\n}","export default {\n  \"ext\": \"dahili\",\n  \"country\": \"Ülke telefon numarası\",\n  \"phone\": \"Telefon\",\n  \"AB\": \"Abhazya\",\n  \"AC\": \"Yükseliş Adası\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"Birleşik Arap Emirlikleri\",\n  \"AF\": \"Afganistan\",\n  \"AG\": \"Antigua ve Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Arnavutluk\",\n  \"AM\": \"Ermenistan\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antarktika\",\n  \"AR\": \"Arjantin\",\n  \"AS\": \"Amerikan Samoası\",\n  \"AT\": \"Avusturya\",\n  \"AU\": \"Avustralya\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Åland Adaları\",\n  \"AZ\": \"Azerbaycan\",\n  \"BA\": \"Bosna Hersek\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladeş\",\n  \"BE\": \"Belçika\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgaristan\",\n  \"BH\": \"Bahreyn\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BL\": \"Aziz Barthélemy\",\n  \"BM\": \"Bermuda\",\n  \"BN\": \"Brunei Darussalam\",\n  \"BO\": \"Bolivya\",\n  \"BQ\": \"Bonaire, Sint Eustatius ve Saba\",\n  \"BR\": \"Brezilya\",\n  \"BS\": \"Bahamalar\",\n  \"BT\": \"Butan\",\n  \"BV\": \"Bouvet Adası\",\n  \"BW\": \"Botsvana\",\n  \"BY\": \"Beyaz Rusya\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Kanada\",\n  \"CC\": \"Cocos (Keeling) Adaları\",\n  \"CD\": \"Kongo, Demokratik Cumhuriyeti\",\n  \"CF\": \"Orta Afrika Cumhuriyeti\",\n  \"CG\": \"Kongo\",\n  \"CH\": \"İsviçre\",\n  \"CI\": \"Fildişi Sahili\",\n  \"CK\": \"Cook Adaları\",\n  \"CL\": \"Şili\",\n  \"CM\": \"Kamerun\",\n  \"CN\": \"Çin\",\n  \"CO\": \"Kolombiya\",\n  \"CR\": \"Kosta Rika\",\n  \"CU\": \"Küba\",\n  \"CV\": \"Yeşil Burun Adaları\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Christmas Adası\",\n  \"CY\": \"Kıbrıs\",\n  \"CZ\": \"Çek Cumhuriyeti\",\n  \"DE\": \"Almanya\",\n  \"DJ\": \"Cibuti\",\n  \"DK\": \"Danimarka\",\n  \"DM\": \"Dominika\",\n  \"DO\": \"Dominik Cumhuriyeti\",\n  \"DZ\": \"Cezayir\",\n  \"EC\": \"Ekvador\",\n  \"EE\": \"Estonya\",\n  \"EG\": \"Mısır\",\n  \"EH\": \"Batı Sahra\",\n  \"ER\": \"Eritre\",\n  \"ES\": \"İspanya\",\n  \"ET\": \"Etiyopya\",\n  \"FI\": \"Finlandiya\",\n  \"FJ\": \"Fiji\",\n  \"FK\": \"Falkland Adaları\",\n  \"FM\": \"Mikronezya Federal Devletleri\",\n  \"FO\": \"Faroe Adaları\",\n  \"FR\": \"Fransa\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"İngiltere\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Gürcistan\",\n  \"GF\": \"Fransız Guyanası\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Gana\",\n  \"GI\": \"Cebelitarık\",\n  \"GL\": \"Grönland\",\n  \"GM\": \"Gambiya\",\n  \"GN\": \"Gine\",\n  \"GP\": \"Guadeloupe\",\n  \"GQ\": \"Ekvator Ginesi\",\n  \"GR\": \"Yunanistan\",\n  \"GS\": \"Güney Georgia ve Güney Sandwich Adaları\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Gine-Bissau\",\n  \"GY\": \"Guyana\",\n  \"HK\": \"Hong Kong\",\n  \"HM\": \"Heard Adası ve McDonald Adaları\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Hırvatistan\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Macaristan\",\n  \"ID\": \"Endonezya\",\n  \"IE\": \"İrlanda\",\n  \"IL\": \"İsrail\",\n  \"IM\": \"Man Adası\",\n  \"IN\": \"Hindistan'da\",\n  \"IO\": \"İngiliz Hint Okyanusu Bölgesi\",\n  \"IQ\": \"Irak\",\n  \"IR\": \"İran\",\n  \"IS\": \"İzlanda\",\n  \"IT\": \"İtalya\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamaika\",\n  \"JO\": \"Ürdün\",\n  \"JP\": \"Japonya\",\n  \"KE\": \"Kenya\",\n  \"KG\": \"Kırgızistan\",\n  \"KH\": \"Kamboçya\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Komorlar\",\n  \"KN\": \"Saint Kitts ve Nevis\",\n  \"KP\": \"Kuzey Kore\",\n  \"KR\": \"Güney Kore\",\n  \"KW\": \"Kuveyt\",\n  \"KY\": \"Cayman Adaları\",\n  \"KZ\": \"Kazakistan\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Lübnan\",\n  \"LC\": \"Saint Lucia\",\n  \"LI\": \"Lihtenştayn\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Liberya\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Litvanya\",\n  \"LU\": \"Lüksemburg\",\n  \"LV\": \"Letonya\",\n  \"LY\": \"Libya\",\n  \"MA\": \"Fas\",\n  \"MC\": \"Monako\",\n  \"MD\": \"Moldova\",\n  \"ME\": \"Karadağ\",\n  \"MF\": \"Saint Martin (Fransız Bölgesi)\",\n  \"MG\": \"Madagaskar\",\n  \"MH\": \"Marshall Adaları\",\n  \"MK\": \"Kuzey Makedonya\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Moğolistan\",\n  \"MO\": \"Makao\",\n  \"MP\": \"Kuzey Mariana Adaları\",\n  \"MQ\": \"Martinik\",\n  \"MR\": \"Moritanya\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Mauritius\",\n  \"MV\": \"Maldivler\",\n  \"MW\": \"Malavi\",\n  \"MX\": \"Meksika\",\n  \"MY\": \"Malezya\",\n  \"MZ\": \"Mozambik\",\n  \"NA\": \"Namibya\",\n  \"NC\": \"Yeni Kaledonya\",\n  \"NE\": \"Nijer\",\n  \"NF\": \"Norfolk Adası\",\n  \"NG\": \"Nijerya\",\n  \"NI\": \"Nikaragua\",\n  \"NL\": \"Hollanda\",\n  \"NO\": \"Norveç\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"Yeni Zelanda\",\n  \"OM\": \"Umman\",\n  \"OS\": \"Güney Osetya\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Peru\",\n  \"PF\": \"Fransız Polinezyası\",\n  \"PG\": \"Papua Yeni Gine\",\n  \"PH\": \"Filipinler\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Polonya\",\n  \"PM\": \"Saint Pierre ve Miquelon\",\n  \"PN\": \"Pitcairn\",\n  \"PR\": \"Porto Riko\",\n  \"PS\": \"Filistin\",\n  \"PT\": \"Portekiz\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Katar\",\n  \"RE\": \"Yeniden Birleşme\",\n  \"RO\": \"Romanya\",\n  \"RS\": \"Sırbistan\",\n  \"RU\": \"Rusya\",\n  \"RW\": \"Ruanda\",\n  \"SA\": \"Suudi Arabistan\",\n  \"SB\": \"Solomon Adaları\",\n  \"SC\": \"Seyşeller\",\n  \"SD\": \"Sudan\",\n  \"SE\": \"İsveç\",\n  \"SG\": \"Singapur\",\n  \"SH\": \"Aziz Helena\",\n  \"SI\": \"Slovenya\",\n  \"SJ\": \"Svalbard ve Jan Mayen\",\n  \"SK\": \"Slovakya\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somali\",\n  \"SR\": \"Surinam\",\n  \"SS\": \"Güney Sudan\",\n  \"ST\": \"Sao Tome ve Principe\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Suriye\",\n  \"SZ\": \"Svaziland\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Turks ve Caicos Adaları\",\n  \"TD\": \"Çad\",\n  \"TF\": \"Fransız Güney Toprakları\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Tayland\",\n  \"TJ\": \"Tacikistan\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Doğu Timor\",\n  \"TM\": \"Türkmenistan\",\n  \"TN\": \"Tunus\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Türkiye\",\n  \"TT\": \"Trinidad ve Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Tayvan\",\n  \"TZ\": \"Tanzanya\",\n  \"UA\": \"Ukrayna\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"Amerika Birleşik Devletleri Minor Uzak Adalar\",\n  \"US\": \"Amerika Birleşik Devletleri\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Özbekistan\",\n  \"VA\": \"Holy See (Vatikan Şehir Devleti)\",\n  \"VC\": \"Saint Vincent ve Grenadinler\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Virgin Adaları, İngiliz\",\n  \"VI\": \"Virgin Adaları, ABD\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis ve Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosova\",\n  \"YE\": \"Yemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"Güney Afrika\",\n  \"ZM\": \"Zambiya\",\n  \"ZW\": \"Zimbabve\",\n  \"ZZ\": \"Uluslararası\"\n}","export default {\n  \"ext\": \"дод.\",\n  \"country\": \"Країна\",\n  \"phone\": \"Телефон\",\n  \"AB\": \"Абхазія\",\n  \"AC\": \"Острів Вознесіння\",\n  \"AD\": \"Андорра\",\n  \"AE\": \"Об'єднані Арабські Емірати\",\n  \"AF\": \"Афганістан\",\n  \"AG\": \"Антигуа і Барбуда\",\n  \"AI\": \"Ангілья\",\n  \"AL\": \"Албанія\",\n  \"AM\": \"Вірменія\",\n  \"AO\": \"Ангола\",\n  \"AQ\": \"Антарктида\",\n  \"AR\": \"Аргентина\",\n  \"AS\": \"Американське Самоа\",\n  \"AT\": \"Австрія\",\n  \"AU\": \"Австралія\",\n  \"AW\": \"Аруба\",\n  \"AX\": \"Аландські острови\",\n  \"AZ\": \"Азербайджан\",\n  \"BA\": \"Боснія і Герцеговина\",\n  \"BB\": \"Барбадос\",\n  \"BD\": \"Бангладеш\",\n  \"BE\": \"Бельгія\",\n  \"BF\": \"Буркіна-Фасо\",\n  \"BG\": \"Болгарія\",\n  \"BH\": \"Бахрейн\",\n  \"BI\": \"Бурунді\",\n  \"BJ\": \"Бенін\",\n  \"BL\": \"Сен-Бартельмі\",\n  \"BM\": \"Бермудські Острови\",\n  \"BN\": \"Бруней\",\n  \"BO\": \"Боливия\",\n  \"BQ\": \"Карибські Нідерланди\",\n  \"BR\": \"Бразилія\",\n  \"BS\": \"Багамські Острови\",\n  \"BT\": \"Бутан\",\n  \"BV\": \"Острів Буве\",\n  \"BW\": \"Ботсвана\",\n  \"BY\": \"Білорусь\",\n  \"BZ\": \"Беліз\",\n  \"CA\": \"Канада\",\n  \"CC\": \"Кокосові Острови\",\n  \"CD\": \"ДР Конго\",\n  \"CF\": \"Центральноафриканська Республіка\",\n  \"CG\": \"Республіка Конго\",\n  \"CH\": \"Швейцарія\",\n  \"CI\": \"Кот-д'Івуар\",\n  \"CK\": \"Острови Кука\",\n  \"CL\": \"Чилі\",\n  \"CM\": \"Камерун\",\n  \"CN\": \"КНР\",\n  \"CO\": \"Колумбія\",\n  \"CR\": \"Коста-Рика\",\n  \"CU\": \"Куба\",\n  \"CV\": \"Кабо-Верде\",\n  \"CW\": \"Кюрасао\",\n  \"CX\": \"Остров Різдва\",\n  \"CY\": \"Кіпр\",\n  \"CZ\": \"Чехія\",\n  \"DE\": \"Німеччина\",\n  \"DJ\": \"Джибуті\",\n  \"DK\": \"Данія\",\n  \"DM\": \"Домініка\",\n  \"DO\": \"Домініканська Республіка\",\n  \"DZ\": \"Алжир\",\n  \"EC\": \"Еквадор\",\n  \"EE\": \"Естонія\",\n  \"EG\": \"Єгипет\",\n  \"EH\": \"Західна Сахара\",\n  \"ER\": \"Еритрея\",\n  \"ES\": \"Іспания\",\n  \"ET\": \"Ефіопія\",\n  \"FI\": \"Фінляндія\",\n  \"FJ\": \"Фіджі\",\n  \"FK\": \"Фолклендські Острови\",\n  \"FM\": \"Федеративні Штати Мікронезії\",\n  \"FO\": \"Фарерські Острови\",\n  \"FR\": \"Франція\",\n  \"GA\": \"Габон\",\n  \"GB\": \"Велика Британія\",\n  \"GD\": \"Гренада\",\n  \"GE\": \"Грузія\",\n  \"GF\": \"Французька Гвіана\",\n  \"GG\": \"Гернсі\",\n  \"GH\": \"Гана\",\n  \"GI\": \"Гібралтар\",\n  \"GL\": \"Гренландія\",\n  \"GM\": \"Гамбія\",\n  \"GN\": \"Гвінея\",\n  \"GP\": \"Гваделупа\",\n  \"GQ\": \"Екваторіальна Гвінея\",\n  \"GR\": \"Греція\",\n  \"GS\": \"Південна Джорджія та Південні Сандвічеві Острови\",\n  \"GT\": \"Гватемала\",\n  \"GU\": \"Гуам\",\n  \"GW\": \"Гвінея-Бісау\",\n  \"GY\": \"Гаяна\",\n  \"HK\": \"Гонконг\",\n  \"HM\": \"Острів Херд і Острови Макдональд\",\n  \"HN\": \"Гондурас\",\n  \"HR\": \"Хорватія\",\n  \"HT\": \"Гаїті\",\n  \"HU\": \"Угорщина\",\n  \"ID\": \"Індонезія\",\n  \"IE\": \"Ірландія\",\n  \"IL\": \"Ізраїль\",\n  \"IM\": \"Острів Мен\",\n  \"IN\": \"Індія\",\n  \"IO\": \"Британська Територія в Індійському Океані\",\n  \"IQ\": \"Ірак\",\n  \"IR\": \"Іран\",\n  \"IS\": \"Ісландія\",\n  \"IT\": \"Італія\",\n  \"JE\": \"Джерсі\",\n  \"JM\": \"Ямайка\",\n  \"JO\": \"Йорданія\",\n  \"JP\": \"Японія\",\n  \"KE\": \"Кенія\",\n  \"KG\": \"Киргизстан\",\n  \"KH\": \"Камбоджа\",\n  \"KI\": \"Кірибаті\",\n  \"KM\": \"Коморські Острови\",\n  \"KN\": \"Сент-Кіттс і Невіс\",\n  \"KP\": \"Північна Корея\",\n  \"KR\": \"Південна Корея\",\n  \"KW\": \"Кувейт\",\n  \"KY\": \"Кайманові Острови\",\n  \"KZ\": \"Казахстан\",\n  \"LA\": \"Лаос\",\n  \"LB\": \"Ліван\",\n  \"LC\": \"Сент-Люсія\",\n  \"LI\": \"Ліхтенштейн\",\n  \"LK\": \"Шрі-Ланка\",\n  \"LR\": \"Ліберія\",\n  \"LS\": \"Лесото\",\n  \"LT\": \"Литва\",\n  \"LU\": \"Люксембург\",\n  \"LV\": \"Латвія\",\n  \"LY\": \"Лівія\",\n  \"MA\": \"Марокко\",\n  \"MC\": \"Монако\",\n  \"MD\": \"Молдова\",\n  \"ME\": \"Чорногорія\",\n  \"MF\": \"Сен-Мартен\",\n  \"MG\": \"Мадагаскар\",\n  \"MH\": \"Маршаллові Острови\",\n  \"MK\": \"Північна Македонія\",\n  \"ML\": \"Малі\",\n  \"MM\": \"М'янма\",\n  \"MN\": \"Монголія\",\n  \"MO\": \"Макао\",\n  \"MP\": \"Північні Маріанські Острови\",\n  \"MQ\": \"Мартиніка\",\n  \"MR\": \"Мавританія\",\n  \"MS\": \"Монтсеррат\",\n  \"MT\": \"Мальта\",\n  \"MU\": \"Маврикій\",\n  \"MV\": \"Мальдіви\",\n  \"MW\": \"Малаві\",\n  \"MX\": \"Мексика\",\n  \"MY\": \"Малайзія\",\n  \"MZ\": \"Мозамбік\",\n  \"NA\": \"Намібія\",\n  \"NC\": \"Нова Каледонія\",\n  \"NE\": \"Нігер\",\n  \"NF\": \"Острів Норфолк\",\n  \"NG\": \"Нігерія\",\n  \"NI\": \"Нікарагуа\",\n  \"NL\": \"Нідерланди\",\n  \"NO\": \"Норвегія\",\n  \"NP\": \"Непал\",\n  \"NR\": \"Науру\",\n  \"NU\": \"Ніуу\",\n  \"NZ\": \"Нова Зеландія\",\n  \"OM\": \"Оман\",\n  \"OS\": \"Південна Осетія\",\n  \"PA\": \"Панама\",\n  \"PE\": \"Перу\",\n  \"PF\": \"Французька Полінезія\",\n  \"PG\": \"Папуа Нова Гвінея\",\n  \"PH\": \"Філіппіни\",\n  \"PK\": \"Пакистан\",\n  \"PL\": \"Польща\",\n  \"PM\": \"Сен-П'єр і Мікелон\",\n  \"PN\": \"Піткерн\",\n  \"PR\": \"Пуерто-Рико\",\n  \"PS\": \"Палестина\",\n  \"PT\": \"Португалія\",\n  \"PW\": \"Палау\",\n  \"PY\": \"Парагвай\",\n  \"QA\": \"Катар\",\n  \"RE\": \"Реюньйон\",\n  \"RO\": \"Румунія\",\n  \"RS\": \"Сербія\",\n  \"RU\": \"Росія\",\n  \"RW\": \"Руанда\",\n  \"SA\": \"Саудівська Аравія\",\n  \"SB\": \"Соломонові Острови\",\n  \"SC\": \"Сейшельські Острови\",\n  \"SD\": \"Судан\",\n  \"SE\": \"Швеція\",\n  \"SG\": \"Сінгапур\",\n  \"SH\": \"Острови Святої Єлени, Вознесіння і Тристан-да-Кунья\",\n  \"SI\": \"Словенія\",\n  \"SJ\": \"Свальбард і Ян-Маєн\",\n  \"SK\": \"Словаччина\",\n  \"SL\": \"Сьєрра-Леоне\",\n  \"SM\": \"Сан-Марино\",\n  \"SN\": \"Сенегал\",\n  \"SO\": \"Сомалі\",\n  \"SR\": \"Суринам\",\n  \"SS\": \"Південний Судан\",\n  \"ST\": \"Сан-Томе і Принсіпі\",\n  \"SV\": \"Сальвадор\",\n  \"SX\": \"Сінт-Мартен\",\n  \"SY\": \"Сирія\",\n  \"SZ\": \"Есватіні\",\n  \"TA\": \"Тристан-да-Кунья\",\n  \"TC\": \"Острови Теркс і Кайкос\",\n  \"TD\": \"Чад\",\n  \"TF\": \"Французькі Південні і Антарктичні Території\",\n  \"TG\": \"Того\",\n  \"TH\": \"Таїланд\",\n  \"TJ\": \"Таджикистан\",\n  \"TK\": \"Токелау\",\n  \"TL\": \"Східний Тимор\",\n  \"TM\": \"Туркменістан\",\n  \"TN\": \"Туніс\",\n  \"TO\": \"Тонга\",\n  \"TR\": \"Туреччина\",\n  \"TT\": \"Тринідад і Тобаго\",\n  \"TV\": \"Тувалу\",\n  \"TW\": \"Тайвань\",\n  \"TZ\": \"Танзанія\",\n  \"UA\": \"Україна\",\n  \"UG\": \"Уганда\",\n  \"UM\": \"Зовнішні малі острови США\",\n  \"US\": \"США\",\n  \"UY\": \"Уругвай\",\n  \"UZ\": \"Узбекистан\",\n  \"VA\": \"Ватикан\",\n  \"VC\": \"Сент-Вінсент і Гренадини\",\n  \"VE\": \"Венесуела\",\n  \"VG\": \"Британські Віргінські Острови\",\n  \"VI\": \"Американські Віргінські Острови\",\n  \"VN\": \"В'єтнам\",\n  \"VU\": \"Вануату\",\n  \"WF\": \"Волліс і Футуна\",\n  \"WS\": \"Самоа\",\n  \"XK\": \"Косово\",\n  \"YE\": \"Ємен\",\n  \"YT\": \"Майотта\",\n  \"ZA\": \"ПАР\",\n  \"ZM\": \"Замбія\",\n  \"ZW\": \"Зімбабве\",\n  \"ZZ\": \"Міжнародний\"\n}","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Số điện thoại quốc gia\",\n  \"phone\": \"Điện thoại\",\n  \"AB\": \"Abkhazia\",\n  \"AC\": \"Đảo Ascension\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"Các Tiểu Vương Quốc Ả Rập Thống nhất (United Arab Emirates)\",\n  \"AF\": \"Afghanistan\",\n  \"AG\": \"Antigua and Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albania\",\n  \"AM\": \"Armenia\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antarctica\",\n  \"AR\": \"Argentina\",\n  \"AS\": \"American Samoa\",\n  \"AT\": \"Áo (Austria)\",\n  \"AU\": \"Úc (Australia)\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Åland Islands\",\n  \"AZ\": \"Azerbaijan\",\n  \"BA\": \"Bosnia and Herzegovina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladesh\",\n  \"BE\": \"Bỉ (Belgium)\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgaria\",\n  \"BH\": \"Bahrain\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BL\": \"Saint Barthélemy\",\n  \"BM\": \"Bermuda\",\n  \"BN\": \"Brunei Darussalam\",\n  \"BO\": \"Bolivia, plurinational state of\",\n  \"BQ\": \"Bonaire, Sint Eustatius and Saba\",\n  \"BR\": \"Brazil\",\n  \"BS\": \"Bahamas\",\n  \"BT\": \"Bhutan\",\n  \"BV\": \"Bouvet Island\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Belarus\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Canada\",\n  \"CC\": \"Cocos (Keeling) Islands\",\n  \"CD\": \"Congo, Democratic Republic of the\",\n  \"CF\": \"Central African Republic\",\n  \"CG\": \"Congo\",\n  \"CH\": \"Thụy Sĩ (Switzerland)\",\n  \"CI\": \"Cote d'Ivoire\",\n  \"CK\": \"Cook Islands\",\n  \"CL\": \"Chile\",\n  \"CM\": \"Cameroon\",\n  \"CN\": \"Trung Quốc (China)\",\n  \"CO\": \"Colombia\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Cuba\",\n  \"CV\": \"Cape Verde\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Christmas Island\",\n  \"CY\": \"Cyprus\",\n  \"CZ\": \"Cộng hòa Séc (Czech Republic)\",\n  \"DE\": \"Đức (Germany)\",\n  \"DJ\": \"Djibouti\",\n  \"DK\": \"Đan Mạch (Denmark)\",\n  \"DM\": \"Dominica\",\n  \"DO\": \"Dominican Republic\",\n  \"DZ\": \"Algeria\",\n  \"EC\": \"Ecuador\",\n  \"EE\": \"Estonia\",\n  \"EG\": \"Egypt\",\n  \"EH\": \"Western Sahara\",\n  \"ER\": \"Eritrea\",\n  \"ES\": \"Tân Ban Nha (Spain)\",\n  \"ET\": \"Ethiopia\",\n  \"FI\": \"Phần Lan (Finland)\",\n  \"FJ\": \"Fiji\",\n  \"FK\": \"Falkland Islands (Malvinas)\",\n  \"FM\": \"Micronesia, Federated States of\",\n  \"FO\": \"Faroe Islands\",\n  \"FR\": \"Pháp (France)\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"Anh (United Kingdom)\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Georgia\",\n  \"GF\": \"French Guiana\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Greenland\",\n  \"GM\": \"Gambia\",\n  \"GN\": \"Guinea\",\n  \"GP\": \"Guadeloupe\",\n  \"GQ\": \"Equatorial Guinea\",\n  \"GR\": \"Hy Lạp (Greece)\",\n  \"GS\": \"South Georgia and the South Sandwich Islands\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guinea-Bissau\",\n  \"GY\": \"Guyana\",\n  \"HK\": \"Hong Kong\",\n  \"HM\": \"Heard Island and McDonald Islands\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Croatia\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Hungary\",\n  \"ID\": \"Indonesia\",\n  \"IE\": \"Ireland\",\n  \"IL\": \"Israel\",\n  \"IM\": \"Isle of Man\",\n  \"IN\": \"Ấn Độ (India)\",\n  \"IO\": \"British Indian Ocean Territory\",\n  \"IQ\": \"Iraq\",\n  \"IR\": \"Iran, Islamic Republic of\",\n  \"IS\": \"Iceland\",\n  \"IT\": \"Ý (Italy)\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamaica\",\n  \"JO\": \"Jordan\",\n  \"JP\": \"Japan\",\n  \"KE\": \"Kenya\",\n  \"KG\": \"Kyrgyzstan\",\n  \"KH\": \"Cambodia\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Comoros\",\n  \"KN\": \"Saint Kitts and Nevis\",\n  \"KP\": \"Bắc Triều Tiên (North Korea)\",\n  \"KR\": \"Hàn Quốc (South Korea)\",\n  \"KW\": \"Kuwait\",\n  \"KY\": \"Cayman Islands\",\n  \"KZ\": \"Kazakhstan\",\n  \"LA\": \"Lào (Laos)\",\n  \"LB\": \"Lebanon\",\n  \"LC\": \"Saint Lucia\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Liberia\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Lithuania\",\n  \"LU\": \"Luxembourg\",\n  \"LV\": \"Latvia\",\n  \"LY\": \"Libyan Arab Jamahiriya\",\n  \"MA\": \"Morocco\",\n  \"MC\": \"Monaco\",\n  \"MD\": \"Moldova\",\n  \"ME\": \"Montenegro\",\n  \"MF\": \"Saint Martin (French Part)\",\n  \"MG\": \"Madagascar\",\n  \"MH\": \"Marshall Islands\",\n  \"MK\": \"Macedonia, The Former Yugoslav Republic Of\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mông Cổ (Mongolia)\",\n  \"MO\": \"Macao\",\n  \"MP\": \"Northern Mariana Islands\",\n  \"MQ\": \"Martinique\",\n  \"MR\": \"Mauritania\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Mauritius\",\n  \"MV\": \"Maldives\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Mexico\",\n  \"MY\": \"Mã Lai (Malaysia)\",\n  \"MZ\": \"Mozambique\",\n  \"NA\": \"Namibia\",\n  \"NC\": \"New Caledonia\",\n  \"NE\": \"Niger\",\n  \"NF\": \"Norfolk Island\",\n  \"NG\": \"Nigeria\",\n  \"NI\": \"Nicaragua\",\n  \"NL\": \"Netherlands\",\n  \"NO\": \"Na Uy (Norway)\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"New Zealand\",\n  \"OM\": \"Oman\",\n  \"OS\": \"South Ossetia\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Peru\",\n  \"PF\": \"French Polynesia\",\n  \"PG\": \"Papua New Guinea\",\n  \"PH\": \"Philippines\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Ba Lan (Poland)\",\n  \"PM\": \"Saint Pierre and Miquelon\",\n  \"PN\": \"Pitcairn\",\n  \"PR\": \"Puerto Rico\",\n  \"PS\": \"Palestinian Territory, Occupied\",\n  \"PT\": \"Bồ Đào Nha (Portugal)\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Qatar\",\n  \"RE\": \"Reunion\",\n  \"RO\": \"Romania\",\n  \"RS\": \"Serbia\",\n  \"RU\": \"Nga (Russian Federation)\",\n  \"RW\": \"Rwanda\",\n  \"SA\": \"Saudi Arabia\",\n  \"SB\": \"Solomon Islands\",\n  \"SC\": \"Seychelles\",\n  \"SD\": \"Sudan\",\n  \"SE\": \"Thụy Điển (Sweden)\",\n  \"SG\": \"Singapore\",\n  \"SH\": \"Saint Helena, Ascension And Tristan Da Cunha\",\n  \"SI\": \"Slovenia\",\n  \"SJ\": \"Svalbard and Jan Mayen\",\n  \"SK\": \"Slovakia\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somalia\",\n  \"SR\": \"Suriname\",\n  \"SS\": \"South Sudan\",\n  \"ST\": \"Sao Tome and Principe\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Syrian Arab Republic\",\n  \"SZ\": \"Swaziland\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Turks and Caicos Islands\",\n  \"TD\": \"Chad\",\n  \"TF\": \"French Southern Territories\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Thái Lan (Thailand)\",\n  \"TJ\": \"Tajikistan\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Timor-Leste\",\n  \"TM\": \"Turkmenistan\",\n  \"TN\": \"Tunisia\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Thổ Nhĩ Kỳ (Turkey)\",\n  \"TT\": \"Trinidad and Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Đài Loan (Taiwan)\",\n  \"TZ\": \"Tanzania, United Republic Of\",\n  \"UA\": \"Ukraine\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"United States Minor Outlying Islands\",\n  \"US\": \"Mỹ (United States)\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Uzbekistan\",\n  \"VA\": \"Holy See (Vatican City State)\",\n  \"VC\": \"Saint Vincent and the Grenadines\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Virgin Islands, British\",\n  \"VI\": \"Virgin Islands, U.S.\",\n  \"VN\": \"Việt Nam (Vietnam)\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis and Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Yemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"Nam Phi (South Africa)\",\n  \"ZM\": \"Zambia\",\n  \"ZW\": \"Zimbabwe\",\n  \"ZZ\": \"International\"\n}","export default {\n  \"ext\": \"分机\",\n  \"country\": \"国家\",\n  \"phone\": \"电话\",\n  \"AB\": \"阿布哈兹\",\n  \"AC\": \"阿森松岛\",\n  \"AD\": \"安道尔共和国\",\n  \"AE\": \"阿拉伯联合酋长国\",\n  \"AF\": \"阿富汗\",\n  \"AG\": \"安提瓜和巴布达\",\n  \"AI\": \"安圭拉\",\n  \"AL\": \"阿尔巴尼亚\",\n  \"AM\": \"亚美尼亚\",\n  \"AO\": \"安哥拉\",\n  \"AQ\": \"南极洲\",\n  \"AR\": \"阿根廷\",\n  \"AS\": \"美属萨摩亚\",\n  \"AT\": \"奥地利\",\n  \"AU\": \"澳大利亚\",\n  \"AW\": \"阿鲁巴\",\n  \"AX\": \"奥兰群岛\",\n  \"AZ\": \"阿塞拜疆\",\n  \"BA\": \"波斯尼亚和黑塞哥维那\",\n  \"BB\": \"巴巴多斯\",\n  \"BD\": \"孟加拉国\",\n  \"BE\": \"比利时\",\n  \"BF\": \"布基纳法索\",\n  \"BG\": \"保加利亚\",\n  \"BH\": \"巴林\",\n  \"BI\": \"布隆迪\",\n  \"BJ\": \"贝宁\",\n  \"BL\": \"圣巴泰勒米\",\n  \"BM\": \"百慕大\",\n  \"BN\": \"文莱\",\n  \"BO\": \"玻利维亚\",\n  \"BQ\": \"博奈尔、圣尤斯特歇斯和萨巴\",\n  \"BR\": \"巴西\",\n  \"BS\": \"巴哈马\",\n  \"BT\": \"不丹\",\n  \"BV\": \"布维岛\",\n  \"BW\": \"博茨瓦纳\",\n  \"BY\": \"白俄罗斯\",\n  \"BZ\": \"伯利兹\",\n  \"CA\": \"加拿大\",\n  \"CC\": \"科科斯（基林）群岛\",\n  \"CD\": \"刚果民主共和国\",\n  \"CF\": \"中非共和国\",\n  \"CG\": \"刚果共和国\",\n  \"CH\": \"瑞士\",\n  \"CI\": \"科特迪瓦\",\n  \"CK\": \"库克群岛\",\n  \"CL\": \"智利\",\n  \"CM\": \"喀麦隆\",\n  \"CN\": \"中国\",\n  \"CO\": \"哥伦比亚\",\n  \"CR\": \"哥斯达黎加\",\n  \"CU\": \"古巴\",\n  \"CV\": \"佛得角\",\n  \"CW\": \"库拉索\",\n  \"CX\": \"圣诞岛\",\n  \"CY\": \"塞浦路斯\",\n  \"CZ\": \"捷克共和国\",\n  \"DE\": \"德国\",\n  \"DJ\": \"吉布提\",\n  \"DK\": \"丹麦\",\n  \"DM\": \"多米尼克\",\n  \"DO\": \"多米尼加共和国\",\n  \"DZ\": \"阿尔及利亚\",\n  \"EC\": \"厄瓜多尔\",\n  \"EE\": \"爱沙尼亚\",\n  \"EG\": \"埃及\",\n  \"EH\": \"西撒哈拉\",\n  \"ER\": \"厄立特里亚\",\n  \"ES\": \"西班牙\",\n  \"ET\": \"埃塞俄比亚\",\n  \"FI\": \"芬兰\",\n  \"FJ\": \"斐济\",\n  \"FK\": \"福克兰群岛\",\n  \"FM\": \"密克罗尼西亚联邦\",\n  \"FO\": \"法罗群岛\",\n  \"FR\": \"法国\",\n  \"GA\": \"加蓬\",\n  \"GB\": \"英国\",\n  \"GD\": \"格林纳达\",\n  \"GE\": \"格鲁吉亚\",\n  \"GF\": \"法属圭亚那\",\n  \"GG\": \"根西岛\",\n  \"GH\": \"加纳\",\n  \"GI\": \"直布罗陀\",\n  \"GL\": \"格陵兰\",\n  \"GM\": \"冈比亚\",\n  \"GN\": \"几内亚\",\n  \"GP\": \"瓜德罗普\",\n  \"GQ\": \"赤道几内亚\",\n  \"GR\": \"希腊\",\n  \"GS\": \"南乔治亚和南桑威奇群岛\",\n  \"GT\": \"危地马拉\",\n  \"GU\": \"关岛\",\n  \"GW\": \"几内亚比绍\",\n  \"GY\": \"圭亚那\",\n  \"HK\": \"香港\",\n  \"HM\": \"赫德岛和麦克唐纳群岛\",\n  \"HN\": \"洪都拉斯\",\n  \"HR\": \"克罗地亚\",\n  \"HT\": \"海地\",\n  \"HU\": \"匈牙利\",\n  \"ID\": \"印度尼西亚\",\n  \"IE\": \"爱尔兰\",\n  \"IL\": \"以色列\",\n  \"IM\": \"马恩岛\",\n  \"IN\": \"印度\",\n  \"IO\": \"英属印度洋领地\",\n  \"IQ\": \"伊拉克\",\n  \"IR\": \"伊朗\",\n  \"IS\": \"冰岛\",\n  \"IT\": \"意大利\",\n  \"JE\": \"泽西岛\",\n  \"JM\": \"牙买加\",\n  \"JO\": \"约旦\",\n  \"JP\": \"日本\",\n  \"KE\": \"肯尼亚\",\n  \"KG\": \"吉尔吉斯斯坦\",\n  \"KH\": \"柬埔寨\",\n  \"KI\": \"基里巴斯\",\n  \"KM\": \"科摩罗\",\n  \"KN\": \"圣基茨和尼维斯\",\n  \"KP\": \"朝鲜\",\n  \"KR\": \"韩国\",\n  \"KW\": \"科威特\",\n  \"KY\": \"开曼群岛\",\n  \"KZ\": \"哈萨克斯坦\",\n  \"LA\": \"老挝\",\n  \"LB\": \"黎巴嫩\",\n  \"LC\": \"圣卢西亚\",\n  \"LI\": \"列支敦士登\",\n  \"LK\": \"斯里兰卡\",\n  \"LR\": \"利比里亚\",\n  \"LS\": \"莱索托\",\n  \"LT\": \"立陶宛\",\n  \"LU\": \"卢森堡\",\n  \"LV\": \"拉脱维亚\",\n  \"LY\": \"利比亚\",\n  \"MA\": \"摩洛哥\",\n  \"MC\": \"摩纳哥\",\n  \"MD\": \"摩尔多瓦\",\n  \"ME\": \"黑山\",\n  \"MF\": \"法属圣马丁\",\n  \"MG\": \"马达加斯加\",\n  \"MH\": \"马绍尔群岛\",\n  \"MK\": \"北马其顿\",\n  \"ML\": \"马里\",\n  \"MM\": \"缅甸\",\n  \"MN\": \"蒙古\",\n  \"MO\": \"澳门\",\n  \"MP\": \"北马里亚纳群岛\",\n  \"MQ\": \"马提尼克\",\n  \"MR\": \"毛里塔尼亚\",\n  \"MS\": \"蒙特塞拉特\",\n  \"MT\": \"马耳他\",\n  \"MU\": \"毛里求斯\",\n  \"MV\": \"马尔代夫\",\n  \"MW\": \"马拉维\",\n  \"MX\": \"墨西哥\",\n  \"MY\": \"马来西亚\",\n  \"MZ\": \"莫桑比克\",\n  \"NA\": \"纳米比亚\",\n  \"NC\": \"新喀里多尼亚\",\n  \"NE\": \"尼日尔\",\n  \"NF\": \"诺福克岛\",\n  \"NG\": \"尼日利亚\",\n  \"NI\": \"尼加拉瓜\",\n  \"NL\": \"荷兰\",\n  \"NO\": \"挪威\",\n  \"NP\": \"尼泊尔\",\n  \"NR\": \"瑙鲁\",\n  \"NU\": \"纽埃\",\n  \"NZ\": \"新西兰\",\n  \"OM\": \"阿曼\",\n  \"OS\": \"南奥塞梯\",\n  \"PA\": \"巴拿马\",\n  \"PE\": \"秘鲁\",\n  \"PF\": \"法属波利尼西亚\",\n  \"PG\": \"巴布亚新几内亚\",\n  \"PH\": \"菲律宾\",\n  \"PK\": \"巴基斯坦\",\n  \"PL\": \"波兰\",\n  \"PM\": \"圣皮埃尔和密克隆\",\n  \"PN\": \"皮特凯恩\",\n  \"PR\": \"波多黎各\",\n  \"PS\": \"巴勒斯坦\",\n  \"PT\": \"葡萄牙\",\n  \"PW\": \"帕劳\",\n  \"PY\": \"巴拉圭\",\n  \"QA\": \"卡塔尔\",\n  \"RE\": \"留尼汪\",\n  \"RO\": \"罗马尼亚\",\n  \"RS\": \"塞尔维亚\",\n  \"RU\": \"俄罗斯\",\n  \"RW\": \"卢旺达\",\n  \"SA\": \"沙特阿拉伯\",\n  \"SB\": \"所罗门群岛\",\n  \"SC\": \"塞舌尔\",\n  \"SD\": \"苏丹\",\n  \"SE\": \"瑞典\",\n  \"SG\": \"新加坡\",\n  \"SH\": \"圣赫勒拿\",\n  \"SI\": \"斯洛文尼亚\",\n  \"SJ\": \"斯瓦尔巴和扬马延\",\n  \"SK\": \"斯洛伐克\",\n  \"SL\": \"塞拉利昂\",\n  \"SM\": \"圣马力诺\",\n  \"SN\": \"塞内加尔\",\n  \"SO\": \"索马里\",\n  \"SR\": \"苏里南\",\n  \"SS\": \"南苏丹\",\n  \"ST\": \"圣多美和普林西比\",\n  \"SV\": \"萨尔瓦多\",\n  \"SX\": \"圣马丁\",\n  \"SY\": \"叙利亚\",\n  \"SZ\": \"斯威士兰\",\n  \"TA\": \"特里斯坦-达库尼亚\",\n  \"TC\": \"特克斯和凯科斯群岛\",\n  \"TD\": \"乍得\",\n  \"TF\": \"法属南部领地\",\n  \"TG\": \"多哥\",\n  \"TH\": \"泰国\",\n  \"TJ\": \"塔吉克斯坦\",\n  \"TK\": \"托克劳\",\n  \"TL\": \"东帝汶\",\n  \"TM\": \"土库曼斯坦\",\n  \"TN\": \"突尼斯\",\n  \"TO\": \"汤加\",\n  \"TR\": \"土耳其\",\n  \"TT\": \"特立尼达和多巴哥\",\n  \"TV\": \"图瓦卢\",\n  \"TW\": \"台湾\",\n  \"TZ\": \"坦桑尼亚\",\n  \"UA\": \"乌克兰\",\n  \"UG\": \"乌干达\",\n  \"UM\": \"美国本土外小岛屿\",\n  \"US\": \"美国\",\n  \"UY\": \"乌拉圭\",\n  \"UZ\": \"乌兹别克斯坦\",\n  \"VA\": \"梵蒂冈\",\n  \"VC\": \"圣文森特和格林纳丁斯\",\n  \"VE\": \"委内瑞拉\",\n  \"VG\": \"英属维尔京群岛\",\n  \"VI\": \"美属维尔京群岛\",\n  \"VN\": \"越南\",\n  \"VU\": \"瓦努阿图\",\n  \"WF\": \"瓦利斯和富图纳\",\n  \"WS\": \"萨摩亚\",\n  \"XK\": \"科索沃\",\n  \"YE\": \"也门\",\n  \"YT\": \"马约特\",\n  \"ZA\": \"南非\",\n  \"ZM\": \"赞比亚\",\n  \"ZW\": \"津巴布韦\",\n  \"ZZ\": \"国际\"\n}"]}